ABAP Code for SAP S4HANA BP - Business Partner Creation

 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 WITH HEADER LINE,
       e_maildata        TYPE  bapiadsmtp OCCURS WITH HEADER LINE,
       telefondata2      TYPE  bapiadtel OCCURS WITH HEADER LINE,
       e_maildata2       TYPE  bapiadsmtp OCCURS WITH HEADER LINE,
       telefondata3      TYPE  bapiadtel OCCURS WITH HEADER LINE,
       e_maildata3       TYPE  bapiadsmtp OCCURS WITH HEADER LINE,
       et_return         TYPE  bapiret2 OCCURS WITH HEADER LINE,
       corr_add          TYPE  bapibus1006_addressusage OCCURS WITH HEADER LINE,
       off_add           TYPE  bapibus1006_addressusage OCCURS WITH HEADER LINE,
       ls_addrusg        TYPE  bapibus1006_addressusage OCCURS WITH HEADER LINE,
       ls_addrusg_x      TYPE  bapibus1006_addressusage_x OCCURS WITH HEADER LINE,
       return            TYPE  bapiret2 OCCURS 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_VALUESGT_VALUES[].

"select the titles values from tables
  select from TSAD3T into TABLE @data(gt_titleWHERE 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_VALUESGT_VALUES[].

endform.
*&---------------------------------------------------------------------*
*&      Form  SET_COUNTRY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form set_country .

  CLEAR GS_VALUESGT_VALUES[].

"select the titles values from tables
  select from T005T into TABLE @data(gt_countryWHERE 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_VALUESGT_VALUES[].

  p_land1 'IN'.   "set default as in

endform.
*&---------------------------------------------------------------------*
*&      Form  SET_REGION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form set_region.

  CLEAR GS_VALUESGT_VALUES[].

"select the reion values based on country selected values from tables
  select from T005U  into TABLE @data(gt_regionWHERE 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_VALUESGT_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_msgSEPARATED 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.


Post a Comment

0 Comments

Total Pageviews