블로그 이미지
모에샹동

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

  • total
  • today
  • yesterday

2009. 6. 18. 14:57 SAP/ABAP,BC

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.

posted by 모에샹동