转自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的更多相关文章

  1. F-02 创建财务凭证BAPI

    **.获取抬头参数, documentheader **.项目参数 accountgl = lt_acgl"G/L account item accountreceivable = lt_a ...

  2. [SAP ABAP开发技术总结]业务对象和BAPI

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. ABAP BAPI 复制标准项目模板实现项目立项

    一.复制标准项目模板实现项目立项 因为CJ20N录屏存在困难,所以想通过BDC实现复制项目模板创建项目立项行不通,因此需要通过BAPI解决. 因为项目立项包含:项目定义.WBS.网络.作业,因此需要分 ...

  4. 业务对象(BO)设计

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. SAP BAPI创建批次 为保存内部对象号

    使用BAPI:BAPI_BATCH_CREATE 创建批次时,能够保存成功,但是MCH1表和KSSK表中没有内部对象号. 无奈,查找源码. 最后在BAPI中调用的这个函数这里找到了问题.此处kzcla ...

  6. 【MM系列】SAP 根据采购订单创建外向交货单的BAPI

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 根据采购订单创建外向交货单的 ...

  7. 【FICO系列】SAP 创建会计凭证(FB01)的BAPI

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 创建会计凭证(FB01) ...

  8. 【SD系列】SAP SD模块-创建供应商主数据BAPI

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SD系列]SAP SD模块-创建供应商主数据B ...

  9. SAP S4系统创建Customer和Vendor的BAPI

    对应的BAPI是:RFC_CVI_EI_INBOUND_MAIN SAP 又调皮了,又不安常理出牌!

随机推荐

  1. [转]CSS3 Media Query实现响应布局

    讲到响应式布局, 相信大家都有一定的了解,响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果, 设计师提出了响应式布局的设计方案.今 ...

  2. elasticsearch相关文章

    http://blog.csdn.net/laigood12345/article/category/1113868

  3. 使用 VS2005 通过按钮自动上传文件到Linux

    首先去官网下载 winscp,官网地址:http://winscp.net/eng/download.php 因为我这里是做自动上传工具,所以我只下载了精简版的:Portable executable ...

  4. STM32——CAN通讯实现

    CAN通讯的实现步骤: 1.CAN初始化,其中包括:a.配置CAN时钟,配置IO: b.使能CAN中断向量: c.CAN硬件寄存器配置初始化: d.过滤器初始化: e.打开CAN中断. 2.CAN发送 ...

  5. 解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题

    尼玛,好几个月没更新了.囧... 目前我司新的客户端开发已经接近尾声,该改的bug已经改完,该重构的地方也都差不多了.视觉效果也已经根据美工的样式改完了.所以,就差制作安装包了.正所谓万事俱备,只欠东 ...

  6. android:installLocation 解析

    决定了apk安装位置 有三个选项:1.auto 2.internalOnly 3.preferExternal http://www.cnblogs.com/Lefter/archive/2012/0 ...

  7. atexit函数

    使用该函数注册的退出函数是在进程正常退出时,才会被调用.这里强调是进程正常退出,使用exit退出或使用main中最后的return语句退出.但如果是因为收到信号signal而导致程序退出,如kill ...

  8. HeadFirst 设计模式

    一.设计原则 封装变化 多用组合,少用继承 针对接口编程,不针对实现编程 为交互对象之间的松紧耦合设计而努力 对扩展开放,都修稿关闭 依赖抽象,不要依赖具体类 最少知识原则:之和朋友交谈 好莱坞原则: ...

  9. 在VBA中调用excel函数

    以前不太会用VBA时,都是在excel中使用函数来计算一些数据.毕竟函数不如代码,效率比较低.所以,就学着怎么在VBA中引用Excel函数.平时我用得比较多的函数就是countif和sumif函数.1 ...

  10. DOM扩展之 HTML5

    11.3.1 与类相关的扩充 2. classList属性 在操作类名时,需要通过className属性添加,删除和替换类名.因为className是一个字符串,所以即使只修改一部分内容也要设置整个字 ...