<?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: READ_TEXT functuion module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582820#M862553</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;Read_text fm is used to get the texts stored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for example, if you go to sales order, then goto-header texts, here all the text are maintianed and each corresponds to a TDID,&lt;/P&gt;&lt;P&gt;so to retrieve this text we will use read_text FM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;sasi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 29 Mar 2008 06:23:16 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-29T06:23:16Z</dc:date>
    <item>
      <title>READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582818#M862551</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;What is the purpose of READ_TEXT functuion module and how to get text id value in this scenario(TDID)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 06:18:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582818#M862551</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-29T06:18:36Z</dc:date>
    </item>
    <item>
      <title>Re: READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582819#M862552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;It is used to fetch the Long Text details or &lt;/P&gt;&lt;P&gt;Header and Items texts of a application document&lt;/P&gt;&lt;P&gt;READ_TEXT &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ_TEXT provides a text for the application program in the specified work areas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function module reads the desired text from the text file, the text memory, or the archive. You must fully specify the text using OBJECT, NAME, ID, and LANGUAGE. An internal work area can hold only one text; therefore, generic specifications are not allowed with these options.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After successful reading, the system places header information and text lines into the work areas specified with HEADER and LINES. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If a reference text is used, SAPscript automatically processes the reference chain and provides the text lines found in the text at the end of the chain. If an error occurs, the system leaves the function module and triggers the exception REFERENCE_CHECK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function call:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'READ_TEXT'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING CLIENT = SY-MANDT&lt;/P&gt;&lt;P&gt;OBJECT = ?...&lt;/P&gt;&lt;P&gt;NAME = ?...&lt;/P&gt;&lt;P&gt;ID = ?...&lt;/P&gt;&lt;P&gt;LANGUAGE = ?...&lt;/P&gt;&lt;P&gt;ARCHIVE_HANDLE = 0&lt;/P&gt;&lt;P&gt;IMPORTING HEADER =&lt;/P&gt;&lt;P&gt;TABLES LINES = ?...&lt;/P&gt;&lt;P&gt;EXCEPTIONS ID =&lt;/P&gt;&lt;P&gt;LANGUAGE =&lt;/P&gt;&lt;P&gt;NAME =&lt;/P&gt;&lt;P&gt;NOT_FOUND =&lt;/P&gt;&lt;P&gt;OBJECT =&lt;/P&gt;&lt;P&gt;REFERENCE_CHECK =&lt;/P&gt;&lt;P&gt;WRONG_ACCESS_TO_ARCHIVE =&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Export parameters:&lt;/P&gt;&lt;P&gt;CLIENT&lt;/P&gt;&lt;P&gt;Specify the client under which the text is stored. If you omit this parameter, the system uses the current client as default.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: SY-MANDT&lt;/P&gt;&lt;P&gt;Default value: SY-MANDT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBJECT&lt;/P&gt;&lt;P&gt;Enter the name of the text object to which the text is allocated. Table TTXOB contains the valid objects.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: THEAD-TDOBJECT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NAME&lt;/P&gt;&lt;P&gt;Enter the name of the text module. The name may be up to 70 characters long. Its internal structure depends on the text object used.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: THEAD-TDNAME&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ID&lt;/P&gt;&lt;P&gt;Enter the text ID of the text module. Table TTXID contains the valid text IDs, depending on the text object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: THEAD-TDID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LANGUAGE&lt;/P&gt;&lt;P&gt;Enter the language key of the text module. The system accepts only languages that are defined in table T002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: THEAD-TDSPRAS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ARCHIVE_HANDLE&lt;/P&gt;&lt;P&gt;If you want to read the text from the archive, you must enter a handle here. The system uses it to access the archive. You can create the handle using the function module ACHIVE_OPEN_FOR_READ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The value '0' indicates that you do not want to read the text from the archive.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference field: SY-TABIX&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Default value: 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Import parameters:&lt;/P&gt;&lt;P&gt;HEADER&lt;/P&gt;&lt;P&gt;If the system finds the desired text, it returns the text header in this parameter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structure: THEAD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table parameters:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LINES&lt;/P&gt;&lt;P&gt;The table contains all text lines that belong to the text read.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structure: TLINE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exceptions: &lt;/P&gt;&lt;P&gt;ID&lt;/P&gt;&lt;P&gt;The text ID specified in the parameter ID does not exist in table TTXID. It must be defined there together with the object of the text module. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LANGUAGE&lt;/P&gt;&lt;P&gt;The parameter LANGUAGE contains a language key that does not exist in table T002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NAME&lt;/P&gt;&lt;P&gt;The parameter NAME contains the name of a text module that does not correspond to the SAPscript conventions. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Possible errors:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The field contains only blanks.&lt;/P&gt;&lt;P&gt;The field contains the invalid characters &amp;#145;*&amp;#146; or &amp;#145;,&amp;#146;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OBJECT&lt;/P&gt;&lt;P&gt;The parameter OBJECT contains the name of a text object that does not exist in table TTXOB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NOT_FOUND&lt;/P&gt;&lt;P&gt;The system did not find the specified text module. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFERENCE_CHECK&lt;/P&gt;&lt;P&gt;The text module to be read has no text lines of its own but refers to the lines of another text module. This reference chain can include several levels. For the current text, the chain is interrupted, that is, one of the text modules referred to in the chain no longer exists. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRONG_ACCESS_ TO_ARCHIVE&lt;/P&gt;&lt;P&gt;The exception WRONG_ACCESS_TO_ARCHIVE is triggered if an archive is accessed using an incorrect or non-existing archive handle or an incorrect mode (that is, read if the archive is open for writing or vice versa). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Kiran Sure&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 06:22:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582819#M862552</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-29T06:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582820#M862553</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;Read_text fm is used to get the texts stored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for example, if you go to sales order, then goto-header texts, here all the text are maintianed and each corresponds to a TDID,&lt;/P&gt;&lt;P&gt;so to retrieve this text we will use read_text FM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;sasi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 06:23:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582820#M862553</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-29T06:23:16Z</dc:date>
    </item>
    <item>
      <title>Re: READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582821#M862554</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;READ_TEXT Function module is used to read the standard text mainted in the Standard tcode..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;steps:&lt;/P&gt;&lt;P&gt;1. double click the on the text which is to be read&lt;/P&gt;&lt;P&gt;( when it is double clicked it goes to Display text screen)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. in that in menu GOTO --&amp;gt; Header  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. u will get the Text id, text name, text object and language&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. pass these values to READ_TEXT function module&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it will read the text in an internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if wrong correct me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if useful please reward points.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;Kumar M&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 06:50:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582821#M862554</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-29T06:50:36Z</dc:date>
    </item>
    <item>
      <title>Re: READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582822#M862555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ashish,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Execute and Check this program.  Your Query of purpose of READ_TEXT function module and  text id value (TDID)&lt;/P&gt;&lt;P&gt;is solved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;REPORT ZPOTEST NO STANDARD PAGE HEADING
               LINE-SIZE 80
               MESSAGE-ID ME
               LINE-COUNT 65(7).

