<?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 Re: TCODE BP in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116419#M984138</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I think as for my knowledge the recording for the transaction BP is similar to the recording fo the SAP Njoy transactions which is not feasible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So Please search for the available bAPIS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REgards&lt;/P&gt;&lt;P&gt;Abhilash.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 01 Jul 2008 12:00:59 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-07-01T12:00:59Z</dc:date>
    <item>
      <title>TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116411#M984130</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello friends&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Their is a TCODE BP in CRM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;where i need to update Language data in Adress Tab-strip and IS CUSTOMER field in Classification Tab-strip.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When iam try to do recording for this it is not working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how can i update data for this fields know.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks and regads&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:17:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116411#M984130</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:17:33Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116412#M984131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sush,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i would suggest you to post this one in CRM for better and quick reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Amit.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:19:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116412#M984131</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:19:40Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116413#M984132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try this FM: BAPI_BUPA_ADDRESS_CHANGE or BAPI_BUPA_CENTRAL_CHANGE&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:40:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116413#M984132</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:40:46Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116414#M984133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in crm bdc will not help u go for some Fm.........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BPOB_MAINTAIN_CHANGES&amp;amp;CRM_TM_UI_BP_MAINTAIN&lt;/P&gt;&lt;P&gt;check this..............else.........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anbu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:43:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116414#M984133</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:43:20Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116415#M984134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;BDC won't work.  Go to function group BUBA_3 there you will find lots of APIs which will help you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:46:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116415#M984134</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:46:49Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116416#M984135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Sourav,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I neww to update only Language fields in Address Tab and IS Customer field in classification.&lt;/P&gt;&lt;P&gt;How can i do this with the BAPI's that u had given&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 08:53:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116416#M984135</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T08:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116417#M984136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use the FM BAPI_BUPA_CENTRAL_CHANGE and pass the BUSINESSPARTNER, CENTRALDATA, CENTRALDATA_X to change the language.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can update relationship by using BAPI_BUPR_RELATIONSHIP_CHANGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is a sample code that i used to "delete" and "create" 'HAS APR Relationship'. You may refer it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;==============================================&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;Includes                                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;INCLUDE:&lt;/P&gt;&lt;P&gt;z_report_header.               "Include for standart report header&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;Type Declaration                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Type for input file structure&lt;/P&gt;&lt;P&gt;BEGIN OF x_file,&lt;/P&gt;&lt;P&gt;  bp            TYPE char10,                      "BP Number&lt;/P&gt;&lt;P&gt;  apr_id        TYPE char10,                      "APR ID&lt;/P&gt;&lt;P&gt;  distance      TYPE char11,                      "Distance&lt;/P&gt;&lt;P&gt;  status_msg(132) TYPE c,                         "APR Status Message&lt;/P&gt;&lt;P&gt;END OF x_file,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Type declaration for final information&lt;/P&gt;&lt;P&gt;BEGIN OF x_data,&lt;/P&gt;&lt;P&gt;  bp            TYPE bu_partner,                  "BP Number&lt;/P&gt;&lt;P&gt;  apr_id        TYPE bu_partner,                  "APR ID&lt;/P&gt;&lt;P&gt;  distance      TYPE s_distance,                  "Distance&lt;/P&gt;&lt;P&gt;  status_msg    TYPE tdline,                      "APR Status Message&lt;/P&gt;&lt;P&gt;  apr_attrib_10 TYPE crmt_bu_katr10,              "APR Attribute 10&lt;/P&gt;&lt;P&gt;  del_flag      TYPE char1,                       "Delete flag&lt;/P&gt;&lt;P&gt;END OF x_data,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*The final BP information&lt;/P&gt;&lt;P&gt;BEGIN OF x_bp_info,&lt;/P&gt;&lt;P&gt;  bp            TYPE bu_partner,                  "BP Number&lt;/P&gt;&lt;P&gt;  status_msg    TYPE tdline,                      "APR Status Message&lt;/P&gt;&lt;P&gt;  bp_attrib_10  TYPE crmt_bu_katr10,              "BP Attribute 10&lt;/P&gt;&lt;P&gt;  bp_attrib_9   TYPE crmt_bu_katr9,               "BP Attribute 9&lt;/P&gt;&lt;P&gt;  create_rel    TYPE char1,                       "Create relationship&lt;/P&gt;&lt;P&gt;  std_apr       TYPE bu_partner,                  "Standard Partner&lt;/P&gt;&lt;P&gt;END OF x_bp_info,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Type declaration for final message&lt;/P&gt;&lt;P&gt;BEGIN OF x_message,&lt;/P&gt;&lt;P&gt;  bp            TYPE bu_partner,                  "BP Number&lt;/P&gt;&lt;P&gt;  main_flag     TYPE char1,                       "If it is the main msg&lt;/P&gt;&lt;P&gt;  err_flag      TYPE char1,                       "Error flag&lt;/P&gt;&lt;P&gt;  message(125)  TYPE c,                           "Message text&lt;/P&gt;&lt;P&gt;END OF x_message,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Type for BP: General data I&lt;/P&gt;&lt;P&gt;BEGIN OF x_but000,&lt;/P&gt;&lt;P&gt;  partner      TYPE bu_partner,                   "BP Number&lt;/P&gt;&lt;P&gt;  partner_guid TYPE bu_partner_guid,              "BP GUID&lt;/P&gt;&lt;P&gt;  xdele        TYPE bu_xdele,                     "Central Archiving&lt;/P&gt;&lt;P&gt;  xblck        TYPE bu_xblck,                     "Central Block&lt;/P&gt;&lt;P&gt;END OF x_but000,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Type for relation number&lt;/P&gt;&lt;P&gt;BEGIN OF x_but050,&lt;/P&gt;&lt;P&gt;  relnr        TYPE bu_relnr,                     "Relationship number&lt;/P&gt;&lt;P&gt;  partner1     TYPE bu_partner,                             "Partner 1&lt;/P&gt;&lt;P&gt;  partner2     TYPE bu_partner,                             "Partner 2&lt;/P&gt;&lt;P&gt;  date_to      TYPE bu_datto,                     "Validity date&lt;/P&gt;&lt;P&gt;END OF x_but050.&lt;/P&gt;&lt;P&gt;&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;Internal Table Declaration                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;*File information&lt;/P&gt;&lt;P&gt;i_data          TYPE STANDARD TABLE OF x_data     INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;*Final BP info to update&lt;/P&gt;&lt;P&gt;i_bp_info       TYPE STANDARD TABLE OF x_bp_info  INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;*final Message table&lt;/P&gt;&lt;P&gt;i_message       TYPE STANDARD TABLE OF x_message  INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;*BP: General data I&lt;/P&gt;&lt;P&gt;i_but000        TYPE STANDARD TABLE OF x_but000   INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;*Relation number&lt;/P&gt;&lt;P&gt;i_but050        TYPE STANDARD TABLE OF x_but050   INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;"For table related to FRG0081&lt;/P&gt;&lt;P&gt;i_frg0081       TYPE STANDARD TABLE OF crmm_but_frg0081&lt;/P&gt;&lt;P&gt;                INITIAL SIZE 0.&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;Range Table Declaration                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;r_bp            TYPE RANGE OF bu_partner,         "R-tab for BP&lt;/P&gt;&lt;P&gt;r_bp_apr        TYPE RANGE OF bu_partner,         "R-tab for BP, APR ID&lt;/P&gt;&lt;P&gt;r_apr           TYPE RANGE OF bu_partner.         "R-tab for APR ID&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;Workarea Declaration                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;wa_file         TYPE x_file,                      "Input file&lt;/P&gt;&lt;P&gt;wa_data         TYPE x_data,                      "File info&lt;/P&gt;&lt;P&gt;wa_bp_info      TYPE x_bp_info,                   "Final BP info&lt;/P&gt;&lt;P&gt;wa_data_tmp     TYPE x_data,                      "Temp Final info&lt;/P&gt;&lt;P&gt;wa_message      TYPE x_message,                   "Message&lt;/P&gt;&lt;P&gt;wa_bp           LIKE LINE OF r_bp,                "BP number&lt;/P&gt;&lt;P&gt;wa_but000       TYPE x_but000,                    "BP: General data I&lt;/P&gt;&lt;P&gt;wa_but050       TYPE x_but050.                    "Relation no&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;Global data declaration                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;v_time(30)      TYPE c,                           "Execution time&lt;/P&gt;&lt;P&gt;v_start_date    TYPE sydatum,                     "Start Date&lt;/P&gt;&lt;P&gt;v_start_time    TYPE syuzeit,                     "Start Time&lt;/P&gt;&lt;P&gt;v_end_date      TYPE sydatum,                     "End Date&lt;/P&gt;&lt;P&gt;v_end_time      TYPE syuzeit,                     "End Time&lt;/P&gt;&lt;P&gt;v_message       TYPE string,                      "Message&lt;/P&gt;&lt;P&gt;v_count         TYPE i,                           "BPs read&lt;/P&gt;&lt;P&gt;v_sucs_cnt      TYPE i,                           "Success count&lt;/P&gt;&lt;P&gt;v_bp_guid       TYPE bu_partner_guid,             "BP GUID&lt;/P&gt;&lt;P&gt;v_sales_org     TYPE crmt_sales_org,              "Sales Org&lt;/P&gt;&lt;P&gt;v_dis_channel   TYPE crmt_distribution_channel,   "Distr Channel&lt;/P&gt;&lt;P&gt;v_division      TYPE crmt_division,               "Division&lt;/P&gt;&lt;P&gt;v_index         TYPE sytabix.                     "Global index&lt;/P&gt;&lt;P&gt;&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;Constant Declaration                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;c_check(1)      TYPE c VALUE 'X',                 "Check&lt;/P&gt;&lt;P&gt;c_colon(1)      TYPE c VALUE ':',                  "Colon&lt;/P&gt;&lt;P&gt;c_apath(30)     TYPE c                            "App. srv path&lt;/P&gt;&lt;P&gt;                VALUE '/data/interfaces/idd0312/',&lt;/P&gt;&lt;P&gt;c_fname(30)     TYPE c                            "File name&lt;/P&gt;&lt;P&gt;                VALUE 'IDD0312_BP_APR.dat',&lt;/P&gt;&lt;P&gt;c_reltyp        TYPE bu_reltyp                    "Relationship type&lt;/P&gt;&lt;P&gt;                VALUE 'ZRA001',                   "APR Distributor Rlshp&lt;/P&gt;&lt;P&gt;c_attrib_999    TYPE crmt_bu_katr10 VALUE '999',  "Attrib 10 value&lt;/P&gt;&lt;P&gt;c_partner_fct   TYPE crmt_partner_fct&lt;/P&gt;&lt;P&gt;                VALUE 'Z0000024',                 "Partner Function&lt;/P&gt;&lt;P&gt;c_action        TYPE bu_action VALUE 'U',         "Action&lt;/P&gt;&lt;P&gt;c_rel           TYPE char6 VALUE 'ZRA001',        "APR Dist Reln&lt;/P&gt;&lt;P&gt;c_error         TYPE char1 VALUE 'E',             "Error&lt;/P&gt;&lt;P&gt;c_abend         TYPE char1 VALUE 'A',             "Abend&lt;/P&gt;&lt;P&gt;c_textid_apr    TYPE tdid VALUE 'Z003',           "APR Audit text id&lt;/P&gt;&lt;P&gt;c_object        TYPE tdobject  VALUE 'BUT000',    "Object name&lt;/P&gt;&lt;P&gt;c_tdformat      TYPE char1 VALUE '*',             "Default paragraph&lt;/P&gt;&lt;P&gt;c_task          TYPE char1 VALUE 'M',             "Modify&lt;/P&gt;&lt;P&gt;c_validto       TYPE timestamp VALUE '99991231235959',"Time&lt;/P&gt;&lt;P&gt;c_validfrom     TYPE timestamp VALUE '10101000000'.   "Time&lt;/P&gt;&lt;P&gt;&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;Selection Screen                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-a01.&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  p_afile       TYPE localfile.                   "App. server file&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&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;Initialization                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the default file path&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CONCATENATE c_apath c_fname INTO p_afile.&lt;/P&gt;&lt;P&gt;&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;At selection-screen on F4 help for Application Server file           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_afile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Provide a F4 help for source file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_afile_f4 USING p_afile.&lt;/P&gt;&lt;P&gt;&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;At selection-screen                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the user click 'Execute' / press 'Enter' / press F8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-ucomm    = 'ONLI'                                   "Execute/F8&lt;/P&gt;&lt;P&gt;     OR sy-ucomm = space.                          "Enter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Validate file path&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM sub_validate_file_path.&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;P&gt;&lt;/P&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;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set the run time clock on&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_startclock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Import the file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_import_file_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Business Partner General Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_get_bp_general_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do extensive check &amp;amp; update i_data for further processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_check_update_i_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the final BP information to update&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_gather_bp_details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_update_bp.&lt;/P&gt;&lt;P&gt;&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;End of Selection                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Stop the application clock and calculate the execution time&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_stopclock.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Calculate the time duration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_getduration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Displaying summary for the report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_display_summary.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Displaying detail report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_display_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;Top of Page                                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the report header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM sub_header USING  sy-title space.&lt;/P&gt;&lt;P&gt;&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  sub_afile_f4&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;      Provide a F4 help for source application server file&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;     --&amp;gt;P_P_AFILE  text&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 sub_afile_f4  USING    p_p_afile TYPE localfile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This function module provides the F4 help for application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      directory        = c_apath&lt;/P&gt;&lt;P&gt;      filemask         = space&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      serverfile       = p_p_afile&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      canceled_by_user = 1&lt;/P&gt;&lt;P&gt;      OTHERS           = 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the help funtion has an error, display a message.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Message 'Unable to find filepath'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MESSAGE i000 WITH 'Unable to find filepath'(001).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_afile_f4&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  sub_validate_file_path&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;      Check if the input file path is valid or not&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;      No Parameter&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 sub_validate_file_path .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Local data declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: l_fname TYPE xuval.                           "Filename&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if input is given&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_afile IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_fname = p_afile.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check the authority&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'AUTHORITY_CHECK'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        object              = 'S_DATASET'&lt;/P&gt;&lt;P&gt;        field1              = 'PROGRAM'&lt;/P&gt;&lt;P&gt;        value1              = sy-cprog&lt;/P&gt;&lt;P&gt;        field2              = 'ACTVT'&lt;/P&gt;&lt;P&gt;        value2              = '33'&lt;/P&gt;&lt;P&gt;        field3              = 'FILENAME'&lt;/P&gt;&lt;P&gt;        value3              = l_fname&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        user_dont_exist     = 1&lt;/P&gt;&lt;P&gt;        user_is_authorized  = 2&lt;/P&gt;&lt;P&gt;        user_not_authorized = 3&lt;/P&gt;&lt;P&gt;        OTHERS              = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Check if the path is valid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      OPEN DATASET p_afile FOR INPUT IN TEXT MODE ENCODING DEFAULT&lt;/P&gt;&lt;P&gt;           MESSAGE v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If the file already exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Close the dataset&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLOSE DATASET p_afile.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SET CURSOR FIELD 'P_AFILE'.&lt;/P&gt;&lt;P&gt;        MESSAGE e000 WITH v_message.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SET CURSOR FIELD 'P_AFILE'.&lt;/P&gt;&lt;P&gt;      MESSAGE e000(z_zzz_ca_messages)&lt;/P&gt;&lt;P&gt;                 WITH 'ERROR: No Authorization to the file!'(002).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SET CURSOR FIELD 'P_AFILE'.&lt;/P&gt;&lt;P&gt;    MESSAGE e000 WITH&lt;/P&gt;&lt;P&gt;    'Please give the file path'(003).&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.                    " sub_validate_file_path&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  sub_startclock&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;      This perform starts the system clock for calculating&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      execution time&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;      No Parameters&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 sub_startclock .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Starting the clock&lt;/P&gt;&lt;P&gt;  GET TIME.&lt;/P&gt;&lt;P&gt;  v_start_date = sy-datum.&lt;/P&gt;&lt;P&gt;  v_start_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_startclock&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  sub_stopclock&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;      Stop the clock&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;      No parameters&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 sub_stopclock .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---Stopping the clock&lt;/P&gt;&lt;P&gt;  GET TIME.&lt;/P&gt;&lt;P&gt;  v_end_date = sy-datum.    " Date&lt;/P&gt;&lt;P&gt;  v_end_time = sy-uzeit.    " Time&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_stopclock&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  sub_getduration&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;      Calculation of time required for execution&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;      No parameter&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 sub_getduration.&lt;/P&gt;&lt;P&gt;  DATA:   l_time    TYPE i,   "Time&lt;/P&gt;&lt;P&gt;          l_secs(2) TYPE n,   "Seconds&lt;/P&gt;&lt;P&gt;          l_mins(2) TYPE n,   "Minutes&lt;/P&gt;&lt;P&gt;          l_hrs(2)  TYPE n,   "Hours&lt;/P&gt;&lt;P&gt;          l_days    TYPE i.   "Days&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---Calculating the executing time&lt;/P&gt;&lt;P&gt;  l_days = v_end_date - v_start_date.&lt;/P&gt;&lt;P&gt;  l_time = ( v_end_time + ( l_days * 86400 ) ) - v_start_time .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_hrs = l_time DIV 3600.&lt;/P&gt;&lt;P&gt;  l_mins = ( l_time MOD 3600 ) DIV 60.&lt;/P&gt;&lt;P&gt;  l_secs = ( l_time MOD 3600 ) MOD 60.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE l_hrs  c_colon&lt;/P&gt;&lt;P&gt;              l_mins c_colon&lt;/P&gt;&lt;P&gt;              l_secs&lt;/P&gt;&lt;P&gt;              INTO v_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_getduration&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  sub_import_file_data&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;      Import the file data&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;     --&amp;gt;P_I_FILE  Table to store file data&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 sub_import_file_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Show the progress bar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      percentage = 0&lt;/P&gt;&lt;P&gt;      text       = 'Importing data from file...'(004).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the source file for reading&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET p_afile FOR INPUT IN TEXT MODE&lt;/P&gt;&lt;P&gt;  ENCODING DEFAULT&lt;/P&gt;&lt;P&gt;  MESSAGE v_message.&lt;/P&gt;&lt;P&gt;&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;  Read each line in the source file and add it's contents to the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  internal table.&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;  Populate the range table for BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    wa_bp-sign = 'I'.&lt;/P&gt;&lt;P&gt;    wa_bp-option = 'EQ'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET p_afile INTO wa_file.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EOF reached&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Check if the distance is in proper format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF NOT wa_file-distance CO '0123456789. '.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'Distance'(035)&lt;/P&gt;&lt;P&gt;                      wa_file-distance&lt;/P&gt;&lt;P&gt;                      'for APR Id'(036)&lt;/P&gt;&lt;P&gt;                      wa_file-apr_id&lt;/P&gt;&lt;P&gt;                      'is invalid'(037)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_file-bp&lt;/P&gt;&lt;P&gt;                                           space&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;P&gt;          CONTINUE.&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;      Populate the final formatted table as well---------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR wa_data.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING wa_file TO wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Padding leading zeros to BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            input  = wa_data-bp&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            output = wa_data-bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Padding leading zeros to APR ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            input  = wa_data-apr_id&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            output = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        APPEND wa_data TO i_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Store the BP and APR id in a range table for future use&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        wa_bp-low = wa_data-bp.&lt;/P&gt;&lt;P&gt;        APPEND wa_bp TO r_bp.&lt;/P&gt;&lt;P&gt;        APPEND wa_bp TO r_bp_apr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_bp-low = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;        APPEND wa_bp TO r_bp_apr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get the uniuqe BP nos&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF r_bp[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SORT r_bp.&lt;/P&gt;&lt;P&gt;      DELETE r_bp WHERE low = space.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM r_bp.&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;  Get the unique APR ids&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF r_bp_apr[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SORT r_bp_apr.&lt;/P&gt;&lt;P&gt;      DELETE r_bp_apr WHERE low = space.&lt;/P&gt;&lt;P&gt;      DELETE ADJACENT DUPLICATES FROM r_bp_apr.&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;  Close the source file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLOSE DATASET p_afile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF i_data[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      MESSAGE i000 WITH&lt;/P&gt;&lt;P&gt;        'Sorry, the file does not contain any data'(005).&lt;/P&gt;&lt;P&gt;      LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      SORT i_data BY bp apr_id.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE i000 WITH v_message.&lt;/P&gt;&lt;P&gt;    LEAVE LIST-PROCESSING.&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;Clear variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: wa_file, wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_import_file_data&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  sub_get_bp_general_data&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;      Get the Business Partner general data &amp;amp; store in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the table i_but000&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;      No Parameter&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 sub_get_bp_general_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF r_bp_apr[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT partner                                "Partner no&lt;/P&gt;&lt;P&gt;           partner_guid                           "Partner GUID&lt;/P&gt;&lt;P&gt;           xdele                                  "Central Archiving&lt;/P&gt;&lt;P&gt;           xblck                                  "Central Block&lt;/P&gt;&lt;P&gt;           FROM but000  "BP: General data I&lt;/P&gt;&lt;P&gt;           INTO TABLE i_but000&lt;/P&gt;&lt;P&gt;           WHERE partner IN r_bp_apr[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SORT i_but000 BY partner.&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;ENDFORM.                    " sub_get_bp_general_data&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  sub_check_update_i_data&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;      Check the contents of i_data for further processing.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      It will contain Attrib_10 value for the Distributors&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;      No Parameter&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 sub_check_update_i_data .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_tabix  TYPE sytabix,                          "Tabix-value&lt;/P&gt;&lt;P&gt;  l_tabix2 TYPE sytabix,                          "Tabix-value&lt;/P&gt;&lt;P&gt;  l_bp     TYPE bu_partner,                       "BP number&lt;/P&gt;&lt;P&gt;  l_bp2    TYPE bu_partner.                       "BP number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Show the progress bar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      percentage = 0&lt;/P&gt;&lt;P&gt;      text       = 'Validating imported data...'(006).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_data INTO wa_data.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For new BP (Check the BP)**************************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF wa_data-bp = space&lt;/P&gt;&lt;P&gt;      OR wa_data-bp NE l_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_bp = wa_data-bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Increase the Global counter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      v_count = v_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If BP number given is blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF wa_data-bp IS INITIAL.&lt;/P&gt;&lt;P&gt;        v_message = 'BP number is blank in the file'(007).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                         c_check&lt;/P&gt;&lt;P&gt;                                         c_check&lt;/P&gt;&lt;P&gt;                                         v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;        MODIFY i_data INDEX l_tabix&lt;/P&gt;&lt;P&gt;                      FROM wa_data&lt;/P&gt;&lt;P&gt;                      TRANSPORTING del_flag.&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;DEL&gt;Check if BP Exists/blocked/archived&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt;        CLEAR: wa_but000, v_message.&lt;/P&gt;&lt;P&gt;        READ TABLE i_but000 INTO wa_but000&lt;/P&gt;&lt;P&gt;                            WITH KEY partner = wa_data-bp&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If BP does not exist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'BP'(008)&lt;/P&gt;&lt;P&gt;                      wa_data-bp&lt;/P&gt;&lt;P&gt;                      'does not exist'(009)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        If Centrally Archived&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF wa_but000-xdele = c_check.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'BP'(008)&lt;/P&gt;&lt;P&gt;                      wa_data-bp&lt;/P&gt;&lt;P&gt;                      'is Centrally Archived'(010)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        If Centrally Blocked&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSEIF wa_but000-xblck = c_check.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'BP'(008)&lt;/P&gt;&lt;P&gt;                      wa_data-bp&lt;/P&gt;&lt;P&gt;                      'is Centrally Blocked'(011)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;P&gt;          ENDIF.&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;      If BP exists/blocked/centrally archived&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF v_message IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;          MODIFY i_data FROM wa_data&lt;/P&gt;&lt;P&gt;                        TRANSPORTING del_flag&lt;/P&gt;&lt;P&gt;                        WHERE bp = wa_data-bp.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;DEL&gt;/Check if BP Exists/blocked/archived&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="----------" /&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;LI level="1" type="ul"&gt;&lt;P&gt;  Check if it is not marked to delete&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF wa_data-del_flag IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF wa_data-apr_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If BP &amp;amp; APR ID are same&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF wa_data-bp = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'Relationship cannot be created between'(052)&lt;/P&gt;&lt;P&gt;                      'identical business partners'(053)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                           space&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;          MODIFY i_data INDEX l_tabix&lt;/P&gt;&lt;P&gt;                        FROM wa_data&lt;/P&gt;&lt;P&gt;                        TRANSPORTING del_flag.&lt;/P&gt;&lt;P&gt;          CONTINUE.&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;*&amp;gt;----&lt;DEL&gt;Check if APR id Exists/blocked/archived&lt;/DEL&gt;--&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt;        CLEAR: wa_but000, v_message.&lt;/P&gt;&lt;P&gt;        READ TABLE i_but000 INTO wa_but000&lt;/P&gt;&lt;P&gt;                            WITH KEY partner = wa_data-apr_id&lt;/P&gt;&lt;P&gt;                            BINARY SEARCH.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If APR ID does not exist&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'APR Id'(054)&lt;/P&gt;&lt;P&gt;                      wa_data-apr_id&lt;/P&gt;&lt;P&gt;                      'does not exist'(009)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        If Centrally Archived&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF wa_but000-xdele = c_check.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'APR Id'(054)&lt;/P&gt;&lt;P&gt;                      wa_data-apr_id&lt;/P&gt;&lt;P&gt;                      'is Centrally Archived'(010)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        If Centrally Blocked&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          ELSEIF wa_but000-xblck = c_check.&lt;/P&gt;&lt;P&gt;            CONCATENATE 'APR Id'(054)&lt;/P&gt;&lt;P&gt;                      wa_data-apr_id&lt;/P&gt;&lt;P&gt;                      'is Centrally Blocked'(011)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;P&gt;          ENDIF.&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;      If BP exists/blocked/centrally archived&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF v_message IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                           space&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;          MODIFY i_data INDEX l_tabix&lt;/P&gt;&lt;P&gt;                        FROM wa_data&lt;/P&gt;&lt;P&gt;                        TRANSPORTING del_flag.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;DEL&gt;/Check if APR id Exists/blocked/archived&lt;/DEL&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;      Get the ATTRIB_10 Value for the Distributor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM sub_get_attrib_10_value USING    wa_but000-partner_guid&lt;/P&gt;&lt;P&gt;                                        CHANGING wa_data-apr_attrib_10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If ATTRIB_10 value is not found&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF wa_data-apr_attrib_10 IS INITIAL.&lt;/P&gt;&lt;P&gt;          CONCATENATE 'ATTRIB_10 value for the APR Id'(055)&lt;/P&gt;&lt;P&gt;                      wa_data-apr_id&lt;/P&gt;&lt;P&gt;                      'not found'(056)&lt;/P&gt;&lt;P&gt;                      INTO v_message&lt;/P&gt;&lt;P&gt;                      SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                           space&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;          MODIFY i_data INDEX l_tabix&lt;/P&gt;&lt;P&gt;                        FROM wa_data&lt;/P&gt;&lt;P&gt;                        TRANSPORTING del_flag.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Update ATTRIB_10 vlaue to table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          MODIFY i_data INDEX l_tabix&lt;/P&gt;&lt;P&gt;                        FROM wa_data&lt;/P&gt;&lt;P&gt;                        TRANSPORTING apr_attrib_10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;If there is any record for BP where APR ID has no value&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Check if this check is performed only once for a BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF l_bp2 NE wa_data-bp.&lt;/P&gt;&lt;P&gt;            l_bp2 = wa_data-bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            READ TABLE i_data TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;                       WITH KEY bp = wa_data-bp&lt;/P&gt;&lt;P&gt;                       apr_id = space.&lt;/P&gt;&lt;P&gt;            IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;              v_message = 'APR Id is blank'(057).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                               space&lt;/P&gt;&lt;P&gt;                                               c_check&lt;/P&gt;&lt;P&gt;                                               v_message.&lt;/P&gt;&lt;P&gt;              wa_data-del_flag = c_check.&lt;/P&gt;&lt;P&gt;              MODIFY i_data FROM wa_data&lt;/P&gt;&lt;P&gt;                     TRANSPORTING del_flag&lt;/P&gt;&lt;P&gt;                     WHERE bp = wa_data-bp&lt;/P&gt;&lt;P&gt;                     AND apr_id = space.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF. "l_bp NE wa_data-bp.&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;/If there is any record for BP where APR ID has no value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;If same APR ID found multiple times for a BP&lt;/P&gt;&lt;P&gt;          l_tabix2 = l_tabix + 1.&lt;/P&gt;&lt;P&gt;          LOOP AT i_data FROM l_tabix2&lt;/P&gt;&lt;P&gt;                  INTO wa_data_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            l_tabix2 = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF wa_data_tmp-bp NE wa_data-bp.&lt;/P&gt;&lt;P&gt;              EXIT.&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;          If same APR ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            IF wa_data_tmp-apr_id = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;              CONCATENATE 'Duplicate APR Id'(058)&lt;/P&gt;&lt;P&gt;                          wa_data-apr_id&lt;/P&gt;&lt;P&gt;                          'for BP'(019)&lt;/P&gt;&lt;P&gt;                          wa_data-bp&lt;/P&gt;&lt;P&gt;                          INTO v_message&lt;/P&gt;&lt;P&gt;                          SEPARATED BY space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Add message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              PERFORM sub_append_message USING wa_data-bp&lt;/P&gt;&lt;P&gt;                                               space&lt;/P&gt;&lt;P&gt;                                               c_check&lt;/P&gt;&lt;P&gt;                                               v_message.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Check it for deletion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              wa_data_tmp-del_flag = c_check.&lt;/P&gt;&lt;P&gt;              MODIFY i_data INDEX l_tabix2&lt;/P&gt;&lt;P&gt;                            FROM wa_data_tmp&lt;/P&gt;&lt;P&gt;                            TRANSPORTING del_flag.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              EXIT.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          ENDLOOP.&lt;/P&gt;&lt;P&gt;*&amp;gt;-------/If same APR ID found multiple times for a BP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ENDIF. "IF wa_data-apr_attrib_10 IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF. "IF wa_data-apr_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF. "IF wa_data-del_flag IS INITIAL.&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;  DELETE i_data WHERE del_flag = c_check.&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;Clear variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: wa_file, wa_data, wa_data_tmp, v_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_check_update_i_data&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  sub_append_message&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;      Populate the final message table using the input parameter&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;     --&amp;gt;P_L_BP          Business Partner Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_MAIN_FLAG   Main flag (As header)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_ERR_FLAG    Error Flag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_MESSAGE     Message text&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 sub_append_message  USING    p_l_bp        TYPE bu_partner&lt;/P&gt;&lt;P&gt;                                  p_l_main_flag TYPE char1&lt;/P&gt;&lt;P&gt;                                  p_l_err_flag  TYPE char1&lt;/P&gt;&lt;P&gt;                                  p_l_message   TYPE string.&lt;/P&gt;&lt;P&gt;  wa_message-bp = p_l_bp.&lt;/P&gt;&lt;P&gt;  wa_message-main_flag = p_l_main_flag.&lt;/P&gt;&lt;P&gt;  wa_message-err_flag = p_l_err_flag.&lt;/P&gt;&lt;P&gt;  wa_message-message = p_l_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_message TO i_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_append_message&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  sub_get_attrib_10_value&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;      Get Atribute 10 for the Distributor&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;     --&amp;gt;P_L_GUID          Partner GUID&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_L_ATTRIB_10     ATTRIB_10 Value&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 sub_get_attrib_10_value USING    p_l_guid  TYPE bu_partner_guid&lt;/P&gt;&lt;P&gt;                             CHANGING p_l_attrib_10 TYPE crmt_bu_katr10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : l_wa_frg0040_apr  TYPE crmt_bus_frg0040.&lt;/P&gt;&lt;P&gt;  "CRM BP Fragment Structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get the Attribute details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CRM_BUPA_FRG0040_GET_DETAIL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      iv_partner_guid = p_l_guid&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      es_data         = l_wa_frg0040_apr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_l_attrib_10 = l_wa_frg0040_apr-attrib_10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_get_attrib_10_value&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  sub_gather_bp_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;      Make decission about the relationship and ATTRIB values&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      based on the file info and update the final BP info table&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;      No Parameter&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 sub_gather_bp_details .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_std_partner   TYPE bu_partner,                "Standard partner&lt;/P&gt;&lt;P&gt;  l_attrib1       TYPE crmt_bu_katr10,            "Attrib value&lt;/P&gt;&lt;P&gt;  l_attrib2       TYPE crmt_bu_katr10,            "Attrib value&lt;/P&gt;&lt;P&gt;  l_attrib3       TYPE crmt_bu_katr10.            "Attrib value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_data BY bp distance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR r_bp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Populate the range table for BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_bp-sign = 'I'.&lt;/P&gt;&lt;P&gt;  wa_bp-option = 'EQ'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_data INTO wa_data_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    wa_data = wa_data_tmp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For the first record of BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AT NEW bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    If there is APR relations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF wa_data-apr_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        l_std_partner = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;        l_attrib1 = wa_data-apr_attrib_10.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get the unique ATTRIB_10 value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF wa_data-apr_attrib_10 NE l_attrib1.&lt;/P&gt;&lt;P&gt;      IF l_attrib2 IS INITIAL.&lt;/P&gt;&lt;P&gt;        l_attrib2 = wa_data-apr_attrib_10.&lt;/P&gt;&lt;P&gt;      ELSEIF wa_data-apr_attrib_10 NE l_attrib2.&lt;/P&gt;&lt;P&gt;        l_attrib3 = wa_data-apr_attrib_10.&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;&lt;/P&gt;&lt;P&gt;    AT END OF bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    For APR Distributor relations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF wa_data-apr_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_bp_info-bp = wa_data-bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If one unique APR Distributor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF l_attrib1 IS NOT INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib2 IS INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib3 IS INITIAL.&lt;/P&gt;&lt;P&gt;          wa_bp_info-bp_attrib_10 = l_attrib1.&lt;/P&gt;&lt;P&gt;          wa_bp_info-create_rel = c_check.&lt;/P&gt;&lt;P&gt;          wa_bp_info-std_apr = l_std_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If two unique Distributor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ELSEIF l_attrib1 IS NOT INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib2 IS NOT INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib3 IS INITIAL.&lt;/P&gt;&lt;P&gt;          wa_bp_info-bp_attrib_10 = l_attrib1.&lt;/P&gt;&lt;P&gt;          wa_bp_info-bp_attrib_9  = l_attrib2.&lt;/P&gt;&lt;P&gt;          wa_bp_info-create_rel = c_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If more than two unique Distributor&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ELSEIF l_attrib1 IS NOT INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib2 IS NOT INITIAL&lt;/P&gt;&lt;P&gt;          AND l_attrib3 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;          wa_bp_info-bp_attrib_10 = c_attrib_999.&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;        APPEND wa_bp_info TO i_bp_info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    For APR Status message updation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_bp_info-bp = wa_data-bp.&lt;/P&gt;&lt;P&gt;        wa_bp_info-status_msg = wa_data-status_msg.&lt;/P&gt;&lt;P&gt;        wa_bp_info-bp_attrib_10 = c_attrib_999.&lt;/P&gt;&lt;P&gt;        APPEND wa_bp_info TO i_bp_info.&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;    Populate the BP range table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      wa_bp-low = wa_data-bp.&lt;/P&gt;&lt;P&gt;      APPEND wa_bp TO r_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: wa_bp_info,&lt;/P&gt;&lt;P&gt;             l_std_partner,&lt;/P&gt;&lt;P&gt;             l_attrib1,&lt;/P&gt;&lt;P&gt;             l_attrib2,&lt;/P&gt;&lt;P&gt;             l_attrib3.&lt;/P&gt;&lt;P&gt;    ENDAT.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_gather_bp_details&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  sub_update_bp&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;      Update the Business Partner&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;      No Parameter&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 sub_update_bp .&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_subrc    TYPE sysubrc,                        "sy-subrc value&lt;/P&gt;&lt;P&gt;  "Temporary table for BP details&lt;/P&gt;&lt;P&gt;  l_i_but000 TYPE STANDARD TABLE OF x_but000 INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;  l_total    TYPE i,                              "Total no&lt;/P&gt;&lt;P&gt;  l_percent  TYPE i,                              "Percentage complete.&lt;/P&gt;&lt;P&gt;  l_per_text TYPE text70.                         "Updating BP..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;gt;Get sales area details for all BP----&lt;/P&gt;&lt;HR originaltext="------------------------" /&gt;&lt;P&gt;  IF r_bp[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    l_i_but000[] = i_but000[].&lt;/P&gt;&lt;P&gt;    SORT l_i_but000 BY partner.&lt;/P&gt;&lt;P&gt;    DELETE l_i_but000 WHERE partner NOT IN r_bp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DELETE ADJACENT DUPLICATES is not reqd.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  as i_but000 contains unique BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF l_i_but000[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT *&lt;/P&gt;&lt;P&gt;             FROM crmm_but_frg0081&lt;/P&gt;&lt;P&gt;             INTO TABLE i_frg0081&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES IN l_i_but000&lt;/P&gt;&lt;P&gt;             WHERE partner_guid = l_i_but000-partner_guid&lt;/P&gt;&lt;P&gt;             AND partner_fct = c_partner_fct&lt;/P&gt;&lt;P&gt;             AND is_deflt_partner = c_check.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        SORT i_frg0081 BY partner_guid sales_org channel division.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&amp;gt;/Get sales area details for all BP----&lt;/P&gt;&lt;HR originaltext="------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_data BY bp.&lt;/P&gt;&lt;P&gt;  SORT i_bp_info BY bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_total = LINES( i_bp_info ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_bp_info INTO wa_bp_info.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_percent = 100 * sy-tabix / l_total.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Updating BP'(020)&lt;/P&gt;&lt;P&gt;                wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                '...'(021)&lt;/P&gt;&lt;P&gt;                INTO l_per_text&lt;/P&gt;&lt;P&gt;                SEPARATED BY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Display process indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        percentage = l_percent&lt;/P&gt;&lt;P&gt;        text       = l_per_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR l_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Lock the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM sub_lock_bp USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                     CHANGING l_subrc.&lt;/P&gt;&lt;P&gt;    IF l_subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get the BP GUID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR wa_but000.&lt;/P&gt;&lt;P&gt;      READ TABLE i_but000 INTO wa_but000&lt;/P&gt;&lt;P&gt;                 WITH KEY partner = wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                 BINARY SEARCH.&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;      Store BP GUID in a global variablw&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        v_bp_guid = wa_but000-partner_guid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Populate sales data for future use&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM sub_get_sales_data USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                CHANGING l_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Delete the existing APR relations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_delete_relations USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                    CHANGING l_subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        If all existing APR relations are deleted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IF l_subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          Case for status message updation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            IF wa_bp_info-status_msg IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Update ststus message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              PERFORM sub_update_apr_text_for_bp USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                               wa_bp_info-status_msg&lt;/P&gt;&lt;P&gt;                                              CHANGING l_subrc.&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;          Case for relation creation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            IF wa_bp_info-create_rel = c_check.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Create relation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              PERFORM sub_create_relation USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                                wa_bp_info-std_apr&lt;/P&gt;&lt;P&gt;                                       CHANGING l_subrc.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF l_subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            Update attrib 10 value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              PERFORM sub_update_attrib_10 USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                                 wa_bp_info-bp_attrib_10&lt;/P&gt;&lt;P&gt;                                                 wa_bp_info-bp_attrib_9&lt;/P&gt;&lt;P&gt;                                        CHANGING l_subrc.&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;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_subrc = 0.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;          v_sucs_cnt = v_sucs_cnt + 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        Populate the error message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          v_message = 'BP Updated Successfully'(022).&lt;/P&gt;&lt;P&gt;          PERFORM sub_append_message USING wa_bp_info-bp&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           space&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&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;  Unlock the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM sub_unlock_bp USING wa_bp_info-bp.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_update_bp&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  sub_lock_bp&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;      Lock the BP for Updation&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;     --&amp;gt;P_BP      BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC   Subrc value&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 sub_lock_bp USING p_bp    TYPE bu_partner&lt;/P&gt;&lt;P&gt;              CHANGING p_subrc TYPE sysubrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if the BP is locked for updation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ENQUEUE_EBU_PARTNR'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      partner        = p_bp&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      foreign_lock   = 1&lt;/P&gt;&lt;P&gt;      system_failure = 2&lt;/P&gt;&lt;P&gt;      OTHERS         = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_subrc = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_subrc NE 0.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'Business Partner is Currently Being Processed By'(023)&lt;/P&gt;&lt;P&gt;                sy-msgv1&lt;/P&gt;&lt;P&gt;                INTO v_message&lt;/P&gt;&lt;P&gt;                SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               v_message.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_lock_bp&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  sub_get_sales_data&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;      Retrieve the Sales data and keep in global&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      variable for future use&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;     --&amp;gt;P_BP      BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC   Subrc value&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 sub_get_sales_data USING p_bp    TYPE bu_partner&lt;/P&gt;&lt;P&gt;                     CHANGING p_subrc TYPE sysubrc.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_i_sales_area  TYPE STANDARD TABLE OF crmt_orgman_sales_area&lt;/P&gt;&lt;P&gt;                  INITIAL SIZE 0, "Sales area data&lt;/P&gt;&lt;P&gt;  l_wa_sales_area TYPE crmt_orgman_sales_area."Sales area&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get sales area data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CRM_ORGMAN_VTAREA_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      iv_keydate        = sy-datum&lt;/P&gt;&lt;P&gt;      use_buffer        = c_check&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      et_sales_area_tab = l_i_sales_area&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      nothing_found     = 1&lt;/P&gt;&lt;P&gt;      OTHERS            = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR l_wa_sales_area.&lt;/P&gt;&lt;P&gt;    READ TABLE l_i_sales_area INTO l_wa_sales_area INDEX 1.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      v_sales_org   = l_wa_sales_area-sales_org.&lt;/P&gt;&lt;P&gt;      v_dis_channel = l_wa_sales_area-dis_channel.&lt;/P&gt;&lt;P&gt;      v_division    = l_wa_sales_area-division.&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;  p_subrc = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_subrc NE 0.&lt;/P&gt;&lt;P&gt;    v_message = 'Sales area data is not found'(024).&lt;/P&gt;&lt;P&gt;    PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               v_message.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_get_sales_data&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  sub_delete_relations&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;      Delete existing Has APR Distributor relationship for 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_BP      BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC   Subrc value&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 sub_delete_relations USING p_bp      TYPE bu_partner&lt;/P&gt;&lt;P&gt;                       CHANGING p_subrc   TYPE sysubrc.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  "For Relationship data&lt;/P&gt;&lt;P&gt;  l_i_relations  TYPE  STANDARD TABLE OF but050   INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;  "For Return messages&lt;/P&gt;&lt;P&gt;  l_i_return     TYPE  STANDARD TABLE OF bapiret2 INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;  l_wa_relations TYPE but050,             "For Relationship data.&lt;/P&gt;&lt;P&gt;  l_wa_return    TYPE bapiret2.           "For return messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get all the relationships for a business partner&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'BUB_BUPR_BUT050_READ'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      e_partner    = p_bp&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      et_relations = l_i_relations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sy-subrc is not checked as exceptions is not thrown&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT l_i_relations[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Delete Standard Relation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM sub_delete_std_rel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT l_i_relations INTO l_wa_relations WHERE partner1 = p_bp&lt;/P&gt;&lt;P&gt;                                                AND reltyp   = c_rel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      REFRESH l_i_return[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Delete the existing 'Has APR Distributor' relationships&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_DELETE'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          businesspartner1     = p_bp&lt;/P&gt;&lt;P&gt;          businesspartner2     = l_wa_relations-partner2&lt;/P&gt;&lt;P&gt;          relationshipcategory = l_wa_relations-reltyp&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          return               = l_i_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT l_i_return INTO l_wa_return WHERE type = c_error  OR&lt;/P&gt;&lt;P&gt;                                                type = c_abend .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        p_subrc = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Format the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            id        = l_wa_return-id&lt;/P&gt;&lt;P&gt;            lang      = sy-langu&lt;/P&gt;&lt;P&gt;            no        = l_wa_return-number&lt;/P&gt;&lt;P&gt;            v1        = l_wa_return-message_v1&lt;/P&gt;&lt;P&gt;            v2        = l_wa_return-message_v2&lt;/P&gt;&lt;P&gt;            v3        = l_wa_return-message_v3&lt;/P&gt;&lt;P&gt;            v4        = l_wa_return-message_v4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            msg       = v_message&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;&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;        Populate the error message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXIT.&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 p_subrc NE 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_delete_relations&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  sub_delete_std_rel&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;      Delete Existing Standard relation for 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      No Parameter&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 sub_delete_std_rel.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_i_frg0081  TYPE STANDARD TABLE OF crmt_bus_frg0081_wrk&lt;/P&gt;&lt;P&gt;               INITIAL SIZE 0, "For table related to FRG0081&lt;/P&gt;&lt;P&gt;  l_i_frg0080  TYPE STANDARD TABLE OF crmt_bus_frg0080_wrk&lt;/P&gt;&lt;P&gt;               INITIAL SIZE 0, "For table related to FRG0080&lt;/P&gt;&lt;P&gt;  l_wa_frg0081 TYPE crmt_bus_frg0081_wrk.&lt;/P&gt;&lt;P&gt;  "For workarea related to FRG0081&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;Get data from Business Partner - Sales Area - Partner Function&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  READ TABLE i_frg0081 INTO l_wa_frg0081&lt;/P&gt;&lt;P&gt;       WITH KEY partner_guid = v_bp_guid&lt;/P&gt;&lt;P&gt;       sales_org = v_sales_org&lt;/P&gt;&lt;P&gt;       channel   = v_dis_channel&lt;/P&gt;&lt;P&gt;       division  = v_division&lt;/P&gt;&lt;P&gt;       BINARY SEARCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    l_wa_frg0081-is_deflt_partner = space.&lt;/P&gt;&lt;P&gt;    l_wa_frg0081-action           = c_action.&lt;/P&gt;&lt;P&gt;    l_wa_frg0081-xchng            = c_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND l_wa_frg0081 TO l_i_frg0081.&lt;/P&gt;&lt;P&gt;    CLEAR  l_wa_frg0081.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uncheck standard partner indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'CRMH_BUPR_UPDATE'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        it_frg0080_wrk = l_i_frg0080&lt;/P&gt;&lt;P&gt;        it_frg0081_wrk = l_i_frg0081.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_delete_std_rel&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  sub_create_relation&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;      Create 'Has APR Distributor' Relationship&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;     --&amp;gt;P_BP       BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_STD_APR  Standard Relation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC    Sy-subrc value&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 sub_create_relation  USING p_bp      TYPE bu_partner&lt;/P&gt;&lt;P&gt;                                p_std_apr TYPE bu_partner&lt;/P&gt;&lt;P&gt;                       CHANGING p_subrc   TYPE sysubrc.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  "For Return messages&lt;/P&gt;&lt;P&gt;  l_i_return     TYPE  STANDARD TABLE OF bapiret2 INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;  l_wa_return    TYPE bapiret2.                  "For return messages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH r_apr.&lt;/P&gt;&lt;P&gt;  CLEAR:  r_apr, wa_bp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the range table for BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_bp-sign = 'I'.&lt;/P&gt;&lt;P&gt;  wa_bp-option = 'EQ'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_data FROM v_index&lt;/P&gt;&lt;P&gt;          INTO wa_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Store the index in a global variable&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    v_index = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_data-bp = p_bp.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    To create the relationship "Has APR Distributor"&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_CREATE'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          businesspartner1     = wa_data-bp&lt;/P&gt;&lt;P&gt;          businesspartner2     = wa_data-apr_id&lt;/P&gt;&lt;P&gt;          relationshipcategory = c_rel&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          return               = l_i_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT l_i_return INTO l_wa_return WHERE type = c_error  OR&lt;/P&gt;&lt;P&gt;                                                type = c_abend .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        p_subrc = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Format the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            id        = l_wa_return-id&lt;/P&gt;&lt;P&gt;            lang      = sy-langu&lt;/P&gt;&lt;P&gt;            no        = l_wa_return-number&lt;/P&gt;&lt;P&gt;            v1        = l_wa_return-message_v1&lt;/P&gt;&lt;P&gt;            v2        = l_wa_return-message_v2&lt;/P&gt;&lt;P&gt;            v3        = l_wa_return-message_v3&lt;/P&gt;&lt;P&gt;            v4        = l_wa_return-message_v4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            msg       = v_message&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;&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;        Populate the error message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           c_check&lt;/P&gt;&lt;P&gt;                                           v_message.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;&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;    Collect the APR ID for the successful relation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    It will be used in the update relation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF p_subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_bp-low = wa_data-apr_id.&lt;/P&gt;&lt;P&gt;        APPEND wa_bp TO r_apr.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        EXIT.&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;  The table i_data is sorted by bp...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If it finds any bp greater than p_bp... exit the loop&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSEIF wa_data-bp &amp;gt; p_bp.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&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;If successful, then Commit work&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF p_subrc = 0.&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 = c_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Update the relation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM sub_update_relation USING p_bp&lt;/P&gt;&lt;P&gt;                                      p_std_apr.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_create_relation&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  sub_update_relation&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;      Update sales data &amp;amp; Standard check for the relation&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;     --&amp;gt;P_BP  BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_STD_APR  Standard Relation&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 sub_update_relation  USING p_bp      TYPE bu_partner&lt;/P&gt;&lt;P&gt;                                p_std_apr TYPE bu_partner.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_i_frg0081  TYPE STANDARD TABLE OF crmt_bus_frg0081_wrk&lt;/P&gt;&lt;P&gt;               INITIAL SIZE 0,            "For table related to FRG0081&lt;/P&gt;&lt;P&gt;  l_i_frg0080  TYPE STANDARD TABLE OF crmt_bus_frg0080_wrk&lt;/P&gt;&lt;P&gt;               INITIAL SIZE 0,            "For table related to FRG0080&lt;/P&gt;&lt;P&gt;  l_wa_frg0081 TYPE crmt_bus_frg0081_wrk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH i_but050[].&lt;/P&gt;&lt;P&gt;  IF r_apr[] IS NOT INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get the relationship number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT relnr                                  "BP Relationship No&lt;/P&gt;&lt;P&gt;           partner1                               "BP  Number1&lt;/P&gt;&lt;P&gt;           partner2                               "BP  Number2&lt;/P&gt;&lt;P&gt;           date_to                                "Validity Date&lt;/P&gt;&lt;P&gt;           FROM but050&lt;/P&gt;&lt;P&gt;           INTO TABLE i_but050&lt;/P&gt;&lt;P&gt;           WHERE partner1 = p_bp&lt;/P&gt;&lt;P&gt;           AND partner2 IN r_apr[]&lt;/P&gt;&lt;P&gt;           AND date_to &amp;gt;= sy-datum&lt;/P&gt;&lt;P&gt;           AND reltyp = c_reltyp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SORT i_but050 BY partner2.&lt;/P&gt;&lt;P&gt;    ENDIF.&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;Update the relationship*************************************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_wa_frg0081-partner_guid = v_bp_guid.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-sales_org = v_sales_org.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-channel = v_dis_channel.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-division = v_division.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-partner_fct = c_partner_fct.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-valid_to =  c_validto.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-valid_from = c_validfrom.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-xchng = c_check.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-partner1 = p_bp.&lt;/P&gt;&lt;P&gt;  l_wa_frg0081-action = c_action.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT r_apr INTO wa_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get the relationship number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR wa_but050.&lt;/P&gt;&lt;P&gt;    READ TABLE i_but050 INTO wa_but050&lt;/P&gt;&lt;P&gt;                WITH KEY&lt;/P&gt;&lt;P&gt;                partner2 = wa_bp-low&lt;/P&gt;&lt;P&gt;                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      l_wa_frg0081-relnr = wa_but050-relnr.&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;  Get the APR guid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR wa_but000.&lt;/P&gt;&lt;P&gt;    READ TABLE i_but000 INTO wa_but000&lt;/P&gt;&lt;P&gt;         WITH KEY partner = wa_bp-low&lt;/P&gt;&lt;P&gt;         BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      l_wa_frg0081-rel_partner_guid =&lt;/P&gt;&lt;P&gt;                   wa_but000-partner_guid.&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;  Mark the standard relationship&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF wa_bp-low = p_std_apr.&lt;/P&gt;&lt;P&gt;      l_wa_frg0081-is_deflt_partner = c_check.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      CLEAR l_wa_frg0081-is_deflt_partner.&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;  Append the relationship&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    APPEND l_wa_frg0081 TO l_i_frg0081.&lt;/P&gt;&lt;P&gt;&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;Update the standard partner indicator (X)***********************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CRMH_BUPR_UPDATE'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      it_frg0080_wrk = l_i_frg0080&lt;/P&gt;&lt;P&gt;      it_frg0081_wrk = l_i_frg0081.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_update_relation&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  sub_update_apr_text_for_bp&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;      Update APR audit text in transaction 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_BP          BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_STATUS_MSG  Status message&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC       Sy-subrc value&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 sub_update_apr_text_for_bp  USING    p_bp         TYPE bu_partner&lt;/P&gt;&lt;P&gt;                                          p_status_msg TYPE tdline&lt;/P&gt;&lt;P&gt;                                 CHANGING p_subrc      TYPE sysubrc.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;       l_i_header     TYPE STANDARD TABLE OF thead,&lt;/P&gt;&lt;P&gt;       l_i_longtexts  TYPE STANDARD TABLE OF bus_ei_bupa_longtext,&lt;/P&gt;&lt;P&gt;       l_i_lines      TYPE comt_text_lines_t,          "Text lines&lt;/P&gt;&lt;P&gt;       l_wa_data_key  TYPE bus_ei_struc_longtext_key,  "Long text key&lt;/P&gt;&lt;P&gt;       l_wa_header    TYPE thead,&lt;/P&gt;&lt;P&gt;       l_wa_longtexts TYPE bus_ei_bupa_longtext,&lt;/P&gt;&lt;P&gt;       l_tdid         TYPE tdid,&lt;/P&gt;&lt;P&gt;       l_name         TYPE tdobname,&lt;/P&gt;&lt;P&gt;       l_wa_tline     TYPE tline,                  "SAPscript Text line&lt;/P&gt;&lt;P&gt;       l_wa_data      TYPE bus_ei_struc_longtext.  "Long text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_tdid = c_textid_apr.&lt;/P&gt;&lt;P&gt;  l_name = p_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read all old entries of ID numbers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SELECT_TEXT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      database_only = c_check&lt;/P&gt;&lt;P&gt;      object        = c_object&lt;/P&gt;&lt;P&gt;      name          = l_name&lt;/P&gt;&lt;P&gt;      id            = l_tdid&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      selections    = l_i_header&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      OTHERS        = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE l_i_header INTO l_wa_header WITH KEY tdid = l_tdid.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    l_wa_longtexts-data_key-text_id = l_wa_header-tdid.&lt;/P&gt;&lt;P&gt;    l_wa_longtexts-data_key-langu   = l_wa_header-tdspras.&lt;/P&gt;&lt;P&gt;    APPEND l_wa_longtexts TO l_i_longtexts.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE l_i_longtexts INTO l_wa_longtexts INDEX 1.&lt;/P&gt;&lt;P&gt;&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;Delete the long text if new text for that text-id is available&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'DELETE_TEXT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id       = l_wa_longtexts-data_key-text_id&lt;/P&gt;&lt;P&gt;        language = l_wa_longtexts-data_key-langu&lt;/P&gt;&lt;P&gt;        name     = l_name&lt;/P&gt;&lt;P&gt;        object   = c_object.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_wa_header, l_wa_longtexts.&lt;/P&gt;&lt;P&gt;  REFRESH : l_i_longtexts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_wa_tline-tdformat = c_tdformat.&lt;/P&gt;&lt;P&gt;  l_wa_tline-tdline = p_status_msg.&lt;/P&gt;&lt;P&gt;  APPEND l_wa_tline TO l_i_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_wa_data_key-text_id = c_textid_apr.&lt;/P&gt;&lt;P&gt;  l_wa_data_key-langu = sy-langu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_wa_longtexts-task = c_task.&lt;/P&gt;&lt;P&gt;  l_wa_longtexts-data_key = l_wa_data_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_wa_data-lines = l_i_lines.&lt;/P&gt;&lt;P&gt;  l_wa_longtexts-data = l_wa_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND l_wa_longtexts TO l_i_longtexts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_wa_header-tdid     = l_wa_longtexts-data_key-text_id.&lt;/P&gt;&lt;P&gt;  l_wa_header-tdspras  = l_wa_longtexts-data_key-langu.&lt;/P&gt;&lt;P&gt;  l_wa_header-tdname   = p_bp.&lt;/P&gt;&lt;P&gt;  l_wa_header-tdobject = c_object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save the long text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SAVE_TEXT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      header   = l_wa_header&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      lines    = l_wa_longtexts-data-lines&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      id       = 1&lt;/P&gt;&lt;P&gt;      language = 2&lt;/P&gt;&lt;P&gt;      name     = 3&lt;/P&gt;&lt;P&gt;      object   = 4&lt;/P&gt;&lt;P&gt;      OTHERS   = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_subrc = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  save text memory&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'COMMIT_TEXT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        object = c_object&lt;/P&gt;&lt;P&gt;        name   = l_name.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  No need to check sy-subrc as no exception is thrown&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    v_message = 'Status message updation failed!'(050).&lt;/P&gt;&lt;P&gt;    PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               c_check&lt;/P&gt;&lt;P&gt;                               v_message.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_update_apr_text_for_bp&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  sub_update_attrib_10&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;      Update Attribute 9, 10 field the BP in Classification Tab&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;     --&amp;gt;P_BP          BP Number&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ATTRIB_10   Attrib 10 value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ATTRIB_9    Attrib 9 value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_SUBRC       Subrc value&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 sub_update_attrib_10  USING    p_bp        TYPE bu_partner&lt;/P&gt;&lt;P&gt;                                    p_attrib_10 TYPE crmt_bu_katr10&lt;/P&gt;&lt;P&gt;                                    p_attrib_9  TYPE crmt_bu_katr9&lt;/P&gt;&lt;P&gt;                           CHANGING p_subrc     TYPE sysubrc.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;  l_changed_on     TYPE timestamp,          "UTC Time Stamp&lt;/P&gt;&lt;P&gt;  l_home_system    TYPE logsys,             "Logical system&lt;/P&gt;&lt;P&gt;  l_wa_frg0040     TYPE crmm_but_frg0040,   "For CRMM_BUT_FRG0040&lt;/P&gt;&lt;P&gt;  l_wa_frg0041     TYPE crmm_but_frg0041,   "For CRMM_BUT_FRG0041&lt;/P&gt;&lt;P&gt;  l_wa_frg0040_bp  TYPE crmt_bus_frg0040,   "CRM BP Fragment Structure&lt;/P&gt;&lt;P&gt;  l_wa_return      TYPE bapiret2,           "Return parameter&lt;/P&gt;&lt;P&gt;  l_i_frg0040_old  TYPE crmt_but_frg0040_t, "For CRMM_BUT_FRG0040&lt;/P&gt;&lt;P&gt;  l_i_frg0040_new  TYPE crmt_but_frg0040_t, "For CRMM_BUT_FRG0040&lt;/P&gt;&lt;P&gt;  l_i_frg0041_old  TYPE crmt_but_frg0041_t, "For CRMM_BUT_FRG0041&lt;/P&gt;&lt;P&gt;  l_i_frg0041_new  TYPE crmt_but_frg0041_t, "For CRMM_BUT_FRG0041&lt;/P&gt;&lt;P&gt;  l_i_return       TYPE STANDARD TABLE OF bapiret2."Return table&lt;/P&gt;&lt;P&gt;&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; Get the attribute 10 field of the MAIN BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CRM_BUPA_FRG0040_GET_DETAIL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      iv_partner_guid = v_bp_guid&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      es_data         = l_wa_frg0040_bp&lt;/P&gt;&lt;P&gt;      et_return       = l_i_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT l_i_return INTO l_wa_return WHERE type = c_error  OR&lt;/P&gt;&lt;P&gt;                                            type = c_abend .&lt;/P&gt;&lt;P&gt;    p_subrc = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Format the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id        = l_wa_return-id&lt;/P&gt;&lt;P&gt;        lang      = sy-langu&lt;/P&gt;&lt;P&gt;        no        = l_wa_return-number&lt;/P&gt;&lt;P&gt;        v1        = l_wa_return-message_v1&lt;/P&gt;&lt;P&gt;        v2        = l_wa_return-message_v2&lt;/P&gt;&lt;P&gt;        v3        = l_wa_return-message_v3&lt;/P&gt;&lt;P&gt;        v4        = l_wa_return-message_v4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        msg       = v_message&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        not_found = 1&lt;/P&gt;&lt;P&gt;        OTHERS    = 2.&lt;/P&gt;&lt;P&gt;&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;    Populate the error message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM sub_append_message USING p_bp&lt;/P&gt;&lt;P&gt;                                       c_check&lt;/P&gt;&lt;P&gt;                                       c_check&lt;/P&gt;&lt;P&gt;                                       v_message.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    EXIT.&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 p_subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Change the currently valid data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    GET TIME STAMP FIELD l_changed_on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Get home system&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        own_logical_system             = l_home_system&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        own_logical_system_not_defined = 1&lt;/P&gt;&lt;P&gt;        OTHERS                         = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      l_wa_frg0040-home_system  = l_home_system.&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;   Populating the internal table for FRG0040&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_wa_frg0040-client       = sy-mandt.&lt;/P&gt;&lt;P&gt;    l_wa_frg0040-partner_guid = v_bp_guid.&lt;/P&gt;&lt;P&gt;    l_wa_frg0040-changed_by   = sy-uname.&lt;/P&gt;&lt;P&gt;    l_wa_frg0040-changed_on   = l_changed_on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND l_wa_frg0040 TO l_i_frg0040_old.&lt;/P&gt;&lt;P&gt;    APPEND l_wa_frg0040 TO l_i_frg0040_new.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Populating the internal table for FRG0041&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE-CORRESPONDING l_wa_frg0040_bp TO l_wa_frg0041.&lt;/P&gt;&lt;P&gt;    l_wa_frg0041-client          = sy-mandt.&lt;/P&gt;&lt;P&gt;    l_wa_frg0041-partner_guid    = v_bp_guid.&lt;/P&gt;&lt;P&gt;    l_wa_frg0041-valid_to        = c_validto.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND l_wa_frg0041 TO l_i_frg0041_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_wa_frg0041-attrib_10  = p_attrib_10.&lt;/P&gt;&lt;P&gt;    l_wa_frg0041-attrib_9   = p_attrib_9.&lt;/P&gt;&lt;P&gt;    APPEND l_wa_frg0041 TO l_i_frg0041_new.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CRM_BUPA_FRG0040_SAVE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        iv_in_update_task = c_check&lt;/P&gt;&lt;P&gt;        it_frg0040_old    = l_i_frg0040_old&lt;/P&gt;&lt;P&gt;        it_frg0041_old    = l_i_frg0041_old&lt;/P&gt;&lt;P&gt;        it_frg0040_new    = l_i_frg0040_new&lt;/P&gt;&lt;P&gt;        it_frg0041_new    = l_i_frg0041_new.&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.                    " sub_update_attrib_10&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  sub_unlock_bp&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;      Unlock 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_BP  Unlock 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 sub_unlock_bp  USING p_bp TYPE bu_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'DEQUEUE_EBU_PARTNR'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      partner = p_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_unlock_bp&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  sub_display_summary&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;      Displaying header for the report&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;      No parameter&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 sub_display_summary .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_str       TYPE string,&lt;/P&gt;&lt;P&gt;        l_count_tmp TYPE i.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;It is written because sy-pagno can not be set without write statement&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output basic report header details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-pagno = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / 'Summary:'(025),&lt;/P&gt;&lt;P&gt;           / '.................................................'(026).&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Write the report header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  This conversion is done because the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  filename data element creates new line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_str = p_afile.&lt;/P&gt;&lt;P&gt;    l_count_tmp = v_count - v_sucs_cnt.&lt;/P&gt;&lt;P&gt;    WRITE: /3 'Source File   :'(027), l_str,&lt;/P&gt;&lt;P&gt;           /3 'Target System :'(028), sy-sysid,&lt;/P&gt;&lt;P&gt;           /3 'No of BP      :'(029), v_count LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           /3 'Updated       :'(030), v_sucs_cnt LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           /3 'Failed        :'(031), l_count_tmp LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;           /3 'Execution Time:'(032), v_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_display_summary&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  sub_display_report&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;      Display detail report&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;      No Parameter&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 sub_display_report .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_message BY bp main_flag.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE: / 'Detail Result:'(033),&lt;/P&gt;&lt;P&gt;         / '.................................................'(026).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the field level&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ULINE AT /(142).&lt;/P&gt;&lt;P&gt;  FORMAT COLOR COL_HEADING INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  WRITE:  /1 sy-vline, 'BP'(008),&lt;/P&gt;&lt;P&gt;          15 sy-vline, 'Message'(034),&lt;/P&gt;&lt;P&gt;         142 sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE AT /(142).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display the records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_message INTO wa_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If successful&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF wa_message-err_flag = space.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If failed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.&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;  Display the details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WRITE:  /1 sy-vline, wa_message-bp,&lt;/P&gt;&lt;P&gt;            15 sy-vline, wa_message-message,&lt;/P&gt;&lt;P&gt;           142 sy-vline.&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;  ULINE AT /(142).&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_display_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;==============================================&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 09:55:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116417#M984136</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T09:55:21Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116418#M984137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can use this bapi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       BAPI_BUPA_ADDRESS_CHANGE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 10:03:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116418#M984137</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T10:03:02Z</dc:date>
    </item>
    <item>
      <title>Re: TCODE BP</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116419#M984138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I think as for my knowledge the recording for the transaction BP is similar to the recording fo the SAP Njoy transactions which is not feasible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So Please search for the available bAPIS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REgards&lt;/P&gt;&lt;P&gt;Abhilash.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 01 Jul 2008 12:00:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/tcode-bp/m-p/4116419#M984138</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-07-01T12:00:59Z</dc:date>
    </item>
  </channel>
</rss>

