销售订单批量导入(1)
?
?
注意:數量和金額必須用字符,否則 0.81 會變成81
*&---------------------------------------------------------------------*
*&?Report?ZSDR006B
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT?ZSDR006B.
INCLUDE?ZSDR006B_TOP.
INCLUDE?ZSDR006B_SCR.
INCLUDE?ZSDR006B_FRM.
INITIALIZATION.
?CALL?FUNCTION?'ICON_CREATE'?"?給按鈕添加圖標和文本
????EXPORTING
??????name???=?icon_wd_dropdown_key???"?按鈕的圖片的名字
??????text???=?'模板下載'???????????????????"按鈕的文本
??????info???=?'MBXZ'
????IMPORTING
??????result?=?p_mbxz
????EXCEPTIONS
??????OTHERS?=?0.
AT?SELECTION-SCREEN.
IF?sscrfields-ucomm?EQ?'MBXZ'.
????PERFORM?frm_excel_down.
????sscrfields-ucomm?=?''.
??ENDIF.
AT?SELECTION-SCREEN?ON?VALUE-REQUEST?FOR?p_path?.
??PERFORM?get_filename?CHANGING?p_path.
START-OF-SELECTION.
PERFORM?get_file_data.
end-of-SELECTION.
PERFORM?get_data.
PERFORM?alv.
?
*&---------------------------------------------------------------------*
*&?包含???????????????ZSDR006B_TOP
*&---------------------------------------------------------------------*
TABLES:?sscrfields.
DATA:BEGIN?OF?wa_item_mes,
???????checkbox?TYPE?char1,??"勾選框
???????status???TYPE?char10,?"紅綠燈
???????mes_01???TYPE?char1,??"提示類別
???????mes_02???TYPE?string,?"錯誤信息
?????END?OF?wa_item_mes.
DATA:BEGIN?OF?wa_item,
???????vbeln????LIKE?vbak-vbeln,??"系統訂單編號
???????audat????TYPE?char10,??"下單日期
???????bstdk????TYPE?char10,??"客戶參考日期/發貨日期
???????auart????LIKE?vbak-auart,??"單據類型
???????vkbur????LIKE?vbak-vkbur,??"銷售部門/銷售辦事處
???????bstnk????LIKE?vbak-bstnk,??"客戶參考/平臺單號
*???????bname????LIKE?vbak-bname,??"名稱/旺旺號
???????cpmc?????LIKE?zsdt003-cpmc,?"產品名稱/商品編碼
*???????MATNR?????LIKE?zsdt003-MATNR,???"規格代碼
*???????GGMC?????LIKE?zsdt003-GGMC,???"規格名稱
*???????bzfs?????LIKE?zsdt003-bzfs,???"包裝方式
???????kwmeng???LIKE?vbap-kwmeng,??"數量
???????txt_01???TYPE?string,?"行項目文本.訂單行項目文本
???????lgort????LIKE?vbap-lgort,??"庫存地點
*???????txt_02???TYPE?string,?"物流方式
???????vsbed????LIKE?vbak-vsbed,?"裝運條件
*???????txt_03???TYPE?string,?"物流單號
???????ihrez????LIKE?vbak-ihrez,??"您的參考/客戶聯系人
???????kmein????LIKE?vbap-kmein,??"單位
???????txt_04???TYPE?string,?"抬頭文本,訂單抬頭文本
???????kbetr????LIKE?konv-kbetr,?"單價
???????zongje???LIKE?konv-kbetr,?"總金額
???????waerk????LIKE?vbap-waerk,??"貨幣
???????zterm????LIKE?vbkd-zterm,??"付款條件
???????matnr_01?LIKE?vbap-matnr,??"物料編碼
???????ggxh?????LIKE?zsdt003-ggxh,?"規格型號
???????cpmc_01??LIKE?zsdt003-cpmc_01,??"物料描述
???????edatu????TYPE?char10,??"請求交貨日期
???????pstyv????LIKE?vbap-pstyv,??"行項目類別
???????vkorg????LIKE?vbak-vkorg,??"銷售組織
???????vtweg????LIKE?vbak-vtweg,??"分銷渠道
???????spart????LIKE?vbak-spart,??"產品組
???????vkgrp????LIKE?vbak-vkgrp,??"銷售組
???????kunnr????LIKE?vbak-kunnr,??"客戶編碼
???????kunnr_01?LIKE?vbak-kunnr,??"送達方
???????werks????LIKE?vbap-werks,??"工廠
???????augru????LIKE?vbak-augru,??"訂單原因
???????posnr????LIKE?vbap-posnr,??"行項目
???????kpein????LIKE?vbap-kpein,??"價格單位
???????bs_txt???TYPE?c.????????"標識不寫入文本
*???????audat_d_01?like?sy-datum,"下單日期??day類型
????INCLUDE?STRUCTURE?wa_item_mes.
DATA:END?OF?wa_item.
DATA:gt_item???????LIKE?TABLE?OF?wa_item,
?????gt_item_01????LIKE?TABLE?OF?wa_item,
?????gt_item_02????LIKE?TABLE?OF?wa_item,
?????gt_item_po????LIKE?TABLE?OF?wa_item,
?????gt_item_po_01?LIKE?TABLE?OF?wa_item,
?????gt_item_po_02?LIKE?TABLE?OF?wa_item.
DATA:?gs_order_header_in??????TYPE?bapisdhd1,?"銷售訂單抬頭
??????gs_order_header_inx?????TYPE?bapisdhd1x,
??????gs_return_header_in??????TYPE?bapisdhd1,
??????gs_return_header_inx????TYPE?bapisdhd1x,
??????gs_order_items_in???????LIKE??bapisditm,??"銷售訂單行項目
??????gs_order_items_inx??????LIKE??bapisditmx,
??????gs_order_partners???????LIKE??bapiparnr,??"銷售訂單:合作伙伴
??????gs_return_items_in??????LIKE??bapisditm,
??????gs_return_items_inx?????LIKE??bapisditmx,
??????gs_return_partners??????LIKE??bapiparnr,
??????gs_order_conditions_in??LIKE??bapicond,?"銷售訂單:通訊字段
??????gs_order_conditions_inx?LIKE??bapicondx,
??????gs_return_conditions_in?LIKE??bapicond,
??????gs_order_header_in_s????TYPE??bapisdhead,
??????gs_order_items_in_s?????LIKE??bapiitemin,
??????gs_order_partners_s?????LIKE??bapipartnr,
??????gs_order_schedule_in????LIKE??bapischdl,
??????gs_order_items_out??????LIKE??bapiitemex,
??????gs_order_condition_ex???LIKE??bapicond,
??????gt_order_items_in????????TYPE?TABLE?OF??bapisditm,??"銷售訂單行項目
??????gt_order_items_inx??????TYPE?TABLE?OF?bapisditmx,
??????gt_order_partners????????TYPE?TABLE?OF??bapiparnr,
??????gt_return_items_in??????TYPE?TABLE?OF??bapisditm,
??????gt_return_items_inx??????TYPE?TABLE?OF??bapisditmx,
??????gt_return_partners??????TYPE?TABLE?OF??bapiparnr,
??????gt_order_conditions_in??TYPE?TABLE?OF??bapicond,
??????gt_order_conditions_inx?TYPE?TABLE?OF??bapicondx,
??????gt_return_conditions_in?TYPE?TABLE?OF??bapicond,
??????gt_order_header_in_s????TYPE??TABLE?OF?bapisdhead,
??????gt_order_items_in_s?????LIKE??TABLE?OF?bapiitemin,
??????gt_order_partners_s?????LIKE??TABLE?OF?bapipartnr,
??????gt_order_schedule_in????LIKE??TABLE?OF?bapischdl,
??????gt_order_items_out??????LIKE??TABLE?OF?bapiitemex,
??????gt_order_condition_ex???LIKE??TABLE?OF?bapicond,
??????gs_order_schedules_in???LIKE?bapischdl,
??????gt_order_schedules_in???LIKE?TABLE?OF?bapischdl,
??????gs_return_schedules_in??LIKE??bapischdl,
??????gt_return_schedules_in??LIKE??TABLE?OF?bapischdl,
??????wa_return???????????????LIKE?bapiret2,
??????return??????????????????LIKE?TABLE?OF??bapiret2,
??????gs_text?????????????????LIKE?bapisdtext,
??????gt_text?????????????????TYPE?TABLE?OF?bapisdtext.
TYPE-POOLS:truxs.
DATA:xlstab?TYPE?truxs_t_text_data.
DATA:matnr_18?TYPE?char18.
DATA:l_switch?TYPE?TABLE?OF?bapisdls?WITH?HEADER?LINE.
l_switch-pricing?=?'G'.
APPEND?l_switch.
DATA:w_text?TYPE?tline,
?????l_text?TYPE?TABLE?OF?tline,
?????tdname?TYPE?thead-tdname,
?????vbtyp??TYPE?c.
DATA:mes_str?TYPE?string.
TYPE-POOLS:slis.
DATA:?it_fieldcat?TYPE?slis_t_fieldcat_alv,?"lvc_t_fcat,?"列描述內表,列清單
??????wa_fieldcat?LIKE?LINE?OF?it_fieldcat,
??????it_layout???TYPE?slis_layout_alv.?"lvc_s_layo.?"表格規格屬性內表
CONSTANTS?cns_user_command?TYPE?slis_formname?VALUE?'ALV_USER_COMMAND'?.
DATA:z_pp_0001?TYPE?REF?TO?zhele_pp_0001.
CREATE?OBJECT?z_pp_0001.
?
*&---------------------------------------------------------------------*
*&?包含???????????????ZSDR006B_SCR
*&---------------------------------------------------------------------*
PARAMETERS?p_path??LIKE?rlgrap-filename."?OBLIGATORY.
SELECTION-SCREEN?SKIP?1.
SELECTION-SCREEN?PUSHBUTTON?4(20)?p_mbxz?USER-COMMAND?mbxz.?"?定義搜索按鈕
?
*&---------------------------------------------------------------------*
*&?包含???????????????ZSDR006B_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&?包含???????????????ZSDR003_FRM
*&---------------------------------------------------------------------*
FORM?frm_excel_down?.
*?相關變量定義
??DATA:lo_objdata?????LIKE?wwwdatatab,
???????lo_mime????????LIKE?w3mime,
???????lc_filename????TYPE?string?VALUE?'銷售訂單批導模板',
???????lc_fullpath????TYPE?string?VALUE?'c:\',
???????lc_path????????TYPE?string?VALUE?'c:\',
???????ls_destination?LIKE?rlgrap-filename,
???????ls_objnam??????TYPE?string,
???????l_rc???????????LIKE?sy-subrc,
???????ls_errtxt??????TYPE?string,
???????l_objid????????TYPE?wwwdatatab-objid,
???????l_dest?????????LIKE?sapb-sappfad.
*?模版上傳的對象名
??l_objid?=?'ZSDR006B'.
*?模板下載路徑名
??CALL?METHOD?cl_gui_frontend_services=>file_save_dialog
????EXPORTING
??????window_title??????????????=?'模板下載'
??????default_extension?????????=?'XLS'
??????default_file_name?????????=?lc_filename
????CHANGING
??????filename??????????????????=?lc_filename
??????path??????????????????????=?lc_path
??????fullpath??????????????????=?lc_fullpath
????EXCEPTIONS
??????cntl_error????????????????=?1
??????error_no_gui??????????????=?2
??????not_supported_by_gui??????=?3
??????invalid_default_file_name?=?4
??????OTHERS????????????????????=?5.
*?沒有選擇路徑
??IF?lc_fullpath?=?''.
????MESSAGE??'請選擇正確的路徑!'?TYPE?'E'.
??ELSE.
*-??路徑名
????l_dest?=?lc_fullpath.
????SELECT?SINGLE
???????????relid???????????????????"IMPORT/EXPORT?記錄中的區域
???????????objid???????????????????"SAP?WWW?網關對象名
??????FROM?wwwdata
??????INTO?CORRESPONDING?FIELDS?OF?lo_objdata
?????WHERE?srtf2?=?0
??????AND?relid?=?'MI'
??????AND?objid?=?l_objid.
????IF?sy-subrc?<>?0?OR?lo_objdata-objid?IS?INITIAL.
??????MESSAGE?'沒有獲得模板數據'?TYPE?'E'.
????ENDIF.
????ls_destination?=?l_dest.
????CALL?FUNCTION?'DOWNLOAD_WEB_OBJECT'
??????EXPORTING
????????key?????????=?lo_objdata
????????destination?=?ls_destination
??????IMPORTING
????????rc??????????=?l_rc.
????IF?l_rc?<>?0.
??????MESSAGE?'模板下載失敗'?TYPE?'E'.
????ENDIF.
??ENDIF.
ENDFORM.
FORM?get_filename??CHANGING?p_path.
??DATA:?l_v_file_filter??TYPE?string.
??DATA:?l_v_filetable?TYPE?file_table,
????????l_t_filetable?TYPE?filetable.
??DATA:?l_v_rc???????????TYPE?i.
??DATA:?l_v_user_action??TYPE?i.
??l_v_file_filter?=?'(*.xlsx;*.xls)|*.xlsx;*.xls|'.
??cl_gui_frontend_services=>file_open_dialog(
?????EXPORTING?window_title?=?'Select?file'
???????????????file_filter??=?l_v_file_filter
?????CHANGING??file_table???=?l_t_filetable
???????????????rc???????????=?l_v_rc
???????????????user_action??=?l_v_user_action?).
??CHECK?l_v_user_action?EQ?0.
??CHECK?l_t_filetable[]?IS?NOT?INITIAL.
??READ?TABLE?l_t_filetable?INTO?l_v_filetable?INDEX?1.
??p_path?=?l_v_filetable-filename.
ENDFORM.????????????????????"?GET_FILENAME
FORM?get_file_data?.
??CALL?FUNCTION?'TEXT_CONVERT_XLS_TO_SAP'
????EXPORTING
*?????I_FIELD_SEPERATOR????=
??????i_line_header????????=?'2'
??????i_tab_raw_data???????=?xlstab
??????i_filename???????????=?p_path
????TABLES
??????i_tab_converted_data?=?gt_item
????EXCEPTIONS
??????conversion_failed????=?1
??????OTHERS???????????????=?2.
??IF?sy-subrc?<>?0.
????MESSAGE?ID?sy-msgid?TYPE?sy-msgty?NUMBER?sy-msgno
?????????WITH?sy-msgv1?sy-msgv2?sy-msgv3?sy-msgv4.
??ENDIF.
*??LOOP?AT??gt_data?INTO?gw_data.
*????TRANSLATE?gw_data-bsart?TO?UPPER?CASE.
*????TRANSLATE?gw_data-mtabc?TO?UPPER?CASE.
*????MODIFY?gt_data?FROM?gw_data.
*??ENDLOOP.
ENDFORM.????????????????????"get_file_data
FORM?get_data.
??DATA:i?TYPE?posnr_va.
??APPEND?LINES?OF?gt_item?TO?gt_item_po.
??LOOP?AT?gt_item?INTO?wa_item.
????"必輸信息,不能為空
*????IF?wa_item-bstdk????IS?INITIAL
????IF?wa_item-auart????IS?INITIAL
*????OR?wa_item-vkbur????IS?INITIAL
*????OR?wa_item-bstnk????IS?INITIAL
*????OR?wa_item-bname????IS?INITIAL
*????OR?wa_item-matnr????IS?INITIAL
*????OR?wa_item-ggmc????IS?INITIAL
*????OR?wa_item-cpmc????IS?INITIAL
????OR?wa_item-kwmeng???IS?INITIAL
????OR?wa_item-lgort????IS?INITIAL
*????OR?wa_item-txt_02???IS?INITIAL
*????OR?wa_item-txt_03???IS?INITIAL
*????OR?wa_item-ihrez????IS?INITIAL
????OR?wa_item-kmein????IS?INITIAL
*????OR?wa_item-txt_04???IS?INITIAL
*????OR???(?wa_item-kbetr????IS?INITIAL????and??wa_item-pstyv????<>?'ZANN'??????)
????OR?wa_item-waerk????IS?INITIAL
????OR?wa_item-zterm????IS?INITIAL
????OR?wa_item-edatu????IS?INITIAL
????OR?wa_item-pstyv????IS?INITIAL
????OR?wa_item-vkorg????IS?INITIAL
????OR?wa_item-vtweg????IS?INITIAL
*????OR?wa_item-vkgrp????IS?INITIAL
????OR?wa_item-kunnr????IS?INITIAL
????OR?wa_item-kunnr_01??IS?INITIAL
????OR?wa_item-werks????IS?INITIAL.
??????"提示字段不能為空,
??????wa_item-mes_01?=?'E'.
??????wa_item-mes_02?=?'必輸字段不能為空,請檢查!'.
????ENDIF.
????IF?wa_item-vbeln?IS?NOT?INITIAL.
??????APPEND?wa_item?TO?gt_item_01.
??????APPEND?wa_item?TO?gt_item_po_01.
????ELSE.
??????APPEND?wa_item?TO?gt_item_02.
??????APPEND?wa_item?TO?gt_item_po_02.
????ENDIF.
??ENDLOOP.
??CLEAR:gt_item,wa_item.
??SORT?gt_item_01?BY?vbeln.
??SORT?gt_item_po_01?BY?vbeln.
??DELETE?ADJACENT?DUPLICATES?FROM?gt_item_01?COMPARING?vbeln.
??SORT?gt_item_02?BY?bstnk.
??SORT?gt_item_po_02?BY?bstnk.
??DELETE?ADJACENT?DUPLICATES?FROM?gt_item_02?COMPARING?bstnk.
??"有?銷售訂單號?的單據處理
??LOOP?AT?gt_item_01?INTO?DATA(wa_item_01)
????WHERE?mes_01?=?''.
????CLEAR:gs_order_header_in,
??????????gs_order_header_inx,
??????????gt_order_items_in,
??????????gt_order_items_inx,
??????????gt_order_partners,
??????????gt_order_schedules_in,
??????????gt_order_conditions_in,
??????????gt_order_conditions_inx,
??????????i.
????"下單日期格式轉換
????SEARCH?wa_item_01-audat?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_01-audat
????????IMPORTING
??????????day_out?=?wa_item_01-audat.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_01-audat
????????IMPORTING
??????????day_out?=?wa_item_01-audat.
????ENDIF.
????"客戶參考日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_01-bstdk
*??????IMPORTING
*????????day_out?=?wa_item_01-bstdk.
????SEARCH?wa_item_01-bstdk?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_01-bstdk
????????IMPORTING
??????????day_out?=?wa_item_01-bstdk.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_01-bstdk
????????IMPORTING
??????????day_out?=?wa_item_01-bstdk.
????ENDIF.
????"請求交貨日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_01-edatu
*??????IMPORTING
*????????day_out?=?wa_item_01-edatu.
????SEARCH?wa_item_01-edatu?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_01-edatu
????????IMPORTING
??????????day_out?=?wa_item_01-edatu.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_01-edatu
????????IMPORTING
??????????day_out?=?wa_item_01-edatu.
????ENDIF.
????gs_order_header_in-doc_date?=?wa_item_01-audat.??"下單日期
????IF?gs_order_header_in-doc_date?=?''.
??????gs_order_header_in-doc_date?=?sy-datum.
????ENDIF.
????gs_order_header_in-purch_date?=?wa_item_01-bstdk.??"客戶參考日期/發貨日期
????gs_order_header_in-doc_type?=?wa_item_01-auart.??"單據類型
*????gs_order_header_in-doc_type?=?'ZSO2'.
????gs_order_header_in-sales_off?=?wa_item_01-vkbur.?"銷售部門/銷售辦事處
????gs_order_header_in-purch_no_c?=?wa_item_01-bstnk."客戶參考
*????gs_order_header_in-name?=?wa_item_01-bname.??"名稱/旺旺號
????gs_order_header_in-ref_1?=?wa_item_01-ihrez.?"您的參考/客戶聯系人
????gs_order_header_in-sales_org?=?wa_item_01-vkorg.?"銷售組織
????gs_order_header_in-distr_chan?=?wa_item_01-vtweg.??"分銷渠道
????gs_order_header_in-division?=?wa_item_01-spart.??"產品組
????gs_order_header_in-sales_grp?=?wa_item_01-vkgrp.?"銷售組
????gs_order_header_in-ord_reason?=?wa_item_01-augru.??"訂單原因
????gs_order_header_in-req_date_h?=?wa_item_01-edatu.?"請求交貨日期
????gs_order_header_in-pmnttrms?=?wa_item_01-zterm.?"付款條件
????gs_order_header_in-ship_cond?=?wa_item_01-vsbed.?"物流信息
????gs_order_header_inx-updateflag?=?'X'.
????gs_order_header_inx-doc_date?=?'X'.??"下單日期
????gs_order_header_inx-purch_date?=?'X'.??"客戶參考日期/發貨日期
????gs_order_header_inx-doc_type?=?'X'.??"單據類型
????gs_order_header_inx-sales_off?=?'X'.?"銷售部門/銷售辦事處
????gs_order_header_inx-purch_no_c?=?'X'."客戶參考
*????gs_order_header_inx-name?=?'X'.??"名稱/旺旺號
????gs_order_header_inx-ref_1?=?'X'.?"您的參考/客戶聯系人
????gs_order_header_inx-sales_org?=?'X'.?"銷售組織
????gs_order_header_inx-distr_chan?=?'X'.??"分銷渠道
????gs_order_header_inx-division?=?'X'.??"產品組
????gs_order_header_inx-sales_grp?=?'X'.?"銷售組
????gs_order_header_inx-ord_reason?=?'X'.??"訂單原因
????gs_order_header_inx-req_date_h?=?'X'.
????gs_order_header_inx-pmnttrms?=?'X'.
????gs_order_header_inx-ship_cond?=?'X'.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_01-kunnr
??????IMPORTING
????????output?=?wa_item_01-kunnr.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_01-kunnr_01
??????IMPORTING
????????output?=?wa_item_01-kunnr_01.
????"合作伙伴
????IF?wa_item_01-kunnr?IS?INITIAL.
??????gs_order_partners-partn_role?=?'AG'.
??????gs_order_partners-partn_numb?=?wa_item_01-kunnr.
??????APPEND?gs_order_partners?TO?gt_order_partners.
??????gs_order_partners-partn_role?=?'WE'.
??????gs_order_partners-partn_numb?=?wa_item_01-kunnr_01.
??????APPEND?gs_order_partners?TO?gt_order_partners.
????ELSE.
??????gs_order_partners-partn_role?=?'AG'.
??????gs_order_partners-partn_numb?=?wa_item_01-kunnr.
??????APPEND?gs_order_partners?TO?gt_order_partners.
??????gs_order_partners-partn_role?=?'WE'.
??????gs_order_partners-partn_numb?=?wa_item_01-kunnr_01.
??????APPEND?gs_order_partners?TO?gt_order_partners.
????ENDIF.
*????APPEND?gs_order_partners?TO?gt_order_partners.
????LOOP?AT?gt_item_po_01?INTO?DATA(wa_item_po_01)
??????WHERE?vbeln?=?wa_item_01-vbeln.
??????CLEAR:gs_order_items_in,
????????????gs_order_items_inx,
????????????gs_order_partners,
????????????gs_order_conditions_in,
????????????gs_order_conditions_inx,
????????????gs_text.
??????IF?wa_item_po_01-ihrez?<>?wa_item_01-ihrez.
????????wa_item_01-mes_01?=?'E'.
????????wa_item_01-mes_02?=?'同一訂單下:您的參考/客戶聯系人不一致,請檢查'.
????????MODIFY?gt_item_01
????????FROM?wa_item_01
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_01-mes_01?=?'E'.
????????wa_item_po_01-mes_02?=?'同一訂單下:您的參考/客戶聯系人不一致,請檢查'.
????????MODIFY?gt_item_po_01
????????FROM?wa_item_po_01
????????TRANSPORTING?mes_01?mes_02.
??????ENDIF.
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?wa_item_po_01-kunnr
????????IMPORTING
??????????output?=?wa_item_po_01-kunnr.
??????IF?wa_item_po_01-kunnr?<>?wa_item_01-kunnr
??????OR?wa_item_po_01-vkorg?<>?wa_item_01-vkorg
??????OR?wa_item_po_01-vtweg?<>?wa_item_01-vtweg
??????OR?wa_item_po_01-spart?<>?wa_item_01-spart.
????????"提示同一訂單下的?客戶編碼,銷售組織,分銷渠道,產品組不相同
????????wa_item_01-mes_01?=?'E'.
????????wa_item_01-mes_02?=?'同一訂單下:客戶編碼,銷售組織,分銷渠道,產品組不相同'.
????????MODIFY?gt_item_01
????????FROM?wa_item_01
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_01-mes_01?=?'E'.
????????wa_item_po_01-mes_02?=?'同一訂單下:客戶編碼,銷售組織,分銷渠道,產品組不相同'.
????????MODIFY?gt_item_po_01
????????FROM?wa_item_po_01
????????TRANSPORTING?mes_01?mes_02.
??????ENDIF.
*??????IF?wa_item_po_01-matnr_01?IS?INITIAL.
*????????SELECT?SINGLE?matnr_01?INTO?wa_item_po_01-matnr_01
*??????????FROM?zsdt003
*??????????WHERE?matnr?=?wa_item_po_01-matnr
*??????????AND?ggmc?=?wa_item_po_01-ggmc
*??????????AND?cpmc?=?wa_item_po_01-cpmc
*??????????AND?bzfs?=?wa_item_po_01-bzfs.
*????????IF?sy-subrc?<>?0.
*??????????"提示物料錯誤,請檢查數據
*??????????wa_item_01-mes_01?=?'E'.
*??????????wa_item_01-mes_02?=?'物料不存在,請檢查!'.
*??????????MODIFY?gt_item_01?FROM?wa_item_01?TRANSPORTING?mes_01?mes_02.
*
*??????????wa_item_po_01-mes_01?=?'E'.
*??????????wa_item_po_01-mes_02?=?'物料不存在,請檢查!'.
*??????????MODIFY?gt_item_po_01?FROM?wa_item_po_01?TRANSPORTING?mes_01?mes_02.
*
*????????ENDIF.
*??????ENDIF.
??????IF?wa_item_po_01-kunnr?IS?NOT?INITIAL.
????????CLEAR:wa_item_po_01-kunnr.
????????SELECT?SINGLE?kunnr?INTO?wa_item_po_01-kunnr
??????????FROM?kna1
??????????WHERE?kunnr?=?wa_item_01-kunnr.
????????IF?sy-subrc?<>?0.
??????????"提示物料錯誤,請檢查數據
??????????wa_item_01-mes_01?=?'E'.
??????????wa_item_01-mes_02?=?'客戶不存在,請檢查!'.
??????????MODIFY?gt_item_01?FROM?wa_item_01?TRANSPORTING?mes_01?mes_02.
??????????wa_item_po_01-mes_01?=?'E'.
??????????wa_item_po_01-mes_02?=?'客戶不存在,請檢查!'.
??????????MODIFY?gt_item_po_01?FROM?wa_item_po_01?TRANSPORTING?mes_01?mes_02.
????????ENDIF.
??????ENDIF.
??????"行項目
??????i?=?i?+?10.
*??????call?function?'CONVERSION_EXIT_ALPHA_INPUT'
*????????exporting
*??????????input??=?i
*????????importing
*??????????output?=?i.
??????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'?"?單位轉換
????????EXPORTING
??????????input??????????=?wa_item_po_01-kmein
??????????language???????=?sy-langu
????????IMPORTING
??????????output?????????=?wa_item_po_01-kmein
????????EXCEPTIONS
??????????unit_not_found?=?1
??????????OTHERS?????????=?2.
??????gs_order_items_in-itm_number?=?i.
??????gs_order_items_in-target_qty?=?wa_item_po_01-kwmeng.
??????gs_order_items_in-store_loc?=?wa_item_po_01-lgort.
*??????gs_order_items_in-target_qu?=?wa_item_po_01-kmein.
??????gs_order_items_in-sales_unit?=?wa_item_po_01-kmein.
??????gs_order_items_in-currency?=?wa_item_po_01-waerk.
*??????DATA:matnr_18?TYPE?char18.
??????CLEAR:matnr_18.
??????matnr_18?=?wa_item_po_01-matnr_01.
??????gs_order_items_in-material?=?matnr_18.?"物料號,18位的,需要轉換
*??????call?function?'CONVERSION_EXIT_ALPHA_INPUT'
*????????exporting
*??????????input??=?t_zsds11-material
*????????importing
*??????????output?=?t_zsds11-material.
??????gs_order_items_in-item_categ?=?wa_item_po_01-pstyv.
*??????gs_order_items_in-item_categ?=?'ZAN'.
??????gs_order_items_in-plant?=?wa_item_po_01-werks.
??????APPEND?gs_order_items_in?TO?gt_order_items_in.
??????gs_order_items_inx-itm_number?=?i.
??????gs_order_items_inx-updateflag?=?'X'.
??????gs_order_items_inx-target_qty?=?'X'.
??????gs_order_items_inx-store_loc?=?'X'.
*??????gs_order_items_inx-target_qu?=?'X'.
??????gs_order_items_inx-sales_unit?=?'X'.
*??????gs_order_items_inx-CURRENCY?=?'X'.
??????gs_order_items_inx-material?=?'X'.?"物料號,18位的,需要轉換
??????gs_order_items_inx-item_categ?=?'X'.
??????gs_order_items_inx-plant?=?'X'.
??????APPEND?gs_order_items_inx?TO?gt_order_items_inx.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
*????????EXPORTING
*??????????input??=?wa_item_01-kunnr
*????????IMPORTING
*??????????output?=?wa_item_01-kunnr.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
*????????EXPORTING
*??????????input??=?wa_item_01-kunnr_01
*????????IMPORTING
*??????????output?=?wa_item_01-kunnr_01.
*??????"合作伙伴
*??????IF?wa_item_01-kunnr?IS?INITIAL.
*????????gs_order_partners-partn_role?=?'AG'.
*????????gs_order_partners-partn_numb?=?wa_item_01-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*????????gs_order_partners-partn_role?=?'WE'.
*????????gs_order_partners-partn_numb?=?wa_item_01-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*??????ELSE.
*????????gs_order_partners-partn_role?=?'AG'.
*????????gs_order_partners-partn_numb?=?wa_item_01-kunnr.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*????????gs_order_partners-partn_role?=?'WE'.
*????????gs_order_partners-partn_numb?=?wa_item_01-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*??????ENDIF.
*??????APPEND?gs_order_partners?TO?gt_order_partners.
??????"定價條件
??????gs_order_conditions_in-itm_number?=?i.??"itm_number
??????gs_order_conditions_in-cond_type??=?'ZPR1'.????????????"定價條件
??????gs_order_conditions_in-cond_value?=?wa_item_po_01-kbetr.
??????gs_order_conditions_in-currency???=?wa_item_po_01-waerk.????"
??????gs_order_conditions_in-cond_unit??=?wa_item_po_01-kmein.??"條件單位
??????gs_order_conditions_in-cond_p_unt?=?wa_item_po_01-kpein.??"價格單位
??????APPEND?gs_order_conditions_in?TO?gt_order_conditions_in.
??????CLEAR?gs_order_conditions_inx.
??????gs_order_conditions_inx-itm_number?=?i.
??????gs_order_conditions_inx-cond_type??=?'ZPR1'.
??????gs_order_conditions_inx-updateflag?=?'X'.
??????gs_order_conditions_inx-cond_value?=?'X'.
??????gs_order_conditions_inx-currency???=?'X'.
??????gs_order_conditions_inx-cond_unit??=?'X'.
??????gs_order_conditions_inx-cond_p_unt?=?'X'.
??????APPEND?gs_order_conditions_inx?TO?gt_order_conditions_inx.
??????"憑證計劃行字段
??????gs_order_schedules_in-itm_number?=?i.
??????gs_order_schedules_in-req_qty????=?wa_item_po_01-kwmeng.
??????APPEND?gs_order_schedules_in?TO?gt_order_schedules_in.
*??????gs_text-DOC_NUMBER?=?wa_item_01-vbeln.
*??????gs_text-ITM_NUMBER?=?i.
*??????gs_text-TEXT_ID?=?'0001'.
*??????gs_text-TEXT_LINE?=?wa_item_po_01-txt_01.
*??????APPEND?gs_text?TO?gt_text.
??????"行項目賦值
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?i
????????IMPORTING
??????????output?=?wa_item_po_01-posnr.
??????MODIFY?gt_item_po_01?FROM?wa_item_po_01?TRANSPORTING?posnr.
??????CLEAR:wa_item_po_01.
????ENDLOOP.
????IF?wa_item_01-mes_01?=?''.
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?wa_item_01-vbeln
????????IMPORTING
??????????output?=?wa_item_01-vbeln.
*????DATA:l_switch?TYPE?TABLE?OF?bapisdls?WITH?HEADER?LINE.
*????l_switch-pricing?=?'G'.
*????APPEND?l_switch.
??????CLEAR:return,vbtyp.
??????SELECT?SINGLE?vbtyp
????????INTO?vbtyp
????????FROM?tvak
????????WHERE?auart?=?wa_item_01-auart.
??????IF?vbtyp?=?'H'.
????????CALL?FUNCTION?'BAPI_CUSTOMERRETURN_CREATE'
??????????EXPORTING
????????????salesdocumentin??????=?wa_item_01-vbeln????"銷售訂單
????????????return_header_in?????=?gs_order_header_in??"通訊字段:?銷售和分銷憑證抬頭
????????????return_header_inx????=?gs_order_header_inx?"通訊字段:?銷售和分銷憑證抬頭復選框
*???????????SENDER???????????????=?"發送人邏輯系統
*???????????BINARY_RELATIONSHIPTYPE???????=???"對象關系服務二進位鏈接類型
*???????????INT_NUMBER_ASSIGNMENT?????????=???"標記
*???????????BEHAVE_WHEN_ERROR????=?"標記
????????????logic_switch?????????=?l_switch?"邏輯切換的?SD?復選框
*???????????TESTRUN??????????????=?"標記
*???????????CONVERT??????????????=?'?'?"標記
*????????IMPORTING
*???????????salesdocument????????=?wa_item_02-vbeln???"銷售訂單
??????????TABLES
????????????return???????????????=?return??"返回參數
????????????return_items_in??????=?gt_order_items_in?"通訊字段:?銷售和分銷憑證項目
????????????return_items_inx?????=?gt_order_items_inx??"通訊字段:?銷售和分銷憑證項目復選框
????????????return_partners??????=?gt_order_partners?"通訊字段:?SD單據合作伙伴:WWW
????????????return_schedules_in??=?gt_order_schedules_in?"維護?SD?憑證計劃行的通訊字段
*???????????order_schedules_inx??=?gt_order_schedules_inx?"維護銷售憑證計劃行的復選框清單
????????????return_conditions_in?=?gt_order_conditions_in??"維護訂單條件的通訊字段
*???????????order_conditions_inx?=?gt_order_conditions_inx?"維護訂單條件的通訊字段的復選框清單
*???????????ORDER_CFGS_REF???????=?"CU:配置數據
*???????????ORDER_CFGS_INST??????=?"個別配置實例
*???????????ORDER_CFGS_PART_OF???=?"個別配置的部分信息
*???????????ORDER_CFGS_VALUE?????=?"個別配置的特性值分配
*???????????ORDER_CFGS_BLOB??????=?"BLOB?內部配置數據?(SCE)
*???????????ORDER_CFGS_VK????????=?"配置的變式條件代碼
*???????????ORDER_CFGS_REFINST???=?"CU:在配置中參考訂單項目?/?實例
*???????????ORDER_CCARD??????????=?"通訊表:付款單/開票憑證的說明
*???????????ORDER_TEXT???????????=?"通訊字段:SD?文本
*???????????ORDER_KEYS???????????=?"銷售和分銷憑證中的關鍵值
*???????????EXTENSIONIN??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
*???????????PARTNERADDRESSES?????=?"地址的?BAPI?參考結構(組織/公司)
*???????????EXTENSIONEX??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
??????????.
??????ELSE.
????????CALL?FUNCTION?'BAPI_SALESORDER_CREATEFROMDAT2'
??????????EXPORTING
????????????salesdocumentin??????=?wa_item_01-vbeln????"銷售訂單
????????????order_header_in??????=?gs_order_header_in??"通訊字段:?銷售和分銷憑證抬頭
????????????order_header_inx?????=?gs_order_header_inx?"通訊字段:?銷售和分銷憑證抬頭復選框
*???????????SENDER???????????????=?"發送人邏輯系統
*???????????BINARY_RELATIONSHIPTYPE???????=???"對象關系服務二進位鏈接類型
*???????????INT_NUMBER_ASSIGNMENT?????????=???"標記
*???????????BEHAVE_WHEN_ERROR????=?"標記
????????????logic_switch?????????=?l_switch?"邏輯切換的?SD?復選框
*???????????TESTRUN??????????????=?"標記
*???????????CONVERT??????????????=?'?'?"標記
*????????importing
*???????????salesdocument????????=?salesdocument???"銷售訂單
??????????TABLES
????????????return???????????????=?return??"返回參數
????????????order_items_in???????=?gt_order_items_in?"通訊字段:?銷售和分銷憑證項目
????????????order_items_inx??????=?gt_order_items_inx??"通訊字段:?銷售和分銷憑證項目復選框
????????????order_partners???????=?gt_order_partners?"通訊字段:?SD單據合作伙伴:WWW
????????????order_schedules_in???=?gt_order_schedules_in?"維護?SD?憑證計劃行的通訊字段
*???????????order_schedules_inx??=?gt_order_schedules_inx?"維護銷售憑證計劃行的復選框清單
????????????order_conditions_in??=?gt_order_conditions_in??"維護訂單條件的通訊字段
????????????order_conditions_inx?=?gt_order_conditions_inx?"維護訂單條件的通訊字段的復選框清單
*???????????ORDER_CFGS_REF???????=?"CU:配置數據
*???????????ORDER_CFGS_INST??????=?"個別配置實例
*???????????ORDER_CFGS_PART_OF???=?"個別配置的部分信息
*???????????ORDER_CFGS_VALUE?????=?"個別配置的特性值分配
*???????????ORDER_CFGS_BLOB??????=?"BLOB?內部配置數據?(SCE)
*???????????ORDER_CFGS_VK????????=?"配置的變式條件代碼
*???????????ORDER_CFGS_REFINST???=?"CU:在配置中參考訂單項目?/?實例
*???????????ORDER_CCARD??????????=?"通訊表:付款單/開票憑證的說明
*???????????ORDER_TEXT???????????=?gt_text"通訊字段:SD?文本
*???????????ORDER_KEYS???????????=?"銷售和分銷憑證中的關鍵值
*???????????EXTENSIONIN??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
*???????????PARTNERADDRESSES?????=?"地址的?BAPI?參考結構(組織/公司)
*???????????EXTENSIONEX??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
??????????.
??????ENDIF.
??????READ?TABLE?return?INTO?wa_return
??????WITH?KEY?type?=?'E'.
??????IF?sy-subrc?<>?0.
????????CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'
??????????EXPORTING
????????????wait?=?'X'.
????????tdname?=?wa_item_01-vbeln.
????????"抬頭文本:物流方式
*????????CLEAR:w_text,l_text.
*????????w_text-tdline?=?wa_item_01-txt_02.
*????????APPEND?w_text?TO?l_text.
*
*????????CALL?FUNCTION?'CREATE_TEXT'
*??????????EXPORTING
*????????????fid?????????=?'0002'
*????????????flanguage???=?sy-langu
*????????????fname???????=?tdname
*????????????fobject?????=?'VBBK'
*????????????save_direct?=?'X'
*????????????fformat?????=?'*'
*??????????TABLES
*????????????flines??????=?l_text.
????????"抬頭文本:物流單號
*????????CLEAR:w_text,l_text.
*????????w_text-tdline?=?wa_item_01-txt_03.
*????????APPEND?w_text?TO?l_text.
*
*????????CALL?FUNCTION?'CREATE_TEXT'
*??????????EXPORTING
*????????????fid?????????=?'0004'
*????????????flanguage???=?sy-langu
*????????????fname???????=?tdname
*????????????fobject?????=?'VBBK'
*????????????save_direct?=?'X'
*????????????fformat?????=?'*'
*??????????TABLES
*????????????flines??????=?l_text.
????????"抬頭文本
????????CLEAR:w_text,l_text.
????????w_text-tdline?=?wa_item_01-txt_04.
????????APPEND?w_text?TO?l_text.
????????CALL?FUNCTION?'CREATE_TEXT'
??????????EXPORTING
????????????fid?????????=?'0001'
????????????flanguage???=?sy-langu
????????????fname???????=?tdname
????????????fobject?????=?'VBBK'
????????????save_direct?=?'X'
????????????fformat?????=?'*'
??????????TABLES
????????????flines??????=?l_text.
????????"給行項目的?bs_txt?字段賦值,以判斷后面行項目文本的創建
*????????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_OUTPUT'
*??????????EXPORTING
*????????????input??=?wa_item_01-vbeln
*??????????IMPORTING
*????????????output?=?wa_item_01-vbeln.
????????wa_item_po_01-bs_txt?=?'1'.
????????wa_item_po_01-mes_01?=?'S'.
????????wa_item_po_01-mes_02?=?'保存成功,銷售單號為:'?&&?wa_item_01-vbeln.
????????MODIFY?gt_item_po_01
????????FROM?wa_item_po_01
????????TRANSPORTING?bs_txt?mes_01?mes_02
????????WHERE?vbeln?=?wa_item_01-vbeln.
????????CLEAR:wa_item_po_01.
??????ELSE.
????????CALL?FUNCTION?'BAPI_TRANSACTION_ROLLBACK'?.
????????CLEAR:mes_str,wa_return.
????????LOOP?AT?return?INTO?wa_return
??????????WHERE?type?=?'E'.
??????????mes_str?=?mes_str?&&?wa_return-message?&&?','.
????????ENDLOOP.
????????wa_item_01-mes_01?=?'E'.
????????wa_item_01-mes_02?=?mes_str.
????????MODIFY?gt_item_01
????????FROM?wa_item_01
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_01-mes_01?=?'E'.
????????wa_item_po_01-mes_02?=?mes_str.
????????MODIFY?gt_item_po_01
????????FROM?wa_item_po_01
????????TRANSPORTING?mes_01?mes_02
????????WHERE?vbeln?=?wa_item_01-vbeln.
??????ENDIF.
????ENDIF.
????CLEAR:wa_item_01.
??ENDLOOP.
??LOOP?AT?gt_item_po_01?INTO?wa_item_po_01
????WHERE?bs_txt?=?'1'.
????CLEAR:tdname.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_po_01-posnr
??????IMPORTING
????????output?=?wa_item_po_01-posnr.
????tdname?=?wa_item_po_01-vbeln?&&?wa_item_po_01-posnr.
????CLEAR:w_text,l_text.
????w_text-tdline?=?wa_item_po_01-txt_01.
????APPEND?w_text?TO?l_text.
????CALL?FUNCTION?'CREATE_TEXT'
??????EXPORTING
????????fid?????????=?'0001'
????????flanguage???=?sy-langu
????????fname???????=?tdname
????????fobject?????=?'VBBP'
????????save_direct?=?'X'
????????fformat?????=?'*'
??????TABLES
????????flines??????=?l_text.
??ENDLOOP.
??CLEAR:gt_order_items_in,
????????gt_order_items_inx,
????????gt_order_partners,
????????gt_order_schedules_in,
????????gt_order_conditions_in,
????????gt_order_conditions_inx,
????????return.
****************????沒有?銷售訂單號??的單據????****************
??LOOP?AT?gt_item_02?INTO?DATA(wa_item_02)
????WHERE?mes_01?=?''.
????CLEAR:gs_order_header_in,
??????????gs_order_header_inx,
??????????gt_order_items_in,
??????????gt_order_items_inx,
??????????gt_order_partners,
??????????gt_order_schedules_in,
??????????gt_order_conditions_in,
??????????gt_order_conditions_inx,
??????????i.
*????"下單日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_02-audat
*??????IMPORTING
*????????day_out?=?wa_item_02-audat.
*
*????"客戶參考日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_02-bstdk
*??????IMPORTING
*????????day_out?=?wa_item_02-bstdk.
*
*????"請求交貨日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_02-edatu
*??????IMPORTING
*????????day_out?=?wa_item_02-edatu.
????"下單日期格式轉換
????SEARCH?wa_item_02-audat?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_02-audat
????????IMPORTING
??????????day_out?=?wa_item_02-audat.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_02-audat
????????IMPORTING
??????????day_out?=?wa_item_02-audat.
????ENDIF.
????"客戶參考日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_01-bstdk
*??????IMPORTING
*????????day_out?=?wa_item_01-bstdk.
????SEARCH?wa_item_02-bstdk?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_02-bstdk
????????IMPORTING
??????????day_out?=?wa_item_02-bstdk.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_02-bstdk
????????IMPORTING
??????????day_out?=?wa_item_02-bstdk.
????ENDIF.
????"請求交貨日期格式轉換
*????CALL?METHOD?z_pp_0001->date_change
*??????EXPORTING
*????????biaos???=?'/'
*????????day_in??=?wa_item_01-edatu
*??????IMPORTING
*????????day_out?=?wa_item_01-edatu.
????SEARCH?wa_item_02-edatu?FOR?'/'.
????IF?sy-subrc?=?0.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????biaos???=?'/'
??????????day_in??=?wa_item_02-edatu
????????IMPORTING
??????????day_out?=?wa_item_02-edatu.
????ELSE.
??????CALL?METHOD?z_pp_0001->date_change
????????EXPORTING
??????????day_in??=?wa_item_02-edatu
????????IMPORTING
??????????day_out?=?wa_item_02-edatu.
????ENDIF.
????gs_order_header_in-doc_date?=?wa_item_02-audat.??"下單日期
????IF?gs_order_header_in-doc_date?=?''.
??????gs_order_header_in-doc_date?=?sy-datum.
????ENDIF.
????gs_order_header_in-purch_date?=?wa_item_02-bstdk.??"客戶參考日期/發貨日期
????gs_order_header_in-doc_type?=?wa_item_02-auart.??"單據類型
*????gs_order_header_in-doc_type?=?'ZSO2'.
????gs_order_header_in-sales_off?=?wa_item_02-vkbur.?"銷售部門/銷售辦事處
????gs_order_header_in-purch_no_c?=?wa_item_02-bstnk."客戶參考
*????gs_order_header_in-name?=?wa_item_02-bname.??"名稱/旺旺號
????gs_order_header_in-ref_1?=?wa_item_02-ihrez.?"您的參考/客戶聯系人
????gs_order_header_in-sales_org?=?wa_item_02-vkorg.?"銷售組織
????gs_order_header_in-distr_chan?=?wa_item_02-vtweg.??"分銷渠道
????gs_order_header_in-division?=?wa_item_02-spart.??"產品組
????gs_order_header_in-sales_grp?=?wa_item_02-vkgrp.?"銷售組
????gs_order_header_in-ord_reason?=?wa_item_02-augru.??"訂單原因
????gs_order_header_in-req_date_h?=?wa_item_02-edatu.?"請求交貨日期
????gs_order_header_in-pmnttrms?=?wa_item_02-zterm.?"付款條件
????gs_order_header_in-ship_cond?=?wa_item_02-vsbed.?"物流信息
????gs_order_header_inx-updateflag?=?'X'.
????gs_order_header_inx-doc_date?=?'X'.??"下單日期
????gs_order_header_inx-purch_date?=?'X'.??"客戶參考日期/發貨日期
????gs_order_header_inx-doc_type?=?'X'.??"單據類型
????gs_order_header_inx-sales_off?=?'X'.?"銷售部門/銷售辦事處
????gs_order_header_inx-purch_no_c?=?'X'."客戶參考
*????gs_order_header_inx-name?=?'X'.??"名稱/旺旺號
????gs_order_header_inx-ref_1?=?'X'.?"您的參考/客戶聯系人
????gs_order_header_inx-sales_org?=?'X'.?"銷售組織
????gs_order_header_inx-distr_chan?=?'X'.??"分銷渠道
????gs_order_header_inx-division?=?'X'.??"產品組
????gs_order_header_inx-sales_grp?=?'X'.?"銷售組
????gs_order_header_inx-ord_reason?=?'X'.??"訂單原因
????gs_order_header_inx-req_date_h?=?'X'.?"請求交貨日期
????gs_order_header_inx-pmnttrms?=?'X'.
????gs_order_header_inx-ship_cond?=?'X'.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_02-kunnr
??????IMPORTING
????????output?=?wa_item_02-kunnr.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_02-kunnr_01
??????IMPORTING
????????output?=?wa_item_02-kunnr_01.
????"合作伙伴
????IF?wa_item_01-kunnr?IS?INITIAL.
??????gs_order_partners-partn_role?=?'AG'.
??????gs_order_partners-partn_numb?=?wa_item_02-kunnr.
??????APPEND?gs_order_partners?TO?gt_order_partners.
??????gs_order_partners-partn_role?=?'WE'.
??????gs_order_partners-partn_numb?=?wa_item_02-kunnr_01.
??????APPEND?gs_order_partners?TO?gt_order_partners.
????ELSE.
??????gs_order_partners-partn_role?=?'AG'.
??????gs_order_partners-partn_numb?=?wa_item_02-kunnr.
??????APPEND?gs_order_partners?TO?gt_order_partners.
??????gs_order_partners-partn_role?=?'WE'.
??????gs_order_partners-partn_numb?=?wa_item_02-kunnr_01.
??????APPEND?gs_order_partners?TO?gt_order_partners.
????ENDIF.
*????APPEND?gs_order_partners?TO?gt_order_partners.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_OUTPUT'
*????????EXPORTING
*??????????input??=?wa_item_02-kunnr
*????????IMPORTING
*??????????output?=?wa_item_02-kunnr.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_OUTPUT'
*????????EXPORTING
*??????????input??=?wa_item_02-kunnr_01
*????????IMPORTING
*??????????output?=?wa_item_02-kunnr_01.
????LOOP?AT?gt_item_po_02?INTO?DATA(wa_item_po_02)
??????WHERE?bstnk?=?wa_item_02-bstnk.
??????CLEAR:gs_order_items_in,
????????????gs_order_items_inx,
????????????gs_order_partners,
????????????gs_order_conditions_in,
????????????gs_order_conditions_inx.
??????CLEAR:wa_item_02-mes_01,wa_item_02-mes_02,
????????????wa_item_po_02-mes_01,wa_item_po_02-mes_02.
??????IF?wa_item_po_02-ihrez?<>?wa_item_02-ihrez.
????????wa_item_02-mes_01?=?'E'.
????????wa_item_02-mes_02?=?'同一訂單下:您的參考/客戶聯系人不一致,請檢查'.
????????MODIFY?gt_item_02
????????FROM?wa_item_02
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_02-mes_01?=?'E'.
????????wa_item_po_02-mes_02?=?'同一訂單下:您的參考/客戶聯系人不一致,請檢查'.
????????MODIFY?gt_item_po_02
????????FROM?wa_item_po_02
????????TRANSPORTING?mes_01?mes_02.
??????ENDIF.
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?wa_item_po_02-kunnr
????????IMPORTING
??????????output?=?wa_item_po_02-kunnr.
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?wa_item_po_02-kunnr_01
????????IMPORTING
??????????output?=?wa_item_po_02-kunnr_01.
??????IF?wa_item_po_02-kunnr?<>?wa_item_02-kunnr
??????OR?wa_item_po_02-vkorg?<>?wa_item_02-vkorg
??????OR?wa_item_po_02-vtweg?<>?wa_item_02-vtweg
??????OR?wa_item_po_02-spart?<>?wa_item_02-spart.
????????"提示同一客戶參考下的?客戶編碼,銷售組織,分銷渠道,產品組不相同
????????wa_item_02-mes_01?=?'E'.
????????wa_item_02-mes_02?=?'同一客戶參考下:客戶編碼,銷售組織,分銷渠道,產品組不相同'.
????????MODIFY?gt_item_02
????????FROM?wa_item_02
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_02-mes_01?=?'E'.
????????wa_item_po_02-mes_02?=?'同一客戶參考下:客戶編碼,銷售組織,分銷渠道,產品組不相同'.
????????MODIFY?gt_item_po_02
????????FROM?wa_item_po_02
????????TRANSPORTING?mes_01?mes_02.
??????ENDIF.
*??????IF?wa_item_po_02-matnr_01?IS?INITIAL.
*????????SELECT?SINGLE?matnr_01?INTO?wa_item_po_02-matnr_01
*??????????FROM?zsdt003
*??????????WHERE?matnr?=?wa_item_po_02-matnr
*??????????AND?ggmc?=?wa_item_po_02-ggmc
*??????????AND?cpmc?=?wa_item_po_02-cpmc
*??????????AND?bzfs?=?wa_item_po_02-bzfs.
*????????IF?sy-subrc?<>?0.
*??????????"提示物料錯誤,請檢查數據
*??????????wa_item_02-mes_01?=?'E'.
*??????????wa_item_02-mes_02?=?'物料不存在,請檢查!'.
*??????????MODIFY?gt_item_02?FROM?wa_item_02?TRANSPORTING?mes_01?mes_02.
*
*??????????wa_item_po_02-mes_01?=?'E'.
*??????????wa_item_po_02-mes_02?=?'物料不存在,請檢查!'.
*??????????MODIFY?gt_item_po_02?FROM?wa_item_po_02?TRANSPORTING?mes_01?mes_02.
*
*
*????????ENDIF.
*??????ENDIF.
??????IF?wa_item_po_02-kunnr?IS?NOT?INITIAL.
????????CLEAR:wa_item_po_02-kunnr.
????????SELECT?SINGLE?kunnr?INTO?wa_item_po_02-kunnr
??????????FROM?kna1
??????????WHERE?kunnr?=?wa_item_02-kunnr.
????????IF?sy-subrc?<>?0.
??????????"提示物料錯誤,請檢查數據
??????????wa_item_02-mes_01?=?'E'.
??????????wa_item_02-mes_02?=?'客戶不存在,請檢查!'.
??????????MODIFY?gt_item_02?FROM?wa_item_02?TRANSPORTING?mes_01?mes_02.
??????????wa_item_po_02-mes_01?=?'E'.
??????????wa_item_po_02-mes_02?=?'客戶不存在,請檢查!'.
??????????MODIFY?gt_item_po_02?FROM?wa_item_po_02?TRANSPORTING?mes_01?mes_02.
????????ENDIF.
??????ENDIF.
??????"行項目
??????i?=?i?+?10.
*??????call?function?'CONVERSION_EXIT_ALPHA_INPUT'
*????????exporting
*??????????input??=?i
*????????importing
*??????????output?=?i.
??????CALL?FUNCTION?'CONVERSION_EXIT_CUNIT_INPUT'?"?單位轉換
????????EXPORTING
??????????input??????????=?wa_item_po_02-kmein
??????????language???????=?sy-langu
????????IMPORTING
??????????output?????????=?wa_item_po_02-kmein
????????EXCEPTIONS
??????????unit_not_found?=?1
??????????OTHERS?????????=?2.
??????gs_order_items_in-itm_number?=?i.
??????gs_order_items_in-target_qty?=?wa_item_po_02-kwmeng.
??????gs_order_items_in-store_loc?=?wa_item_po_02-lgort.
*??????gs_order_items_in-target_qu?=?wa_item_po_01-kmein.
??????gs_order_items_in-sales_unit?=?wa_item_po_02-kmein.
??????gs_order_items_in-currency?=?wa_item_po_02-waerk.
??????CLEAR:matnr_18.
??????matnr_18?=?wa_item_po_02-matnr_01.
??????gs_order_items_in-material?=?matnr_18.?"物料號,18位的,需要轉換
*??????call?function?'CONVERSION_EXIT_ALPHA_INPUT'
*????????exporting
*??????????input??=?t_zsds11-material
*????????importing
*??????????output?=?t_zsds11-material.
??????gs_order_items_in-item_categ?=?wa_item_po_02-pstyv.
*??????gs_order_items_in-item_categ?=?'ZAN'.
??????gs_order_items_in-plant?=?wa_item_po_02-werks.
??????APPEND?gs_order_items_in?TO?gt_order_items_in.
??????gs_order_items_inx-itm_number?=?i.
??????gs_order_items_inx-updateflag?=?'X'.
??????gs_order_items_inx-target_qty?=?'X'.
??????gs_order_items_inx-store_loc?=?'X'.
*??????gs_order_items_inx-target_qu?=?'X'.
??????gs_order_items_inx-sales_unit?=?'X'.
*??????gs_order_items_inx-CURRENCY?=?'X'.
??????gs_order_items_inx-material?=?'X'.?"物料號,18位的,需要轉換
??????gs_order_items_inx-item_categ?=?'X'.
??????gs_order_items_inx-plant?=?'X'.
??????APPEND?gs_order_items_inx?TO?gt_order_items_inx.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
*????????EXPORTING
*??????????input??=?wa_item_02-kunnr
*????????IMPORTING
*??????????output?=?wa_item_02-kunnr.
*??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
*????????EXPORTING
*??????????input??=?wa_item_02-kunnr_01
*????????IMPORTING
*??????????output?=?wa_item_02-kunnr_01.
*??????"合作伙伴
*??????IF?wa_item_01-kunnr?IS?INITIAL.
*????????gs_order_partners-partn_role?=?'AG'.
*????????gs_order_partners-partn_numb?=?wa_item_02-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*????????gs_order_partners-partn_role?=?'WE'.
*????????gs_order_partners-partn_numb?=?wa_item_02-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*??????ELSE.
*????????gs_order_partners-partn_role?=?'AG'.
*????????gs_order_partners-partn_numb?=?wa_item_02-kunnr.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*????????gs_order_partners-partn_role?=?'WE'.
*????????gs_order_partners-partn_numb?=?wa_item_02-kunnr_01.
*????????APPEND?gs_order_partners?TO?gt_order_partners.
*??????ENDIF.
*??????APPEND?gs_order_partners?TO?gt_order_partners.
??????"定價條件
??????gs_order_conditions_in-itm_number?=?i.??"itm_number
??????gs_order_conditions_in-cond_type??=?'ZPR1'.????????????"定價條件
??????gs_order_conditions_in-cond_value?=?wa_item_po_02-kbetr.??"單價
??????gs_order_conditions_in-currency???=?wa_item_po_02-waerk.??"貨幣
??????gs_order_conditions_in-cond_unit??=?wa_item_po_02-kmein.??"條件單位
??????gs_order_conditions_in-cond_p_unt?=?wa_item_po_02-kpein.??"價格單位
??????APPEND?gs_order_conditions_in?TO?gt_order_conditions_in.
??????CLEAR?gs_order_conditions_inx.
??????gs_order_conditions_inx-itm_number?=?i.
??????gs_order_conditions_inx-cond_type??=?'ZPR1'.
??????gs_order_conditions_inx-updateflag?=?'X'.
??????gs_order_conditions_inx-cond_value?=?'X'.
??????gs_order_conditions_inx-currency???=?'X'.
??????gs_order_conditions_inx-cond_unit??=?'X'.
??????gs_order_conditions_inx-cond_p_unt?=?'X'.
??????APPEND?gs_order_conditions_inx?TO?gt_order_conditions_inx.
??????"憑證計劃行字段
??????gs_order_schedules_in-itm_number?=?i.
??????gs_order_schedules_in-req_qty????=?wa_item_po_02-kwmeng.
??????APPEND?gs_order_schedules_in?TO?gt_order_schedules_in.
??????"行項目賦值
??????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
????????EXPORTING
??????????input??=?i
????????IMPORTING
??????????output?=?wa_item_po_02-posnr.
??????MODIFY?gt_item_po_02?FROM?wa_item_po_02?TRANSPORTING?posnr.
??????CLEAR:wa_item_po_02.
????ENDLOOP.
*????????if?return[]?is?initial.
*????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
*??????EXPORTING
*????????input??=?wa_item_01-vbeln
*??????IMPORTING
*????????output?=?wa_item_01-vbeln.
????IF?wa_item_02-mes_01?=?''.
??????CLEAR:return,vbtyp.
??????SELECT?SINGLE?vbtyp
????????INTO?vbtyp
????????FROM?tvak
????????WHERE?auart?=?wa_item_02-auart.
??????IF?vbtyp?=?'H'.
????????CALL?FUNCTION?'BAPI_CUSTOMERRETURN_CREATE'
??????????EXPORTING
*???????????salesdocumentin??????=?wa_item_01-vbeln????"銷售訂單
????????????return_header_in?????=?gs_order_header_in??"通訊字段:?銷售和分銷憑證抬頭
????????????return_header_inx????=?gs_order_header_inx?"通訊字段:?銷售和分銷憑證抬頭復選框
*???????????SENDER???????????????=?"發送人邏輯系統
*???????????BINARY_RELATIONSHIPTYPE???????=???"對象關系服務二進位鏈接類型
*???????????INT_NUMBER_ASSIGNMENT?????????=???"標記
*???????????BEHAVE_WHEN_ERROR????=?"標記
????????????logic_switch?????????=?l_switch?"邏輯切換的?SD?復選框
*???????????TESTRUN??????????????=?"標記
*???????????CONVERT??????????????=?'?'?"標記
??????????IMPORTING
????????????salesdocument????????=?wa_item_02-vbeln???"銷售訂單
??????????TABLES
????????????return???????????????=?return??"返回參數
????????????return_items_in??????=?gt_order_items_in?"通訊字段:?銷售和分銷憑證項目
????????????return_items_inx?????=?gt_order_items_inx??"通訊字段:?銷售和分銷憑證項目復選框
????????????return_partners??????=?gt_order_partners?"通訊字段:?SD單據合作伙伴:WWW
????????????return_schedules_in??=?gt_order_schedules_in?"維護?SD?憑證計劃行的通訊字段
*???????????order_schedules_inx??=?gt_order_schedules_inx?"維護銷售憑證計劃行的復選框清單
????????????return_conditions_in?=?gt_order_conditions_in??"維護訂單條件的通訊字段
*???????????order_conditions_inx?=?gt_order_conditions_inx?"維護訂單條件的通訊字段的復選框清單
*???????????ORDER_CFGS_REF???????=?"CU:配置數據
*???????????ORDER_CFGS_INST??????=?"個別配置實例
*???????????ORDER_CFGS_PART_OF???=?"個別配置的部分信息
*???????????ORDER_CFGS_VALUE?????=?"個別配置的特性值分配
*???????????ORDER_CFGS_BLOB??????=?"BLOB?內部配置數據?(SCE)
*???????????ORDER_CFGS_VK????????=?"配置的變式條件代碼
*???????????ORDER_CFGS_REFINST???=?"CU:在配置中參考訂單項目?/?實例
*???????????ORDER_CCARD??????????=?"通訊表:付款單/開票憑證的說明
*???????????ORDER_TEXT???????????=?"通訊字段:SD?文本
*???????????ORDER_KEYS???????????=?"銷售和分銷憑證中的關鍵值
*???????????EXTENSIONIN??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
*???????????PARTNERADDRESSES?????=?"地址的?BAPI?參考結構(組織/公司)
*???????????EXTENSIONEX??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
??????????.
??????ELSE.
????????CALL?FUNCTION?'BAPI_SALESORDER_CREATEFROMDAT2'
??????????EXPORTING
*???????????salesdocumentin??????=?wa_item_01-vbeln????"銷售訂單
????????????order_header_in??????=?gs_order_header_in??"通訊字段:?銷售和分銷憑證抬頭
????????????order_header_inx?????=?gs_order_header_inx?"通訊字段:?銷售和分銷憑證抬頭復選框
*???????????SENDER???????????????=?"發送人邏輯系統
*???????????BINARY_RELATIONSHIPTYPE???????=???"對象關系服務二進位鏈接類型
*???????????INT_NUMBER_ASSIGNMENT?????????=???"標記
*???????????BEHAVE_WHEN_ERROR????=?"標記
????????????logic_switch?????????=?l_switch?"邏輯切換的?SD?復選框
*???????????TESTRUN??????????????=?"標記
*???????????CONVERT??????????????=?'?'?"標記
??????????IMPORTING
????????????salesdocument????????=?wa_item_02-vbeln???"銷售訂單
??????????TABLES
????????????return???????????????=?return??"返回參數
????????????order_items_in???????=?gt_order_items_in?"通訊字段:?銷售和分銷憑證項目
????????????order_items_inx??????=?gt_order_items_inx??"通訊字段:?銷售和分銷憑證項目復選框
????????????order_partners???????=?gt_order_partners?"通訊字段:?SD單據合作伙伴:WWW
????????????order_schedules_in???=?gt_order_schedules_in?"維護?SD?憑證計劃行的通訊字段
*???????????order_schedules_inx??=?gt_order_schedules_inx?"維護銷售憑證計劃行的復選框清單
????????????order_conditions_in??=?gt_order_conditions_in??"維護訂單條件的通訊字段
????????????order_conditions_inx?=?gt_order_conditions_inx?"維護訂單條件的通訊字段的復選框清單
*???????????ORDER_CFGS_REF???????=?"CU:配置數據
*???????????ORDER_CFGS_INST??????=?"個別配置實例
*???????????ORDER_CFGS_PART_OF???=?"個別配置的部分信息
*???????????ORDER_CFGS_VALUE?????=?"個別配置的特性值分配
*???????????ORDER_CFGS_BLOB??????=?"BLOB?內部配置數據?(SCE)
*???????????ORDER_CFGS_VK????????=?"配置的變式條件代碼
*???????????ORDER_CFGS_REFINST???=?"CU:在配置中參考訂單項目?/?實例
*???????????ORDER_CCARD??????????=?"通訊表:付款單/開票憑證的說明
*???????????ORDER_TEXT???????????=?"通訊字段:SD?文本
*???????????ORDER_KEYS???????????=?"銷售和分銷憑證中的關鍵值
*???????????EXTENSIONIN??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
*???????????PARTNERADDRESSES?????=?"地址的?BAPI?參考結構(組織/公司)
*???????????EXTENSIONEX??????????=?"BAPI?參數?ExtensionIn/ExtensionOut?的參考結構
??????????.
??????ENDIF.
??????READ?TABLE?return?INTO?wa_return
??????WITH?KEY?type?=?'E'.
??????IF?sy-subrc?<>?0.
????????CALL?FUNCTION?'BAPI_TRANSACTION_COMMIT'
??????????EXPORTING
????????????wait?=?'X'.
????????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????????EXPORTING
????????????input??=?wa_item_02-vbeln
??????????IMPORTING
????????????output?=?wa_item_02-vbeln.
????????CLEAR:tdname.
????????tdname?=?wa_item_02-vbeln.
????????"抬頭文本:物流方式
*????????CLEAR:w_text,l_text.
*????????w_text-tdline?=?wa_item_02-txt_02.
*????????APPEND?w_text?TO?l_text.
*
*????????CALL?FUNCTION?'CREATE_TEXT'
*??????????EXPORTING
*????????????fid?????????=?'0002'
*????????????flanguage???=?sy-langu
*????????????fname???????=?tdname
*????????????fobject?????=?'VBBK'
*????????????save_direct?=?'X'
*????????????fformat?????=?'*'
*??????????TABLES
*????????????flines??????=?l_text.
????????"抬頭文本:物流單號
*????????CLEAR:w_text,l_text.
*????????w_text-tdline?=?wa_item_02-txt_03.
*????????APPEND?w_text?TO?l_text.
*
*????????CALL?FUNCTION?'CREATE_TEXT'
*??????????EXPORTING
*????????????fid?????????=?'0004'
*????????????flanguage???=?sy-langu
*????????????fname???????=?tdname
*????????????fobject?????=?'VBBK'
*????????????save_direct?=?'X'
*????????????fformat?????=?'*'
*??????????TABLES
*????????????flines??????=?l_text.
????????"抬頭文本
????????CLEAR:w_text,l_text.
????????w_text-tdline?=?wa_item_02-txt_04.
????????APPEND?w_text?TO?l_text.
????????CALL?FUNCTION?'CREATE_TEXT'
??????????EXPORTING
????????????fid?????????=?'0001'
????????????flanguage???=?sy-langu
????????????fname???????=?tdname
????????????fobject?????=?'VBBK'
????????????save_direct?=?'X'
????????????fformat?????=?'*'
??????????TABLES
????????????flines??????=?l_text.
????????"給行項目的?bs_txt?字段賦值,以判斷后面行項目文本的創建
*????????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_OUTPUT'
*??????????EXPORTING
*????????????input??=?wa_item_02-vbeln
*??????????IMPORTING
*????????????output?=?wa_item_02-vbeln.
????????wa_item_po_02-bs_txt?=?'1'.
????????wa_item_po_02-vbeln?=?wa_item_02-vbeln.
????????wa_item_po_02-mes_01?=?'S'.
????????wa_item_po_02-mes_02?=?'保存成功,銷售單號為:'?&&?wa_item_02-vbeln.
????????MODIFY?gt_item_po_02
????????FROM?wa_item_po_02
????????TRANSPORTING?vbeln?bs_txt?mes_01?mes_02
????????WHERE?bstnk?=?wa_item_02-bstnk.
????????CLEAR:wa_item_po_02.
??????ELSE.
????????CALL?FUNCTION?'BAPI_TRANSACTION_ROLLBACK'?.
????????CLEAR:mes_str,wa_return.
????????LOOP?AT?return?INTO?wa_return
??????????WHERE?type?=?'E'.
??????????mes_str?=?mes_str?&&?wa_return-message?&&?','.
????????ENDLOOP.
????????wa_item_02-mes_01?=?'E'.
????????wa_item_02-mes_02?=?mes_str.
????????MODIFY?gt_item_02
????????FROM?wa_item_02
????????TRANSPORTING?mes_01?mes_02.
????????wa_item_po_02-mes_01?=?'E'.
????????wa_item_po_02-mes_02?=?mes_str.
????????MODIFY?gt_item_po_02
????????FROM?wa_item_po_02
????????TRANSPORTING?mes_01?mes_02
????????WHERE?bstnk?=?wa_item_02-bstnk.
??????ENDIF.
????ENDIF.
????CLEAR:wa_item_02.
??ENDLOOP.
??LOOP?AT?gt_item_po_02?INTO?wa_item_po_02
??WHERE?bs_txt?=?'1'.
????CLEAR:tdname.
????CALL?FUNCTION?'CONVERSION_EXIT_ALPHA_INPUT'
??????EXPORTING
????????input??=?wa_item_po_02-posnr
??????IMPORTING
????????output?=?wa_item_po_02-posnr.
????tdname?=?wa_item_po_02-vbeln?&&?wa_item_po_02-posnr.
????CLEAR:w_text,l_text.
????w_text-tdline?=?wa_item_po_02-txt_01.
????APPEND?w_text?TO?l_text.
????CALL?FUNCTION?'CREATE_TEXT'
??????EXPORTING
????????fid?????????=?'0001'
????????flanguage???=?sy-langu
????????fname???????=?tdname
????????fobject?????=?'VBBP'
????????save_direct?=?'X'
????????fformat?????=?'*'
??????TABLES
????????flines??????=?l_text.
??ENDLOOP.
??APPEND?LINES?OF?gt_item_po_02?TO?gt_item_po_01.
ENDFORM.
FORM?alv.
??DATA?:?col_pos?TYPE?i?VALUE?1.
??CLEAR:it_fieldcat,wa_fieldcat.
*????ALV顯示界面的設置
*??it_layout-sel_mode??=??'A'.
??it_layout-zebra?=?'X'.
??it_layout-colwidth_optimize?=?'X'.
*??it_layout-info_fieldname?=?'COLOR'.
??PERFORM?fieldcat_int?USING?col_pos??'MES_01'?''?'提示類別'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'MES_02'?''?'提示信息'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VBELN'?''?'系統訂單編號'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'POSNR'?''?'訂單行項目'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'AUDAT'?''?'下單日期'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'BSTDK'?''?'客戶參考日期/發貨日期'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'AUART'?''?'單據類型'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VKBUR'?''?'銷售部門/銷售辦事處'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'BSTNK'?''?'客戶參考/平臺單號'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'BNAME'?''?'名稱/旺旺號'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'MATNR'?''?'規格代碼/商品編碼'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'GGMC'?''?'規格名稱'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'CPMC'?''?'產品名稱'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'BZFS'?''?'包裝方式'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KWMENG'?''?'數量'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'TXT_01'?''?'訂單行項目文本'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'LGORT'?''?'庫存地點'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'TXT_02'?''?'物流方式'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VSBED'?''?'裝運條件'?''?''??''?''?''?''.
*??PERFORM?fieldcat_int?USING?col_pos??'TXT_03'?''?'物流單號'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'IHREZ'?''?'您的參考/客戶聯系人'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KMEIN'?''?'單位'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'TXT_04'?''?'訂單抬頭文本'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KBETR'?''?'單價'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'ZONGJE'?''?'總金額'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'WAERK'?''?'貨幣'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'ZTERM'?''?'付款條件'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'MATNR_01'?''?'物料編碼'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'GGXH'?''?'規格型號'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'CPMC_01'?''?'物料描述'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'EDATU'?''?'請求交貨日期'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'PSTYV'?''?'行項目類別'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VKORG'?''?'銷售組織'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VTWEG'?''?'分銷渠道'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'SPART'?''?'產品組'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'VKGRP'?''?'銷售組'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KUNNR'?''?'客戶編碼'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KUNNR_1'?''?'送達方'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'WERKS'?''?'工廠'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'AUGRU'?''?'訂單原因'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'POSNR'?''?'行項目'?''?''??''?''?''?''.
??PERFORM?fieldcat_int?USING?col_pos??'KPEIN'?''?'價格單位'?''?''??''?''?''?''.
*????調用ALV需要使用的函數
??CALL?FUNCTION?'REUSE_ALV_GRID_DISPLAY'
????EXPORTING
??????i_callback_program???????=?sy-repid
??????i_callback_pf_status_set?=?'SET_PF_STATUS'
??????i_callback_user_command??=?cns_user_command
??????is_layout????????????????=?it_layout
??????it_fieldcat??????????????=?it_fieldcat
??????i_save???????????????????=?'A'
????TABLES
??????t_outtab?????????????????=?gt_item_po_01.
ENDFORM.????????????????????"alv_data
FORM?set_pf_status?USING?rt_extab?TYPE?slis_t_extab.
*????獲取gui狀態
??DATA:?wa_extab?TYPE?slis_extab.
??SET?PF-STATUS?'OPEN'?EXCLUDING?rt_extab.
ENDFORM.????????????????????"set_pf_status
FORM?fieldcat_int??USING???p_col_pos?????????"?1
????????????????????????????p_fieldname???????"?2
????????????????????????????p_key?????????????"?3
????????????????????????????p_seltext_l???????"?4
????????????????????????????p_edit
????????????????????????????p_zero
????????????????????????????p_checkbox
????????????????????????????p_no_out
????????????????????????????p_tname
????????????????????????????p_fname.
??wa_fieldcat-col_pos???????=?p_col_pos.
??wa_fieldcat-fieldname?????=?p_fieldname.
??wa_fieldcat-key???????????=?p_key.
*??wa_fieldcat-coltext????=?p_seltext_l.
??wa_fieldcat-seltext_l?=?p_seltext_l.
??wa_fieldcat-edit????????????=?p_edit.
??wa_fieldcat-no_zero????????=?p_zero.
??wa_fieldcat-checkbox?????=?p_checkbox.
??wa_fieldcat-no_out??????=?p_no_out.
*??wa_fieldcat-colddictxt???????=?'L'.
??wa_fieldcat-ref_tabname????=?p_tname.
??wa_fieldcat-ref_fieldname??=?p_fname.
??APPEND?wa_fieldcat?TO?it_fieldcat.
??p_col_pos?=?p_col_pos?+?1.
??CLEAR:?wa_fieldcat.
ENDFORM.????????????????????"FIELDCAT_INT
?
總結
以上是生活随笔為你收集整理的销售订单批量导入(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lua环境搭建
- 下一篇: mac下nvm_mac中nvm的安装和使