ABAP Code for SAP S4HANA BP - Business Partner Creation
REPORT ZBP_CREATE_PERSON.
DATA : partner LIKE bapibus1006_head-bpartner,
partnercategory LIKE bapibus1006_head-partn_cat,
partnertype LIKE bapibus1006_head-partn_typ,
partnergroup LIKE bapibus1006_head-partn_grp,
partnerextno LIKE bapibus1006_head-extern_no,
centraldata TYPE bapibus1006_central,
centraldataperson TYPE bapibus1006_central_person,
adressdata TYPE bapibus1006_address,
adressdata2 TYPE bapibus1006_address,
adressdata3 TYPE bapibus1006_address,
businesspartner LIKE bapibus1006_head-bpartner,
telefondata TYPE bapiadtel OCCURS 0 WITH HEADER LINE,
e_maildata TYPE bapiadsmtp OCCURS 0 WITH HEADER LINE,
telefondata2 TYPE bapiadtel OCCURS 0 WITH HEADER LINE,
e_maildata2 TYPE bapiadsmtp OCCURS 0 WITH HEADER LINE,
telefondata3 TYPE bapiadtel OCCURS 0 WITH HEADER LINE,
e_maildata3 TYPE bapiadsmtp OCCURS 0 WITH HEADER LINE,
et_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
corr_add TYPE bapibus1006_addressusage OCCURS 0 WITH HEADER LINE,
off_add TYPE bapibus1006_addressusage OCCURS 0 WITH HEADER LINE,
ls_addrusg TYPE bapibus1006_addressusage OCCURS 0 WITH HEADER LINE,
ls_addrusg_x TYPE bapibus1006_addressusage_x OCCURS 0 WITH HEADER LINE,
return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: GV_ID TYPE VRM_ID,
GT_VALUES TYPE VRM_VALUES,
GS_VALUES LIKE LINE OF GT_VALUES.
SELECTION-SCREEN begin of BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : P_CAT TYPE BU_TYPE OBLIGATORY DEFAULT '1',
P_GRP TYPE BU_GROUP OBLIGATORY DEFAULT 'C001'.
SELECTION-SCREEN SKIP.
PARAMETERS : P_TITLE TYPE AD_TITLE AS LISTBOX VISIBLE LENGTH 20,
P_FNAME TYPE BU_NAMEP_F OBLIGATORY,
P_LNAME TYPE BU_NAMEP_L.
SELECTION-SCREEN SKIP.
PARAMETERS : P_ADD1 TYPE AD_STRSPP1,
P_ADD2 TYPE AD_STRSPP2,
P_ADD3 TYPE AD_STRSPP3,
P_CITY TYPE AD_CITY1 OBLIGATORY,
P_PIN TYPE AD_PSTCD1 OBLIGATORY,
p_LAND1 type LAND1 as LISTBOX VISIBLE LENGTH 20 USER-COMMAND CMD OBLIGATORY,
p_REGIO type REGIO as LISTBOX VISIBLE LENGTH 20 OBLIGATORY.
SELECTION-SCREEN SKIP.
PARAMETERS : P_MOB TYPE AD_TLNMBR,
P_EMAIL TYPE AD_SMTPADR.
SELECTION-SCREEN end of BLOCK b1.
INITIALIZATION.
perform set_title.
perform set_country.
perform set_region.
at SELECTION-SCREEN.
perform set_region.
START-OF-SELECTION.
perform create_bp.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form SET_TITLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form set_title.
CLEAR : GS_VALUES, GT_VALUES[].
"select the titles values from tables
select * from TSAD3T into TABLE @data(gt_title) WHERE langu = @sy-langu.
loop at gt_title into data(gs_title).
clear : gs_values.
gs_values-key = gs_title-title.
gs_values-text = gs_title-title_medi.
append gs_values to gt_values.
endloop.
SORT GT_VALUES BY KEY.
DELETE ADJACENT DUPLICATES FROM GT_VALUES COMPARING KEY.
gv_id = 'P_TITLE'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = GV_ID
VALUES = GT_VALUES.
CLEAR : GS_VALUES, GT_VALUES[].
endform.
*&---------------------------------------------------------------------*
*& Form SET_COUNTRY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form set_country .
CLEAR : GS_VALUES, GT_VALUES[].
"select the titles values from tables
select * from T005T into TABLE @data(gt_country) WHERE spras = @sy-langu.
loop at gt_country into data(gs_country).
clear : gs_values.
gs_values-key = gs_country-LAND1.
gs_values-text = gs_country-landx50.
append gs_values to gt_values.
endloop.
SORT GT_VALUES BY KEY.
DELETE ADJACENT DUPLICATES FROM GT_VALUES COMPARING KEY.
gv_id = 'P_LAND1'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = GV_ID
VALUES = GT_VALUES.
CLEAR : GS_VALUES, GT_VALUES[].
p_land1 = 'IN'. "set default as in
endform.
*&---------------------------------------------------------------------*
*& Form SET_REGION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form set_region.
CLEAR : GS_VALUES, GT_VALUES[].
"select the reion values based on country selected values from tables
select * from T005U into TABLE @data(gt_region) WHERE spras = @sy-langu
and land1 = @p_land1.
loop at gt_region into data(gs_region).
clear : gs_values.
gs_values-key = gs_region-BLAND.
gs_values-text = gs_region-bezei.
append gs_values to gt_values.
endloop.
SORT GT_VALUES BY KEY.
DELETE ADJACENT DUPLICATES FROM GT_VALUES COMPARING KEY.
gv_id = 'P_REGIO'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
ID = GV_ID
VALUES = GT_VALUES.
CLEAR : GS_VALUES, GT_VALUES[].
endform.
*&---------------------------------------------------------------------*
*& Form CREATE_BP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form create_bp.
"central data
centraldata-title_key = p_title.
centraldata-searchterm1 = p_fname.
*centraldata-partnertype = ' '. "partnertype.
"person data
centraldataperson-firstname = p_fname.
centraldataperson-lastname = p_lname.
centraldataperson-namcountry = p_land1.
CONCATENATE p_fname p_lname into centraldataperson-fullname SEPARATED BY space.
centraldataperson-correspondlanguage = 'EN'.
"address
adressdata-standardaddress = 'X'.
adressdata-city = p_city.
adressdata-postl_cod1 = p_pin.
adressdata-str_suppl1 = p_add1.
adressdata-str_suppl2 = p_add2.
adressdata-str_suppl3 = p_add3.
adressdata-country = p_land1.
adressdata-region = p_regio.
adressdata-validfromdate = sy-datum.
adressdata-validtodate = '99991231'.
telefondata-country = p_land1.
telefondata-std_no = 'X'.
telefondata-telephone = p_mob.
telefondata-r_3_user = '3'.
APPEND telefondata.
e_maildata-std_no = 'X'.
e_maildata-e_mail = p_email.
e_maildata-std_recip = 'X'.
APPEND e_maildata.
"call bapi
call function 'BAPI_BUPA_CREATE_FROM_DATA'
exporting
* BUSINESSPARTNEREXTERN =
partnercategory = p_cat
PARTNERGROUP = p_grp
centraldata = centraldata
CENTRALDATAPERSON = centraldataperson
* CENTRALDATAORGANIZATION =
* CENTRALDATAGROUP =
ADDRESSDATA = adressdata
* DUPLICATE_MESSAGE_TYPE =
* ACCEPT_ERROR = ' '
IMPORTING
BUSINESSPARTNER = businesspartner
TABLES
TELEFONDATA = telefondata
* FAXDATA =
* TELETEXDATA =
* TELEXDATA =
E_MAILDATA = e_maildata
* RMLADDRESSDATA =
* X400ADDRESSDATA =
* RFCADDRESSDATA =
* PRTADDRESSDATA =
* SSFADDRESSDATA =
* URIADDRESSDATA =
* PAGADDRESSDATA =
* ADDRESSNOTES =
* COMMUNICATIONNOTES =
* COMMUNICATIONUSAGE =
* TELEFONDATANONADDRESS =
* FAXDATANONADDRESS =
* TELETEXDATANONADDRESS =
* TELEXDATANONADDRESS =
* E_MAILDATANONADDRESS =
* RMLADDRESSDATANONADDRESS =
* X400ADDRESSDATANONADDRESS =
* RFCADDRESSDATANONADDRESS =
* PRTADDRESSDATANONADDRESS =
* SSFADDRESSDATANONADDRESS =
* URIADDRESSDATANONADDRESS =
* PAGADDRESSDATANONADDRESS =
* COMMUNICATIONNOTESNONADDRESS =
* COMMUNICATIONUSAGENONADDRESS =
RETURN = return
* ADDRESSDUPLICATES =
.
if businesspartner is NOT INITIAL.
COMMIT WORK AND WAIT.
CONCATENATE 'Business Partner' businesspartner 'Created successfully'
into data(gv_msg) SEPARATED BY space.
MESSAGE gv_msg TYPE 'I'.
set SCREEN 0.
else.
message 'Error in BP Creation' TYPE 'I'.
loop at RETURN.
write return-message.
clear : return.
endloop.
endif.
endform.
0 Comments