SAP ALE IDOC EDI-Kor_05.7 ALE Function Module의 생성

출판된 한글판 도서


ERP SAP R/3 ALE, EDI & IDOC 기술


Original Book Contents


5.7      ALE Function Module의 생성

 

Customer Hierarchy에 대하여 change document를 생성해 낼 수 있도록 SAP application프로그램을 enhance 했으므로, 이제는 Customer Hierarchy와 관련된 change pointer를 읽어서, 우리가 이미 생성한 IDOC type ZKNVHM01에 값을 채워서 IDOC을 생성해 내는 ALE function module을 작성할 필요가 있다. 대부분의 master data에 대한 ALE function module은 표준적인 접근방식을 따르고 있는데, 이들은 먼저 필요한 자료를 수집하고, IDOC이 필요로 하는 값을 채워서 IDOC을 만들고, 만들어진 IDOC을 분배하는 절차를 거친다. 먼저, 특정 message type에 대해서 아직까지 처리되지 않은 모든 change pointer자료를 수집하고, 그 각각에 대하여 key값을 찾아서 internal table로 만들어 주는 표준 function module이 있다. 이렇게 해서 생성된 internal table은 다른 function module로 전달되어, 그에 대응하는 IDOC type에서 필요로 하는 값을 결정하여 IDOC을 생성하게 되고, 이렇게 생성된 IDOC은 표준 ALE function module을 사용하여 통신계층(communication layer)으로 전송되는 것이다.

 

이러한 과정에서 사용되는 두 가지 function module을 구축해 보자. SAP의 명명 규칙에 따라, 우리는 그것들에 ZMASTERIDOC_CREATE_SMD_ZDEBHIZMASTERIDOC_CREATE_ZDEBHI라는 이름을 부여할 것이다. [그림 5-8] [그림 5-9]는 두 function module에 대한 프로그램 코드를 보여주고, [그림 5-10] global data를 보여주고 있다. 이 두 function module에 대한 대강의 줄거리는 다음과 같다.

 

function module ZMASTERIDOC_CREATE_SMD_ZDEBHI는 먼저 SAP가 제공하는 표준 APICHANGE_POINTERS_READ을 사용하여 table BDCP BDCPS을 읽어서, message type ZDEBHI에 대하여 아직 처리되지 않은 모든 change pointer 자료를 수집한다. 그런 다음, 이러한 change pointer들에 대한 key값을 파악하여 internal table에 보관한다. 이러한 각각의 key 값에 대하여 change document Change ID field에 의해 message function 값이 결정된다. Internal table에는 그 key값이 함께 저장되고, 나중에 이 internal table상에 있는 모든 자료에 대하여 function module ZMASTERIDOC_CREATE_ZDEBHI를 호출하여, IDOC이 필요로 하는 값을 결정하여 IDOC을 생성하고, 생성된 IDOC을 분배하게 된다. 이러한 처리를 거친 후에, 처리된 모든 change pointer는 다른 internal table append되고, append internal table function module CHANGE_POINTER_STATUS_WRITE로 전달된다. 그러면 이 API table BDCPS를 갱신하여 그 change pointer가 처리되었음을 표시한다.

 

다음은 function module ZMASTERIDOC_CREATE_ZDEBHI의 기본적인 내용을 살펴 보기로 하자. 첫 번째 module에서 function module ZMASTERIDOC_CREATE_ZDEBHI가 호출되면, module로 전달되어 온 key값을 이용하여 table KNVH에서 자료를 조회한다 module은 이러한 자료를 가지고 IDOC segment Z1KNVHM을 생성해 낸다. 나중에 EDIDD key field에 적절한 값을 채우고, segment Z1KNVHM EDIDD SDATA로 옮긴다. 그런 다음, 이렇게 완성된 EDIDD 자료는 internal table T_IDOC_DATA append된다. message type이나 IDOC type과 같이, 이 시점에서 사용 가능한 EDIDC 정보들이 채워지고, 이렇게 생성된 structure형태의 정보는 internal table T_IDOC_DATA과 함께, SAP의 표준 function module MASTER_IDOC_DISTRIBUTE로 전달된다. 이 표준 module customer distribution model

