SAP PROMOTION_UPDATE Function Module for Change Promotion
PROMOTION_UPDATE is a standard promotion update SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Change Promotion processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for promotion update FM, simply by entering the name PROMOTION_UPDATE into the relevant SAP transaction such as SE37 or SE38.
Function Group: WAK1
Program Name: SAPLWAK1
Main Program: SAPLWAK1
Appliation area: W
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update: 1

Function PROMOTION_UPDATE pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'PROMOTION_UPDATE'"Change Promotion.
EXPORTING
FXWAKHD = "
* F_DB_WAKH = "
FXWAFLGBEARB = "
* F_ITEMS_MAINTAIN = "
TABLES
* FDWAGUD = "
* FXWAZBD = "
* FXWAZTD = "
* FXWAZWD = "
* FDWSOHD = "
* FXWSOHD = "
* FDWSOPD = "
* FXWSOPD = "
* FDWSOTD = "
* FXWSOTD = "
* FDWALED = "
* FDWAKPD = "
* FXWALED = "
* FDWLBMD = "
* FXWLBMD = "
* FXWWMID = "Product Catalog
* FDWWMID = "Product Catalog
* FXWWMITD = "
* FDWWMITD = "
* FXWLMTD = "
* FDWLMTD = "
* FXWWMVD = "Prod. cat. variant
* FDWAKTD = "
* FDWWMVD = "Prod. cat. variant
* FXWWVTD = "
* FDWWVTD = "
* FXWAKCD = "
* FDWAKCD = "
* FXWAKRD = "
* FDWAKRD = "
* FXWAKRWD = "Promotion Discounts by Plant
* F_DB_WAKP = "
* F_DB_WAZT = "
* FDWAZBD = "
* F_DB_WAKT = "
* F_DB_WAGU = "
* F_DB_WAZW = "
* F_DB_WAZB = "
* F_DB_WAKC = "
* F_DB_WAKR = "Promotion Discounts
* FDWAZTD = "
* FDWAZWD = "
* FXWAGUD = "
* FXWAKPD = "
* FXWAKTD = "
EXCEPTIONS
PROMOTION_NOT_FOUND = 1 NEW_TIME_RANGE_POS_TOO_LONG = 10 NEW_TIME_RANGE_POS_TOO_SMALL = 11 WALE_INSERT_ERROR = 12 WALE_UPDATE_ERROR = 13 ALLOCATION_TABLE_ERROR = 14 ASSORTMENT_HEAD_ALREADY_EXISTS = 2 ASSORTMENT_HEAD_NOT_FOUND = 3 NEW_TIME_RANGE_TOO_LONG = 4 NEW_TIME_RANGE_TOO_SMALL = 5 WRONG_FUNCTION = 6 RANGEMODULE_NUMBER_CONFLICT = 7 ASSORTMENT_POS_ALREADY_EXISTS = 8 ASSORTMENT_POS_NOT_FOUND = 9
IMPORTING Parameters details for PROMOTION_UPDATE
FXWAKHD -
Data type: WAKHDOptional: No
Call by Reference: No ( called with pass by value option)
F_DB_WAKH -
Data type: WAKHOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAFLGBEARB -
Data type: WAFLGBEARBOptional: No
Call by Reference: No ( called with pass by value option)
F_ITEMS_MAINTAIN -
Data type: SY-MARKYOptional: Yes
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for PROMOTION_UPDATE
FDWAGUD -
Data type: WAGUDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAZBD -
Data type: WAZBDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAZTD -
Data type: WAZTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAZWD -
Data type: WAZWDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWSOHD -
Data type: WSOHDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWSOHD -
Data type: WSOHDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWSOPD -
Data type: WSOPDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWSOPD -
Data type: WSOPDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWSOTD -
Data type: WSOTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWSOTD -
Data type: WSOTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWALED -
Data type: WALEDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWAKPD -
Data type: WAKPDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWALED -
Data type: WALEDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWLBMD -
Data type: WLBMDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWLBMD -
Data type: WLBMDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWWMID - Product Catalog
Data type: WWMIDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWWMID - Product Catalog
Data type: WWMIDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWWMITD -
Data type: WWMITDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWWMITD -
Data type: WWMITDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWLMTD -
Data type: WLMTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWLMTD -
Data type: WLMTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWWMVD - Prod. cat. variant
Data type: WWMVDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWAKTD -
Data type: WAKTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWWMVD - Prod. cat. variant
Data type: WWMVDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWWVTD -
Data type: WWVTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWWVTD -
Data type: WWVTDOptional: Yes
Call by Reference: Yes
FXWAKCD -
Data type: WAKCDOptional: Yes
Call by Reference: Yes
FDWAKCD -
Data type: WAKCDOptional: Yes
Call by Reference: Yes
FXWAKRD -
Data type: WAKRDOptional: Yes
Call by Reference: Yes
FDWAKRD -
Data type: WAKRDOptional: Yes
Call by Reference: Yes
FXWAKRWD - Promotion Discounts by Plant
Data type: WAKRWDOptional: Yes
Call by Reference: Yes
F_DB_WAKP -
Data type: WAKPOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAZT -
Data type: WAZTOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWAZBD -
Data type: WAZBDOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAKT -
Data type: WAKTOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAGU -
Data type: WAGUOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAZW -
Data type: WAZWOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAZB -
Data type: WAZBOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAKC -
Data type: WAKCOptional: Yes
Call by Reference: No ( called with pass by value option)
F_DB_WAKR - Promotion Discounts
Data type: WAKROptional: Yes
Call by Reference: Yes
FDWAZTD -
Data type: WAZTDOptional: Yes
Call by Reference: No ( called with pass by value option)
FDWAZWD -
Data type: WAZWDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAGUD -
Data type: WAGUDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAKPD -
Data type: WAKPDOptional: Yes
Call by Reference: No ( called with pass by value option)
FXWAKTD -
Data type: WAKTDOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
PROMOTION_NOT_FOUND -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NEW_TIME_RANGE_POS_TOO_LONG -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NEW_TIME_RANGE_POS_TOO_SMALL -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
WALE_INSERT_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
WALE_UPDATE_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ALLOCATION_TABLE_ERROR -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ASSORTMENT_HEAD_ALREADY_EXISTS -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ASSORTMENT_HEAD_NOT_FOUND -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NEW_TIME_RANGE_TOO_LONG -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NEW_TIME_RANGE_TOO_SMALL -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
WRONG_FUNCTION -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
RANGEMODULE_NUMBER_CONFLICT -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ASSORTMENT_POS_ALREADY_EXISTS -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
ASSORTMENT_POS_NOT_FOUND -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for PROMOTION_UPDATE Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lt_fdwagud | TYPE STANDARD TABLE OF WAGUD, " | |||
| lv_fxwakhd | TYPE WAKHD, " | |||
| lv_promotion_not_found | TYPE WAKHD, " | |||
| lt_fxwazbd | TYPE STANDARD TABLE OF WAZBD, " | |||
| lv_new_time_range_pos_too_long | TYPE WAZBD, " | |||
| lt_fxwaztd | TYPE STANDARD TABLE OF WAZTD, " | |||
| lv_new_time_range_pos_too_small | TYPE WAZTD, " | |||
| lt_fxwazwd | TYPE STANDARD TABLE OF WAZWD, " | |||
| lv_wale_insert_error | TYPE WAZWD, " | |||
| lt_fdwsohd | TYPE STANDARD TABLE OF WSOHD, " | |||
| lv_wale_update_error | TYPE WSOHD, " | |||
| lt_fxwsohd | TYPE STANDARD TABLE OF WSOHD, " | |||
| lv_allocation_table_error | TYPE WSOHD, " | |||
| lt_fdwsopd | TYPE STANDARD TABLE OF WSOPD, " | |||
| lt_fxwsopd | TYPE STANDARD TABLE OF WSOPD, " | |||
| lt_fdwsotd | TYPE STANDARD TABLE OF WSOTD, " | |||
| lt_fxwsotd | TYPE STANDARD TABLE OF WSOTD, " | |||
| lt_fdwaled | TYPE STANDARD TABLE OF WALED, " | |||
| lt_fdwakpd | TYPE STANDARD TABLE OF WAKPD, " | |||
| lv_f_db_wakh | TYPE WAKH, " | |||
| lv_assortment_head_already_exists | TYPE WAKH, " | |||
| lt_fxwaled | TYPE STANDARD TABLE OF WALED, " | |||
| lt_fdwlbmd | TYPE STANDARD TABLE OF WLBMD, " | |||
| lt_fxwlbmd | TYPE STANDARD TABLE OF WLBMD, " | |||
| lt_fxwwmid | TYPE STANDARD TABLE OF WWMID, " | |||
| lt_fdwwmid | TYPE STANDARD TABLE OF WWMID, " | |||
| lt_fxwwmitd | TYPE STANDARD TABLE OF WWMITD, " | |||
| lt_fdwwmitd | TYPE STANDARD TABLE OF WWMITD, " | |||
| lt_fxwlmtd | TYPE STANDARD TABLE OF WLMTD, " | |||
| lt_fdwlmtd | TYPE STANDARD TABLE OF WLMTD, " | |||
| lt_fxwwmvd | TYPE STANDARD TABLE OF WWMVD, " | |||
| lt_fdwaktd | TYPE STANDARD TABLE OF WAKTD, " | |||
| lv_fxwaflgbearb | TYPE WAFLGBEARB, " | |||
| lv_assortment_head_not_found | TYPE WAFLGBEARB, " | |||
| lt_fdwwmvd | TYPE STANDARD TABLE OF WWMVD, " | |||
| lt_fxwwvtd | TYPE STANDARD TABLE OF WWVTD, " | |||
| lt_fdwwvtd | TYPE STANDARD TABLE OF WWVTD, " | |||
| lt_fxwakcd | TYPE STANDARD TABLE OF WAKCD, " | |||
| lt_fdwakcd | TYPE STANDARD TABLE OF WAKCD, " | |||
| lt_fxwakrd | TYPE STANDARD TABLE OF WAKRD, " | |||
| lt_fdwakrd | TYPE STANDARD TABLE OF WAKRD, " | |||
| lt_fxwakrwd | TYPE STANDARD TABLE OF WAKRWD, " | |||
| lt_f_db_wakp | TYPE STANDARD TABLE OF WAKP, " | |||
| lt_f_db_wazt | TYPE STANDARD TABLE OF WAZT, " | |||
| lt_fdwazbd | TYPE STANDARD TABLE OF WAZBD, " | |||
| lv_f_items_maintain | TYPE SY-MARKY, " | |||
| lv_new_time_range_too_long | TYPE SY, " | |||
| lt_f_db_wakt | TYPE STANDARD TABLE OF WAKT, " | |||
| lt_f_db_wagu | TYPE STANDARD TABLE OF WAGU, " | |||
| lt_f_db_wazw | TYPE STANDARD TABLE OF WAZW, " | |||
| lt_f_db_wazb | TYPE STANDARD TABLE OF WAZB, " | |||
| lt_f_db_wakc | TYPE STANDARD TABLE OF WAKC, " | |||
| lt_f_db_wakr | TYPE STANDARD TABLE OF WAKR, " | |||
| lt_fdwaztd | TYPE STANDARD TABLE OF WAZTD, " | |||
| lv_new_time_range_too_small | TYPE WAZTD, " | |||
| lt_fdwazwd | TYPE STANDARD TABLE OF WAZWD, " | |||
| lv_wrong_function | TYPE WAZWD, " | |||
| lt_fxwagud | TYPE STANDARD TABLE OF WAGUD, " | |||
| lv_rangemodule_number_conflict | TYPE WAGUD, " | |||
| lt_fxwakpd | TYPE STANDARD TABLE OF WAKPD, " | |||
| lv_assortment_pos_already_exists | TYPE WAKPD, " | |||
| lt_fxwaktd | TYPE STANDARD TABLE OF WAKTD, " | |||
| lv_assortment_pos_not_found | TYPE WAKTD. " |
|   CALL FUNCTION 'PROMOTION_UPDATE' "Change Promotion |
| EXPORTING | ||
| FXWAKHD | = lv_fxwakhd | |
| F_DB_WAKH | = lv_f_db_wakh | |
| FXWAFLGBEARB | = lv_fxwaflgbearb | |
| F_ITEMS_MAINTAIN | = lv_f_items_maintain | |
| TABLES | ||
| FDWAGUD | = lt_fdwagud | |
| FXWAZBD | = lt_fxwazbd | |
| FXWAZTD | = lt_fxwaztd | |
| FXWAZWD | = lt_fxwazwd | |
| FDWSOHD | = lt_fdwsohd | |
| FXWSOHD | = lt_fxwsohd | |
| FDWSOPD | = lt_fdwsopd | |
| FXWSOPD | = lt_fxwsopd | |
| FDWSOTD | = lt_fdwsotd | |
| FXWSOTD | = lt_fxwsotd | |
| FDWALED | = lt_fdwaled | |
| FDWAKPD | = lt_fdwakpd | |
| FXWALED | = lt_fxwaled | |
| FDWLBMD | = lt_fdwlbmd | |
| FXWLBMD | = lt_fxwlbmd | |
| FXWWMID | = lt_fxwwmid | |
| FDWWMID | = lt_fdwwmid | |
| FXWWMITD | = lt_fxwwmitd | |
| FDWWMITD | = lt_fdwwmitd | |
| FXWLMTD | = lt_fxwlmtd | |
| FDWLMTD | = lt_fdwlmtd | |
| FXWWMVD | = lt_fxwwmvd | |
| FDWAKTD | = lt_fdwaktd | |
| FDWWMVD | = lt_fdwwmvd | |
| FXWWVTD | = lt_fxwwvtd | |
| FDWWVTD | = lt_fdwwvtd | |
| FXWAKCD | = lt_fxwakcd | |
| FDWAKCD | = lt_fdwakcd | |
| FXWAKRD | = lt_fxwakrd | |
| FDWAKRD | = lt_fdwakrd | |
| FXWAKRWD | = lt_fxwakrwd | |
| F_DB_WAKP | = lt_f_db_wakp | |
| F_DB_WAZT | = lt_f_db_wazt | |
| FDWAZBD | = lt_fdwazbd | |
| F_DB_WAKT | = lt_f_db_wakt | |
| F_DB_WAGU | = lt_f_db_wagu | |
| F_DB_WAZW | = lt_f_db_wazw | |
| F_DB_WAZB | = lt_f_db_wazb | |
| F_DB_WAKC | = lt_f_db_wakc | |
| F_DB_WAKR | = lt_f_db_wakr | |
| FDWAZTD | = lt_fdwaztd | |
| FDWAZWD | = lt_fdwazwd | |
| FXWAGUD | = lt_fxwagud | |
| FXWAKPD | = lt_fxwakpd | |
| FXWAKTD | = lt_fxwaktd | |
| EXCEPTIONS | ||
| PROMOTION_NOT_FOUND = 1 | ||
| NEW_TIME_RANGE_POS_TOO_LONG = 10 | ||
| NEW_TIME_RANGE_POS_TOO_SMALL = 11 | ||
| WALE_INSERT_ERROR = 12 | ||
| WALE_UPDATE_ERROR = 13 | ||
| ALLOCATION_TABLE_ERROR = 14 | ||
| ASSORTMENT_HEAD_ALREADY_EXISTS = 2 | ||
| ASSORTMENT_HEAD_NOT_FOUND = 3 | ||
| NEW_TIME_RANGE_TOO_LONG = 4 | ||
| NEW_TIME_RANGE_TOO_SMALL = 5 | ||
| WRONG_FUNCTION = 6 | ||
| RANGEMODULE_NUMBER_CONFLICT = 7 | ||
| ASSORTMENT_POS_ALREADY_EXISTS = 8 | ||
| ASSORTMENT_POS_NOT_FOUND = 9 | ||
| . " PROMOTION_UPDATE | ||
ABAP code using 7.40 inline data declarations to call FM PROMOTION_UPDATE
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single MARKY FROM SY INTO @DATA(ld_f_items_maintain). | ||||
Search for further information about these or an SAP related objects