创建SO bapi
转自http://blog.sina.com.cn/s/blog_1647b3eff0102wi32.html
1.创建销售订单使用的BAPI
BAPI_SALESORDER_CREATEFROMDAT2
但是 BUSINESS OBJECT限制为 BUS2032
使用FM:
DATA LV_OBJTYPE TYPE OJ_NAME .
LS_HEADER-SD_DOC_CAT为销售订单类型,即类型为:VBAK-VBTYP
CALL FUNCTION 'SD_OBJECT_TYPE_DETERMINE'
EXPORTING
I_DOCUMENT_TYPE = LS_HEADER-SD_DOC_CAT
IMPORTING
E_BUSINESS_OBJECT = LV_OBJTYPE
EXCEPTIONS
OTHERS = 1.
如果LV_OBJTYPE = BUS2032
则可以使用BAPI_SALESORDER_CREATEFROMDAT2
如果其他的业务对象则使用FM: SD_SALESDOCUMENT_CREATE创建销售订单
2.关于销售订单的增强使用
参数 EXTENSIONIN
举个例子,例如VBKD的数据 VBKD- TRATY VBKD- TRMTYP
大家应该可以看出来VBKD 数据中, 虽然分为vbeln posnr 但是一般只会使用vbeln字段,posnr 为空,
此时,VBKD 数据 一般都可以在bapi参数
ORDER_HEADER_IN 找到,但是VBKD- TRATY 却在bapi 中没有.
所以我们需要做增强.
首先 我们要确认使用 BAPE_VBAK 和BAPE_VBAKX两个结构
LS_BAPIPAREX-STRUCTURE = 'BAPE_VBAK'.
LS_BAPE_VBAK-TRATY = LS_BAPISDHD1_VBKD-TRATY.
LS_BAPE_VBAK-VSART = LS_BAPISDHD1_VBKD-VSART.
LS_BAPE_VBAK-TRMTYP = LS_BAPISDHD1_VBKD-TRMTYP.
LS_BAPE_VBAK-SDABW = LS_BAPISDHD1_VBKD-SDABW.
LS_BAPIPAREX-VALUEPART1 = LS_BAPE_VBAK.
APPEND LS_BAPIPAREX TO ET_BAPIPAREX.
LS_BAPIPAREX-STRUCTURE = 'BAPE_VBAKX'.
LS_BAPE_VBAKX-TRATY = CNS_X.
LS_BAPE_VBAKX-VSART = CNS_X.
LS_BAPE_VBAKX-TRMTYP = CNS_X.
LS_BAPE_VBAKX-SDABW = CNS_X.
LS_BAPIPAREX-VALUEPART1 = LS_BAPE_VBAKX.
其次:VBAKKOZ 需要增加TRATY . VBAKKOZX 也添加相应的控制字段TRATY type BAPIUPDATE
然后请注意,
ORDER_HEADER_INX-UPDATEFLAG = SPACE . !! 这点很重要.详细逻辑请找:
SE38:FV45KFAK_VBAK_FUELLEN_VBAKKOM
补充:2016-09-27
模拟创建过去的销售订单的时候,交货单也应该交货在过去,但是出现报错.
认证研究了逻辑发现如下情况
首先 (数据库表TVAK)
1.配置要求
此字段逻辑:
其次 BAPISCHDL 中 有四个字段需要注意 EDATU MBDAT LDDAT WADAT 都要赋值过去时间
这样创建的销售订单vbep 数据 才会没有问题.
交货单选过去日期才会成功!
创建SO bapi的更多相关文章
- F-02 创建财务凭证BAPI
**.获取抬头参数, documentheader **.项目参数 accountgl = lt_acgl"G/L account item accountreceivable = lt_a ...
- [SAP ABAP开发技术总结]业务对象和BAPI
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ABAP BAPI 复制标准项目模板实现项目立项
一.复制标准项目模板实现项目立项 因为CJ20N录屏存在困难,所以想通过BDC实现复制项目模板创建项目立项行不通,因此需要通过BAPI解决. 因为项目立项包含:项目定义.WBS.网络.作业,因此需要分 ...
- 业务对象(BO)设计
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SAP BAPI创建批次 为保存内部对象号
使用BAPI:BAPI_BATCH_CREATE 创建批次时,能够保存成功,但是MCH1表和KSSK表中没有内部对象号. 无奈,查找源码. 最后在BAPI中调用的这个函数这里找到了问题.此处kzcla ...
- 【MM系列】SAP 根据采购订单创建外向交货单的BAPI
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 根据采购订单创建外向交货单的 ...
- 【FICO系列】SAP 创建会计凭证(FB01)的BAPI
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 创建会计凭证(FB01) ...
- 【SD系列】SAP SD模块-创建供应商主数据BAPI
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP SD模块-创建供应商主数据B ...
- SAP S4系统创建Customer和Vendor的BAPI
对应的BAPI是:RFC_CVI_EI_INBOUND_MAIN SAP 又调皮了,又不安常理出牌!
随机推荐
- μC/OS-Ⅲ系统的中断管理
一.典型的μC/OS-Ⅲ中断服务程序解析 μC/OS-Ⅲ系统中典型有内核参与中断服务程序示例如下: MyISR: ...
- Bootstrap <基础二十二>超大屏幕(Jumbotron)
Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...
- java.io.FileNotFoundException: ...\ibs\library-1.0.17.jar (系统找不到指定的文件。)
网上找一下相应的jar包,放到对应的路径下就好了
- C++ TR1 Function Bind
在C++ 11出现以前,C++的事件一般是通过回调形试来实现,如 void (*func)(int,int,int),其实际上是一种函数指针,在C中调用时是直接写函数名在参数列表中,而在C++中,大部 ...
- 用ant组建测试框架
有时候由于公司网络或其它原因,无法采用maven,这时ant是一个比较理想的选择.以下是以ant为例,搭建一个测试框架 项目结构如下图: build.properties代码如下: # The sou ...
- 用PowerMock mock 临时变量
在开发时,经常遇到这种情况,被测试方法所调用的类不是通过构造注入的,而是通过临时new出来的,如下面待测方法: public class EmployeeService { private Emplo ...
- EF实体框架数据操作基类(转)
//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司 ...
- sqlite的ef使用小结
最近有一个小项目,老师推荐我用下sqlite这种轻型的数据库来进行数据的存储.轻型数据库具有其独特之处:方便,不用安装特定的软件就能够实用,关于sqlite的优点我不赘述,网上还是有好多资料的. 但我 ...
- 数据处理之CoreData
一.CoreData数据库框架与Sqlite对比 Sqlite: 1.基于C接口, 需要使用sql语句, 代码繁琐 2.在处理大量数据时, 表关系更直观 3.在OC中不是可视化的 CoreData: ...
- 安装了简易版XP系统后不能安装IIS的解决办法
第一步 找到C:\WINDOWS\inf文件夹中的sysoc.inf文件,在 [Components]区域中的NetOC=netoc.dll,NetOcSetupProc,netoc.inf,,7和c ...