创建销售订单

*&---------------------------------------------------------------------*
*& Report YBO_NOTE01
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YBO_NOTE01.

DATA:
  LS_SALES_HEADER_IN      TYPE BAPISDHD1,
  LS_SALES_HEADER_INX     TYPE BAPISDHD1X,
  LV_SALESDOCUMENT_EX     TYPE BAPIVBELN-VBELN,
  LT_RETURN               TYPE TABLE OF BAPIRET2 WITH HEADER LINE,
  LT_SALES_ITEMS_IN       TYPE TABLE OF BAPISDITM WITH HEADER LINE,
  LT_SALES_ITEMS_INX      TYPE TABLE OF BAPISDITMX WITH HEADER LINE,
  LT_SALES_PARTNERS       TYPE TABLE OF BAPIPARNR WITH HEADER LINE,
  LT_SALES_SCHEDULES_IN   TYPE TABLE OF BAPISCHDL WITH HEADER LINE,
  LT_SALES_SCHEDULES_INX  TYPE TABLE OF BAPISCHDLX WITH HEADER LINE,
  LT_SALES_CONDITIONS_IN  TYPE TABLE OF BAPICOND WITH HEADER LINE,
  LT_SALES_CONDITIONS_INX TYPE TABLE OF BAPICONDX WITH HEADER LINE,
  LT_SALES_TEXT           TYPE TABLE OF BAPISDTEXT,
  LT_PARTNERADDRESSES     TYPE TABLE OF BAPIADDR1
  .

LS_SALES_HEADER_IN-DOC_TYPE    = 'ZOD8'.    " 销售凭证类型
LS_SALES_HEADER_IN-SALES_ORG   = '3000'.    " 销售组织
LS_SALES_HEADER_IN-DISTR_CHAN  = '10'.    " 分销渠道
LS_SALES_HEADER_IN-DIVISION    = '30'.    " 产品组
LS_SALES_HEADER_IN-SALES_GRP   = '809'.    " 销售组
LS_SALES_HEADER_IN-SALES_OFF   = '1000'.    " 销售办事处
LS_SALES_HEADER_IN-PURCH_NO_C  = '20231114104000'.   "客户参考
LS_SALES_HEADER_IN-PURCH_DATE  = '20231114'.   "客户参考日期
LS_SALES_HEADER_IN-PMNTTRMS  = 'Z001'.   " 付款条件


LS_SALES_HEADER_INX-DOC_TYPE    = ABAP_TRUE .
LS_SALES_HEADER_INX-SALES_ORG   = ABAP_TRUE .
LS_SALES_HEADER_INX-DISTR_CHAN  = ABAP_TRUE .
LS_SALES_HEADER_INX-DIVISION    = ABAP_TRUE .
LS_SALES_HEADER_INX-SALES_GRP   = ABAP_TRUE .
LS_SALES_HEADER_INX-SALES_OFF   = ABAP_TRUE .
LS_SALES_HEADER_INX-PURCH_NO_C  = ABAP_TRUE .
LS_SALES_HEADER_INX-PMNTTRMS  = ABAP_TRUE .

LT_SALES_PARTNERS-PARTN_ROLE = 'AG'.
LT_SALES_PARTNERS-PARTN_NUMB = '0000010035'.
APPEND LT_SALES_PARTNERS.
LT_SALES_PARTNERS-PARTN_ROLE = 'WE'.
LT_SALES_PARTNERS-PARTN_NUMB = '0000010035'.
APPEND LT_SALES_PARTNERS.


LT_SALES_ITEMS_IN-ITM_NUMBER = '000010' .
LT_SALES_ITEMS_IN-MATERIAL = '000000008200000267' .
LT_SALES_ITEMS_IN-PLANT = '3000' .
LT_SALES_ITEMS_IN-TARGET_QTY = '1000' .
LT_SALES_ITEMS_IN-SALES_UNIT = 'KG' .
APPEND LT_SALES_ITEMS_IN.
LT_SALES_ITEMS_INX-ITM_NUMBER = '000010' .
LT_SALES_ITEMS_INX-MATERIAL = ABAP_TRUE .
LT_SALES_ITEMS_INX-TARGET_QTY = ABAP_TRUE .
LT_SALES_ITEMS_INX-SALES_UNIT = ABAP_TRUE .
APPEND LT_SALES_ITEMS_INX.