TABLES : ESLH,ESLL, T001, J_1IMOCOMP , A003, KONP,J_1IMOVEND,
         J_1ISSIRAT, LFM1, T685T ,KONV.

*Start : Selection screen
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : EBELN LIKE EKKO-EBELN.
SELECTION-SCREEN : END OF BLOCK B1.
*End : Selection screen

*Start : Data Declartion.
DATA : BEGIN OF ITAB OCCURS 0,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
       MATNR LIKE EKPO-MATNR,
       TXZ01 LIKE EKPO-TXZ01,
       MENGE LIKE EKPO-MENGE,
       MEINS LIKE EKPO-MEINS,
       BUKRS LIKE EKPO-BUKRS,
       WERKS LIKE EKPO-WERKS,
       MWSKZ LIKE EKPO-MWSKZ,
       TXJCD LIKE EKPO-TXJCD,
       MATKL LIKE EKPO-MATKL,
       NETWR LIKE EKPO-NETWR,
       MTART LIKE EKPO-MTART,
       END OF ITAB.

DATA : BEGIN OF ITAB_PACK OCCURS 0,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
       PACKNO LIKE ESLL-PACKNO,
       INTROW LIKE ESLL-INTROW,
       EXTROW LIKE ESLL-EXTROW,
       KTEXT1 LIKE ESLL-KTEXT1,
       SRVPOS LIKE ESLL-SRVPOS,
       MENGE LIKE ESLL-MENGE,
       MEINS LIKE ESLL-MEINS,
       TBTWR LIKE ESLL-TBTWR,
       NETWR LIKE ESLL-NETWR,
       CNT TYPE I,
       END OF ITAB_PACK.

DATA : BEGIN OF ITAB_COND OCCURS 0,
       EBELN LIKE EKPO-EBELN,
       EBELP LIKE EKPO-EBELP,
       KNUMV LIKE EKKO-KNUMV,
       KSCHL LIKE KONV-KSCHL,
       KBETR LIKE KONV-KBETR,
       KWERT LIKE KONV-KWERT,
       WAERS LIKE KONV-WAERS,
       END OF ITAB_COND.

DATA : BEGIN OF ITAB_PRICE OCCURS 0,
       KSCHL LIKE KONV-KSCHL,
       VTEXT LIKE T685T-VTEXT,
       UNIT(30),
       KWERT LIKE KONV-KWERT,
       END OF ITAB_PRICE.

DATA : IEKKO LIKE EKKO.


DATA : BEGIN OF TEXT OCCURS 0.
        INCLUDE STRUCTURE TTXIT.
DATA : END OF TEXT.

DATA : BEGIN OF TLINE OCCURS 100.
        INCLUDE STRUCTURE TLINE.
DATA : END OF TLINE.

DATA : BEGIN OF XKOMV OCCURS 0.
        INCLUDE STRUCTURE KOMV.
DATA : END OF XKOMV.

DATA : BEGIN OF TAX OCCURS 0,
       EBELP LIKE EKPO-EBELP,
       MWSKZ LIKE EKPO-MWSKZ,
       TXJCD LIKE EKPO-TXJCD,
       VTEXT LIKE T685T-VTEXT,
       KNUMH LIKE A003-KNUMH,
       KBETR LIKE KONP-KBETR,
       KSCHL LIKE A003-KSCHL,
       END OF TAX .

DATA : BEGIN OF SERPACK OCCURS 0,
       VTEXT LIKE T685T-VTEXT,
       EBELP LIKE EKPO-EBELP,
       KSCHL LIKE KONV-KSCHL,
       KWERT LIKE KONV-KWERT,
       KNUMV LIKE ESLH-KNUMV,
       WTEMP LIKE KONV-KBETR,
       END OF SERPACK.


DATA : BEGIN OF WTXT OCCURS 0,
       TEXT(30),
       END OF WTXT.

DATA : NAME LIKE THEAD-TDNAME,
       LCNT TYPE I,TFLG .

DATA : EXRATE LIKE J_1IEXCTAX-RATE ,
       EXAMT LIKE J_1IEXCTAX-AMOUNT,
       NETAMT LIKE EXAMT.

DATA : HPRICE  LIKE KOMK,
       IPRICE  LIKE KOMP.

RANGES  : TXTOBJ FOR TTXIT-TDOBJECT,
          KSCHL FOR KONV-KSCHL,
          BSART FOR EKKO-BSART,
          COND FOR KONV-KSCHL.

*End : Data Declaration

AT SELECTION-SCREEN.
  PERFORM CHECK_PO.

START-OF-SELECTION.
  PERFORM TEXT_OBJECT.
  PERFORM COND_VALUE.
  PERFORM DOC_TYPE.

END-OF-SELECTION.
  PERFORM GET_ITEM.
  PERFORM GET_PACK.
  PERFORM GET_TEXT.
  PERFORM DISPLAY_REPORT.

