'BAPI_ADDRESSORG_SAVEREPLICA' - This BAPI can be used for address change of customer. 
 
  CLEAR: addr_no,addr_grp.
  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
      input  = v_kunnr
    IMPORTING
      output = v_kunnr.
 
  SELECT SINGLE adrnr
                  FROM kna1
                  INTO addr_no
                  WHERE kunnr = v_kunnr.
 
  SELECT SINGLE addr_group
        FROM adrc
        INTO addr_grp
        WHERE addrnumber = addr_no.
 
  CLEAR: gi_bapiadfax, gi_bapiadsmtp ,gi_bapiad1vl,gi_bapiadtel,
         gi_bapiadfax[],gi_bapiadsmtp[],gi_bapiad1vl[],gi_bapiadtel[].
 
  gi_bapiad1vl-addr_group = addr_grp.
 
  ztitle = wa_final_output-title.
 
  CASE ztitle.
    WHEN 'MS.'.
      gi_bapiad1vl-title = '0001'.
    WHEN 'MR.'.
      gi_bapiad1vl-title = '0002'.
    WHEN 'COMPANY'.
      gi_bapiad1vl-title = '0003'.
    WHEN 'MR and MRS'.
      gi_bapiad1vl-title = '0004'.
    WHEN 'DR.'.
      gi_bapiad1vl-title = '0005'.
  ENDCASE.
 
  gi_bapiad1vl-name  = wa_final_output-name1.
  gi_bapiad1vl-name_2  =  wa_final_output-name2.
  gi_bapiad1vl-city = wa_final_output-ort01.
  gi_bapiad1vl-po_box_reg = wa_final_output-regio.
  gi_bapiad1vl-postl_cod1 = wa_final_output-pstlz.
  gi_bapiad1vl-street = wa_final_output-stras.
  gi_bapiad1vl-str_suppl1 = wa_final_output-str_suppl1.
  gi_bapiad1vl-country  = wa_final_output-land1.
  gi_bapiad1vl-langu  = 'EN'.
  gi_bapiad1vl-sort1  = wa_final_output-sort1.
  gi_bapiad1vl-sort2 = wa_final_output-sort2.
  gi_bapiad1vl-transpzone = wa_final_output-lzone.
 
  APPEND gi_bapiad1vl.
  CLEAR gi_bapiad1vl.
 
*********** Email ************************
 
  READ TABLE it_str_email INTO wa_str_email WITH KEY req_no = wa_final_output-req_no
                                                     serial_no = wa_final_output-serial_no.
  IF sy-subrc <> 0.
    gi_bapiadsmtp-e_mail = wa_final_output-smtp_addr.
      gi_bapiadsmtp-r_3_user = '3'.                            
      gi_bapiadsmtp-std_recip = 'X'.                           
    APPEND gi_bapiadsmtp.
    CLEAR gi_bapiadsmtp.
  ENDIF.
 
  IF NOT it_str_email[] IS INITIAL.
    LOOP AT it_str_email INTO wa_str_email WHERE req_no = wa_final_output-req_no
                                          AND serial_no = wa_final_output-serial_no
                                          AND ktokd = wa_final_output-ktokd
                                          AND bukrs = wa_final_output-bukrs
                                          AND vkorg = wa_final_output-vkorg
                                          AND vtweg = wa_final_output-vtweg
                                          AND spart = wa_final_output-spart.
      .
      IF NOT wa_str_email-smtp_addr IS INITIAL.
        gi_bapiadsmtp-e_mail = wa_str_email-smtp_addr.      "EMAIL
        gi_bapiadsmtp-consnumber = wa_str_email-consnumber.
      ELSE.
        gi_bapiadsmtp-e_mail = ' '. "'IN@LNT.COM'.
      ENDIF.
      APPEND gi_bapiadsmtp.
      CLEAR gi_bapiadsmtp.
    ENDLOOP.
  ENDIF.
