客户计划协议思考过程:
1,首先用swo3查看事物码对应的业务对象BUS2035
2,查找相应的bapi,状态为implemented的,表示表示现版本里已经得的。其余的无法使用
3,对于没有提供bapi的,可以从源程序里参考核心的源程序,对于va01/va02/va21/va22/va31/va32,
对应的源程序都是SAPMV45A,推测内部的核心功能是一样,所以可以测试SD_SALESDOCUMENT_CREATE
SD_SALESDOCUMENT_CHANGE
*&---------------------------------------------------------------------*
*& Report Z_TEST_VA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST_VA.
PARAMETERS:p_creat RADIOBUTTON GROUP g1,
p_update RADIOBUTTON GROUP g1.
data:g_header like BAPISDHD1,
g_headerx like BAPISDHD1x,
it_item like table of BAPISDITM with header line,
it_itemx like table of BAPISDITMX with header line,
it_schedule like table of BAPISCHDL with HEADER LINE,
it_schedulex like table of BAPISCHDLx with header line,
it_retmsg like table of bapiret2 with HEADER LINE,
g_output like BAPISDHD,
it_parter like table of BAPIPARNR with header line.
g_header-DOC_TYPE = 'LP'.
g_header-CT_VALID_F = SY-DATUM.
g_header-CT_VALID_T = SY-DATUM + 15.
g_headerx-DOC_TYPE = 'X'.
g_headerx-CT_VALID_F = 'X'.
if p_creat = 'X'.
g_headerX-UPDATEFLAG = 'I'.
else.
g_headerX-UPDATEFLAG = 'U'.
ENDIF.
g_headerx-CT_VALID_t = 'X'.
it_parter-PARTN_ROLE = 'AG'.
it_parter-PARTN_numb = '0000000002'.
APPEND it_parter.
it_parter-PARTN_ROLE = 'WE'.
it_parter-PARTN_numb = '0000000002'.
APPEND it_parter.
*& 填充项目.
it_item-ITM_NUMBER = '000010'.
it_item-MATERIAL = 'BPT0010'.
it_item-TARGET_QTY = '10'.
append it_item.
it_itemx-ITM_NUMBER = '000010'.
it_itemx-MATERIAL = 'X'.
it_itemx-TARGET_QTY = 'X'.
IF p_creat = 'X'.
it_itemX-UPDATEFLAG = 'I'.
ELSE.
it_itemX-UPDATEFLAG = 'U'.
ENDIF.
append it_itemx.
it_schedule-ITM_NUMBER = '000010'.
it_schedule-SCHED_LINE = '0001'.
it_schedule-REQ_DATE = sy-d