创建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 又调皮了,又不安常理出牌!
随机推荐
- Java集合类学习笔记(Map集合)
Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...
- 洛谷 1004 dp或最大费用流
思路: dp方法: 设dp[i][j][k][l]为两条没有交叉的路径分别走到(i,j)和(k,l)处最大价值. 则转移方程为 dp[i][j][k][l]=max(dp[i-1][j][k-1][l ...
- BSS段 data段 text段 堆heap 和 栈stack
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数 ...
- http post和put区别
POST是用来提交数据的.提交的数据放在HTTP请求的正文里,目的在于提交数据并用于服务器端的存储,而不允许用户过多的更改相应数据(主要是相对于在url 修改要麻烦很多).PUT操作是幂等的.所谓幂等 ...
- vs13的内存占用 关闭之
.如何关闭CodeLens呢? 在VS菜单栏 >> 工具 >> 选项 >> 文本编辑器 >> 所有语言 >> CodeLens In VS ...
- iOS 8 TabBar 图片显示真实颜色
“展信颜开” 我怎么想到这个词了呢……因为这个足以表达我现在的心情,有解决了一个问题,有了一个收获. 早上小伙伴问我“用自带的tab改图的颜色他会不显示?改tabitem.”我记得是可以显示的,但是他 ...
- I had lots of shrapnel in my leg
People were running up to us, and screaming and hitting us, and throwing stones and eggs. "They ...
- JS 4 新特性:混合属性(mixins)
Ext JS4的新特征1:混合属性(mixins) 组合是Extjs4的新特性,可用于实现多继承的情况.该属性会以同步方式加载类文件,并实例化该类(译者推理其内部使用Ext.create方法).直接上 ...
- java学习笔记(菜鸟原创)
搭建Java开发环境使用开发工具开发Myeclipse基础核心:JAVASEEEME面向对象 API JVM.JAVAEE是指java enterprise edition,java企业版,多用于企业 ...
- C# winform 安装程序打包(自定义操作)
(一),安装程序 以前用vs制作过安装程序,现在把步骤写出来,有帮助的大家一定要顶哦 第一步:建立工程1.打开vs,新建项目->其他项目类型->安装和部署(這個子项下面有安装项目和Web安 ...