IDoc¸¦ »ç¿ëÇÏ¿© Business Object °³¹ß

ABAP È®Àå ¸ðµâÀÇ WebSphere Business Object´Â SAP¿¡¼­ IDoc·Î Á¤ÀÇµÉ ¼ö ÀÖ½À´Ï´Ù. IDoc´Â ALE(Application Link Enabling)·Î ¾Ë·ÁÁø SAPÀÇ EDI ¼Ö·ç¼ÇÀÇ ÀϺÎÀÔ´Ï´Ù. À̵éÀÇ Á¤ÀÇ´Â SAPÀÇ BOR(Business Object Repository)¿¡ ÀúÀåµÇ¸ç, SAP ½Ã½ºÅÛ ³»¿¡¼­ ±Û·Î¹ú·Î À̵é Á¤ÀÇ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ IBM WebSphere Business Integration Adapter for mySAP.comÀº ALEÀÇ Á¤ÀÇ ºÎºÐ¿¡ ¿µÇâ·ÂÀ» ¹ßÈÖÇÏ¿©, SAP ±âº» API¿Í ÇÔ²² »ç¿ëÇϱâ À§ÇÑ Áغñ·Î SAP ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ WebSphere Business Object¸¦ ÇØ¼®ÇÏ°í ±¸¹® ºÐ¼®ÇÕ´Ï´Ù. ¾î´ðÅÍ´Â IDoc¸¦ »ç¿ëÇÏ¿© °³¹ßµÈ Business Object¸¦ Áö¿øÇÏ´Â IDoc Çڵ鷯¸¦ Á¦°øÇÕ´Ï´Ù.

IDoc Çڵ鷯´Â µÎ °³ÀÇ ÇÔ¼ö ¸ðµâ·Î ±¸¼ºµË´Ï´Ù. µ¿Àû °Ë»ö ¹× µ¿Àû Æ®·£Àè¼Ç°ú °°Àº ´Ù¸¥ ABAP Çڵ鷯´Â ´ÜÀÏ ÇÔ¼ö ¸ðµâ·Î¸¸ ±¸¼ºµË´Ï´Ù.

/CWLD/RFC_DO_VERB_NEXTGENÀº Business Object µ¥ÀÌÅ͸¦ IDoc Çڵ鷯

/CWLD/IDOC_HANDLER¿¡ Àü´ÞÇÕ´Ï´Ù. ¸ðµç ¿ÀºêÁ§Æ® À¯Çü¿¡ ´ëÇØ ÀϹÝÀûÀÎ IDoc Çڵ鷯´Â Business ObjectÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µÈ IDoc À¯ÇüÀ» È®º¸Çϰí ÇØ´ç IDocÀÇ ±¸Á¶·Î Business Object µ¥ÀÌÅ͸¦ ÀçÇü½ÄÈ­ÇÕ´Ï´Ù. µ¥ÀÌÅ͸¦ ÀçÇü½ÄÈ­ÇÑ ÈÄ, ÀÏ¹Ý IDoc Çڵ鷯´Â Business Object µ¥ÀÌÅ͸¦ SAP ±âº» API¿ÍÀÇ ÅëÇÕÀ» ó¸®ÇÏ´Â ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯(Business Object À¯Çü°ú Verb Á¶ÇÕ¿¡ µû¶ó)¿¡ Àü´ÞÇÕ´Ï´Ù. ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯°¡ Business Object µ¥ÀÌÅÍ Ã³¸®¸¦ ¿Ï·áÇϸé, IDoc Çü½ÄÀÇ Business Object µ¥ÀÌÅ͸¦ /CWLD/IDOC_HANDLER·Î ¸®ÅÏÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÀÏ¹Ý IDoc Çڵ鷯´Â ÀÌÁ¦ Business Object µ¥ÀÌÅ͸¦ ¿ø·¡ Çü½ÄÀ¸·Î ´Ù½Ã º¯È¯ÇÏ¿© /CWLD/RFC_DO_VERB_NEXTGENÀ¸·Î ¸®ÅÏÇÕ´Ï´Ù.

±×¸² 16Àº IDoc Çڵ鷯ÀÇ ±âº» ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

±×¸² 16. IDoc h'andler ±¸Á¶


¾î´ðÅÍ Á¦°ø IDoc Çڵ鷯¸¦ »ç¿ëÇÏ·Á¸é SAP ÀÀ¿ëÇÁ·Î±×·¥¿¡ Á¤ÀÇµÈ IDoc°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. SAP Àü´Þ ¶Ç´Â °í°´ ºôµå IDoc¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. IDoc Á¤Àǰ¡ SAP¿ë WebSphere Business ObjectÀÇ Á¤ÀǸ¦ ¹Ì·¯¸µÇØ¾ß ÇϹǷÎ, ¾î´ðÅÍ´Â IDoc¿¡ µû¶ó WebSphere Business Object Á¤ÀǸ¦ »ý¼ºÇϱâ À§ÇØ µÎ °³ÀÇ µµ±¸¸¦ Á¦°øÇÕ´Ï´Ù.

