BAdI 편집기에서는 Codng 을 하는 중
문제가 없다고 생각한 구문에서 계속 에러가 발생했다.
원인을 알아보니 BAdI 편집기의 ABAP Syntax는 기존 ABAP Workbench와 좀 다르다.
오류 없이 완성된 아래 구문을 보자.
method IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE.
DATA : BDCDATA TYPE TABLE OF BDCDATA INITIAL SIZE 0 ,
MESSTAB TYPE TABLE OF BDCMSGCOLL INITIAL SIZE 0.
-> BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE (X)
LIKE, OCCURS, HEADER 있는 테이블을 지원하지 않는다.
DATA : LS_XMSEG type line of ty_t_mseg.
-> Header 있는 테이블을 지원하지 않기 때문에 테이블을 LOOP 돌리거나 할 때
LINE Type 변수가 필요하다. 선언 구문도 type line of 를 사용해야 함.
DATA : LS_BDCDATA type bdcdata.
-> bdccata 에 Insert 하기 위해 선언.
DATA : V_AUTYP TYPE AUFK-AUTYP.
LOOP AT XMSEG INTO LS_XMSEG.
IF LS_XMSEG-AUFNR <> ''.
.
CLEAR LS_BDCDATA.
LS_BDCDATA-FNAM = 'BDC_OKCODE'.
LS_BDCDATA-FVAL = '=WEIT'.
INSERT LS_BDCDATA INTO BDCDATA INDEX 7.
CALL TRANSACTION 'IW32' USING BDCDATA
MODE 'N'
UPDATE 'S'
MESSAGES INTO MESSTAB.
ENDIF.
ENDLOOP.
'SAP > ABAP,BC' 카테고리의 다른 글
Selection Screen의 Checkbox 에 Event 이용하려면 (0) | 2009.09.29 |
---|---|
BAdI 생성 및 편집. (2) | 2009.06.18 |
테이블 유지보수 프로그램 쉽게 만들기 (0) | 2009.05.22 |
READ_REPORT_LINE_TOO_LONG, CX_SY_READ_SRC_LINE_TOO_LONG 에러 해결 방법 (0) | 2009.05.22 |
Internal Table을 참조하는 Internal Table 선언 (0) | 2009.05.22 |