partner profile에 따라서 IDOC의 송신자와 수신자를 결정하고, IDOC을 통신계층(communication layer)으로 분배한다. 프로그램에 대한 코드는 [그림 5-9]를 참조하라. 이러한 작업이 기본적으로 master data IDOC을 생성하고, 분배하는데 필요한 절차들이다.

 

(참고 : 기본적으로 위와 같은 function module들을 생성할 때는, 처음부터 일일이 수작업으로 작성하는 것이 아니라, 다른 message type을 처리하는 function module을 복사한 다음, 여러분의 필요에 따라 적절히 수정하여 사용하면 된다. 예를 들면, message type DEBMAS에 대한 change pointer를 처리해 주는 function module MASTERIDOC_CREATE_SMD_DEBMAS MASTERIDOC_CREATE_DEBMAS를 복사하여 사용할 수 있을 것이다)

 

************************************************************************

* This function module has been modeled after standard SAP function

* modules for processing master data change pointers, such as

* MASTERIDOC_CREATE_SMD_DEBMAS. This function module was used

* as a skeleton for the following function module for processing

* customer hierarchy change pointers.

************************************************************************

 

FUNCTION ZMASTERIDOC_CREATE_SMD_ZDEBHI.

*"---------------------------------------------------------------------

*"*"Local interface:

*"       IMPORTING

*"             VALUE(MESSAGE_TYPE) LIKE  TBDME-MESTYP

*"---------------------------------------------------------------------

*

************************MODIFICATION************************************

* Programmer    :   Rajeev Kasturi                                     *

* Date          :   Feb. 1998                                          *

* Description   :   This function module has been created anew for     *

* generating Customer Hierarchy IDOCs used in ALE distribution of      *

* changes (creates/changes/deletes) of SD Customer Hierarchy. The new  *

* Message Type for this purpose is ZDEBHI, and the custom "Basic IDOC" *

* type is ZKNVHM01.                                                    *

************************************************************************

  DATA: BEGIN OF F_KNVHKEY,

           MANDT   LIKE KNVH-MANDT,

           HITYP   LIKE KNVH-HITYP,

           KUNNR   LIKE KNVH-KUNNR,

           VKORG   LIKE KNVH-VKORG,

           VTWEG   LIKE KNVH-VTWEG,

           SPART   LIKE KNVH-SPART,

           DATAB   LIKE KNVH-DATAB,

       END OF F_KNVHKEY.

*

  DATA: BEGIN OF F_KNVH.

          INCLUDE STRUCTURE ZKNVHKEY.

  DATA: END OF F_KNVH.

*

  DATA: BEGIN OF T_KNVHKEY OCCURS 10.

          INCLUDE STRUCTURE ZKNVHKEY.

  DATA: END OF T_KNVHKEY.

*

  DATA: BEGIN OF T_CHGPTRS OCCURS 10.

          INCLUDE STRUCTURE BDCP.

  DATA: END OF T_CHGPTRS.

 

  DATA: BEGIN OF T_CPIDENT OCCURS 10,

          CPIDENT LIKE BDCP-CPIDENT,

        END OF T_CPIDENT.

 

  DATA: BEGIN OF T_CPIDENT_KNVH OCCURS 10,

         MANDT   LIKE KNVH-MANDT,

         HITYP   LIKE KNVH-HITYP,

         KUNNR   LIKE KNVH-KUNNR,

         VKORG   LIKE KNVH-VKORG,

         VTWEG   LIKE KNVH-VTWEG,

         SPART   LIKE KNVH-SPART,

         DATAB   LIKE KNVH-DATAB,

          CPIDENT LIKE BDCP-CPIDENT,

        END OF T_CPIDENT_KNVH.

 

* created idocs

* SAP created variables - does not follow naming stds.

  DATA: CREATED_M_IDOCS LIKE SY-TABIX.

  DATA: CREATED_COMM_IDOCS LIKE SY-TABIX.

  DATA: CREATED_C_IDOCS LIKE SY-TABIX.

  DATA: DONE_SINCE_COMMIT LIKE SY-TABIX.

 

 

* read all not processed change pointers for the given messagetype,

* object class KUNHIER

* return code is not checked for since no exception is raised by

