如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

i042416發表於2018-10-30

錯誤訊息KI 180:You must enter a company code for transaction Create sales document

如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

程式碼:

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.

透過除錯,發現錯誤訊息是在下面的函式里丟擲的:

如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

原因:事務碼VA03,開啟一個已有的Sales Order,Goto->Header->Billing, 檢視Company code:

如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

得知Company code儲存於表VBAK的欄位BUKRS裡。

如何處理用程式碼建立SD Sales order時遇到的錯誤訊息KI 180

解決方案:上述程式碼加上下面兩行,問題即解決:

ls_header-comp_cde_b = '0001'.
ls_headerx-comp_cde_b = 'X'.

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2218029/,如需轉載,請註明出處,否則將追究法律責任。

相關文章