如何处理用代码创建SD Sales order时遇到的错误消息KI 180

Posted sap-jerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理用代码创建SD Sales order时遇到的错误消息KI 180相关的知识,希望对你有一定的参考价值。

错误消息KI 180:You must enter a company code for transaction Create sales document

技术分享图片

代码:

REPORT zcreate_so.


DATA: ls_header   TYPE bapisdhd1,
      ls_headerx  TYPE bapisdhd1x,
      lt_bapiret2 LIKE bapiret2   OCCURS 0 WITH HEADER LINE.


ls_header-serv_date = ‘20200101‘.
ls_header-doc_type = ‘TA‘.

ls_headerx-doc_type = ‘X‘.
ls_headerx-updateflag = ‘U‘.

CALL FUNCTION ‘SD_SALESDOCUMENT_CREATE‘
  EXPORTING
    sales_header_in       = ls_header
    sales_header_inx      = ls_headerx
    int_number_assignment = ‘X‘
  TABLES
    return                = lt_bapiret2.

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

通过调试,发现错误消息是在下面的函数里抛出的:

技术分享图片

技术分享图片

原因:事务码VA03,打开一个已有的Sales Order,Goto->Header->Billing, 查看Company code:

技术分享图片

得知Company code存储于表VBAK的字段BUKRS里。

技术分享图片

解决方案:上述代码加上下面两行,问题即解决:

ls_header-comp_cde_b = ‘0001‘.

ls_headerx-comp_cde_b = ‘X‘.

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

技术分享图片

以上是关于如何处理用代码创建SD Sales order时遇到的错误消息KI 180的主要内容,如果未能解决你的问题,请参考以下文章

如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段

为什么S/4HANA的销售订单创建会触发生产订单的创建

SAP SD的sales BOM如何配置呢?配置路径,注意事项等,求高手解答

oracle使用order by排序null值如何处理

oracle使用order by排序null值如何处理?

python 文件字符串转列表时遇空行的解决办法!