* the function module.

  CALL FUNCTION 'CHANGE_POINTERS_READ'

       EXPORTING

            CHANGE_DOCUMENT_OBJECT_CLASS = 'KUNHIER'

            MESSAGE_TYPE                 = MESSAGE_TYPE

            READ_NOT_PROCESSED_POINTERS  = 'X'

       TABLES

            CHANGE_POINTERS              = T_CHGPTRS.

 

*

  REFRESH T_KNVHKEY.

*

* create all keys from the change pointers

  LOOP AT T_CHGPTRS.

*     table KNVH

*     table KNVH of the change document equals the table KNVH

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+0(3)

                              F_KNVHKEY-MANDT.

    IF F_KNVHKEY-MANDT = SPACE.

      F_KNVHKEY-MANDT = T_CHGPTRS-MANDT.

    ENDIF.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+3(1)

                              F_KNVHKEY-HITYP.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+4(10)

                              F_KNVHKEY-KUNNR.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+14(4)

                              F_KNVHKEY-VKORG.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+18(2)

                              F_KNVHKEY-VTWEG.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+20(2)

                              F_KNVHKEY-SPART.

*

    PERFORM MOVE_X_TO_Y USING T_CHGPTRS-TABKEY+22(8)

                              F_KNVHKEY-DATAB.

*

    READ TABLE T_KNVHKEY WITH KEY F_KNVHKEY.

*

    MOVE F_KNVHKEY-MANDT TO T_KNVHKEY-MANDT.

    MOVE F_KNVHKEY-HITYP TO T_KNVHKEY-HITYP.

    MOVE F_KNVHKEY-KUNNR TO T_KNVHKEY-KUNNR.

    MOVE F_KNVHKEY-VKORG TO T_KNVHKEY-VKORG.

    MOVE F_KNVHKEY-VTWEG TO T_KNVHKEY-VTWEG.

    MOVE F_KNVHKEY-SPART TO T_KNVHKEY-SPART.

    MOVE F_KNVHKEY-DATAB TO T_KNVHKEY-DATAB.

*

    PERFORM CONVERT_CDCHGID_TO_MSGFN USING T_CHGPTRS-CDCHGID

                                           T_KNVHKEY-MSGFN.

    IF SY-SUBRC <> 0.

      APPEND T_KNVHKEY.

    ELSE.

      MODIFY T_KNVHKEY INDEX SY-TABIX.

    ENDIF.

*

*       add pointer to processed pointers

    MOVE-CORRESPONDING F_KNVHKEY TO T_CPIDENT_KNVH.

    MOVE T_CHGPTRS-CPIDENT TO T_CPIDENT_KNVH-CPIDENT.

    APPEND T_CPIDENT_KNVH.

  ENDLOOP.

*

  SORT T_KNVHKEY BY MANDT HITYP KUNNR VKORG VTWEG SPART DATAB.

  SORT T_CPIDENT_KNVH BY MANDT HITYP KUNNR VKORG VTWEG SPART DATAB.

*

* initialize counter variables for created idocs

  CREATED_M_IDOCS = 0.

  CREATED_C_IDOCS = 0.

  DONE_SINCE_COMMIT = 0.

 

  CLEAR T_CPIDENT. REFRESH T_CPIDENT.

 

* call of the idoc creator

  LOOP AT T_KNVHKEY WHERE MANDT = SY-MANDT.

    CLEAR   F_KNVH.

    MOVE-CORRESPONDING T_KNVHKEY TO F_KNVH.

* return code is not checked for since no exception is raised by

* the function module.

*

     CALL FUNCTION 'ZMASTERIDOC_CREATE_ZDEBHI'

         EXPORTING

              KNVHKEY            = F_KNVH

              RCVPFC             = ' '

              RCVPRN             = '         '

              RCVPRT             = ' '

              SNDPFC             = ' '

              SNDPRN             = '         '

              SNDPRT             = ' '

              MESSAGE_TYPE       = MESSAGE_TYPE

         IMPORTING

              CREATED_COMM_IDOCS = CREATED_COMM_IDOCS.

*

    CREATED_M_IDOCS = CREATED_M_IDOCS + 1.

    CREATED_C_IDOCS = CREATED_C_IDOCS + CREATED_COMM_IDOCS.

    DONE_SINCE_COMMIT = DONE_SINCE_COMMIT + 1.

