<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic how to avoid using bapi_commit inside a loop . in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-using-bapi-commit-inside-a-loop/m-p/3453246#M829644</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;Need a help.&lt;/P&gt;&lt;P&gt;This is a program for uploading business partners in CRM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The basic logic of the program is as below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         There are two types of records in the upload file &amp;#150; new/ old ones to be updated&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         A new record is identified by checking if a BP exits based on the cust id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         In case it is a new record certain BAPI&amp;#146;s are called to create a new BP, else the address details, identification etc are updated for the existing one.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         SQL analysis of the program showed that the maximum amount of time is taken in INSERT/UPDTAE/COMMIT processes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we raised the issue with SAP , they stated that the problem occurs due to the very high no of BAPI_COMMIT calls which is within the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The standard BAPI available allows passing of one record at a time. Hence passing multiple records at a time and a single commit did not seem feasible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also while updating since there are different BAPI&amp;#146;s for address and identification it is being called in a sequence and commit issued after each. If commit is excluded it gives a locking error since the first BAPI tends to lock the record and does not allow subsequent BAPI call&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;kindly suggest me with a solution of using a less commit for updating series of records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code is as follows:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZBP_BDCP_ACCTRNSDATA_UPLOAD                                 *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Created By : Radhu Shankar.G                                        *&lt;/P&gt;&lt;P&gt;*&amp;amp; Purpose    : Program to Create Investors with the transaction       *&lt;/P&gt;&lt;P&gt;*&amp;amp;              data received from the De-dupe Software.               *&lt;/P&gt;&lt;P&gt;*&amp;amp; Note       : Can be Executed or scheduled only in Background        *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zbp_bdcp_acctrnsdata_upload LINE-SIZE 255 LINE-COUNT 65 NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                                                   MESSAGE-ID zcrm_upload.&lt;/P&gt;&lt;P&gt;TABLES : bbp_iu01.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file TYPE string LOWER CASE OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:s_email FOR bbp_iu01-email NO INTERVALS.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-004.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-006.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-007.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-005.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Main Upload structure and internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_main,&lt;/P&gt;&lt;P&gt;         cust_id        TYPE bu_bpext,              " Customer ID&lt;/P&gt;&lt;P&gt;         inv_type_code  TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;         insti_tag      TYPE crmt_mktpfchr_atvalue, " Retail/Instituitional Tag&lt;/P&gt;&lt;P&gt;         name           TYPE char120,               " Name&lt;/P&gt;&lt;P&gt;         address1       TYPE ad_strspp1,                    " Address1&lt;/P&gt;&lt;P&gt;         address2       TYPE ad_strspp2,                    " Address2&lt;/P&gt;&lt;P&gt;         address3       TYPE ad_street,                     " Address3&lt;/P&gt;&lt;P&gt;         city           TYPE ad_city1,              " City&lt;/P&gt;&lt;P&gt;         state          TYPE t005u-bezei,           " Region/State&lt;/P&gt;&lt;P&gt;         country        TYPE landx50,               " Country&lt;/P&gt;&lt;P&gt;         pin_code       TYPE ad_pstcd1,             " Pin Code&lt;/P&gt;&lt;P&gt;         off_phone1     TYPE ad_tlnmbr,             " Office Telephone Number1&lt;/P&gt;&lt;P&gt;         off_phone2     TYPE ad_tlnmbr,             " Office Telephone Number2&lt;/P&gt;&lt;P&gt;         res_phone1     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         res_phone2     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         mobile         TYPE ad_mbnmbr1,            " Mobile Number&lt;/P&gt;&lt;P&gt;         email          TYPE ad_smtpadr,                    " Email ID&lt;/P&gt;&lt;P&gt;         birth_date     TYPE bu_birthdt,            " Birth Date&lt;/P&gt;&lt;P&gt;         pan_no         TYPE bu_id_number,          " Pan Number&lt;/P&gt;&lt;P&gt;         lob            TYPE crmt_mktpfchr_atvalue, " Line of Business&lt;/P&gt;&lt;P&gt;         fam_tag        TYPE bu_id_number,          " FAM Tag Number&lt;/P&gt;&lt;P&gt;         mod_date       TYPE sy-datum,              " Modified Date&lt;/P&gt;&lt;P&gt;       END OF i_main.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_main      LIKE i_main            OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Error file structure and internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_error,&lt;/P&gt;&lt;P&gt;         cust_id        TYPE bu_bpext,              " Customer ID&lt;/P&gt;&lt;P&gt;         inv_type_code  TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;         insti_tag      TYPE crmt_mktpfchr_atvalue, " Retail/Instituitional Tag&lt;/P&gt;&lt;P&gt;         name           TYPE char120,                     " Name&lt;/P&gt;&lt;P&gt;         address1       TYPE ad_strspp1,                    " Address1&lt;/P&gt;&lt;P&gt;         address2       TYPE ad_strspp2,                    " Address2&lt;/P&gt;&lt;P&gt;         address3       TYPE ad_street,                     " Address3&lt;/P&gt;&lt;P&gt;         city           TYPE ad_city1,              " City&lt;/P&gt;&lt;P&gt;         state          TYPE t005u-bezei,           " Region/State&lt;/P&gt;&lt;P&gt;         country        TYPE landx50,               " Country&lt;/P&gt;&lt;P&gt;         pin_code       TYPE ad_pstcd1,             " Pin Code&lt;/P&gt;&lt;P&gt;         off_phone1     TYPE ad_tlnmbr,             " Office Telephone Number1&lt;/P&gt;&lt;P&gt;         off_phone2     TYPE ad_tlnmbr,             " Office Telephone Number2&lt;/P&gt;&lt;P&gt;         res_phone1     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         res_phone2     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         mobile         TYPE ad_mbnmbr1,            " Mobile Number&lt;/P&gt;&lt;P&gt;         email          TYPE ad_smtpadr,                    " Email ID&lt;/P&gt;&lt;P&gt;         birth_date     TYPE bu_birthdt,            " Birth Date&lt;/P&gt;&lt;P&gt;         pan_no         TYPE bu_id_number,          " Pan Number&lt;/P&gt;&lt;P&gt;         lob            TYPE crmt_mktpfchr_atvalue, " Line of Business&lt;/P&gt;&lt;P&gt;         fam_tag        TYPE bu_id_number,          " FAM Tag Number&lt;/P&gt;&lt;P&gt;         mod_date       TYPE sy-datum,              " Modified Date&lt;/P&gt;&lt;P&gt;         bp             TYPE bapibus1006_head-bpartner, " BP&lt;/P&gt;&lt;P&gt;         recno(4)       TYPE c,                         " Record No&lt;/P&gt;&lt;P&gt;         message(255)   TYPE c,                         " Error Message&lt;/P&gt;&lt;P&gt;       END OF i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_error         LIKE i_error            OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Telephone, Email &amp;amp; Role Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : w_bp_tel        TYPE bapiadtel,&lt;/P&gt;&lt;P&gt;       it_bp_tel       TYPE bapiadtel             OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_tel1      TYPE bapiadtel             OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_email     TYPE bapiadsmtp            OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_email1    TYPE bapiadsmtp            OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bapicomrem   TYPE STANDARD TABLE OF bapicomrem   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bapicomrem_x TYPE STANDARD TABLE OF bapicomrex   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_tel_x        TYPE STANDARD TABLE OF bapiadtelx   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_email_x      TYPE STANDARD TABLE OF bapiadsmtx   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_role         TYPE bapibusisb990_bproles OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_role_cp      TYPE bapibusisb990_bproles OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Identication Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_identification OCCURS 0,&lt;/P&gt;&lt;P&gt;        idcategory TYPE bapibus1006_identification_key-identificationcategory,&lt;/P&gt;&lt;P&gt;        idnumber   TYPE bapibus1006_identification_key-identificationnumber,&lt;/P&gt;&lt;P&gt;      END OF it_identification.&lt;/P&gt;&lt;P&gt;DATA : w_identification TYPE bapibus1006_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Marketing Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_crmt OCCURS 0,&lt;/P&gt;&lt;P&gt;        crmt TYPE crmt_mktprof_keys-profile_template_id,&lt;/P&gt;&lt;P&gt;       END   OF it_crmt.&lt;/P&gt;&lt;P&gt;DATA : it_crmt1  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt2  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt3  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt4  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt5  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_ret TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Basic Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : v_partn_cat       TYPE bapibus1006_head-partn_cat,&lt;/P&gt;&lt;P&gt;       w_central         TYPE bapibus1006_central,&lt;/P&gt;&lt;P&gt;       w_central_x       TYPE bapibus1006_central_x,&lt;/P&gt;&lt;P&gt;       w_central_org     TYPE bapibus1006_central_organ,&lt;/P&gt;&lt;P&gt;       w_central_per     TYPE bapibus1006_central_person,&lt;/P&gt;&lt;P&gt;       w_central_group   TYPE bapibus1006_central_group,&lt;/P&gt;&lt;P&gt;       w_centralorg_x    TYPE bapibus1006_central_organ_x,&lt;/P&gt;&lt;P&gt;       w_centralperson_x TYPE bapibus1006_central_person_x,&lt;/P&gt;&lt;P&gt;       w_centralgrp_x    TYPE bapibus1006_central_group_x,&lt;/P&gt;&lt;P&gt;       w_address         TYPE bapibus1006_address,&lt;/P&gt;&lt;P&gt;       w_addr_x          TYPE bapibus1006_address_x,&lt;/P&gt;&lt;P&gt;       v_bp              TYPE bapibus1006_head-bpartner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declaration for Duplication Check&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : w_zacc_address  TYPE zacc_address,&lt;/P&gt;&lt;P&gt;       g_dup_status      TYPE i.&lt;/P&gt;&lt;P&gt;DATA : it_dup_bp TYPE STANDARD TABLE OF zbuspartner WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_pan     TYPE bu_id_type  VALUE 'ZID003',&lt;/P&gt;&lt;P&gt;           c_fam_tag TYPE bu_id_type  VALUE 'ZID011',&lt;/P&gt;&lt;P&gt;           c_cust    TYPE bu_id_type  VALUE 'ZID009'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Other Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : v_inv_type      TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;       v_file          TYPE string,&lt;/P&gt;&lt;P&gt;       v_firstname     TYPE bu_nameor1,&lt;/P&gt;&lt;P&gt;       v_filename1(14) TYPE c,&lt;/P&gt;&lt;P&gt;       v_filename2(14) TYPE c,&lt;/P&gt;&lt;P&gt;       v_lines         TYPE int4,&lt;/P&gt;&lt;P&gt;       v_cat           TYPE bu_type,&lt;/P&gt;&lt;P&gt;       recno           TYPE int4,&lt;/P&gt;&lt;P&gt;       loopno          TYPE int4,&lt;/P&gt;&lt;P&gt;       it_iden_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_attr_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_role_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       wa_iden_ret     TYPE bapiret2,&lt;/P&gt;&lt;P&gt;       wa_attr_ret     TYPE bapiret2,&lt;/P&gt;&lt;P&gt;       it_iden_flag    TYPE c,&lt;/P&gt;&lt;P&gt;       it_attr_flag    TYPE c,&lt;/P&gt;&lt;P&gt;       flag_central    TYPE c,&lt;/P&gt;&lt;P&gt;       flag_addr       TYPE c,&lt;/P&gt;&lt;P&gt;       flag_bp         TYPE c,&lt;/P&gt;&lt;P&gt;       flag_suc        TYPE c,&lt;/P&gt;&lt;P&gt;       flag_exist      TYPE c,&lt;/P&gt;&lt;P&gt;       flag_exit       TYPE c,&lt;/P&gt;&lt;P&gt;       g_bp_msg        TYPE string,&lt;/P&gt;&lt;P&gt;       g_bp_msg1       TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_success,&lt;/P&gt;&lt;P&gt;         rec   TYPE  int4,                      "Record&lt;/P&gt;&lt;P&gt;         name  TYPE  bu_nameor1,                "Name&lt;/P&gt;&lt;P&gt;         bp    TYPE  bapibus1006_head-bpartner, "Business Partner&lt;/P&gt;&lt;P&gt;       END OF i_success,&lt;/P&gt;&lt;P&gt;       it_success     LIKE i_success OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_upd_success LIKE i_success OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declaration for converting spool request to PDF and to trigger mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_recsize TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Spool IDs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES : BEGIN OF t_tbtcp.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tbtcp.&lt;/P&gt;&lt;P&gt;TYPES : END OF t_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       wa_tbtcp TYPE t_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Job Runtime Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_eventid                 LIKE tbtcm-eventid,&lt;/P&gt;&lt;P&gt;       gd_eventparm               LIKE tbtcm-eventparm,&lt;/P&gt;&lt;P&gt;       gd_external_program_active LIKE tbtcm-xpgactive,&lt;/P&gt;&lt;P&gt;       gd_jobcount                LIKE tbtcm-jobcount,&lt;/P&gt;&lt;P&gt;       gd_jobname                 LIKE tbtcm-jobname,&lt;/P&gt;&lt;P&gt;       gd_stepcount               LIKE tbtcm-stepcount,&lt;/P&gt;&lt;P&gt;       gd_error                   TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;       gd_reciever                TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : w_recsize TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : gd_subject   LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;       it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       gd_sender_type     LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;       gd_attachment_desc TYPE so_obj_nam,&lt;/P&gt;&lt;P&gt;       gd_attachment_name TYPE so_obj_des.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Spool to PDF conversions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_spool_nr LIKE tsp01-rqident,&lt;/P&gt;&lt;P&gt;       gd_destination LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;       gd_bytecount LIKE tst01-dsize,&lt;/P&gt;&lt;P&gt;       gd_buffer TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Binary store for PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_pdf_output OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tline.&lt;/P&gt;&lt;P&gt;DATA : END OF it_pdf_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : v_email1 TYPE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;       v_sender TYPE somlreci1-receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_no(1)     TYPE c   VALUE ' ',&lt;/P&gt;&lt;P&gt;           c_device(4) TYPE c   VALUE 'LOCL',&lt;/P&gt;&lt;P&gt;           c_delspl    TYPE c   VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF result OCCURS 0,&lt;/P&gt;&lt;P&gt;         line(100) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:i_id_tab TYPE STANDARD  TABLE OF bapibus1006_id_details WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: g_spl type c value ''.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Renaming the target file daily&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONCATENATE '_' sy-datum '.txt' INTO v_filename1.&lt;/P&gt;&lt;P&gt;CONCATENATE '_' sy-datum '.TXT' INTO v_filename2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  SELECT COUNT(*) FROM zbp_tax_status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/ text-011.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : it_main.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uploading the file from either presentatinon layer or application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM file_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating the BP number and assigning &amp;amp; adding up other attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_main.&lt;/P&gt;&lt;P&gt;    PERFORM data_fill.                       " Filling up global structures &amp;amp; variables&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF v_bp IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM duplication_check.             " Duplication check&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bp_creation.                     " BP Creation&lt;/P&gt;&lt;P&gt;    PERFORM return_fill.                     " Filling up Return Tables&lt;/P&gt;&lt;P&gt;    CLEAR : v_bp, it_main, flag_exit, g_dup_status, it_identification, it_crmt, it_crmt1, it_crmt2, it_crmt3, it_crmt4, it_crmt5,&lt;/P&gt;&lt;P&gt;            w_bp_tel,it_bp_tel,it_bp_tel1,it_bp_email,it_bp_email1,it_tel_x,it_email_x,w_addr_x,w_centralorg_x,w_centralperson_x,&lt;/P&gt;&lt;P&gt;            w_centralgrp_x,flag_addr,flag_central,it_iden_flag,it_attr_flag,it_bapicomrem,w_central,w_central_x, v_inv_type,it_bapicomrem_x,&lt;/P&gt;&lt;P&gt;            w_central_org,w_central_per,w_central_group,flag_bp,flag_suc,flag_exist,it_bp_ret,g_bp_msg,g_bp_msg1,v_cat,wa_attr_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH :it_identification, it_crmt, it_crmt1, it_crmt2, it_crmt3, it_crmt4, it_crmt5,it_bapicomrem,&lt;/P&gt;&lt;P&gt;             it_bp_tel,it_bp_tel1,it_bp_email,it_bp_email1,it_tel_x,it_email_x,it_bp_ret,it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Downloading the file to be reprocessed to the application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_error[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM error_file_download.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constructing the Return Messages for the Job&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM return_messages.                  " Return Message Construction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting the return messages into PDF file and trigerring a mail notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-batch EQ 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM get_job_details.&lt;/P&gt;&lt;P&gt;    PERFORM obtain_spool_id.&lt;/P&gt;&lt;P&gt;    PERFORM convert_spool_to_pdf.&lt;/P&gt;&lt;P&gt;    PERFORM process_email.&lt;/P&gt;&lt;P&gt;    PERFORM trigger_email.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  file_upload&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM file_upload .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data declatration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_filestr  TYPE string.&lt;/P&gt;&lt;P&gt;  CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;  CONSTANTS: con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;  REPLACE '.txt' WITH v_filename1 INTO p_file .&lt;/P&gt;&lt;P&gt;  REPLACE '.TXT' WITH v_filename2 INTO p_file .&lt;/P&gt;&lt;P&gt;  MOVE p_file TO v_file.&lt;/P&gt;&lt;P&gt;  IF sy-batch EQ 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uploading the file from application server if the job is scheduled in background&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                              IGNORING CONVERSION ERRORS REPLACEMENT CHARACTER g_spl.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        READ DATASET p_file INTO l_filestr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CLEAR it_main.&lt;/P&gt;&lt;P&gt;          SPLIT l_filestr  AT con_tab INTO:&lt;/P&gt;&lt;P&gt;            it_main-cust_id        it_main-inv_type_code&lt;/P&gt;&lt;P&gt;            it_main-insti_tag      it_main-name&lt;/P&gt;&lt;P&gt;            it_main-address1       it_main-address2&lt;/P&gt;&lt;P&gt;            it_main-address3       it_main-city&lt;/P&gt;&lt;P&gt;            it_main-state          it_main-country&lt;/P&gt;&lt;P&gt;            it_main-pin_code       it_main-off_phone1&lt;/P&gt;&lt;P&gt;            it_main-off_phone2     it_main-res_phone1&lt;/P&gt;&lt;P&gt;            it_main-res_phone2     it_main-mobile&lt;/P&gt;&lt;P&gt;            it_main-email          it_main-birth_date&lt;/P&gt;&lt;P&gt;            it_main-pan_no         it_main-lob&lt;/P&gt;&lt;P&gt;            it_main-fam_tag        it_main-mod_date.&lt;/P&gt;&lt;P&gt;          APPEND it_main.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE : / 'The file',&lt;/P&gt;&lt;P&gt;                 p_file,&lt;/P&gt;&lt;P&gt;                 'is not found.'.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLOSE DATASET p_file.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE : / 'The Program can only be executed in the background.'.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR : l_filestr, it_main.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " file_upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  data_fill&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_fill .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up Partner Category (v_Partn_cat) ,workarea (w_central), workarea (w_central_org) &amp;amp; workarea (w_central_per)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE bp_category tax_status FROM zbp_tax_status&lt;/P&gt;&lt;P&gt;                    INTO (v_partn_cat,v_inv_type)&lt;/P&gt;&lt;P&gt;                    WHERE inv_code EQ it_main-inv_type_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Authorization Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_main-lob EQ 'M' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZMFR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'M' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZMFI'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'P' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZPMR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'P' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZPMI'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'A' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZBOR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'A' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZBOI'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up workarea (w_address)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_main-address1 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address1 TO w_address-str_suppl1,&lt;/P&gt;&lt;P&gt;           it_main-address1 TO w_zacc_address-address1,&lt;/P&gt;&lt;P&gt;           'X'              TO w_addr_x-str_suppl1 .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-address2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address2 TO w_address-str_suppl2,&lt;/P&gt;&lt;P&gt;           it_main-address2 TO w_zacc_address-address2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           'X'              TO w_addr_x-str_suppl2 .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-address3 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address3 TO w_address-street,&lt;/P&gt;&lt;P&gt;           it_main-address3 TO w_zacc_address-address3,&lt;/P&gt;&lt;P&gt;          'X'               TO w_addr_x-street.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-city  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE :   it_main-city     TO w_address-city,&lt;/P&gt;&lt;P&gt;             it_main-city     TO w_zacc_address-city,&lt;/P&gt;&lt;P&gt;             'X'              TO w_addr_x-city.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-pin_code  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE :   it_main-pin_code TO w_address-postl_cod1,&lt;/P&gt;&lt;P&gt;            'X'               TO w_addr_x-postl_cod1.&lt;/P&gt;&lt;P&gt;    TRANSLATE w_address-postl_cod1 TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_main-country IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : 'X' TO w_addr_x-country.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-state IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE: 'X'  TO w_addr_x-region.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Picking up Country &amp;amp; State Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE land1 FROM t005t INTO w_address-country&lt;/P&gt;&lt;P&gt;       WHERE spras   EQ 'E'&lt;/P&gt;&lt;P&gt;         AND landx50 EQ it_main-country.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE bland FROM t005u INTO w_address-region&lt;/P&gt;&lt;P&gt;         WHERE spras EQ 'E'&lt;/P&gt;&lt;P&gt;           AND land1 EQ w_address-country&lt;/P&gt;&lt;P&gt;           AND bezei EQ it_main-state.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      w_address-region = 'ZZ'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_address-country = 'ZZ'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE bland FROM t005u INTO w_address-region&lt;/P&gt;&lt;P&gt;         WHERE spras EQ 'E'&lt;/P&gt;&lt;P&gt;           AND land1 EQ w_address-country&lt;/P&gt;&lt;P&gt;           AND bezei EQ it_main-state.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      w_address-region = 'ZZ'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_zacc_address-country = w_address-country.&lt;/P&gt;&lt;P&gt;  w_zacc_address-state   = w_address-region.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the BP Role Detail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_role-partnerrole = 'Z1INVS'.&lt;/P&gt;&lt;P&gt;  APPEND it_role.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finding out the BP number from the client ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_main-cust_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE partner FROM but0id INTO  v_bp&lt;/P&gt;&lt;P&gt;                  WHERE type     EQ 'ZID009'&lt;/P&gt;&lt;P&gt;                    AND idnumber EQ it_main-cust_id.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE type FROM but000 INTO v_cat&lt;/P&gt;&lt;P&gt;                          WHERE partner = v_bp.&lt;/P&gt;&lt;P&gt;      PERFORM name_processing USING v_cat.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM name_processing USING v_partn_cat.    " Processing the Name &amp;amp; Title depending on partner category&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Identication Number Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-cust_id IS NOT INITIAL.        " Customer ID&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID009'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-cust_id.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL.        " Pan Number&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID003'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-pan_no.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-fam_tag IS NOT INITIAL.        " Family Tag Number&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID011'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-fam_tag.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Filling up the Marketing Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF v_inv_type IS NOT INITIAL.                 " Tax status&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname = 'TAX_STATUS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atwrt  =  v_inv_type.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-lob IS NOT INITIAL.                " Product Tag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname   = 'LOB'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF it_main-lob EQ 'M'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'MF'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-lob EQ 'P'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'PMS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-lob EQ 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'BOTH'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-insti_tag IS NOT INITIAL.         " Retail/Instituitional Tag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname   = 'ORGANISATION_STRUCTURE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'RETAIL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'INSTITUTIONAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-insti_tag EQ 'F'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'INTERNATIONAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt2-atname = 'VIP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt2-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt3-atname = 'PRIORITY'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt3-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt3.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt3.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt4-atname = 'CONTACTBLE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt4-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt5-atname = 'SOURCE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt5-atwrt  = 'CAMS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt5.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt5.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'CENTALISED_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'GENERAL_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'MF_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'PMS_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'SOURCE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR it_crmt-crmt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Return Message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  recno = recno + 1.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " data_fill&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  duplication_check&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM duplication_check .&lt;/P&gt;&lt;P&gt;  DATA : l_lines TYPE i.&lt;/P&gt;&lt;P&gt;  IF v_firstname IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ZACC_DUPLICATIONCHECK'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        role            = 'Z1INVS'&lt;/P&gt;&lt;P&gt;        firstname       = v_firstname&lt;/P&gt;&lt;P&gt;        pan_no          = it_main-pan_no&lt;/P&gt;&lt;P&gt;        mobile          = it_main-mobile&lt;/P&gt;&lt;P&gt;        email           = it_main-email&lt;/P&gt;&lt;P&gt;        address         = w_zacc_address&lt;/P&gt;&lt;P&gt;        partnercategory = v_partn_cat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        status          = g_dup_status&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        buspartner      = it_dup_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE it_dup_bp LINES l_lines.&lt;/P&gt;&lt;P&gt;    IF l_lines EQ 1.&lt;/P&gt;&lt;P&gt;      IF g_dup_status EQ 1.&lt;/P&gt;&lt;P&gt;        READ TABLE it_dup_bp INDEX 1.&lt;/P&gt;&lt;P&gt;        MOVE it_dup_bp-partner TO v_bp.&lt;/P&gt;&lt;P&gt;      ELSEIF g_dup_status EQ 2.&lt;/P&gt;&lt;P&gt;        flag_exit = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSEIF l_lines GT 1.&lt;/P&gt;&lt;P&gt;      flag_exit = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR : l_lines, v_firstname.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " duplication_check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  name_processing&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM name_processing USING uv_cat TYPE bu_type.&lt;/P&gt;&lt;P&gt;  IF it_main-name IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If category is Person&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF uv_cat EQ 1.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_per-firstname&lt;/P&gt;&lt;P&gt;          middle = w_central_per-middlename&lt;/P&gt;&lt;P&gt;          last   = w_central_per-lastname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralperson_x-firstname  = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-middlename = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-lastname   = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-birthdate  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE : it_main-birth_date TO w_central_per-birthdate,&lt;/P&gt;&lt;P&gt;             w_central_per-firstname TO v_firstname.&lt;/P&gt;&lt;P&gt;    ELSEIF uv_cat EQ 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If category is organisation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_org-name2&lt;/P&gt;&lt;P&gt;          middle = w_central_org-name1&lt;/P&gt;&lt;P&gt;          last   = w_central_org-name3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name1 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name2 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name3 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE w_central_org-name2 TO v_firstname.&lt;/P&gt;&lt;P&gt;    ELSEIF uv_cat EQ 3.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If category is group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_group-namegroup2&lt;/P&gt;&lt;P&gt;          middle = w_central_group-namegroup1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralgrp_x-namegroup1 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralgrp_x-namegroup2 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE w_central_group-namegroup2 TO v_firstname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-name+0(8)    TO w_central-searchterm1,&lt;/P&gt;&lt;P&gt;           'X'                  TO w_central_x-searchterm1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " name_processing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bp_creation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bp_creation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:l_identification   TYPE bapibus1006_identification_key-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Telephone Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE : w_address-country TO w_bp_tel-country.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone1 IS NOT INITIAL.     " Office Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '1'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone2 IS NOT INITIAL.     " Office Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone1 IS NOT INITIAL.     " Residence Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDENCE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone2 IS NOT INITIAL.     " Residence Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDENCE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF it_main-mobile IS NOT INITIAL.         " Mobile Number&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '3'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-mobile.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the E-Mail Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-email IS NOT INITIAL.                        " E-mail1&lt;/P&gt;&lt;P&gt;      it_bp_email-e_mail = it_main-email.&lt;/P&gt;&lt;P&gt;      APPEND it_bp_email.&lt;/P&gt;&lt;P&gt;      CLEAR it_bp_email.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAPI for BP creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_FS_CREATE_FROM_DATA2'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        partnercategory         = v_partn_cat&lt;/P&gt;&lt;P&gt;        centraldata             = w_central&lt;/P&gt;&lt;P&gt;        centraldataperson       = w_central_per&lt;/P&gt;&lt;P&gt;        centraldataorganization = w_central_org&lt;/P&gt;&lt;P&gt;        centraldatagroup        = w_central_group&lt;/P&gt;&lt;P&gt;        addressdata             = w_address&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        businesspartner         = v_bp&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        telefondata             = it_bp_tel&lt;/P&gt;&lt;P&gt;        communicationnotes      = it_bapicomrem&lt;/P&gt;&lt;P&gt;        e_maildata              = it_bp_email&lt;/P&gt;&lt;P&gt;        roles                   = it_role&lt;/P&gt;&lt;P&gt;        return                  = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      flag_bp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Commiting the transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To add Identification details to BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM add_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR   : v_partn_cat, w_central, w_central_per, w_central_org, it_bp_tel, it_bp_email, it_role.&lt;/P&gt;&lt;P&gt;    REFRESH : it_bp_tel, it_bp_email, it_role.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    flag_exist = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If BP exists,address,communication and ID details will be updated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner           = v_bp&lt;/P&gt;&lt;P&gt;        centraldata               = w_central&lt;/P&gt;&lt;P&gt;        centraldataperson         = w_central_per&lt;/P&gt;&lt;P&gt;        centraldataorganization   = w_central_org&lt;/P&gt;&lt;P&gt;        centraldatagroup          = w_central_group&lt;/P&gt;&lt;P&gt;        centraldata_x             = w_central_x&lt;/P&gt;&lt;P&gt;        centraldataperson_x       = w_centralperson_x&lt;/P&gt;&lt;P&gt;        centraldataorganization_x = w_centralorg_x&lt;/P&gt;&lt;P&gt;        centraldatagroup_x        = w_centralgrp_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        return                    = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      flag_central = 'E'.&lt;/P&gt;&lt;P&gt;      g_bp_msg  = it_bp_ret-message.&lt;/P&gt;&lt;P&gt;      CLEAR:it_bp_ret.&lt;/P&gt;&lt;P&gt;      REFRESH:it_bp_ret.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the existing communication details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner = v_bp&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        bapiadtel       = it_bp_tel1&lt;/P&gt;&lt;P&gt;        bapiadsmtp      = it_bp_email1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_bp_tel1 WHERE r_3_user = '1' OR r_3_user = ' '.&lt;/P&gt;&lt;P&gt;      it_bp_tel-consnumber = it_bp_tel1-consnumber.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag     = 'D'.&lt;/P&gt;&lt;P&gt;      APPEND:it_bp_tel,&lt;/P&gt;&lt;P&gt;             it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR: it_bp_tel,&lt;/P&gt;&lt;P&gt;             it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-mobile  IS NOT INITIAL .&lt;/P&gt;&lt;P&gt;      LOOP AT it_bp_tel1 WHERE r_3_user = '2' OR r_3_user = '3'.&lt;/P&gt;&lt;P&gt;        it_bp_tel-consnumber = it_bp_tel1-consnumber.&lt;/P&gt;&lt;P&gt;        it_tel_x-updateflag     = 'D'.&lt;/P&gt;&lt;P&gt;        APPEND:it_bp_tel,&lt;/P&gt;&lt;P&gt;               it_tel_x.&lt;/P&gt;&lt;P&gt;        CLEAR: it_bp_tel,&lt;/P&gt;&lt;P&gt;               it_tel_x.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Updating communication details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone1 IS NOT INITIAL.     " Office Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '1'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone1.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR: it_tel_x.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone2 IS NOT INITIAL.     " Office Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone1 IS NOT INITIAL.     " Residence Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDECE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone2 IS NOT INITIAL.     " Residence Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDECE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-mobile IS NOT INITIAL.         " Mobile Number&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '3'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-mobile.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-email IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT it_bp_email1.&lt;/P&gt;&lt;P&gt;        it_bp_email-consnumber   = it_bp_email1-consnumber.&lt;/P&gt;&lt;P&gt;        it_email_x-updateflag    = 'D'.&lt;/P&gt;&lt;P&gt;        APPEND:it_bp_email,&lt;/P&gt;&lt;P&gt;               it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      it_bp_email-e_mail    =   it_main-email.&lt;/P&gt;&lt;P&gt;      it_email_x-e_mail     = 'I'.&lt;/P&gt;&lt;P&gt;      it_email_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND:it_bp_email,&lt;/P&gt;&lt;P&gt;             it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:it_bp_email,&lt;/P&gt;&lt;P&gt;            it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    REFRESH:it_bp_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Change&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_ADDRESS_CHANGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner = v_bp&lt;/P&gt;&lt;P&gt;        addressdata     = w_address&lt;/P&gt;&lt;P&gt;        addressdata_x   = w_addr_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        bapiadtel       = it_bp_tel&lt;/P&gt;&lt;P&gt;        bapicomrem      = it_bapicomrem&lt;/P&gt;&lt;P&gt;        bapiadtel_x     = it_tel_x&lt;/P&gt;&lt;P&gt;        bapiadsmtp      = it_bp_email&lt;/P&gt;&lt;P&gt;        bapiadsmt_x     = it_email_x&lt;/P&gt;&lt;P&gt;        bapicomre_x     = it_bapicomrem_x&lt;/P&gt;&lt;P&gt;        return          = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      flag_addr = 'E'.&lt;/P&gt;&lt;P&gt;      g_bp_msg1 = it_bp_ret-message.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;    REFRESH it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL OR it_main-fam_tag IS NOT INITIAL OR it_main-cust_id IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Retreiving the existing Identification details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_get USING v_bp.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PAN number addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-pan_no TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_pan.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove existing PAN number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_pan i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          flag_suc = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Performing transaction commit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new PAN number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_pan l_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Customer ID addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-cust_id IS NOT INITIAL AND (  g_dup_status = 1 ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-cust_id  TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_cust.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove existing Customer ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_cust i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Performing transaction commit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new Customer ID number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_cust l_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        flag_suc ='X'.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  To add marketing attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-insti_tag IS NOT INITIAL AND it_main-lob IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM add_makt_attr .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_attr_flag = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Family tag addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-fam_tag  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-fam_tag  TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_fam_tag.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove the existing family tag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_fam_tag i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new Family Tag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_fam_tag l_identification.&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bp_creation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  return_fill&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Return Log Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM return_fill .&lt;/P&gt;&lt;P&gt;  IF flag_exit IS INITIAL.&lt;/P&gt;&lt;P&gt;    IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;      MOVE : recno TO it_error-recno.&lt;/P&gt;&lt;P&gt;      READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF it_bp_ret-id = 'FSBP_BAPI' AND it_bp_ret-number = '052'.&lt;/P&gt;&lt;P&gt;        MOVE text-016 TO it_error-message.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE it_bp_ret-message TO it_error-message.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR it_bp_ret-message.&lt;/P&gt;&lt;P&gt;      APPEND it_error.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF it_iden_flag EQ 'E' OR it_attr_flag EQ 'E' OR flag_addr EQ 'E' OR flag_central EQ 'E' OR  w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ'.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;        MOVE :  v_bp  TO it_error-bp,&lt;/P&gt;&lt;P&gt;                recno TO it_error-recno.&lt;/P&gt;&lt;P&gt;        IF flag_bp EQ 'X'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-017 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_suc EQ 'X'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-018 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF it_iden_flag EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-011 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF it_attr_flag EQ 'E' .&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-012 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_addr EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-013 g_bp_msg1 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_central EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-014  g_bp_msg INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-015 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        APPEND it_error.&lt;/P&gt;&lt;P&gt;        IF ( it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist NE 'X' )&lt;/P&gt;&lt;P&gt;        AND ( w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ' ).&lt;/P&gt;&lt;P&gt;          MOVE : v_bp         TO it_success-bp,&lt;/P&gt;&lt;P&gt;                 recno        TO it_success-rec,&lt;/P&gt;&lt;P&gt;                 it_main-name TO it_success-name.&lt;/P&gt;&lt;P&gt;          APPEND it_success.&lt;/P&gt;&lt;P&gt;          CLEAR  it_success.&lt;/P&gt;&lt;P&gt;        ELSEIF  it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist EQ 'X'&lt;/P&gt;&lt;P&gt;        AND ( w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ' ).&lt;/P&gt;&lt;P&gt;          MOVE : v_bp         TO it_upd_success-bp,&lt;/P&gt;&lt;P&gt;                  recno        TO it_upd_success-rec,&lt;/P&gt;&lt;P&gt;                  it_main-name TO it_upd_success-name.&lt;/P&gt;&lt;P&gt;          APPEND it_upd_success.&lt;/P&gt;&lt;P&gt;          CLEAR  it_upd_success.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist NE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE : v_bp         TO it_success-bp,&lt;/P&gt;&lt;P&gt;               recno        TO it_success-rec,&lt;/P&gt;&lt;P&gt;               it_main-name TO it_success-name.&lt;/P&gt;&lt;P&gt;        APPEND it_success.&lt;/P&gt;&lt;P&gt;        CLEAR  it_success.&lt;/P&gt;&lt;P&gt;      ELSEIF it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist EQ 'X' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE : v_bp         TO it_upd_success-bp,&lt;/P&gt;&lt;P&gt;               recno        TO it_upd_success-rec,&lt;/P&gt;&lt;P&gt;               it_main-name TO it_upd_success-name.&lt;/P&gt;&lt;P&gt;        APPEND it_upd_success.&lt;/P&gt;&lt;P&gt;        CLEAR  it_upd_success.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;    MOVE : recno        TO it_error-recno,&lt;/P&gt;&lt;P&gt;           it_main-name TO it_error-name,&lt;/P&gt;&lt;P&gt;           v_bp         TO it_error-bp.&lt;/P&gt;&lt;P&gt;    MOVE 'Error due to more than one duplicate for the BP ( ' TO it_error-message.&lt;/P&gt;&lt;P&gt;    LOOP AT it_dup_bp.&lt;/P&gt;&lt;P&gt;      CONCATENATE it_error-message it_dup_bp-partner '/' INTO it_error-message.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_error-message ' ).' INTO it_error-message.&lt;/P&gt;&lt;P&gt;    APPEND it_error.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR :   it_iden_flag, it_attr_flag, it_main, it_success, it_error, it_dup_bp.&lt;/P&gt;&lt;P&gt;  REFRESH : it_bp_ret, it_dup_bp.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " return_fill&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  error_file_download&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM error_file_download .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : l_filestring TYPE string.&lt;/P&gt;&lt;P&gt;  CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;  CONSTANTS: con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;  REPLACE '.txt' WITH '_error.txt' INTO p_file .&lt;/P&gt;&lt;P&gt;  REPLACE '.TXT' WITH '_ERROR.TXT' INTO p_file .&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;  LOOP AT it_error.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_error-cust_id        it_error-inv_type_code&lt;/P&gt;&lt;P&gt;                it_error-insti_tag      it_error-name&lt;/P&gt;&lt;P&gt;                it_error-address1       it_error-address2&lt;/P&gt;&lt;P&gt;                it_error-address3       it_error-city&lt;/P&gt;&lt;P&gt;                it_error-state          it_error-country&lt;/P&gt;&lt;P&gt;                it_error-pin_code       it_error-off_phone1&lt;/P&gt;&lt;P&gt;                it_error-off_phone2     it_error-res_phone1&lt;/P&gt;&lt;P&gt;                it_error-res_phone2     it_error-mobile&lt;/P&gt;&lt;P&gt;                it_error-email          it_error-birth_date&lt;/P&gt;&lt;P&gt;                it_error-pan_no         it_error-lob&lt;/P&gt;&lt;P&gt;                it_error-fam_tag        it_error-mod_date&lt;/P&gt;&lt;P&gt;                it_error-bp             it_error-recno&lt;/P&gt;&lt;P&gt;                it_error-message&lt;/P&gt;&lt;P&gt;                INTO l_filestring SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;    TRANSFER l_filestring TO p_file.&lt;/P&gt;&lt;P&gt;    CLEAR l_filestring.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLOSE DATASET p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " error_file_download&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  return_messages&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To write down the return messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM return_messages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_success_lines TYPE int4,&lt;/P&gt;&lt;P&gt;        l_error_lines   TYPE int4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_success LINES l_success_lines.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_error   LINES l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Writing down the number of records processed in the Data Upload Status Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE it_main LINES v_lines.&lt;/P&gt;&lt;P&gt;  WRITE : / 'File Name:', v_file , 90 ' INPUT RECORDS = ', v_lines.&lt;/P&gt;&lt;P&gt;  CLEAR : v_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE: / text-019,l_success_lines.&lt;/P&gt;&lt;P&gt;  CLEAR l_success_lines.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_upd_success LINES l_success_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / text-020,l_success_lines.&lt;/P&gt;&lt;P&gt;  WRITE: / text-021,l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_error[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE: / text-022, p_file.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_success[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 4.&lt;/P&gt;&lt;P&gt;    WRITE:text-023.&lt;/P&gt;&lt;P&gt;    WRITE:/'----&lt;/P&gt;&lt;HR originaltext="----------------------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / '&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;'.&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / 'Successful Records'.&lt;/P&gt;&lt;P&gt;    WRITE: / '&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;'.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: /1 text-008,15 text-009,75 text-010.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_success.&lt;/P&gt;&lt;P&gt;      WRITE: /1 it_success-rec  CENTERED,&lt;/P&gt;&lt;P&gt;             15 it_success-name LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;             75 it_success-bp   CENTERED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_upd_success[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:text-024.&lt;/P&gt;&lt;P&gt;    WRITE:/'----&lt;/P&gt;&lt;HR originaltext="----------------------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    WRITE: /1 text-008,15 text-009,75 text-010.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_upd_success.&lt;/P&gt;&lt;P&gt;      WRITE: /1 it_upd_success-rec  CENTERED,&lt;/P&gt;&lt;P&gt;             15 it_upd_success-name LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;             75 it_upd_success-bp   CENTERED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Spool request to be converted to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  NEW-PAGE.&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;  NEW-PAGE PRINT OFF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " return_messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  transaction_commit&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      wait = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " transaction_commit&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_job_details&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_job_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get current job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'GET_JOB_RUNTIME_INFO'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      eventid                 = gd_eventid&lt;/P&gt;&lt;P&gt;      eventparm               = gd_eventparm&lt;/P&gt;&lt;P&gt;      external_program_active = gd_external_program_active&lt;/P&gt;&lt;P&gt;      jobcount                = gd_jobcount&lt;/P&gt;&lt;P&gt;      jobname                 = gd_jobname&lt;/P&gt;&lt;P&gt;      stepcount               = gd_stepcount&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_runtime_info         = 1&lt;/P&gt;&lt;P&gt;      OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_job_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  obtain_spool_id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To obtain the spool ID generated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM obtain_spool_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT ( gd_jobname IS INITIAL ).&lt;/P&gt;&lt;P&gt;  CHECK NOT ( gd_jobcount IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM  tbtcp&lt;/P&gt;&lt;P&gt;                 INTO TABLE it_tbtcp&lt;/P&gt;&lt;P&gt;                 WHERE      jobname     = gd_jobname&lt;/P&gt;&lt;P&gt;                 AND        jobcount    = gd_jobcount&lt;/P&gt;&lt;P&gt;                 AND        stepcount   = gd_stepcount&lt;/P&gt;&lt;P&gt;                 AND        listident   &amp;lt;&amp;gt; '0000000000'&lt;/P&gt;&lt;P&gt;                 ORDER BY   jobname&lt;/P&gt;&lt;P&gt;                            jobcount&lt;/P&gt;&lt;P&gt;                            stepcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    gd_spool_nr = wa_tbtcp-listident.&lt;/P&gt;&lt;P&gt;    MESSAGE s004 WITH gd_spool_nr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s005.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " obtain_spool_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_spool_to_pdf&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_spool_to_pdf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      src_spoolid              = gd_spool_nr&lt;/P&gt;&lt;P&gt;      no_dialog                = c_no&lt;/P&gt;&lt;P&gt;      dst_device               = c_device&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      pdf_bytecount            = gd_bytecount&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      pdf                      = it_pdf_output&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      err_no_abap_spooljob     = 1&lt;/P&gt;&lt;P&gt;      err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;      err_no_permission        = 3&lt;/P&gt;&lt;P&gt;      err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;      err_bad_destdevice       = 5&lt;/P&gt;&lt;P&gt;      user_cancelled           = 6&lt;/P&gt;&lt;P&gt;      err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;      err_temseerror           = 8&lt;/P&gt;&lt;P&gt;      err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;      err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;      err_btcjob_close_failed  = 11&lt;/P&gt;&lt;P&gt;      OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the 132-long strings to 255-long strings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_pdf_output.&lt;/P&gt;&lt;P&gt;    TRANSLATE it_pdf_output USING ' ~'.&lt;/P&gt;&lt;P&gt;    CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE gd_buffer USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    it_mess_att = gd_buffer.&lt;/P&gt;&lt;P&gt;    APPEND it_mess_att.&lt;/P&gt;&lt;P&gt;    SHIFT gd_buffer LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;    IF gd_buffer IS INITIAL.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_spool_to_pdf&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_email .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_mess_att LINES gd_recsize.&lt;/P&gt;&lt;P&gt;  CHECK gd_recsize &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  PERFORM send_email USING v_email1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_email USING p_email.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CHECK NOT ( p_email IS INITIAL ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Default subject matter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gd_subject         = 'Subject'.&lt;/P&gt;&lt;P&gt;  gd_attachment_desc = 'Joblog'.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Hi,'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '   The batch job which creates Accounts with the transaction data from De-Dupe Software have been Completed.'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '   The joblog have been attached as a PDF file.'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Regards,'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Job Scheduler'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '***********************************&lt;STRONG&gt;This is a system generated mail&lt;/STRONG&gt;*************************************'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no sender specified - default blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_sender EQ space.&lt;/P&gt;&lt;P&gt;    gd_sender_type  = space.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    gd_sender_type  = 'INT'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send file by email as .xls speadsheet&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;                               TABLES it_mess_bod&lt;/P&gt;&lt;P&gt;                                      it_mess_att&lt;/P&gt;&lt;P&gt;                                USING p_email&lt;/P&gt;&lt;P&gt;                                      'Joblog for the Account Creation Batch Job'&lt;/P&gt;&lt;P&gt;                                      'PDF'&lt;/P&gt;&lt;P&gt;                                      gd_attachment_name&lt;/P&gt;&lt;P&gt;                                      gd_attachment_desc&lt;/P&gt;&lt;P&gt;                                      v_sender&lt;/P&gt;&lt;P&gt;                                      gd_sender_type&lt;/P&gt;&lt;P&gt;                             CHANGING gd_error&lt;/P&gt;&lt;P&gt;                                      gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "send_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment TABLES it_message&lt;/P&gt;&lt;P&gt;                                          it_attach&lt;/P&gt;&lt;P&gt;                                    USING p_email&lt;/P&gt;&lt;P&gt;                                          p_mtitle&lt;/P&gt;&lt;P&gt;                                          p_format&lt;/P&gt;&lt;P&gt;                                          p_filename&lt;/P&gt;&lt;P&gt;                                          p_attdescription&lt;/P&gt;&lt;P&gt;                                          p_sender_address&lt;/P&gt;&lt;P&gt;                                          p_sender_addres_type&lt;/P&gt;&lt;P&gt;                                 CHANGING p_error&lt;/P&gt;&lt;P&gt;                                          p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : ld_error    TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;         ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;         ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;         ld_email LIKE  somlreci1-receiver,&lt;/P&gt;&lt;P&gt;         ld_format TYPE  so_obj_tp ,&lt;/P&gt;&lt;P&gt;         ld_attdescription TYPE  so_obj_nam ,&lt;/P&gt;&lt;P&gt;         ld_attfilename TYPE  so_obj_des ,&lt;/P&gt;&lt;P&gt;         ld_sender_address LIKE  soextreci1-receiver,&lt;/P&gt;&lt;P&gt;         ld_sender_address_type LIKE  soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;         ld_receiver LIKE  sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;         w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;         w_doc_data LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ld_email   = p_email.&lt;/P&gt;&lt;P&gt;  ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;  ld_format              = p_format.&lt;/P&gt;&lt;P&gt;  ld_attdescription      = p_attdescription.&lt;/P&gt;&lt;P&gt;  ld_attfilename         = p_filename.&lt;/P&gt;&lt;P&gt;  ld_sender_address      = p_sender_address.&lt;/P&gt;&lt;P&gt;  ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_name  = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;  w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;  READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;  w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;     ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_langu  = sy-langu.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_name   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_descr  = ld_mtitle.&lt;/P&gt;&lt;P&gt;  w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;  CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;  REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;  t_attachment[] = it_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;  REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;  t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;  t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_num   = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_type   =  ld_format.&lt;/P&gt;&lt;P&gt;  t_packing_list-obj_descr  =  ld_attdescription.&lt;/P&gt;&lt;P&gt;  t_packing_list-obj_name   =  ld_attfilename.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_size   =  t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;  APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH t_receivers.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT s_email.&lt;/P&gt;&lt;P&gt;    CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;    t_receivers-receiver = s_email-low.&lt;/P&gt;&lt;P&gt;    t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;    t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;    t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;    t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_receivers.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data              = w_doc_data&lt;/P&gt;&lt;P&gt;      put_in_outbox              = 'X'&lt;/P&gt;&lt;P&gt;      commit_work                = 'X'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sent_to_all                = w_sent_all&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list               = t_packing_list&lt;/P&gt;&lt;P&gt;      contents_bin               = t_attachment&lt;/P&gt;&lt;P&gt;      contents_txt               = it_message&lt;/P&gt;&lt;P&gt;      receivers                  = t_receivers&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      too_many_receivers         = 1&lt;/P&gt;&lt;P&gt;      document_not_sent          = 2&lt;/P&gt;&lt;P&gt;      document_type_not_exist    = 3&lt;/P&gt;&lt;P&gt;      operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;      parameter_error            = 5&lt;/P&gt;&lt;P&gt;      x_error                    = 6&lt;/P&gt;&lt;P&gt;      enqueue_error              = 7&lt;/P&gt;&lt;P&gt;      OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;    ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  trigger_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM trigger_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WAIT UP TO 5 SECONDS.&lt;/P&gt;&lt;P&gt;  SUBMIT rsconn01 WITH mode   = 'INT'&lt;/P&gt;&lt;P&gt;                  WITH output = 'X'&lt;/P&gt;&lt;P&gt;                   AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " trigger_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_get&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To get the ID details of existing BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_get  USING  uv_bp TYPE bu_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:i_id_tab,i_id_tab[].&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATIONDETAILS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner      = uv_bp&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      identificationdetail = i_id_tab&lt;/P&gt;&lt;P&gt;      return               = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_get&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ADD_DETAILS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To add  Identification numbers to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Adding up Identification numbers to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM add_details.&lt;/P&gt;&lt;P&gt;  IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT it_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE it_identification-idnumber TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_IDENTIFICATION_ADD'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          businesspartner        = v_bp&lt;/P&gt;&lt;P&gt;          identificationcategory = it_identification-idcategory&lt;/P&gt;&lt;P&gt;          identificationnumber   = it_identification-idnumber&lt;/P&gt;&lt;P&gt;          identification         = w_identification&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR   : it_iden_ret, wa_iden_ret.&lt;/P&gt;&lt;P&gt;      REFRESH : it_iden_ret.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR   : it_identification.&lt;/P&gt;&lt;P&gt;    REFRESH : it_identification.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM add_makt_attr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ADD_DETAILS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_makt_attr&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add marketing attributes to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_makt_attr .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Assigning Marketing Attributes to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT it_crmt.&lt;/P&gt;&lt;P&gt;      loopno = loopno + 1.&lt;/P&gt;&lt;P&gt;      IF loopno  EQ 2.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt2[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt2.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 3.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt3[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt3.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 4.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt4[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt4.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 5.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt5[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt5.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF it_crmt-crmt IS NOT INITIAL AND it_crmt1[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'CRM_MKTBP_CHANGE_BP'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            iv_profile_template_id = it_crmt-crmt&lt;/P&gt;&lt;P&gt;            iv_partner             = v_bp&lt;/P&gt;&lt;P&gt;            iv_msa                 = 'X'&lt;/P&gt;&lt;P&gt;            iv_commit              = 'X'&lt;/P&gt;&lt;P&gt;            iv_convert_values      = 'X'&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            it_imp_seltab          = it_crmt1&lt;/P&gt;&lt;P&gt;            et_return              = it_attr_ret.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      READ TABLE it_attr_ret INTO wa_attr_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_attr_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSEIF flag_exist = 'X'.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR : it_crmt1.&lt;/P&gt;&lt;P&gt;      REFRESH : it_crmt1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR   : it_crmt, loopno.&lt;/P&gt;&lt;P&gt;    REFRESH : it_crmt.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_makt_attr&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_remove&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     To remove existing Identification details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_remove  USING    uv_bp       TYPE bu_partner&lt;/P&gt;&lt;P&gt;                         uv_id_type  TYPE bu_id_category&lt;/P&gt;&lt;P&gt;                         uv_id_num   TYPE bu_id_number .&lt;/P&gt;&lt;P&gt;  REFRESH it_iden_ret.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATION_REMOVE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner        = uv_bp&lt;/P&gt;&lt;P&gt;      identificationcategory = uv_id_type&lt;/P&gt;&lt;P&gt;      identificationnumber   = uv_id_num&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_remove&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_add&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add Identification to BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_add  USING    uv_bp             TYPE bu_partner&lt;/P&gt;&lt;P&gt;                      uv_id_type        TYPE bu_id_category&lt;/P&gt;&lt;P&gt;                      uv_identification TYPE bu_id_number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATION_ADD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner        = uv_bp&lt;/P&gt;&lt;P&gt;      identificationcategory = uv_id_type&lt;/P&gt;&lt;P&gt;      identificationnumber   = uv_identification&lt;/P&gt;&lt;P&gt;      identification         = w_identification&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_add&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Feb 2008 05:33:03 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-02-18T05:33:03Z</dc:date>
    <item>
      <title>how to avoid using bapi_commit inside a loop .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-using-bapi-commit-inside-a-loop/m-p/3453246#M829644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;Need a help.&lt;/P&gt;&lt;P&gt;This is a program for uploading business partners in CRM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The basic logic of the program is as below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         There are two types of records in the upload file &amp;#150; new/ old ones to be updated&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         A new record is identified by checking if a BP exits based on the cust id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         In case it is a new record certain BAPI&amp;#146;s are called to create a new BP, else the address details, identification etc are updated for the existing one.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-         SQL analysis of the program showed that the maximum amount of time is taken in INSERT/UPDTAE/COMMIT processes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we raised the issue with SAP , they stated that the problem occurs due to the very high no of BAPI_COMMIT calls which is within the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The standard BAPI available allows passing of one record at a time. Hence passing multiple records at a time and a single commit did not seem feasible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also while updating since there are different BAPI&amp;#146;s for address and identification it is being called in a sequence and commit issued after each. If commit is excluded it gives a locking error since the first BAPI tends to lock the record and does not allow subsequent BAPI call&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;kindly suggest me with a solution of using a less commit for updating series of records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The code is as follows:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZBP_BDCP_ACCTRNSDATA_UPLOAD                                 *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Created By : Radhu Shankar.G                                        *&lt;/P&gt;&lt;P&gt;*&amp;amp; Purpose    : Program to Create Investors with the transaction       *&lt;/P&gt;&lt;P&gt;*&amp;amp;              data received from the De-dupe Software.               *&lt;/P&gt;&lt;P&gt;*&amp;amp; Note       : Can be Executed or scheduled only in Background        *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zbp_bdcp_acctrnsdata_upload LINE-SIZE 255 LINE-COUNT 65 NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                                                   MESSAGE-ID zcrm_upload.&lt;/P&gt;&lt;P&gt;TABLES : bbp_iu01.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file TYPE string LOWER CASE OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:s_email FOR bbp_iu01-email NO INTERVALS.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk3 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-004.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-006.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-007.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-005.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Main Upload structure and internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_main,&lt;/P&gt;&lt;P&gt;         cust_id        TYPE bu_bpext,              " Customer ID&lt;/P&gt;&lt;P&gt;         inv_type_code  TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;         insti_tag      TYPE crmt_mktpfchr_atvalue, " Retail/Instituitional Tag&lt;/P&gt;&lt;P&gt;         name           TYPE char120,               " Name&lt;/P&gt;&lt;P&gt;         address1       TYPE ad_strspp1,                    " Address1&lt;/P&gt;&lt;P&gt;         address2       TYPE ad_strspp2,                    " Address2&lt;/P&gt;&lt;P&gt;         address3       TYPE ad_street,                     " Address3&lt;/P&gt;&lt;P&gt;         city           TYPE ad_city1,              " City&lt;/P&gt;&lt;P&gt;         state          TYPE t005u-bezei,           " Region/State&lt;/P&gt;&lt;P&gt;         country        TYPE landx50,               " Country&lt;/P&gt;&lt;P&gt;         pin_code       TYPE ad_pstcd1,             " Pin Code&lt;/P&gt;&lt;P&gt;         off_phone1     TYPE ad_tlnmbr,             " Office Telephone Number1&lt;/P&gt;&lt;P&gt;         off_phone2     TYPE ad_tlnmbr,             " Office Telephone Number2&lt;/P&gt;&lt;P&gt;         res_phone1     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         res_phone2     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         mobile         TYPE ad_mbnmbr1,            " Mobile Number&lt;/P&gt;&lt;P&gt;         email          TYPE ad_smtpadr,                    " Email ID&lt;/P&gt;&lt;P&gt;         birth_date     TYPE bu_birthdt,            " Birth Date&lt;/P&gt;&lt;P&gt;         pan_no         TYPE bu_id_number,          " Pan Number&lt;/P&gt;&lt;P&gt;         lob            TYPE crmt_mktpfchr_atvalue, " Line of Business&lt;/P&gt;&lt;P&gt;         fam_tag        TYPE bu_id_number,          " FAM Tag Number&lt;/P&gt;&lt;P&gt;         mod_date       TYPE sy-datum,              " Modified Date&lt;/P&gt;&lt;P&gt;       END OF i_main.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_main      LIKE i_main            OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Error file structure and internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF i_error,&lt;/P&gt;&lt;P&gt;         cust_id        TYPE bu_bpext,              " Customer ID&lt;/P&gt;&lt;P&gt;         inv_type_code  TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;         insti_tag      TYPE crmt_mktpfchr_atvalue, " Retail/Instituitional Tag&lt;/P&gt;&lt;P&gt;         name           TYPE char120,                     " Name&lt;/P&gt;&lt;P&gt;         address1       TYPE ad_strspp1,                    " Address1&lt;/P&gt;&lt;P&gt;         address2       TYPE ad_strspp2,                    " Address2&lt;/P&gt;&lt;P&gt;         address3       TYPE ad_street,                     " Address3&lt;/P&gt;&lt;P&gt;         city           TYPE ad_city1,              " City&lt;/P&gt;&lt;P&gt;         state          TYPE t005u-bezei,           " Region/State&lt;/P&gt;&lt;P&gt;         country        TYPE landx50,               " Country&lt;/P&gt;&lt;P&gt;         pin_code       TYPE ad_pstcd1,             " Pin Code&lt;/P&gt;&lt;P&gt;         off_phone1     TYPE ad_tlnmbr,             " Office Telephone Number1&lt;/P&gt;&lt;P&gt;         off_phone2     TYPE ad_tlnmbr,             " Office Telephone Number2&lt;/P&gt;&lt;P&gt;         res_phone1     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         res_phone2     TYPE ad_tlnmbr,             " Residence Telephone Number1&lt;/P&gt;&lt;P&gt;         mobile         TYPE ad_mbnmbr1,            " Mobile Number&lt;/P&gt;&lt;P&gt;         email          TYPE ad_smtpadr,                    " Email ID&lt;/P&gt;&lt;P&gt;         birth_date     TYPE bu_birthdt,            " Birth Date&lt;/P&gt;&lt;P&gt;         pan_no         TYPE bu_id_number,          " Pan Number&lt;/P&gt;&lt;P&gt;         lob            TYPE crmt_mktpfchr_atvalue, " Line of Business&lt;/P&gt;&lt;P&gt;         fam_tag        TYPE bu_id_number,          " FAM Tag Number&lt;/P&gt;&lt;P&gt;         mod_date       TYPE sy-datum,              " Modified Date&lt;/P&gt;&lt;P&gt;         bp             TYPE bapibus1006_head-bpartner, " BP&lt;/P&gt;&lt;P&gt;         recno(4)       TYPE c,                         " Record No&lt;/P&gt;&lt;P&gt;         message(255)   TYPE c,                         " Error Message&lt;/P&gt;&lt;P&gt;       END OF i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_error         LIKE i_error            OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Telephone, Email &amp;amp; Role Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : w_bp_tel        TYPE bapiadtel,&lt;/P&gt;&lt;P&gt;       it_bp_tel       TYPE bapiadtel             OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_tel1      TYPE bapiadtel             OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_email     TYPE bapiadsmtp            OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_email1    TYPE bapiadsmtp            OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bapicomrem   TYPE STANDARD TABLE OF bapicomrem   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bapicomrem_x TYPE STANDARD TABLE OF bapicomrex   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_tel_x        TYPE STANDARD TABLE OF bapiadtelx   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_email_x      TYPE STANDARD TABLE OF bapiadsmtx   WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_role         TYPE bapibusisb990_bproles OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_role_cp      TYPE bapibusisb990_bproles OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Identication Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_identification OCCURS 0,&lt;/P&gt;&lt;P&gt;        idcategory TYPE bapibus1006_identification_key-identificationcategory,&lt;/P&gt;&lt;P&gt;        idnumber   TYPE bapibus1006_identification_key-identificationnumber,&lt;/P&gt;&lt;P&gt;      END OF it_identification.&lt;/P&gt;&lt;P&gt;DATA : w_identification TYPE bapibus1006_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Marketing Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_crmt OCCURS 0,&lt;/P&gt;&lt;P&gt;        crmt TYPE crmt_mktprof_keys-profile_template_id,&lt;/P&gt;&lt;P&gt;       END   OF it_crmt.&lt;/P&gt;&lt;P&gt;DATA : it_crmt1  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt2  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt3  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt4  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_crmt5  TYPE STANDARD TABLE OF crmt_mktprof_comw WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_bp_ret TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Basic Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : v_partn_cat       TYPE bapibus1006_head-partn_cat,&lt;/P&gt;&lt;P&gt;       w_central         TYPE bapibus1006_central,&lt;/P&gt;&lt;P&gt;       w_central_x       TYPE bapibus1006_central_x,&lt;/P&gt;&lt;P&gt;       w_central_org     TYPE bapibus1006_central_organ,&lt;/P&gt;&lt;P&gt;       w_central_per     TYPE bapibus1006_central_person,&lt;/P&gt;&lt;P&gt;       w_central_group   TYPE bapibus1006_central_group,&lt;/P&gt;&lt;P&gt;       w_centralorg_x    TYPE bapibus1006_central_organ_x,&lt;/P&gt;&lt;P&gt;       w_centralperson_x TYPE bapibus1006_central_person_x,&lt;/P&gt;&lt;P&gt;       w_centralgrp_x    TYPE bapibus1006_central_group_x,&lt;/P&gt;&lt;P&gt;       w_address         TYPE bapibus1006_address,&lt;/P&gt;&lt;P&gt;       w_addr_x          TYPE bapibus1006_address_x,&lt;/P&gt;&lt;P&gt;       v_bp              TYPE bapibus1006_head-bpartner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declaration for Duplication Check&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : w_zacc_address  TYPE zacc_address,&lt;/P&gt;&lt;P&gt;       g_dup_status      TYPE i.&lt;/P&gt;&lt;P&gt;DATA : it_dup_bp TYPE STANDARD TABLE OF zbuspartner WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_pan     TYPE bu_id_type  VALUE 'ZID003',&lt;/P&gt;&lt;P&gt;           c_fam_tag TYPE bu_id_type  VALUE 'ZID011',&lt;/P&gt;&lt;P&gt;           c_cust    TYPE bu_id_type  VALUE 'ZID009'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Other Declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : v_inv_type      TYPE crmt_mktpfchr_atvalue, " Investor Type Code&lt;/P&gt;&lt;P&gt;       v_file          TYPE string,&lt;/P&gt;&lt;P&gt;       v_firstname     TYPE bu_nameor1,&lt;/P&gt;&lt;P&gt;       v_filename1(14) TYPE c,&lt;/P&gt;&lt;P&gt;       v_filename2(14) TYPE c,&lt;/P&gt;&lt;P&gt;       v_lines         TYPE int4,&lt;/P&gt;&lt;P&gt;       v_cat           TYPE bu_type,&lt;/P&gt;&lt;P&gt;       recno           TYPE int4,&lt;/P&gt;&lt;P&gt;       loopno          TYPE int4,&lt;/P&gt;&lt;P&gt;       it_iden_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_attr_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       it_role_ret     TYPE bapiret2 OCCURS 0,&lt;/P&gt;&lt;P&gt;       wa_iden_ret     TYPE bapiret2,&lt;/P&gt;&lt;P&gt;       wa_attr_ret     TYPE bapiret2,&lt;/P&gt;&lt;P&gt;       it_iden_flag    TYPE c,&lt;/P&gt;&lt;P&gt;       it_attr_flag    TYPE c,&lt;/P&gt;&lt;P&gt;       flag_central    TYPE c,&lt;/P&gt;&lt;P&gt;       flag_addr       TYPE c,&lt;/P&gt;&lt;P&gt;       flag_bp         TYPE c,&lt;/P&gt;&lt;P&gt;       flag_suc        TYPE c,&lt;/P&gt;&lt;P&gt;       flag_exist      TYPE c,&lt;/P&gt;&lt;P&gt;       flag_exit       TYPE c,&lt;/P&gt;&lt;P&gt;       g_bp_msg        TYPE string,&lt;/P&gt;&lt;P&gt;       g_bp_msg1       TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_success,&lt;/P&gt;&lt;P&gt;         rec   TYPE  int4,                      "Record&lt;/P&gt;&lt;P&gt;         name  TYPE  bu_nameor1,                "Name&lt;/P&gt;&lt;P&gt;         bp    TYPE  bapibus1006_head-bpartner, "Business Partner&lt;/P&gt;&lt;P&gt;       END OF i_success,&lt;/P&gt;&lt;P&gt;       it_success     LIKE i_success OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_upd_success LIKE i_success OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Declaration for converting spool request to PDF and to trigger mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_recsize TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Spool IDs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES : BEGIN OF t_tbtcp.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tbtcp.&lt;/P&gt;&lt;P&gt;TYPES : END OF t_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;       wa_tbtcp TYPE t_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Job Runtime Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_eventid                 LIKE tbtcm-eventid,&lt;/P&gt;&lt;P&gt;       gd_eventparm               LIKE tbtcm-eventparm,&lt;/P&gt;&lt;P&gt;       gd_external_program_active LIKE tbtcm-xpgactive,&lt;/P&gt;&lt;P&gt;       gd_jobcount                LIKE tbtcm-jobcount,&lt;/P&gt;&lt;P&gt;       gd_jobname                 LIKE tbtcm-jobname,&lt;/P&gt;&lt;P&gt;       gd_stepcount               LIKE tbtcm-stepcount,&lt;/P&gt;&lt;P&gt;       gd_error                   TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;       gd_reciever                TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : w_recsize TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : gd_subject   LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;       it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       gd_sender_type     LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;       gd_attachment_desc TYPE so_obj_nam,&lt;/P&gt;&lt;P&gt;       gd_attachment_name TYPE so_obj_des.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Spool to PDF conversions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : gd_spool_nr LIKE tsp01-rqident,&lt;/P&gt;&lt;P&gt;       gd_destination LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;       gd_bytecount LIKE tst01-dsize,&lt;/P&gt;&lt;P&gt;       gd_buffer TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Binary store for PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF it_pdf_output OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tline.&lt;/P&gt;&lt;P&gt;DATA : END OF it_pdf_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : v_email1 TYPE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;       v_sender TYPE somlreci1-receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_no(1)     TYPE c   VALUE ' ',&lt;/P&gt;&lt;P&gt;           c_device(4) TYPE c   VALUE 'LOCL',&lt;/P&gt;&lt;P&gt;           c_delspl    TYPE c   VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF result OCCURS 0,&lt;/P&gt;&lt;P&gt;         line(100) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF result.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:i_id_tab TYPE STANDARD  TABLE OF bapibus1006_id_details WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: g_spl type c value ''.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Renaming the target file daily&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONCATENATE '_' sy-datum '.txt' INTO v_filename1.&lt;/P&gt;&lt;P&gt;CONCATENATE '_' sy-datum '.TXT' INTO v_filename2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  SELECT COUNT(*) FROM zbp_tax_status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:/ text-011.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : it_main.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uploading the file from either presentatinon layer or application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM file_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Creating the BP number and assigning &amp;amp; adding up other attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_main.&lt;/P&gt;&lt;P&gt;    PERFORM data_fill.                       " Filling up global structures &amp;amp; variables&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF v_bp IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM duplication_check.             " Duplication check&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bp_creation.                     " BP Creation&lt;/P&gt;&lt;P&gt;    PERFORM return_fill.                     " Filling up Return Tables&lt;/P&gt;&lt;P&gt;    CLEAR : v_bp, it_main, flag_exit, g_dup_status, it_identification, it_crmt, it_crmt1, it_crmt2, it_crmt3, it_crmt4, it_crmt5,&lt;/P&gt;&lt;P&gt;            w_bp_tel,it_bp_tel,it_bp_tel1,it_bp_email,it_bp_email1,it_tel_x,it_email_x,w_addr_x,w_centralorg_x,w_centralperson_x,&lt;/P&gt;&lt;P&gt;            w_centralgrp_x,flag_addr,flag_central,it_iden_flag,it_attr_flag,it_bapicomrem,w_central,w_central_x, v_inv_type,it_bapicomrem_x,&lt;/P&gt;&lt;P&gt;            w_central_org,w_central_per,w_central_group,flag_bp,flag_suc,flag_exist,it_bp_ret,g_bp_msg,g_bp_msg1,v_cat,wa_attr_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH :it_identification, it_crmt, it_crmt1, it_crmt2, it_crmt3, it_crmt4, it_crmt5,it_bapicomrem,&lt;/P&gt;&lt;P&gt;             it_bp_tel,it_bp_tel1,it_bp_email,it_bp_email1,it_tel_x,it_email_x,it_bp_ret,it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Downloading the file to be reprocessed to the application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_error[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM error_file_download.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constructing the Return Messages for the Job&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM return_messages.                  " Return Message Construction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting the return messages into PDF file and trigerring a mail notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-batch EQ 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM get_job_details.&lt;/P&gt;&lt;P&gt;    PERFORM obtain_spool_id.&lt;/P&gt;&lt;P&gt;    PERFORM convert_spool_to_pdf.&lt;/P&gt;&lt;P&gt;    PERFORM process_email.&lt;/P&gt;&lt;P&gt;    PERFORM trigger_email.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  file_upload&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM file_upload .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data declatration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_filestr  TYPE string.&lt;/P&gt;&lt;P&gt;  CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;  CONSTANTS: con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;  REPLACE '.txt' WITH v_filename1 INTO p_file .&lt;/P&gt;&lt;P&gt;  REPLACE '.TXT' WITH v_filename2 INTO p_file .&lt;/P&gt;&lt;P&gt;  MOVE p_file TO v_file.&lt;/P&gt;&lt;P&gt;  IF sy-batch EQ 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uploading the file from application server if the job is scheduled in background&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                              IGNORING CONVERSION ERRORS REPLACEMENT CHARACTER g_spl.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;eliminting the error for convt page error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      DO.&lt;/P&gt;&lt;P&gt;        READ DATASET p_file INTO l_filestr.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          EXIT.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CLEAR it_main.&lt;/P&gt;&lt;P&gt;          SPLIT l_filestr  AT con_tab INTO:&lt;/P&gt;&lt;P&gt;            it_main-cust_id        it_main-inv_type_code&lt;/P&gt;&lt;P&gt;            it_main-insti_tag      it_main-name&lt;/P&gt;&lt;P&gt;            it_main-address1       it_main-address2&lt;/P&gt;&lt;P&gt;            it_main-address3       it_main-city&lt;/P&gt;&lt;P&gt;            it_main-state          it_main-country&lt;/P&gt;&lt;P&gt;            it_main-pin_code       it_main-off_phone1&lt;/P&gt;&lt;P&gt;            it_main-off_phone2     it_main-res_phone1&lt;/P&gt;&lt;P&gt;            it_main-res_phone2     it_main-mobile&lt;/P&gt;&lt;P&gt;            it_main-email          it_main-birth_date&lt;/P&gt;&lt;P&gt;            it_main-pan_no         it_main-lob&lt;/P&gt;&lt;P&gt;            it_main-fam_tag        it_main-mod_date.&lt;/P&gt;&lt;P&gt;          APPEND it_main.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDDO.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE : / 'The file',&lt;/P&gt;&lt;P&gt;                 p_file,&lt;/P&gt;&lt;P&gt;                 'is not found.'.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLOSE DATASET p_file.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE : / 'The Program can only be executed in the background.'.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR : l_filestr, it_main.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " file_upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  data_fill&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_fill .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up Partner Category (v_Partn_cat) ,workarea (w_central), workarea (w_central_org) &amp;amp; workarea (w_central_per)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE bp_category tax_status FROM zbp_tax_status&lt;/P&gt;&lt;P&gt;                    INTO (v_partn_cat,v_inv_type)&lt;/P&gt;&lt;P&gt;                    WHERE inv_code EQ it_main-inv_type_code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Authorization Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_main-lob EQ 'M' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZMFR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'M' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZMFI'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'P' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZPMR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'P' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZPMI'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'A' AND it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZBOR'.&lt;/P&gt;&lt;P&gt;  ELSEIF it_main-lob EQ 'A' AND it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;P&gt;    w_central-authorizationgroup = 'ZBOI'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up workarea (w_address)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_main-address1 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address1 TO w_address-str_suppl1,&lt;/P&gt;&lt;P&gt;           it_main-address1 TO w_zacc_address-address1,&lt;/P&gt;&lt;P&gt;           'X'              TO w_addr_x-str_suppl1 .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-address2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address2 TO w_address-str_suppl2,&lt;/P&gt;&lt;P&gt;           it_main-address2 TO w_zacc_address-address2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           'X'              TO w_addr_x-str_suppl2 .&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-address3 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-address3 TO w_address-street,&lt;/P&gt;&lt;P&gt;           it_main-address3 TO w_zacc_address-address3,&lt;/P&gt;&lt;P&gt;          'X'               TO w_addr_x-street.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-city  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE :   it_main-city     TO w_address-city,&lt;/P&gt;&lt;P&gt;             it_main-city     TO w_zacc_address-city,&lt;/P&gt;&lt;P&gt;             'X'              TO w_addr_x-city.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-pin_code  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE :   it_main-pin_code TO w_address-postl_cod1,&lt;/P&gt;&lt;P&gt;            'X'               TO w_addr_x-postl_cod1.&lt;/P&gt;&lt;P&gt;    TRANSLATE w_address-postl_cod1 TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_main-country IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE : 'X' TO w_addr_x-country.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_main-state IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE: 'X'  TO w_addr_x-region.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Picking up Country &amp;amp; State Codes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE land1 FROM t005t INTO w_address-country&lt;/P&gt;&lt;P&gt;       WHERE spras   EQ 'E'&lt;/P&gt;&lt;P&gt;         AND landx50 EQ it_main-country.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE bland FROM t005u INTO w_address-region&lt;/P&gt;&lt;P&gt;         WHERE spras EQ 'E'&lt;/P&gt;&lt;P&gt;           AND land1 EQ w_address-country&lt;/P&gt;&lt;P&gt;           AND bezei EQ it_main-state.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      w_address-region = 'ZZ'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_address-country = 'ZZ'.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE bland FROM t005u INTO w_address-region&lt;/P&gt;&lt;P&gt;         WHERE spras EQ 'E'&lt;/P&gt;&lt;P&gt;           AND land1 EQ w_address-country&lt;/P&gt;&lt;P&gt;           AND bezei EQ it_main-state.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      w_address-region = 'ZZ'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_zacc_address-country = w_address-country.&lt;/P&gt;&lt;P&gt;  w_zacc_address-state   = w_address-region.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the BP Role Detail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_role-partnerrole = 'Z1INVS'.&lt;/P&gt;&lt;P&gt;  APPEND it_role.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finding out the BP number from the client ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF it_main-cust_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE partner FROM but0id INTO  v_bp&lt;/P&gt;&lt;P&gt;                  WHERE type     EQ 'ZID009'&lt;/P&gt;&lt;P&gt;                    AND idnumber EQ it_main-cust_id.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE type FROM but000 INTO v_cat&lt;/P&gt;&lt;P&gt;                          WHERE partner = v_bp.&lt;/P&gt;&lt;P&gt;      PERFORM name_processing USING v_cat.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM name_processing USING v_partn_cat.    " Processing the Name &amp;amp; Title depending on partner category&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Identication Number Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-cust_id IS NOT INITIAL.        " Customer ID&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID009'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-cust_id.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL.        " Pan Number&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID003'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-pan_no.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-fam_tag IS NOT INITIAL.        " Family Tag Number&lt;/P&gt;&lt;P&gt;      it_identification-idcategory = 'ZID011'.&lt;/P&gt;&lt;P&gt;      it_identification-idnumber   = it_main-fam_tag.&lt;/P&gt;&lt;P&gt;      APPEND it_identification.&lt;/P&gt;&lt;P&gt;      CLEAR  it_identification.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Filling up the Marketing Attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF v_inv_type IS NOT INITIAL.                 " Tax status&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname = 'TAX_STATUS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atwrt  =  v_inv_type.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-lob IS NOT INITIAL.                " Product Tag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname   = 'LOB'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF it_main-lob EQ 'M'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'MF'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-lob EQ 'P'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'PMS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-lob EQ 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'BOTH'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-insti_tag IS NOT INITIAL.         " Retail/Instituitional Tag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_crmt1-atname   = 'ORGANISATION_STRUCTURE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF it_main-insti_tag EQ 'N'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'RETAIL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-insti_tag EQ 'Y'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'INSTITUTIONAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ELSEIF it_main-insti_tag EQ 'F'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       it_crmt1-atwrt  = 'INTERNATIONAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR : it_crmt1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt2-atname = 'VIP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt2-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt2.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt3-atname = 'PRIORITY'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt3-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt3.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt3.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt4-atname = 'CONTACTBLE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt4-atwrt  = 'NOT CLASSIFIED'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt5-atname = 'SOURCE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt5-atwrt  = 'CAMS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt5.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR : it_crmt5.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'CENTALISED_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'GENERAL_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'MF_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'PMS_CLF_INV'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_crmt-crmt = 'SOURCE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND it_crmt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR it_crmt-crmt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Return Message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  recno = recno + 1.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " data_fill&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  duplication_check&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM duplication_check .&lt;/P&gt;&lt;P&gt;  DATA : l_lines TYPE i.&lt;/P&gt;&lt;P&gt;  IF v_firstname IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'ZACC_DUPLICATIONCHECK'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        role            = 'Z1INVS'&lt;/P&gt;&lt;P&gt;        firstname       = v_firstname&lt;/P&gt;&lt;P&gt;        pan_no          = it_main-pan_no&lt;/P&gt;&lt;P&gt;        mobile          = it_main-mobile&lt;/P&gt;&lt;P&gt;        email           = it_main-email&lt;/P&gt;&lt;P&gt;        address         = w_zacc_address&lt;/P&gt;&lt;P&gt;        partnercategory = v_partn_cat&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        status          = g_dup_status&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        buspartner      = it_dup_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE it_dup_bp LINES l_lines.&lt;/P&gt;&lt;P&gt;    IF l_lines EQ 1.&lt;/P&gt;&lt;P&gt;      IF g_dup_status EQ 1.&lt;/P&gt;&lt;P&gt;        READ TABLE it_dup_bp INDEX 1.&lt;/P&gt;&lt;P&gt;        MOVE it_dup_bp-partner TO v_bp.&lt;/P&gt;&lt;P&gt;      ELSEIF g_dup_status EQ 2.&lt;/P&gt;&lt;P&gt;        flag_exit = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSEIF l_lines GT 1.&lt;/P&gt;&lt;P&gt;      flag_exit = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR : l_lines, v_firstname.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " duplication_check&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  name_processing&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM name_processing USING uv_cat TYPE bu_type.&lt;/P&gt;&lt;P&gt;  IF it_main-name IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If category is Person&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF uv_cat EQ 1.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_per-firstname&lt;/P&gt;&lt;P&gt;          middle = w_central_per-middlename&lt;/P&gt;&lt;P&gt;          last   = w_central_per-lastname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralperson_x-firstname  = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-middlename = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-lastname   = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralperson_x-birthdate  = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE : it_main-birth_date TO w_central_per-birthdate,&lt;/P&gt;&lt;P&gt;             w_central_per-firstname TO v_firstname.&lt;/P&gt;&lt;P&gt;    ELSEIF uv_cat EQ 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If category is organisation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_org-name2&lt;/P&gt;&lt;P&gt;          middle = w_central_org-name1&lt;/P&gt;&lt;P&gt;          last   = w_central_org-name3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name1 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name2 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralorg_x-name3 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE w_central_org-name2 TO v_firstname.&lt;/P&gt;&lt;P&gt;    ELSEIF uv_cat EQ 3.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If category is group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'ZGET_NAME_FROM_STRING'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          name   = it_main-name&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          first  = w_central_group-namegroup2&lt;/P&gt;&lt;P&gt;          middle = w_central_group-namegroup1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_centralgrp_x-namegroup1 = 'X'.&lt;/P&gt;&lt;P&gt;      w_centralgrp_x-namegroup2 = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE w_central_group-namegroup2 TO v_firstname.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    MOVE : it_main-name+0(8)    TO w_central-searchterm1,&lt;/P&gt;&lt;P&gt;           'X'                  TO w_central_x-searchterm1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " name_processing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bp_creation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bp_creation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:l_identification   TYPE bapibus1006_identification_key-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Telephone Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE : w_address-country TO w_bp_tel-country.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone1 IS NOT INITIAL.     " Office Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '1'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone2 IS NOT INITIAL.     " Office Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone1 IS NOT INITIAL.     " Residence Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDENCE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone2 IS NOT INITIAL.     " Residence Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDENCE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF it_main-mobile IS NOT INITIAL.         " Mobile Number&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '3'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-mobile.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the E-Mail Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-email IS NOT INITIAL.                        " E-mail1&lt;/P&gt;&lt;P&gt;      it_bp_email-e_mail = it_main-email.&lt;/P&gt;&lt;P&gt;      APPEND it_bp_email.&lt;/P&gt;&lt;P&gt;      CLEAR it_bp_email.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAPI for BP creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_FS_CREATE_FROM_DATA2'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        partnercategory         = v_partn_cat&lt;/P&gt;&lt;P&gt;        centraldata             = w_central&lt;/P&gt;&lt;P&gt;        centraldataperson       = w_central_per&lt;/P&gt;&lt;P&gt;        centraldataorganization = w_central_org&lt;/P&gt;&lt;P&gt;        centraldatagroup        = w_central_group&lt;/P&gt;&lt;P&gt;        addressdata             = w_address&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        businesspartner         = v_bp&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        telefondata             = it_bp_tel&lt;/P&gt;&lt;P&gt;        communicationnotes      = it_bapicomrem&lt;/P&gt;&lt;P&gt;        e_maildata              = it_bp_email&lt;/P&gt;&lt;P&gt;        roles                   = it_role&lt;/P&gt;&lt;P&gt;        return                  = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      flag_bp = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Commiting the transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To add Identification details to BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM add_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR   : v_partn_cat, w_central, w_central_per, w_central_org, it_bp_tel, it_bp_email, it_role.&lt;/P&gt;&lt;P&gt;    REFRESH : it_bp_tel, it_bp_email, it_role.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    flag_exist = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If BP exists,address,communication and ID details will be updated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_CENTRAL_CHANGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner           = v_bp&lt;/P&gt;&lt;P&gt;        centraldata               = w_central&lt;/P&gt;&lt;P&gt;        centraldataperson         = w_central_per&lt;/P&gt;&lt;P&gt;        centraldataorganization   = w_central_org&lt;/P&gt;&lt;P&gt;        centraldatagroup          = w_central_group&lt;/P&gt;&lt;P&gt;        centraldata_x             = w_central_x&lt;/P&gt;&lt;P&gt;        centraldataperson_x       = w_centralperson_x&lt;/P&gt;&lt;P&gt;        centraldataorganization_x = w_centralorg_x&lt;/P&gt;&lt;P&gt;        centraldatagroup_x        = w_centralgrp_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        return                    = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      flag_central = 'E'.&lt;/P&gt;&lt;P&gt;      g_bp_msg  = it_bp_ret-message.&lt;/P&gt;&lt;P&gt;      CLEAR:it_bp_ret.&lt;/P&gt;&lt;P&gt;      REFRESH:it_bp_ret.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the existing communication details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner = v_bp&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        bapiadtel       = it_bp_tel1&lt;/P&gt;&lt;P&gt;        bapiadsmtp      = it_bp_email1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_bp_tel1 WHERE r_3_user = '1' OR r_3_user = ' '.&lt;/P&gt;&lt;P&gt;      it_bp_tel-consnumber = it_bp_tel1-consnumber.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag     = 'D'.&lt;/P&gt;&lt;P&gt;      APPEND:it_bp_tel,&lt;/P&gt;&lt;P&gt;             it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR: it_bp_tel,&lt;/P&gt;&lt;P&gt;             it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-mobile  IS NOT INITIAL .&lt;/P&gt;&lt;P&gt;      LOOP AT it_bp_tel1 WHERE r_3_user = '2' OR r_3_user = '3'.&lt;/P&gt;&lt;P&gt;        it_bp_tel-consnumber = it_bp_tel1-consnumber.&lt;/P&gt;&lt;P&gt;        it_tel_x-updateflag     = 'D'.&lt;/P&gt;&lt;P&gt;        APPEND:it_bp_tel,&lt;/P&gt;&lt;P&gt;               it_tel_x.&lt;/P&gt;&lt;P&gt;        CLEAR: it_bp_tel,&lt;/P&gt;&lt;P&gt;               it_tel_x.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Updating communication details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone1 IS NOT INITIAL.     " Office Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '1'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone1.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR: it_tel_x.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-off_phone2 IS NOT INITIAL.     " Office Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-off_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'OFFICE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone1 IS NOT INITIAL.     " Residence Telephone1&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone1.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDECE PHONE1'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-res_phone2 IS NOT INITIAL.     " Residence Telephone2&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-res_phone2.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_type  = 'TEL'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-langu      = 'EN'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem-comm_notes = 'RESIDECE PHONE2'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_type  = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-langu      = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-comm_notes = 'I'.&lt;/P&gt;&lt;P&gt;      it_bapicomrem_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND it_bapicomrem_x.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-mobile IS NOT INITIAL.         " Mobile Number&lt;/P&gt;&lt;P&gt;      w_bp_tel-r_3_user  = '3'.&lt;/P&gt;&lt;P&gt;      w_bp_tel-telephone = it_main-mobile.&lt;/P&gt;&lt;P&gt;      APPEND w_bp_tel TO it_bp_tel.&lt;/P&gt;&lt;P&gt;      it_tel_x-telephone     = 'I'.&lt;/P&gt;&lt;P&gt;      it_tel_x-updateflag    = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND:it_tel_x.&lt;/P&gt;&lt;P&gt;      CLEAR:it_tel_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_bp_tel-r_3_user, w_bp_tel-telephone.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-email IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT it_bp_email1.&lt;/P&gt;&lt;P&gt;        it_bp_email-consnumber   = it_bp_email1-consnumber.&lt;/P&gt;&lt;P&gt;        it_email_x-updateflag    = 'D'.&lt;/P&gt;&lt;P&gt;        APPEND:it_bp_email,&lt;/P&gt;&lt;P&gt;               it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      it_bp_email-e_mail    =   it_main-email.&lt;/P&gt;&lt;P&gt;      it_email_x-e_mail     = 'I'.&lt;/P&gt;&lt;P&gt;      it_email_x-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;      APPEND:it_bp_email,&lt;/P&gt;&lt;P&gt;             it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR:it_bp_email,&lt;/P&gt;&lt;P&gt;            it_email_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    REFRESH:it_bp_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BP Change&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_BUPA_ADDRESS_CHANGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        businesspartner = v_bp&lt;/P&gt;&lt;P&gt;        addressdata     = w_address&lt;/P&gt;&lt;P&gt;        addressdata_x   = w_addr_x&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        bapiadtel       = it_bp_tel&lt;/P&gt;&lt;P&gt;        bapicomrem      = it_bapicomrem&lt;/P&gt;&lt;P&gt;        bapiadtel_x     = it_tel_x&lt;/P&gt;&lt;P&gt;        bapiadsmtp      = it_bp_email&lt;/P&gt;&lt;P&gt;        bapiadsmt_x     = it_email_x&lt;/P&gt;&lt;P&gt;        bapicomre_x     = it_bapicomrem_x&lt;/P&gt;&lt;P&gt;        return          = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      flag_addr = 'E'.&lt;/P&gt;&lt;P&gt;      g_bp_msg1 = it_bp_ret-message.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;    REFRESH it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL OR it_main-fam_tag IS NOT INITIAL OR it_main-cust_id IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Retreiving the existing Identification details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_get USING v_bp.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PAN number addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-pan_no IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-pan_no TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_pan.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove existing PAN number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_pan i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          flag_suc = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Performing transaction commit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new PAN number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_pan l_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Customer ID addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-cust_id IS NOT INITIAL AND (  g_dup_status = 1 ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-cust_id  TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_cust.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove existing Customer ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_cust i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Performing transaction commit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new Customer ID number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_cust l_identification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        flag_suc ='X'.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  To add marketing attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF it_main-insti_tag IS NOT INITIAL AND it_main-lob IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     PERFORM add_makt_attr .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     it_attr_flag = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Family tag addition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF it_main-fam_tag  IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR l_identification.&lt;/P&gt;&lt;P&gt;      MOVE it_main-fam_tag  TO l_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE l_identification TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      READ TABLE i_id_tab WITH KEY identificationtype = c_fam_tag.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To remove the existing family tag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM id_remove USING v_bp c_fam_tag i_id_tab-identificationnumber.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;          it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR:it_iden_ret[],it_iden_ret.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add new Family Tag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM id_add USING v_bp c_fam_tag l_identification.&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bp_creation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  return_fill&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Filling up the Return Log Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM return_fill .&lt;/P&gt;&lt;P&gt;  IF flag_exit IS INITIAL.&lt;/P&gt;&lt;P&gt;    IF v_bp IS INITIAL.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;      MOVE : recno TO it_error-recno.&lt;/P&gt;&lt;P&gt;      READ TABLE it_bp_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF it_bp_ret-id = 'FSBP_BAPI' AND it_bp_ret-number = '052'.&lt;/P&gt;&lt;P&gt;        MOVE text-016 TO it_error-message.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE it_bp_ret-message TO it_error-message.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR it_bp_ret-message.&lt;/P&gt;&lt;P&gt;      APPEND it_error.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF it_iden_flag EQ 'E' OR it_attr_flag EQ 'E' OR flag_addr EQ 'E' OR flag_central EQ 'E' OR  w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ'.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;        MOVE :  v_bp  TO it_error-bp,&lt;/P&gt;&lt;P&gt;                recno TO it_error-recno.&lt;/P&gt;&lt;P&gt;        IF flag_bp EQ 'X'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-017 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_suc EQ 'X'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-018 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF it_iden_flag EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-011 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF it_attr_flag EQ 'E' .&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-012 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_addr EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-013 g_bp_msg1 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        IF flag_central EQ 'E'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-014  g_bp_msg INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ'.&lt;/P&gt;&lt;P&gt;          CONCATENATE it_error-message text-015 INTO it_error-message SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        APPEND it_error.&lt;/P&gt;&lt;P&gt;        IF ( it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist NE 'X' )&lt;/P&gt;&lt;P&gt;        AND ( w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ' ).&lt;/P&gt;&lt;P&gt;          MOVE : v_bp         TO it_success-bp,&lt;/P&gt;&lt;P&gt;                 recno        TO it_success-rec,&lt;/P&gt;&lt;P&gt;                 it_main-name TO it_success-name.&lt;/P&gt;&lt;P&gt;          APPEND it_success.&lt;/P&gt;&lt;P&gt;          CLEAR  it_success.&lt;/P&gt;&lt;P&gt;        ELSEIF  it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist EQ 'X'&lt;/P&gt;&lt;P&gt;        AND ( w_address-country EQ 'ZZ' OR w_address-region EQ 'ZZ' ).&lt;/P&gt;&lt;P&gt;          MOVE : v_bp         TO it_upd_success-bp,&lt;/P&gt;&lt;P&gt;                  recno        TO it_upd_success-rec,&lt;/P&gt;&lt;P&gt;                  it_main-name TO it_upd_success-name.&lt;/P&gt;&lt;P&gt;          APPEND it_upd_success.&lt;/P&gt;&lt;P&gt;          CLEAR  it_upd_success.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist NE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE : v_bp         TO it_success-bp,&lt;/P&gt;&lt;P&gt;               recno        TO it_success-rec,&lt;/P&gt;&lt;P&gt;               it_main-name TO it_success-name.&lt;/P&gt;&lt;P&gt;        APPEND it_success.&lt;/P&gt;&lt;P&gt;        CLEAR  it_success.&lt;/P&gt;&lt;P&gt;      ELSEIF it_iden_flag NE 'E' AND it_attr_flag NE 'E' AND flag_addr NE 'E' AND flag_central NE 'E' AND flag_exist EQ 'X' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE : v_bp         TO it_upd_success-bp,&lt;/P&gt;&lt;P&gt;               recno        TO it_upd_success-rec,&lt;/P&gt;&lt;P&gt;               it_main-name TO it_upd_success-name.&lt;/P&gt;&lt;P&gt;        APPEND it_upd_success.&lt;/P&gt;&lt;P&gt;        CLEAR  it_upd_success.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING it_main TO it_error.&lt;/P&gt;&lt;P&gt;    MOVE : recno        TO it_error-recno,&lt;/P&gt;&lt;P&gt;           it_main-name TO it_error-name,&lt;/P&gt;&lt;P&gt;           v_bp         TO it_error-bp.&lt;/P&gt;&lt;P&gt;    MOVE 'Error due to more than one duplicate for the BP ( ' TO it_error-message.&lt;/P&gt;&lt;P&gt;    LOOP AT it_dup_bp.&lt;/P&gt;&lt;P&gt;      CONCATENATE it_error-message it_dup_bp-partner '/' INTO it_error-message.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_error-message ' ).' INTO it_error-message.&lt;/P&gt;&lt;P&gt;    APPEND it_error.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR :   it_iden_flag, it_attr_flag, it_main, it_success, it_error, it_dup_bp.&lt;/P&gt;&lt;P&gt;  REFRESH : it_bp_ret, it_dup_bp.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " return_fill&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  error_file_download&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM error_file_download .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : l_filestring TYPE string.&lt;/P&gt;&lt;P&gt;  CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;  CONSTANTS: con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;  REPLACE '.txt' WITH '_error.txt' INTO p_file .&lt;/P&gt;&lt;P&gt;  REPLACE '.TXT' WITH '_ERROR.TXT' INTO p_file .&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;  LOOP AT it_error.&lt;/P&gt;&lt;P&gt;    CONCATENATE it_error-cust_id        it_error-inv_type_code&lt;/P&gt;&lt;P&gt;                it_error-insti_tag      it_error-name&lt;/P&gt;&lt;P&gt;                it_error-address1       it_error-address2&lt;/P&gt;&lt;P&gt;                it_error-address3       it_error-city&lt;/P&gt;&lt;P&gt;                it_error-state          it_error-country&lt;/P&gt;&lt;P&gt;                it_error-pin_code       it_error-off_phone1&lt;/P&gt;&lt;P&gt;                it_error-off_phone2     it_error-res_phone1&lt;/P&gt;&lt;P&gt;                it_error-res_phone2     it_error-mobile&lt;/P&gt;&lt;P&gt;                it_error-email          it_error-birth_date&lt;/P&gt;&lt;P&gt;                it_error-pan_no         it_error-lob&lt;/P&gt;&lt;P&gt;                it_error-fam_tag        it_error-mod_date&lt;/P&gt;&lt;P&gt;                it_error-bp             it_error-recno&lt;/P&gt;&lt;P&gt;                it_error-message&lt;/P&gt;&lt;P&gt;                INTO l_filestring SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;    TRANSFER l_filestring TO p_file.&lt;/P&gt;&lt;P&gt;    CLEAR l_filestring.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CLOSE DATASET p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " error_file_download&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  return_messages&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To write down the return messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM return_messages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_success_lines TYPE int4,&lt;/P&gt;&lt;P&gt;        l_error_lines   TYPE int4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_success LINES l_success_lines.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_error   LINES l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Writing down the number of records processed in the Data Upload Status Report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE it_main LINES v_lines.&lt;/P&gt;&lt;P&gt;  WRITE : / 'File Name:', v_file , 90 ' INPUT RECORDS = ', v_lines.&lt;/P&gt;&lt;P&gt;  CLEAR : v_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE: / text-019,l_success_lines.&lt;/P&gt;&lt;P&gt;  CLEAR l_success_lines.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_upd_success LINES l_success_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE: / text-020,l_success_lines.&lt;/P&gt;&lt;P&gt;  WRITE: / text-021,l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_error[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE: / text-022, p_file.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_success[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 4.&lt;/P&gt;&lt;P&gt;    WRITE:text-023.&lt;/P&gt;&lt;P&gt;    WRITE:/'----&lt;/P&gt;&lt;HR originaltext="----------------------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / '&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;'.&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / 'Successful Records'.&lt;/P&gt;&lt;P&gt;    WRITE: / '&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------" /&gt;'.&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: /1 text-008,15 text-009,75 text-010.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_success.&lt;/P&gt;&lt;P&gt;      WRITE: /1 it_success-rec  CENTERED,&lt;/P&gt;&lt;P&gt;             15 it_success-name LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;             75 it_success-bp   CENTERED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF it_upd_success[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE:text-024.&lt;/P&gt;&lt;P&gt;    WRITE:/'----&lt;/P&gt;&lt;HR originaltext="----------------------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    WRITE: /1 text-008,15 text-009,75 text-010.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_upd_success.&lt;/P&gt;&lt;P&gt;      WRITE: /1 it_upd_success-rec  CENTERED,&lt;/P&gt;&lt;P&gt;             15 it_upd_success-name LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;             75 it_upd_success-bp   CENTERED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Spool request to be converted to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  NEW-PAGE.&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;  NEW-PAGE PRINT OFF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " return_messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  transaction_commit&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      wait = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " transaction_commit&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_job_details&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_job_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get current job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'GET_JOB_RUNTIME_INFO'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      eventid                 = gd_eventid&lt;/P&gt;&lt;P&gt;      eventparm               = gd_eventparm&lt;/P&gt;&lt;P&gt;      external_program_active = gd_external_program_active&lt;/P&gt;&lt;P&gt;      jobcount                = gd_jobcount&lt;/P&gt;&lt;P&gt;      jobname                 = gd_jobname&lt;/P&gt;&lt;P&gt;      stepcount               = gd_stepcount&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_runtime_info         = 1&lt;/P&gt;&lt;P&gt;      OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_job_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  obtain_spool_id&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To obtain the spool ID generated&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM obtain_spool_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT ( gd_jobname IS INITIAL ).&lt;/P&gt;&lt;P&gt;  CHECK NOT ( gd_jobcount IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM  tbtcp&lt;/P&gt;&lt;P&gt;                 INTO TABLE it_tbtcp&lt;/P&gt;&lt;P&gt;                 WHERE      jobname     = gd_jobname&lt;/P&gt;&lt;P&gt;                 AND        jobcount    = gd_jobcount&lt;/P&gt;&lt;P&gt;                 AND        stepcount   = gd_stepcount&lt;/P&gt;&lt;P&gt;                 AND        listident   &amp;lt;&amp;gt; '0000000000'&lt;/P&gt;&lt;P&gt;                 ORDER BY   jobname&lt;/P&gt;&lt;P&gt;                            jobcount&lt;/P&gt;&lt;P&gt;                            stepcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    gd_spool_nr = wa_tbtcp-listident.&lt;/P&gt;&lt;P&gt;    MESSAGE s004 WITH gd_spool_nr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s005.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " obtain_spool_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_spool_to_pdf&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_spool_to_pdf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      src_spoolid              = gd_spool_nr&lt;/P&gt;&lt;P&gt;      no_dialog                = c_no&lt;/P&gt;&lt;P&gt;      dst_device               = c_device&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      pdf_bytecount            = gd_bytecount&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      pdf                      = it_pdf_output&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      err_no_abap_spooljob     = 1&lt;/P&gt;&lt;P&gt;      err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;      err_no_permission        = 3&lt;/P&gt;&lt;P&gt;      err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;      err_bad_destdevice       = 5&lt;/P&gt;&lt;P&gt;      user_cancelled           = 6&lt;/P&gt;&lt;P&gt;      err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;      err_temseerror           = 8&lt;/P&gt;&lt;P&gt;      err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;      err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;      err_btcjob_close_failed  = 11&lt;/P&gt;&lt;P&gt;      OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the 132-long strings to 255-long strings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_pdf_output.&lt;/P&gt;&lt;P&gt;    TRANSLATE it_pdf_output USING ' ~'.&lt;/P&gt;&lt;P&gt;    CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE gd_buffer USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    it_mess_att = gd_buffer.&lt;/P&gt;&lt;P&gt;    APPEND it_mess_att.&lt;/P&gt;&lt;P&gt;    SHIFT gd_buffer LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;    IF gd_buffer IS INITIAL.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_spool_to_pdf&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_email .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_mess_att LINES gd_recsize.&lt;/P&gt;&lt;P&gt;  CHECK gd_recsize &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  PERFORM send_email USING v_email1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_email USING p_email.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CHECK NOT ( p_email IS INITIAL ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Default subject matter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gd_subject         = 'Subject'.&lt;/P&gt;&lt;P&gt;  gd_attachment_desc = 'Joblog'.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Hi,'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '   The batch job which creates Accounts with the transaction data from De-Dupe Software have been Completed.'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '   The joblog have been attached as a PDF file.'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Regards,'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = 'Job Scheduler'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = '***********************************&lt;STRONG&gt;This is a system generated mail&lt;/STRONG&gt;*************************************'.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no sender specified - default blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF v_sender EQ space.&lt;/P&gt;&lt;P&gt;    gd_sender_type  = space.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    gd_sender_type  = 'INT'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send file by email as .xls speadsheet&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;                               TABLES it_mess_bod&lt;/P&gt;&lt;P&gt;                                      it_mess_att&lt;/P&gt;&lt;P&gt;                                USING p_email&lt;/P&gt;&lt;P&gt;                                      'Joblog for the Account Creation Batch Job'&lt;/P&gt;&lt;P&gt;                                      'PDF'&lt;/P&gt;&lt;P&gt;                                      gd_attachment_name&lt;/P&gt;&lt;P&gt;                                      gd_attachment_desc&lt;/P&gt;&lt;P&gt;                                      v_sender&lt;/P&gt;&lt;P&gt;                                      gd_sender_type&lt;/P&gt;&lt;P&gt;                             CHANGING gd_error&lt;/P&gt;&lt;P&gt;                                      gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "send_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment TABLES it_message&lt;/P&gt;&lt;P&gt;                                          it_attach&lt;/P&gt;&lt;P&gt;                                    USING p_email&lt;/P&gt;&lt;P&gt;                                          p_mtitle&lt;/P&gt;&lt;P&gt;                                          p_format&lt;/P&gt;&lt;P&gt;                                          p_filename&lt;/P&gt;&lt;P&gt;                                          p_attdescription&lt;/P&gt;&lt;P&gt;                                          p_sender_address&lt;/P&gt;&lt;P&gt;                                          p_sender_addres_type&lt;/P&gt;&lt;P&gt;                                 CHANGING p_error&lt;/P&gt;&lt;P&gt;                                          p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : ld_error    TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;         ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;         ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;         ld_email LIKE  somlreci1-receiver,&lt;/P&gt;&lt;P&gt;         ld_format TYPE  so_obj_tp ,&lt;/P&gt;&lt;P&gt;         ld_attdescription TYPE  so_obj_nam ,&lt;/P&gt;&lt;P&gt;         ld_attfilename TYPE  so_obj_des ,&lt;/P&gt;&lt;P&gt;         ld_sender_address LIKE  soextreci1-receiver,&lt;/P&gt;&lt;P&gt;         ld_sender_address_type LIKE  soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;         ld_receiver LIKE  sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;         w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;         w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;         w_doc_data LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ld_email   = p_email.&lt;/P&gt;&lt;P&gt;  ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;  ld_format              = p_format.&lt;/P&gt;&lt;P&gt;  ld_attdescription      = p_attdescription.&lt;/P&gt;&lt;P&gt;  ld_attfilename         = p_filename.&lt;/P&gt;&lt;P&gt;  ld_sender_address      = p_sender_address.&lt;/P&gt;&lt;P&gt;  ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_name  = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;  w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;  READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;  w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;     ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_langu  = sy-langu.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_name   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_descr  = ld_mtitle.&lt;/P&gt;&lt;P&gt;  w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;  CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;  REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;  t_attachment[] = it_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;  REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;  t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;  t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-head_num   = 1.&lt;/P&gt;&lt;P&gt;  t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_type   =  ld_format.&lt;/P&gt;&lt;P&gt;  t_packing_list-obj_descr  =  ld_attdescription.&lt;/P&gt;&lt;P&gt;  t_packing_list-obj_name   =  ld_attfilename.&lt;/P&gt;&lt;P&gt;  t_packing_list-doc_size   =  t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;  APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH t_receivers.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT s_email.&lt;/P&gt;&lt;P&gt;    CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;    t_receivers-receiver = s_email-low.&lt;/P&gt;&lt;P&gt;    t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;    t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;    t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;    t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND t_receivers.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data              = w_doc_data&lt;/P&gt;&lt;P&gt;      put_in_outbox              = 'X'&lt;/P&gt;&lt;P&gt;      commit_work                = 'X'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sent_to_all                = w_sent_all&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list               = t_packing_list&lt;/P&gt;&lt;P&gt;      contents_bin               = t_attachment&lt;/P&gt;&lt;P&gt;      contents_txt               = it_message&lt;/P&gt;&lt;P&gt;      receivers                  = t_receivers&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      too_many_receivers         = 1&lt;/P&gt;&lt;P&gt;      document_not_sent          = 2&lt;/P&gt;&lt;P&gt;      document_type_not_exist    = 3&lt;/P&gt;&lt;P&gt;      operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;      parameter_error            = 5&lt;/P&gt;&lt;P&gt;      x_error                    = 6&lt;/P&gt;&lt;P&gt;      enqueue_error              = 7&lt;/P&gt;&lt;P&gt;      OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;    ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  trigger_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM trigger_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WAIT UP TO 5 SECONDS.&lt;/P&gt;&lt;P&gt;  SUBMIT rsconn01 WITH mode   = 'INT'&lt;/P&gt;&lt;P&gt;                  WITH output = 'X'&lt;/P&gt;&lt;P&gt;                   AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " trigger_email&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_get&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To get the ID details of existing BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_get  USING  uv_bp TYPE bu_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR:i_id_tab,i_id_tab[].&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATIONDETAILS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner      = uv_bp&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      identificationdetail = i_id_tab&lt;/P&gt;&lt;P&gt;      return               = it_bp_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_get&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ADD_DETAILS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To add  Identification numbers to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Adding up Identification numbers to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM add_details.&lt;/P&gt;&lt;P&gt;  IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT it_identification.&lt;/P&gt;&lt;P&gt;      TRANSLATE it_identification-idnumber TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_IDENTIFICATION_ADD'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          businesspartner        = v_bp&lt;/P&gt;&lt;P&gt;          identificationcategory = it_identification-idcategory&lt;/P&gt;&lt;P&gt;          identificationnumber   = it_identification-idnumber&lt;/P&gt;&lt;P&gt;          identification         = w_identification&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE it_iden_ret INTO wa_iden_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_iden_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR   : it_iden_ret, wa_iden_ret.&lt;/P&gt;&lt;P&gt;      REFRESH : it_iden_ret.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR   : it_identification.&lt;/P&gt;&lt;P&gt;    REFRESH : it_identification.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM add_makt_attr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ADD_DETAILS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  add_makt_attr&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add marketing attributes to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_makt_attr .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Assigning Marketing Attributes to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF v_bp IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    LOOP AT it_crmt.&lt;/P&gt;&lt;P&gt;      loopno = loopno + 1.&lt;/P&gt;&lt;P&gt;      IF loopno  EQ 2.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt2[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt2.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 3.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt3[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt3.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 4.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt4[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt4.&lt;/P&gt;&lt;P&gt;      ELSEIF loopno  EQ 5.&lt;/P&gt;&lt;P&gt;        it_crmt1[] = it_crmt5[].&lt;/P&gt;&lt;P&gt;        REFRESH it_crmt5.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF it_crmt-crmt IS NOT INITIAL AND it_crmt1[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'CRM_MKTBP_CHANGE_BP'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            iv_profile_template_id = it_crmt-crmt&lt;/P&gt;&lt;P&gt;            iv_partner             = v_bp&lt;/P&gt;&lt;P&gt;            iv_msa                 = 'X'&lt;/P&gt;&lt;P&gt;            iv_commit              = 'X'&lt;/P&gt;&lt;P&gt;            iv_convert_values      = 'X'&lt;/P&gt;&lt;P&gt;          TABLES&lt;/P&gt;&lt;P&gt;            it_imp_seltab          = it_crmt1&lt;/P&gt;&lt;P&gt;            et_return              = it_attr_ret.&lt;/P&gt;&lt;P&gt;        PERFORM transaction_commit.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      READ TABLE it_attr_ret INTO wa_attr_ret WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        it_attr_flag = 'E'.&lt;/P&gt;&lt;P&gt;      ELSEIF flag_exist = 'X'.&lt;/P&gt;&lt;P&gt;        flag_suc = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR : it_crmt1.&lt;/P&gt;&lt;P&gt;      REFRESH : it_crmt1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    CLEAR   : it_crmt, loopno.&lt;/P&gt;&lt;P&gt;    REFRESH : it_crmt.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_makt_attr&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_remove&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     To remove existing Identification details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_remove  USING    uv_bp       TYPE bu_partner&lt;/P&gt;&lt;P&gt;                         uv_id_type  TYPE bu_id_category&lt;/P&gt;&lt;P&gt;                         uv_id_num   TYPE bu_id_number .&lt;/P&gt;&lt;P&gt;  REFRESH it_iden_ret.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATION_REMOVE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner        = uv_bp&lt;/P&gt;&lt;P&gt;      identificationcategory = uv_id_type&lt;/P&gt;&lt;P&gt;      identificationnumber   = uv_id_num&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_remove&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  id_add&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To add Identification to BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM id_add  USING    uv_bp             TYPE bu_partner&lt;/P&gt;&lt;P&gt;                      uv_id_type        TYPE bu_id_category&lt;/P&gt;&lt;P&gt;                      uv_identification TYPE bu_id_number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_IDENTIFICATION_ADD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      businesspartner        = uv_bp&lt;/P&gt;&lt;P&gt;      identificationcategory = uv_id_type&lt;/P&gt;&lt;P&gt;      identificationnumber   = uv_identification&lt;/P&gt;&lt;P&gt;      identification         = w_identification&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return                 = it_iden_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " id_add&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Feb 2008 05:33:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-using-bapi-commit-inside-a-loop/m-p/3453246#M829644</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-18T05:33:03Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid using bapi_commit inside a loop .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-using-bapi-commit-inside-a-loop/m-p/3453247#M829645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Guy&amp;amp;#65292;i don't regard here is anybody wanna read so much code .For more constructive answers, you would distill core question from your program.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Mar 2008 17:07:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-using-bapi-commit-inside-a-loop/m-p/3453247#M829645</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-18T17:07:10Z</dc:date>
    </item>
  </channel>
</rss>