TOP-OF-PAGE.
  IF TFLG NE 'N'.
    PERFORM TOP_PAGE.
  ENDIF.

END-OF-PAGE.
  PERFORM END_PAGE.

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  check_PO
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM CHECK_PO.
  CLEAR : IEKKO.
  SELECT SINGLE * INTO IEKKO FROM EKKO
           WHERE EBELN = EBELN AND BSTYP = 'F' AND SPRAS = SY-LANGU.
  IF IEKKO IS INITIAL.
    MESSAGE E260.
  ENDIF.
ENDFORM.                    " check_PO
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_item
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_ITEM.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB
           FROM EKPO
           WHERE EBELN =  EBELN AND LOEKZ NE 'L'.
ENDFORM.                    " get_item
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  get_pack
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_PACK.
  LOOP AT ITAB.
    CLEAR : ITAB_PACK.
    SELECT * FROM ESLH WHERE EBELN = ITAB-EBELN AND
                             EBELP = ITAB-EBELP AND
                             SUM_NETWR = 0 .
      ITAB_PACK-EBELN = ITAB-EBELN.
      ITAB_PACK-EBELP = ITAB-EBELP.
      SELECT  * INTO  CORRESPONDING  FIELDS OF ITAB_PACK
                 FROM ESLL WHERE PACKNO = ESLH-PACKNO AND
                                 TBTWR &amp;gt; 0 AND
                                 PACKAGE &amp;lt;&amp;gt; 'X'.
        ITAB_PACK-CNT = ITAB_PACK-CNT + 1.
        APPEND ITAB_PACK.
      ENDSELECT.
      PERFORM SER_PACK  USING ESLH.
    ENDSELECT.
  ENDLOOP.

ENDFORM.                    " get_pack
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  Display_report
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_REPORT.

  TFLG = 'Y'.
  SORT ITAB BY EBELN EBELP .
  LOOP AT ITAB.
    SKIP.
    WRITE : /2 ITAB-EBELP, 10 ITAB-MATNR,  20 ITAB-TXZ01, 55 ITAB-MENGE,
            73 ITAB-MEINS.
    SKIP.
    PERFORM DISPLAY_TEXT USING ITAB.
    PERFORM DISPLAY_PACK USING  ITAB-EBELN ITAB-EBELP.
    PERFORM DISPLAY_PRICE USING ITAB .
    CONCATENATE ITAB-EBELN ITAB-EBELP INTO NAME.
    AT LAST.
      PERFORM DISPLAY_TERM USING NAME .
    ENDAT.
  ENDLOOP.
ENDFORM.                    " Display_report
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  top_page
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM TOP_PAGE.


  CLEAR : ITAB, T001 , J_1IMOCOMP.
  READ TABLE ITAB INDEX 1.
  SELECT SINGLE * FROM T001 WHERE BUKRS = ITAB-BUKRS AND SPRAS = 'EN'.
  SELECT SINGLE * FROM J_1IMOCOMP WHERE BUKRS = ITAB-BUKRS AND
                                        WERKS = ITAB-WERKS.

  SKIP.
  WRITE : /(80) T001-BUTXT CENTERED.
  SKIP.
  WRITE : 65 'Sheet : ',SY-PAGNO.
  WRITE : /32 'Order Annexure A'.
  ULINE : /32(17).
  WRITE : /20 'Order Number : ',  50 IEKKO-EBELN.
  WRITE : /20 'Order Date : ' ,  50 IEKKO-BEDAT.
  WRITE : /20 'Excise Details :'.
  WRITE :  50 J_1IMOCOMP-J_1IEXCD.
  WRITE : /50 J_1IMOCOMP-J_1IEXRG.
  WRITE : /50 J_1IMOCOMP-J_1IEXDI.
  WRITE : /50 J_1IMOCOMP-J_1IEXCO.
  SKIP.
  WRITE : /2 'No. ', 10 'Item code ', 22 'Description ', 63 'Quantity',
          73 'UOM'.

  ULINE.

ENDFORM.                    " top_page
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_pack
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_PACK USING EBELN  EBELP .

  CLEAR : ITAB_PACK.
  READ TABLE ITAB_PACK WITH KEY EBELN = EBELN EBELP = EBELP .
  IF SY-SUBRC  = 0.
    PERFORM PACK_HEAD.
  ENDIF.

  LOOP AT ITAB_PACK WHERE EBELN = EBELN AND EBELP = EBELP.

    WRITE :/2  ITAB_PACK-CNT LEFT-JUSTIFIED NO-GAP NO-ZERO,5 SY-VLINE,
            35 SY-VLINE,36(9) ITAB_PACK-MENGE NO-GAP NO-ZERO DECIMALS 2,
            44 SY-VLINE , 45 ITAB_PACK-MEINS,49 SY-VLINE,
            50 ITAB_PACK-TBTWR NO-GAP NO-ZERO DECIMALS 2,64 SY-VLINE,
            65 ITAB_PACK-NETWR NO-GAP NO-ZERO DECIMALS 2,80 SY-VLINE.

    LCNT  = 1.
    CONCATENATE ITAB_PACK-PACKNO ITAB_PACK-INTROW INTO NAME.

    LOOP AT TEXT WHERE TDOBJECT = 'ESLL' AND TDID CP 'L*'.
      REFRESH : TLINE.
      PERFORM READ_TEXT TABLES TLINE USING NAME TEXT-TDOBJECT TEXT-TDID.
      LOOP AT TLINE.
        REFRESH : WTXT.
        PERFORM WRAPPING_TEXT TABLES WTXT USING TLINE-TDLINE.
        LOOP AT WTXT.
          IF LCNT NE 1.
            NEW-LINE.
          ENDIF.
          WRITE : 6 WTXT-TEXT.
          WRITE : 5 SY-VLINE, 35 SY-VLINE, 44 SY-VLINE,
                 49 SY-VLINE, 64 SY-VLINE, 80 SY-VLINE.
          LCNT = LCNT + 1.
        ENDLOOP.
      ENDLOOP.
    ENDLOOP.

    WRITE : /5 SY-VLINE, 35 SY-VLINE, 44 SY-VLINE,
           49 SY-VLINE, 64 SY-VLINE, 80 SY-VLINE.

    AT LAST.
      ULINE.
    ENDAT .
  ENDLOOP.
