您的位置:首页 > 其它

业务对象销售订单

2013-05-28 14:51 573 查看
FUNCTION BAPI_SALESORDER_CHANGE.

*"----------------------------------------------------------------------

*"*"Lokale Schnittstelle:

*" IMPORTING

*" VALUE(SALESDOCUMENT) LIKE BAPIVBELN-VBELN

*" VALUE(ORDER_HEADER_IN) LIKE BAPISDH1 STRUCTURE BAPISDH1

*" OPTIONAL

*" VALUE(ORDER_HEADER_INX) LIKE BAPISDH1X STRUCTURE BAPISDH1X

*" VALUE(SIMULATION) LIKE BAPIFLAG-BAPIFLAG OPTIONAL

*" VALUE(BEH***E_WHEN_ERROR) LIKE BAPIFLAG-BAPIFLAG DEFAULT SPACE

*" VALUE(INT_NUMBER_ASSIGNMENT) LIKE BAPIFLAG-BAPIFLAG DEFAULT

*" SPACE

*" VALUE(LOGIC_SWITCH) LIKE BAPISDLS STRUCTURE BAPISDLS OPTIONAL

*" VALUE(NO_STATUS_BUF_INIT) LIKE BAPIFLAG-BAPIFLAG DEFAULT SPACE

*" TABLES

*" RETURN STRUCTURE BAPIRET2

*" ORDER_ITEM_IN STRUCTURE BAPISDITM OPTIONAL

*" ORDER_ITEM_INX STRUCTURE BAPISDITMX OPTIONAL

*" PARTNERS STRUCTURE BAPIPARNR OPTIONAL

*" PARTNERCHANGES STRUCTURE BAPIPARNRC OPTIONAL

*" PARTNERADDRESSES STRUCTURE BAPIADDR1 OPTIONAL

*" ORDER_CFGS_REF STRUCTURE BAPICUCFG OPTIONAL

*" ORDER_CFGS_INST STRUCTURE BAPICUINS OPTIONAL

*" ORDER_CFGS_PART_OF STRUCTURE BAPICUPRT OPTIONAL

*" ORDER_CFGS_VALUE STRUCTURE BAPICUVAL OPTIONAL

*" ORDER_CFGS_BLOB STRUCTURE BAPICUBLB OPTIONAL

*" ORDER_CFGS_VK STRUCTURE BAPICUVK OPTIONAL

*" ORDER_CFGS_REFINST STRUCTURE BAPICUREF OPTIONAL

*" SCHEDULE_LINES STRUCTURE BAPISCHDL OPTIONAL

*" SCHEDULE_LINESX STRUCTURE BAPISCHDLX OPTIONAL

*" ORDER_TEXT STRUCTURE BAPISDTEXT OPTIONAL

*" ORDER_KEYS STRUCTURE BAPISDKEY OPTIONAL

*" CONDITIONS_IN STRUCTURE BAPICOND OPTIONAL

*" CONDITIONS_INX STRUCTURE BAPICONDX OPTIONAL

*" EXTENSIONIN STRUCTURE BAPIPAREX OPTIONAL

*"----------------------------------------------------------------------

ENHANCEMENT-POINT BAPI_SALESORDER_CHANGE_G8 SPOTS ES_SAPL2032 STATIC.

*$*$-Start: BAPI_SALESORDER_CHANGE_G8-----------------------------------------------------------$*$*

ENHANCEMENT 18 MGV_GENERATED_SAPL2032. "active version

DATA: T_MGV_FNAMES1 LIKE MGVBAPIFNAMES OCCURS 0 WITH HEADER LINE.

FIELD-SYMBOLS: <MGV_ORDER_ITEM_INX> TYPE BAPISDITMX.

ENDENHANCEMENT.

*$*$-End: BAPI_SALESORDER_CHANGE_G8-----------------------------------------------------------$*$*

ENHANCEMENT-POINT BAPI_SALESORDER_CHANGE_G6 SPOTS ES_SAPL2032.

*$*$-Start: BAPI_SALESORDER_CHANGE_G6-----------------------------------------------------------$*$*

ENHANCEMENT 16 MGV_GENERATED_SAPL2032. "active version

*{BAPI Begin} generation http://intranet.sap.com/materialversion
*Do not change coding between begin and end comments. ANI 20050331

T_MGV_FNAMES1-INT = 'PR_REF_MAT'.

T_MGV_FNAMES1-EXT = 'P_MAT_EXT'.

T_MGV_FNAMES1-VERS = 'P_MAT_VERS'.

T_MGV_FNAMES1-GUID = 'P_MAT_GUID'.

APPEND T_MGV_FNAMES1.

T_MGV_FNAMES1-INT = 'MAT_ENTRD'.

T_MGV_FNAMES1-EXT = 'MAT_ENTRD_EXTERNAL'.

T_MGV_FNAMES1-VERS = 'MAT_ENTRD_VERSION'.

T_MGV_FNAMES1-GUID = 'MAT_ENTRD_GUID'.

APPEND T_MGV_FNAMES1.

T_MGV_FNAMES1-INT = 'MATERIAL'.

