在使用bapi BAPI_SALESORDER_CREATEFROMDAT2创建销售订单时,可以通过extensionin参数给自定义的参数赋值。
具体的使用方法可以通过点击Function module documentaion来查看,如下:
下面举例说明:
在销售订单的行项目上的additional data a tab页上有5个自定义的增强字段,如下:
对应表vbap中是如下几个字段,这些字段是通过append的方式加到vbap上的
同样,这些自定义字段也要加到structure VBAPKOZ,BAPE_VBAP和 BAPE_VBAPX中,
总结一下:
如果增强字段在销售订单抬头(vbak)上,则要将增强字段一并append到如下四个表/结构中:
- VBAKKOZ
- VBAKKOZX
- BAPE_VBAK
- BAPE_VBAKX
在行项目(vbap)上:
- VBAPKOZ
- VBAPKOZX
- BAPE_VBAP
- BAPE_VBAPX
在运货计划行(VBEP)上:
- VBEPKOZ
- BEPKOZX
- BAPE_VBEP
- BAPE_VBEPX
下面介绍如何向bapi中extensionin参数赋值数据,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
DATA: lwa_bape_vbap TYPE bape_vbap. "BAPI Interface for Customer Enhancements to Table VBAP DATA: lwa_bape_vbapx TYPE bape_vbapx. "BAPI Checkbox for Customer Enhancments to Table VBAP DATA: lwa_extensionin TYPE bapiparex. "Customer Enhancement for VBAK, VBAP, VBEP "Fill item level self-defined fields * extension BAPE_VBAP CLEAR: lwa_bape_vbap, lwa_bape_vbapx. * 订单号可以不填,只填行项目号就可以,然后给自定义字段赋值 lwa_bape_vbap-posnr = lwa_order_items_in-itm_number. lwa_bape_vbap-yymv_mvgr1 = lwa_items-yymv_mvgr1. lwa_bape_vbap-yymv_mvgr2 = lwa_items-yymv_mvgr2. lwa_bape_vbap-yymv_mvgr3 = lwa_items-yymv_mvgr3. lwa_bape_vbap-yymv_mvgr4 = lwa_items-yymv_mvgr4. lwa_bape_vbap-yymv_mvgr5 = lwa_items-yymv_mvgr5. lwa_bape_vbapx-yymv_mvgr1 = 'X'. lwa_bape_vbapx-yymv_mvgr2 = 'X'. lwa_bape_vbapx-yymv_mvgr3 = 'X'. lwa_bape_vbapx-yymv_mvgr4 = 'X'. lwa_bape_vbapx-yymv_mvgr5 = 'X'. lwa_bape_vbapx-posnr = lwa_order_items_in-itm_number. MOVE 'BAPE_VBAP' TO lwa_extensionin-structure. CALL METHOD cl_abap_container_utilities=>fill_container_c EXPORTING im_value = lwa_bape_vbap IMPORTING ex_container = lwa_extensionin-valuepart1. APPEND lwa_extensionin TO m_it_extensionin. CLEAR lwa_extensionin. MOVE 'BAPE_VBAPX' TO lwa_extensionin-structure. MOVE lwa_bape_vbapx TO lwa_extensionin-valuepart1. APPEND lwa_extensionin TO m_it_extensionin. |
最后调用bapi BAPI_SALESORDER_CREATEFROMDAT2时将上面代码中填充好的m_it_extensionin内表传入就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING order_header_in = m_order_header_in logic_switch = lwa_logic_switch testrun = i_test_run IMPORTING salesdocument = m_order_number TABLES return = lit_return order_items_in = m_it_order_items_in order_partners = m_it_order_partners order_schedules_in = m_it_order_schedules_in order_conditions_in = m_it_order_conditions_in order_cfgs_ref = m_it_order_cfgs_ref order_cfgs_inst = m_it_order_cfgs_inst order_cfgs_value = m_it_order_cfgs_value order_cfgs_refinst = m_it_order_cfgs_refinst order_text = m_it_order_text extensionin = m_it_extensionin "<====自定义字段 partneraddresses = m_it_partneraddresses. |
以上。
請問一下如果超過長度990要怎麼處理
2022-08-04 11:46 上午赞!!!
2017-03-14 8:16 上午