ENDFORM.                    " display_pack
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  pack_head
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM PACK_HEAD.
  WRITE : /8 'This covers the following services :'.
  SKIP 2.
  ULINE AT 2(80).
  WRITE : /5 SY-VLINE, 35 SY-VLINE, 44 SY-VLINE, 49 SY-VLINE,
          64 SY-VLINE, 80 SY-VLINE.
  WRITE : /1 'Item ', 5 SY-VLINE, 10 'Description', 35 SY-VLINE,
          38 'Qty', 44 SY-VLINE, 46 'UOM', 49 SY-VLINE, 55 'Rate',
          64 SY-VLINE, 70 'Net value', 80 SY-VLINE..
  WRITE : /5 SY-VLINE, 35 SY-VLINE, 44 SY-VLINE, 49 SY-VLINE,
          64 SY-VLINE, 72 'in INR', 80 SY-VLINE..
  WRITE : /5 SY-VLINE,  35 SY-VLINE, 44 SY-VLINE, 49 SY-VLINE,
          64 SY-VLINE, 80 SY-VLINE..
  ULINE AT 2(80).

ENDFORM.                    " pack_head
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  Text_object
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM TEXT_OBJECT.

  CLEAR TXTOBJ.
  TXTOBJ-SIGN = 'I'.
  TXTOBJ-OPTION = 'EQ'.
  TXTOBJ-LOW = 'EKPO'.
  APPEND TXTOBJ.

  CLEAR TXTOBJ.
  TXTOBJ-SIGN = 'I'.
  TXTOBJ-OPTION = 'EQ'.
  TXTOBJ-LOW = 'MATERIAL'.
  APPEND TXTOBJ.

  CLEAR TXTOBJ.
  TXTOBJ-SIGN = 'I'.
  TXTOBJ-OPTION = 'EQ'.
  TXTOBJ-LOW = 'ESLL'.
  APPEND TXTOBJ.


ENDFORM.                    " Text_object
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  Get_text
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM GET_TEXT.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE TEXT
            FROM TTXIT
            WHERE  TDOBJECT IN TXTOBJ AND TDSPRAS = 'EN'.

ENDFORM.                    " Get_text
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  read_text
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM READ_TEXT TABLES  TLINE  USING NAME OBJ ID.

  REFRESH : TLINE.

  CALL FUNCTION 'READ_TEXT'
       EXPORTING
            ID        = ID
            LANGUAGE  = SY-LANGU
            NAME      = NAME
            OBJECT    = OBJ
       TABLES
            LINES     = TLINE
       EXCEPTIONS
            OBJECT    = 1
            ID        = 2
            NAME      = 4
            NOT_FOUND = 5.


ENDFORM.                    " read_text
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  wrapping_text
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM WRAPPING_TEXT TABLES WTXT USING TEXT.

  CALL FUNCTION 'RKD_WORD_WRAP'
       EXPORTING
            TEXTLINE  = TEXT
            OUTPUTLEN = 29
       TABLES
            OUT_LINES = WTXT.

ENDFORM.                    " wrapping_text
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  end_page
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM END_PAGE.
  ULINE.
  SKIP 5.
  WRITE : 55 'Authorised signatory'.
ENDFORM.                    " end_page
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_text
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_ITAB  text
*----------------------------------------------------------------------*
FORM DISPLAY_TEXT USING  ITAB STRUCTURE ITAB.


  CLEAR : TEXT,NAME.

  READ TABLE TEXT WITH KEY  TDID = 'BEST' TDOBJECT = 'MATERIAL'.
  IF SY-SUBRC = 0.
    NAME = ITAB-MATNR.
    PERFORM READ_TEXT TABLES TLINE USING NAME TEXT-TDOBJECT
                                         TEXT-TDID.
    PERFORM TEXT_LINE TABLES TLINE.

  ENDIF.

  CONCATENATE ITAB-EBELN ITAB-EBELP INTO NAME.

  LOOP AT TEXT WHERE TDID NE 'F01' AND  TDOBJECT = 'EKPO'.
    PERFORM READ_TEXT TABLES TLINE USING NAME TEXT-TDOBJECT
                                         TEXT-TDID.
    PERFORM TEXT_LINE TABLES TLINE.
  ENDLOOP.
ENDFORM.                    " display_text
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  text_line
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_TLINE  text
*----------------------------------------------------------------------*
FORM TEXT_LINE TABLES TLINE STRUCTURE TLINE.

  DATA : WTEXT LIKE TLINE-TDLINE,
         WTEXT1 LIKE TLINE-TDLINE,
         WTEXT2 LIKE TLINE-TDLINE,
         WPRINT LIKE TLINE-TDLINE.


  LOOP AT TLINE.

    CLEAR WPRINT.
    IF TLINE-TDLINE EQ SPACE.
      SKIP.
    ELSE.
      WTEXT = TLINE-TDLINE.
      DO .
        SPLIT WTEXT AT ',,' INTO WTEXT1 WTEXT2.
        IF WTEXT2 = SPACE.
          CONCATENATE WPRINT WTEXT1 INTO WPRINT SEPARATED BY SPACE.
          EXIT.
        ENDIF.
        CONCATENATE WPRINT '  ' WTEXT1 INTO WPRINT SEPARATED BY SPACE.
        WTEXT = WTEXT2.
      ENDDO.
      WRITE : /2 WPRINT.
    ENDIF.

  ENDLOOP.