T_MGV_FNAMES1-EXT = 'MAT_EXT'.

T_MGV_FNAMES1-VERS = 'MAT_VERS'.

T_MGV_FNAMES1-GUID = 'MAT_GUID'.

APPEND T_MGV_FNAMES1.

CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'

EXPORTING

INT_TO_EXTERNAL = ' '

TABLES

T_FNAMES = T_MGV_FNAMES1

T_MATNR = ORDER_ITEM_IN

.

LOOP AT ORDER_ITEM_INX ASSIGNING <MGV_ORDER_ITEM_INX>

WHERE NOT ( P_MAT_EXT IS INITIAL AND

P_MAT_VERS IS INITIAL AND

P_MAT_GUID IS INITIAL ).

<MGV_ORDER_ITEM_INX>-PR_REF_MAT = 'X'.

ENDLOOP.

LOOP AT ORDER_ITEM_INX ASSIGNING <MGV_ORDER_ITEM_INX>

WHERE NOT ( MAT_ENTRD_EXTERNAL IS INITIAL AND

MAT_ENTRD_VERSION IS INITIAL AND

MAT_ENTRD_GUID IS INITIAL ).

<MGV_ORDER_ITEM_INX>-MAT_ENTRD = 'X'.

ENDLOOP.

LOOP AT ORDER_ITEM_INX ASSIGNING <MGV_ORDER_ITEM_INX>

WHERE NOT ( MAT_EXT IS INITIAL AND

MAT_VERS IS INITIAL AND

MAT_GUID IS INITIAL ).

<MGV_ORDER_ITEM_INX>-MATERIAL = 'X'.

ENDLOOP.

*{BAPI End} generation

ENDENHANCEMENT.

*$*$-End: BAPI_SALESORDER_CHANGE_G6-----------------------------------------------------------$*$*

* generate data record

fbgenmac 'BAPI_SALESORDER_CHANGE'.

DATA: BEGIN OF DA_ORDER_HEADER_IN.

INCLUDE STRUCTURE BAPISDHD1.

DATA: END OF DA_ORDER_HEADER_IN.

DATA: BEGIN OF DA_ORDER_HEADER_INX.

INCLUDE STRUCTURE BAPISDHD1X.

DATA: END OF DA_ORDER_HEADER_INX.

DATA: BEGIN OF DA_ORDER_ITEM_IN OCCURS 10.

INCLUDE STRUCTURE BAPISDITM.

DATA: END OF DA_ORDER_ITEM_IN.

DATA: BEGIN OF DA_ORDER_ITEM_INX OCCURS 10.

INCLUDE STRUCTURE BAPISDITMX.

DATA: END OF DA_ORDER_ITEM_INX.

REFRESH: DA_ORDER_ITEM_IN,

DA_ORDER_ITEM_INX,

RETURN.

CLEAR : DA_ORDER_HEADER_IN,

DA_ORDER_HEADER_INX,

DA_ORDER_ITEM_IN,

DA_ORDER_ITEM_INX,

RETURN.

* 00. BAPIs run without dialog, set the flag

CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.

ENHANCEMENT-SECTION BAPI_SALES_ORDER_CHANGE_02 SPOTS ES_SAPL2032.

* 1. Convert to BAPI structure head

MOVE-CORRESPONDING ORDER_HEADER_IN TO DA_ORDER_HEADER_IN.

MOVE-CORRESPONDING ORDER_HEADER_INX TO DA_ORDER_HEADER_INX.

* 2. Convert to BAPI structure item

LOOP AT ORDER_ITEM_IN.

MOVE-CORRESPONDING ORDER_ITEM_IN TO DA_ORDER_ITEM_IN.

APPEND DA_ORDER_ITEM_IN.

ENDLOOP.

LOOP AT ORDER_ITEM_INX.

MOVE-CORRESPONDING ORDER_ITEM_INX TO DA_ORDER_ITEM_INX.

APPEND DA_ORDER_ITEM_INX.

ENDLOOP.

* 2. CALL the FB

CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE'

EXPORTING

SALESDOCUMENT = SALESDOCUMENT

ORDER_HEADER_IN = DA_ORDER_HEADER_IN

ORDER_HEADER_INX = DA_ORDER_HEADER_INX

SIMULATION = SIMULATION

BEH***E_WHEN_ERROR = BEH***E_WHEN_ERROR

INT_NUMBER_ASSIGNMENT = INT_NUMBER_ASSIGNMENT

logic_switch = logic_switch

BUSINESS_OBJECT = 'BUS2032'

CALL_FROM_BAPI = 'X'

no_status_buf_init = no_status_buf_init

TABLES

RETURN = RETURN

ITEM_IN = DA_ORDER_ITEM_IN

ITEM_INX = DA_ORDER_ITEM_INX

SCHEDULE_IN = SCHEDULE_LINES

SCHEDULE_INX = SCHEDULE_LINESX

partners = partners

partnerchanges = partnerchanges

partneraddresses = partneraddresses

CONDITIONS_IN = CONDITIONS_IN

CONDITIONS_INX = CONDITIONS_INX

