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 Çڵ鷯ÀÇ ±âº» ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
¾î´ðÅÍ Á¦°ø IDoc Çڵ鷯¸¦ »ç¿ëÇÏ·Á¸é SAP ÀÀ¿ëÇÁ·Î±×·¥¿¡ Á¤ÀÇµÈ IDoc°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. SAP Àü´Þ ¶Ç´Â °í°´ ºôµå IDoc¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. IDoc Á¤Àǰ¡ SAP¿ë WebSphere Business ObjectÀÇ Á¤ÀǸ¦ ¹Ì·¯¸µÇØ¾ß ÇϹǷÎ, ¾î´ðÅÍ´Â IDoc¿¡ µû¶ó WebSphere Business Object Á¤ÀǸ¦ »ý¼ºÇϱâ À§ÇØ µÎ °³ÀÇ µµ±¸¸¦ Á¦°øÇÕ´Ï´Ù.
´ÙÀ½ ¼½¼Ç¿¡¼´Â ÀÌ·¯ÇÑ µµ±¸¸¦ µÑ ´Ù »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
IBM CrossWorlds StationÀ» »ç¿ëÇÏ¿© Business Object Á¤ÀǸ¦ »ý¼ºÇϱâ Àü¿¡, SAP ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ WebSphere Business Object¸¦ ÀÌ¹Ì ÀÛ¼ºÇß¾î¾ß ÇÕ´Ï´Ù. IDoc¸¦ ±â¹ÝÀ¸·Î ÇÑ Business Object Á¤ÀǸ¦ ÀÛ¼ºÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.
¿¹¸¦ µé¾î, 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¸¦ »ç¿ëÇÏ¿© IDoc¿¡ µû¶ó ABAP È®Àå ¸ðµâÀÇ Business Object Á¤ÀǸ¦ »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
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 Çڵ鷯´Â 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 µ¥ÀÌÅ͸¦ Ä¿³ØÅÍ¿¡ ´Ù½Ã Àü´ÞÇÕ´Ï´Ù.
¾Æ·¡ÀÇ »ùÇà ÄÚµå´Â ´ÙÀ½ Ç÷ο츦 Ç¥½ÃÇÕ´Ï´Ù.
´ÙÀ½ »ùÇà ÄÚµå´Â 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 ±¸Á¶ÀÇ µ¥ÀÌÅ͸¦ ÀÛ¾÷ µ¥ÀÌÅÍ ±¸Á¶·Î º¯È¯Çϴ Ÿ½ºÅ©ÀÔ´Ï´Ù. À̸¦ ¼öÇàÇÏ·Á¸é ´ÙÀ½°ú À¯»çÇÑ Äڵ带 ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.
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.
ÀÛ¼º ³í¸®ÀÇ µÎ ¹øÂ° ºÎºÐ¿¡¼´Â µ¥ÀÌÅ͸¦ 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À» ±â·ÏÇÏ·Á¸é ´ÙÀ½À» ¼öÇàÇϽʽÿÀ.
´ÙÀ½ »ùÇà ÄÚµå´Â »ý¼ºµÈ 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 Æ®·£Àè¼ÇÀÌ À̵éÀ» »ý¼ºÇÏ´Â °æ¿ì¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â »óÀÚ¸¦ ÆË¾÷ÇØ¾ß ÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù.
Retrieve Verb¸¦ Áö¿øÇÏ´Â ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯´Â /CWLD/IDOC_HANDLER¿¡¼ Business Object µ¥ÀÌÅ͸¦ ¼ö½ÅÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å, /CWLD/IDOC_HANDLER´Â ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯 ÇÔ¼öÀÇ OBJECT_KEY_IN ¸Å°³º¯¼ö¸¦ »ç¿ëÇÏ¿© IsKey·Î Ç¥½ÃµÈ ù ¹øÂ° ¼Ó¼º°ª¸¸À» Àü´ÞÇÕ´Ï´Ù. ÀÌ ¼Ó¼º°ªÀ» »ç¿ëÇÏ¿© ABAP SQLÀ» »ç¿ëÇÏ´Â Business ObjectÀÇ ÀνºÅϽº¿¡ °ü·ÃµÈ ¸ðµç Á¤º¸¸¦ °Ë»öÇϰí, ÀÌ µ¥ÀÌÅ͸¦ ÀûÀýÇÑ IDoc ±¸Á¶·Î Çü½ÄÈÇÏ´Â °ÍÀº ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.
¾Æ·¡ÀÇ ÄÚµå ´ÜÆíÀº ÆÇ¸Å ½Ã¼¼ÀÇ °Ë»öÀ» À§ÇÑ ¿ÀºêÁ§Æ® ƯÁ¤ IDoc Çڵ鷯¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ÆÇ¸Å ½Ã¼¼ Business Object´Â VBAK, VBUK, VBPO, VBAP, VBUP, VBKD, KNOV ¹× VBPA Å×ÀÌºí¿¡¼ µ¥ÀÌÅ͸¦ °Ë»öÇÕ´Ï´Ù. À̵é Å×À̺íÀº IDoc À¯Çü ZSLSQUOTÀÇ °èÃþ ±¸Á¶ ¹× Ä«µð³¾¸®Æ¼¸¦ µû¸¨´Ï´Ù. ÄÚµå´Â ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
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.