DATA: lv_bu_group TYPE bu_group,
ls_bus_roles TYPE bus_roles,
lt_cvic_vend_to_bp2 TYPE TABLE OF cvic_vend_to_bp2,
ls_cvic_vend_to_bp2 TYPE cvic_vend_to_bp2,
lt_cvic_cust_to_bp2 TYPE TABLE OF cvic_cust_to_bp2,
ls_cvic_cust_to_bp2 TYPE cvic_cust_to_bp2,
ls_dropdown_values TYPE bus_screen_dropdown_value,
lv_grouping TYPE bu_group,
lv_sytabix TYPE sy-tabix,
lt_tb003i TYPE TABLE OF tb003i,
ls_tb003i TYPE tb003i,
ls_tbd001 TYPE tbd001,
ls_tbc001 TYPE tbc001,
lv_line TYPE i.
* check if grouping is correct in case of BP creation
IF iv_request->gs_navigation-bupa-activity EQ iv_request->gc_activity_create. "creation
* get selected grouping
lv_bu_group = iv_request->gs_navigation-bupa-creation_group.
* get selected role
ls_bus_roles = iv_request->gs_navigation-bupa-partner_role.
IF ls_bus_roles-is_group EQ 'X'.
* role grouping
SELECT * FROM tb003i INTO TABLE lt_tb003i
WHERE rltgr EQ ls_bus_roles-role.
* get possible account groups vendor
LOOP AT lt_tb003i INTO ls_tb003i.
SELECT * FROM cvic_vend_to_bp2 APPENDING TABLE lt_cvic_vend_to_bp2
WHERE role = ls_tb003i-role.
ENDLOOP.
ELSE.
* get possible account groups vendor
SELECT * FROM cvic_vend_to_bp2 INTO TABLE lt_cvic_vend_to_bp2
WHERE role = ls_bus_roles-role.
ENDIF.
IF NOT lt_cvic_vend_to_bp2[] IS INITIAL.
LOOP AT et_dropdown_values INTO ls_dropdown_values.
lv_sytabix = sy-tabix.
* get grouping
LOOP AT lt_cvic_vend_to_bp2 INTO ls_cvic_vend_to_bp2.
CLEAR: ls_tbc001, lv_grouping.
SELECT SINGLE * FROM tbc001
INTO ls_tbc001
WHERE ktokk = ls_cvic_vend_to_bp2-account_group.
lv_grouping = ls_dropdown_values-key.
IF ls_tbc001-bu_group NE lv_grouping.
DELETE et_dropdown_values INDEX lv_sytabix.
EXIT.
ELSE.
lv_sytabix = lv_sytabix + 1.
ENDIF.
ENDLOOP.
ENDLOOP.
ELSE.
IF ls_bus_roles-is_group EQ 'X'.
* get possible account groups customer
LOOP AT lt_tb003i INTO ls_tb003i.
SELECT * FROM cvic_cust_to_bp2 APPENDING TABLE lt_cvic_cust_to_bp2
WHERE role = ls_tb003i-role.
ENDLOOP.
ELSE.
* get possible account groups customer
SELECT * FROM cvic_cust_to_bp2 INTO TABLE lt_cvic_cust_to_bp2
WHERE role = ls_bus_roles-role.
ENDIF.
IF NOT lt_cvic_cust_to_bp2[] IS INITIAL.
LOOP AT et_dropdown_values INTO ls_dropdown_values.
lv_sytabix = sy-tabix.
* get grouping
LOOP AT lt_cvic_cust_to_bp2 INTO ls_cvic_cust_to_bp2.
CLEAR: ls_tbd001, lv_grouping.
SELECT SINGLE * FROM tbd001
INTO ls_tbd001
WHERE ktokd = ls_cvic_cust_to_bp2-account_group.
lv_grouping = ls_dropdown_values-key.
IF ls_tbd001-bu_group NE lv_grouping.
DELETE et_dropdown_values INDEX lv_sytabix.
EXIT.
ELSE.
lv_sytabix = lv_sytabix + 1.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDIF.
* set grouping
DESCRIBE TABLE et_dropdown_values LINES lv_line.
IF lv_line EQ 1.
CLEAR: ls_dropdown_values.
READ TABLE et_dropdown_values INTO ls_dropdown_values INDEX 1.
iv_request->gs_navigation-bupa-creation_group = ls_dropdown_values-key.
ENDIF.
ENDIF.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
7 | |
5 | |
5 | |
5 | |
5 | |
4 | |
4 | |
4 | |
3 | |
3 |