<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: subroutine in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263748#M779869</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;Its an Abap prog of type sub routine pool, it is used for calculating certain variables, eg DUE date for an Invoice. You pass the values from the form thru ITCSY structure intot he prgram. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Jan 2008 06:18:38 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-18T06:18:38Z</dc:date>
    <item>
      <title>subroutine</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263747#M779868</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what is the use of subroutine pool in scripts?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Jan 2008 13:59:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263747#M779868</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-17T13:59:56Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263748#M779869</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;Its an Abap prog of type sub routine pool, it is used for calculating certain variables, eg DUE date for an Invoice. You pass the values from the form thru ITCSY structure intot he prgram. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 06:18:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263748#M779869</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T06:18:38Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263749#M779870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kaladhar,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine Pools&lt;/P&gt;&lt;P&gt;Subroutine pools, as the name implies, were created to contain selections of subroutines that can be called externally from other programs. Before release 6.10, this was the only way subroutine pools could be used. But besides subroutines, subroutine pools can also contain local classes and interfaces. As of release 6.10, you can connect transaction codes to methods. Therefore, you can now also call subroutine pools via transaction codes. This is the closest to a Java program you can get in ABAP: a subroutine pool with a class containing a method &amp;#150; say &amp;#150; main connected to a transaction code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine pools are created using the ABAP Editor and are introduced with the PROGRAM statement. They may not contain any screens of their own, and with the exception of the LOAD-OF-PROGRAM event block they may only use subroutines as processing blocks. Subroutine pools are loaded by externally calling their subroutines from within other ABAP programs. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: CODE(72) OCCURS 10,&lt;/P&gt;&lt;P&gt;PROG(8), MSG(120), LIN(3), WRD(10), OFF(3).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;APPEND 'PROGRAM SUBPOOL.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND 'FORM DYN1.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND &lt;/P&gt;&lt;P&gt;'WRITE / ''Hello, I am the temporary subroutine DYN1!''.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND 'ENDFORM.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND 'FORM DYN2.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND &lt;/P&gt;&lt;P&gt;'WRIT / ''Hello, I am the temporary subroutine DYN2!''.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;APPEND 'ENDFORM.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;GENERATE SUBROUTINE POOL CODE NAME PROG&lt;/P&gt;&lt;P&gt;MESSAGE MSG&lt;/P&gt;&lt;P&gt;LINE LIN&lt;/P&gt;&lt;P&gt;WORD WRD&lt;/P&gt;&lt;P&gt;OFFSET OFF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;WRITE: / 'Error during generation in line', LIN,&lt;/P&gt;&lt;P&gt;/ MSG,&lt;/P&gt;&lt;P&gt;/ 'Word:', WRD, 'at offset', OFF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;  WRITE: / 'The name of the subroutine pool is', PROG.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;PERFORM DYN1 IN PROGRAM (PROG).&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;PERFORM DYN2 IN PROGRAM (PROG).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this program, a subroutine pool containing two subroutines is placed into table CODE. Note that the temporary program must contain a REPORT or PROGRAM statement. Statement GENERATE SUBROUTINE POOL generates the temporary program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A generation error occurred since the WRITE statement has been misspelled in the second subroutine, DYN2. After that line has been revised:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND &lt;/P&gt;&lt;P&gt;'WRITE / ''Hello, I am the temporary subroutine DYN2!''.'&lt;/P&gt;&lt;P&gt;        TO CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Generation was successful. The internal program name is displayed. Then, the subroutines of the subroutine pool are called. Note that you do not need to know the program name to call the subroutines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to call a subroutine form SAPscripts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Form :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/:PERFORM CDE_CENT IN PROGRAM ZKRPMM_PERFORM_Z1MEDRUCK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/:USING &amp;amp;EKKO-EBELN&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;CDECENT&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/:ENDPERFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The report :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zkrpmm_perform_z1medruck .&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_input_table OCCURS 10.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE itcsy.&lt;/P&gt;&lt;P&gt;DATA : END OF it_input_table.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;déclaration de la table output_table contenant les&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;variables exportées&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_output_table OCCURS 0.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE itcsy.&lt;/P&gt;&lt;P&gt;DATA : END OF it_output_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : w_ebeln LIKE ekko-ebeln,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;w_vbeln LIKE vbak-vbeln,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_zcdffa LIKE vbak-zcdffa.&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 CDE_CENT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 cde_cent TABLES input output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_input_table[] = input[].&lt;/P&gt;&lt;P&gt;it_output_table[] = output[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE it_input_table INDEX 1.&lt;/P&gt;&lt;P&gt;MOVE it_input_table-value TO w_ebeln.&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 = w_ebeln&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = w_ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE zcdffa FROM ekko&lt;/P&gt;&lt;P&gt;INTO w_zcdffa&lt;/P&gt;&lt;P&gt;WHERE ebeln = w_ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_output_table-name = 'CDECENT'.&lt;/P&gt;&lt;P&gt;MOVE w_zcdffa TO it_output_table-value.&lt;/P&gt;&lt;P&gt;MODIFY it_output_table INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;output[] = it_output_table[].&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;/: PERFORM &lt;/P&gt;&lt;P&gt;/: USING &amp;amp;INVAR1&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;INVAR2&amp;amp;&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;OUTVAR1&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;OUTVAR2&amp;amp;&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;/: ENDPERFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INVAR1 and INVAR2 are variable symbols and may be of any of the four SAPscript symbol types. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OUTVAR1 and OUTVAR2 are local text symbols and must therefore be character strings. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;In script form&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/: PERFORM READ_TEXTS IN PROGRAM 'Z08M1_FORM_EKFORM1'&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;EKKO-EKORG&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;EKPO-WERKS&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;EKKO-EKGRP&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;EKKO-BSTYP&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;COMPNAME&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;SENDADR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;INVCADR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;COMPADR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;COVERLTR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;SHIPADR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;REMINDER&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;REJECTION&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;POSTADR&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;LOGO&amp;amp;&lt;/P&gt;&lt;P&gt;/: ENDPERFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In program&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 Read_texts - To extract the standard texts from the table *&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;P&gt;FORM READ_TEXTS TABLES IN_PAR STRUCTURE ITCSY&lt;/P&gt;&lt;P&gt;OUT_PAR STRUCTURE ITCSY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : L_EKORG TYPE EKORG,&lt;/P&gt;&lt;P&gt;L_WERKS TYPE WERKS_D,&lt;/P&gt;&lt;P&gt;L_BSTYP TYPE BSTYP,&lt;/P&gt;&lt;P&gt;L_EKGRP TYPE BKGRP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IN_PAR WITH KEY 'EKKO-EKORG' .&lt;/P&gt;&lt;P&gt;CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;L_EKORG = IN_PAR-VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IN_PAR WITH KEY 'EKPO-WERKS' .&lt;/P&gt;&lt;P&gt;CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;L_WERKS = IN_PAR-VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IN_PAR WITH KEY 'EKKO-EKGRP' .&lt;/P&gt;&lt;P&gt;CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;L_EKGRP = IN_PAR-VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IN_PAR WITH KEY 'EKKO-BSTYP' .&lt;/P&gt;&lt;P&gt;CHECK SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;L_BSTYP = IN_PAR-VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR Z08M1_ORG_TEXTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM Z08M1_ORG_TEXTS WHERE EKORG = L_EKORG&lt;/P&gt;&lt;P&gt;AND WERKS = L_WERKS&lt;/P&gt;&lt;P&gt;AND EKGRP = L_EKGRP&lt;/P&gt;&lt;P&gt;AND BSTYP = L_BSTYP.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM Z08M1_ORG_TEXTS WHERE EKORG = L_EKORG&lt;/P&gt;&lt;P&gt;AND WERKS = L_WERKS&lt;/P&gt;&lt;P&gt;AND EKGRP = L_EKGRP&lt;/P&gt;&lt;P&gt;AND BSTYP = SPACE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'COMPNAME'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_COMP.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'SENDADR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_ADRS.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'INVCADR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_INVC.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'COMPADR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_CPAD.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'COVERLTR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_COVR.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'SHIPADR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_SHIP.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'REMINDER'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_RMDR.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'REJECTION'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_RJCT.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'POSTADR'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_POST.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE OUT_PAR WITH KEY 'LOGO'.&lt;/P&gt;&lt;P&gt;OUT_PAR-VALUE = Z08M1_ORG_TEXTS-TXT_LOGO.&lt;/P&gt;&lt;P&gt;MODIFY OUT_PAR INDEX SY-TABIX.&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;REPORT ZMPO1 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get_freight tables in_par structure itcsy out_par structure itcsy.&lt;/P&gt;&lt;P&gt; tables: ekko,konv,t685t.&lt;/P&gt;&lt;P&gt; data: begin of itab occurs 0,&lt;/P&gt;&lt;P&gt;         ebeln like ekko-ebeln,&lt;/P&gt;&lt;P&gt;         knumv like ekko-knumv,&lt;/P&gt;&lt;P&gt;       end of itab.&lt;/P&gt;&lt;P&gt; data: begin of itab1 occurs 0,&lt;/P&gt;&lt;P&gt;         knumv like konv-knumv,&lt;/P&gt;&lt;P&gt;         kposn like konv-kposn,&lt;/P&gt;&lt;P&gt;         kschl like konv-kschl,&lt;/P&gt;&lt;P&gt;         kbetr like konv-kbetr,&lt;/P&gt;&lt;P&gt;         waers like konv-waers,&lt;/P&gt;&lt;P&gt;         kwert like konv-kwert,&lt;/P&gt;&lt;P&gt;       end of itab1.&lt;/P&gt;&lt;P&gt; data: begin of iout occurs 0,&lt;/P&gt;&lt;P&gt;         kschl like konv-kschl,&lt;/P&gt;&lt;P&gt;         vtext like t685t-vtext,&lt;/P&gt;&lt;P&gt;         kbetr like konv-kbetr,&lt;/P&gt;&lt;P&gt;         kwert like konv-kwert,&lt;/P&gt;&lt;P&gt;       end of iout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data v_po like ekko-ebeln.&lt;/P&gt;&lt;P&gt; read table in_par with key 'EKKO-EBELN'.&lt;/P&gt;&lt;P&gt; if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;   v_po = in_par-value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   select&lt;/P&gt;&lt;P&gt;     ebeln&lt;/P&gt;&lt;P&gt;     knumv&lt;/P&gt;&lt;P&gt;  from ekko &lt;/P&gt;&lt;P&gt;  into table itab&lt;/P&gt;&lt;P&gt;  where ebeln = v_po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    loop at itab.&lt;/P&gt;&lt;P&gt;      select&lt;/P&gt;&lt;P&gt;        knumv&lt;/P&gt;&lt;P&gt;        kposn&lt;/P&gt;&lt;P&gt;        kschl&lt;/P&gt;&lt;P&gt;        kbetr&lt;/P&gt;&lt;P&gt;        waers&lt;/P&gt;&lt;P&gt;        kwert&lt;/P&gt;&lt;P&gt;      into table itab1&lt;/P&gt;&lt;P&gt;      from konv&lt;/P&gt;&lt;P&gt;      where knumv = itab-knumv and&lt;/P&gt;&lt;P&gt;            kappl = 'M'.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at itab1.&lt;/P&gt;&lt;P&gt;      if itab1-kposn &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        select single * from t685t&lt;/P&gt;&lt;P&gt;                          where kschl = itab1-kschl&lt;/P&gt;&lt;P&gt;                            and kappl = 'M'&lt;/P&gt;&lt;P&gt;                            and spras = 'EN'.&lt;/P&gt;&lt;P&gt;        iout-vtext = t685t-vtext.&lt;/P&gt;&lt;P&gt;        iout-kschl = itab1-kschl.&lt;/P&gt;&lt;P&gt;        iout-kbetr = itab1-kbetr.&lt;/P&gt;&lt;P&gt;        iout-kwert = itab1-kwert.&lt;/P&gt;&lt;P&gt;        append iout.&lt;/P&gt;&lt;P&gt;        clear iout.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    sort itab1 by kposn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at iout.&lt;/P&gt;&lt;P&gt;      sort iout by kschl.&lt;/P&gt;&lt;P&gt;      if ( iout-kschl eq 'GSDC' OR&lt;/P&gt;&lt;P&gt;           iout-kschl eq 'GSFR' OR&lt;/P&gt;&lt;P&gt;           iout-kschl eq 'GSIR' ).&lt;/P&gt;&lt;P&gt;        at end of kschl.&lt;/P&gt;&lt;P&gt;          read table iout index sy-tabix.&lt;/P&gt;&lt;P&gt;          sum.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         write:/ iout-kschl,iout-vtext,iout-kwert.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      out_par-name = 'A1'.&lt;/P&gt;&lt;P&gt;      out_par-value = iout-vtext.&lt;/P&gt;&lt;P&gt;      append out_par.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      out_par-name = 'A2'.&lt;/P&gt;&lt;P&gt;      out_par-value = iout-kwert.&lt;/P&gt;&lt;P&gt;      append out_par.&lt;/P&gt;&lt;P&gt;          endat.&lt;/P&gt;&lt;P&gt;        endif.&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;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IN THE FORM I AM WRITING THIS CODE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A1&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A2&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:PERFORM GET_FREIGHT IN PROGRAM ZMFORM_PO1&lt;/P&gt;&lt;P&gt;/:USING &amp;amp;EKKO-EBELN&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A1&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A2&amp;amp;&lt;/P&gt;&lt;P&gt;/:ENDPERFORM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A1&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A2&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This Code is to be written in the PO form under ADDRESS window.&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;P&gt;/:DEFINE &amp;amp;A1&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A2&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A3&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A4&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A5&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:DEFINE &amp;amp;A6&amp;amp; = ' '&lt;/P&gt;&lt;P&gt;/:PERFORM GET_VENDOR IN PROGRAM ZMFORM_PO&lt;/P&gt;&lt;P&gt;/:USING &amp;amp;EKKO-EBELN&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A1&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A2&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A3&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A4&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A5&amp;amp;&lt;/P&gt;&lt;P&gt;/:CHANGING &amp;amp;A6&amp;amp;&lt;/P&gt;&lt;P&gt;/:ENDPERFORM&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A1&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A2&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A3&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A4&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A5&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;amp;A6&amp;amp;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Jan 2008 11:11:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263749#M779870</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T11:11:31Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263750#M779871</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;Subroutine Pools&lt;/P&gt;&lt;P&gt;Subroutine pools are created using the ABAP Editor and are introduced with the PROGRAM statement. They may not contain any screens of their own, and with the exception of the LOAD-OF-PROGRAM event block they may only use subroutines as processing blocks. Subroutine pools are loaded by externally calling their subroutines from within other ABAP programs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;code&lt;/P&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;*You have to call sub routine from script like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/: PERFORM DATE_FORMAT IN PROGRAM &amp;amp;SY-REPID&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;RM06P-LFDAT&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;PEKKO-LFDAT&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;VALUE_OLD&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;VALUE_NEW&amp;amp;&lt;/P&gt;&lt;P&gt;/: ENDPERFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*In print program write code.&lt;/P&gt;&lt;P&gt;FORM date_format TABLES in_tab STRUCTURE itcsy&lt;/P&gt;&lt;P&gt;out_tab STRUCTURE itcsy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : date TYPE char10.&lt;/P&gt;&lt;P&gt;DATA : date2 TYPE char10.&lt;/P&gt;&lt;P&gt;DATA : l_dmbtr TYPE char10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE in_tab WITH KEY 'RM06P-LFDAT'.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;"Your code goes here&lt;/P&gt;&lt;P&gt;CLEAR l_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE in_tab WITH KEY 'PEKKO-LFDAT'.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;l_dmbtr = in_tab-value.&lt;/P&gt;&lt;P&gt;"Your code goes here&lt;/P&gt;&lt;P&gt;CLEAR l_dmbtr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE out_tab WITH KEY 'VALUE_NEW'.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;out_tab-value = date2.&lt;/P&gt;&lt;P&gt;MODIFY out_tab INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;READ TABLE out_tab WITH KEY 'VALUE_OLD'.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;out_tab-value = l_dmbtr.&lt;/P&gt;&lt;P&gt;MODIFY out_tab INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. "DATE_FORMAT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[/code]&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, 18 Jan 2008 15:53:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263750#M779871</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-18T15:53:47Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263751#M779872</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;Subroutines are used to modularize your program structure for better readability and function flow. &lt;/P&gt;&lt;P&gt;You can use the PERFORM command to call an ABAP subroutine (form) from any program,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Syntax in a form window:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/: PERFORM &amp;lt;form&amp;gt; IN PROGRAM &amp;lt;prog&amp;gt;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;INVAR1&amp;amp;&lt;/P&gt;&lt;P&gt;/: USING &amp;amp;INVAR2&amp;amp;&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;OUTVAR1&amp;amp;&lt;/P&gt;&lt;P&gt;/: CHANGING &amp;amp;OUTVAR2&amp;amp;&lt;/P&gt;&lt;P&gt;......&lt;/P&gt;&lt;P&gt;/: ENDPERFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ABAP subroutine called via the command line stated above must be defined in the ABAP report prog as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM &amp;lt;form&amp;gt; TABLES IN_TAB STRUCTURE ITCSY&lt;/P&gt;&lt;P&gt;OUT_TAB STRUCTURE ITCSY.&lt;/P&gt;&lt;P&gt;&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;The values of the SAPscript symbols passed with /: USING... are now stored in the internal table IN_TAB . Note that the system passes the values as character string to the subroutine, since the field Field VALUE in structure ITCSY has the domain TDSYMVALUE (CHAR 80). &lt;/P&gt;&lt;P&gt;The internal table OUT_TAB contains names and values of the CHANGING parameters &lt;/P&gt;&lt;P&gt;in the PERFORM statement. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U will have an option called 'Copy from client' in se71.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To maintain Translations for the STANDARD TEXTS u no need to go to SE63.. instead in SO10... u can give the same name with different languages&lt;/P&gt;&lt;P&gt;suppose u have z_test_tex in language EN.&lt;/P&gt;&lt;P&gt;u want to translate it to DE.. then&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;goto SO10&lt;DEL&gt;&amp;gt; enter the name z_test_tex , Language 'DE'..-&amp;gt;then press Create&lt;/DEL&gt;&amp;gt; enter whatever u want...&lt;/P&gt;&lt;P&gt;u can use the same name in script--&amp;gt;but u need to mention the Language...&lt;/P&gt;&lt;P&gt;based on the Language u have given, system will take the text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Chandru&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Jan 2008 06:01:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine/m-p/3263751#M779872</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-19T06:01:59Z</dc:date>
    </item>
  </channel>
</rss>

