创建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 又调皮了,又不安常理出牌!
随机推荐
- Coding源码学习第四部分(Masonry介绍与使用(三))
接上篇继续进行Masonry 的学习. (12)tableViewCell 布局 #import "TableViewController.h" #import "Tes ...
- sql server2008 r2 密钥
Microsoft SQL Server 2008 R2序列号密钥 数据中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB数据中心版64位:DDT3B-8W62X-P9JD6-8 ...
- java 中的SimpleDateFormat、Date函数以及字符串和Date类型互转
SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本).解析(文本 -> 日期)和规范化. SimpleDateFor ...
- Linux学习 :移植linux-4.7.4到JZ2440开发板
一.编译环境搭建: 1.linux源码下载:https://www.kernel.org/2.安装交叉编译工具链: ①手动下载配置工具链: (1):解压 arm-linux-gcc-3.4.1.tar ...
- windows 开机启动 CassiniDev(IIS替代软件)
CassiniDev(IIS替代软件) 使用asp.net的时候,要部署一个iis,或者部署iis express,有时候你嫌麻烦, 这是一个替代品. 功能完全的. 下载地址:http://cassi ...
- MVC 实体字段自定义验证
[Remote("ActionName", "ControllerName", AdditionalFields = "ID", Error ...
- 《嫌疑人X的献身》书评
<嫌疑人X的献身>是日本著名推理小说作家东野圭吾的代表作之一.1985年东野圭吾以一本<放学后>出道,出道初期善于写精巧细致的本格推理,后期文笔愈发老辣.简练.2005年东野圭 ...
- ThinkPHP(3)SQL查询语句
ThinkPHP中对查询语句,包含了基本的查询方式.表达方式.快速查询.区间查询.组合查询.SQL查询.动态查询和子查询. 一.查询方式 ThinkPHP提供了三种基本的查询方式:字符串条件查询.索引 ...
- 第五篇——C++实现四则运算
写一个能自动生成小学四则运算题目的命令行 “软件”, 分别满足下面的各种需求.下面这些需求都可以用命令行参数的形式来指定: a) 除了整数以外,还要支持真分数的四则运算. (例如: 1/6 + 1/8 ...
- 为什么要学习java?
前面说了什么是java java只是一门语言,中文,英语,c++,c#等等数之不尽的语言 java的应用领域: 1)安卓应用 2)金融业服务器的应用 3)Java Web应用 4)软件工具 5)交易应 ...