´ÙÀ½ ¼½¼Ç¿¡¼­´Â ÀÌ·¯ÇÑ µµ±¸¸¦ µÑ ´Ù »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

IBM CrossWorlds StationÀ» »ç¿ëÇÏ¿© Business Object Á¤ÀÇ »ý¼º

IBM CrossWorlds StationÀ» »ç¿ëÇÏ¿© Business Object Á¤ÀǸ¦ »ý¼ºÇϱâ Àü¿¡, SAP ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ WebSphere Business Object¸¦ ÀÌ¹Ì ÀÛ¼ºÇß¾î¾ß ÇÕ´Ï´Ù. IDoc¸¦ ±â¹ÝÀ¸·Î ÇÑ Business Object Á¤ÀǸ¦ ÀÛ¼ºÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.

  1. IBM CrossWorlds Station(Æ®·£Àè¼Ç /n/CWLD/HOME)À¸·Î À̵¿ÇϽʽÿÀ.
    Áß¿ä:
    Business Object Á¤ÀÇ ¶Ç´Â ABAP Çڵ鷯¸¦ »ý¼ºÇÏ·Á¸é IBM CrossWorlds StationÀ» »ç¿ëÇÒ ¶§ SAP ½Ã½ºÅÛ¿¡ ¿µ¾î·Î ·Î±×¿ÂÇØ¾ß ÇÕ´Ï´Ù. CrossWorlds Station ·Î±×´Â ¿µ¾î·Î¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
  2. µµ±¸ ÅÇÀ» ´©¸£½Ê½Ã¿À.
  3. CW ¿ÀºêÁ§Æ® Á¤ÀÇ ´ÜÃ߸¦ ´©¸¥ ´ÙÀ½ °í±Þ ´Ù¿î·Îµå(F7)¸¦ ´©¸£½Ê½Ã¿À.
  4. ÇÊ¿äÇÑ ´ë·Î ¿ÀºêÁ§Æ® ¹× ÇÔ¼ö Á¤º¸¸¦ ä¿ì½Ê½Ã¿À. ±âÁ¸ IDoc À¯Çü ¹× WebSphere ¿ÀºêÁ§Æ® À̸§À» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÇÔ¼ö ¼½¼ÇÀÇ Çʵå´Â Áö¿øµÈ Verb¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, Order IDoc À¯Çü YXRV4B01À» ±â¹ÝÀ¸·Î ÇÑ SAP4_Order Business Object´Â ´ÙÀ½ ±â´ÉÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.

Verb ÇÔ¼ö¿¡ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ABAP Çڵ鷯·Î Business Object µ¥ÀÌÅÍ ¶ó¿ìÆÃÀ» ÂüÁ¶ÇϽʽÿÀ.

IDoc¸¦ Á¤ÀÇÇÑ ÈÄ, Business Object°¡ Áö¿øÇØ¾ß ÇÏ´Â °¢ Verb¿¡ ´ëÇÑ ÇÔ¼ö ¸ðµâÀ» ÀÛ¼ºÇϽʽÿÀ. /CWLD/IDOC_HANDLER°¡ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇØ °¢ ÇÔ¼ö¿¡´Â ´ÙÀ½ ÀÎÅÍÆäÀ̽º°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

*" IMPORTING 
 *"        VALUE(OBJECT_KEY_IN) LIKE /CWLD/LOG_HEADER-OBJ_KEY OPTIONAL 
 *"        VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR- NPUTMETHD OPTIONAL
 *"        VALUE(LOG_NUMBER) LIKE /CWLD/LOG_HEADER-LOG_NR OPTIONAL 
 *" EXPORTING 
 *"        VALUE(OBJECT_KEY_OUT) LIKE /CWLD/LOG_HEADER-OBJ_KEY 
 *"        VALUE(RETURN_CODE) LIKE /CWLD/RFCRC_STRU-RFCRC 
 *"        VALUE(RETURN_TEXT) LIKE /CWLD/LOG_HEADER-OBJ_KEY 
 *" TABLES 
 *"        IDOC_DATA STRUCTURE  EDID4
 

SAPODA¸¦ »ç¿ëÇÏ¿© Business Object Á¤ÀÇ »ý¼º

SAPODA¸¦ »ç¿ëÇÏ¿© IDoc¿¡ µû¶ó ABAP È®Àå ¸ðµâÀÇ Business Object Á¤ÀǸ¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

Áß¿ä:
¶ÇÇÑ SAPODA¸¦ »ç¿ëÇϱâ À§ÇØ SAP ½Ã½ºÅÛ¿¡ ¿µ¾î·Î ·Î±×¿ÂÇØ¾ß ÇÕ´Ï´Ù.

SAPODA¸¦ »ç¿ëÇÏ¿© Business Object Á¤ÀǸ¦ »ý¼ºÇÒ ¶§, Business Object Designer¸¦ »ç¿ëÇÏ¿© Á¤ÀǸ¦ º¸°í ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. SAPODA »ç¿ë¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â ºÎ·Ï D, SAPODA¸¦ »ç¿ëÇÏ¿© Business Object Á¤ÀÇ »ý¼ºÀ» ÂüÁ¶ÇϽʽÿÀ.

IDoc¸¦ Á¤ÀÇÇÑ ÈÄ, Business Object°¡ Áö¿øÇØ¾ß ÇÏ´Â °¢ Verb¿¡ ´ëÇÑ ÇÔ¼ö ¸ðµâÀ» ÀÛ¼ºÇϽʽÿÀ.
/CWLD/IDOC_HANDLER°¡ ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ´ÂÁö È®ÀÎÇϱâ À§ÇØ °¢ ÇÔ¼ö¿¡´Â ´ÙÀ½ ÀÎÅÍÆäÀ̽º°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

*" IMPORTING 
 *"        VALUE(OBJECT_KEY_IN) LIKE /CWLD/LOG_HEADER-OBJ_KEY OPTIONAL 
 *"        VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR- NPUTMETHD OPTIONAL
 *"        VALUE(LOG_NUMBER) LIKE /CWLD/LOG_HEADER-LOG_NR OPTIONAL 
 *" EXPORTING 
 *"        VALUE(OBJECT_KEY_OUT) LIKE /CWLD/LOG_HEADER-OBJ_KEY 
 *"        VALUE(RETURN_CODE) LIKE /CWLD/RFCRC_STRU-RFCRC 
 *"        VALUE(RETURN_TEXT) LIKE /CWLD/LOG_HEADER-OBJ_KEY 
 *" TABLES 
 *"        IDOC_DATA STRUCTURE  EDID4
 

IDoc Çڵ鷯¿Í Create, Update ¹× Delete Verb

ÀÛ¼º, °»½Å ¹× »èÁ¦ Á¶ÀÛÀ» Áö¿øÇÏ´Â IDoc Çڵ鷯´Â IDoc·Î¼­ Çü½ÄÈ­µÈ Business Object µ¥ÀÌÅ͸¦ ¼ö½ÅÇÕ´Ï´Ù. À̵é Á¶ÀÛÀÇ ¿ªÇÒÀº Business Object µ¥ÀÌÅ͸¦ SAPÀÇ Call Transaction API¿Í ÅëÇÕÇÏ°í ¿ÀºêÁ§Æ® ۸¦ »ý¼ºÇÏ´Â °ÍÀÔ´Ï´Ù. Business Object µ¥ÀÌÅͰ¡ ¾Æ´Ñ ¿ÀºêÁ§Æ® ۸¸ÀÌ /CWLD/IDOC_HANDLERÀ» ÅëÇØ Ä¿³ØÅÍ·Î ´Ù½Ã Àü´ÞµË´Ï´Ù. /CWLD/IDOC_HANDLER´Â Business Object µ¥ÀÌÅ͸¦ ¸Þ¸ð¸®¿¡ ÀúÀåÇϰí, ¿ÀºêÁ§Æ® ۸¦ »óÀ§ Business Object¿¡¼­ IsKey·Î Ç¥½ÃµÈ ù ¹øÂ° ¼Ó¼º¿¡ »ðÀÔÇÕ´Ï´Ù. ±×·± ´ÙÀ½ /CWLD/IDOC_HANDLER°¡ Business Object µ¥ÀÌÅ͸¦ Ä¿³ØÅÍ¿¡ ´Ù½Ã Àü´ÞÇÕ´Ï´Ù.

ÁÖ:
WebShpere InterChange Server°¡ ÅëÇÕ ºê·ÎÄ¿ÀÏ °æ¿ì, ¸ÊÇÎ ÇϺΠ±¸Á¶¿¡¼­ µ¿Àû »óÈ£ ÂüÁ¶¸¦ ÇÏ·Á¸é ObjectEventId¸¦ º¸Á¸ÇØ¾ß ÇϹǷΠBusiness Object µ¥ÀÌÅ͸¦ À¯Áöº¸¼öÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

¾Æ·¡ÀÇ »ùÇà ÄÚµå´Â ´ÙÀ½ Ç÷ο츦 Ç¥½ÃÇÕ´Ï´Ù.

  1. ±Û·Î¹ú µ¥ÀÌÅ͸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
  2. IDoc¸¦ ÀÛ¾÷ Å×ÀÌºí¿¡ ÇØÃ¼ÇÕ´Ï´Ù.
  3. BDC¸¦ ºôµåÇÕ´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ Áö¼ÓÀû ÀÛµ¿À» À§ÇØ /CWLD/INBIDOC_FRMS0 ¾ç½ÄÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ³»ºÎ Å×ÀÌºí¿¡¼­ BDC Å×À̺í·Î Àü¼ÛÇÕ´Ï´Ù.
  4. Call TransactionÀ» ÀÛ¼ºÇÕ´Ï´Ù.
  5. ¿ÀºêÁ§Æ® ۸¦ ĸóÇÕ´Ï´Ù.

´ÙÀ½ »ùÇà ÄÚµå´Â SAP ÆÇ¸Å ½Ã¼¼ ÀÛ¼ºÀ» Áö¿øÇÕ´Ï´Ù.

*- Initialize working variables and internal tables
   PERFORM INITIALIZE_IN.
  
 *- I01(MF): Begin IDoc interpretation
   PERFORM LOG_UPDATE(/CWLD/SAPLLOG) USING C_INFORMATION_LOG TEXT-I01
                                      SPACE SPACE SPACE.
  
 *- Interpret IDoc data structure
   IF NOT IDOC_DATA[] IS INITIAL.
  
 *- Move IDoc to internal tables
     PERFORM INTERPRET_IDOC.
  
 *- Check some of the input fields
     PERFORM CHECK_INPUT.
  
 *- If key values were missing, exit function
     IF RETURN_CODE NE 0.
     EXIT.
   ENDIF.
  
 *- E01(MF): No Idoc data lines sent for processing.
   ELSE.
  
     RETURN_CODE = 2.
     RETURN_TEXT = TEXT-E01.
     EXIT.
  
   ENDIF.
  
 *- Build the BDC session for transaction VA21.
   PERFORM BUILD_BDC_VA21.
  
 *- Call Transaction
   PERFORM LOG_UPDATE(/CWLD/SAPLLOG) USING C_INFORMATION_LOG TEXT-I02
                                      'VA21' C_BLANK C_BLANK.
  
   CALL TRANSACTION 'VA21' USING BDCDATA
                            MODE INPUT_METHOD
                          UPDATE 'S'
                        MESSAGES INTO BDC_MESSAGES.
  
 *- Capture return code and object key from transaction
   PERFORM PREPARE_RETURNED_MESSAGE.
  
 ENDFUNCTION.
 

ÀÛ¼º ³í¸®¿¡´Â µÎ °¡Áö ±âº» ±â´ÉÀÌ ÀÖ½À´Ï´Ù.

IDOC ±¸Á¶ º¯È¯

ÀÛ¼º ³í¸®ÀÇ Ã¹ ¹øÂ° ºÎºÐÀº IDoc ±¸Á¶ÀÇ µ¥ÀÌÅ͸¦ ÀÛ¾÷ µ¥ÀÌÅÍ ±¸Á¶·Î º¯È¯Çϴ Ÿ½ºÅ©ÀÔ´Ï´Ù. À̸¦ ¼öÇàÇÏ·Á¸é ´ÙÀ½°ú À¯»çÇÑ Äڵ带 ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.

loop at idoc_data.
  
     case idoc_data-segnam.
       when 'ZSQVBAK'.                  " Header Data
         move idoc_data-sdata to zsqvbak.
  
       when 'ZSQVBUK'.                  " Status Segment
         move idoc_data-sdata to zsqvbuk.
  
       when 'ZSQVBP0'.                  " Partner Header Level
         move idoc_data-sdata to zsqvbp0.
  
       when 'ZSQVBAP'.                  " Item Detail
         move idoc_data-sdata to zsqvbap.
  
       when 'ZSQVBA2'.                  " Item Detail Part 2
         move idoc_data-sdata to zsqvba2.
  
       when 'ZSQVBUP'.                  " Item Status
         move idoc_data-sdata to zsqvbup.
  
       when 'ZSQVBKD'.                  " Commercial data
         move idoc_data-sdata to zsqvbkd.
  
       when 'ZSQKONV'.                  " Condition
         move idoc_data-sdata to zsqkonv.
  
       when 'ZSQVBPA'.                  " Partner Item Level
         move idoc_data-sdata to zsqvbpa.
  
     endcase.
  
   endloop.
 

Àιٿîµå Call Transaction ³í¸® ÀÛ¼º

ÀÛ¼º ³í¸®ÀÇ µÎ ¹øÂ° ºÎºÐ¿¡¼­´Â µ¥ÀÌÅ͸¦ SAP ÀÀ¿ëÇÁ·Î±×·¥ µ¥ÀÌÅͺ£À̽º¿¡ Ãß°¡ÇÏ´Â Á¶ÀÛÀ» ¼öÇàÇÕ´Ï´Ù. BAPI ¹× SAP Ç¥ÁØ ±â´É°ú °°Àº »ç¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» »ç¿ëÇϰųª, »ç¿ëÀÚ Á¤ÀÇ °³¹ß Call Transaction ±â´ÉÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» »ç¿ëÇÏ´Â °æ¿ì, ÀÌÈÄ ¸±¸®½º¿¡¼­ º¯°æµÉ ¼ö ÀÖÀ½À» ±â¾ïÇϽʽÿÀ. µ¥ÀÌÅͺ£À̽º¿¡ ¾²Áö ¾Ê°í Call TransactionÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. Call TransactionÀº SAP µ¥ÀÌÅͺ£À̽º º¯°æ»çÇ׿¡ µ¶¸³ÀûÀ̰í ÇÊ¿äÇÑ ¹üÀ§¿Í ±â´É¿¡ °íÀ¯ÇÑ »ç¿ëÀÚ Á¤ÀÇ ±â´ÉÀ» °³¹ßÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.

Business Object µ¥ÀÌÅ͸¦ SAP¿¡ Àü´ÞÇϱâ À§ÇØ IBM CrossWorlds Station(Æ®·£Àè¼Ç /n/CWLD/HOME)¿¡¼­ Àιٿîµå ¸¶¹ý»ç¸¦ »ç¿ëÇϰųª, SAP BDC ·¹ÄÚ´õ¸¦ »ç¿ëÇϰųª ¶Ç´Â À̸¦ ¼öµ¿À¸·Î °³¹ßÇÏ¿© ÀϺΠABAP Äڵ带 »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

Àιٿîµå ¸¶¹ý»ç´Â ÀÛ¼º Æ®·£Àè¼ÇÀ» À§ÇÑ È°µ¿À» ±â·ÏÇϰí BDC ³í¸®·Î ÅØ½ºÆ® ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÆÇ¸Å ½Ã¼¼ ¿¹ÀÇ °æ¿ì, Æ®·£Àè¼Ç VA21ÀÌ ±â·ÏµË´Ï´Ù.

Àιٿîµå ¸¶¹ý»ç¸¦ »ç¿ëÇÏ¿© Æ®·£Àè¼Ç VA21À» ±â·ÏÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.

  1. IBM CrossWorlds Station(Æ®·£Àè¼Ç /n/CWLD/HOME)À¸·Î À̵¿ÇϽʽÿÀ.
    Áß¿ä:
    Business Object Á¤ÀÇ ¶Ç´Â ABAP Çڵ鷯¸¦ »ý¼ºÇÏ·Á¸é IBM CrossWorlds StationÀ» »ç¿ëÇÒ ¶§ SAP ½Ã½ºÅÛ¿¡ ¿µ¾î·Î ·Î±×¿ÂÇØ¾ß ÇÕ´Ï´Ù. CrossWorlds Station ·Î±×´Â ¿µ¾î·Î¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
  2. °³¹ß ÅÇ¿¡¼­ Àιٿîµå ¸¶¹ý»ç ´ÜÃ߸¦ ´©¸£½Ê½Ã¿À.
  3. ´ÙÀ½ Á¤º¸¸¦ ÀÔ·ÂÇϽʽÿÀ.
  4. ·¹Äڵ带 ´©¸£½Ê½Ã¿À.
  5. Business Object ±â´ÉÀ» Áö¿øÇÏ´Â Æ®·£Àè¼Ç ´Ü°è¸¦ ¼öÇàÇϽʽÿÀ. ¸ðµç Çʼö ÇÊµå ¹× È­¸éÀ» »ç¿ëÇϽʽÿÀ. ¿Ï·á ½Ã, Æ®·£Àè¼ÇÀ» ÀúÀåÇϽʽÿÀ.
  6. Business Object¿¡ ¸ÞŸ µ¥ÀÌÅÍ·Î Æ÷ÇÔÇÏ·Á´Â ±¸¼º¿ä¼Ò¸¦ ¼±ÅÃÇϽʽÿÀ. Ä¿¼­¸¦ ±¸¼º¿ä¼Ò¿¡ µÐ ´ÙÀ½ ¼­ºêÆ®¸® ¼±ÅÃ/¼±Åà Ãë¼Ò ´ÜÃß(F9)¸¦ ´©¸£½Ê½Ã¿À. ±âº»ÀûÀ¸·Î, ¸ðµç ±¸¼º¿ä¼Ò°¡ ¼±Åõ˴ϴÙ.
  7. »õ µ¿Àû ¿ÀºêÁ§Æ® ¶Ç´Â ¼Ò½º Äڵ带 »ý¼ºÇϽʽÿÀ.

´ÙÀ½ »ùÇà ÄÚµå´Â »ý¼ºµÈ BDC ¼¼¼ÇÀÇ Ã¹ ¹øÂ° ÀϺΠÇà¿¡¼­ ¹ßÃéÇÑ °ÍÀÔ´Ï´Ù.

* Sales doc. Initial screen Create
 perform dynpro_new using 'SAPMV45A' '0101' .
  
 * Sales document type
 perform dynpro_set using 'VBAK-AUART' 'QT' .
  
 * Distribution channel
 perform dynpro_set using 'VBAK-VTWEG' 'sourcefield' .
  
 * Division
 perform dynpro_set using 'VBAK-SPART' 'sourcefield' .
  
 * Function Command
 perform dynpro_set using 'BDC_OKCODE' '=ENT2' .
  
 * 4.0: Screen Container for Overview Screens (normal header)
 perform dynpro_new using 'SAPMV45A' '4001' .
  
 * Sold-to party
 perform dynpro_set using 'KUAGV-KUNNR' '238' .
  
 * Ship-to party
 perform dynpro_set using 'KUWEV-KUNNR' '238' .
  
 * Function Command
 perform dynpro_set using 'BDC_OKCODE' '=KKAU' .
  
 * 4.0: Screen container for document header screens
 perform dynpro_new using 'SAPMV45A' '4002' .
  
 * Date until which bid/quotation is binding (valid-to date)
 perform dynpro_set using 'VBAK-BNDDT' '20000630' .
 

SAPÀÇ BDC ·¹ÄÚ´õ(Æ®·£Àè¼Ç SHDB)¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ »ùÇà ÄÚµå´Â BDC ·¹ÄÚ´õ¸¦ »ç¿ëÇÏ¿© »ý¼ºµÇ¾ú½À´Ï´Ù.

start-of-selection.                                
  
 read dataset dataset into record.
  if sy-subrc <> 0. exit. endif.
  
  perform bdc_dynpro      using 'SAPMV45A' '0101'.
  perform bdc_field       using 'BDC_CURSOR'
                                'VBAK-AUART'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=ENT2'.
  perform bdc_dynpro      using 'SAPMV45A' '4001'.
  perform bdc_field       using 'BDC_OKCODE'
                                '=KKAU'.
  perform bdc_field       using 'BDC_CURSOR'
                                'KUWEV-KUNNR'.
  perform bdc_field       using 'KUAGV-KUNNR'
                                record-KUNNR_001.
  perform bdc_field       using 'KUWEV-KUNNR'
 

ÀÌ ¸Þ¼ÒµåÀÇ Ãâ·Â¿¡´Â ù ¹øÂ° ¸Þ¼ÒµåÀÇ Business Object ÁÖ¼®ÀÌ ¾ø±â ¶§¹®¿¡ º°·Î ¹Ù¶÷Á÷ÇÏÁö ¾Ê½À´Ï´Ù. SAPÀÇ BDC ·¹ÄÚ´õ¸¦ »ç¿ëÇÏ´Â ÀÌÁ¡Àº ÀÌ ·¹ÄÚ´õ°¡ BDCÀÇ ±â·ÏÀ» °ËÁõÇϱâ À§ÇÑ µ¶¸³Àû ¸Þ¼Òµå¸¦ »ý¼ºÇÑ´Ù´Â °ÍÀÔ´Ï´Ù.

´Ù¸¥ ¸Þ¼Òµå´Â BDC¸¦ ¼öµ¿À¸·Î »ý¼ºÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ´Â Àüü ÀÛ¼º ±â´É¿¡ ´ëÇÑ ¹Ù¶÷Á÷ÇÑ Á¢±Ù ¹æ¹ýÀÌ ¾Æ´Ï¸ç, Â÷¶ó¸® ÀÌÀü ¸Þ¼Òµå¿¡ ´ëÇÑ º¸¿ÏÃ¥À̶ó ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â Ãß°¡ È­¸é¿¡ ´ëÇÑ ³í¸®¸¦ Ãß°¡Çϰųª, ÀÔ·Â µ¥ÀÌÅÍ·Î ÀÎÇØ SAP Æ®·£Àè¼ÇÀÌ À̵éÀ» »ý¼ºÇÏ´Â °æ¿ì¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â »óÀÚ¸¦ ÆË¾÷ÇØ¾ß ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù.

IDoc Çڵ鷯 ¹× Retrieve Verb

Retrieve Verb¸¦ Áö¿øÇÏ´Â ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯´Â /CWLD/IDOC_HANDLER¿¡¼­ Business Object µ¥ÀÌÅ͸¦ ¼ö½ÅÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å, /CWLD/IDOC_HANDLER´Â ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯 ÇÔ¼öÀÇ OBJECT_KEY_IN ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© IsKey·Î Ç¥½ÃµÈ ù ¹øÂ° ¼Ó¼º°ª¸¸À» Àü´ÞÇÕ´Ï´Ù. ÀÌ ¼Ó¼º°ªÀ» »ç¿ëÇÏ¿© ABAP SQLÀ» »ç¿ëÇÏ´Â Business ObjectÀÇ ÀνºÅϽº¿¡ °ü·ÃµÈ ¸ðµç Á¤º¸¸¦ °Ë»öÇϰí, ÀÌ µ¥ÀÌÅ͸¦ ÀûÀýÇÑ IDoc ±¸Á¶·Î Çü½ÄÈ­ÇÏ´Â °ÍÀº ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.

ÁÖ:
۰¡ º¹¼ö Çʵå·Î ±¸¼ºµÇ´Â °æ¿ì, À̺¥Æ® °¨Áö ¸ÞÄ¿´ÏÁò(¶Ç´Â WebSphere InterChange Server°¡ ÅëÇÕ ºê·ÎÄ¿ÀÏ ¶§¿¡´Â ¸Ê)ÀÌ À̵é ÇʵåÀÇ °ªÀ» ÃÖ»óÀ§ ·¹º§ Business ObjectÀÇ Ã¹ ¹øÂ° Ű ¼Ó¼ºÀ¸·Î ¿¬°áÇÕ´Ï´Ù. /CWLD/IDOC_HANDLER´Â ¿¬°áµÈ ÀÌ Å°¸¦ »ç¿ëÇÏ¿© À̸¦ OBJECT_KEY_IN ¸Å°³º¯¼ö·Î ·ÎµåÇÕ´Ï´Ù. ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯´Â OBJECT_KEY_IN ¸Å°³º¯¼öÀÇ °ªÀ» º¹¼ö Ű Çʵå·Î ±¸¹® ºÐ¼®ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ±â´ÉÀ» À¯Áöº¸¼öÇÏ·Á¸é /CWLD/IDOC_HANDLER¸¦ »ç¿ëÇÒ ¶§ Ű¿¡ ´ëÇÑ À̸§-°ª ½ÖÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

¾Æ·¡ÀÇ ÄÚµå ´ÜÆíÀº ÆÇ¸Å ½Ã¼¼ÀÇ °Ë»öÀ» À§ÇÑ ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÆÇ¸Å ½Ã¼¼ Business Object´Â VBAK, VBUK, VBPO, VBAP, VBUP, VBKD, KNOV ¹× VBPA Å×ÀÌºí¿¡¼­ µ¥ÀÌÅ͸¦ °Ë»öÇÕ´Ï´Ù. À̵é Å×À̺íÀº IDoc À¯Çü ZSLSQUOTÀÇ °èÃþ ±¸Á¶ ¹× Ä«µð³¾¸®Æ¼¸¦ µû¸¨´Ï´Ù. ÄÚµå´Â ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.

  1. ±Û·Î¹ú µ¥ÀÌÅ͸¦ ÃʱâÈ­ÇÕ´Ï´Ù.
  2. SAP ÀÀ¿ëÇÁ·Î±×·¥ µ¥ÀÌÅͺ£À̽º¿¡¼­ Business Object µ¥ÀÌÅ͸¦ ¸®ÅÏÇÕ´Ï´Ù.
  3. ¸®ÅÏµÈ µ¥ÀÌÅÍ¿¡¼­ IDoc¸¦ ºôµåÇϰí ÀÌ µ¥ÀÌÅ͸¦ /CWLD/IDOC_HANDLER¿¡ ¸®ÅÏÇÕ´Ï´Ù.

IDoc À¯Çü ZSLSQUOTÀÇ ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯¿¡ ´ëÇÑ ÄÚµå ´ÜÆíÀº ´ÙÀ½°ú °°½À´Ï´Ù.

*- Clear the interface structures.
   clear: g_text, object_key_out, return_code, return_text, idoc_data.
   refresh: idoc_data.
  
 *  If no key value is specified, log it as an error and exit.
   if object_key_in is initial or
      object_key_in = c_cxignore_const.
     perform log_update(/cwld/sapllog) using c_error_log text-e02
                                      space space space.
     return_code = 1.
     return_text = text-e02.
     exit.
   endif.
  
   perform initialize_global_structures.
  
   perform fill_internal_tables.
   if not return_code is initial.
     exit.
   endif.
  
 * Build Idoc segments from internal tables
   perform fill_idoc_inttab.
  
   return_code = 0.
   return_text = text-s01.
  
   perform log_update(/cwld/sapllog) using c_information_log text-s01
                                      space space space.
 endfunction.
 

µÎ °¡Áö °¡Àå Áß¿äÇÑ ¸Å°³º¯¼ö´Â Àιٿîµå Ű¿¡ ´ëÇÑ OBJECT_KEY_IN ¹× ¾Æ¿ô¹Ù¿îµå µ¥ÀÌÅÍ¿¡ ´ëÇÑ IDOC_DATAÀÔ´Ï´Ù. OBJECT_KEY_INÀÌ º¹¼ö ۸¦ Ç¥½ÃÇÏ´Â ¿¬°áµÈ ¹®ÀÚ¿­ÀÏ ¼ö ÀÖÀ½¿¡ À¯ÀÇÇϽʽÿÀ(Á¤ÀÇÇÑ ±ÔÄ¢ ±âÁØ). ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯´Â ¿¬°áµÈ °ªÀ» ±¸¹® ºÐ¼®Çؼ­ °ªÀÇ ÀϺθ¦ ÀûÀýÇÑ Å° Çʵ忡 ·ÎµåÇÕ´Ï´Ù. ÀÌ ±â´ÉÀ» À¯Áöº¸¼öÇÏ·Á¸é /CWLD/IDOC_HANDLER¸¦ »ç¿ëÇÒ ¶§ Ű¿¡ ´ëÇÑ À̸§-°ª ½ÖÀ» ÁöÁ¤ÇÏÁö ¾Ê´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