ENDFORM.                    " text_line
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_term
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_ITAB  text
*----------------------------------------------------------------------*
FORM DISPLAY_TERM USING  NAME .

  PERFORM END_PAGE.

  NEW-PAGE .
  TFLG = 'N'.
  SKIP TO LINE 5.
  WRITE : 65 'Sheet : ',SY-PAGNO.
  SKIP.
  WRITE : /32 'Order Annexure B'.
  ULINE:/32(17).
  WRITE: /(80)  ' TERMS AND CONDITIONS ' CENTERED .


  LOOP AT TEXT WHERE TDID = 'F01' AND  TDOBJECT = 'EKPO'.
    PERFORM READ_TEXT TABLES TLINE USING NAME TEXT-TDOBJECT
                                         TEXT-TDID.
    PERFORM TEXT_LINE TABLES TLINE.
  ENDLOOP.

  PERFORM END_PAGE.
ENDFORM.                    " display_term
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  display_price
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_ITAB_EBELN  text
*      --&amp;gt;P_ITAB_EBELP  text
*----------------------------------------------------------------------*
FORM DISPLAY_PRICE USING  EKPO LIKE ITAB.

  DATA : PER LIKE KONV-WAERS,
         NUM  LIKE KONV-KBETR,
         RATE(18).

  REFRESH : ITAB_COND.

  PERFORM PRICE_HEADER.

  PERFORM TAX_INDICATOR USING EKPO.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB_COND FROM KONV
            WHERE KNUMV = IEKKO-KNUMV AND KPOSN = EKPO-EBELP  AND
                  KBETR NE 0  AND NOT KSCHL IN KSCHL.

  IF NOT IEKKO-BSART IN BSART.

    CLEAR : NETAMT.
    LOOP AT ITAB_COND WHERE  KSCHL NE 'ZSTC' AND KSCHL IN COND.

      CLEAR : ITAB_PRICE.
      SELECT SINGLE VTEXT INTO ITAB_PRICE-VTEXT FROM T685T
                     WHERE KSCHL = ITAB_COND-KSCHL AND SPRAS = SY-LANGU.

      MOVE-CORRESPONDING ITAB_COND TO ITAB_PRICE.

      IF ITAB_COND-WAERS IS INITIAL.
        PER = '%'.
        NUM = ITAB_COND-KBETR / 10.
        WRITE NUM TO RATE.
        CONCATENATE  '( @' RATE  PER ' % )'
                    INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
      ELSE.
        PER = ITAB_COND-WAERS.
        NUM = ITAB_COND-KBETR.
        WRITE NUM TO RATE.
        CONCATENATE RATE PER INTO ITAB_PRICE-UNIT
                     SEPARATED BY SPACE.
      ENDIF.
      NETAMT = NETAMT + ITAB_PRICE-KWERT.
      APPEND ITAB_PRICE.

    ENDLOOP.
    CLEAR XKOMV.
    PERFORM TAX_SCHEMA TABLES XKOMV USING EKPO.
    PERFORM EXICE_DUTY USING  EKPO .
    PERFORM EDU_CESS USING EKPO.
    PERFORM SALES_TAX USING EKPO.
    PERFORM SURCHARGE USING EKPO.
  ELSE.

    PERFORM SERVICE_PACK USING EKPO.
  ENDIF.
  PERFORM PRICE_DISPLAY.
  .
ENDFORM.                    " display_price
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  cond_value
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM COND_VALUE.

  CLEAR KSCHL.
  KSCHL-SIGN = 'I'.
  KSCHL-OPTION = 'EQ'.
  KSCHL-LOW = 'ZFRE'.
  APPEND KSCHL.

  CLEAR KSCHL.
  KSCHL-SIGN = 'I'.
  KSCHL-OPTION = 'EQ'.
  KSCHL-LOW = 'JOCM'.
  APPEND KSCHL.

  CLEAR KSCHL.
  KSCHL-SIGN = 'I'.
  KSCHL-OPTION = 'EQ'.
  KSCHL-LOW = 'NAVS'.
  APPEND KSCHL.

  CLEAR KSCHL.
  KSCHL-SIGN = 'I'.
  KSCHL-OPTION = 'EQ'.
  KSCHL-LOW = 'FRA2'.
  APPEND KSCHL.

  CLEAR KSCHL.
  KSCHL-SIGN = 'I'.
  KSCHL-OPTION = 'EQ'.
  KSCHL-LOW = 'FRA1'.
  APPEND KSCHL.



ENDFORM.                    " cond_value
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  doc_type
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM DOC_TYPE.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZLW1'.
  APPEND BSART.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZLW2'.
  APPEND BSART.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZHW1'.
  APPEND BSART.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZHW2'.
  APPEND BSART.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZHWR'.
  APPEND BSART.

  CLEAR : BSART.
  BSART-SIGN = 'I'.
  BSART-OPTION = 'EQ'.
  BSART-LOW = 'ZPWC'.
  APPEND BSART.

ENDFORM.                    " doc_type
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  Price_header
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM PRICE_HEADER.
  SKIP.
  WRITE : /2 'Price Details : '.
  REFRESH : COND.

  IF IEKKO-BSART = 'ZA1'  OR IEKKO-BSART = 'ZA2'  OR
     IEKKO-BSART = 'ZIEM' OR IEKKO-BSART = 'ZIRM' OR
     IEKKO-BSART = 'ZIS1' OR IEKKO-BSART = 'ZIS2' OR
     IEKKO-BSART = 'ZIST' OR IEKKO-BSART = 'ZIWR' .
    WRITE : /65 IEKKO-INCO1.

    CLEAR COND.
    COND-SIGN = 'I'.
    COND-OPTION = 'EQ'.
    COND-LOW = 'PBXX'.
    APPEND COND.

  ENDIF.

  SKIP.
  WRITE : 38 'Unit rate ', 60 'Order value(in',
          75  IEKKO-WAERS(4), ')'.
  SKIP.