*************Mobile**************************
  READ TABLE it_str_mobile INTO wa_str_mobile WITH KEY req_no = wa_final_output-req_no
                                                     serial_no = wa_final_output-serial_no.
  IF sy-subrc <> 0.
    gi_bapiadtel-telephone = wa_final_output-mobno.
    gi_bapiadtel-r_3_user = '3'.
    gi_bapiadtel-std_recip = 'X'.
    APPEND gi_bapiadtel.
    CLEAR gi_bapiadtel.
  ENDIF.
 
  IF NOT it_str_mobile[] IS INITIAL.
    LOOP AT it_str_mobile INTO wa_str_mobile WHERE req_no = wa_final_output-req_no
                                          AND serial_no = wa_final_output-serial_no
                                          AND ktokd = wa_final_output-ktokd
                                          AND bukrs = wa_final_output-bukrs
                                          AND vkorg = wa_final_output-vkorg
                                          AND vtweg = wa_final_output-vtweg
                                          AND spart = wa_final_output-spart..
      IF NOT wa_str_mobile-mobno IS INITIAL.
        gi_bapiadtel-telephone = wa_str_mobile-mobno.
        gi_bapiadtel-consnumber = wa_str_mobile-consnumber.
        GI_BAPIADTEL-COUNTRY = WA_STR_MOBILE-COUNTRY.          
        gi_bapiadtel-r_3_user = '3'.
        gi_bapiadtel-std_recip = 'X'.
 
      ELSE.
        gi_bapiadtel-telephone = '.'.
      ENDIF.
      APPEND gi_bapiadtel.
      CLEAR gi_bapiadtel.
    ENDLOOP.
  ENDIF.
*************Telephone************************
  READ TABLE it_str_tel INTO wa_str_tel WITH KEY req_no = wa_final_output-req_no
                                                     serial_no = wa_final_output-serial_no.
  IF sy-subrc <> 0.
    gi_bapiadtel-telephone = wa_final_output-telf1.
    gi_bapiadtel-extension = wa_final_output-tel_extens.
    APPEND gi_bapiadtel.
    CLEAR gi_bapiadtel.
  ENDIF.
 
  IF NOT it_str_tel[] IS INITIAL.
    LOOP AT it_str_tel INTO wa_str_tel WHERE req_no = wa_final_output-req_no
                                          AND serial_no = wa_final_output-serial_no
                                          AND ktokd = wa_final_output-ktokd
                                          AND bukrs = wa_final_output-bukrs
                                          AND vkorg = wa_final_output-vkorg
                                          AND vtweg = wa_final_output-vtweg
                                          AND spart = wa_final_output-spart..
      IF NOT wa_str_tel-telf1 IS INITIAL.
        gi_bapiadtel-telephone = wa_str_tel-telf1.
        gi_bapiadtel-extension = wa_str_tel-tel_extens.
        gi_bapiadtel-consnumber = wa_str_tel-consnumber.
        GI_BAPIADTEL-COUNTRY = wa_str_tel-COUNTRY.          
      ELSE.
        gi_bapiadtel-telephone = '.'.
      ENDIF.
      APPEND gi_bapiadtel.
      CLEAR gi_bapiadtel.
    ENDLOOP.
  ENDIF.
**************************************************
  IF NOT wa_final_output-telfx IS INITIAL.
    gi_bapiadfax-fax = wa_final_output-telfx.
    gi_bapiadfax-extension = wa_final_output-fax_extens.
  ELSE.
    gi_bapiadfax-fax = space.
    gi_bapiadfax-extension  = space.
  ENDIF.
  APPEND gi_bapiadfax.
  CLEAR gi_bapiadfax.
 
  objid = v_kunnr.
 
  CALL FUNCTION 'BAPI_ADDRESSORG_SAVEREPLICA'
    EXPORTING
      obj_type         = 'KNA1'
      obj_id           = objid
      iv_check_address = 'X'
    IMPORTING
      return           = return1
    TABLES
      bapiad1vl        = gi_bapiad1vl
      bapiadtel        = gi_bapiadtel
      bapiadfax        = gi_bapiadfax
      bapiadsmtp       = gi_bapiadsmtp.
 
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
 
ENDFORM.    


Serkan AKKAVAK
Computer Engineer
ABAP Developer & SAP MM SD Consultant
Contact : serkurumsal@yandex.com