<?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 function module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855571#M669323</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what does the function module "CS_WHERE_USED_MAT" do???&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Sep 2007 10:22:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-28T10:22:17Z</dc:date>
    <item>
      <title>function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855571#M669323</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what does the function module "CS_WHERE_USED_MAT" do???&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 10:22:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855571#M669323</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-28T10:22:17Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855572#M669324</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chek the below thread..&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3869368"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="482090"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="457929"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Reward poits if u find useful&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Nagaraj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 10:28:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855572#M669324</guid>
      <dc:creator>former_member404244</dc:creator>
      <dc:date>2007-09-28T10:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855573#M669325</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the function module used in CS15 and you can pass the material &lt;/P&gt;&lt;P&gt;required and loop the output whatever is out of this &lt;/P&gt;&lt;P&gt;function module to be again passed on to it back. By passing this you can get each level of components and move up until the end. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It will give you where the material is used at different levels&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if usefull&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds&lt;/P&gt;&lt;P&gt;Raghav T&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 10:35:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855573#M669325</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-28T10:35:04Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855574#M669326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;go through this code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report z. &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explode assembly (including phantom assemblies up to last level) * Explode assembly (including phantom assemblies up to last level) &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_werks like t001w-werks obligatory, parameters: p_werks like t001w-werks obligatory, &lt;/P&gt;&lt;P&gt;p_matnr like mara-matnr obligatory. p_matnr like mara-matnr obligatory. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;constants c_x value 'X'. constants c_x value 'X'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of it_comp occurs 0, data: begin of it_comp occurs 0, &lt;/P&gt;&lt;P&gt;idnrk like stpox-idnrk, idnrk stpox-idnrk like, &lt;/P&gt;&lt;P&gt;ojtxp like stpox-ojtxp, ojtxp stpox-ojtxp like, &lt;/P&gt;&lt;P&gt;menge like stpox-menge, menge stpox-menge like, &lt;/P&gt;&lt;P&gt;meins like stpox-meins, meins stpox-meins like, &lt;/P&gt;&lt;P&gt;matkl like stpox-matmk, matkl stpox-matmk like, &lt;/P&gt;&lt;P&gt;end of it_comp. end of it_comp. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: w_topmat like cstmat, data: w_topmat cstmat like, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="19" type="ul"&gt;&lt;P&gt;********************************* &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;start-of-selection. &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="19" type="ul"&gt;&lt;P&gt;********************************* &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;perform explode_assembly. explode_assembly perform. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;end-of-selection. &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="17" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;perform write_report. write_report perform. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="12" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;top-of-page. &lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="12" type="ul"&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;perform print_header. perform print_header. &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;STRONG&gt;&amp;amp;----&lt;HR originaltext="-------------------------------------------" /&gt; -&lt;HR originaltext="--------------------" /&gt;&lt;/STRONG&gt; &lt;P&gt;&lt;/P&gt;&lt;P&gt;form print_header. print_header form. &lt;/P&gt;&lt;P&gt;write: /(18) 'Component'(h00), write: (18) 'Component' (h00) &lt;/P&gt;&lt;P&gt;(40) 'Description'(h01), (40) 'Description' (h01) &lt;/P&gt;&lt;P&gt;'Mat.Group'(h02), 'Mat.Group' (h02) &lt;/P&gt;&lt;P&gt;(18) 'Quantity'(h03). (18) 'Quantity' (h03). &lt;/P&gt;&lt;P&gt;uline. &lt;/P&gt;&lt;P&gt;endform. &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;STRONG&gt;&amp;amp;----&lt;HR originaltext="-------------------------------------------" /&gt; -&lt;HR originaltext="--------------------" /&gt;&lt;/STRONG&gt; &lt;P&gt;&lt;/P&gt;&lt;P&gt;form write_report. write_report form. &lt;/P&gt;&lt;P&gt;write: / w_topmat-matnr under text-h00 color col_heading, write: / w_topmat-matnr under text-h00 col_heading color, &lt;/P&gt;&lt;P&gt;w_topmat-maktx under text-h01 color col_heading. w_topmat-maktx under text-h01 col_heading color. &lt;/P&gt;&lt;P&gt;loop at it_comp. at it_comp loop. &lt;/P&gt;&lt;P&gt;write: / write: / &lt;/P&gt;&lt;P&gt;it_comp-idnrk under text-h00, it_comp-idnrk under text-h00, &lt;/P&gt;&lt;P&gt;it_comp-ojtxp under text-h01, it_comp-ojtxp under text-h01, &lt;/P&gt;&lt;P&gt;it_comp-matkl under text-h02, it_comp-matkl under text-h02, &lt;/P&gt;&lt;P&gt;it_comp-menge unit it_comp-meins under text-h03, it_comp-menge unit it_comp-meins under text-h03, &lt;/P&gt;&lt;P&gt;it_comp-meins. &lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;uline. &lt;/P&gt;&lt;P&gt;endform. &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;STRONG&gt;&amp;amp;----&lt;HR originaltext="-------------------------------------------" /&gt; -&lt;HR originaltext="--------------------" /&gt;&lt;/STRONG&gt; &lt;P&gt;&lt;/P&gt;&lt;P&gt;form explode_assembly. explode_assembly form. &lt;/P&gt;&lt;P&gt;data: it_stb like stpox occurs 0 with header line, data: it_stb like stpox occurs 0 with header line, &lt;/P&gt;&lt;P&gt;it_stb2 like stpox occurs 0 with header line, it_stb2 like stpox occurs 0 with header line, &lt;/P&gt;&lt;P&gt;it_stb3 like stpox occurs 0 with header line, it_stb3 like stpox occurs 0 with header line, &lt;/P&gt;&lt;P&gt;w_msg(255) type c. w_msg (255) type c. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explode highest level: * Explode highest level: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'CS_BOM_EXPL_MAT_V2' call function 'CS_BOM_EXPL_MAT_V2' &lt;/P&gt;&lt;P&gt;exporting &lt;/P&gt;&lt;P&gt;capid = 'PP01' capid = 'PP01' &lt;/P&gt;&lt;P&gt;cuols = c_x cuols = c_x &lt;/P&gt;&lt;P&gt;datuv = sy-datum datuv = sy-datum &lt;/P&gt;&lt;P&gt;knfba = c_x knfba = c_x &lt;/P&gt;&lt;P&gt;ksbvo = c_x ksbvo = c_x &lt;/P&gt;&lt;P&gt;mbwls = c_x mbwls = c_x &lt;/P&gt;&lt;P&gt;mdmps = c_x mdmps = c_x &lt;/P&gt;&lt;P&gt;mtnrv = p_matnr mtnrv = p_matnr &lt;/P&gt;&lt;P&gt;werks = p_werks werks = p_werks &lt;/P&gt;&lt;P&gt;importing &lt;/P&gt;&lt;P&gt;topmat = w_topmat topmat = w_topmat &lt;/P&gt;&lt;P&gt;tables &lt;/P&gt;&lt;P&gt;stb = it_stb stb = it_stb &lt;/P&gt;&lt;P&gt;exceptions &lt;/P&gt;&lt;P&gt;alt_not_found = 1 alt_not_found = 1 &lt;/P&gt;&lt;P&gt;call_invalid = 2 call_invalid = 2 &lt;/P&gt;&lt;P&gt;material_not_found = 3 material_not_found = 3 &lt;/P&gt;&lt;P&gt;missing_authorization = 4 missing_authorization = 4 &lt;/P&gt;&lt;P&gt;no_bom_found = 5 no_bom_found = 5 &lt;/P&gt;&lt;P&gt;no_plant_data = 6 no_plant_data = 6 &lt;/P&gt;&lt;P&gt;no_suitable_bom_found = 7 no_suitable_bom_found = 7 &lt;/P&gt;&lt;P&gt;conversion_error = 8 conversion_error = 8 &lt;/P&gt;&lt;P&gt;others = 9. others = 9. &lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;message id sy-msgid type sy-msgty number sy-msgno id message sy-msgid type sy-msgty number sy-msgno &lt;/P&gt;&lt;P&gt;with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 &lt;/P&gt;&lt;P&gt;into w_msg. w_msg into. &lt;/P&gt;&lt;P&gt;write: / w_msg. write: / w_msg. &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;Don't process documents * Do not process documents &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;delete it_stb where idnrk is initial. delete it_stb where idnrk is initial. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Don't process valid from furure: * Do not valid from furure process: &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;delete it_stb where datuv &amp;gt;= sy-datum. delete it_stb where datuv&amp;gt; = sy-datum. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Explode phantom assemblies up to last level * Explode phantom assemblies up to last level &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;do. &lt;/P&gt;&lt;P&gt;it_stb2[] = it_stb[]. it_stb2 it_stb = [] []. &lt;/P&gt;&lt;P&gt;delete it_stb2 where dumps is initial. delete it_stb2 where dumps is initial. &lt;/P&gt;&lt;P&gt;if it_stb2[] is initial. if it_stb2 [] is initial. &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;delete it_stb where not dumps is initial. delete it_stb dumps is not where initial. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_stb2. at it_stb2 loop. &lt;/P&gt;&lt;P&gt;call function 'CS_BOM_EXPL_MAT_V2' call function 'CS_BOM_EXPL_MAT_V2' &lt;/P&gt;&lt;P&gt;exporting &lt;/P&gt;&lt;P&gt;capid = 'PP01' capid = 'PP01' &lt;/P&gt;&lt;P&gt;cuols = c_x cuols = c_x &lt;/P&gt;&lt;P&gt;datuv = sy-datum datuv = sy-datum &lt;/P&gt;&lt;P&gt;knfba = c_x knfba = c_x &lt;/P&gt;&lt;P&gt;ksbvo = c_x ksbvo = c_x &lt;/P&gt;&lt;P&gt;mbwls = c_x mbwls = c_x &lt;/P&gt;&lt;P&gt;mdmps = c_x mdmps = c_x &lt;/P&gt;&lt;P&gt;mtnrv = it_stb2-idnrk mtnrv = it_stb2-idnrk &lt;/P&gt;&lt;P&gt;werks = p_werks werks = p_werks &lt;/P&gt;&lt;P&gt;tables &lt;/P&gt;&lt;P&gt;stb = it_stb3 stb = it_stb3 &lt;/P&gt;&lt;P&gt;exceptions &lt;/P&gt;&lt;P&gt;alt_not_found = 1 alt_not_found = 1 &lt;/P&gt;&lt;P&gt;call_invalid = 2 call_invalid = 2 &lt;/P&gt;&lt;P&gt;material_not_found = 3 material_not_found = 3 &lt;/P&gt;&lt;P&gt;missing_authorization = 4 missing_authorization = 4 &lt;/P&gt;&lt;P&gt;no_bom_found = 5 no_bom_found = 5 &lt;/P&gt;&lt;P&gt;no_plant_data = 6 no_plant_data = 6 &lt;/P&gt;&lt;P&gt;no_suitable_bom_found = 7 no_suitable_bom_found = 7 &lt;/P&gt;&lt;P&gt;conversion_error = 8 conversion_error = 8 &lt;/P&gt;&lt;P&gt;others = 9. others = 9. &lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0. if sy-subrc &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;message id sy-msgid type sy-msgty number sy-msgno id message sy-msgid type sy-msgty number sy-msgno &lt;/P&gt;&lt;P&gt;with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 &lt;/P&gt;&lt;P&gt;into w_msg. w_msg into. &lt;/P&gt;&lt;P&gt;write: / w_msg. write: / w_msg. &lt;/P&gt;&lt;P&gt;else. &lt;/P&gt;&lt;P&gt;delete it_stb3 where idnrk is initial. delete it_stb3 where idnrk is initial. &lt;/P&gt;&lt;P&gt;loop at it_stb3. at it_stb3 loop. &lt;/P&gt;&lt;P&gt;multiply it_stb3-menge by it_stb2-menge. multiply by it_stb3-menge it_stb2-menge. &lt;/P&gt;&lt;P&gt;modify it_stb3 transporting menge. menge modify it_stb3 transporting. &lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;append lines of it_stb3 to it_stb. append lines of it_stb3 to it_stb. &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;enddo. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build table of components collecting the same components from * Build table collecting components of the same components from &lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;all levels * all levels &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;loop at it_stb. at it_stb loop. &lt;/P&gt;&lt;P&gt;it_comp-matkl = it_stb-matmk. it_comp-matkl = it_stb-matmk. &lt;/P&gt;&lt;P&gt;it_comp-idnrk = it_stb-idnrk. it_comp-idnrk = it_stb-idnrk. &lt;/P&gt;&lt;P&gt;it_comp-ojtxp = it_stb-ojtxp. it_comp-ojtxp = it_stb-ojtxp. &lt;/P&gt;&lt;P&gt;it_comp-menge = it_stb-menge. it_comp-menge = it_stb-menge. &lt;/P&gt;&lt;P&gt;it_comp-meins = it_stb-meins. it_comp-meins = it_stb-meins. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;collect it_comp. it_comp collect. &lt;/P&gt;&lt;P&gt;clear it_comp. it_comp clear. &lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward point if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 10:39:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855574#M669326</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-28T10:39:26Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855575#M669327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;go through this sample code u will get some thing out of this piece of code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : mara, marm, marc, stko,stpo, kotd001, kondd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Main Block&lt;/P&gt;&lt;P&gt;selection-screen begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options : s_matnr for mara-matnr,&lt;/P&gt;&lt;P&gt;                 s_mtart for mara-mtart,&lt;/P&gt;&lt;P&gt;                 s_matkl for mara-matkl,&lt;/P&gt;&lt;P&gt;                 s_werks for marc-werks default '0365',&lt;/P&gt;&lt;P&gt;                 s_meins for mara-meins no intervals no-extension&lt;/P&gt;&lt;P&gt;                       default 'GLF',&lt;/P&gt;&lt;P&gt;                 s_fmeins for mara-meins no intervals no-extension&lt;/P&gt;&lt;P&gt;                       default 'UNT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                s_stlty for stko-stlty.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;parameters: p_datub like rc29l-datub,&lt;/P&gt;&lt;P&gt;            p_datuv like rc29l-datuv.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;selection-screen skip.&lt;/P&gt;&lt;P&gt;parameters : p_vkorg type vkorg default '0101',&lt;/P&gt;&lt;P&gt;             p_vtweg type vtweg default '01',&lt;/P&gt;&lt;P&gt;             p_capid type capid default 'PI01',&lt;/P&gt;&lt;P&gt;             p_stlan type stlan default ' '.&lt;/P&gt;&lt;P&gt;*selection-screen begin of line.&lt;/P&gt;&lt;P&gt;*selection-screen comment text-050.&lt;/P&gt;&lt;P&gt;parameters : p_rvrel type rvrel default ' ' as checkbox,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            p_SANFR type SANFE default 'X' AS CHECKBOX,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*selection-screen end of line.&lt;/P&gt;&lt;P&gt;             p_mehrs type mehrs as checkbox,&lt;/P&gt;&lt;P&gt;             p_except as checkbox.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;selection-screen end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen skip.&lt;/P&gt;&lt;P&gt;selection-screen begin of block b2 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters: rb_tdn  radiobutton group rad default 'X',&lt;/P&gt;&lt;P&gt;            rb_btup  radiobutton group rad.&lt;/P&gt;&lt;P&gt;selection-screen skip.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;*parameters : p_uom as checkbox default 'X'.&lt;/P&gt;&lt;P&gt;*parameters : p_uom as checkbox .&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;selection-screen end of block b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types : begin of t_matnr,&lt;/P&gt;&lt;P&gt;        matnr type mara-matnr,  "Material&lt;/P&gt;&lt;P&gt;        mtart type mara-mtart,  "Material type&lt;/P&gt;&lt;P&gt;        matkl type mara-matkl,  "Material group&lt;/P&gt;&lt;P&gt;        meins type mara-meins,  "Base unit of measure&lt;/P&gt;&lt;P&gt;        prdha type mara-prdha,  "Prod hierarchy&lt;/P&gt;&lt;P&gt;        werks type marc-werks,  "Plant&lt;/P&gt;&lt;P&gt;        sobsl type marc-sobsl,  "Procurement key&lt;/P&gt;&lt;P&gt;        end of t_matnr.&lt;/P&gt;&lt;P&gt;data: i_matnr type standard table of t_matnr with default key,&lt;/P&gt;&lt;P&gt;      it_matnr type standard table of t_matnr with default key,&lt;/P&gt;&lt;P&gt;      bit_matnr type standard table of t_matnr with default key,&lt;/P&gt;&lt;P&gt;      b_matnr type t_matnr,&lt;/P&gt;&lt;P&gt;      h_matnr type t_matnr.&lt;/P&gt;&lt;P&gt;*BOM&lt;/P&gt;&lt;P&gt;data : h_cstmat type cstmat,&lt;/P&gt;&lt;P&gt;       i_stb type standard table of stpox with  default key,&lt;/P&gt;&lt;P&gt;       h_stb type stpox.&lt;/P&gt;&lt;P&gt;*Alt uom&lt;/P&gt;&lt;P&gt;types : begin of t_marm,&lt;/P&gt;&lt;P&gt;        matnr type marm-matnr,&lt;/P&gt;&lt;P&gt;        meinh type marm-meinh,&lt;/P&gt;&lt;P&gt;end of t_marm.&lt;/P&gt;&lt;P&gt;data: i_marm type sorted table of t_marm with unique default key,&lt;/P&gt;&lt;P&gt;      h_marm type t_marm.&lt;/P&gt;&lt;P&gt;*Final table&lt;/P&gt;&lt;P&gt;types : begin of t_final,&lt;/P&gt;&lt;P&gt;        fmatnr type mara-matnr,  "find matnr&lt;/P&gt;&lt;P&gt;        stlnr type stko-stlnr,   "BOM&lt;/P&gt;&lt;P&gt;        werks type marc-werks,   "pLANT&lt;/P&gt;&lt;P&gt;        lkmatnr(8),               "Legacy Material&lt;/P&gt;&lt;P&gt;        kmatnr type mara-matnr,  "Material&lt;/P&gt;&lt;P&gt;        kmaktx type makt-maktx,  "Description&lt;/P&gt;&lt;P&gt;        matkl type mara-matkl,   "Group&lt;/P&gt;&lt;P&gt;        mtart type mara-mtart,   "Type&lt;/P&gt;&lt;P&gt;        prdha type mara-prdha,   "PROD HIERARCHY&lt;/P&gt;&lt;P&gt;        kmeins type mara-meins,   "Base unit&lt;/P&gt;&lt;P&gt;        kmenge type stpo-menge,   "Base quantity&lt;/P&gt;&lt;P&gt;        cidnrk type stpo-idnrk,    "Component&lt;/P&gt;&lt;P&gt;        cmaktx type makt-maktx,    "Description&lt;/P&gt;&lt;P&gt;        lcmatnr(8),               "Legacy Mat  erial&lt;/P&gt;&lt;P&gt;        cmtart type mara-mtart,  "Material type&lt;/P&gt;&lt;P&gt;        cmatkl type mara-matkl,  "Material group&lt;/P&gt;&lt;P&gt;        cprdha type mara-prdha,  "Material prod hier&lt;/P&gt;&lt;P&gt;        cmeins type mara-meins,    "Component uom&lt;/P&gt;&lt;P&gt;        cmenge type stpo-menge,    "Component quantity&lt;/P&gt;&lt;P&gt;        akmenge type stpo-menge,   "Alternate for kit&lt;/P&gt;&lt;P&gt;        acmenge type stpo-menge,   "Alternate for component&lt;/P&gt;&lt;P&gt;        ameins type mara-meins,    "Alternate for both&lt;/P&gt;&lt;P&gt;        kkmenge type stpo-menge,    "Addition for the header&lt;/P&gt;&lt;P&gt;        kcmenge type stpo-menge,   "Addition for the calc&lt;/P&gt;&lt;P&gt;        matdet(18) type c,&lt;/P&gt;&lt;P&gt;        mat_acmenge type stpo-menge,  "Alternate UoM for Mat Det&lt;/P&gt;&lt;P&gt;        namat(18) type c,&lt;/P&gt;&lt;P&gt;        namat_acmenge type stpo-menge,  "Alternate UoM for Black Box&lt;/P&gt;&lt;P&gt;        sobsl type marc-sobsl,     "Procurement type&lt;/P&gt;&lt;P&gt;        end of t_final.&lt;/P&gt;&lt;P&gt;data: i_final type standard table of t_final with  default key,&lt;/P&gt;&lt;P&gt;      h_final type t_final.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;data  vt_menge type stpo-menge.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;*Bottom up&lt;/P&gt;&lt;P&gt;data : i_cscmat type standard table of cscmat with default key,&lt;/P&gt;&lt;P&gt;       h_cscmat type cscmat,&lt;/P&gt;&lt;P&gt;       i_cscequi type standard table of cscequi with default key,&lt;/P&gt;&lt;P&gt;       h_cscequi type cscequi,&lt;/P&gt;&lt;P&gt;       i_cscknd type standard table of cscknd with default key,&lt;/P&gt;&lt;P&gt;       h_cscknd type cscknd,&lt;/P&gt;&lt;P&gt;       i_cscstd type standard table of cscstd with default key,&lt;/P&gt;&lt;P&gt;       h_cscstd type cscstd,&lt;/P&gt;&lt;P&gt;       i_csctpl type standard table of csctpl with default key,&lt;/P&gt;&lt;P&gt;       h_csctpl type csctpl,&lt;/P&gt;&lt;P&gt;       i_stpov type standard table of stpov with default key,&lt;/P&gt;&lt;P&gt;       b_stpov type standard table of stpov with default key,&lt;/P&gt;&lt;P&gt;       bh_stpov type stpov,&lt;/P&gt;&lt;P&gt;       h_stpov type stpov.&lt;/P&gt;&lt;P&gt;*Translator&lt;/P&gt;&lt;P&gt;*DATA: g_translate TYPE REF TO z20215_translator.&lt;/P&gt;&lt;P&gt;*DATA: v_prod TYPE mg_loctxt,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   v_pack TYPE mg_loctxt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;types: begin of t_comp,&lt;/P&gt;&lt;P&gt;       matnr type matnr,&lt;/P&gt;&lt;P&gt;       mtart type mtart,&lt;/P&gt;&lt;P&gt;       matkl type matkl,&lt;/P&gt;&lt;P&gt;       end of t_comp.&lt;/P&gt;&lt;P&gt;data: i_comp type standard table of t_comp with default key,&lt;/P&gt;&lt;P&gt;      h_comp type t_comp.&lt;/P&gt;&lt;P&gt;*Get procurement type&lt;/P&gt;&lt;P&gt;types : begin of t_sobsl,&lt;/P&gt;&lt;P&gt;         matnr type matnr,&lt;/P&gt;&lt;P&gt;         sobsl type sobsl,&lt;/P&gt;&lt;P&gt;        end of t_sobsl.&lt;/P&gt;&lt;P&gt;data: i_sobsl type standard table of t_sobsl with default key,&lt;/P&gt;&lt;P&gt;      h_sobsl type t_sobsl.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ALV&lt;/P&gt;&lt;P&gt;data: g_grid               type ref to cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;      g_container          type ref to cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;      g_layout             type  lvc_s_layo ,&lt;/P&gt;&lt;P&gt;      g_fieldcatalog       type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;      wa_catalog           type lvc_s_fcat,&lt;/P&gt;&lt;P&gt;      g_sort               type lvc_t_sort with header line,&lt;/P&gt;&lt;P&gt;      ls_variant           like disvariant,&lt;/P&gt;&lt;P&gt;      g_top_of_page        type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      gs_variant           type disvariant,  "for parameter IS_VARIANT&lt;/P&gt;&lt;P&gt;      x_save value 'A',                       "for Parameter I_SAVE&lt;/P&gt;&lt;P&gt;      g_events             type slis_t_event with header line.&lt;/P&gt;&lt;P&gt;data: g_repid type sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ranges: r_matnr for mara-matnr occurs 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;define m_fc.&lt;/P&gt;&lt;P&gt;  wa_catalog-fieldname   = &amp;amp;1.&lt;/P&gt;&lt;P&gt;  wa_catalog-ref_field   = &amp;amp;2.&lt;/P&gt;&lt;P&gt;  wa_catalog-ref_table   = &amp;amp;3.&lt;/P&gt;&lt;P&gt;*wa_catalog-scrtext_s =&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_catalog-scrtext_m =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_catalog-scrtext_l = &amp;amp;4.&lt;/P&gt;&lt;P&gt;  wa_catalog-key         = &amp;amp;5.&lt;/P&gt;&lt;P&gt;  wa_catalog-do_sum      = &amp;amp;6.&lt;/P&gt;&lt;P&gt;  wa_catalog-no_out        = &amp;amp;7.&lt;/P&gt;&lt;P&gt;  append wa_catalog to g_fieldcatalog.&lt;/P&gt;&lt;P&gt;  clear wa_catalog.&lt;/P&gt;&lt;P&gt;end-of-definition.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;*Authorization check&lt;/P&gt;&lt;P&gt;  perform f_check_authorization tables s_werks.&lt;/P&gt;&lt;P&gt;*--Get Material&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; perform f_get_matnr.  "Get material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_get_matnr_new tables i_matnr&lt;/P&gt;&lt;P&gt;                                 s_matnr&lt;/P&gt;&lt;P&gt;                                 s_mtart&lt;/P&gt;&lt;P&gt;                                 s_matkl&lt;/P&gt;&lt;P&gt;                                 s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if rb_tdn = 'X'. "TOP DOWN&lt;/P&gt;&lt;P&gt;*--Get BOM details beginning from kit&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform f_get_bom.    "Bom&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform f_get_new_bom tables i_matnr.&lt;/P&gt;&lt;P&gt;  elseif rb_btup = 'X'.&lt;/P&gt;&lt;P&gt;*--Get BOM details from the components&lt;/P&gt;&lt;P&gt;    perform f_get_kit_from_comp.&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;Begin of Changes CR 52909&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform modify_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of changes CR 52909&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Create field catalog&lt;/P&gt;&lt;P&gt;  perform f_fieldcatalog.&lt;/P&gt;&lt;P&gt;*--Set sort critiera&lt;/P&gt;&lt;P&gt;  perform f_sort.&lt;/P&gt;&lt;P&gt;*--Set alv grid&lt;/P&gt;&lt;P&gt;  perform f_show_grid.&lt;/P&gt;&lt;P&gt;*Call container&lt;/P&gt;&lt;P&gt;  call screen 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      FORM F_gET_KIT_FROM_COMP                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_kit_from_comp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_matnr into b_matnr.&lt;/P&gt;&lt;P&gt;    refresh: i_stpov.&lt;/P&gt;&lt;P&gt;    clear h_stpov.&lt;/P&gt;&lt;P&gt;    perform f_where_used&lt;/P&gt;&lt;P&gt;                  tables i_stpov&lt;/P&gt;&lt;P&gt;                         i_cscequi&lt;/P&gt;&lt;P&gt;                         i_cscknd&lt;/P&gt;&lt;P&gt;                         i_cscmat&lt;/P&gt;&lt;P&gt;                         i_cscstd&lt;/P&gt;&lt;P&gt;                         i_csctpl&lt;/P&gt;&lt;P&gt;                   using p_datub&lt;/P&gt;&lt;P&gt;                         p_datuv&lt;/P&gt;&lt;P&gt;                         b_matnr-matnr&lt;/P&gt;&lt;P&gt;                         p_stlan&lt;/P&gt;&lt;P&gt;                         b_matnr-werks.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      refresh: s_matnr,&lt;/P&gt;&lt;P&gt;               s_mtart,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              s_werks,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               s_matkl.&lt;/P&gt;&lt;P&gt;*get the kits into the table&lt;/P&gt;&lt;P&gt;      loop at i_stpov into h_stpov.&lt;/P&gt;&lt;P&gt;        perform f_find_more using h_stpov-matnr b_matnr-werks.&lt;/P&gt;&lt;P&gt;        if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;*Say no higher level kit was found, so the existing kit should be&lt;/P&gt;&lt;P&gt;*reported&lt;/P&gt;&lt;P&gt;          s_matnr-low = h_stpov-matnr.&lt;/P&gt;&lt;P&gt;          s_matnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;          s_matnr-option = 'EQ'.&lt;/P&gt;&lt;P&gt;          append s_matnr.&lt;/P&gt;&lt;P&gt;          clear s_matnr.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;*Refresh the table list&lt;/P&gt;&lt;P&gt;      perform f_get_matnr_new tables it_matnr&lt;/P&gt;&lt;P&gt;                                     s_matnr&lt;/P&gt;&lt;P&gt;                                     s_mtart&lt;/P&gt;&lt;P&gt;                                     s_matkl&lt;/P&gt;&lt;P&gt;                                     s_werks.&lt;/P&gt;&lt;P&gt;      loop at it_matnr into h_matnr .&lt;/P&gt;&lt;P&gt;        if h_matnr-mtart &amp;lt;&amp;gt; 'YKIT'.&lt;/P&gt;&lt;P&gt;          perform f_find_more using h_matnr-matnr h_matnr-werks.&lt;/P&gt;&lt;P&gt;          if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            perform f_get_matnr_new tables bit_matnr&lt;/P&gt;&lt;P&gt;                                     s_matnr&lt;/P&gt;&lt;P&gt;                                     s_mtart&lt;/P&gt;&lt;P&gt;                                     s_matkl&lt;/P&gt;&lt;P&gt;                                     s_werks.&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;           append lines of bit_matnr to it_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              append h_matnr to bit_matnr.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          append h_matnr to bit_matnr.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;*Get the details&lt;/P&gt;&lt;P&gt;      sort bit_matnr.                                       "D48K960269&lt;/P&gt;&lt;P&gt;      delete adjacent duplicates from bit_matnr comparing all fields.&lt;/P&gt;&lt;P&gt;                                                            "D48K960269&lt;/P&gt;&lt;P&gt;      perform f_get_new_bom tables bit_matnr.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&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;      FORM F_SORT                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_sort.&lt;/P&gt;&lt;P&gt;  refresh g_sort.&lt;/P&gt;&lt;P&gt;  if rb_tdn = 'X'. "TOP DOWN&lt;/P&gt;&lt;P&gt;*Sort by kit&lt;/P&gt;&lt;P&gt;    g_sort-spos = '1'.&lt;/P&gt;&lt;P&gt;    g_sort-fieldname = 'STLNR'.&lt;/P&gt;&lt;P&gt;    g_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;    g_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;    append g_sort.&lt;/P&gt;&lt;P&gt;  elseif rb_btup = 'X'.&lt;/P&gt;&lt;P&gt;*Sort by component&lt;/P&gt;&lt;P&gt;    g_sort-spos = '1'.&lt;/P&gt;&lt;P&gt;    g_sort-fieldname = 'FMATNR'.&lt;/P&gt;&lt;P&gt;    g_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;    append g_sort.&lt;/P&gt;&lt;P&gt;*Sort 2nd by kit&lt;/P&gt;&lt;P&gt;    g_sort-spos = '2'.&lt;/P&gt;&lt;P&gt;    g_sort-fieldname = 'STLNR'.&lt;/P&gt;&lt;P&gt;    g_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;    g_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;    append g_sort.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*set layout&lt;/P&gt;&lt;P&gt;  g_layout-cwidth_opt = 'X'.&lt;/P&gt;&lt;P&gt;  g_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set variant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear gs_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'gs_variant' must at least contain the report-id to allow&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;saving a variant.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;§ 2.At least field REPORT of this structure has to be filled!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gs_variant-report = g_repid.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      FORM f_show_grid                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_show_grid.&lt;/P&gt;&lt;P&gt;*Create instance&lt;/P&gt;&lt;P&gt;  if g_grid is initial.&lt;/P&gt;&lt;P&gt;    create object g_grid&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;    i_parent = g_container.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*Grid&lt;/P&gt;&lt;P&gt;  call method g_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;      is_layout                     = g_layout&lt;/P&gt;&lt;P&gt;      is_variant                    = gs_variant&lt;/P&gt;&lt;P&gt;      i_save                        = x_save&lt;/P&gt;&lt;P&gt;    changing&lt;/P&gt;&lt;P&gt;      it_outtab                     = i_final[]&lt;/P&gt;&lt;P&gt;      it_fieldcatalog               = g_fieldcatalog&lt;/P&gt;&lt;P&gt;      it_sort                       = g_sort[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_FILTER                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      invalid_parameter_combination = 1&lt;/P&gt;&lt;P&gt;      program_error                 = 2&lt;/P&gt;&lt;P&gt;      others                        = 3.&lt;/P&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 e000 with text-028. "'Error during ALV Grid Creation.'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&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;      FORM f_fieldcatalog                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_fieldcatalog.&lt;/P&gt;&lt;P&gt;*Component&lt;/P&gt;&lt;P&gt;  if rb_tdn = 'X'.&lt;/P&gt;&lt;P&gt;    m_fc 'FMATNR' 'MATNR' 'MARA' text-003 'X' ' ' 'X'.&lt;/P&gt;&lt;P&gt;  elseif  rb_btup  = 'X'.&lt;/P&gt;&lt;P&gt;    m_fc 'FMATNR' 'MATNR' 'MARA' text-003 'X' ' ' ' '.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*Kit&lt;/P&gt;&lt;P&gt;  m_fc 'STLNR' 'STLNR' 'STKO' text-004 'X' ' ' ' '.&lt;/P&gt;&lt;P&gt;*Plant&lt;/P&gt;&lt;P&gt;  m_fc 'WERKS' 'WERKS' 'STKO' text-005 'X' ' ' ' '.&lt;/P&gt;&lt;P&gt;*Legacy Material no&lt;/P&gt;&lt;P&gt;  m_fc 'LKMATNR' 'CHAR08' ' ' text-006 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Kit material&lt;/P&gt;&lt;P&gt;  m_fc 'KMATNR' '' '' text-007 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Description&lt;/P&gt;&lt;P&gt;  m_fc 'KMAKTX' ' MAKTX' 'MAKT' text-008 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Material group&lt;/P&gt;&lt;P&gt;  m_fc 'MATKL' '' '' text-009 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Material Type&lt;/P&gt;&lt;P&gt;  m_fc 'MTART' '' '' text-010 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Product hierarchy&lt;/P&gt;&lt;P&gt;  m_fc 'PRDHA' '' '' text-011 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Unit of measure&lt;/P&gt;&lt;P&gt;  m_fc 'KMEINS' '' '' text-012 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Quantity&lt;/P&gt;&lt;P&gt;  m_fc 'KMENGE' '' '' text-013 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*SAP Component&lt;/P&gt;&lt;P&gt;  m_fc 'CIDNRK' '' '' text-014 ' ' ' ' '' .&lt;/P&gt;&lt;P&gt;*Legacy material number&lt;/P&gt;&lt;P&gt;  m_fc 'LCMATNR' 'CHAR08' ' ' text-015 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Material description&lt;/P&gt;&lt;P&gt;  m_fc 'CMAKTX' '' '' text-016 ' ' ' ' '' .&lt;/P&gt;&lt;P&gt;*Material group&lt;/P&gt;&lt;P&gt;  m_fc 'CMTART' '' '' text-017 ' ' ' ' '' .&lt;/P&gt;&lt;P&gt;*Material type&lt;/P&gt;&lt;P&gt;  m_fc 'CMATKL' '' '' text-018 ' ' ' ' '' .&lt;/P&gt;&lt;P&gt;*Material unit&lt;/P&gt;&lt;P&gt;  m_fc 'CMEINS' '' '' text-019 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Quantity&lt;/P&gt;&lt;P&gt;  m_fc 'CMENGE' '' '' text-020 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*Converted in auom qty for kit&lt;/P&gt;&lt;P&gt;  m_fc 'AKMENGE' ' ' ' ' text-021 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*Converted in auom for component&lt;/P&gt;&lt;P&gt;  m_fc 'ACMENGE' '' '' text-022 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*Converted auom unit&lt;/P&gt;&lt;P&gt;  m_fc 'AMEINS' ' ' ' ' text-023 ' ' ' ' ''.&lt;/P&gt;&lt;P&gt;*Factor with kit unit into account&lt;/P&gt;&lt;P&gt;  m_fc 'KKMENGE' '' '' text-029 ' ' 'X' ' '.&lt;/P&gt;&lt;P&gt;*Factor with component unit into account&lt;/P&gt;&lt;P&gt;  m_fc 'KCMENGE' '' '' text-024 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*Product&lt;/P&gt;&lt;P&gt;  m_fc 'SOBSL' 'SOBSL' 'MARC' text-025 ' ' ' ' ' '.&lt;/P&gt;&lt;P&gt;*Material determination  code&lt;/P&gt;&lt;P&gt;  m_fc 'MATDET' 'CHAR10' ' ' text-026 ' ' ' ' ' '.&lt;/P&gt;&lt;P&gt;*AUoM of Material determination code&lt;/P&gt;&lt;P&gt;  m_fc 'MAT_ACMENGE' '' '' text-030 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;*ZNAXlate code&lt;/P&gt;&lt;P&gt;  m_fc 'NAMAT' 'CHAR10' ' ' text-027 ' ' ' ' ' '.&lt;/P&gt;&lt;P&gt;*AUoM of Black Box material&lt;/P&gt;&lt;P&gt;  m_fc 'NAMAT_ACMENGE' '' '' text-040 ' ' 'X' ''.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      FORM f_Get_marm                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_matnr                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_marm using p_matnr p_menge p_meinh p_type .&lt;/P&gt;&lt;P&gt;  data: vf_lfimg type lfimg value 1,&lt;/P&gt;&lt;P&gt;        vt_lfimg type lfimg.&lt;/P&gt;&lt;P&gt;*Refresh and clear&lt;/P&gt;&lt;P&gt;  refresh i_marm.&lt;/P&gt;&lt;P&gt;  clear i_marm.&lt;/P&gt;&lt;P&gt;*Select&lt;/P&gt;&lt;P&gt;  select matnr meinh&lt;/P&gt;&lt;P&gt;  into table i_marm&lt;/P&gt;&lt;P&gt;  from marm&lt;/P&gt;&lt;P&gt;  where matnr = p_matnr&lt;/P&gt;&lt;P&gt;  and   meinh in s_meins.&lt;/P&gt;&lt;P&gt;*Address the issue&lt;/P&gt;&lt;P&gt;  loop at i_marm into h_marm.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if p_uom eq 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*IF from material master conversion required&lt;/P&gt;&lt;P&gt;    perform f_convert_uom using h_marm-matnr&lt;/P&gt;&lt;P&gt;                              '1'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               'UNT'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                              s_fmeins-low&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                               'GLF'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                              s_meins-low&lt;/P&gt;&lt;P&gt;                        changing vt_lfimg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**IF bom conversion required&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     perform f_convert_uom using h_marm-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 p_menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 p_meinh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 h_marm-meinh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           changing vt_lfimg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*No data found&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;*If from top down&lt;/P&gt;&lt;P&gt;      if h_cstmat-stlnr is initial.&lt;/P&gt;&lt;P&gt;        move :&lt;/P&gt;&lt;P&gt;           h_stpov-stlnr to h_final-stlnr,&lt;/P&gt;&lt;P&gt;           h_stpov-matnr to h_final-kmatnr,&lt;/P&gt;&lt;P&gt;           h_stpov-werks to h_final-werks,&lt;/P&gt;&lt;P&gt;           h_stpov-ojtxb to h_final-kmaktx.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;        perform f_legacy using '0101' '01' ' ' h_stpov-matnr ' '&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       perform f_legacy using p_vkorg p_vtweg ' ' ' ' h_stpov-matnr&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;                         changing h_final-lkmatnr h_final-matdet&lt;/P&gt;&lt;P&gt;                         h_final-namat.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;*If from bottom up&lt;/P&gt;&lt;P&gt;        move:&lt;/P&gt;&lt;P&gt;          h_cstmat-stlnr to h_final-stlnr,  "BOM&lt;/P&gt;&lt;P&gt;          h_cstmat-matnr to h_final-kmatnr,  "Material&lt;/P&gt;&lt;P&gt;          h_cstmat-werks to h_final-werks,   "Plant&lt;/P&gt;&lt;P&gt;          h_cstmat-maktx to h_final-kmaktx.  "Description&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;        perform f_legacy using '0101' '01' ' ' h_cstmat-matnr ' '&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       perform f_legacy using p_vkorg p_vtweg ' ' ' ' h_stpov-matnr&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;                        changing h_final-lkmatnr h_final-matdet&lt;/P&gt;&lt;P&gt;                        h_final-namat.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      if not h_cstmat-stlnr is initial.&lt;/P&gt;&lt;P&gt;        move:&lt;/P&gt;&lt;P&gt;        h_matnr-prdha to h_final-prdha,    "PROD HIERARCHY&lt;/P&gt;&lt;P&gt;        h_matnr-matkl to h_final-matkl,   "Group&lt;/P&gt;&lt;P&gt;        h_matnr-mtart to h_final-mtart.   "Type&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;*Seggregate betn Component and KIT&lt;/P&gt;&lt;P&gt;      if p_type = 'C'.&lt;/P&gt;&lt;P&gt;        h_final-acmenge = vt_lfimg .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if not h_stpov-bmeng is initial.&lt;/P&gt;&lt;P&gt;*Only to be double sure&lt;/P&gt;&lt;P&gt;          if not h_stpov-bmeng = 0.&lt;/P&gt;&lt;P&gt;            h_final-kcmenge = vt_lfimg / h_stpov-bmeng.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        elseif not h_cstmat-bmeng is initial.&lt;/P&gt;&lt;P&gt;*Only to be double sure&lt;/P&gt;&lt;P&gt;          if not h_cstmat-bmeng = 0.&lt;/P&gt;&lt;P&gt;            h_final-kcmenge = vt_lfimg / h_cstmat-bmeng.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        move:&lt;/P&gt;&lt;P&gt;        h_stb-idnrk to h_final-cidnrk,    "Component&lt;/P&gt;&lt;P&gt;        h_stb-ojtxp to h_final-cmaktx,    "Description&lt;/P&gt;&lt;P&gt;        h_stb-meins to h_final-cmeins,    "Component uom&lt;/P&gt;&lt;P&gt;        h_stb-menge to h_final-cmenge.&lt;/P&gt;&lt;P&gt;*Material&lt;/P&gt;&lt;P&gt;        select single mtart matkl&lt;/P&gt;&lt;P&gt;        into (h_final-cmtart , h_final-cmatkl)&lt;/P&gt;&lt;P&gt;        from mara&lt;/P&gt;&lt;P&gt;        where matnr = h_final-cidnrk.&lt;/P&gt;&lt;P&gt;        if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;          clear : h_final-cmtart,&lt;/P&gt;&lt;P&gt;                  h_final-cmatkl.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;*Get procurement type&lt;/P&gt;&lt;P&gt;        select single sobsl into h_final-sobsl&lt;/P&gt;&lt;P&gt;        from marc&lt;/P&gt;&lt;P&gt;        where matnr = h_final-cidnrk&lt;/P&gt;&lt;P&gt;          and werks = h_stb-werks.&lt;/P&gt;&lt;P&gt;        if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;          clear h_final-sobsl.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;    perform f_legacy using '0101' '01' '' h_final-kmatnr h_final-cidnrk&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       perform f_legacy using p_vkorg p_vtweg '' h_final-kmatnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   h_final-cidnrk&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                changing h_final-lcmatnr h_final-matdet&lt;/P&gt;&lt;P&gt;                                                          h_final-namat.&lt;/P&gt;&lt;P&gt;      elseif p_type = 'K'.&lt;/P&gt;&lt;P&gt;        if h_cstmat-bmein is initial.&lt;/P&gt;&lt;P&gt;          move:&lt;/P&gt;&lt;P&gt;          h_stpov-bmein to h_final-kmeins,&lt;/P&gt;&lt;P&gt;          h_stpov-bmeng to h_final-kmenge.&lt;/P&gt;&lt;P&gt;          h_final-akmenge = vt_lfimg.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          move:&lt;/P&gt;&lt;P&gt;          h_cstmat-bmein to h_final-kmeins,   "Base unit&lt;/P&gt;&lt;P&gt;          h_cstmat-bmeng to h_final-kmenge.   "Base quantity&lt;/P&gt;&lt;P&gt;          h_final-akmenge = vt_lfimg .&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      h_final-ameins = h_marm-meinh.&lt;/P&gt;&lt;P&gt;      insert h_final into table i_final.&lt;/P&gt;&lt;P&gt;      clear h_final.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&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;      FORM f_get_bom                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_bom.&lt;/P&gt;&lt;P&gt;  loop at i_matnr into h_matnr.&lt;/P&gt;&lt;P&gt;    refresh : i_stb.&lt;/P&gt;&lt;P&gt;    clear : h_cstmat.&lt;/P&gt;&lt;P&gt;*Date is required if no date entered take system date&lt;/P&gt;&lt;P&gt;    if p_datuv is initial.&lt;/P&gt;&lt;P&gt;      p_datuv = sy-datum.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;*Explode bom&lt;/P&gt;&lt;P&gt;    call function 'CS_BOM_EXPL_MAT_V2'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;              capid                 = 'Y000'&lt;/P&gt;&lt;P&gt;                 datuv                 = p_datuv&lt;/P&gt;&lt;P&gt;              mtnrv                 = h_matnr-matnr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             postp                 = 'L'  "Item Category / Stock Item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              stlal                 = '01'  "BOM Alternative&lt;/P&gt;&lt;P&gt;              werks                 = h_matnr-werks&lt;/P&gt;&lt;P&gt;         importing&lt;/P&gt;&lt;P&gt;              topmat                = h_cstmat&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              stb                   = i_stb&lt;/P&gt;&lt;P&gt;         exceptions&lt;/P&gt;&lt;P&gt;              alt_not_found         = 1&lt;/P&gt;&lt;P&gt;              call_invalid          = 2&lt;/P&gt;&lt;P&gt;              material_not_found    = 3&lt;/P&gt;&lt;P&gt;              missing_authorization = 4&lt;/P&gt;&lt;P&gt;              no_bom_found          = 5&lt;/P&gt;&lt;P&gt;              no_plant_data         = 6&lt;/P&gt;&lt;P&gt;              no_suitable_bom_found = 7&lt;/P&gt;&lt;P&gt;              conversion_error      = 8&lt;/P&gt;&lt;P&gt;              others                = 9.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      perform f_get_marm using h_cstmat-matnr&lt;/P&gt;&lt;P&gt;                               h_cstmat-bmeng&lt;/P&gt;&lt;P&gt;                               h_cstmat-bmein&lt;/P&gt;&lt;P&gt;                               'K'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    loop at i_stb into h_stb.&lt;/P&gt;&lt;P&gt;      perform f_get_marm using h_stb-idnrk  h_stb-menge h_stb-meins 'C'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&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;      FORM f_get_matnr                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_matnr.&lt;/P&gt;&lt;P&gt;*Get materials&lt;/P&gt;&lt;P&gt;  select mara~matnr&lt;/P&gt;&lt;P&gt;         mara~mtart&lt;/P&gt;&lt;P&gt;         mara~matkl&lt;/P&gt;&lt;P&gt;         mara~meins&lt;/P&gt;&lt;P&gt;         mara~prdha&lt;/P&gt;&lt;P&gt;         marc~werks&lt;/P&gt;&lt;P&gt;         marc~sobsl&lt;/P&gt;&lt;P&gt;         into table i_matnr&lt;/P&gt;&lt;P&gt;  from mara inner join marc&lt;/P&gt;&lt;P&gt;  on mara&lt;SUB&gt;matnr = marc&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;  where&lt;/P&gt;&lt;P&gt;     mara~matnr in s_matnr and&lt;/P&gt;&lt;P&gt;     mara~mtart in s_mtart and&lt;/P&gt;&lt;P&gt;     mara~matkl in s_matkl and&lt;/P&gt;&lt;P&gt;     marc~werks in s_werks.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;module status_0100 output.&lt;/P&gt;&lt;P&gt;*PF Status&lt;/P&gt;&lt;P&gt;  set pf-status 'Z21424R_BOM'.&lt;/P&gt;&lt;P&gt;  set titlebar '100'.&lt;/P&gt;&lt;P&gt;*Get container&lt;/P&gt;&lt;P&gt;  if g_container is initial.&lt;/P&gt;&lt;P&gt;    create object g_container&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;              container_name = 'ALV_CONT'&lt;/P&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;              cntl_error = 1&lt;/P&gt;&lt;P&gt;              cntl_system_error = 2&lt;/P&gt;&lt;P&gt;              create_error = 3&lt;/P&gt;&lt;P&gt;              lifetime_error = 4&lt;/P&gt;&lt;P&gt;              lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&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;endmodule.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Module  USER_COMMAND_0100  INPUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;module user_command_0100 input.&lt;/P&gt;&lt;P&gt;  case sy-ucomm.&lt;/P&gt;&lt;P&gt;    when 'BACK'.&lt;/P&gt;&lt;P&gt;      if not g_container is initial.&lt;/P&gt;&lt;P&gt;        call method g_container-&amp;gt;free&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;         cntl_system_error = 1&lt;/P&gt;&lt;P&gt;         cntl_error        = 2.&lt;/P&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 a000.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      leave to screen 0.&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;endmodule.                 " USER_COMMAND_0100  INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_PREPARE_LAYOUT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_prepare_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;**-Field catalog&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_program_name         = g_repid&lt;/P&gt;&lt;P&gt;            i_internal_tabname     = 'I_FINAL'&lt;/P&gt;&lt;P&gt;            i_inclname             = g_repid&lt;/P&gt;&lt;P&gt;       changing&lt;/P&gt;&lt;P&gt;            ct_fieldcat            = g_fieldcatalog&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            inconsistent_interface = 1&lt;/P&gt;&lt;P&gt;            program_error          = 2&lt;/P&gt;&lt;P&gt;            others                 = 3.&lt;/P&gt;&lt;P&gt;endform.                    " F_PREPARE_LAYOUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_BOM_EXPLODE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_STB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_DATUV  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_STLAL  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_H_MATNR_MATNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_H_MATNR_WERKS  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_H_CSTMAT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_bom_explode tables   p_i_stb structure  stpox&lt;/P&gt;&lt;P&gt;                   using    value(p_p_datuv)&lt;/P&gt;&lt;P&gt;                            p_p_stlal&lt;/P&gt;&lt;P&gt;                            p_h_matnr_matnr&lt;/P&gt;&lt;P&gt;                            p_h_matnr_werks&lt;/P&gt;&lt;P&gt;                   changing p_h_cstmat.&lt;/P&gt;&lt;P&gt;  if p_p_datuv is initial.&lt;/P&gt;&lt;P&gt;    p_p_datuv = sy-datum.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*BOM&lt;/P&gt;&lt;P&gt;  call function 'CS_BOM_EXPL_MAT_V2'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            capid                 = 'Y000'&lt;/P&gt;&lt;P&gt;            datuv                 = p_p_datuv&lt;/P&gt;&lt;P&gt;            mtnrv                 = p_h_matnr_matnr&lt;/P&gt;&lt;P&gt;            stlal                 = p_p_stlal  "BOM Alternative&lt;/P&gt;&lt;P&gt;            werks                 = p_h_matnr_werks&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            topmat                = p_h_cstmat&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            stb                   = p_i_stb&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            alt_not_found         = 1&lt;/P&gt;&lt;P&gt;            call_invalid          = 2&lt;/P&gt;&lt;P&gt;            material_not_found    = 3&lt;/P&gt;&lt;P&gt;            missing_authorization = 4&lt;/P&gt;&lt;P&gt;            no_bom_found          = 5&lt;/P&gt;&lt;P&gt;            no_plant_data         = 6&lt;/P&gt;&lt;P&gt;            no_suitable_bom_found = 7&lt;/P&gt;&lt;P&gt;            conversion_error      = 8&lt;/P&gt;&lt;P&gt;            others                = 9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " F_BOM_EXPLODE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_CONVERT_UOM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_H_MARM_MATNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_MENGE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_MEINH  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_H_MARM_MEINH  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_VT_LFIMG  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_convert_uom using   p_h_marm_matnr&lt;/P&gt;&lt;P&gt;                            p_p_menge&lt;/P&gt;&lt;P&gt;                            p_p_meinh&lt;/P&gt;&lt;P&gt;                            p_h_marm_meinh&lt;/P&gt;&lt;P&gt;                   changing p_vt_lfimg.&lt;/P&gt;&lt;P&gt;  clear p_vt_lfimg.&lt;/P&gt;&lt;P&gt;  call function 'Y_CONVERT_MATERIAL_UOM_QTY'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            p_matnr                   = p_h_marm_matnr&lt;/P&gt;&lt;P&gt;            from_qty                  = p_p_menge&lt;/P&gt;&lt;P&gt;            from_uom                  = p_p_meinh&lt;/P&gt;&lt;P&gt;            to_uom                    = p_h_marm_meinh&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            to_qty                    = p_vt_lfimg&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            conversion_not_successful = 1&lt;/P&gt;&lt;P&gt;            others                    = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " F_CONVERT_UOM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;      FORM F_LEGACY                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_VKORG                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_VTWEG                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_KUNNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_ZKITNO                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_MATNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_SPECIFCNR                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_legacy using p_vkorg&lt;/P&gt;&lt;P&gt;                    p_vtweg&lt;/P&gt;&lt;P&gt;                    p_kunnr&lt;/P&gt;&lt;P&gt;                    p_zkitno&lt;/P&gt;&lt;P&gt;                    p_matnr&lt;/P&gt;&lt;P&gt;           changing p_specifcnr&lt;/P&gt;&lt;P&gt;                    p_matdet&lt;/P&gt;&lt;P&gt;                    p_naxlate.&lt;/P&gt;&lt;P&gt;  data:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       v_nom TYPE zspcfnr,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        v_matnr type mara-matnr,&lt;/P&gt;&lt;P&gt;        c_kunnr type kunnr value '1058',&lt;/P&gt;&lt;P&gt;        v_kit type mara-matnr,  "CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;        c_matnr(18) type c.&lt;/P&gt;&lt;P&gt;*Set one field of material&lt;/P&gt;&lt;P&gt;  clear v_matnr.&lt;/P&gt;&lt;P&gt;*For KIT&lt;/P&gt;&lt;P&gt;  if p_matnr is initial.&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004 D48K960269&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  v_matnr = p_zkitno.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    c_matnr = p_zkitno.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   write p_zkitno to c_matnr no-zero.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear v_kit.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT SINGLE * "legacykitnr into v_nom&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FROM zknmt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WHERE vkorg = p_vkorg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND   vtweg = p_vtweg&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   and   kunnr = c_kunnr&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND   zkitno = c_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   AND   matnr EQ space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CLEAR     p_specifcnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_specifcnr = zknmt-legacykitnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*For Component&lt;/P&gt;&lt;P&gt;*CR 44081 08/30/2004 D48K960269&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    v_kit = p_zkitno.&lt;/P&gt;&lt;P&gt;    v_matnr = p_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear :  p_specifcnr,&lt;/P&gt;&lt;P&gt;             p_matdet,&lt;/P&gt;&lt;P&gt;             p_naxlate.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'Z_21254_MATERIAL_MAPPING'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             p_vkorg          = p_vkorg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             p_vtweg          = p_vtweg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             p_kunnr          = p_kunnr&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**CR 44081 08/30/2004&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;           p_zkitno         = p_zkitno&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             p_zkitno         = v_kit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**CR 44081 08/30/2004&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             p_matnr          = v_matnr "p_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        P_KUNNR_OUT      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        P_GENERICNR      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            p_specificnr     = v_nom&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        P_SPECIFICDESC   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            no_mapping_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            invalid_mapping  = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            OTHERS           = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             .&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;      clear p_specifcnr.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_specifcnr = v_nom.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif. "CR 44081 08/30/2004&lt;/P&gt;&lt;P&gt;*Material determination&lt;/P&gt;&lt;P&gt;  select single *&lt;/P&gt;&lt;P&gt;    from kondd where&lt;/P&gt;&lt;P&gt;     smatn = v_matnr.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    select single matwa into p_matdet&lt;/P&gt;&lt;P&gt;    from kotd001&lt;/P&gt;&lt;P&gt;      where kappl = 'V'&lt;/P&gt;&lt;P&gt;      and   kschl = 'A001'&lt;/P&gt;&lt;P&gt;      and knumh = kondd-knumh&lt;/P&gt;&lt;P&gt;      and   datbi &amp;gt;= sy-datum&lt;/P&gt;&lt;P&gt;      and   datab &amp;lt;= sy-datum.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      clear p_matdet.&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;*Get from translator of ZNABLKBOX&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF g_translate IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CREATE OBJECT g_translate.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR:&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; v_prod,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       v_pack.&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; CALL METHOD g_translate-&amp;gt;rxlate_material&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     co_code      = '0101'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     sap_material = v_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    product      = v_prod&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     package      = v_pack&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   MATERIAL     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     not_found    = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     OTHERS       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR: v_prod,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         v_pack,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         p_naxlate.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CONCATENATE v_prod v_pack INTO p_naxlate .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CONDENSE p_naxlate.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_NEW_BOM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_new_bom tables p_i_matnr structure h_matnr.&lt;/P&gt;&lt;P&gt;  data: c_10 type stko-datuv,&lt;/P&gt;&lt;P&gt;        c_12(12).&lt;/P&gt;&lt;P&gt;  loop at p_i_matnr into h_matnr.&lt;/P&gt;&lt;P&gt;    refresh : i_stb.&lt;/P&gt;&lt;P&gt;    clear : h_cstmat.&lt;/P&gt;&lt;P&gt;*Date is required if no date entered take system date&lt;/P&gt;&lt;P&gt;    if p_datuv is initial.&lt;/P&gt;&lt;P&gt;      p_datuv = sy-datum.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;*Explode bom&lt;/P&gt;&lt;P&gt;    call function 'CS_BOM_EXPL_MAT_V2'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;              capid                 = p_capid&lt;/P&gt;&lt;P&gt;              datuv                 = p_datuv&lt;/P&gt;&lt;P&gt;              mktls                 = 'X'&lt;/P&gt;&lt;P&gt;              mehrs                 = p_mehrs&lt;/P&gt;&lt;P&gt;              mtnrv                 = h_matnr-matnr&lt;/P&gt;&lt;P&gt;              rvrel                 = p_rvrel&lt;/P&gt;&lt;P&gt;              stlan                 = p_stlan&lt;/P&gt;&lt;P&gt;              svwvo                 = 'X'&lt;/P&gt;&lt;P&gt;              werks                 = h_matnr-werks&lt;/P&gt;&lt;P&gt;              vrsvo                 = 'X'&lt;/P&gt;&lt;P&gt;         importing&lt;/P&gt;&lt;P&gt;              topmat                = h_cstmat&lt;/P&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              stb                   = i_stb&lt;/P&gt;&lt;P&gt;         exceptions&lt;/P&gt;&lt;P&gt;              alt_not_found         = 1&lt;/P&gt;&lt;P&gt;              call_invalid          = 2&lt;/P&gt;&lt;P&gt;              material_not_found    = 3&lt;/P&gt;&lt;P&gt;              missing_authorization = 4&lt;/P&gt;&lt;P&gt;              no_bom_found          = 5&lt;/P&gt;&lt;P&gt;              no_plant_data         = 6&lt;/P&gt;&lt;P&gt;              no_suitable_bom_found = 7&lt;/P&gt;&lt;P&gt;              conversion_error      = 8&lt;/P&gt;&lt;P&gt;              others                = 9.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      clear h_final.&lt;/P&gt;&lt;P&gt;****BOTTOM UP APPROACH&lt;/P&gt;&lt;P&gt;      if rb_btup = 'X'.&lt;/P&gt;&lt;P&gt;        h_final-fmatnr =  b_matnr-matnr.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;****KIT PROCESSING&lt;/P&gt;&lt;P&gt;*Begin transfer to the final table&lt;/P&gt;&lt;P&gt;      move:   h_cstmat-stlnr to h_final-stlnr,  "BOM&lt;/P&gt;&lt;P&gt;              h_cstmat-matnr to h_final-kmatnr,  "Material&lt;/P&gt;&lt;P&gt;*BOM Quantity and unit&lt;/P&gt;&lt;P&gt;              h_cstmat-bmein to h_final-kmeins,   "Base unit&lt;/P&gt;&lt;P&gt;              h_cstmat-bmeng to h_final-kmenge,   "Base quantity&lt;/P&gt;&lt;P&gt;*other details&lt;/P&gt;&lt;P&gt;              h_cstmat-werks to h_final-werks,   "Plant&lt;/P&gt;&lt;P&gt;              h_cstmat-maktx to h_final-kmaktx.  "Description&lt;/P&gt;&lt;P&gt;*Convert to the required unit of measure&lt;/P&gt;&lt;P&gt;      perform f_get_marm_new using h_cstmat-matnr&lt;/P&gt;&lt;P&gt;                                   h_cstmat-bmeng&lt;/P&gt;&lt;P&gt;                                   s_fmeins-low&lt;/P&gt;&lt;P&gt;                                   ' '&lt;/P&gt;&lt;P&gt;                       changing h_final-akmenge&lt;/P&gt;&lt;P&gt;                                h_final-ameins&lt;/P&gt;&lt;P&gt;                                h_final-kkmenge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Convert to legacy&lt;/P&gt;&lt;P&gt;      perform f_legacy using p_vkorg "'0101'    "Sales org&lt;/P&gt;&lt;P&gt;                             p_vtweg "'01'      " DC&lt;/P&gt;&lt;P&gt;                             ' '       "Customer&lt;/P&gt;&lt;P&gt;                             h_cstmat-matnr   "KIT&lt;/P&gt;&lt;P&gt;                             ' '       "Component&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            h_cstmat-matnr "Material/Component&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                         changing&lt;/P&gt;&lt;P&gt;                             h_final-lkmatnr&lt;/P&gt;&lt;P&gt;                             h_final-matdet&lt;/P&gt;&lt;P&gt;                             h_final-namat.&lt;/P&gt;&lt;P&gt;*Transfer to Final Table&lt;/P&gt;&lt;P&gt;      move: h_matnr-prdha to h_final-prdha,    "PROD HIERARCHY&lt;/P&gt;&lt;P&gt;            h_matnr-matkl to h_final-matkl,   "Group&lt;/P&gt;&lt;P&gt;            h_matnr-mtart to h_final-mtart.   "Type&lt;/P&gt;&lt;P&gt;*Insert&lt;/P&gt;&lt;P&gt;      insert h_final into table i_final.&lt;/P&gt;&lt;P&gt;      clear: h_final-akmenge,&lt;/P&gt;&lt;P&gt;             h_final-kmenge,&lt;/P&gt;&lt;P&gt;             h_final-kkmenge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;****COMPONENT PROCESSING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Material&lt;/P&gt;&lt;P&gt;    if not i_stb[] is initial.&lt;/P&gt;&lt;P&gt;      refresh i_comp.&lt;/P&gt;&lt;P&gt;      select matnr mtart matkl&lt;/P&gt;&lt;P&gt;      into table i_comp&lt;/P&gt;&lt;P&gt;      from mara&lt;/P&gt;&lt;P&gt;      for all entries in i_stb&lt;/P&gt;&lt;P&gt;      where matnr = i_stb-idnrk.&lt;/P&gt;&lt;P&gt;      sort i_comp.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;*Get sobsl&lt;/P&gt;&lt;P&gt;    if not i_stb[] is initial.&lt;/P&gt;&lt;P&gt;      refresh i_sobsl.&lt;/P&gt;&lt;P&gt;      select matnr sobsl&lt;/P&gt;&lt;P&gt;      into table i_sobsl&lt;/P&gt;&lt;P&gt;      from marc&lt;/P&gt;&lt;P&gt;      for all entries in i_stb&lt;/P&gt;&lt;P&gt;      where matnr = i_stb-idnrk&lt;/P&gt;&lt;P&gt;        and werks = i_stb-werks.&lt;/P&gt;&lt;P&gt;      sort i_sobsl.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    loop at i_stb into h_stb.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear h_final.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      move: h_stb-idnrk to h_final-cidnrk,    "Component&lt;/P&gt;&lt;P&gt;            h_stb-ojtxp to h_final-cmaktx,    "Description&lt;/P&gt;&lt;P&gt;            h_stb-meins to h_final-cmeins,    "Component uom&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           h_stb-menge to h_final-cmenge.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            h_stb-mnglg to h_final-cmenge.&lt;/P&gt;&lt;P&gt;*Convert to the required unit of measure&lt;/P&gt;&lt;P&gt;      perform f_get_marm_new using h_stb-idnrk&lt;/P&gt;&lt;P&gt;                                   h_stb-menge&lt;/P&gt;&lt;P&gt;                                   s_fmeins-low&lt;/P&gt;&lt;P&gt;                                   'C'&lt;/P&gt;&lt;P&gt;                       changing h_final-acmenge&lt;/P&gt;&lt;P&gt;                                h_final-ameins&lt;/P&gt;&lt;P&gt;                                h_final-kcmenge.&lt;/P&gt;&lt;P&gt;*Convert to legacy code&lt;/P&gt;&lt;P&gt;      perform f_legacy using p_vkorg  "Sales org&lt;/P&gt;&lt;P&gt;                             p_vtweg  "DC&lt;/P&gt;&lt;P&gt;                             ''       "Customer&lt;/P&gt;&lt;P&gt;                             h_cstmat-matnr  "KIT&lt;/P&gt;&lt;P&gt;                             h_stb-idnrk  "Material/Component&lt;/P&gt;&lt;P&gt;                    changing h_final-lcmatnr&lt;/P&gt;&lt;P&gt;                             h_final-matdet&lt;/P&gt;&lt;P&gt;                             h_final-namat.&lt;/P&gt;&lt;P&gt;*Component type etc&lt;/P&gt;&lt;P&gt;      read table i_comp into h_comp with key matnr = h_stb-idnrk&lt;/P&gt;&lt;P&gt;      binary search.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        h_final-cmtart = h_comp-mtart.&lt;/P&gt;&lt;P&gt;        h_final-cmatkl = h_comp-matkl.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        clear : h_final-cmtart,&lt;/P&gt;&lt;P&gt;                h_final-cmatkl.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;*component sobsl&lt;/P&gt;&lt;P&gt;      read table i_sobsl into h_sobsl with key matnr = h_stb-idnrk&lt;/P&gt;&lt;P&gt;      binary search.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        h_final-sobsl = h_sobsl-sobsl.&lt;/P&gt;&lt;P&gt;        clear h_sobsl.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        clear h_final-sobsl.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;*Transfer to final table&lt;/P&gt;&lt;P&gt;      insert h_final into table i_final.&lt;/P&gt;&lt;P&gt;      clear : h_final-cidnrk,&lt;/P&gt;&lt;P&gt;              h_final-cmaktx,&lt;/P&gt;&lt;P&gt;              h_final-cmeins,&lt;/P&gt;&lt;P&gt;              h_final-cmenge,&lt;/P&gt;&lt;P&gt;              h_final-kcmenge.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " F_GET_NEW_BOM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_MARM_NEW&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_H_CSTMAT_MATNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_H_CSTMAT_BMENG  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_H_CSTMAT_BMEIN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_1903   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_marm_new using    p_h_cstmat_matnr&lt;/P&gt;&lt;P&gt;                             p_h_cstmat_bmeng&lt;/P&gt;&lt;P&gt;                             p_h_cstmat_bmein&lt;/P&gt;&lt;P&gt;                             value(p_1903)&lt;/P&gt;&lt;P&gt;                  changing vt_meng&lt;/P&gt;&lt;P&gt;                           vt_mein&lt;/P&gt;&lt;P&gt;                           tv_meng.&lt;/P&gt;&lt;P&gt;  clear : vt_meng, tv_meng, vt_mein.&lt;/P&gt;&lt;P&gt;  data: m_meins type meins,&lt;/P&gt;&lt;P&gt;        m_fmeins type meins,&lt;/P&gt;&lt;P&gt;        m_menge type stpo-menge.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if p_buom = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select single meins into m_fmeins&lt;/P&gt;&lt;P&gt;  from mara&lt;/P&gt;&lt;P&gt;  where matnr = p_h_cstmat_matnr.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    m_meins = ''.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  m_meins = s_meins-low.&lt;/P&gt;&lt;P&gt;  m_menge = 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     m_fmeins = s_fmeins-low.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform f_convert_uom using p_h_cstmat_matnr&lt;/P&gt;&lt;P&gt;                         m_menge&lt;/P&gt;&lt;P&gt;                         m_fmeins&lt;/P&gt;&lt;P&gt;                         m_meins&lt;/P&gt;&lt;P&gt;                         changing tv_meng.&lt;/P&gt;&lt;P&gt;  clear : m_menge, m_fmeins, m_meins.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if p_uom = 'X'. "Convert to base unit of measure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  m_menge = 1.  "Convert everything from 1 to the base uom&lt;/P&gt;&lt;P&gt;  m_fmeins = s_fmeins-low.&lt;/P&gt;&lt;P&gt;  m_meins = s_meins-low.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; else.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   m_menge = 1.  "Convert everything from 1 to the base uom&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   m_menge = p_h_cstmat_bmeng.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   m_fmeins = s_fmeins-low.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   m_meins = s_meins-low.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*Convert to the required unit of measure&lt;/P&gt;&lt;P&gt;  perform f_convert_uom using p_h_cstmat_matnr&lt;/P&gt;&lt;P&gt;                        m_menge&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         p_h_cstmat_bmein&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                        m_fmeins&lt;/P&gt;&lt;P&gt;                        m_meins&lt;/P&gt;&lt;P&gt;                        changing vt_meng.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    vt_mein = m_meins.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;*If unit of measure is not found then blank it out so that it stands out&lt;/P&gt;&lt;P&gt;    vt_mein = ' '.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.                    " F_GET_MARM_NEW&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_GET_MATNR_NEW&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_MATNR[]  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_get_matnr_new tables   p_i_matnr structure  h_matnr&lt;/P&gt;&lt;P&gt;                              p_s_matnr structure  s_matnr&lt;/P&gt;&lt;P&gt;                              p_s_mtart structure  s_mtart&lt;/P&gt;&lt;P&gt;                              p_s_matkl structure s_matkl&lt;/P&gt;&lt;P&gt;                              p_s_werks structure s_werks.&lt;/P&gt;&lt;P&gt;  refresh p_i_matnr.&lt;/P&gt;&lt;P&gt;  select mara~matnr&lt;/P&gt;&lt;P&gt;         mara~mtart&lt;/P&gt;&lt;P&gt;         mara~matkl&lt;/P&gt;&lt;P&gt;         mara~meins&lt;/P&gt;&lt;P&gt;         mara~prdha&lt;/P&gt;&lt;P&gt;         marc~werks&lt;/P&gt;&lt;P&gt;         marc~sobsl&lt;/P&gt;&lt;P&gt;         into table p_i_matnr&lt;/P&gt;&lt;P&gt;  from mara inner join marc&lt;/P&gt;&lt;P&gt;  on mara&lt;SUB&gt;matnr = marc&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;  where&lt;/P&gt;&lt;P&gt;     mara~matnr in p_s_matnr and&lt;/P&gt;&lt;P&gt;     mara~mtart in p_s_mtart and&lt;/P&gt;&lt;P&gt;     mara~matkl in p_s_matkl and&lt;/P&gt;&lt;P&gt;     marc~werks in p_s_werks.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " F_GET_MATNR_NEW&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_WHERE_USED&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_DATUB  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_DATUV  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_B_MATNR_MATNR  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_STLAL  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_B_MATNR_WERKS  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_STPOV  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_CSCEQUI  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_CSCKND  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_CSCMAT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_CSCSTD  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_I_CSCTPL  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_where_used tables   p_i_stpov structure  stpov&lt;/P&gt;&lt;P&gt;                           p_i_cscequi structure cscequi&lt;/P&gt;&lt;P&gt;                           p_i_cscknd structure cscknd&lt;/P&gt;&lt;P&gt;                           p_i_cscmat structure cscmat&lt;/P&gt;&lt;P&gt;                           p_i_cscstd structure cscstd&lt;/P&gt;&lt;P&gt;                           p_i_csctpl structure csctpl&lt;/P&gt;&lt;P&gt;                  using    p_p_datub&lt;/P&gt;&lt;P&gt;                           p_p_datuv&lt;/P&gt;&lt;P&gt;                           p_b_matnr_matnr&lt;/P&gt;&lt;P&gt;                           p_p_stlal&lt;/P&gt;&lt;P&gt;                           p_b_matnr_werks.&lt;/P&gt;&lt;P&gt;  refresh :&lt;/P&gt;&lt;P&gt;  p_i_stpov,&lt;/P&gt;&lt;P&gt;  p_i_cscequi,&lt;/P&gt;&lt;P&gt;  p_i_cscknd,&lt;/P&gt;&lt;P&gt;  p_i_cscmat,&lt;/P&gt;&lt;P&gt;  p_i_cscstd,&lt;/P&gt;&lt;P&gt;  p_i_csctpl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'CS_WHERE_USED_MAT'&lt;/P&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;P&gt;          datub                      = p_p_datub&lt;/P&gt;&lt;P&gt;          datuv                      = p_p_datuv&lt;/P&gt;&lt;P&gt;          matnr                      = p_b_matnr_matnr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        POSTP                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        RETCODE_ONLY               = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          stlan                      = p_p_stlal&lt;/P&gt;&lt;P&gt;          werks                      = p_b_matnr_werks&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        MCLMT                      = '8'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        MNSTL                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        MXSTL                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        STLTP                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        NEWSI                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        TOPMAT                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         tables&lt;/P&gt;&lt;P&gt;              wultb                      = p_i_stpov&lt;/P&gt;&lt;P&gt;              equicat                    = p_i_cscequi&lt;/P&gt;&lt;P&gt;              kndcat                     = p_i_cscknd&lt;/P&gt;&lt;P&gt;              matcat                     = p_i_cscmat&lt;/P&gt;&lt;P&gt;              stdcat                     = p_i_cscstd&lt;/P&gt;&lt;P&gt;              tplcat                     = p_i_csctpl&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        PRJCAT                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;         call_invalid               = 1&lt;/P&gt;&lt;P&gt;         material_not_found         = 2&lt;/P&gt;&lt;P&gt;         no_where_used_rec_found    = 3&lt;/P&gt;&lt;P&gt;         no_where_used_rec_selected = 4&lt;/P&gt;&lt;P&gt;         no_where_used_rec_valid    = 5&lt;/P&gt;&lt;P&gt;         others                     = 6&lt;/P&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;endform.                    " F_WHERE_USED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_CHECK_AUTHORIZATION&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_S_WERKS  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_check_authorization tables   p_s_werks structure s_werks.&lt;/P&gt;&lt;P&gt;  data: begin of i_werks occurs 0,&lt;/P&gt;&lt;P&gt;        werks type werks,&lt;/P&gt;&lt;P&gt;        end of i_werks.&lt;/P&gt;&lt;P&gt;  data:  dsp_actvt(2) type c value '03'.&lt;/P&gt;&lt;P&gt;  if p_s_werks[] is initial.&lt;/P&gt;&lt;P&gt;    authority-check object 'C_STUE_WRK'&lt;/P&gt;&lt;P&gt;       id 'ACTVT' field dsp_actvt&lt;/P&gt;&lt;P&gt;       id 'CSWRK' dummy.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.                                       "HGA072824&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MESSAGE e523 WITH 'E:' ' ' .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    else.                                                   "HGA072824&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     leave.                                                "HGA072824&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.                                                  "HGA072824&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    select werks into table i_werks&lt;/P&gt;&lt;P&gt;    from t001w&lt;/P&gt;&lt;P&gt;    where  werks in s_werks.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      loop at i_werks.&lt;/P&gt;&lt;P&gt;        authority-check object 'C_STUE_WRK'&lt;/P&gt;&lt;P&gt;           id 'ACTVT' field dsp_actvt&lt;/P&gt;&lt;P&gt;           id 'CSWRK' field i_werks-werks.&lt;/P&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 e523 WITH 'E:' i_werks-werks.             "HGA072824&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        else.                                               "HGA072824&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         leave.                                            "HGA072824&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        endif.                                              "HGA072824&lt;/P&gt;&lt;P&gt;      endloop.&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.                    " F_CHECK_AUTHORIZATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  F_FIND_MORE&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f_find_more using p_matnr&lt;/P&gt;&lt;P&gt;                       p_werks.&lt;/P&gt;&lt;P&gt;  perform f_where_used&lt;/P&gt;&lt;P&gt;                     tables b_stpov&lt;/P&gt;&lt;P&gt;                            i_cscequi&lt;/P&gt;&lt;P&gt;                            i_cscknd&lt;/P&gt;&lt;P&gt;                            i_cscmat&lt;/P&gt;&lt;P&gt;                            i_cscstd&lt;/P&gt;&lt;P&gt;                            i_csctpl&lt;/P&gt;&lt;P&gt;                      using p_datub&lt;/P&gt;&lt;P&gt;                            p_datuv&lt;/P&gt;&lt;P&gt;                            p_matnr&lt;/P&gt;&lt;P&gt;                            p_stlan&lt;/P&gt;&lt;P&gt;                            p_werks.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    loop at b_stpov into bh_stpov.&lt;/P&gt;&lt;P&gt;      s_matnr-low = bh_stpov-matnr.&lt;/P&gt;&lt;P&gt;      s_matnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;      s_matnr-option = 'EQ'.&lt;/P&gt;&lt;P&gt;      append s_matnr.&lt;/P&gt;&lt;P&gt;      clear s_matnr.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " F_FIND_MORE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  MODIFY_FINAL&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form modify_final.&lt;/P&gt;&lt;P&gt;  data: l_tabix like sy-tabix,&lt;/P&gt;&lt;P&gt;        l_matnr like kotd001-matwa,&lt;/P&gt;&lt;P&gt;        l_kitsum like h_final-akmenge,&lt;/P&gt;&lt;P&gt;        l_partsum like h_final-acmenge,&lt;/P&gt;&lt;P&gt;        l_final like h_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_final into h_final.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The prior logic before this change procures the NA Black Box material&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;in a wrong manner, hence clearing the entire column&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear h_final-namat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not h_final-lcmatnr is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      call function 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;           exporting&lt;/P&gt;&lt;P&gt;                input  = h_final-lcmatnr&lt;/P&gt;&lt;P&gt;           importing&lt;/P&gt;&lt;P&gt;                output = l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populating Material Determination&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear h_final-matdet.&lt;/P&gt;&lt;P&gt;      select  knumh&lt;/P&gt;&lt;P&gt;        into kotd001-knumh&lt;/P&gt;&lt;P&gt;        from kotd001 up to 1 rows&lt;/P&gt;&lt;P&gt;        where kappl = 'V'&lt;/P&gt;&lt;P&gt;        and   kschl = 'A001'&lt;/P&gt;&lt;P&gt;        and   matwa = l_matnr.&lt;/P&gt;&lt;P&gt;      endselect.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        select single smatn into kondd-smatn&lt;/P&gt;&lt;P&gt;          from kondd&lt;/P&gt;&lt;P&gt;          where knumh = kotd001-knumh.&lt;/P&gt;&lt;P&gt;        if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          h_final-matdet = kondd-smatn.&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;Getting the AUoM for Mat Det&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if not h_final-matdet is initial.&lt;/P&gt;&lt;P&gt;        perform get_auom changing h_final-matdet&lt;/P&gt;&lt;P&gt;                                  h_final-mat_acmenge.&lt;/P&gt;&lt;P&gt;        call function 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;             exporting&lt;/P&gt;&lt;P&gt;                  input  = h_final-matdet&lt;/P&gt;&lt;P&gt;             importing&lt;/P&gt;&lt;P&gt;                  output = h_final-matdet.&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;Procuring the Black Box Material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      clear h_final-namat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT to_val1 INTO h_final-namat&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FROM znablackbx UP TO 1 ROWS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WHERE obj_id = 'MATNR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND   co_code = '0101'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND   from_val1 = l_matnr+10(4)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND   from_val2 = l_matnr+14(4).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if not h_final-namat is initial.&lt;/P&gt;&lt;P&gt;        perform get_auom changing h_final-namat&lt;/P&gt;&lt;P&gt;                                  h_final-namat_acmenge.&lt;/P&gt;&lt;P&gt;        call function 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;             exporting&lt;/P&gt;&lt;P&gt;                  input  = h_final-namat&lt;/P&gt;&lt;P&gt;             importing&lt;/P&gt;&lt;P&gt;                  output = h_final-namat.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    modify i_final from h_final index l_tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Comparing Sum of KIT and Part. If not equal then they are displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if not p_except is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if not l_tabix = 1.&lt;/P&gt;&lt;P&gt;        l_tabix = l_tabix - 1.&lt;/P&gt;&lt;P&gt;        read table i_final index l_tabix into l_final.&lt;/P&gt;&lt;P&gt;        if l_final-kmatnr &amp;lt;&amp;gt; h_final-kmatnr.&lt;/P&gt;&lt;P&gt;          if l_kitsum = l_partsum.&lt;/P&gt;&lt;P&gt;            r_matnr-low = l_final-kmatnr.&lt;/P&gt;&lt;P&gt;            r_matnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;            r_matnr-option = 'EQ'.&lt;/P&gt;&lt;P&gt;            append r_matnr. clear r_matnr.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;          clear: l_kitsum,&lt;/P&gt;&lt;P&gt;                 l_partsum.&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;      l_kitsum = l_kitsum + h_final-akmenge.&lt;/P&gt;&lt;P&gt;      l_partsum = l_partsum + h_final-acmenge.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;      read table i_final into h_final index sy-tabix.&lt;/P&gt;&lt;P&gt;      if l_kitsum = l_partsum.&lt;/P&gt;&lt;P&gt;        r_matnr-low = h_final-kmatnr.&lt;/P&gt;&lt;P&gt;        r_matnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;        r_matnr-option = 'EQ'.&lt;/P&gt;&lt;P&gt;        append r_matnr. clear r_matnr.&lt;/P&gt;&lt;P&gt;      endif.&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;  if not p_except is initial and not r_matnr[] is initial.&lt;/P&gt;&lt;P&gt;    delete i_final where kmatnr in r_matnr.&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;endform.                    " MODIFY_FINAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_AUOM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form get_auom changing    p_matnr type marm-matnr&lt;/P&gt;&lt;P&gt;                          p_auom type stpo-menge.&lt;/P&gt;&lt;P&gt;  data: begin of i_marm occurs 0,&lt;/P&gt;&lt;P&gt;          meinh like marm-meinh,&lt;/P&gt;&lt;P&gt;          umrez like marm-umrez,&lt;/P&gt;&lt;P&gt;          umren like marm-umren,&lt;/P&gt;&lt;P&gt;        end of i_marm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            input  = p_matnr&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            output = p_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select meinh umrez umren&lt;/P&gt;&lt;P&gt;    into table i_marm&lt;/P&gt;&lt;P&gt;    from marm&lt;/P&gt;&lt;P&gt;    where matnr = p_matnr&lt;/P&gt;&lt;P&gt;    and   meinh in ('GLF', 'EA', 'UNT').&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table i_marm with key meinh = 'GLF'.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0 and not i_marm-umrez is initial.&lt;/P&gt;&lt;P&gt;    p_auom = i_marm-umren / i_marm-umrez.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table i_marm with key meinh = 'UNT'.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0 and not i_marm-umren is initial.&lt;/P&gt;&lt;P&gt;    p_auom = ( p_auom * i_marm-umrez ) / i_marm-umren.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " GET_AUOM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Sep 2007 10:43:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2855575#M669327</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-28T10:43:27Z</dc:date>
    </item>
  </channel>
</rss>