LT_SALES_SCHEDULES_IN-ITM_NUMBER = '000010' .
*LT_SALES_SCHEDULES_IN-SCHED_LINE = '0001' .
LT_SALES_SCHEDULES_IN-REQ_DATE = SY-DATUM .
LT_SALES_SCHEDULES_IN-REQ_QTY = '1000' .
APPEND LT_SALES_SCHEDULES_IN.
LT_SALES_SCHEDULES_INX-ITM_NUMBER = '000010' .
*LT_SALES_SCHEDULES_INX-SCHED_LINE = '0001' .
LT_SALES_SCHEDULES_INX-REQ_DATE = ABAP_TRUE .
LT_SALES_SCHEDULES_INX-REQ_QTY = ABAP_TRUE .
APPEND LT_SALES_SCHEDULES_INX.

LT_SALES_CONDITIONS_IN-ITM_NUMBER = '000010' .
*LT_SALES_CONDITIONS_IN-COND_ST_NO = '010' .
*LT_SALES_CONDITIONS_IN-COND_COUNT = '01'.
LT_SALES_CONDITIONS_IN-COND_TYPE = 'ZFN0'.
LT_SALES_CONDITIONS_IN-COND_VALUE = '30' .
LT_SALES_CONDITIONS_IN-CURRENCY = 'CNY' .
APPEND LT_SALES_CONDITIONS_IN.
LT_SALES_CONDITIONS_INX-ITM_NUMBER = '000010' .
*LT_SALES_CONDITIONS_IN-COND_ST_NO = '010' .
*LT_SALES_CONDITIONS_IN-COND_COUNT = '01'.
LT_SALES_CONDITIONS_INX-COND_TYPE = ABAP_TRUE .
LT_SALES_CONDITIONS_INX-COND_VALUE = ABAP_TRUE .
LT_SALES_CONDITIONS_INX-CURRENCY = ABAP_TRUE .
APPEND LT_SALES_CONDITIONS_INX.



CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
  EXPORTING
*   SALESDOCUMENT        =
    SALES_HEADER_IN      = LS_SALES_HEADER_IN
    SALES_HEADER_INX     = LS_SALES_HEADER_INX
*   SENDER               =
*   BINARY_RELATIONSHIPTYPE       = ' '
*   INT_NUMBER_ASSIGNMENT         = ' '
*   BEHAVE_WHEN_ERROR    = ' '
*   LOGIC_SWITCH         = ' '
*   BUSINESS_OBJECT      = ' '
*   TESTRUN              =
    CONVERT_PARVW_AUART  = ABAP_TRUE
*   STATUS_BUFFER_REFRESH         = 'X'
*   CALL_ACTIVE          = ' '
*   I_WITHOUT_INIT       = ' '
*   I_REFRESH_V45I       = 'X'
  IMPORTING
    SALESDOCUMENT_EX     = LV_SALESDOCUMENT_EX
*   SALES_HEADER_OUT     =
*   SALES_HEADER_STATUS  =
  TABLES
    RETURN               = LT_RETURN
    SALES_ITEMS_IN       = LT_SALES_ITEMS_IN
    SALES_ITEMS_INX      = LT_SALES_ITEMS_INX
    SALES_PARTNERS       = LT_SALES_PARTNERS
    SALES_SCHEDULES_IN   = LT_SALES_SCHEDULES_IN
    SALES_SCHEDULES_INX  = LT_SALES_SCHEDULES_INX
    SALES_CONDITIONS_IN  = LT_SALES_CONDITIONS_IN
    SALES_CONDITIONS_INX = LT_SALES_CONDITIONS_INX
*   SALES_CFGS_REF       =
*   SALES_CFGS_INST      =
*   SALES_CFGS_PART_OF   =
*   SALES_CFGS_VALUE     =
*   SALES_CFGS_BLOB      =
*   SALES_CFGS_VK        =
*   SALES_CFGS_REFINST   =
*   SALES_CCARD          =
    SALES_TEXT           = LT_SALES_TEXT
*   SALES_KEYS           =
*   SALES_CONTRACT_IN    =
*   SALES_CONTRACT_INX   =
*   EXTENSIONIN          =
    PARTNERADDRESSES     = LT_PARTNERADDRESSES
*   SALES_SCHED_CONF_IN  =
*   ITEMS_EX             =
*   SCHEDULE_EX          =
*   BUSINESS_EX          =
*   INCOMPLETE_LOG       =
*   EXTENSIONEX          =
*   CONDITIONS_EX        =
*   PARTNERS_EX          =
*   TEXTHEADERS_EX       =
*   TEXTLINES_EX         =
*   BATCH_CHARC          =
*   CAMPAIGN_ASGN        =
  .

IF LV_SALESDOCUMENT_EX IS NOT INITIAL.
  WRITE: LV_SALESDOCUMENT_EX.
ENDIF.
COMMIT WORK AND WAIT .

LOOP AT LT_RETURN.
  WRITE: / , LT_RETURN-MESSAGE .
ENDLOOP.

 

posted @ 2024-05-17 10:40  BoyBo  阅读(23)  评论(0)    收藏  举报