SALES_CFGS_REF = ORDER_CFGS_REF

SALES_CFGS_INST = ORDER_CFGS_INST

SALES_CFGS_PART_OF = ORDER_CFGS_PART_OF

SALES_CFGS_VALUE = ORDER_CFGS_VALUE

SALES_CFGS_BLOB = ORDER_CFGS_BLOB

sales_cfgs_vk = order_cfgs_vk

sales_cfgs_refinst = order_cfgs_refinst

SALES_TEXT = ORDER_TEXT

SALES_KEYS = ORDER_KEYS

EXTENSIONIN = EXTENSIONIN.

END-ENHANCEMENT-SECTION.

*$*$-Start: BAPI_SALES_ORDER_CHANGE_02----------------------------------------------------------$*$*

ENHANCEMENT 3 /NFM/SD_BAPI_SALES_ORDER_01. "active version

* /NFM/ processing - C5007732

call function '/NFM/CA_BAPI_TRANSFER_DOCITM'

exporting

im_doc_type_nfm = 'A'

im_documentin = salesdocument

im_simulation = simulation

tables

t_nfmetallitms = nfmetallitms

t_return = return.

* check if error occurred

loop at return transporting no fields

where type = 'E' or

type = 'A'.

exit.

endloop.

if sy-subrc <> 0.

* 1. Convert to BAPI structure head

MOVE-CORRESPONDING ORDER_HEADER_IN TO DA_ORDER_HEADER_IN.

MOVE-CORRESPONDING ORDER_HEADER_INX TO DA_ORDER_HEADER_INX.

* 2. Convert to BAPI structure item

LOOP AT ORDER_ITEM_IN.

MOVE-CORRESPONDING ORDER_ITEM_IN TO DA_ORDER_ITEM_IN.

APPEND DA_ORDER_ITEM_IN.

ENDLOOP.

LOOP AT ORDER_ITEM_INX.

MOVE-CORRESPONDING ORDER_ITEM_INX TO DA_ORDER_ITEM_INX.

APPEND DA_ORDER_ITEM_INX.

ENDLOOP.

* 2. CALL the FB

CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE'

EXPORTING

SALESDOCUMENT = SALESDOCUMENT

ORDER_HEADER_IN = DA_ORDER_HEADER_IN

ORDER_HEADER_INX = DA_ORDER_HEADER_INX

SIMULATION = SIMULATION

BEH***E_WHEN_ERROR = BEH***E_WHEN_ERROR

INT_NUMBER_ASSIGNMENT = INT_NUMBER_ASSIGNMENT

logic_switch = logic_switch

BUSINESS_OBJECT = 'BUS2032'

CALL_FROM_BAPI = 'X'

TABLES

RETURN = RETURN

ITEM_IN = DA_ORDER_ITEM_IN

ITEM_INX = DA_ORDER_ITEM_INX

SCHEDULE_IN = SCHEDULE_LINES

SCHEDULE_INX = SCHEDULE_LINESX

partners = partners

partnerchanges = partnerchanges

partneraddresses = partneraddresses

CONDITIONS_IN = CONDITIONS_IN

CONDITIONS_INX = CONDITIONS_INX

SALES_CFGS_REF = ORDER_CFGS_REF

SALES_CFGS_INST = ORDER_CFGS_INST

SALES_CFGS_PART_OF = ORDER_CFGS_PART_OF

SALES_CFGS_VALUE = ORDER_CFGS_VALUE

SALES_CFGS_BLOB = ORDER_CFGS_BLOB

sales_cfgs_vk = order_cfgs_vk

sales_cfgs_refinst = order_cfgs_refinst

SALES_TEXT = ORDER_TEXT

SALES_KEYS = ORDER_KEYS

EXTENSIONIN = EXTENSIONIN.

* /NFM/ processing - C5007732

call function '/NFM/CA_BAPI_DOCITM_GET'

tables

t_nfmetallitms = nfmetallitms.

endif. "sy-subrc <> 0.

ENDENHANCEMENT.

*$*$-End: BAPI_SALES_ORDER_CHANGE_02----------------------------------------------------------$*$*

* reset / initialize the dialogflag

CALL FUNCTION 'DIALOG_SET_WITH_DIALOG'.

ENHANCEMENT-POINT BAPI_SALESORDER_CHANGE_G7 SPOTS ES_SAPL2032.

*$*$-Start: BAPI_SALESORDER_CHANGE_G7-----------------------------------------------------------$*$*

ENHANCEMENT 17 MGV_GENERATED_SAPL2032. "active version

*{BAPI Begin} generation http://intranet.sap.com/materialversion
CALL FUNCTION 'MATNR_BAPI_TABLES_CONVERSION'

EXPORTING

INT_TO_EXTERNAL = 'X'

TABLES

T_FNAMES = T_MGV_FNAMES1

T_MATNR = ORDER_ITEM_IN

.

*{BAPI End} generation

ENDENHANCEMENT.

*$*$-End: BAPI_SALESORDER_CHANGE_G7-----------------------------------------------------------$*$*

ENDFUNCTION.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: