创建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 又调皮了,又不安常理出牌!
随机推荐
- [转]CSS3 Media Query实现响应布局
讲到响应式布局, 相信大家都有一定的了解,响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果, 设计师提出了响应式布局的设计方案.今 ...
- elasticsearch相关文章
http://blog.csdn.net/laigood12345/article/category/1113868
- 使用 VS2005 通过按钮自动上传文件到Linux
首先去官网下载 winscp,官网地址:http://winscp.net/eng/download.php 因为我这里是做自动上传工具,所以我只下载了精简版的:Portable executable ...
- STM32——CAN通讯实现
CAN通讯的实现步骤: 1.CAN初始化,其中包括:a.配置CAN时钟,配置IO: b.使能CAN中断向量: c.CAN硬件寄存器配置初始化: d.过滤器初始化: e.打开CAN中断. 2.CAN发送 ...
- 解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题
尼玛,好几个月没更新了.囧... 目前我司新的客户端开发已经接近尾声,该改的bug已经改完,该重构的地方也都差不多了.视觉效果也已经根据美工的样式改完了.所以,就差制作安装包了.正所谓万事俱备,只欠东 ...
- android:installLocation 解析
决定了apk安装位置 有三个选项:1.auto 2.internalOnly 3.preferExternal http://www.cnblogs.com/Lefter/archive/2012/0 ...
- atexit函数
使用该函数注册的退出函数是在进程正常退出时,才会被调用.这里强调是进程正常退出,使用exit退出或使用main中最后的return语句退出.但如果是因为收到信号signal而导致程序退出,如kill ...
- HeadFirst 设计模式
一.设计原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松紧耦合设计而努力 对扩展开放,都修稿关闭 依赖抽象,不要依赖具体类 最少知识原则:之和朋友交谈 好莱坞原则: ...
- 在VBA中调用excel函数
以前不太会用VBA时,都是在excel中使用函数来计算一些数据.毕竟函数不如代码,效率比较低.所以,就学着怎么在VBA中引用Excel函数.平时我用得比较多的函数就是countif和sumif函数.1 ...
- DOM扩展之 HTML5
11.3.1 与类相关的扩充 2. classList属性 在操作类名时,需要通过className属性添加,删除和替换类名.因为className是一个字符串,所以即使只修改一部分内容也要设置整个字 ...