月度归档:2018年07月

BAPI 含增强字段(EXTENSIONIN)

    下面只是个人的一些浅显看法,如果有错误或者更好的方案,请指出。
1.找到对应的结构或者自己创建一个结构,(如果创建,必须有对应的关键字)
2.在结构中添加表增强的字段
3.EXTENSIONIN值设置
4.调用bapi
    以 BAPI_PO_CREATE1 为例:创建PO需要导入 “ZZ001” 字段
步骤1:

步骤2:
     系统一般都有定义对应的结构(将字段添加到结构中)
步骤3:传参

*——————增强字段—————*
  CLEAR :ls_header_ext ,ls_header_extx.
  ls_header_extzz001 lt_datazz001.
  ls_header_extxzz001 ‘X’.
  CLEARlt_extensionin.
  lt_extensioninstructure ‘BAPI_TE_MEPOHEADER’.
  lt_extensioninvaluepart1 ls_header_ext.
  APPEND lt_extensionin.

  CLEARlt_extensionin.
  lt_extensioninstructure ‘BAPI_TE_MEPOHEADERX’.
  lt_extensioninvaluepart1 ls_header_extx.
  APPEND lt_extensionin.
步骤4:调用BAPI

注:对步骤2进行补充,如果点:EXTENSIONIN “显示” 没有对应的结构,就需要去SE11里找或者自己创建
    例如:BAPI_GOODSMVT_CREATE
se11查找:BAPI_TE_*(增强表名)
    

创建销售订单时如何给增强字段赋值[BAPI_SALESORDER_CREATEFROMDAT2]

在使用bapi BAPI_SALESORDER_CREATEFROMDAT2创建销售订单时,可以通过extensionin参数给自定义的参数赋值。

2017-01-31_10-38-45

具体的使用方法可以通过点击Function module documentaion来查看,如下:

 

2017-01-31_10-44-09

下面举例说明:

在销售订单的行项目上的additional data a tab页上有5个自定义的增强字段,如下:

2017-01-31_10-46-23

对应表vbap中是如下几个字段,这些字段是通过append的方式加到vbap上的

2017-01-31_10-48-05

同样,这些自定义字段也要加到structure VBAPKOZ,BAPE_VBAP和 BAPE_VBAPX中,

2017-01-31_10-56-05

2017-01-31_10-58-05

2017-01-31_11-00-16

总结一下:

如果增强字段在销售订单抬头(vbak)上,则要将增强字段一并append到如下四个表/结构中:

  1.  VBAKKOZ
  2.  VBAKKOZX
  3.  BAPE_VBAK
  4.  BAPE_VBAKX

在行项目(vbap)上:

  1. VBAPKOZ
  2. VBAPKOZX
  3. BAPE_VBAP
  4. BAPE_VBAPX

在运货计划行(VBEP)上:

  1. VBEPKOZ
  2. BEPKOZX
  3. BAPE_VBEP
  4. BAPE_VBEPX

下面介绍如何向bapi中extensionin参数赋值数据,具体代码如下:

 

最后调用bapi BAPI_SALESORDER_CREATEFROMDAT2时将上面代码中填充好的m_it_extensionin内表传入就可以了。