*

* append all processed pointer

    LOOP AT T_CPIDENT_KNVH WHERE MANDT = F_KNVH-MANDT

                             AND HITYP = F_KNVH-HITYP

                             AND KUNNR = F_KNVH-KUNNR

                             AND VKORG = F_KNVH-VKORG

                             AND VTWEG = F_KNVH-VTWEG

                             AND SPART = F_KNVH-SPART

                             AND DATAB = F_KNVH-DATAB.

*

      T_CPIDENT-CPIDENT = T_CPIDENT_KNVH-CPIDENT.

      APPEND T_CPIDENT.

*

    ENDLOOP.

 

    IF DONE_SINCE_COMMIT >= C_IDOCS_BEFORE_COMMIT.

      DONE_SINCE_COMMIT = 0.

*

* write status of all processed pointers

* return code is not checked for since no exception is raised by

* the function module.

      CALL FUNCTION 'CHANGE_POINTERS_STATUS_WRITE'

           EXPORTING

                MESSAGE_TYPE           = MESSAGE_TYPE

           TABLES

                CHANGE_POINTERS_IDENTS = T_CPIDENT.

*

      COMMIT WORK.

* return code is not checked for since no exception is raised by

* the function module.

      CALL FUNCTION 'DEQUEUE_ALL'.

*

      CLEAR T_CPIDENT. REFRESH T_CPIDENT.

*

    ENDIF.

*

  ENDLOOP.                             "at t_knvhkey

*

* commit if necessary

  IF DONE_SINCE_COMMIT > 0.

*

* write status of all processed pointers

* return code is not checked for since no exception is raised by

* the function module.

    CALL FUNCTION 'CHANGE_POINTERS_STATUS_WRITE'

         EXPORTING

              MESSAGE_TYPE           = MESSAGE_TYPE

         TABLES

              CHANGE_POINTERS_IDENTS = T_CPIDENT.

*

    COMMIT WORK.

* return code is not checked for since no exception is raised by

* the function module.

    CALL FUNCTION 'DEQUEUE_ALL'.

*

  ENDIF.

*

  MESSAGE ID 'B1' TYPE 'I' NUMBER '038'

          WITH CREATED_M_IDOCS MESSAGE_TYPE.

  MESSAGE ID 'B1' TYPE 'I' NUMBER '039'

          WITH CREATED_C_IDOCS MESSAGE_TYPE.

ENDFUNCTION.

 

*&---------------------------------------------------------------------*

*&      Form  MOVE_X_TO_Y

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_T_CHGPTRS-TABKEY+20(2)  text                               *

*      -->P_F_KNVHKEY-SPART  text                                      *

*----------------------------------------------------------------------*

FORM MOVE_X_TO_Y USING X Y.

*

  Y = X.

*

ENDFORM.                               " MOVE_X_TO_Y

*&---------------------------------------------------------------------*

*&      Form  CONVERT_CDCHGID_TO_MSGFN

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_T_CHGPTRS-CDCHGID  text                                    *

*      -->P_T_KNVHKEY-MSGFN  text                                      *

*----------------------------------------------------------------------*

FORM CONVERT_CDCHGID_TO_MSGFN USING CDCHGID LIKE BDCP-CDCHGID

                                    MSGFN LIKE Z1KNVHM-MSGFN.

*

  MSGFN = SPACE.

*

  CASE CDCHGID.

    WHEN 'I'.

      MSGFN = C_MSGFN_I.

    WHEN 'U'.

      MSGFN = C_MSGFN_U.

    WHEN ' '.

      MSGFN = C_MSGFN_R.

    WHEN 'D'.

      MSGFN = C_MSGFN_D.

    WHEN 'E'.

      MSGFN = C_MSGFN_D.

    WHEN 'S'.

      MSGFN = C_MSGFN_S.

  ENDCASE.

*

ENDFORM.                               " CONVERT_CDCHGID_TO_MSGFN

*&---------------------------------------------------------------------*

*&      Form  FILL_SEGMENT_Z1KNVHM

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_KNVHKEY-MSGFN  text                                        *