ENDFORM.                    " Price_header
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  exice_duty
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM EXICE_DUTY USING EKPO LIKE ITAB.

  DATA : PER LIKE KONV-WAERS,
         NUM  LIKE KONV-KBETR,
         RATE(18).

  CLEAR : EXRATE, EXAMT.

  PERFORM EXCIE_RATE USING EKPO CHANGING EXRATE EXAMT.

  CLEAR : ITAB_COND.
  READ TABLE ITAB_COND WITH KEY KSCHL = 'JEXC' .
  IF SY-SUBRC NE 0 .
    IF EXRATE &amp;gt; 0.
      CLEAR : ITAB_PRICE.
      ITAB_PRICE-KWERT = ( NETAMT * EXRATE ) / 100.
      ITAB_PRICE-KSCHL = 'JEXC'.
      ITAB_PRICE-VTEXT = 'Excise Duty'.
      WRITE EXRATE TO RATE.
      CONCATENATE  '( @' RATE   ' % )'
                  INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
      APPEND ITAB_PRICE.
      NETAMT = NETAMT + ITAB_PRICE-KWERT.
    ELSEIF NOT EXAMT IS INITIAL .
      CLEAR NUM.
      IF NOT EKPO-MENGE IS INITIAL.
        NUM = EXAMT / EKPO-MENGE.
      ENDIF.
      CLEAR : ITAB_PRICE.
      ITAB_PRICE-KSCHL = 'JEXC'.
      ITAB_PRICE-KWERT =  EXAMT .
      ITAB_PRICE-VTEXT = 'Excise Duty'.
      WRITE NUM TO RATE.
      CONCATENATE  '( @' RATE   ' % )'
                  INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
      APPEND ITAB_PRICE.
      NETAMT = NETAMT + ITAB_PRICE-KWERT.
    ENDIF.
  ENDIF.

ENDFORM.                    " exice_duty
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  price_display
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM PRICE_DISPLAY.
  LOOP AT ITAB_PRICE.
   WRITE : /5 ITAB_PRICE-VTEXT, 30 ITAB_PRICE-UNIT, 65 ITAB_PRICE-KWERT.
    AT LAST.
      SUM.
      ULINE: /65(20).
      WRITE : /5 'Net Value', 65 ITAB_PRICE-KWERT.
      ULINE: /65(20).
    ENDAT.
  ENDLOOP.
ENDFORM.                    " price_display
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  excie_rate
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM EXCIE_RATE USING EKPO LIKE ITAB CHANGING RATE AMOUNT.

  CLEAR : RATE , AMOUNT, LFM1.

  SELECT SINGLE * FROM LFM1 WHERE LIFNR = IEKKO-LIFNR
                            AND EKORG = IEKKO-EKORG.

  SELECT SINGLE * FROM A003  WHERE KAPPL = 'TX' AND
                                  ( KSCHL = 'JMO1' OR  KSCHL = 'JM02' )
                                   AND ALAND = IEKKO-LANDS AND
                                   MWSKZ = EKPO-MWSKZ.
  IF SY-SUBRC = 0.
    SELECT SINGLE * FROM KONP WHERE KNUMH = A003-KNUMH.
    IF SY-SUBRC = 0 AND KONP-KBETR NE 0.
      SELECT *  FROM J_1IMOVEND   WHERE LIFNR = IEKKO-LIFNR.
        SELECT J_1IRATE INTO RATE FROM J_1ISSIRAT
                         WHERE J_1ISSIST = J_1IMOVEND-J_1ISSIST.
        ENDSELECT.
      ENDSELECT.
      IF RATE = 0 AND   LFM1-KALSK NE 'HS'.

        CALL FUNCTION 'J_1I6_DETERMINE_EXCISE_RATE'
             EXPORTING
                  BUKRS      = EKPO-BUKRS
                  WERKS      = EKPO-WERKS
                  MATNR      = EKPO-MATNR
                  VENDOR     = IEKKO-LIFNR
                  KALSM      = 'TAXINJ'
                  MWSKZ      = EKPO-MWSKZ
                  TAX_DATE   = IEKKO-AEDAT
                  MENGE      = EKPO-MENGE
                  KAWRT      = 0
                  UNIT       = EKPO-MEINS
             IMPORTING
                  EXC_AMOUNT = AMOUNT
                  EXC_PERC   = RATE.

      ENDIF.
    ENDIF.
  ENDIF.
ENDFORM.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  edu_cess
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM EDU_CESS USING EKPO LIKE ITAB.

  DATA : ECESS TYPE KONV-KWERT,
         NUMTAX LIKE KONV-KBETR,
         RATE(18).

  CLEAR : ITAB_PRICE.
  READ TABLE ITAB_PRICE WITH KEY KSCHL = 'JEXC' .
  IF SY-SUBRC = 0.
    ECESS = ITAB_PRICE-KWERT.
  ENDIF.
  IF ECESS IS INITIAL.
    LOOP AT XKOMV WHERE KSCHL = 'JEC1' OR KSCHL = 'JEC2' .
      ECESS = XKOMV-KAWRT.
    ENDLOOP.
  ENDIF.

  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND
                     ( KSCHL = 'JEC1' OR KSCHL = 'JEC2' ) AND
                       KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    EXIT.
  ENDLOOP.
  CLEAR : ITAB_PRICE.
  ITAB_PRICE-KWERT = ( ECESS * NUMTAX ) / 100.

  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Educational CESS'.
    WRITE NUMTAX TO RATE.
    CONCATENATE  '( @' RATE   ' % )'
                INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.

ENDFORM.                    " edu_cess



