使用ABAP代码创建S/4HANA里的Sales Order

下图是使用ABAP代码创建的S/4HANA的Sales Order的截图:

其中红色区域的值是我代码里硬编码的,而蓝色是函数SD_SALESDOCUMENT_CREATE自己创建的。

来看下代码:

DATA: ls_header       TYPE bapisdhd1,
ls_headerx      TYPE bapisdhd1x,
lt_bapiret2     LIKE bapiret2   OCCURS 0 WITH HEADER LINE,
po_order_number TYPE bapivbeln-vbeln,
lt_partners     TYPE TABLE OF bapiparnr,
ls_partners     LIKE LINE OF lt_partners.


ls_header-serv_date = '20200101'.
ls_header-doc_type = 'TA'. “销售订单的类型

ls_header-comp_cde_b = '0001'. ” 公司代码
ls_headerx-comp_cde_b = 'X'.

ls_headerx-doc_type = 'X'.
ls_headerx-updateflag = 'I'. “ 指定修改模式为I-创建

ls_partners-partn_role = 'WE'. "ship to party
ls_partners-partn_numb = '0000000001'. ”这个客户主数据在数据库表KNA1里必须存在
APPEND ls_partners TO lt_partners.

ls_partners-partn_role = 'AG'. " sold to party
ls_partners-partn_numb = '0000000001'.
APPEND ls_partners TO lt_partners.

“调用BAPI:
CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
EXPORTING
sales_header_in       = ls_header
sales_header_inx      = ls_headerx
int_number_assignment = 'X'
IMPORTING
salesdocument_ex      = po_order_number
TABLES
return                = lt_bapiret2
sales_partners        = lt_partners.

LOOP AT lt_bapiret2 ASSIGNING FIELD-SYMBOL(<return>) WHERE type = 'E'.
WRITE:/ 'Error:', <return>-message COLOR COL_NEGATIVE.
RETURN.
ENDLOOP.

IF po_order_number IS INITIAL.
WRITE:/ 'PO number initial'.
RETURN.
ENDIF.

CLEAR: lt_bapiret2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait   = 'X'
IMPORTING
return = lt_bapiret2.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Oracle 控制文件(CONTROLFILE)

为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份

1162
来自专栏乐沙弥的世界

Linux/Unix shell 监控Oracle监听器(monitor listener)

    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,A...

1484
来自专栏数据和云

诊断案例:从实例挂起到归档失败和内存管理的蝴蝶效应

杨廷琨(yangtingkun) 云和恩墨 CTO 高级咨询顾问,Oracle ACE 总监,ITPUB Oracle 数据库管理版版主 编辑手记:在很多数据...

3179
来自专栏杨建荣的学习笔记

关于dual表的破坏性测试(r3笔记第60天)

关于dual表的破坏性测试,既然是破坏性测试,就需要确定这个测试仅限于测试或者个人学习所用,可能有些sql看似极为简单,但是一旦运行就会导致整个业务系统崩溃。 ...

39813
来自专栏乐沙弥的世界

又一例SPFILE设置错误导致数据库无法启动

--========================================

843
来自专栏cloudskyme

使用oracle的大数据工具ODCH访问HDFS数据文件

软件下载 Oracle Big Data Connectors:ODCH 下载地址: http://www.oracle.com/technetwork/bdc...

3718
来自专栏乐沙弥的世界

使用带dblink方式的datapump迁移Oracle 10g到11g

      对于从Oracle 10g下迁移数据库到Oracle 11g,除了使用RMAN方式之外,我们可以使用带dblink的datapump方式来实现基于逻...

681
来自专栏乐沙弥的世界

ORA-02019 错误处理

       ORA-02019 错误提示是未找到远程数据库的连接说明,通常发生在本地数据库无法连接到远程数据库。引发该问题的原因很多,比如网络连接,连接方式(...

1111
来自专栏杨建荣的学习笔记

关于exp/imp的总结学习(r4笔记第26天)

关于exp/imp,是很常用的数据导出导入工具,在10g开始推出的数据泵datapump相当于是exp/imp的补充和升级版本。在后续章节再做一个总结。 exp...

3077
来自专栏杨建荣的学习笔记

通过shell脚本快速定位active session问题(r4笔记第65天)

如果你得到反馈,数据库突然间性能下降了好多,希望你能够尽快的定位出问题来,有一些思路和方法可以参考。分别从数据库层面,系统层面来定位,但是个人感觉而言还是不够快...

3485

扫码关注云+社区

领取腾讯云代金券