*----------------------------------------------------------------------*

FORM FILL_SEGMENT_Z1KNVHM USING MSGFN.

*

  CLEAR Z1KNVHM.

*

  Z1KNVHM-MSGFN  =  MSGFN.

  Z1KNVHM-HITYP  =  KNVH-HITYP.

  Z1KNVHM-KUNNR  =  KNVH-KUNNR.

  Z1KNVHM-VKORG  =  KNVH-VKORG.

  Z1KNVHM-VTWEG  =  KNVH-VTWEG.

  Z1KNVHM-SPART  =  KNVH-SPART.

  Z1KNVHM-DATAB  =  KNVH-DATAB.

  Z1KNVHM-DATBI  =  KNVH-DATBI.

  Z1KNVHM-HKUNNR =  KNVH-HKUNNR.

  Z1KNVHM-HVKORG =  KNVH-HVKORG.

  Z1KNVHM-HVTWEG =  KNVH-HVTWEG.

  Z1KNVHM-HSPART =  KNVH-HSPART.

  Z1KNVHM-GRPNO  =  KNVH-GRPNO.

  Z1KNVHM-BOKRE  =  KNVH-BOKRE.

  Z1KNVHM-PRFRE  =  KNVH-PRFRE.

  Z1KNVHM-HZUOR  =  KNVH-HZUOR.

*

ENDFORM.                               " FILL_SEGMENT_Z1KNVHM

 

그림 5‑8 Change Pointer를 처리하는 ALE Function Module

 

 

 

************************************************************************

* This function module and global data was closely modeled after

* standard SAP function modules such as MASTERIDOC_CREATE_DEBMAS.

* This function * module was used a skeleton to create the following

* function module for distribution of customer hierarchy master IDOCs.

************************************************************************

 

FUNCTION ZMASTERIDOC_CREATE_ZDEBHI.

*"----------------------------------------------------------------------

*"*"Local interface:

*"       IMPORTING

*"             VALUE(KNVHKEY) LIKE  ZKNVHKEY STRUCTURE  ZKNVHKEY

*"             VALUE(RCVPFC) LIKE  BDALEDC-RCVPFC

*"             VALUE(RCVPRN) LIKE  BDALEDC-RCVPRN

*"             VALUE(RCVPRT) LIKE  BDALEDC-RCVPRT

*"             VALUE(SNDPFC) LIKE  BDALEDC-SNDPFC

*"             VALUE(SNDPRN) LIKE  BDALEDC-SNDPRN

*"             VALUE(SNDPRT) LIKE  BDALEDC-SNDPRT

*"             VALUE(MESSAGE_TYPE) LIKE  TBDME-MESTYP

*"       EXPORTING

*"             VALUE(CREATED_COMM_IDOCS) LIKE  SY-TABIX

*"----------------------------------------------------------------------

************************MODIFICATION************************************

* Programmer    :   Rajeev Kasturi                                     *

* This function module is called from the driver FM :                  *

* "ZMASTERIDOC_CREATE_SMD_ZDEBHI"..                                    *

* The processing is based on the change document object KUNHIER.       *

************************************************************************

 

 

  DATA: BEGIN OF F_IDOC_HEADER.

          INCLUDE STRUCTURE EDIDC.

  DATA: END OF F_IDOC_HEADER.

 

  DATA: BEGIN OF T_IDOC_DATA OCCURS 10.

          INCLUDE STRUCTURE EDIDD.

  DATA: END OF T_IDOC_DATA.

 

  DATA: BEGIN OF T_IDOC_COMM_CONTROL OCCURS 10.

          INCLUDE STRUCTURE EDIDC.

  DATA: END OF T_IDOC_COMM_CONTROL.

 

  DATA: ACTIVE_FLAG(1) TYPE C.

 

  DATA: COMM_CONTROL_LINES LIKE SY-TABIX.

 

  DATA: IDOC_CIMTYPE LIKE EDIDC-CIMTYP.

 

  DATA: PARTNER_TYPE LIKE TPAR-NRART.                       "P30K057526

 

  DATA: COUNTRY_ISO LIKE T005-INTCA.

 

