Introduction
This blog is based on S/4HANA OP1610 release and relevant as well for subsequent releases of S/4HANA.
May be you feel tired to push additional button in Business Partner Relationship to assign company address to a Contact Person. Sometimes it will forgotten and you are not able to see relationship specific company address.
This blog describes a way how to avoid to press this button and assign company address automatically.
First some Background.
With S/4HANA Customer Vendor Integration (CVI) is active and BP transaction is the leading transaction to create/change/display Business Partners, Customers, Vendors. In ECC release Contact Persons are stored in table KNVK and available in process documents related to Customers/Vendors.
To trigger creation of KNVK entry following Point are mandatory:
This prerequisits will trigger CVI and creates KNVK entry.
Important is to assign company address in relationship creation. This will create a relationship specific address entry which address number you will find in KNVK as well.
Starting Point - Standard way
Implementation
The point where this change becomes active is the event PBO (Process Before Output) at Relationship screen where this button placed. We will create our own PBO function module based on the standard Function Module and do our enhancement.
FUNCTION zcus_bur_bupr_pbo_bur090.
*"--------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"--------------------------------------------------------------------
DATA: ls_but000 LIKE but000,
ls_but050 LIKE but050.
DATA: l_xhandle TYPE c.
DATA: l_fcode LIKE tbz4-fcode VALUE 'BURA',
l_crsfield LIKE bus000tbfl-tbfld VALUE 'BUS051___I-PAFKT',
lt_adcp TYPE TABLE OF adcp.
CALL FUNCTION 'BUR_BUPR_PBO_BUR090'.
CHECK ( cvi_bdt_adapter=>get_activity( ) = cvi_bdt_adapter=>activity_change
OR cvi_bdt_adapter=>get_activity( ) = cvi_bdt_adapter=>activity_create
OR cvi_bdt_adapter=>get_activity( ) = cvi_bdt_adapter=>activity_modify
OR cvi_bdt_adapter=>get_activity( ) = cvi_bdt_adapter=>activity_display ).
* check relationship type
CALL FUNCTION 'BUB_BUPR_BUT050_GET'
IMPORTING
e_but050 = ls_but050.
CHECK ls_but050-reltyp = 'BUR001'.
* check whether address has been assigned already
REFRESH: lt_adcp.
CALL FUNCTION 'BUR_BUPR_ADCP_GET'
TABLES
t_adcp = lt_adcp.
CHECK lines( lt_adcp ) = 0.
CLEAR: ls_but000.
CALL FUNCTION 'BUP_BUPA_BUT000_GET'
IMPORTING
e_but000 = ls_but000.
IF NOT ls_but000-partner IS INITIAL.
* check if company address has been assigned
CALL FUNCTION 'BUR_BUPR_EVENT_FCODE'
EXPORTING
i_fcode = l_fcode
i_crsfield = l_crsfield
* I_CRSLINE = 0
IMPORTING
e_xhandle = l_xhandle.
ENDIF.
ENDFUNCTION.
Screen behaviour after enhancement
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
4 | |
4 | |
3 | |
3 | |
3 | |
2 | |
2 | |
2 | |
2 |