日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP BDC 技术的分类(转)

發布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP BDC 技术的分类(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先, 解釋BDC這三個英文的意思, 普遍都認同是(Batch Data Communication). 然后下面是一些相關的術語解釋:

Batch Input: 批輸入, 用于大批量, 非實時性( 對速度要求比較低) 的數據傳輸 使用BDC_OPEN_GROUP, BDC_INSERT_GROUP, BDC_CLOSE_GROUP這幾個function實現批輸入會話的操作. 然后通過批輸入會話將數據傳輸到SAP.

Call Transaction: 調用事務, 與批輸入的差異主要是在于數據傳輸過程不生成批輸入會話, 數據在程序運行過程中直接通過調用CALL TRANSACTION USING BDC表傳輸至SAP.

Direct Input: 直接輸入, 其主要優點是速度最快, 不生成會話, 數據被直接輸入至SAP. 不存在事務屏幕處理過程(批輸入和調用事務中均包含該過程), 直接輸入的效率較高, 系統負載較小. 使用TCODE BMV0.

但是我們不該把BDC技術只局限于錄屏幕, 批輸入和調用事務上, 其實以下技術都可以實現BDC, 比如BAPI, IDOC.

BAPI: 業務應用程序接口, SAP作為一個完善的系統, 每個應用中都有包含標準的數據傳輸接口.

IDOC: 中間文檔, ALE和EDI屬于系統間數據傳輸的接口, IDOC中包含數據結構的定義和數據的處理邏輯, 是傳輸的介質.

這個圖參照了黃佳寫的<<SAP業務數據傳輸指南>>.? 下面我來詳細舉例一下其中幾種技術.

一, 調用事務, 主要使用該語句

CALL TRANSACTION '事務代碼' USING bdc表 MODE m UPDATE 'S' MESSAGES INTO mssg.

bdc表是參考bdcdata結構定義的內表, 主要存儲屏幕處理所需要的關鍵數據, 其結構如下:

字段名類型長度小數描述
PROGRAMCHAR400BDC module pool
DYNPRONUMC40BDC Screen number
DYNBEGINCHAR10BDC screen start
FNAMCHAR1320Field name
FVALCHAR1320BDC field value

MODE m 是指Processing Mode, 共有4種處理模式:

模式英文描述
ADisplay all screens
EDisplay errors
NBackground processing
PBackground processing; debugging possible

UPDATE 'S'? 是指更新模式, 共有3種更新模式,一般使用'S'模式:

模式描述
A異步
S同步
L本地

MESSAGES INTO mssg 的意思是將處理信息導入到一個參考bdcmsgcoll結構的內表, 方便查錯.

下面是一個上傳物料中文描述的簡單例子:

view plaincopy to clipboardprint?
  • *&---------------------------------------------------------------------*??
  • *&?Report??ZBDC_TEST1??
  • *&?調用事務??
  • *&---------------------------------------------------------------------*??
  • *&??Author:?Jun??
  • *&??
  • *&---------------------------------------------------------------------*??
  • ??
  • REPORT??zbdc_test1.??
  • ??
  • ************************************************************************??
  • *?D?A?T?A??
  • ************************************************************************??
  • ??
  • CONSTANTS:?c_def_path?LIKE?rlgrap-filename?VALUE?'c:\file.txt'.??
  • DATA:?BEGIN?OF?mssg?OCCURS?0.??
  • ????????INCLUDE?STRUCTURE?bdcmsgcoll.??
  • DATA:?END?OF?mssg.??
  • ??
  • ??
  • DATA:?BEGIN?OF?zitab_bdc?OCCURS?0.??
  • ????????INCLUDE?STRUCTURE?bdcdata.??
  • DATA:?END?OF?zitab_bdc.??
  • ??
  • DATA:?BEGIN?OF?t_main?OCCURS?0,??
  • ??????matnr(18),??
  • ??????maktx(40),??
  • ??????END?OF?t_main.??
  • ??
  • DEFINE?dynpro.??
  • ??
  • ??CLEAR?zitab_bdc.??
  • ??IF?&1?=?'X'.??
  • ??
  • ????MOVE:?'X'?TO?zitab_bdc-dynbegin,??
  • ????????????????&2??TO?zitab_bdc-program,??
  • ????????????????&3?TO?zitab_bdc-dynpro.??
  • ??
  • ??ELSE.??
  • ??
  • ????MOVE:?&2?TO?zitab_bdc-fnam,??
  • ????????????????&3?TO?zitab_bdc-fval.??
  • ??
  • ??ENDIF.??
  • ??
  • ??APPEND?zitab_bdc.??
  • ??
  • END-OF-DEFINITION.??
  • ??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?sc1?WITH?FRAME?TITLE?text-s01.??
  • PARAMETER:?f_cap?TYPE?rlgrap-filename?OBLIGATORY?DEFAULT?c_def_path.??
  • PARAMETER:?m?TYPE?ctu_mode?DEFAULT?'N'.??
  • SELECTION-SCREEN?END?OF?BLOCK?sc1.??
  • ??
  • ??
  • ************************************************************************??
  • *?S?T?A?R?T?O?F?S?E?L?E?C?T?I?O?N??
  • ************************************************************************??
  • START-OF-SELECTION.??
  • ??WRITE?:?/?'Start?creation?of?BDC?session',sy-mandt,sy-uname,sy-uzeit.??
  • ??PERFORM?get_codepage.??
  • ??PERFORM?call_upload?TABLES?t_main?USING?f_cap.??
  • ??PERFORM?update_data.??
  • ??
  • ??WRITE:?/?'Finished!'.??
  • ??
  • ??
  • ************************************************************************??
  • *?F?O?R?M?S??
  • ************************************************************************??
  • *&---------------------------------------------------------------------*??
  • *&??
  • *&??????Form??GET_CODEPAGE??
  • *&---------------------------------------------------------------------*??
  • FORM?get_codepage.??
  • ??
  • ??DATA:?cncoden?TYPE?abap_encod,??
  • ????????cncode?type??CPCODEPAGE.??
  • ??
  • ??CALL?FUNCTION?'NLS_GET_FRONTEND_CP'??
  • ????EXPORTING??
  • ??????langu?????????????????=?'1'??
  • ????IMPORTING??
  • ??????frontend_codepage?????=?cncode??
  • ????EXCEPTIONS??
  • ??????illegal_syst_codepage?=?21??
  • ??????no_frontend_cp_found??=?23??
  • ??????internal_or_db_error??=?25.??
  • ??MOVE:?cncode?TO?cncoden.??
  • ENDFORM.??
  • ??
  • *&---------------------------------------------------------------------*??
  • *&??
  • *&??????Form??CALL_UPLOAD??
  • *&---------------------------------------------------------------------*??
  • ??
  • FORM?call_upload?TABLES?p_tab?USING?p_fname.??
  • ??
  • ??DATA:?tmp_filename?TYPE?string.??
  • ??
  • ??tmp_filename?=?p_fname.??
  • ??
  • ??
  • ????CALL?METHOD?cl_gui_frontend_services=>gui_download??
  • ??????EXPORTING??
  • ????????filename????????????????=?tmp_filename??
  • ????????write_field_separator?????=?'X'??
  • ????????codepage????????????????=?cncoden??
  • ??????CHANGING??
  • ????????data_tab????????????????=?p_tab??
  • ??????EXCEPTIONS??
  • ????????file_write_error????????=?1??
  • ????????no_batch????????????????=?2??
  • ????????gui_refuse_filetransfer?=?3??
  • ????????invalid_type????????????=?4??
  • ????????no_authority????????????=?5??
  • ????????unknown_error???????????=?6??
  • ????????header_not_allowed??????=?7??
  • ????????separator_not_allowed???=?8??
  • ????????filesize_not_allowed????=?9??
  • ????????header_too_long?????????=?10??
  • ????????dp_error_create?????????=?11??
  • ????????dp_error_send???????????=?12??
  • ????????dp_error_write??????????=?13??
  • ????????unknown_dp_error????????=?14??
  • ????????access_denied???????????=?15??
  • ????????dp_out_of_memory????????=?16??
  • ????????disk_full???????????????=?17??
  • ????????dp_timeout??????????????=?18??
  • ????????file_not_found??????????=?19??
  • ????????dataprovider_exception??=?20??
  • ????????control_flush_error?????=?21??
  • ????????not_supported_by_gui????=?22??
  • ????????error_no_gui????????????=?23??
  • ????????OTHERS??????????????????=?24.??
  • ??
  • if?sy-subrc?<>?0.??
  • *?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO??
  • *????????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.??
  • endif.??
  • ??
  • ENDFORM.????????????????????"call_upload??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??update_data??
  • *&---------------------------------------------------------------------*??
  • *???????text??
  • *----------------------------------------------------------------------*??
  • FORM?update_data.??
  • ??
  • ??REFRESH?zitab_bdc.??
  • ??
  • ??LOOP?AT?t_main.??
  • ????PERFORM?call_transaction.??
  • ??ENDLOOP.??
  • ENDFORM.????????????????????"update_data??
  • ??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??call_transaction??
  • *&---------------------------------------------------------------------*??
  • *???????text??
  • *----------------------------------------------------------------------*??
  • FORM?call_transaction.??
  • ??
  • dynpro:?'X'???'SAPLMGMM'??'0060',??
  • ?????????????'?'???'RMMG1-MATNR'???t_main-matnr,??
  • ?????????????'?'???'BDC_OKCODE'????'/00'.??
  • ??
  • dynpro:?'X'???'SAPLMGMM'???'0070',??
  • ?????????????'?'???'MSICHTAUSW-KZSEL(01)'??'X',??
  • ?????????????'?'???'BDC_OKCODE'??'=ENTR'.??
  • ??
  • dynpro:?'X'???'SAPLMGMM'????'4004',??
  • ?????????????'?'???'BDC_OKCODE'??'=ZU01'.??
  • ??
  • dynpro:??'X'???'SAPLMGMM'????'4300',??
  • ??????????????'?'???'SKTEXT-SPRAS(02)'??'ZH',??
  • ??????????????'?'???'SKTEXT-MAKTX(02)'??t_main-maktx,??
  • ??????????????'?'???'BDC_OKCODE'????'=BU'.??
  • ??
  • ??
  • ??CALL?TRANSACTION?'MM02'?USING?zitab_bdc?MODE?m?UPDATE?'S'?MESSAGES?INTO?mssg.??
  • ??
  • ??IF?sy-subrc?NE?0.??
  • ????MESSAGE?ID?sy-msgid?TYPE?'S'?NUMBER?sy-msgno??
  • ????????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.??
  • ??ENDIF.??
  • ??REFRESH:?zitab_bdc,mssg.??
  • ??
  • ENDFORM.????????????????????"?CALL_TRANSACTION??
  • *&---------------------------------------------------------------------* *& Report ZBDC_TEST1 *& 調用事務 *&---------------------------------------------------------------------* *& Author: Jun *& *&---------------------------------------------------------------------* REPORT zbdc_test1. ************************************************************************ * D A T A ************************************************************************ CONSTANTS: c_def_path LIKE rlgrap-filename VALUE 'c:\file.txt'. DATA: BEGIN OF mssg OCCURS 0. INCLUDE STRUCTURE bdcmsgcoll. DATA: END OF mssg. DATA: BEGIN OF zitab_bdc OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA: END OF zitab_bdc. DATA: BEGIN OF t_main OCCURS 0, matnr(18), maktx(40), END OF t_main. DEFINE dynpro. CLEAR zitab_bdc. IF &1 = 'X'. MOVE: 'X' TO zitab_bdc-dynbegin, &2 TO zitab_bdc-program, &3 TO zitab_bdc-dynpro. ELSE. MOVE: &2 TO zitab_bdc-fnam, &3 TO zitab_bdc-fval. ENDIF. APPEND zitab_bdc. END-OF-DEFINITION. SELECTION-SCREEN BEGIN OF BLOCK sc1 WITH FRAME TITLE text-s01. PARAMETER: f_cap TYPE rlgrap-filename OBLIGATORY DEFAULT c_def_path. PARAMETER: m TYPE ctu_mode DEFAULT 'N'. SELECTION-SCREEN END OF BLOCK sc1. ************************************************************************ * S T A R T O F S E L E C T I O N ************************************************************************ START-OF-SELECTION. WRITE : / 'Start creation of BDC session',sy-mandt,sy-uname,sy-uzeit. PERFORM get_codepage. PERFORM call_upload TABLES t_main USING f_cap. PERFORM update_data. WRITE: / 'Finished!'. ************************************************************************ * F O R M S ************************************************************************ *&---------------------------------------------------------------------* *& *& Form GET_CODEPAGE *&---------------------------------------------------------------------* FORM get_codepage. DATA: cncoden TYPE abap_encod, cncode type CPCODEPAGE. CALL FUNCTION 'NLS_GET_FRONTEND_CP' EXPORTING langu = '1' IMPORTING frontend_codepage = cncode EXCEPTIONS illegal_syst_codepage = 21 no_frontend_cp_found = 23 internal_or_db_error = 25. MOVE: cncode TO cncoden. ENDFORM. *&---------------------------------------------------------------------* *& *& Form CALL_UPLOAD *&---------------------------------------------------------------------* FORM call_upload TABLES p_tab USING p_fname. DATA: tmp_filename TYPE string. tmp_filename = p_fname. CALL METHOD cl_gui_frontend_services=>gui_download EXPORTING filename = tmp_filename write_field_separator = 'X' codepage = cncoden CHANGING data_tab = p_tab EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 not_supported_by_gui = 22 error_no_gui = 23 OTHERS = 24. if sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. endif. ENDFORM. "call_upload *&---------------------------------------------------------------------* *& Form update_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM update_data. REFRESH zitab_bdc. LOOP AT t_main. PERFORM call_transaction. ENDLOOP. ENDFORM. "update_data *&---------------------------------------------------------------------* *& Form call_transaction *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM call_transaction. dynpro: 'X' 'SAPLMGMM' '0060', ' ' 'RMMG1-MATNR' t_main-matnr, ' ' 'BDC_OKCODE' '/00'. dynpro: 'X' 'SAPLMGMM' '0070', ' ' 'MSICHTAUSW-KZSEL(01)' 'X', ' ' 'BDC_OKCODE' '=ENTR'. dynpro: 'X' 'SAPLMGMM' '4004', ' ' 'BDC_OKCODE' '=ZU01'. dynpro: 'X' 'SAPLMGMM' '4300', ' ' 'SKTEXT-SPRAS(02)' 'ZH', ' ' 'SKTEXT-MAKTX(02)' t_main-maktx, ' ' 'BDC_OKCODE' '=BU'. CALL TRANSACTION 'MM02' USING zitab_bdc MODE m UPDATE 'S' MESSAGES INTO mssg. IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. REFRESH: zitab_bdc,mssg. ENDFORM. " CALL_TRANSACTION

    二, 批輸入, 主要使用BDC_OPEN_GROUP, BDC_INSERT_GROUP, BDC_CLOSE_GROUP這幾個function實現批輸入會話的操作. 然后通過批輸入會話將數據傳輸到SAP.

    以下是Batch Input的例子, 是把前面的程序改了一下完成的, 注意紅色的地方就是不同處:

    view plaincopy to clipboardprint?
  • *&---------------------------------------------------------------------*??
  • *&?Report??ZBDC_TEST2??
  • *&??批輸入??
  • *&---------------------------------------------------------------------*??
  • *&??Author:?Jun??
  • *&??
  • *&---------------------------------------------------------------------*??
  • ??
  • REPORT??zbdc_test2.??
  • ??
  • ************************************************************************??
  • *?D?A?T?A??
  • ************************************************************************??
  • ??
  • CONSTANTS:?c_def_path?LIKE?rlgrap-filename?VALUE?'c:\file.txt'.??
  • ??
  • DATA:?BEGIN?OF?zitab_bdc?OCCURS?0.??
  • ????????INCLUDE?STRUCTURE?bdcdata.??
  • DATA:?END?OF?zitab_bdc.??
  • ??
  • DATA:?BEGIN?OF?t_main?OCCURS?0,??
  • ??????matnr(18),??
  • ??????maktx(40),??
  • ??????END?OF?t_main.??
  • ??
  • DEFINE?dynpro.??
  • ??
  • ??CLEAR?zitab_bdc.??
  • ??IF?&1?=?'X'.??
  • ??
  • ????MOVE:?'X'?TO?zitab_bdc-dynbegin,??
  • ????????&2??TO?zitab_bdc-program,??
  • ????????&3?TO?zitab_bdc-dynpro.??
  • ??
  • ??ELSE.??
  • ??
  • ????MOVE:?&2?TO?zitab_bdc-fnam,??
  • ?&3?TO?zitab_bdc-fval.??
  • ??
  • ??ENDIF.??
  • ??
  • ??APPEND?zitab_bdc.??
  • ??
  • END-OF-DEFINITION.??
  • ??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?sc1?WITH?FRAME?TITLE?text-s01.??
  • PARAMETER:?f_cap?TYPE?rlgrap-filename?OBLIGATORY?DEFAULT?c_def_path.??
  • SELECTION-SCREEN?END?OF?BLOCK?sc1.??
  • ??
  • ??
  • ************************************************************************??
  • *?S?T?A?R?T?O?F?S?E?L?E?C?T?I?O?N??
  • ************************************************************************??
  • START-OF-SELECTION.??
  • ??WRITE?:?/?'Start?creation?of?BDC?session',sy-mandt,sy-uname,sy-uzeit.??
  • ??PERFORM?get_codepage.??
  • ??PERFORM?call_upload?TABLES?t_main?USING?f_cap.??
  • ??PERFORM?update_data.??
  • ??
  • ??WRITE:?/?'Finished!'.??
  • ??
  • ??
  • ************************************************************************??
  • *?F?O?R?M?S??
  • ************************************************************************??
  • *&---------------------------------------------------------------------*??
  • *&??
  • *&??????Form??GET_CODEPAGE??
  • *&---------------------------------------------------------------------*??
  • FORM?get_codepage.??
  • ??
  • ??DATA:?cncoden?TYPE?abap_encod,??
  • ????????cncode?type??CPCODEPAGE.??
  • ??
  • ??CALL?FUNCTION?'NLS_GET_FRONTEND_CP'??
  • ????EXPORTING??
  • ??????langu?????????????????=?'1'??
  • ????IMPORTING??
  • ??????frontend_codepage?????=?cncode??
  • ????EXCEPTIONS??
  • ??????illegal_syst_codepage?=?21??
  • ??????no_frontend_cp_found??=?23??
  • ??????internal_or_db_error??=?25.??
  • ??MOVE:?cncode?TO?cncoden.??
  • ENDFORM.??
  • ??
  • *&---------------------------------------------------------------------*??
  • *&??
  • *&??????Form??CALL_UPLOAD??
  • *&---------------------------------------------------------------------*??
  • ??
  • FORM?call_upload?TABLES?p_tab?USING?p_fname.??
  • ??
  • ??DATA:?tmp_filename?TYPE?string.??
  • ??
  • ??tmp_filename?=?p_fname.??
  • ??
  • ??
  • ????CALL?METHOD?cl_gui_frontend_services=>gui_download??
  • ??????EXPORTING??
  • ????????filename????????????????=?tmp_filename??
  • ?write_field_separator?????=?'X'??
  • ????????codepage????????????????=?cncoden??
  • ??????CHANGING??
  • ????????data_tab????????????????=?p_tab??
  • ??????EXCEPTIONS??
  • ????????file_write_error????????=?1??
  • ????????no_batch????????????????=?2??
  • ????????gui_refuse_filetransfer?=?3??
  • ????????invalid_type????????????=?4??
  • ????????no_authority????????????=?5??
  • ????????unknown_error???????????=?6??
  • ????????header_not_allowed??????=?7??
  • ????????separator_not_allowed???=?8??
  • ????????filesize_not_allowed????=?9??
  • ????????header_too_long?????????=?10??
  • ????????dp_error_create?????????=?11??
  • ????????dp_error_send???????????=?12??
  • ????????dp_error_write??????????=?13??
  • ????????unknown_dp_error????????=?14??
  • ????????access_denied???????????=?15??
  • ????????dp_out_of_memory????????=?16??
  • ????????disk_full???????????????=?17??
  • ????????dp_timeout??????????????=?18??
  • ????????file_not_found??????????=?19??
  • ????????dataprovider_exception??=?20??
  • ????????control_flush_error?????=?21??
  • ????????not_supported_by_gui????=?22??
  • ????????error_no_gui????????????=?23??
  • ????????OTHERS??????????????????=?24.??
  • ??
  • if?sy-subrc?<>?0.??
  • *?MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO??
  • *????????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.??
  • endif.??
  • ??
  • ENDFORM.????????????????????"call_upload??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??update_data??
  • *&---------------------------------------------------------------------*??
  • *???????text??
  • *----------------------------------------------------------------------*??
  • FORM?update_data.??
  • ??
  • <font?color="#ff0000">????CALL?FUNCTION?'BDC_OPEN_GROUP'??
  • ??????EXPORTING??
  • ????????CLIENT??????????????=?SY-MANDT??
  • ????????GROUP???????????????=?P_S_NAME??
  • ????????KEEP????????????????=?'X'??
  • ????????USER????????????????=?SY-UNAME??
  • ??????EXCEPTIONS??
  • ????????CLIENT_INVALID??????=?1??
  • ????????DESTINATION_INVALID?=?2??
  • ????????GROUP_INVALID???????=?3??
  • ????????GROUP_IS_LOCKED?????=?4??
  • ????????HOLDDATE_INVALID????=?5??
  • ????????INTERNAL_ERROR??????=?6??
  • ????????QUEUE_ERROR?????????=?7??
  • ????????RUNNING?????????????=?8??
  • ????????SYSTEM_LOCK_ERROR???=?9??
  • ????????USER_INVALID????????=?10??
  • ????????OTHERS??????????????=?11.</font>??
  • *&---------------------------------------------------------------------* *& Report ZBDC_TEST2 *& 批輸入 *&---------------------------------------------------------------------* *& Author: Jun *& *&---------------------------------------------------------------------* REPORT zbdc_test2. ************************************************************************ * D A T A ************************************************************************ CONSTANTS: c_def_path LIKE rlgrap-filename VALUE 'c:\file.txt'. DATA: BEGIN OF zitab_bdc OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA: END OF zitab_bdc. DATA: BEGIN OF t_main OCCURS 0, matnr(18), maktx(40), END OF t_main. DEFINE dynpro. CLEAR zitab_bdc. IF &1 = 'X'. MOVE: 'X' TO zitab_bdc-dynbegin, &2 TO zitab_bdc-program, &3 TO zitab_bdc-dynpro. ELSE. MOVE: &2 TO zitab_bdc-fnam, &3 TO zitab_bdc-fval. ENDIF. APPEND zitab_bdc. END-OF-DEFINITION. SELECTION-SCREEN BEGIN OF BLOCK sc1 WITH FRAME TITLE text-s01. PARAMETER: f_cap TYPE rlgrap-filename OBLIGATORY DEFAULT c_def_path. SELECTION-SCREEN END OF BLOCK sc1. ************************************************************************ * S T A R T O F S E L E C T I O N ************************************************************************ START-OF-SELECTION. WRITE : / 'Start creation of BDC session',sy-mandt,sy-uname,sy-uzeit. PERFORM get_codepage. PERFORM call_upload TABLES t_main USING f_cap. PERFORM update_data. WRITE: / 'Finished!'. ************************************************************************ * F O R M S ************************************************************************ *&---------------------------------------------------------------------* *& *& Form GET_CODEPAGE *&---------------------------------------------------------------------* FORM get_codepage. DATA: cncoden TYPE abap_encod, cncode type CPCODEPAGE. CALL FUNCTION 'NLS_GET_FRONTEND_CP' EXPORTING langu = '1' IMPORTING frontend_codepage = cncode EXCEPTIONS illegal_syst_codepage = 21 no_frontend_cp_found = 23 internal_or_db_error = 25. MOVE: cncode TO cncoden. ENDFORM. *&---------------------------------------------------------------------* *& *& Form CALL_UPLOAD *&---------------------------------------------------------------------* FORM call_upload TABLES p_tab USING p_fname. DATA: tmp_filename TYPE string. tmp_filename = p_fname. CALL METHOD cl_gui_frontend_services=>gui_download EXPORTING filename = tmp_filename write_field_separator = 'X' codepage = cncoden CHANGING data_tab = p_tab EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 not_supported_by_gui = 22 error_no_gui = 23 OTHERS = 24. if sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. endif. ENDFORM. "call_upload *&---------------------------------------------------------------------* *& Form update_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM update_data. view plaincopy to clipboardprint?
  • <font?color="#ff0000">????IF?SY-SUBRC?<>?0.??
  • ??????MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO??
  • ??????????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.??
  • ????ENDIF.??
  • </font>??
  • ??
  • ??REFRESH?zitab_bdc.??
  • ??
  • ??LOOP?AT?t_main.??
  • ????PERFORM??batch_input.??
  • ??
  • ??ENDLOOP.??
  • ??
  • <font?color="#ff0000">????CALL?FUNCTION?'BDC_CLOSE_GROUP'??
  • ????EXCEPTIONS??
  • ??????NOT_OPEN????=?1??
  • ??????QUEUE_ERROR?=?2??
  • ??????OTHERS??????=?3.??
  • ??
  • ????IF?SY-SUBRC?<>?0.??
  • ??????MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO??
  • ??????????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.??
  • ????ENDIF.??
  • </font>??
  • ENDFORM.????????????????????"update_data??
  • ??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??batch_input??
  • ??
  • *&---------------------------------------------------------------------*??
  • *???????text??
  • *----------------------------------------------------------------------*??
  • FORM?batch_input.??
  • ??
  • dynpro:??
  • ??'X'???'SAPLMGMM'??'0060',??
  • ??'?'???'RMMG1-MATNR'???t_main-matnr,??
  • ??'?'???'BDC_OKCODE'????'/00'.??
  • ??
  • ??dynpro:??
  • ??'X'???'SAPLMGMM'???'0070',??
  • ??'?'???'MSICHTAUSW-KZSEL(01)'??'X',??
  • ??'?'???'BDC_OKCODE'??'=ENTR'.??
  • ??
  • dynpro:??
  • ??'X'???'SAPLMGMM'????'4004',??
  • ??'?'???'BDC_OKCODE'??'=ZU01'.??
  • ??
  • dynpro:??
  • ??'X'???'SAPLMGMM'????'4300',??
  • ??'?'???'SKTEXT-SPRAS(02)'??'ZH',??
  • ??'?'???'SKTEXT-MAKTX(02)'??t_main-maktx,??
  • ??'?'???'BDC_OKCODE'????'=BU'.??
  • ??
  • <font?color="#ff0000">????CALL?FUNCTION?'BDC_INSERT'??
  • ??????EXPORTING??
  • ????????TCODE????????????=?'MM02'??
  • ??????TABLES??
  • ????????DYNPROTAB????????=?zitab_bdc??
  • ??????EXCEPTIONS??
  • ????????INTERNAL_ERROR???=?1??
  • ????????NOT_OPEN?????????=?2??
  • ????????QUEUE_ERROR??????=?3??
  • ????????TCODE_INVALID????=?4??
  • ????????PRINTING_INVALID?=?5??
  • ????????POSTING_INVALID??=?6??
  • ????????OTHERS???????????=?7.??
  • ??
  • ??
  • ??????IF?SY-SUBRC?<>?0.??
  • ????????MESSAGE?ID?SY-MSGID?TYPE?SY-MSGTY?NUMBER?SY-MSGNO??
  • ????????????????WITH?SY-MSGV1?SY-MSGV2?SY-MSGV3?SY-MSGV4.??
  • ??????ENDIF.</font>??
  • ??
  • ??REFRESH:?zitab_bdc.??
  • ??
  • ENDFORM.?????
  • REFRESH zitab_bdc. LOOP AT t_main. PERFORM batch_input. ENDLOOP. ENDFORM. "update_data *&---------------------------------------------------------------------* *& Form batch_input *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM batch_input. dynpro: 'X' 'SAPLMGMM' '0060', ' ' 'RMMG1-MATNR' t_main-matnr, ' ' 'BDC_OKCODE' '/00'. dynpro: 'X' 'SAPLMGMM' '0070', ' ' 'MSICHTAUSW-KZSEL(01)' 'X', ' ' 'BDC_OKCODE' '=ENTR'. dynpro: 'X' 'SAPLMGMM' '4004', ' ' 'BDC_OKCODE' '=ZU01'. dynpro: 'X' 'SAPLMGMM' '4300', ' ' 'SKTEXT-SPRAS(02)' 'ZH', ' ' 'SKTEXT-MAKTX(02)' t_main-maktx, ' ' 'BDC_OKCODE' '=BU'. REFRESH: zitab_bdc. ENDFORM. 三, BAPI是SAP標準的API, 在多系統的環境下,我們可以通過ALE/EDI技術使用RFC和BAPI實現數據傳輸工作. 但是也可以自己編寫程序實現本地執行傳輸工作. 下面是一個使用BAPI傳輸PO的例子: view plaincopy to clipboardprint?
  • <pre?class="csharp"?name="code">*&---------------------------------------------------------------------*??
  • *&?Report??ZCON0026??
  • *&??
  • *&---------------------------------------------------------------------*??
  • *&??Author:?Jun??
  • *&??
  • *&---------------------------------------------------------------------*??
  • ??
  • REPORT??ZCON0026.??
  • ??
  • FIELD-SYMBOLS?:?<fs></fs>.??
  • <font?color="#ff0000">DATA:wa_pohead??TYPE?bapimepoheader.??
  • DATA:wa_poheadx?TYPE?bapimepoheaderx.??
  • DATA:wa_poaddrvendor?TYPE?bapimepoaddrvendor.??
  • DATA:wa_testrun?TYPE?bapiflag-bapiflag.</font>??
  • DATA:g_ebeln?TYPE?ekko-ebeln.???"Purchasing?Document?Header??
  • DATA:g_mtart?TYPE?mtart.??
  • ??
  • <font?color="#ff0000">DATA:it_return????TYPE?bapiret2???????OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_msg???????TYPE?bapiret2???????OCCURS?0?WITH?HEADER?LINE.</font>??
  • DATA:BEGIN?OF?it_msg1?OCCURS?0,??
  • ??????????ebeln?LIKE?ekpo-ebeln,??
  • ??????????type?like?bapiret2-type,??
  • ??????????message?LIKE?bapiret2-message,??
  • ??????????old_po?like?ekpo-ebeln,??
  • ?????END??OF?it_msg1.??
  • <font?color="#ff0000">DATA:it_poitem????TYPE?bapimepoitem???OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poitemx???TYPE?bapimepoitemx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondh???TYPE?bapimepocondheader?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondhx??TYPE?bapimepocondheaderx?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocond????TYPE?bapimepocond???OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondx???TYPE?bapimepocondx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_potexth???TYPE?bapimepotextheader??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_potexti???TYPE?bapimepotext??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_popartner?TYPE?bapiekkop??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_extens????TYPE?bapiparex??OCCURS?0?WITH?HEADER?LINE.????"Customer's?Own?Fields??
  • DATA:it_poaccount?TYPE?bapimepoaccount??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poaccountx?TYPE?bapimepoaccountx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poche??????TYPE?bapimeposchedule?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pochex?????TYPE?bapimeposchedulx?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:purchseorder?TYPE?BAPIMEPOHEADER-PO_NUMBER.</font>??
  • ??
  • DATA:g_poitem?TYPE?ebelp.???"Item?Number?of?Purchasing?Document??
  • DATA:g_meng?LIKE?ekpo-menge.????"Purchase?Order?Quantity??
  • DATA:l_intern?TYPE?kcde_cells?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:len_str?TYPE?i,??
  • ?????l_index?TYPE?i.??
  • ??
  • DATA:BEGIN?OF?it_data?OCCURS?0,??
  • *???????doc_type(004),???</pre>??
  • <pre?class="csharp"?name="code">???????po(010),??"PO?NO??
  • ???????material(018),??
  • ???????vendor(010),??
  • ???????invoice_no(15),??"Invoice?Number(Header?text)??
  • ???????pmnttrms(004),???"Paymentterms??
  • ???????quantity(017),??
  • ???????doc_date(008),??
  • ???????gr_to_date(008),?"Delivery?date??
  • ???????shippingin(10),??"Ship?Date(Header?Text)??
  • ???????eta_hk(10),??????"Date?of?ETA?HK(Header?Text)??
  • ???????trsp_metd(10),???"Transportion?Method(Header?Text)??
  • ???????container_no(20),??"COntainer?Number(Header?Text)??
  • ???????lc_number(20),???"LC?Number(Header?Text)??
  • ???????load_date(10),???"Load?Date(Header?Text)??
  • ???????arr_hk(10),??????"Date?of?Arr.?Date(Header?Text)??
  • ???????remark(20),??????"Header?remark(Header?Text)??
  • ???????currency(005),??
  • ???????cond_pb00(038),??"Net?price??
  • ???????cond_p_unt(5),????"Price?Unit??
  • ??
  • END?OF?it_data.??
  • DATA:BEGIN?OF?it_head?OCCURS?0,??
  • ???????comp_code(4),????"Company?Code??
  • ???????doc_type(004),???"######??
  • ???????po_number(010),??
  • ???????po(010),??
  • ???????vendor(010),?????"######??
  • ???????doc_date(008),???"####??
  • ???????purch_org(004),??"####??
  • ???????pur_group(003),??"####??
  • ???????pmnttrms(004),???"####??
  • ???????incoterms1(003),?"######??
  • ???????incoterms2(028),?"######??
  • ???????currency(005),???"####??
  • ???????exch_rate(014),??"##??
  • ???????text_pohzs(132),?"Header?Remark??
  • ???????shippingin(132),?"SHIPPING?INSTRUCTION??
  • ???????prppayment(132),?"PAYMENT?TERM?FOR?PRP??
  • ???????delivery(132),???"DELIVERY??
  • ???????attention(132),??"ATTENTION??
  • ???????name_2(040),?????????????????????????????????????????"#####2??
  • ???????name_3(040),?????????????????????????????????????????"#####3??
  • ???????name_4(040),?????????????????????????????????????????"#####4??
  • ???????street(040),?????"##??
  • ???????str_suppl2(040),?"##4??
  • ???????location(040),???"##5??
  • ???????postl_cod1(010),?"######??
  • ???????country(003),????"####??
  • ???????tel1_numbr(030),?"##??
  • ???????fax_number(030),?"##??
  • ???????billty(002),?????"########??
  • ???????billpo(010),?????"######??
  • ???????purcty(002),?????"########??
  • ???????purcpo(010),?????"#####??
  • ???????patety(002),?????"########??
  • ???????patepo(010),?????"######??
  • ???????shipty(002),?????"########??
  • ???????shippo(010),?????"######??
  • ???????COLLECT_NO(010),???"Collective?Number??
  • ?????END???OF?it_head.??
  • DATA:BEGIN?OF?it_item?OCCURS?0,??
  • ???????po_number(010),??"??
  • ???????po(010),??
  • ???????acctasscat(001),?"######??
  • ???????item_cat(001),???"####??
  • ???????material(018),???"######??
  • ???????short_text(040),?"####??
  • ???????quantity(017),???"######??
  • ???????po_unit(003),????"####??
  • ???????gr_to_date(008),?"####??
  • ???????cond_pb00(038),??"Net?Price??
  • ???????cond_p_unt(005),?"########??
  • ???????cond_za00(038),??"UNZ#UTE######??
  • ???????matl_group(009),?"####??
  • ???????plant(004),??????"##??
  • ???????over_dlv_tol(005),"########??
  • ???????tax_code(002),????"##/######??
  • ???????costcenter(010),??"####??
  • ???????poit_text(132),???"PO####??
  • ???????pobz_text(132),???"PO####??
  • ???????valuepart1(240),??"Exfact?Date??
  • ???????valuepart2(240),??"Arr.HK?Date??
  • ?????END?OF?it_item.??
  • DATA:g_menge?LIKE?ekpo-netpr.??
  • ******************************************************************??
  • *???PARAMETERS?&?SELECTION-OPTIONS??
  • ******************************************************************??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?sel??WITH?FRAME?TITLE?text-001.??
  • PARAMETERS:p_upload?RADIOBUTTON?GROUP?radi,??
  • ???????????p_uptemp?RADIOBUTTON?GROUP?radi.??
  • PARAMETERS:p_flag??AS?CHECKBOX?.??
  • SELECTION-SCREEN?END?OF?BLOCK?sel.??
  • ??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?mod??WITH?FRAME?TITLE?text-002.??
  • PARAMETERS:p_file?LIKE??rlgrap-filename?DEFAULT?'c:\podata',??
  • ???????????p_log??LIKE??rlgrap-filename?DEFAULT?'c:\polog.xls'.??
  • SELECTION-SCREEN?END?OF?BLOCK?mod.??
  • ??
  • START-OF-SELECTION.??
  • ??IF?p_upload?=?'X'.??
  • ????PERFORM?upload_file.??
  • ????PERFORM?upload_data.??
  • ??ENDIF.??
  • ??
  • ??
  • *&--------------------------------------------------------------------*??
  • *&??????Form??upload_file??
  • *&--------------------------------------------------------------------*??
  • *???????text??
  • *---------------------------------------------------------------------*??
  • FORM?upload_file.??
  • ??
  • ??TRANSLATE?p_file?TO?UPPER?CASE.??
  • ??len_str?=?STRLEN(?p_file?).??
  • ??len_str?=?len_str?-?4.??
  • ??IF?p_file+len_str(4)?<>?'.XLS'.??
  • ????CONCATENATE?p_file?'.XLS'?INTO?p_file.??
  • ??ENDIF.??
  • ??CALL?FUNCTION?'KCD_EXCEL_OLE_TO_INT_CONVERT'??
  • ????EXPORTING??
  • ??????filename????????????????=?p_file??
  • ??????i_begin_col?????????????=?1??
  • ??????i_begin_row?????????????=?2??
  • ??????i_end_col???????????????=?256??
  • ??????i_end_row???????????????=?65535??
  • ????TABLES??
  • ??????intern??????????????????=?l_intern??
  • ????EXCEPTIONS??
  • ??????inconsistent_parameters?=?1??
  • ??????upload_ole??????????????=?2??
  • ??????OTHERS??????????????????=?3.??
  • ??IF?sy-subrc?<>?0.??
  • ??ENDIF.??
  • ??
  • ??SORT?l_intern?BY?row?col.??
  • ??LOOP?AT?l_intern.??
  • ????MOVE?l_intern-col?TO?l_index.??
  • ????ASSIGN?COMPONENT?l_index?OF?STRUCTURE?it_data?TO?<fs></fs>.??
  • ????MOVE?l_intern-value?TO?<fs></fs>.??
  • ????AT?END?OF?row.??
  • ??????APPEND?it_data.??
  • ??????CLEAR??it_data.??
  • ????ENDAT.??
  • ??ENDLOOP.??
  • ??
  • ENDFORM.????????????????????"UPLOAD_FILE??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??UPLOAD_DATA??
  • *&---------------------------------------------------------------------*??
  • FORM?upload_data?.??
  • ??CLEAR:it_head,it_item.??
  • ??LOOP?AT?it_data.??
  • ????MOVE-CORRESPONDING?it_data?TO?it_head.??
  • ????it_head-COLLECT_NO?=?it_data-po.??
  • ????COLLECT?it_head.??
  • ????MOVE-CORRESPONDING?it_data?TO?it_item.??
  • ????APPEND??it_item.??
  • ??ENDLOOP.??
  • ??REFRESH?it_msg.??
  • ??
  • ??
  • ??LOOP?AT?it_head.??
  • ????CLEAR:?it_potexth,wa_pohead,wa_poheadx,wa_poaddrvendor.??
  • ????REFRESH:it_potexth,it_popartner.??
  • *Document?Type??
  • ????wa_pohead-doc_type?=?'NB'.??
  • ????wa_poheadx-doc_type?=?'X'.??
  • ??
  • *Vendor?Number??
  • ????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'??
  • ??????EXPORTING??
  • ????????input??=?it_head-vendor??
  • ??????IMPORTING??
  • ????????output?=?it_head-vendor.??
  • ????wa_pohead-vendor?=?it_head-vendor.??
  • ????wa_poheadx-vendor?=?'X'.??
  • *Document?Date??
  • ????wa_pohead-doc_date?=?it_head-doc_date.??
  • ????wa_poheadx-doc_date?=?'X'.??
  • ??
  • *Collective?Number??
  • ????wa_pohead-COLLECT_NO?=?it_head-COLLECT_NO.??
  • ????wa_poheadx-COLLECT_NO?=?'X'.??
  • ??
  • *Company?Code??
  • ??????wa_pohead-comp_code?=?'8200'.??
  • ??????wa_poheadx-comp_code?=?'X'.??
  • ??
  • ??
  • *Purchase?Organise??
  • ??????wa_pohead-purch_org?=?'8200'.??
  • ??
  • *Purchase?Group??
  • ??????wa_pohead-pur_group?=?'003'.??
  • ??????wa_poheadx-pur_group?=?'X'.??
  • ??
  • *Payment?term??
  • ??????wa_pohead-pmnttrms?=?it_head-pmnttrms.??
  • ??????wa_poheadx-pmnttrms?=?'X'.??
  • ??
  • *Currency??
  • ????wa_pohead-currency?=?it_head-currency.??
  • ????wa_poheadx-currency?=?'X'.??
  • ??
  • *Purchase?Order?Header?Text??
  • ??????it_potexth-text_line?=?it_data-remark.????"Header?Remark(Header?Text)??
  • ??????it_potexth-po_number?=?it_head-po_number.??
  • ??????it_potexth-text_id???=?'F01'.??
  • ??????APPEND?it_potexth.??
  • ??????CLEAR?it_potexth.??
  • ??
  • *SHIPPING?INSTRUCTION??
  • ????it_potexth-text_line?=?it_head-shippingin.??"Ship?Date(Header?Text)??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F02'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *PAYMENT?TERM?FOR?PRP??
  • ????it_potexth-text_line?=?it_data-load_date.??"Load?Date(Header?Text)??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F03'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *Date?of?ETA?HK??
  • ????it_potexth-text_line?=?it_data-eta_hk.????"Date?of?ETA?HK??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F04'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *Date?of?Arr?HK??
  • ????it_potexth-text_line?=?it_data-arr_hk.????"Date?of?Arr?HK??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F05'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Transpotion?Method??
  • ????it_potexth-text_line?=?it_data-trsp_metd.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F06'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Container?Number??
  • ????it_potexth-text_line?=?it_data-container_no.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F07'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *LC?Number??
  • ????it_potexth-text_line?=?it_data-lc_number.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F08'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Invoice?Number??
  • ????it_potexth-text_line?=?it_data-invoice_no.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F09'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • ??
  • *Purchase?Order?Item?Information??
  • ????CLEAR?g_poitem.??
  • ????REFRESH:?it_poitemx,it_poitem,it_pocond,it_pocondx,??
  • ?????????????it_poche,it_pochex?.??
  • ??
  • ????LOOP?AT?it_item.??
  • ??????IF??it_item-po?EQ?it_head-po.??
  • ????????CLEAR:it_poitem,?it_poitemx.??
  • ????????g_poitem?=?g_poitem?+?10.??
  • ????????it_poitem-po_item?=?g_poitem.??
  • ????????it_poitemx-po_item?=?g_poitem.??
  • ????????it_poitem-item_cat?=?it_item-item_cat.??
  • ????????it_poitemx-item_cat?=?'X'.??
  • ????????it_poitemx-po_itemx?=?'X'.??
  • ????????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'??
  • ??????????EXPORTING??
  • ????????????input??=?it_item-material??
  • ??????????IMPORTING??
  • ????????????output?=?it_item-material.??
  • ??
  • ????????it_poitem-material?=?it_item-material.??
  • ????????it_poitemx-material?=?'X'.??
  • ????????IF?it_item-short_text?IS?NOT?INITIAL.??
  • ??????????it_poitem-short_text?=?it_item-short_text.??
  • ??????????it_poitemx-short_text?=?'X'.??
  • ??
  • ????????ENDIF.??
  • ??
  • ????????CLEAR?g_meng.??
  • ????????g_meng?=?it_item-quantity.??
  • ????????it_poitem-quantity?=?g_meng.??
  • ????????it_poitemx-quantity?=?'X'.??
  • ????????it_poitem-po_unit?=??it_item-po_unit.??
  • ????????it_poitemx-po_unit?=??'X'.??
  • ??
  • ????????CLEAR?g_mtart.??
  • ????????SELECT?SINGLE?mtart?INTO?g_mtart?FROM?mara??
  • ????????????????WHERE?matnr?EQ?it_item-material.??
  • ????????IF?g_mtart?EQ?'ZNON'.??
  • ??????????it_poitem-acctasscat?=?'Z'.??
  • ??????????it_poitemx-acctasscat?=?'X'.??
  • ????????ENDIF.??
  • ??
  • ??
  • ????????CLEAR:??it_poche,it_pochex.??
  • ????????it_poche-po_item???=?g_poitem.??
  • ????????it_pochex-po_item??=?g_poitem.??
  • ????????it_poche-sched_line???=?g_poitem.??
  • ????????it_pochex-sched_line??=?g_poitem.??
  • ????????it_poche-delivery_date??=?it_item-gr_to_date.??
  • ????????it_pochex-delivery_date??=?'X'.??
  • ??
  • ????????it_poche-quantity???=?g_meng.??
  • ????????it_pochex-quantity??=?'X'.??
  • ??
  • ????????it_pochex-po_itemx?=?'X'.??
  • ????????it_pochex-sched_linex?=?'X'.??
  • ??
  • ??
  • ????????APPEND:?it_poche,it_pochex.??
  • ??
  • ????????it_poitem-plant?=?'8200'.??
  • ????????it_poitemx-plant?=?'X'.??
  • ????????IF?it_item-matl_group?IS?NOT?INITIAL.??
  • ??????????it_poitem-matl_group?=?it_item-matl_group.??
  • ??????????it_poitemx-matl_group?=?'X'.??
  • ????????ENDIF.??
  • ????????it_poitem-over_dlv_tol?=?it_item-over_dlv_tol.??
  • ????????it_poitemx-over_dlv_tol?=?'X'.??
  • ????????it_poitem-tax_code?=?it_item-tax_code.??
  • ????????it_poitemx-tax_code?=?'X'.??
  • ????????g_menge?=?it_item-cond_pb00.??
  • ??
  • ????????IF?g_menge?EQ??0.??
  • ??????????it_poitem-free_item?=?'X'.??
  • ??????????it_poitemx-free_item?=?'X'.??
  • ????????ELSE.??
  • ??????????it_poitem-free_item?=?''.??
  • ??????????it_poitemx-free_item?=?'X'.??
  • ????????ENDIF.??
  • ??
  • ????????it_poitem-matl_group?=?it_item-matl_group.??
  • ????????it_poitemx-matl_group?=?'X'.??
  • ??
  • ??
  • ????????IT_POITEM-NET_PRICE?=?IT_ITEM-COND_PB00.??
  • ????????IT_POITEMX-NET_PRICE?=?'X'.??
  • ????????it_poitem-price_unit?=?it_item-cond_p_unt.??
  • ????????it_poitemx-price_unit?=?'X'.??
  • ????????APPEND:it_poitemx,it_poitem.??
  • ??
  • ??
  • *ConditionS??
  • ????????CLEAR?it_pocond.??
  • ????????it_pocond-cond_type?=?'PB00'.??
  • ????????it_pocond-itm_number?=?it_poitem-po_item.??
  • ????????it_pocond-cond_value?=?IT_ITEM-COND_PB00.??
  • ????????it_pocond-cond_p_unt??=??it_item-cond_p_unt.??
  • ????????it_pocond-currency????=?it_head-currency.??
  • ????????it_pocond-change_id???=?'U'.??
  • ????????APPEND?it_pocond.??
  • ??
  • ????????CLEAR?it_pocondx.??
  • ????????it_pocondx-cond_type?=?'X'.??
  • ????????it_pocondx-itm_number?=?it_poitem-po_item.??
  • ????????it_pocondx-cond_value?=?'X'.??
  • ????????it_pocondx-cond_p_unt?=?'X'.??
  • ????????it_pocondx-currency????=?'X'.??
  • ????????it_pocondx-change_id???=?'X'.??
  • ????????APPEND?it_pocondx.??
  • ??
  • ??????ENDIF.??
  • ????ENDLOOP.??
  • ??
  • ????wa_testrun?=?p_flag.??
  • ????DELETE?it_item?WHERE??po?EQ?it_head-po.??
  • ????SELECT?SINGLE?ebeln?INTO?g_ebeln?FROM?ekko??
  • ????????WHERE?ebeln?EQ?wa_pohead-po_number.??
  • ????IF?sy-subrc?NE?0.??
  • <font?color="#ff0000">??????CALL?FUNCTION?'BAPI_PO_CREATE1'??
  • ????????EXPORTING??
  • ??????????poheader?????=?wa_pohead??
  • ??????????poheaderx????=?wa_poheadx??
  • ??????????poaddrvendor?=?wa_poaddrvendor??
  • ??????????testrun??????=?wa_testrun??
  • ????????IMPORTING??
  • ??????????EXPPURCHASEORDER????????=?purchseorder??
  • ????????TABLES??
  • ??????????return???????=?it_return??
  • ??????????poitem???????=?it_poitem??
  • ??????????poitemx??????=?it_poitemx??
  • ??????????poschedule???=?it_poche??
  • ??????????poschedulex??=?it_pochex??
  • ??????????pocond???????=?it_pocond??
  • ??????????pocondx??????=?it_pocondx??
  • ??????????potextheader?=?it_potexth??
  • ??????????potextitem???=?it_potexti??
  • ??????????popartner????=?it_popartner.</font>??
  • ??
  • <font?color="#ff0000">CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'.??
  • ????WAIT?UP?TO?1?SECONDS.</font>??
  • ????REFRESH:?it_poitem,it_poitemx,it_poche,it_pochex,??
  • ?????????????it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner.??
  • ????CLEAR:it_return,it_poitem,it_poitemx,it_poche,it_pochex,??
  • ?????????????it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner.??
  • ????DELETE?it_item?WHERE?po?EQ?it_head-po.??
  • ????DELETE?it_head?WHERE?po?EQ?it_head-po.??
  • *????LOOP?AT?it_return?WHERE?type?EQ?'E'.??
  • ????LOOP?AT?it_return.??
  • ??????MOVE-CORRESPONDING?it_return?TO?it_msg1.??
  • *??????it_msg1-ebeln?=?wa_pohead-po_number.??
  • ??????it_msg1-ebeln?=?purchseorder.??
  • ??????it_msg1-old_po?=?it_head-po.??
  • ??????APPEND?it_msg1.??
  • ??????clear?it_msg1.??
  • ????ENDLOOP.??
  • ????ENDIF.??
  • ??
  • ??ENDLOOP.??
  • ??
  • ??
  • ??CALL?FUNCTION?'WS_DOWNLOAD'??
  • ????EXPORTING??
  • ??????filename????????????????=?p_log??
  • ??????filetype????????????????=?'DAT'??
  • ??????mode????????????????????=?'O'??
  • ????TABLES??
  • ??????data_tab????????????????=?it_msg1??
  • ????EXCEPTIONS??
  • ??????invalid_filesize????????=?1??
  • ??????invalid_table_width?????=?2??
  • ??????invalid_type????????????=?3??
  • ??????no_batch????????????????=?4??
  • ??????unknown_error???????????=?5??
  • ??????gui_refuse_filetransfer?=?6??
  • ??????OTHERS??????????????????=?7.??
  • ??IF?sy-subrc?<>?0.??
  • ????MESSAGE?ID?sy-msgid?TYPE?sy-msgty?NUMBER?sy-msgno??
  • ????????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.??
  • ??ENDIF.??
  • ??
  • ENDFORM.????????????????????"?UPLOAD_DATA??
  • </pre>??
  • view plaincopy to clipboardprint?
  • *&---------------------------------------------------------------------*??
  • *&?Report??ZCON0026??
  • *&??
  • *&---------------------------------------------------------------------*??
  • *&??Author:?Jun??
  • *&??
  • *&---------------------------------------------------------------------*??
  • ??
  • REPORT??ZCON0026.??
  • ??
  • FIELD-SYMBOLS?:?<fs></fs>.??
  • <font?color="#ff0000">DATA:wa_pohead??TYPE?bapimepoheader.??
  • DATA:wa_poheadx?TYPE?bapimepoheaderx.??
  • DATA:wa_poaddrvendor?TYPE?bapimepoaddrvendor.??
  • DATA:wa_testrun?TYPE?bapiflag-bapiflag.</font>??
  • DATA:g_ebeln?TYPE?ekko-ebeln.???"Purchasing?Document?Header??
  • DATA:g_mtart?TYPE?mtart.??
  • ??
  • <font?color="#ff0000">DATA:it_return????TYPE?bapiret2???????OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_msg???????TYPE?bapiret2???????OCCURS?0?WITH?HEADER?LINE.</font>??
  • DATA:BEGIN?OF?it_msg1?OCCURS?0,??
  • ??????????ebeln?LIKE?ekpo-ebeln,??
  • ??????????type?like?bapiret2-type,??
  • ??????????message?LIKE?bapiret2-message,??
  • ??????????old_po?like?ekpo-ebeln,??
  • ?????END??OF?it_msg1.??
  • <font?color="#ff0000">DATA:it_poitem????TYPE?bapimepoitem???OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poitemx???TYPE?bapimepoitemx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondh???TYPE?bapimepocondheader?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondhx??TYPE?bapimepocondheaderx?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocond????TYPE?bapimepocond???OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pocondx???TYPE?bapimepocondx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_potexth???TYPE?bapimepotextheader??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_potexti???TYPE?bapimepotext??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_popartner?TYPE?bapiekkop??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_extens????TYPE?bapiparex??OCCURS?0?WITH?HEADER?LINE.????"Customer's?Own?Fields??
  • DATA:it_poaccount?TYPE?bapimepoaccount??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poaccountx?TYPE?bapimepoaccountx??OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_poche??????TYPE?bapimeposchedule?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:it_pochex?????TYPE?bapimeposchedulx?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:purchseorder?TYPE?BAPIMEPOHEADER-PO_NUMBER.</font>??
  • ??
  • DATA:g_poitem?TYPE?ebelp.???"Item?Number?of?Purchasing?Document??
  • DATA:g_meng?LIKE?ekpo-menge.????"Purchase?Order?Quantity??
  • DATA:l_intern?TYPE?kcde_cells?OCCURS?0?WITH?HEADER?LINE.??
  • DATA:len_str?TYPE?i,??
  • ?????l_index?TYPE?i.??
  • ??
  • DATA:BEGIN?OF?it_data?OCCURS?0,??
  • *???????doc_type(004),?????
  • *&---------------------------------------------------------------------* *& Report ZCON0026 *& *&---------------------------------------------------------------------* *& Author: Jun *& *&---------------------------------------------------------------------* REPORT ZCON0026. FIELD-SYMBOLS : . DATA:g_ebeln TYPE ekko-ebeln. "Purchasing Document Header DATA:g_mtart TYPE mtart. DATA:BEGIN OF it_msg1 OCCURS 0, ebeln LIKE ekpo-ebeln, type like bapiret2-type, message LIKE bapiret2-message, old_po like ekpo-ebeln, END OF it_msg1. DATA:g_poitem TYPE ebelp. "Item Number of Purchasing Document DATA:g_meng LIKE ekpo-menge. "Purchase Order Quantity DATA:l_intern TYPE kcde_cells OCCURS 0 WITH HEADER LINE. DATA:len_str TYPE i, l_index TYPE i. DATA:BEGIN OF it_data OCCURS 0, * doc_type(004), view plaincopy to clipboardprint?
  • ???????po(010),??"PO?NO??
  • ???????material(018),??
  • ???????vendor(010),??
  • ???????invoice_no(15),??"Invoice?Number(Header?text)??
  • ???????pmnttrms(004),???"Paymentterms??
  • ???????quantity(017),??
  • ???????doc_date(008),??
  • ???????gr_to_date(008),?"Delivery?date??
  • ???????shippingin(10),??"Ship?Date(Header?Text)??
  • ???????eta_hk(10),??????"Date?of?ETA?HK(Header?Text)??
  • ???????trsp_metd(10),???"Transportion?Method(Header?Text)??
  • ???????container_no(20),??"COntainer?Number(Header?Text)??
  • ???????lc_number(20),???"LC?Number(Header?Text)??
  • ???????load_date(10),???"Load?Date(Header?Text)??
  • ???????arr_hk(10),??????"Date?of?Arr.?Date(Header?Text)??
  • ???????remark(20),??????"Header?remark(Header?Text)??
  • ???????currency(005),??
  • ???????cond_pb00(038),??"Net?price??
  • ???????cond_p_unt(5),????"Price?Unit??
  • ??
  • END?OF?it_data.??
  • DATA:BEGIN?OF?it_head?OCCURS?0,??
  • ???????comp_code(4),????"Company?Code??
  • ???????doc_type(004),???"######??
  • ???????po_number(010),??
  • ???????po(010),??
  • ???????vendor(010),?????"######??
  • ???????doc_date(008),???"####??
  • ???????purch_org(004),??"####??
  • ???????pur_group(003),??"####??
  • ???????pmnttrms(004),???"####??
  • ???????incoterms1(003),?"######??
  • ???????incoterms2(028),?"######??
  • ???????currency(005),???"####??
  • ???????exch_rate(014),??"##??
  • ???????text_pohzs(132),?"Header?Remark??
  • ???????shippingin(132),?"SHIPPING?INSTRUCTION??
  • ???????prppayment(132),?"PAYMENT?TERM?FOR?PRP??
  • ???????delivery(132),???"DELIVERY??
  • ???????attention(132),??"ATTENTION??
  • ???????name_2(040),?????????????????????????????????????????"#####2??
  • ???????name_3(040),?????????????????????????????????????????"#####3??
  • ???????name_4(040),?????????????????????????????????????????"#####4??
  • ???????street(040),?????"##??
  • ???????str_suppl2(040),?"##4??
  • ???????location(040),???"##5??
  • ???????postl_cod1(010),?"######??
  • ???????country(003),????"####??
  • ???????tel1_numbr(030),?"##??
  • ???????fax_number(030),?"##??
  • ???????billty(002),?????"########??
  • ???????billpo(010),?????"######??
  • ???????purcty(002),?????"########??
  • ???????purcpo(010),?????"#####??
  • ???????patety(002),?????"########??
  • ???????patepo(010),?????"######??
  • ???????shipty(002),?????"########??
  • ???????shippo(010),?????"######??
  • ???????COLLECT_NO(010),???"Collective?Number??
  • ?????END???OF?it_head.??
  • DATA:BEGIN?OF?it_item?OCCURS?0,??
  • ???????po_number(010),??"??
  • ???????po(010),??
  • ???????acctasscat(001),?"######??
  • ???????item_cat(001),???"####??
  • ???????material(018),???"######??
  • ???????short_text(040),?"####??
  • ???????quantity(017),???"######??
  • ???????po_unit(003),????"####??
  • ???????gr_to_date(008),?"####??
  • ???????cond_pb00(038),??"Net?Price??
  • ???????cond_p_unt(005),?"########??
  • ???????cond_za00(038),??"UNZ#UTE######??
  • ???????matl_group(009),?"####??
  • ???????plant(004),??????"##??
  • ???????over_dlv_tol(005),"########??
  • ???????tax_code(002),????"##/######??
  • ???????costcenter(010),??"####??
  • ???????poit_text(132),???"PO####??
  • ???????pobz_text(132),???"PO####??
  • ???????valuepart1(240),??"Exfact?Date??
  • ???????valuepart2(240),??"Arr.HK?Date??
  • ?????END?OF?it_item.??
  • DATA:g_menge?LIKE?ekpo-netpr.??
  • ******************************************************************??
  • *???PARAMETERS?&?SELECTION-OPTIONS??
  • ******************************************************************??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?sel??WITH?FRAME?TITLE?text-001.??
  • PARAMETERS:p_upload?RADIOBUTTON?GROUP?radi,??
  • ???????????p_uptemp?RADIOBUTTON?GROUP?radi.??
  • PARAMETERS:p_flag??AS?CHECKBOX?.??
  • SELECTION-SCREEN?END?OF?BLOCK?sel.??
  • ??
  • SELECTION-SCREEN?BEGIN?OF?BLOCK?mod??WITH?FRAME?TITLE?text-002.??
  • PARAMETERS:p_file?LIKE??rlgrap-filename?DEFAULT?'c:\podata',??
  • ???????????p_log??LIKE??rlgrap-filename?DEFAULT?'c:\polog.xls'.??
  • SELECTION-SCREEN?END?OF?BLOCK?mod.??
  • ??
  • START-OF-SELECTION.??
  • ??IF?p_upload?=?'X'.??
  • ????PERFORM?upload_file.??
  • ????PERFORM?upload_data.??
  • ??ENDIF.??
  • ??
  • ??
  • *&--------------------------------------------------------------------*??
  • *&??????Form??upload_file??
  • *&--------------------------------------------------------------------*??
  • *???????text??
  • *---------------------------------------------------------------------*??
  • FORM?upload_file.??
  • ??
  • ??TRANSLATE?p_file?TO?UPPER?CASE.??
  • ??len_str?=?STRLEN(?p_file?).??
  • ??len_str?=?len_str?-?4.??
  • ??IF?p_file+len_str(4)?<>?'.XLS'.??
  • ????CONCATENATE?p_file?'.XLS'?INTO?p_file.??
  • ??ENDIF.??
  • ??CALL?FUNCTION?'KCD_EXCEL_OLE_TO_INT_CONVERT'??
  • ????EXPORTING??
  • ??????filename????????????????=?p_file??
  • ??????i_begin_col?????????????=?1??
  • ??????i_begin_row?????????????=?2??
  • ??????i_end_col???????????????=?256??
  • ??????i_end_row???????????????=?65535??
  • ????TABLES??
  • ??????intern??????????????????=?l_intern??
  • ????EXCEPTIONS??
  • ??????inconsistent_parameters?=?1??
  • ??????upload_ole??????????????=?2??
  • ??????OTHERS??????????????????=?3.??
  • ??IF?sy-subrc?<>?0.??
  • ??ENDIF.??
  • ??
  • ??SORT?l_intern?BY?row?col.??
  • ??LOOP?AT?l_intern.??
  • ????MOVE?l_intern-col?TO?l_index.??
  • ????ASSIGN?COMPONENT?l_index?OF?STRUCTURE?it_data?TO?<fs></fs>.??
  • ????MOVE?l_intern-value?TO?<fs></fs>.??
  • ????AT?END?OF?row.??
  • ??????APPEND?it_data.??
  • ??????CLEAR??it_data.??
  • ????ENDAT.??
  • ??ENDLOOP.??
  • ??
  • ENDFORM.????????????????????"UPLOAD_FILE??
  • *&---------------------------------------------------------------------*??
  • *&??????Form??UPLOAD_DATA??
  • *&---------------------------------------------------------------------*??
  • FORM?upload_data?.??
  • ??CLEAR:it_head,it_item.??
  • ??LOOP?AT?it_data.??
  • ????MOVE-CORRESPONDING?it_data?TO?it_head.??
  • ????it_head-COLLECT_NO?=?it_data-po.??
  • ????COLLECT?it_head.??
  • ????MOVE-CORRESPONDING?it_data?TO?it_item.??
  • ????APPEND??it_item.??
  • ??ENDLOOP.??
  • ??REFRESH?it_msg.??
  • ??
  • ??
  • ??LOOP?AT?it_head.??
  • ????CLEAR:?it_potexth,wa_pohead,wa_poheadx,wa_poaddrvendor.??
  • ????REFRESH:it_potexth,it_popartner.??
  • *Document?Type??
  • ????wa_pohead-doc_type?=?'NB'.??
  • ????wa_poheadx-doc_type?=?'X'.??
  • ??
  • *Vendor?Number??
  • ????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'??
  • ??????EXPORTING??
  • ????????input??=?it_head-vendor??
  • ??????IMPORTING??
  • ????????output?=?it_head-vendor.??
  • ????wa_pohead-vendor?=?it_head-vendor.??
  • ????wa_poheadx-vendor?=?'X'.??
  • *Document?Date??
  • ????wa_pohead-doc_date?=?it_head-doc_date.??
  • ????wa_poheadx-doc_date?=?'X'.??
  • ??
  • *Collective?Number??
  • ????wa_pohead-COLLECT_NO?=?it_head-COLLECT_NO.??
  • ????wa_poheadx-COLLECT_NO?=?'X'.??
  • ??
  • *Company?Code??
  • ??????wa_pohead-comp_code?=?'8200'.??
  • ??????wa_poheadx-comp_code?=?'X'.??
  • ??
  • ??
  • *Purchase?Organise??
  • ??????wa_pohead-purch_org?=?'8200'.??
  • ??
  • *Purchase?Group??
  • ??????wa_pohead-pur_group?=?'003'.??
  • ??????wa_poheadx-pur_group?=?'X'.??
  • ??
  • *Payment?term??
  • ??????wa_pohead-pmnttrms?=?it_head-pmnttrms.??
  • ??????wa_poheadx-pmnttrms?=?'X'.??
  • ??
  • *Currency??
  • ????wa_pohead-currency?=?it_head-currency.??
  • ????wa_poheadx-currency?=?'X'.??
  • ??
  • *Purchase?Order?Header?Text??
  • ??????it_potexth-text_line?=?it_data-remark.????"Header?Remark(Header?Text)??
  • ??????it_potexth-po_number?=?it_head-po_number.??
  • ??????it_potexth-text_id???=?'F01'.??
  • ??????APPEND?it_potexth.??
  • ??????CLEAR?it_potexth.??
  • ??
  • *SHIPPING?INSTRUCTION??
  • ????it_potexth-text_line?=?it_head-shippingin.??"Ship?Date(Header?Text)??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F02'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *PAYMENT?TERM?FOR?PRP??
  • ????it_potexth-text_line?=?it_data-load_date.??"Load?Date(Header?Text)??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F03'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *Date?of?ETA?HK??
  • ????it_potexth-text_line?=?it_data-eta_hk.????"Date?of?ETA?HK??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F04'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • *Date?of?Arr?HK??
  • ????it_potexth-text_line?=?it_data-arr_hk.????"Date?of?Arr?HK??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F05'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Transpotion?Method??
  • ????it_potexth-text_line?=?it_data-trsp_metd.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F06'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Container?Number??
  • ????it_potexth-text_line?=?it_data-container_no.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F07'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *LC?Number??
  • ????it_potexth-text_line?=?it_data-lc_number.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F08'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • *Invoice?Number??
  • ????it_potexth-text_line?=?it_data-invoice_no.??
  • ????it_potexth-po_number?=?it_head-po_number.??
  • ????it_potexth-text_id???=?'F09'.??
  • ????APPEND?it_potexth.??
  • ????CLEAR?it_potexth.??
  • ??
  • ??
  • *Purchase?Order?Item?Information??
  • ????CLEAR?g_poitem.??
  • ????REFRESH:?it_poitemx,it_poitem,it_pocond,it_pocondx,??
  • ?????????????it_poche,it_pochex?.??
  • ??
  • ????LOOP?AT?it_item.??
  • ??????IF??it_item-po?EQ?it_head-po.??
  • ????????CLEAR:it_poitem,?it_poitemx.??
  • ????????g_poitem?=?g_poitem?+?10.??
  • ????????it_poitem-po_item?=?g_poitem.??
  • ????????it_poitemx-po_item?=?g_poitem.??
  • ????????it_poitem-item_cat?=?it_item-item_cat.??
  • ????????it_poitemx-item_cat?=?'X'.??
  • ????????it_poitemx-po_itemx?=?'X'.??
  • ????????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'??
  • ??????????EXPORTING??
  • ????????????input??=?it_item-material??
  • ??????????IMPORTING??
  • ????????????output?=?it_item-material.??
  • ??
  • ????????it_poitem-material?=?it_item-material.??
  • ????????it_poitemx-material?=?'X'.??
  • ????????IF?it_item-short_text?IS?NOT?INITIAL.??
  • ??????????it_poitem-short_text?=?it_item-short_text.??
  • ??????????it_poitemx-short_text?=?'X'.??
  • ??
  • ????????ENDIF.??
  • ??
  • ????????CLEAR?g_meng.??
  • ????????g_meng?=?it_item-quantity.??
  • ????????it_poitem-quantity?=?g_meng.??
  • ????????it_poitemx-quantity?=?'X'.??
  • ????????it_poitem-po_unit?=??it_item-po_unit.??
  • ????????it_poitemx-po_unit?=??'X'.??
  • ??
  • ????????CLEAR?g_mtart.??
  • ????????SELECT?SINGLE?mtart?INTO?g_mtart?FROM?mara??
  • ????????????????WHERE?matnr?EQ?it_item-material.??
  • ????????IF?g_mtart?EQ?'ZNON'.??
  • ??????????it_poitem-acctasscat?=?'Z'.??
  • ??????????it_poitemx-acctasscat?=?'X'.??
  • ????????ENDIF.??
  • ??
  • ??
  • ????????CLEAR:??it_poche,it_pochex.??
  • ????????it_poche-po_item???=?g_poitem.??
  • ????????it_pochex-po_item??=?g_poitem.??
  • ????????it_poche-sched_line???=?g_poitem.??
  • ????????it_pochex-sched_line??=?g_poitem.??
  • ????????it_poche-delivery_date??=?it_item-gr_to_date.??
  • ????????it_pochex-delivery_date??=?'X'.??
  • ??
  • ????????it_poche-quantity???=?g_meng.??
  • ????????it_pochex-quantity??=?'X'.??
  • ??
  • ????????it_pochex-po_itemx?=?'X'.??
  • ????????it_pochex-sched_linex?=?'X'.??
  • ??
  • ??
  • ????????APPEND:?it_poche,it_pochex.??
  • ??
  • ????????it_poitem-plant?=?'8200'.??
  • ????????it_poitemx-plant?=?'X'.??
  • ????????IF?it_item-matl_group?IS?NOT?INITIAL.??
  • ??????????it_poitem-matl_group?=?it_item-matl_group.??
  • ??????????it_poitemx-matl_group?=?'X'.??
  • ????????ENDIF.??
  • ????????it_poitem-over_dlv_tol?=?it_item-over_dlv_tol.??
  • ????????it_poitemx-over_dlv_tol?=?'X'.??
  • ????????it_poitem-tax_code?=?it_item-tax_code.??
  • ????????it_poitemx-tax_code?=?'X'.??
  • ????????g_menge?=?it_item-cond_pb00.??
  • ??
  • ????????IF?g_menge?EQ??0.??
  • ??????????it_poitem-free_item?=?'X'.??
  • ??????????it_poitemx-free_item?=?'X'.??
  • ????????ELSE.??
  • ??????????it_poitem-free_item?=?''.??
  • ??????????it_poitemx-free_item?=?'X'.??
  • ????????ENDIF.??
  • ??
  • ????????it_poitem-matl_group?=?it_item-matl_group.??
  • ????????it_poitemx-matl_group?=?'X'.??
  • ??
  • ??
  • ????????IT_POITEM-NET_PRICE?=?IT_ITEM-COND_PB00.??
  • ????????IT_POITEMX-NET_PRICE?=?'X'.??
  • ????????it_poitem-price_unit?=?it_item-cond_p_unt.??
  • ????????it_poitemx-price_unit?=?'X'.??
  • ????????APPEND:it_poitemx,it_poitem.??
  • ??
  • ??
  • *ConditionS??
  • ????????CLEAR?it_pocond.??
  • ????????it_pocond-cond_type?=?'PB00'.??
  • ????????it_pocond-itm_number?=?it_poitem-po_item.??
  • ????????it_pocond-cond_value?=?IT_ITEM-COND_PB00.??
  • ????????it_pocond-cond_p_unt??=??it_item-cond_p_unt.??
  • ????????it_pocond-currency????=?it_head-currency.??
  • ????????it_pocond-change_id???=?'U'.??
  • ????????APPEND?it_pocond.??
  • ??
  • ????????CLEAR?it_pocondx.??
  • ????????it_pocondx-cond_type?=?'X'.??
  • ????????it_pocondx-itm_number?=?it_poitem-po_item.??
  • ????????it_pocondx-cond_value?=?'X'.??
  • ????????it_pocondx-cond_p_unt?=?'X'.??
  • ????????it_pocondx-currency????=?'X'.??
  • ????????it_pocondx-change_id???=?'X'.??
  • ????????APPEND?it_pocondx.??
  • ??
  • ??????ENDIF.??
  • ????ENDLOOP.??
  • ??
  • ????wa_testrun?=?p_flag.??
  • ????DELETE?it_item?WHERE??po?EQ?it_head-po.??
  • ????SELECT?SINGLE?ebeln?INTO?g_ebeln?FROM?ekko??
  • ????????WHERE?ebeln?EQ?wa_pohead-po_number.??
  • ????IF?sy-subrc?NE?0.??
  • <font?color="#ff0000">??????CALL?FUNCTION?'BAPI_PO_CREATE1'??
  • ????????EXPORTING??
  • ??????????poheader?????=?wa_pohead??
  • ??????????poheaderx????=?wa_poheadx??
  • ??????????poaddrvendor?=?wa_poaddrvendor??
  • ??????????testrun??????=?wa_testrun??
  • ????????IMPORTING??
  • ??????????EXPPURCHASEORDER????????=?purchseorder??
  • ????????TABLES??
  • ??????????return???????=?it_return??
  • ??????????poitem???????=?it_poitem??
  • ??????????poitemx??????=?it_poitemx??
  • ??????????poschedule???=?it_poche??
  • ??????????poschedulex??=?it_pochex??
  • ??????????pocond???????=?it_pocond??
  • ??????????pocondx??????=?it_pocondx??
  • ??????????potextheader?=?it_potexth??
  • ??????????potextitem???=?it_potexti??
  • ??????????popartner????=?it_popartner.</font>??
  • ??
  • <font?color="#ff0000">CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'.??
  • ????WAIT?UP?TO?1?SECONDS.</font>??
  • ????REFRESH:?it_poitem,it_poitemx,it_poche,it_pochex,??
  • ?????????????it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner.??
  • ????CLEAR:it_return,it_poitem,it_poitemx,it_poche,it_pochex,??
  • ?????????????it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner.??
  • ????DELETE?it_item?WHERE?po?EQ?it_head-po.??
  • ????DELETE?it_head?WHERE?po?EQ?it_head-po.??
  • *????LOOP?AT?it_return?WHERE?type?EQ?'E'.??
  • ????LOOP?AT?it_return.??
  • ??????MOVE-CORRESPONDING?it_return?TO?it_msg1.??
  • *??????it_msg1-ebeln?=?wa_pohead-po_number.??
  • ??????it_msg1-ebeln?=?purchseorder.??
  • ??????it_msg1-old_po?=?it_head-po.??
  • ??????APPEND?it_msg1.??
  • ??????clear?it_msg1.??
  • ????ENDLOOP.??
  • ????ENDIF.??
  • ??
  • ??ENDLOOP.??
  • ??
  • ??
  • ??CALL?FUNCTION?'WS_DOWNLOAD'??
  • ????EXPORTING??
  • ??????filename????????????????=?p_log??
  • ??????filetype????????????????=?'DAT'??
  • ??????mode????????????????????=?'O'??
  • ????TABLES??
  • ??????data_tab????????????????=?it_msg1??
  • ????EXCEPTIONS??
  • ??????invalid_filesize????????=?1??
  • ??????invalid_table_width?????=?2??
  • ??????invalid_type????????????=?3??
  • ??????no_batch????????????????=?4??
  • ??????unknown_error???????????=?5??
  • ??????gui_refuse_filetransfer?=?6??
  • ??????OTHERS??????????????????=?7.??
  • ??IF?sy-subrc?<>?0.??
  • ????MESSAGE?ID?sy-msgid?TYPE?sy-msgty?NUMBER?sy-msgno??
  • ????????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.??
  • ??ENDIF.??
  • ??
  • ENDFORM.????????????????????"?UPLOAD_DATA??
  • po(010), "PO NO material(018), vendor(010), invoice_no(15), "Invoice Number(Header text) pmnttrms(004), "Paymentterms quantity(017), doc_date(008), gr_to_date(008), "Delivery date shippingin(10), "Ship Date(Header Text) eta_hk(10), "Date of ETA HK(Header Text) trsp_metd(10), "Transportion Method(Header Text) container_no(20), "COntainer Number(Header Text) lc_number(20), "LC Number(Header Text) load_date(10), "Load Date(Header Text) arr_hk(10), "Date of Arr. Date(Header Text) remark(20), "Header remark(Header Text) currency(005), cond_pb00(038), "Net price cond_p_unt(5), "Price Unit END OF it_data. DATA:BEGIN OF it_head OCCURS 0, comp_code(4), "Company Code doc_type(004), "###### po_number(010), po(010), vendor(010), "###### doc_date(008), "#### purch_org(004), "#### pur_group(003), "#### pmnttrms(004), "#### incoterms1(003), "###### incoterms2(028), "###### currency(005), "#### exch_rate(014), "## text_pohzs(132), "Header Remark shippingin(132), "SHIPPING INSTRUCTION prppayment(132), "PAYMENT TERM FOR PRP delivery(132), "DELIVERY attention(132), "ATTENTION name_2(040), "#####2 name_3(040), "#####3 name_4(040), "#####4 street(040), "## str_suppl2(040), "##4 location(040), "##5 postl_cod1(010), "###### country(003), "#### tel1_numbr(030), "## fax_number(030), "## billty(002), "######## billpo(010), "###### purcty(002), "######## purcpo(010), "##### patety(002), "######## patepo(010), "###### shipty(002), "######## shippo(010), "###### COLLECT_NO(010), "Collective Number END OF it_head. DATA:BEGIN OF it_item OCCURS 0, po_number(010), " po(010), acctasscat(001), "###### item_cat(001), "#### material(018), "###### short_text(040), "#### quantity(017), "###### po_unit(003), "#### gr_to_date(008), "#### cond_pb00(038), "Net Price cond_p_unt(005), "######## cond_za00(038), "UNZ#UTE###### matl_group(009), "#### plant(004), "## over_dlv_tol(005),"######## tax_code(002), "##/###### costcenter(010), "#### poit_text(132), "PO#### pobz_text(132), "PO#### valuepart1(240), "Exfact Date valuepart2(240), "Arr.HK Date END OF it_item. DATA:g_menge LIKE ekpo-netpr. ****************************************************************** * PARAMETERS & SELECTION-OPTIONS ****************************************************************** SELECTION-SCREEN BEGIN OF BLOCK sel WITH FRAME TITLE text-001. PARAMETERS:p_upload RADIOBUTTON GROUP radi, p_uptemp RADIOBUTTON GROUP radi. PARAMETERS:p_flag AS CHECKBOX . SELECTION-SCREEN END OF BLOCK sel. SELECTION-SCREEN BEGIN OF BLOCK mod WITH FRAME TITLE text-002. PARAMETERS:p_file LIKE rlgrap-filename DEFAULT 'c:\podata', p_log LIKE rlgrap-filename DEFAULT 'c:\polog.xls'. SELECTION-SCREEN END OF BLOCK mod. START-OF-SELECTION. IF p_upload = 'X'. PERFORM upload_file. PERFORM upload_data. ENDIF. *&--------------------------------------------------------------------* *& Form upload_file *&--------------------------------------------------------------------* * text *---------------------------------------------------------------------* FORM upload_file. TRANSLATE p_file TO UPPER CASE. len_str = STRLEN( p_file ). len_str = len_str - 4. IF p_file+len_str(4) <> '.XLS'. CONCATENATE p_file '.XLS' INTO p_file. ENDIF. CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT' EXPORTING filename = p_file i_begin_col = 1 i_begin_row = 2 i_end_col = 256 i_end_row = 65535 TABLES intern = l_intern EXCEPTIONS inconsistent_parameters = 1 upload_ole = 2 OTHERS = 3. IF sy-subrc <> 0. ENDIF. SORT l_intern BY row col. LOOP AT l_intern. MOVE l_intern-col TO l_index. ASSIGN COMPONENT l_index OF STRUCTURE it_data TO . MOVE l_intern-value TO . AT END OF row. APPEND it_data. CLEAR it_data. ENDAT. ENDLOOP. ENDFORM. "UPLOAD_FILE *&---------------------------------------------------------------------* *& Form UPLOAD_DATA *&---------------------------------------------------------------------* FORM upload_data . CLEAR:it_head,it_item. LOOP AT it_data. MOVE-CORRESPONDING it_data TO it_head. it_head-COLLECT_NO = it_data-po. COLLECT it_head. MOVE-CORRESPONDING it_data TO it_item. APPEND it_item. ENDLOOP. REFRESH it_msg. LOOP AT it_head. CLEAR: it_potexth,wa_pohead,wa_poheadx,wa_poaddrvendor. REFRESH:it_potexth,it_popartner. *Document Type wa_pohead-doc_type = 'NB'. wa_poheadx-doc_type = 'X'. *Vendor Number CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = it_head-vendor IMPORTING output = it_head-vendor. wa_pohead-vendor = it_head-vendor. wa_poheadx-vendor = 'X'. *Document Date wa_pohead-doc_date = it_head-doc_date. wa_poheadx-doc_date = 'X'. *Collective Number wa_pohead-COLLECT_NO = it_head-COLLECT_NO. wa_poheadx-COLLECT_NO = 'X'. *Company Code wa_pohead-comp_code = '8200'. wa_poheadx-comp_code = 'X'. *Purchase Organise wa_pohead-purch_org = '8200'. *Purchase Group wa_pohead-pur_group = '003'. wa_poheadx-pur_group = 'X'. *Payment term wa_pohead-pmnttrms = it_head-pmnttrms. wa_poheadx-pmnttrms = 'X'. *Currency wa_pohead-currency = it_head-currency. wa_poheadx-currency = 'X'. *Purchase Order Header Text it_potexth-text_line = it_data-remark. "Header Remark(Header Text) it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F01'. APPEND it_potexth. CLEAR it_potexth. *SHIPPING INSTRUCTION it_potexth-text_line = it_head-shippingin. "Ship Date(Header Text) it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F02'. APPEND it_potexth. CLEAR it_potexth. *PAYMENT TERM FOR PRP it_potexth-text_line = it_data-load_date. "Load Date(Header Text) it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F03'. APPEND it_potexth. CLEAR it_potexth. *Date of ETA HK it_potexth-text_line = it_data-eta_hk. "Date of ETA HK it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F04'. APPEND it_potexth. CLEAR it_potexth. *Date of Arr HK it_potexth-text_line = it_data-arr_hk. "Date of Arr HK it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F05'. APPEND it_potexth. CLEAR it_potexth. *Transpotion Method it_potexth-text_line = it_data-trsp_metd. it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F06'. APPEND it_potexth. CLEAR it_potexth. *Container Number it_potexth-text_line = it_data-container_no. it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F07'. APPEND it_potexth. CLEAR it_potexth. *LC Number it_potexth-text_line = it_data-lc_number. it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F08'. APPEND it_potexth. CLEAR it_potexth. *Invoice Number it_potexth-text_line = it_data-invoice_no. it_potexth-po_number = it_head-po_number. it_potexth-text_id = 'F09'. APPEND it_potexth. CLEAR it_potexth. *Purchase Order Item Information CLEAR g_poitem. REFRESH: it_poitemx,it_poitem,it_pocond,it_pocondx, it_poche,it_pochex . LOOP AT it_item. IF it_item-po EQ it_head-po. CLEAR:it_poitem, it_poitemx. g_poitem = g_poitem + 10. it_poitem-po_item = g_poitem. it_poitemx-po_item = g_poitem. it_poitem-item_cat = it_item-item_cat. it_poitemx-item_cat = 'X'. it_poitemx-po_itemx = 'X'. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = it_item-material IMPORTING output = it_item-material. it_poitem-material = it_item-material. it_poitemx-material = 'X'. IF it_item-short_text IS NOT INITIAL. it_poitem-short_text = it_item-short_text. it_poitemx-short_text = 'X'. ENDIF. CLEAR g_meng. g_meng = it_item-quantity. it_poitem-quantity = g_meng. it_poitemx-quantity = 'X'. it_poitem-po_unit = it_item-po_unit. it_poitemx-po_unit = 'X'. CLEAR g_mtart. SELECT SINGLE mtart INTO g_mtart FROM mara WHERE matnr EQ it_item-material. IF g_mtart EQ 'ZNON'. it_poitem-acctasscat = 'Z'. it_poitemx-acctasscat = 'X'. ENDIF. CLEAR: it_poche,it_pochex. it_poche-po_item = g_poitem. it_pochex-po_item = g_poitem. it_poche-sched_line = g_poitem. it_pochex-sched_line = g_poitem. it_poche-delivery_date = it_item-gr_to_date. it_pochex-delivery_date = 'X'. it_poche-quantity = g_meng. it_pochex-quantity = 'X'. it_pochex-po_itemx = 'X'. it_pochex-sched_linex = 'X'. APPEND: it_poche,it_pochex. it_poitem-plant = '8200'. it_poitemx-plant = 'X'. IF it_item-matl_group IS NOT INITIAL. it_poitem-matl_group = it_item-matl_group. it_poitemx-matl_group = 'X'. ENDIF. it_poitem-over_dlv_tol = it_item-over_dlv_tol. it_poitemx-over_dlv_tol = 'X'. it_poitem-tax_code = it_item-tax_code. it_poitemx-tax_code = 'X'. g_menge = it_item-cond_pb00. IF g_menge EQ 0. it_poitem-free_item = 'X'. it_poitemx-free_item = 'X'. ELSE. it_poitem-free_item = ''. it_poitemx-free_item = 'X'. ENDIF. it_poitem-matl_group = it_item-matl_group. it_poitemx-matl_group = 'X'. IT_POITEM-NET_PRICE = IT_ITEM-COND_PB00. IT_POITEMX-NET_PRICE = 'X'. it_poitem-price_unit = it_item-cond_p_unt. it_poitemx-price_unit = 'X'. APPEND:it_poitemx,it_poitem. *ConditionS CLEAR it_pocond. it_pocond-cond_type = 'PB00'. it_pocond-itm_number = it_poitem-po_item. it_pocond-cond_value = IT_ITEM-COND_PB00. it_pocond-cond_p_unt = it_item-cond_p_unt. it_pocond-currency = it_head-currency. it_pocond-change_id = 'U'. APPEND it_pocond. CLEAR it_pocondx. it_pocondx-cond_type = 'X'. it_pocondx-itm_number = it_poitem-po_item. it_pocondx-cond_value = 'X'. it_pocondx-cond_p_unt = 'X'. it_pocondx-currency = 'X'. it_pocondx-change_id = 'X'. APPEND it_pocondx. ENDIF. ENDLOOP. wa_testrun = p_flag. DELETE it_item WHERE po EQ it_head-po. SELECT SINGLE ebeln INTO g_ebeln FROM ekko WHERE ebeln EQ wa_pohead-po_number. IF sy-subrc NE 0. REFRESH: it_poitem,it_poitemx,it_poche,it_pochex, it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner. CLEAR:it_return,it_poitem,it_poitemx,it_poche,it_pochex, it_pocond,it_pocondx,it_potexth,it_potexti,it_popartner. DELETE it_item WHERE po EQ it_head-po. DELETE it_head WHERE po EQ it_head-po. * LOOP AT it_return WHERE type EQ 'E'. LOOP AT it_return. MOVE-CORRESPONDING it_return TO it_msg1. * it_msg1-ebeln = wa_pohead-po_number. it_msg1-ebeln = purchseorder. it_msg1-old_po = it_head-po. APPEND it_msg1. clear it_msg1. ENDLOOP. ENDIF. ENDLOOP. CALL FUNCTION 'WS_DOWNLOAD' EXPORTING filename = p_log filetype = 'DAT' mode = 'O' TABLES data_tab = it_msg1 EXCEPTIONS invalid_filesize = 1 invalid_table_width = 2 invalid_type = 3 no_batch = 4 unknown_error = 5 gui_refuse_filetransfer = 6 OTHERS = 7. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " UPLOAD_DATA

    四, 最后說的是使用ALE技術, 利用IDOC和BAPI實現數據傳輸功能。我在這里提供一個鏈接,這是郭裕老師的在線課程錄像下載, 主要講述的是ALE技術和MASTER DATA DISTRIBUTION技術:http://www.itpub.net/494989,1.html

    轉載于:https://www.cnblogs.com/levin/archive/2009/08/10/1543179.html

    總結

    以上是生活随笔為你收集整理的SAP BDC 技术的分类(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 精品区| 久久男人精品 | 免费成人黄色网 | 仙踪林久久久久久久999 | 色视频网站在线观看 | 亚洲免费观看av | 小视频国产 | 青娱乐自拍视频 | 国产伦精品一区二区三区在线 | 久久影| 九九视频免费看 | 欧美一级一级一级 | 亚洲麻豆 | 林由奈在线观看 | 一级黄色片国产 | 一本大道久久久久精品嫩草 | 少妇献身老头系列 | 曰本黄色片 | 日韩超碰在线 | 成人靠逼视频 | 欧美资源在线 | 成年人小视频 | 欧美整片sss | 91网页入口 | 日韩精品一区二区三区视频在线观看 | 天堂va蜜桃 | 欧洲自拍偷拍 | 99色图| 欧美污污视频 | 婷婷久久精品 | 波多野结衣精品在线 | 狠狠干香蕉 | 日美女逼逼 | 午夜寂寞少妇 | 日韩视频二区 | 中文字幕一区二区三 | 天天夜夜草 | 美女扒开腿让男生捅 | 美女啪啪无遮挡 | 茄子视频色 | 香蕉网久久 | 一区二区高潮 | 两个小y头稚嫩紧窄h文 | 日本h在线 | 亚洲国产精品久久久久爰性色 | 97超碰人人模人人人爽人人爱 | 按摩毛片 | 国产精品2区| 国产精品无码久久久久久 | 娇妻之欲海泛舟无弹窗笔趣阁 | 中国美女乱淫免费看视频 | 美女一区二区三区四区 | 欧美日韩精品区别 | 日韩精品一区二区三区 | 国产6区| 亚洲精品高清视频在线观看 | 女优中文字幕 | 欧美在线激情 | 国产成人网 | 蜜臀99久久精品久久久久小说 | www.久久网 | 亚洲美女在线观看 | 国产精品日韩精品 | 麻豆精品视频在线观看 | 亚洲精品水蜜桃 | 亚洲国产免费 | 中文字幕超碰在线 | www精品一区二区三区 | 国产精品电影院 | 欧美一区影院 | 久久9999久久免费精品国产 | 午夜精品在线视频 | 欧美一级片免费观看 | 在线观看va| 色av网| 五月天av网站 | 欧美精品日韩在线观看 | 人人妻人人玩人人澡人人爽 | 免费精品无码AV片在线观看黄 | 欧美xxxxbbb| 精品h | 亚洲精品视频一区二区三区 | 无码国产色欲xxxx视频 | 欧美黄色录像 | 欧美日韩精品区别 | 欧美13p| 男女超爽视频免费播放 | 四虎精品在线 | se欧美 | 欧美另类videos | 黄色片在线免费观看 | 91视频在线视频 | 一级爱爱片| 日韩亚洲欧美一区二区三区 | 黄色免费网站在线看 | 久久77| 亚洲午夜在线视频 | 九九在线 | 日韩黄色大全 |