IT WORK/SAP FI and ABAP

[FI/ABAP] 고정자산 감가상각 영역 네거티브 값 허용 BDC

Bathildis 2024. 5. 22. 13:33
반응형

REPORT YEIDT LINE-SIZE 1023.


DATA: GT_BDCMSG  LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA: G_BDCDATA_T LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
      G_BDCMESG_T LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA: GV_TEXT(20).

PARAMETERS: P_BUKRS LIKE ANLA-BUKRS DEFAULT 'C100',
            P_ANLN1 LIKE ANLA-ANLN1 DEFAULT '140000001',
            P_ANLN2 LIKE ANLA-ANLN2 DEFAULT '0000',
            P_MODE  LIKE CTU_PARAMS-DISMODE DEFAULT 'N',
            P_UMODE LIKE CTU_PARAMS-UPDMODE DEFAULT 'S'.

CHECK P_ANLN1 IS NOT INITIAL.

SELECT COUNT( * ) INTO @DATA(LV_CNT)
  FROM ANLB
 WHERE BUKRS EQ @P_BUKRS
   AND ANLN1 EQ @P_ANLN1
   AND ANLN2 EQ @P_ANLN2.

CHECK LV_CNT IS NOT INITIAL.

PERFORM MAKE_BDC_DATA USING:
                             'X' 'SAPLAIST'   '0100',
                             ' ' 'BDC_OKCODE' '=D190',
                             ' ' 'ANLA-ANLN1' P_ANLN1,
                             ' ' 'ANLA-ANLN2' P_ANLN2,
                             ' ' 'ANLA-BUKRS' P_BUKRS.

DO LV_CNT TIMES.

  CLEAR GV_TEXT.
  GV_TEXT = 'T093T-AFBKTX(' && SY-INDEX && ')'.

  PERFORM MAKE_BDC_DATA USING:
                             'X' 'SAPLAIST'   '1000',
                             ' ' 'BDC_OKCODE' '=SELZ',
                             ' ' 'BDC_CURSOR' GV_TEXT,

                             'X' 'SAPLAIST'   '0195',
                             ' ' 'BDC_OKCODE' '=RW',
                             ' ' 'ANLB-XNEGA' ' '.

ENDDO.

PERFORM MAKE_BDC_DATA USING:
                            'X' 'SAPLAIST'   '1000',
                            ' ' 'BDC_OKCODE' '=BUCH'.

CALL TRANSACTION 'AS02'
           USING G_BDCDATA_T
            MODE P_MODE
          UPDATE P_UMODE
   MESSAGES INTO G_BDCMESG_T.

*----------------------------------------------------------------------*
*    form make_bdc_data
*----------------------------------------------------------------------*
*    BDC DATA 생성.
*----------------------------------------------------------------------*
*  -->  start  새로운 화면의 시작 여부.
*  -->  name   프로그램 이름 혹은 화면필드이름.
*  -->  value  화면필드에 채워질 데이터 값.
*----------------------------------------------------------------------*
FORM MAKE_BDC_DATA USING START NAME VALUE.

  CLEAR G_BDCDATA_T.

  IF START = 'X'.

    G_BDCDATA_T-DYNBEGIN = START.
    G_BDCDATA_T-PROGRAM  = NAME.
    G_BDCDATA_T-DYNPRO   = VALUE.

  ELSE.

    G_BDCDATA_T-FNAM = NAME.
    G_BDCDATA_T-FVAL = VALUE.

  ENDIF.


  APPEND G_BDCDATA_T.

ENDFORM.                    " make_bdc_data

 

 

BAPI_FIXEDASSET_CHANGE 에는 네거티브값 허용이 없어서 BDC 짬

 

 

반응형