*---------------------------------------------------------------------*
*       FORM tax_schema                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  --&amp;gt;  XKOMV                                                         *
*  --&amp;gt;  EKPO                                                          *
*---------------------------------------------------------------------*
FORM TAX_SCHEMA TABLES XKOMV USING EKPO LIKE ITAB.

  HPRICE-ALAND = IEKKO-LANDS.
  HPRICE-BUKRS = EKPO-BUKRS.
  HPRICE-HWAER = IEKKO-WAERS.
  HPRICE-WAERK = IEKKO-WAERS.
  HPRICE-LIFNR = IEKKO-LIFNR.
  HPRICE-KAPPL = 'TX'.
  HPRICE-KALSM = 'TAXINJ'.
  HPRICE-PRSDT = IEKKO-AEDAT.
  HPRICE-TXJCD = EKPO-TXJCD.
  HPRICE-EKORG = IEKKO-EKORG.
  HPRICE-MWSKZ = EKPO-MWSKZ.

  IPRICE-KPOSN = EKPO-EBELP.
  IPRICE-MATNR = EKPO-MATNR.
  IPRICE-WERKS = EKPO-WERKS.
  IPRICE-MATKL = EKPO-MATKL.
  IPRICE-MEINS = EKPO-MEINS.
  IPRICE-MGLME = EKPO-MENGE.
  IPRICE-NETWR = EKPO-NETWR.
  IPRICE-WRBTR = EKPO-NETWR.
  IPRICE-MWSKZ = EKPO-MWSKZ.
  IPRICE-NETPR = EKPO-NETWR.
  IPRICE-KURSK_DAT = IEKKO-AEDAT.
  IPRICE-MTART = EKPO-MTART.

  CALL FUNCTION 'PRICING'
       EXPORTING
            CALCULATION_TYPE = 'B'
            COMM_HEAD_I      = HPRICE
            COMM_ITEM_I      = IPRICE
       TABLES
            TKOMV            = XKOMV.

ENDFORM.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  tax_indicator
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_EKPO  text
*----------------------------------------------------------------------*
FORM TAX_INDICATOR USING  EKPO LIKE ITAB.

  CHECK  EKPO-MWSKZ &amp;lt;&amp;gt; ' ' AND EKPO-MWSKZ &amp;lt;&amp;gt; 'V0'.
  SELECT * FROM A003   WHERE KAPPL = 'TX' AND ALAND = IEKKO-LANDS
                             AND MWSKZ = EKPO-MWSKZ.
    SELECT SINGLE * FROM T685T WHERE KSCHL = A003-KSCHL AND
                                     SPRAS = SY-LANGU.
    SELECT SINGLE * FROM KONP  WHERE KNUMH = A003-KNUMH .
    IF KONP-KBETR &amp;gt; 0.
      CLEAR : TAX.
      TAX-EBELP = EKPO-EBELP.
      TAX-MWSKZ = EKPO-MWSKZ.
      TAX-TXJCD = EKPO-TXJCD.
      TAX-VTEXT = T685T-VTEXT.
      TAX-KNUMH = A003-KNUMH.
      TAX-KBETR = KONP-KBETR.
      TAX-KSCHL = A003-KSCHL.
      APPEND TAX.
    ENDIF.
  ENDSELECT.
ENDFORM.                    " tax_indicator
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  sales_tax
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_EKPO  text
*----------------------------------------------------------------------*
FORM SALES_TAX USING    EKPO LIKE ITAB.

  DATA : ECESS TYPE KONV-KWERT,
         NUMTAX LIKE KONV-KBETR,
         RATE(18).


  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND
                     ( KSCHL = 'JIP1' OR KSCHL = 'JIP2' ) AND
                       KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    EXIT.
  ENDLOOP.

  CLEAR : ITAB_PRICE.
  LOOP AT XKOMV WHERE KSCHL = 'JIP1' OR KSCHL = 'JIP2' .
    ITAB_PRICE-KWERT = ( NETAMT * NUMTAX ) / 100.
  ENDLOOP.
  CLEAR : ITAB_COND.

  IF ITAB_PRICE-KWERT IS INITIAL.
    READ TABLE ITAB_COND WITH KEY   KSCHL = 'ZSTC'.
    IF SY-SUBRC = 0.
      ITAB_PRICE-KWERT = ITAB_COND-KWERT.
      IF ITAB_COND-WAERS IS INITIAL.
        NUMTAX = ITAB_COND-KBETR / 10.
      ELSE.
        NUMTAX = ITAB_COND-KBETR.
      ENDIF.

    ENDIF.
  ENDIF.

  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Sales tax'.
    WRITE NUMTAX TO RATE.
    CONDENSE RATE.
    IF ITAB_COND-WAERS IS INITIAL.
      CONCATENATE  '( @' RATE   ' %)'
                  INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    ELSE.
      CONCATENATE RATE ITAB_COND-WAERS INTO ITAB_PRICE-UNIT
                   SEPARATED BY SPACE.
    ENDIF.

    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.

ENDFORM.                    " sales_tax
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  surcharge
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_EKPO  text
*----------------------------------------------------------------------*
FORM SURCHARGE USING  EKPO LIKE ITAB.
  DATA : NUMTAX LIKE KONV-KBETR,
         RATE(18).

  CLEAR : ITAB_PRICE.
  LOOP AT XKOMV WHERE KSCHL = 'JIP4'.
    ITAB_PRICE-KWERT = XKOMV-KWERT.
  ENDLOOP.

  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND  KSCHL = 'JIP4' AND
                    KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    EXIT.
  ENDLOOP.

  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Surcharge on tax'.
    WRITE NUMTAX TO RATE.
    CONCATENATE  '( @' RATE   ' % )'
                INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.
ENDFORM.                    " surcharge


*---------------------------------------------------------------------*
*       FORM ser_pack                                                 *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  --&amp;gt;  ESLH                                                          *
*---------------------------------------------------------------------*
FORM  SER_PACK USING ESLH TYPE ESLH.

  SELECT * FROM  KONV WHERE KNUMV = ESLH-KNUMV AND KSCHL &amp;lt;&amp;gt; 'PRS4' AND
                            KSCHL &amp;lt;&amp;gt; 'ZMI2' AND KSCHL &amp;lt;&amp;gt; 'ZFRE'.
    CLEAR : T685T.
    SELECT SINGLE * FROM T685T WHERE KSCHL = KONV-KSCHL AND
                                     SPRAS = SY-LANGU.
    CLEAR : SERPACK.

    SERPACK-EBELP = ESLH-EBELP.
    SERPACK-VTEXT = T685T-VTEXT.
    SERPACK-KSCHL = KONV-KSCHL.
    SERPACK-KWERT = KONV-KWERT.
    SERPACK-KNUMV = KONV-KNUMV.
    SERPACK-WTEMP = KONV-KBETR / 10.

    IF SERPACK-WTEMP &amp;gt; 0.
      APPEND SERPACK.
    ENDIF.

  ENDSELECT.