* initial

  CLEAR T_IDOC_COMM_CONTROL.

  REFRESH T_IDOC_COMM_CONTROL.

  CLEAR T_IDOC_DATA.

  REFRESH T_IDOC_DATA.

 

  CLEAR IDOC_CIMTYPE.

 

 

* fill T_IDOC_DATA for Segment Z1KNVHM with KNVH

  SELECT SINGLE * FROM KNVH

         WHERE HITYP = KNVHKEY-HITYP

           AND KUNNR = KNVHKEY-KUNNR

           AND VKORG = KNVHKEY-VKORG

           AND VTWEG = KNVHKEY-VTWEG

           AND SPART = KNVHKEY-SPART

           AND DATAB = KNVHKEY-DATAB.

  IF SY-SUBRC = 0.

    PERFORM FILL_SEGMENT_Z1KNVHM USING KNVHKEY-MSGFN.

*

    CLEAR T_IDOC_DATA.

    T_IDOC_DATA-SEGNAM = C_SEGNAM_Z1KNVHM.

    T_IDOC_DATA-MANDT = SY-MANDT.

    T_IDOC_DATA-SDATA  = Z1KNVHM.

*

    APPEND T_IDOC_DATA.

  ENDIF.

*

* fill IDOC_HEADER

  F_IDOC_HEADER-MESTYP = MESSAGE_TYPE.

  F_IDOC_HEADER-IDOCTP = C_IDOCTP_ZDEBHI.

  F_IDOC_HEADER-CIMTYP = IDOC_CIMTYPE.

  F_IDOC_HEADER-SNDPFC = SNDPFC.

  F_IDOC_HEADER-SNDPRN = SNDPRN.

  F_IDOC_HEADER-SNDPRT = SNDPRT.

  F_IDOC_HEADER-RCVPFC = RCVPFC.

  F_IDOC_HEADER-RCVPRN = RCVPRN.

  F_IDOC_HEADER-RCVPRT = RCVPRT.

  F_IDOC_HEADER-SERIAL = SPACE.

*

*

  CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

       EXPORTING

            MASTER_IDOC_CONTROL            = F_IDOC_HEADER

       TABLES

            COMMUNICATION_IDOC_CONTROL     = T_IDOC_COMM_CONTROL

            MASTER_IDOC_DATA               = T_IDOC_DATA

       EXCEPTIONS

            ERROR_IN_IDOC_CONTROL          = 01

            ERROR_WRITING_IDOC_STATUS      = 02

            ERROR_IN_IDOC_DATA             = 03

            SENDING_LOGICAL_SYSTEM_UNKNOWN = 04.

          

  IF SY-SUBRC <> 0.

  ENDIF.

 

  DESCRIBE TABLE T_IDOC_COMM_CONTROL LINES COMM_CONTROL_LINES.

  CREATED_COMM_IDOCS = COMM_CONTROL_LINES.

ENDFUNCTION.

 

그림 5‑9 Master IDOC을 생성하고 전송하는 ALE Function Module

 

 

 

 

 

 

 

 

FUNCTION-POOL ZDEB.                         "MESSAGE-ID ..

*

*

  DATA: C_MSGFN_I LIKE Z1KNVHM-MSGFN VALUE '009',  "New

        C_MSGFN_U LIKE Z1KNVHM-MSGFN VALUE '004',  "Change

        C_MSGFN_R LIKE Z1KNVHM-MSGFN VALUE '005',  "Refresh

        C_MSGFN_T LIKE Z1KNVHM-MSGFN VALUE '023',  "Synchronisation

        C_MSGFN_D LIKE Z1KNVHM-MSGFN VALUE '003',  "Deletion

        C_MSGFN_S LIKE Z1KNVHM-MSGFN VALUE '018'.  "Reissue

DATA:   C_IDOCS_BEFORE_COMMIT LIKE SY-TABIX VALUE 50.

DATA:   C_SEGNAM_Z1KNVHM LIKE EDIDD-SEGNAM VALUE 'Z1KNVHM'.

DATA:   C_IDOCTP_ZDEBHI LIKE BDALEDC-IDOCTP VALUE 'ZKNVHM01'.

TABLES: KNVH, Z1KNVHM.

 

그림 5‑10 ALE Function Module에서 사용되는 Global Data