VBAK Å×À̺íÀÌ ÇÏÀ§ Å×ÀÌºí¿¡ ´ëÇÑ ¼±Åà ±âÁØÀ» ÃßÁøÇϹǷÎ, °¢ Å×À̺íÀÌ ÀÛ¾÷ Å×ÀÌºí¿¡ ·ÎµåµË´Ï´Ù. VBAK Å×À̺íÀ» »ç¿ëÇÏ¿©, Ãß°¡ ۰¡ ÀÖ´Â ÇÏÀ§ Å×À̺íÀ» °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ ÆÇ¸Å ½Ã¼¼ ¿¹ÀÇ °æ¿ì, ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

form fill_internal_tables.
  
   * Get information from VBAK, VBUK, VBAP, VBKD, KONV, VBPA
  
   select single * from vbak
          where vbeln = object_key_in.
  
   if sy-subrc <> 0.
     perform log_update(/cwld/sapllog) using c_error_log text-e01
                                  object_key_out c_blank c_blank.
     return_code = '1'.
     g_text = text-e01.
     replace '&' with order_number into g_text.
     return_text = g_text.
  
     exit.
   endif.
  
   select single * from vbuk
          where vbeln = vbak-vbeln.
  
   select * from vbap into table t_vbap
          where vbeln = vbak-vbeln.
  
   * Continue for other tables
 

´ÙÀ½ ÄÚµå´Â ¿äûµÈ µ¥ÀÌÅ͸¦ ÀÀ¿ëÇÁ·Î±×·¥ µ¥ÀÌÅͺ£À̽º¿¡¼­ ³»ºÎ Å×À̺í°ú ÀÛ¾÷ º¯¼ö¿¡ º¹»çÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ±×·± ´ÙÀ½ ÀÌ ÄÚµå´Â WebSphere Business Object Á¤ÀÇ¿¡ Á¤È®È÷ ÀÏÄ¡ÇÏ´Â ¼¼±×¸ÕÆ®¸¦ ÀÛ¼ºÇϰí À̸¦ SAP ¼¼±×¸ÕÆ® ±¸Á¶¿¡ ³Ö½À´Ï´Ù.

IDoc À¯Çü°ú ÀÛ¾÷ ±¸Á¶ »çÀÌÀÇ Çʵ忡¼­ ±ÙÁ¢ÇÑ ÀÏÄ¡¿¡ ´ëÇÑ ¸î¸î °æ¿ì, ABAP move-corresponding ¸í·ÉÀ» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ °æ¿ì¿¡´Â ±¸Á¶¿¡ ÀÖ´Â ÇʵåÀÇ Àüü ¼ö¿¡ ºñÇØ À̵¿ÇÒ ÇʵåÀÇ ¼ö°¡ »ó´ëÀûÀ¸·Î Àû±â ¶§¹®¿¡, Çʵ带 ÀÛ¾÷ Å×ÀÌºí¿¡¼­ IDoc À¯Çü Å×ÀÌºí¿¡ ¼öµ¿À¸·Î À̵¿½ÃŰ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù. ´Ü¼øÈ÷, ÀÌ´Â µ¥ÀÌÅ͸¦ ÀÛ¾÷ µ¥ÀÌÅÍ ±¸Á¶¿¡¼­ IDoc ±¸Á¶·Î, ±× ´ÙÀ½¿¡ Ç÷§ µ¥ÀÌÅÍ Çʵå·Î Àü¼ÛÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.

ÄÚµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.

form fill_idoc_inttab.
  
 perform fill_zsqvbak.                   " Fill the Sales Quote Header
 perform fill_zsqvbuk.                   " Fill the Sales Quote Status
 perform fill_zsqvbap.                   " Fill Sales Quote Lines
  
 endform.                                " FILL_IDOC_INTTAB
  
 *-- fill the Sales Quote Header
 form fill_zsqvbak.
  
     clear idoc_data.
   clear zsqvbak.
   idoc_data-segnam = 'ZSQVBAK'.
  
   move-corresponding vbak to zsqvbak.
   move zsqvbak to idoc_data-sdata.
     append idoc_data.
  
 endform.                                " FILL_ZSQVBAK
  
 *-- fill the Sales Quote Header Status
 form fill_zsqvbuk.
  
     clear idoc_data.
   clear zsqvbuk.
   idoc_data-segnam = 'ZSQVBUK'.
  
   move-corresponding vbuk to zsqvbuk.
   move zsqvbuk to idoc_data-sdata.
     append idoc_data.
  
 endform.                                " FILL_ZSQVBAK
  
 *-- fill the Sales Quote Line and the Line Child segments
 form fill_zsqvbap.
  
   loop at t_vbap.
     clear idoc_data.
     clear zsqvbap.
     idoc_data-segnam = 'ZSQVBAP'.
  
     move-corresponding t_vbap to zsqvbap.
     move zsqvbap to idoc_data-sdata.
     append idoc_data.
  
     perform fill_zsqvba2.
     perform fill_zsqvbup.
     perform fill_zsqvbkd.
     perform fill_zsqkonv.
     perform fill_zsqvbpa.
  
  
   endloop.
  
 endform.
  
 *-- fill second part of vbap
 form fill_zsqvba2.
 " etc.
 

Copyright IBM Corp. 1997, 2004