ENDFORM.
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  Service_pack
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_EKPO  text
*----------------------------------------------------------------------*
FORM SERVICE_PACK USING  EKPO LIKE ITAB.

  DATA : SUM  LIKE  KONV-KBETR,RATE(18),
          PER LIKE KONV-WAERS, NUM  LIKE KONV-KBETR,
          NUMTAX LIKE KONV-KBETR.

  LOOP AT SERPACK WHERE EBELP = EKPO-EBELP.
    SUM = SUM + SERPACK-KWERT.
  ENDLOOP.

  CLEAR : ITAB_PRICE.
  ITAB_PRICE-KWERT = SUM.
  ITAB_PRICE-VTEXT = SERPACK-VTEXT.
  WRITE  SERPACK-WTEMP TO RATE.

  IF SERPACK-KSCHL = 'PRSX'.
  ELSEIF SERPACK-KSCHL NE ''.
    CONCATENATE  '( @' RATE   ' % )'
              INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
  ENDIF.

  APPEND ITAB_PRICE.
  NETAMT = NETAMT + ITAB_PRICE-KWERT.

  LOOP AT ITAB_COND WHERE  KSCHL NE 'ZSTC' AND KSCHL IN COND AND
                           KSCHL NE 'PBXX'.

    CLEAR : ITAB_PRICE.
    SELECT SINGLE VTEXT INTO ITAB_PRICE-VTEXT FROM T685T
                   WHERE KSCHL = ITAB_COND-KSCHL AND SPRAS = SY-LANGU.

    MOVE-CORRESPONDING ITAB_COND TO ITAB_PRICE.

    IF ITAB_COND-WAERS IS INITIAL.
      PER = '%'.
      NUM = ITAB_COND-KBETR / 10.
      WRITE NUM TO RATE.
      CONCATENATE  '( @' RATE  PER ' % )'
                  INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    ELSE.
      PER = ITAB_COND-WAERS.
      NUM = ITAB_COND-KBETR.
      WRITE NUM TO RATE.
      CONCATENATE RATE PER INTO ITAB_PRICE-UNIT
                   SEPARATED BY SPACE.
    ENDIF.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
    APPEND ITAB_PRICE.

  ENDLOOP.

*Sales Tax
  CLEAR : NUMTAX,ITAB_PRICE.
  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND
                     ( KSCHL = 'JIP1' OR KSCHL = 'JIP2' ) AND
                       KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    ITAB_PRICE-KWERT = ( NETAMT * NUMTAX ) / 100.
    EXIT.
  ENDLOOP.



  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Sales tax'.
    WRITE NUMTAX TO RATE.
    CONDENSE RATE.
    CONCATENATE  '( @' RATE   ' %)'
                INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.


*Service Tax

  CLEAR : NUMTAX,ITAB_PRICE.
  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND KSCHL = 'JSRT' AND
                    KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    ITAB_PRICE-KWERT = ( NETAMT * NUMTAX ) / 100.
    EXIT.
  ENDLOOP.


  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Service Tax'.
    WRITE NUMTAX TO RATE.
    CONDENSE RATE.
    CONCATENATE  '( @' RATE   ' %)'
                INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.

*Ecess on Service Tax.

  CLEAR : NUMTAX,ITAB_PRICE.
  LOOP AT TAX WHERE EBELP = EKPO-EBELP AND KSCHL = 'JEC3' AND
                    KBETR &amp;gt; 0 .
    NUMTAX = TAX-KBETR / 10.
    ITAB_PRICE-KWERT = ( NETAMT * NUMTAX ) / 100.
    EXIT.
  ENDLOOP.


  IF NOT ITAB_PRICE-KWERT IS INITIAL.
    ITAB_PRICE-VTEXT = 'Service Tax'.
    WRITE NUMTAX TO RATE.
    CONDENSE RATE.
    CONCATENATE  '( @' RATE   ' %)'
                INTO ITAB_PRICE-UNIT SEPARATED BY SPACE.
    APPEND ITAB_PRICE.
    NETAMT = NETAMT + ITAB_PRICE-KWERT.
  ENDIF.

ENDFORM.                    " Service_pack&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Reward points if HELPFUL&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;~&lt;SUB&gt;Lakshmiraj&lt;/SUB&gt;~&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 07:10:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582822#M862555</guid>
      <dc:creator>abapdeveloper20</dc:creator>
      <dc:date>2008-03-29T07:10:05Z</dc:date>
    </item>
    <item>
      <title>Re: READ_TEXT functuion module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582823#M862556</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;In business process, there are so many transactions that take place in every day, like purchase orders, sales orders, delivery, gooodsmovement etc...  SAP provided a feature to maintain some text descriptions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read_Text Function module is used to retrieve the text for a particular objects.  &lt;/P&gt;&lt;P&gt;To find the Text id these are the following steps.  Let us take an example of Billing document Header text. &lt;/P&gt;&lt;P&gt;1. goto VF03, enter Billing doc Number &lt;/P&gt;&lt;P&gt;2. from menu&lt;DEL&gt;select Goto&lt;/DEL&gt;&amp;gt;Header--&amp;gt;header Text..... New window will be displayed &lt;/P&gt;&lt;P&gt;3. select the Header Text. here you can see all the text. &lt;/P&gt;&lt;P&gt;4. click on the TEXT (which you want to know the Text id) , then press log ICON (you can find in bottom right of the text window) it looks like a rolled paper. &lt;/P&gt;&lt;P&gt;5. in the Next window you will find Text Name. Text ID, Language. etc... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if  helpful..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sreekar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Mar 2008 16:58:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/read-text-functuion-module/m-p/3582823#M862556</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-29T16:58:37Z</dc:date>
    </item>
  </channel>
</rss>

