企业网站seo贵不贵,网站建站基本要素,微信商城开发定制,公司网页设计流程1、销售订单BAPI创建
借贷项#xff1a;SD_SALESDOCUMENT_CREATE
退货销售订单#xff1a;BAPI_CUSTOMERRETURN_CREATE
正常销售订单#xff1a;BAPI_SALESORDER_CREATEFROMDAT2
PS#xff08;换货具体看业务配置#xff0c;换货退回可参考退货订单#xff0c;换货发…1、销售订单BAPI创建
借贷项SD_SALESDOCUMENT_CREATE
退货销售订单BAPI_CUSTOMERRETURN_CREATE
正常销售订单BAPI_SALESORDER_CREATEFROMDAT2
PS换货具体看业务配置换货退回可参考退货订单换货发出可参考正常订单
1.1、代码示例
借贷项SD_SALESDOCUMENT_CREATE退换货销售订单BAPI_CUSTOMERRETURN_CREATE正常销售订单BAPI_SALESORDER_CREATEFROMDAT2DATA : lv_posnr TYPE char6 .DATA : lv_sched TYPE char4 .DATA : lv_message TYPE char200 .DATA : lv_vbeln TYPE vbeln_va , 销售订单lv_order_header_in TYPE bapisdhd1, 抬头lv_order_header_inx TYPE bapisdhd1x,lt_order_partners TYPE TABLE OF bapiparnr, 合作伙伴ls_order_partners TYPE bapiparnr,lt_order_items_in TYPE TABLE OF bapisditm, 行项目ls_order_items_in TYPE bapisditm,lt_order_items_inx TYPE TABLE OF bapisditmx, 行项目ls_order_items_inx TYPE bapisditmx,lt_order_conditions_in TYPE TABLE OF bapicond, 条件价格ls_order_conditions_in TYPE bapicond,lt_order_conditions_inx TYPE TABLE OF bapicondx, 条件价格ls_order_conditions_inx TYPE bapicondx,lt_order_schedules_in TYPE TABLE OF bapischdl, 计划行ls_order_schedules_in TYPE bapischdl,lt_order_schedules_inx TYPE TABLE OF bapischdlx, 计划行ls_order_schedules_inx TYPE bapischdlx,lt_return TYPE TABLE OF bapiret2,ls_return TYPE bapiret2.抬头数据赋值SELECT SINGLE bwkey FROM t001wINTO lv_order_header_in-sales_org 销售组织WHERE werks p_lv_alv-j_werks .lv_order_header_in-doc_type p_lv_alv-auart . 销售凭证类型lv_order_header_in-distr_chan p_lv_alv-vtweg .分销渠道lv_order_header_in-division p_lv_alv-spart .产品组lv_order_header_in-req_date_h sy-datum . 要求的交货日期IF p_lv_alv-auart ZRE OR p_lv_alv-auart ZCR OR p_lv_alv-auart ZRE1 .lv_order_header_in-ord_reason Z01 . 订单原因ENDIF .lv_order_header_inx-updateflag I .lv_order_header_inx-doc_type X .lv_order_header_inx-sales_org X .lv_order_header_inx-distr_chan X .lv_order_header_inx-division X .lv_order_header_inx-req_date_h X .IF p_lv_alv-auart ZRE OR p_lv_alv-auart ZCR OR p_lv_alv-auart ZRE1 .lv_order_header_inx-ord_reason X .ENDIF .业务伙伴数据赋值ls_order_partners-partn_role AG .ls_order_partners-partn_numb p_lv_alv-kunnr .CALL FUNCTION CONVERSION_EXIT_ALPHA_INPUTEXPORTINGinput ls_order_partners-partn_numbIMPORTINGoutput ls_order_partners-partn_numb.APPEND ls_order_partners TO lt_order_partners .ls_order_partners-partn_role WE .ls_order_partners-partn_numb p_lv_alv-kunnr .CALL FUNCTION CONVERSION_EXIT_ALPHA_INPUTEXPORTINGinput ls_order_partners-partn_numbIMPORTINGoutput ls_order_partners-partn_numb.APPEND ls_order_partners TO lt_order_partners .LOOP AT gt_alv INTO gs_alv WHERE day_no p_lv_alv-day_no.lv_posnr lv_posnr 10 .
* lv_sched lv_sched 1 .行项目数据CLEAR : ls_order_items_in .ls_order_items_in-itm_number lv_posnr . 行号ls_order_items_in-material gs_alv-matnr . 物料ls_order_items_in-plant gs_alv-j_werks .工厂ls_order_items_in-store_loc gs_alv-lgort . 库存地点ls_order_items_in-target_qty gs_alv-qty . 数量APPEND ls_order_items_in TO lt_order_items_in .CLEAR : ls_order_items_inx .ls_order_items_inx-itm_number lv_posnr . 行号ls_order_items_inx-material X . 物料ls_order_items_inx-plant X . 工厂ls_order_items_inx-store_loc X . 库存地点ls_order_items_inx-target_qty X . 数量APPEND ls_order_items_inx TO lt_order_items_inx .计划行数据CLEAR : ls_order_schedules_in .ls_order_schedules_in-itm_number lv_posnr . 行号ls_order_schedules_in-sched_line 1 . 计划行ls_order_schedules_in-req_qty gs_alv-qty . 数量
* IF p_lv_alv-j_werks p_lv_alv-k_werksIF ( p_lv_alv-auart ZRE OR p_lv_alv-auart ZRE1 ) .ls_order_schedules_in-sched_type DN . 计划行类别ELSEIF ( p_lv_alv-auart ZOR2 OR p_lv_alv-auart ZOR7 ) .ls_order_schedules_in-sched_type CP . 计划行类别ENDIF .APPEND ls_order_schedules_in TO lt_order_schedules_in .CLEAR : ls_order_schedules_inx .ls_order_schedules_inx-itm_number lv_posnr .ls_order_schedules_inx-sched_line 1 .ls_order_schedules_inx-updateflag I .ls_order_schedules_inx-req_qty X .IF p_lv_alv-j_werks p_lv_alv-k_werksAND ( p_lv_alv-auart ZRE OR p_lv_alv-auart ZRE1 ) .ELSE .ls_order_schedules_inx-sched_type X .ENDIF .APPEND ls_order_schedules_inx TO lt_order_schedules_inx .价格条件CLEAR : ls_order_conditions_in .ls_order_conditions_in-itm_number lv_posnr . 行号ls_order_conditions_in-cond_st_no 10 . 步骤编号ls_order_conditions_in-cond_count 1 . 条件计数器ls_order_conditions_in-cond_type ZA05 . 条件类型ls_order_conditions_in-cond_value gs_alv-js_amount . 金额ls_order_conditions_in-cond_p_unt 1 . 条件定价单位ls_order_conditions_in-currency CNY .APPEND ls_order_conditions_in TO lt_order_conditions_in .CLEAR : ls_order_conditions_inx .ls_order_conditions_inx-itm_number lv_posnr .ls_order_conditions_inx-updateflag I .ls_order_conditions_inx-cond_st_no 10 .ls_order_conditions_inx-cond_count 1 .ls_order_conditions_inx-cond_type ZA05 .ls_order_conditions_inx-cond_value X .ls_order_conditions_inx-cond_p_unt X .ls_order_conditions_inx-currency X .APPEND ls_order_conditions_inx TO lt_order_conditions_inx .CLEAR : gs_alv .ENDLOOP .IF ( p_lv_alv-auart ZRE OR p_lv_alv-auart ZRE1 ) .CALL FUNCTION BAPI_CUSTOMERRETURN_CREATEEXPORTINGreturn_header_in lv_order_header_inreturn_header_inx lv_order_header_inxIMPORTINGsalesdocument gs_alv-vbelnTABLESreturn lt_returnreturn_items_in lt_order_items_inreturn_items_inx lt_order_items_inxreturn_partners lt_order_partnersreturn_schedules_in lt_order_schedules_inreturn_schedules_inx lt_order_schedules_inxreturn_conditions_in lt_order_conditions_in.ELSEIF p_lv_alv-auart ZCR OR p_lv_alv-auart ZDR .CALL FUNCTION SD_SALESDOCUMENT_CREATEEXPORTINGsales_header_in lv_order_header_insales_header_inx lv_order_header_inxIMPORTINGsalesdocument_ex gs_alv-vbelnTABLESreturn lt_returnsales_items_in lt_order_items_insales_items_inx lt_order_items_inxsales_partners lt_order_partnerssales_schedules_in lt_order_schedules_insales_schedules_inx lt_order_schedules_inx.ELSE .CALL FUNCTION BAPI_SALESORDER_CREATEFROMDAT2EXPORTINGorder_header_in lv_order_header_inorder_header_inx lv_order_header_inxIMPORTINGsalesdocument gs_alv-vbelnTABLESreturn lt_returnorder_items_in lt_order_items_inorder_items_inx lt_order_items_inxorder_partners lt_order_partnersorder_schedules_in lt_order_schedules_inorder_schedules_inx lt_order_schedules_inxorder_conditions_in lt_order_conditions_inorder_conditions_inx lt_order_conditions_inx.ENDIF .LOOP AT lt_return INTO ls_return WHERE type CA EA .gs_alv-message gs_alv-message ls_return-message /.CLEAR : ls_return .ENDLOOP .IF sy-subrc 0 .CALL FUNCTION BAPI_TRANSACTION_ROLLBACK.ELSE .CALL FUNCTION BAPI_TRANSACTION_COMMITEXPORTINGwait X.ENDIF .
2、销售订单BAPI扩展字段写入
2.1、相关结构扩展
抬头 VBAKKOZ、VBAKKOZX、BAPE_VBAK、BAPE_VBAKX
行项目VBAPKOZ、VBAPKOZX、BAPE_VBAP、BAPE_VBAPX
计划行VBEPKOZ、VBEPKOZX、BAPE_VBEP、BAPE_VBEPX
以抬头、行项目为例 2.2、代码示例
2.2.1:订单创建 lv_order_header_in-sales_org gs_head-vkorg . 销售组织lv_order_header_in-doc_type gs_head-auart . 销售凭证类型lv_order_header_in-distr_chan gs_head-vtweg . 分销渠道lv_order_header_in-division gs_head-spart . 产品组lv_order_header_in-sales_off gs_head-vkbur . 销售办公室lv_order_header_in-req_date_h sy-datum . 要求的交货日期lv_order_header_in-purch_date gs_head-bstdk . 客户参考时间lv_order_header_in-name gs_head-bname . 订货人名字lv_order_header_in-telephone gs_head-telf1 . 联系人电话SELECT SINGLE vbeln FROM vbak INTO lv_order_header_in-purch_no_c 参考凭证号客户参考WHERE bstnk gs_head-bstnk2 .为“工程销售订单”时VBAK-BSTNKBSTNK1VBAK-VBTYPG取VBAK-VBELN参考销售合同创建工程销售订单IF gv_auart Z040 .SELECT SINGLE vbeln ,auart FROM vbak INTO DATA(ls_vbak) WHERE bstnk gs_head-bstnk1 AND vbtyp G.IF sy-subrc 0 .lv_order_header_in-refdoctype ls_vbak-auart .lv_order_header_in-ref_doc ls_vbak-vbeln .ELSE .gs_return-ex_msgtype E .gs_return-ex_msginfo 合同查询失败无法建单! .ENDIF .ENDIF .lv_order_header_inx-updateflag I .lv_order_header_inx-doc_type X .lv_order_header_inx-sales_org X .lv_order_header_inx-distr_chan X .lv_order_header_inx-division X .lv_order_header_inx-sales_off X .lv_order_header_inx-req_date_h X .lv_order_header_inx-purch_date X .lv_order_header_inx-name X .lv_order_header_inx-telephone X .lv_order_header_inx-purch_no_c X .业务伙伴数据赋值ls_order_partners-partn_role AG .ls_order_partners-partn_numb gs_head-kunnr .CALL FUNCTION CONVERSION_EXIT_ALPHA_INPUTEXPORTINGinput ls_order_partners-partn_numbIMPORTINGoutput ls_order_partners-partn_numb.APPEND ls_order_partners TO lt_order_partners .ls_order_partners-partn_role WE .ls_order_partners-partn_numb gs_head-kunnr .CALL FUNCTION CONVERSION_EXIT_ALPHA_INPUTEXPORTINGinput ls_order_partners-partn_numbIMPORTINGoutput ls_order_partners-partn_numb.APPEND ls_order_partners TO lt_order_partners .抬头扩展字段
*--------------------------------------------------------------------*CLEAR : ls_extensionin ,ls_bape_vbak ,ls_bape_vbakx .IF gs_head-zfws IS NOT INITIAL .ls_bape_vbak-zfws gs_head-zfws .ls_bape_vbakx-zfws X .ENDIF .IF gs_head-zfws IS NOT INITIAL .ls_bape_vbak-zshdz gs_head-zshdz .ls_bape_vbakx-zshdz X .ENDIF .IF gs_head-zwlgs IS NOT INITIAL .ls_bape_vbak-zwlgs gs_head-zwlgs .ls_bape_vbakx-zwlgs X .ENDIF .IF gs_head-zptdh IS NOT INITIAL .ls_bape_vbak-zptdh gs_head-zptdh .ls_bape_vbakx-zptdh X .ENDIF .IF gs_head-zedbdh IS NOT INITIAL .ls_bape_vbak-zedbdh gs_head-zedbdh .ls_bape_vbakx-zedbdh X .ENDIF .IF gs_head-zremarks IS NOT INITIAL .ls_bape_vbak-zremarks gs_head-zremarks .ls_bape_vbakx-zremarks X .ENDIF .IF ls_bape_vbak IS NOT INITIAL .ls_extensionin-structure BAPE_VBAK. 扩展结构lv_valuepart ls_bape_vbak .ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin .CLEAR lv_valuepart.ls_extensionin-structure BAPE_VBAKX. 扩展结构lv_valuepart ls_bape_vbakx.ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin.CLEAR lv_valuepart.ENDIF .
*--------------------------------------------------------------------*LOOP AT gt_item INTO gs_item .lv_posnr lv_posnr 10 .行项目数据CLEAR : ls_order_items_in .ls_order_items_in-itm_number lv_posnr . 行号ls_order_items_in-material gs_item-matnr . 物料CALL FUNCTION CONVERSION_EXIT_MATN1_INPUTEXPORTINGinput ls_order_items_in-materialIMPORTINGoutput ls_order_items_in-materialEXCEPTIONSlength_error 1OTHERS 2.ls_order_items_in-plant gs_item-werks . 工厂ls_order_items_in-store_loc gs_item-lgort . 库存地点ls_order_items_in-target_qty gs_item-kwmeng . 数量IF ls_order_items_in-target_qty 0 .ls_order_items_in-target_qty 0 - ls_order_items_in-target_qty .ENDIF .ls_order_items_in-po_itm_no gs_item-posex .APPEND ls_order_items_in TO lt_order_items_in .CLEAR : ls_order_items_inx .ls_order_items_inx-itm_number lv_posnr . 行号ls_order_items_inx-material X . 物料ls_order_items_inx-plant X . 工厂ls_order_items_inx-store_loc X . 库存地点ls_order_items_inx-target_qty X . 数量ls_order_items_inx-po_itm_no X .APPEND ls_order_items_inx TO lt_order_items_inx .计划行数据CLEAR : ls_order_schedules_in .ls_order_schedules_in-itm_number lv_posnr . 行号ls_order_schedules_in-sched_line 1 . 计划行ls_order_schedules_in-req_qty gs_item-kwmeng . 数量IF ls_order_items_in-target_qty 0 .ls_order_schedules_in-req_qty 0 - ls_order_schedules_in-req_qty .ENDIF .APPEND ls_order_schedules_in TO lt_order_schedules_in .CLEAR : ls_order_schedules_inx .ls_order_schedules_inx-itm_number lv_posnr .ls_order_schedules_inx-sched_line 1 .ls_order_schedules_inx-updateflag I .ls_order_schedules_inx-req_qty X .APPEND ls_order_schedules_inx TO lt_order_schedules_inx .价格条件CLEAR : ls_order_conditions_in .ls_order_conditions_in-itm_number lv_posnr . 行号ls_order_conditions_in-cond_st_no 10 . 步骤编号ls_order_conditions_in-cond_count 1 . 条件计数器ls_order_conditions_in-cond_type Z001 . 条件类型ls_order_conditions_in-cond_value gs_item-price1 . 金额ls_order_conditions_in-cond_p_unt 1.gs_item-kwmeng . 条件定价单位ls_order_conditions_in-currency CNY .APPEND ls_order_conditions_in TO lt_order_conditions_in .CLEAR : ls_order_conditions_inx .ls_order_conditions_inx-itm_number lv_posnr .ls_order_conditions_inx-updateflag U .ls_order_conditions_inx-cond_st_no 10 .ls_order_conditions_inx-cond_count 1 .ls_order_conditions_inx-cond_type Z001 . 条件类型ls_order_conditions_inx-cond_value X .ls_order_conditions_inx-cond_p_unt X .ls_order_conditions_inx-currency X .APPEND ls_order_conditions_inx TO lt_order_conditions_inx .IF gs_item-price2 IS NOT INITIAL .ls_order_conditions_in-cond_type Z020 .ls_order_conditions_in-cond_value gs_item-price2 .APPEND ls_order_conditions_in TO lt_order_conditions_in .ls_order_conditions_inx-cond_type Z020 .ls_order_conditions_inx-updateflag I .APPEND ls_order_conditions_inx TO lt_order_conditions_inx .ENDIF .IF gs_item-price3 IS NOT INITIAL .ls_order_conditions_in-cond_type Z030 .ls_order_conditions_in-cond_value gs_item-price3 .APPEND ls_order_conditions_in TO lt_order_conditions_in .ls_order_conditions_inx-cond_type Z030 .ls_order_conditions_inx-updateflag I .APPEND ls_order_conditions_inx TO lt_order_conditions_inx .ENDIF .行项目扩展字段
*--------------------------------------------------------------------*CLEAR : ls_extensionin ,ls_bape_vbap ,ls_bape_vbapx .IF gs_item-zxslx IS NOT INITIAL .ls_bape_vbap-zxslx gs_item-zxslx .ls_bape_vbapx-zxslx X .ENDIF .IF gs_item-zjqbm IS NOT INITIAL .ls_bape_vbap-zjqbm gs_item-zjqbm .ls_bape_vbapx-zjqbm X .ENDIF .IF gs_item-zybgmrq IS NOT INITIAL .ls_bape_vbap-zybgmrq gs_item-zybgmrq .ls_bape_vbapx-zybgmrq X .ENDIF .IF gs_item-zazzt IS NOT INITIAL .ls_bape_vbap-zazzt gs_item-zazzt .ls_bape_vbapx-zazzt X .ENDIF .IF gs_item-zazrq IS NOT INITIAL .ls_bape_vbap-zazrq gs_item-zazrq .ls_bape_vbapx-zazrq X .ENDIF .IF gs_item-zybkssj IS NOT INITIAL .ls_bape_vbap-zybkssj gs_item-zybkssj .ls_bape_vbapx-zybkssj X .ENDIF .IF gs_item-zybjssj IS NOT INITIAL .ls_bape_vbap-zybjssj gs_item-zybjssj .ls_bape_vbapx-zybjssj X .ENDIF .IF gs_item-zfwsbm IS NOT INITIAL .ls_bape_vbap-zfwsbm gs_item-zfwsbm .ls_bape_vbapx-zfwsbm X .ENDIF .IF gs_item-zmdxgbm IS NOT INITIAL .ls_bape_vbap-zmdxgbm gs_item-zmdxgbm .ls_bape_vbapx-zmdxgbm X .ENDIF .IF gs_item-zbxgmbs IS NOT INITIAL .ls_bape_vbap-zbxgmbs gs_item-zbxgmbs .ls_bape_vbapx-zbxgmbs X .ENDIF .IF gs_item-zybxsskfs IS NOT INITIAL .ls_bape_vbap-zybxsskfs gs_item-zybxsskfs .ls_bape_vbapx-zybxsskfs X .ENDIF .IF gs_item-zybskzh IS NOT INITIAL .ls_bape_vbap-zybskzh gs_item-zybskzh .ls_bape_vbapx-zybskzh X .ENDIF .IF gs_item-zybskje IS NOT INITIAL .ls_bape_vbap-zybskje gs_item-zybskje .ls_bape_vbapx-zybskje X .ENDIF .IF ls_bape_vbap IS NOT INITIAL .ls_bape_vbap-posnr lv_posnr .ls_bape_vbapx-posnr lv_posnr .ls_extensionin-structure BAPE_VBAP. 扩展结构CALL METHOD cl_abap_container_utilitiesfill_container_cEXPORTINGim_value ls_bape_vbapIMPORTINGex_container lv_valuepart.ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin .CLEAR lv_valuepart.ls_extensionin-structure BAPE_VBAPX. 扩展结构lv_valuepart ls_bape_vbapx.ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin.CLEAR lv_valuepart.ENDIF .
*--------------------------------------------------------------------*CLEAR : gs_item .ENDLOOP .IF gs_return-ex_msgtype E .IF ( gv_auart Z310 OR gv_auart Z320 OR gv_auart Z330 OR gv_auart Z340 ) .CALL FUNCTION BAPI_CUSTOMERRETURN_CREATE 退货销售订单创建EXPORTINGreturn_header_in lv_order_header_inreturn_header_inx lv_order_header_inxlogic_switch ls_logicIMPORTINGsalesdocument lv_vbelnTABLESreturn lt_returnreturn_items_in lt_order_items_inreturn_items_inx lt_order_items_inxreturn_partners lt_order_partnersreturn_schedules_in lt_order_schedules_inreturn_schedules_inx lt_order_schedules_inxreturn_conditions_in lt_order_conditions_inextensionin lt_extensionin.ELSEIF ( gv_auart Z050 OR gv_auart Z060 OR gv_auart Z070 OR gv_auart Z080 OR gv_auart Z090 OR gv_auart Z100 ) .CALL FUNCTION SD_SALESDOCUMENT_CREATE 借贷项凭证EXPORTINGsales_header_in lv_order_header_insales_header_inx lv_order_header_inxlogic_switch ls_logicIMPORTINGsalesdocument_ex lv_vbelnTABLESreturn lt_returnsales_items_in lt_order_items_insales_items_inx lt_order_items_inxsales_partners lt_order_partnerssales_schedules_in lt_order_schedules_insales_schedules_inx lt_order_schedules_inxsales_conditions_in lt_order_conditions_insales_conditions_inx lt_order_conditions_inxextensionin lt_extensionin.ELSEIF ( gv_auart Z010 OR gv_auart Z020 OR gv_auart Z030 OR gv_auart Z040 ) .CALL FUNCTION BAPI_SALESORDER_CREATEFROMDAT2 一般销售订单EXPORTINGorder_header_in lv_order_header_inorder_header_inx lv_order_header_inxlogic_switch ls_logicIMPORTINGsalesdocument lv_vbelnTABLESreturn lt_returnorder_items_in lt_order_items_inorder_items_inx lt_order_items_inxorder_partners lt_order_partnersorder_schedules_in lt_order_schedules_inorder_schedules_inx lt_order_schedules_inxorder_conditions_in lt_order_conditions_inorder_conditions_inx lt_order_conditions_inxextensionin lt_extensionin.ENDIF .LOOP AT lt_return INTO ls_return WHERE type CA EA .gs_return-ex_msginfo gs_return-ex_msginfo ls_return-message .ENDLOOP .
2.2.2:订单修改 DATA: ls_hdr TYPE bapisdh1,ls_hdrx TYPE bapisdh1x,ls_logic TYPE bapisdls,ls_ret TYPE bapiret2,lt_ret TYPE TABLE OF bapiret2,ls_itm TYPE bapisditm,lt_itm TYPE TABLE OF bapisditm,ls_itmx TYPE bapisditmx,lt_itmx TYPE TABLE OF bapisditmx,ls_sche TYPE bapischdl,lt_sche TYPE TABLE OF bapischdl,ls_schex TYPE bapischdlx,lt_schex TYPE TABLE OF bapischdlx,ls_cond TYPE bapicond,lt_cond TYPE TABLE OF bapicond,ls_condx TYPE bapicondx,lt_condx TYPE TABLE OF bapicondx,ls_extensionin TYPE bapiparex, 扩展字段lt_extensionin TYPE TABLE OF bapiparex, 扩展字段ls_bape_vbak TYPE bape_vbak,ls_bape_vbakx TYPE bape_vbakx,ls_bape_vbap TYPE bape_vbap,ls_bape_vbapx TYPE bape_vbapx.DATA : lv_valuepart(960). 扩展用ls_logic-pricing G.ls_hdrx-updateflag U .抬头扩展字段
*--------------------------------------------------------------------*CLEAR : ls_extensionin ,ls_bape_vbak ,ls_bape_vbakx .IF gs_head-zfws IS NOT INITIAL .ls_bape_vbak-zfws gs_head-zfws .ls_bape_vbakx-zfws X .ENDIF .IF gs_head-zfws IS NOT INITIAL .ls_bape_vbak-zshdz gs_head-zshdz .ls_bape_vbakx-zshdz X .ENDIF .IF gs_head-zwlgs IS NOT INITIAL .ls_bape_vbak-zwlgs gs_head-zwlgs .ls_bape_vbakx-zwlgs X .ENDIF .IF gs_head-zptdh IS NOT INITIAL .ls_bape_vbak-zptdh gs_head-zptdh .ls_bape_vbakx-zptdh X .ENDIF .IF gs_head-zedbdh IS NOT INITIAL .ls_bape_vbak-zedbdh gs_head-zedbdh .ls_bape_vbakx-zedbdh X .ENDIF .IF gs_head-zremarks IS NOT INITIAL .ls_bape_vbak-zremarks gs_head-zremarks .ls_bape_vbakx-zremarks X .ENDIF .IF ls_bape_vbak IS NOT INITIAL .ls_bape_vbak-vbeln gs_head-vbeln .ls_bape_vbakx-vbeln gs_head-vbeln .ls_extensionin-structure BAPE_VBAK. 扩展结构lv_valuepart ls_bape_vbak .ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin .CLEAR lv_valuepart.ls_extensionin-structure BAPE_VBAKX. 扩展结构lv_valuepart ls_bape_vbakx.ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin.CLEAR lv_valuepart.ENDIF .
*--------------------------------------------------------------------*LOOP AT gt_item INTO gs_item .CLEAR :ls_itm ,ls_itmx.ls_itm-itm_number gs_item-posnr .ls_itmx-itm_number gs_item-posnr .IF gs_item-matnr IS NOT INITIAL .ls_itm-material gs_item-posnr .ls_itmx-material X .ENDIF .IF gs_item-kwmeng IS NOT INITIAL .ls_itm-target_qty gs_item-kwmeng .ls_itmx-target_qty X .ENDIF .ls_itmx-updateflag U .APPEND ls_itm TO lt_itm .APPEND ls_itmx TO lt_itmx .计划行IF gs_item-kwmeng IS NOT INITIAL .CLEAR : ls_sche .ls_sche-itm_number gs_item-posnr . 行号ls_sche-sched_line 1 . 计划行ls_sche-req_qty gs_item-kwmeng . 数量IF ls_sche-req_qty 0 .ls_sche-req_qty 0 - ls_sche-req_qty .ENDIF .APPEND ls_sche TO lt_sche .CLEAR : ls_schex .ls_schex-itm_number gs_item-posnr .ls_schex-sched_line 1 .ls_schex-updateflag I .ls_schex-req_qty X .APPEND ls_schex TO lt_schex .ENDIF .价格条件IF gs_item-price1 IS NOT INITIAL .价格条件CLEAR : ls_cond .ls_cond-itm_number gs_item-posnr . 行号ls_cond-cond_st_no 10 . 步骤编号ls_cond-cond_count 1 . 条件计数器ls_cond-cond_type Z001 . 条件类型ls_cond-cond_value gs_item-price1 . 金额ls_cond-cond_p_unt 1.gs_item-kwmeng . 条件定价单位ls_cond-currency CNY .APPEND ls_cond TO lt_cond .CLEAR : ls_condx .ls_condx-itm_number gs_item-posnr .ls_condx-updateflag U .ls_condx-cond_st_no 10 .ls_condx-cond_count 1 .ls_condx-cond_type Z001 . 条件类型ls_condx-cond_value X .ls_condx-cond_p_unt X .ls_condx-currency X .APPEND ls_condx TO lt_condx .ENDIF .行项目扩展字段
*--------------------------------------------------------------------*CLEAR : ls_extensionin ,ls_bape_vbap ,ls_bape_vbapx .IF gs_item-zxslx IS NOT INITIAL .ls_bape_vbap-zxslx gs_item-zxslx .ls_bape_vbapx-zxslx X .ENDIF .IF gs_item-zjqbm IS NOT INITIAL .ls_bape_vbap-zjqbm gs_item-zjqbm .ls_bape_vbapx-zjqbm X .ENDIF .IF gs_item-zybgmrq IS NOT INITIAL .ls_bape_vbap-zybgmrq gs_item-zybgmrq .ls_bape_vbapx-zybgmrq X .ENDIF .IF gs_item-zazzt IS NOT INITIAL .ls_bape_vbap-zazzt gs_item-zazzt .ls_bape_vbapx-zazzt X .ENDIF .IF gs_item-zazrq IS NOT INITIAL .ls_bape_vbap-zazrq gs_item-zazrq .ls_bape_vbapx-zazrq X .ENDIF .IF gs_item-zybkssj IS NOT INITIAL .ls_bape_vbap-zybkssj gs_item-zybkssj .ls_bape_vbapx-zybkssj X .ENDIF .IF gs_item-zybjssj IS NOT INITIAL .ls_bape_vbap-zybjssj gs_item-zybjssj .ls_bape_vbapx-zybjssj X .ENDIF .IF gs_item-zfwsbm IS NOT INITIAL .ls_bape_vbap-zfwsbm gs_item-zfwsbm .ls_bape_vbapx-zfwsbm X .ENDIF .IF gs_item-zmdxgbm IS NOT INITIAL .ls_bape_vbap-zmdxgbm gs_item-zmdxgbm .ls_bape_vbapx-zmdxgbm X .ENDIF .IF gs_item-zbxgmbs IS NOT INITIAL .ls_bape_vbap-zbxgmbs gs_item-zbxgmbs .ls_bape_vbapx-zbxgmbs X .ENDIF .IF gs_item-zybxsskfs IS NOT INITIAL .ls_bape_vbap-zybxsskfs gs_item-zybxsskfs .ls_bape_vbapx-zybxsskfs X .ENDIF .IF gs_item-zybskzh IS NOT INITIAL .ls_bape_vbap-zybskzh gs_item-zybskzh .ls_bape_vbapx-zybskzh X .ENDIF .IF gs_item-zybskje IS NOT INITIAL .ls_bape_vbap-zybskje gs_item-zybskje .ls_bape_vbapx-zybskje X .ENDIF .IF ls_bape_vbap IS NOT INITIAL .ls_bape_vbap-vbeln gs_item-posnr .ls_bape_vbapx-vbeln gs_item-posnr .ls_bape_vbap-posnr lv_posnr .ls_bape_vbapx-posnr lv_posnr .ls_extensionin-structure BAPE_VBAP. 扩展结构CALL METHOD cl_abap_container_utilitiesfill_container_cEXPORTINGim_value ls_bape_vbapIMPORTINGex_container ls_extensionin-valuepart1.APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin .CLEAR lv_valuepart.ls_extensionin-structure BAPE_VBAPX. 扩展结构lv_valuepart ls_bape_vbapx.ls_extensionin-valuepart1 lv_valuepart(240).ls_extensionin-valuepart2 lv_valuepart240(240).ls_extensionin-valuepart3 lv_valuepart480(240).ls_extensionin-valuepart4 lv_valuepart720(240).APPEND ls_extensionin TO lt_extensionin.CLEAR ls_extensionin.CLEAR lv_valuepart.ENDIF .
*--------------------------------------------------------------------*CLEAR : gs_item .ENDLOOP .CALL FUNCTION BAPI_SALESORDER_CHANGEEXPORTINGsalesdocument gs_head-vbelnorder_header_in ls_hdrorder_header_inx ls_hdrxlogic_switch ls_logicTABLESreturn lt_retorder_item_in lt_itmorder_item_inx lt_itmxschedule_lines lt_scheschedule_linesx lt_schexconditions_in lt_condconditions_inx lt_condxextensionin lt_extensionin.LOOP AT lt_ret INTO ls_ret WHERE type CA EA .gs_return-ex_msginfo gs_return-ex_msginfo ls_ret-message .ENDLOOP .