2017-12-21 61 views
1


현재 Java Connector for SAP를 통해 호출 할 rfc 함수 모듈을 유지 관리하고 있습니다. 현재 모듈은 각 행에 데이터와 항목 테이블이있는 문서 테이블을 반환합니다. 내부 테이블이 정의SAP 용 JCo의 중첩 구조?

 POSITIONS() (com.sap.conn.jco.JCoTable) 
    introspection errror 
    java.lang.IllegalStateException: Trying to access row values in a table 
    which does not have any rows yet 

: JCO 3.0에서이 모듈 introspecting
때, 그것은 오직 하나의 내부 상부층 테이블 아니라 표시 않는다. 성능을 위해 모듈에서 basXML을 사용할 수 있도록 설정했습니다.
중첩 된 구조로 JCo를 사용하려면 어떻게해야합니까? 아니면 불가능한가요?

답변

1

일반적으로이 방법이 유용합니다. JCo는 중첩 구조 및 테이블을 처리 할 수 ​​있습니다.

중첩 된 JCoTable은 단순히 비어있는 것, 즉 행이 없습니다. 빈 테이블에서는 단일 필드에 대해 getter 또는 setter 메서드를 호출 할 수 없습니다.

getter-method를 사용하기 전에 JCoTable.isEmpty() 또는 JCoTable.getNumRows()>0으로 확인하십시오. JCoTable 객체에서 setter-method를 사용하기 전에 하나 이상의 행을 JCoTable.appendRow()에 추가해야합니다.

+0

이 테이블의 SAP쪽에 초기 행을 하나 추가하려고 했으므로 항상 적어도 하나 이상의 행이 비어 있어야합니다. 하지만 JCo에서 수행 한 작업은 아무런 데이터도받지 못했습니다. 호출하고 싶은 함수 모듈을 내성적으로 살펴 보았습니다. 바로 바깥 쪽이 아닌 안쪽 테이블에 데이터가 없어야합니다. 그리고 여전히이 초기 라인에서는 같은 오류가 발생했습니다. : | – Tassimmo

+0

어쩌면 충분히 명확하지 않다 : Java 코드에 버그가있다! 내 대답에서 말한 것처럼 코드하면이 오류 메시지와 함께 java.lang.IllegalStateException이 발생하지 않습니다. JCoTable이 비어서는 안되지만 비어있는 JCoTable 인 경우 이는 약간의 정보를 제공 할 수없는 또 다른 문제입니다. – Trixx