<?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 Header Text selection Option in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202895#M763442</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;  I have developed a report which include a number of fields that come from the header text of the document.  Besides, those fields are also used as the selection options.  So, I use the function module READ_TEXT to retrieve it and compare it.  The problem is the performance of the report is very bad.  It takes 3 mins to get 3 records.   Is there any way to resolve this??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
 SELECT-OPTIONS: S_WADAT FOR LIKP-WADAT_IST.
  PARAMETERS: P_MAWB LIKE WA_REPORT-KZABE.
  PARAMETERS: P_HAWB LIKE LIKP-BOLNR.
  PARAMETERS: P_MATNR LIKE LIPS-MATNR.
  PARAMETERS: P_LOT(20) TYPE C.

  CLEAR: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
  REFRESH: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.

  DATA WHERE_TAB(80) OCCURS 10 WITH HEADER LINE.

  DATA: BEGIN OF LTEXT OCCURS 50.
          INCLUDE STRUCTURE TLINE.
  DATA: END OF LTEXT.

  IF NOT P_HAWB IS INITIAL.
    CONCATENATE ' BOLNR = ' WHERE_TAB INTO WHERE_TAB.
    CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
    CONCATENATE WHERE_TAB P_HAWB INTO WHERE_TAB.
    CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
    APPEND WHERE_TAB.
  ENDIF.

  IF NOT P_MATNR IS INITIAL.
    IF NOT WHERE_TAB IS INITIAL.
      CONCATENATE ' AND MATNR = ' WHERE_TAB INTO WHERE_TAB.
    ELSE.
      CONCATENATE ' MATNR = ' WHERE_TAB INTO WHERE_TAB.
    ENDIF.
    CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
    CONCATENATE WHERE_TAB P_MATNR INTO WHERE_TAB.
    CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
    APPEND WHERE_TAB.
  ENDIF.

  SELECT A1~VBELN
         WADAT_IST
         BOLNR
         C1~LIFNR
         B1~MATNR
         LFIMG
         BTGEW
         B1~CHARG
    INTO CORRESPONDING FIELDS OF TABLE TMP_REPORT
    FROM LIKP AS A1 JOIN LIPS AS B1 ON A1~VBELN = B1~VBELN
        JOIN MCHA AS C1 ON B1~MATNR = C1~MATNR
                           AND
                           B1~WERKS = C1~WERKS
                           AND
                           B1~CHARG = C1~CHARG
     WHERE LFART = 'EL'
           AND
           WADAT_IST IN S_WADAT
           AND
           B1~CHARG NE ''
           AND
           B1~WERKS = 'ABC'
           AND
           (WHERE_TAB)
           .


  SORT TMP_REPORT BY VBELN.

  DATA: V_FLAG TYPE I,
        V_EXCLUDE TYPE I,
        V_LOT_EXCLUDE TYPE I.

  V_FLAG = 0.
  V_EXCLUDE = 0.
  V_LOT_EXCLUDE = 0.

  IF SY-SUBRC = 0.

* trim the parameter space
    SHIFT P_MAWB RIGHT DELETING TRAILING SPACE.
    SHIFT P_MAWB LEFT DELETING LEADING SPACE.

    SHIFT P_LOT RIGHT DELETING TRAILING SPACE.
    SHIFT P_LOT LEFT DELETING LEADING SPACE.

    LOOP AT TMP_REPORT.

      AT NEW VBELN.
        V_FLAG = 1.
        V_EXCLUDE = 0.
      ENDAT.

      IF V_FLAG = 1.
        PERFORM GET_HEADER_TEXT
              TABLES
                   LTEXT
              USING
                   'Z3IH'
                    TMP_REPORT-VBELN
                              .

        READ TABLE LTEXT INDEX 1.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-VERUR TMP_REPORT-VERUR.
        READ TABLE LTEXT INDEX 2.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-KZGBE TMP_REPORT-KZGBE.
        READ TABLE LTEXT INDEX 3.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-KZABE TMP_REPORT-KZABE.
        READ TABLE LTEXT INDEX 4.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-STABE TMP_REPORT-STABE.
        READ TABLE LTEXT INDEX 5.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-PRONU TMP_REPORT-PRONU.
        READ TABLE LTEXT INDEX 6.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-LADEL TMP_REPORT-LADEL.

        SHIFT TMP_REPORT-KZABE RIGHT DELETING TRAILING SPACE.
        SHIFT TMP_REPORT-KZABE LEFT DELETING LEADING SPACE.

        MOVE-CORRESPONDING TMP_REPORT TO WA_REPORT.
        MOVE-CORRESPONDING TMP_REPORT TO WA_TMPREPORT.

        V_FLAG = 0.
      ELSE.
        MOVE TMP_REPORT-VBELN TO WA_REPORT-VBELN.
        MOVE TMP_REPORT-LIFNR TO WA_REPORT-LIFNR.
        MOVE TMP_REPORT-MATNR TO WA_REPORT-MATNR.
        MOVE TMP_REPORT-LFIMG TO WA_REPORT-LFIMG.
      ENDIF.

      PERFORM GET_LOT_CODE USING
                                 WA_REPORT-MATNR
                                 '3LTU'
                                 WA_TMPREPORT-CHARG
                                 WA_REPORT-LOT.

      IF V_EXCLUDE &amp;lt;&amp;gt; 1 AND P_MAWB NE ''
        AND WA_TMPREPORT-KZABE NE P_MAWB .
        V_EXCLUDE = 1.
      ENDIF.

      SHIFT WA_REPORT-LOT RIGHT DELETING TRAILING SPACE.
      SHIFT WA_REPORT-LOT LEFT DELETING LEADING SPACE.

      IF P_LOT NE '' AND P_LOT NE WA_REPORT-LOT.
        V_LOT_EXCLUDE = 1.
      ELSE.
        V_LOT_EXCLUDE = 0.
      ENDIF.


      IF V_EXCLUDE &amp;lt;&amp;gt; 1 AND V_LOT_EXCLUDE &amp;lt;&amp;gt; 1.
        APPEND WA_REPORT TO I_REPORT.
        CLEAR WA_REPORT.
        CLEAR TMP_REPORT.
      ENDIF.

    ENDLOOP.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Kit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Dec 2007 16:44:55 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-13T16:44:55Z</dc:date>
    <item>
      <title>Header Text selection Option</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202895#M763442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;  I have developed a report which include a number of fields that come from the header text of the document.  Besides, those fields are also used as the selection options.  So, I use the function module READ_TEXT to retrieve it and compare it.  The problem is the performance of the report is very bad.  It takes 3 mins to get 3 records.   Is there any way to resolve this??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
 SELECT-OPTIONS: S_WADAT FOR LIKP-WADAT_IST.
  PARAMETERS: P_MAWB LIKE WA_REPORT-KZABE.
  PARAMETERS: P_HAWB LIKE LIKP-BOLNR.
  PARAMETERS: P_MATNR LIKE LIPS-MATNR.
  PARAMETERS: P_LOT(20) TYPE C.

  CLEAR: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.
  REFRESH: I_REPORT,I_DELIVERY,I_DELIVERY_INFO.

  DATA WHERE_TAB(80) OCCURS 10 WITH HEADER LINE.

  DATA: BEGIN OF LTEXT OCCURS 50.
          INCLUDE STRUCTURE TLINE.
  DATA: END OF LTEXT.

  IF NOT P_HAWB IS INITIAL.
    CONCATENATE ' BOLNR = ' WHERE_TAB INTO WHERE_TAB.
    CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
    CONCATENATE WHERE_TAB P_HAWB INTO WHERE_TAB.
    CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
    APPEND WHERE_TAB.
  ENDIF.

  IF NOT P_MATNR IS INITIAL.
    IF NOT WHERE_TAB IS INITIAL.
      CONCATENATE ' AND MATNR = ' WHERE_TAB INTO WHERE_TAB.
    ELSE.
      CONCATENATE ' MATNR = ' WHERE_TAB INTO WHERE_TAB.
    ENDIF.
    CONCATENATE WHERE_TAB '''' INTO WHERE_TAB.
    CONCATENATE WHERE_TAB P_MATNR INTO WHERE_TAB.
    CONCATENATE  WHERE_TAB '''' INTO WHERE_TAB.
    APPEND WHERE_TAB.
  ENDIF.

  SELECT A1~VBELN
         WADAT_IST
         BOLNR
         C1~LIFNR
         B1~MATNR
         LFIMG
         BTGEW
         B1~CHARG
    INTO CORRESPONDING FIELDS OF TABLE TMP_REPORT
    FROM LIKP AS A1 JOIN LIPS AS B1 ON A1~VBELN = B1~VBELN
        JOIN MCHA AS C1 ON B1~MATNR = C1~MATNR
                           AND
                           B1~WERKS = C1~WERKS
                           AND
                           B1~CHARG = C1~CHARG
     WHERE LFART = 'EL'
           AND
           WADAT_IST IN S_WADAT
           AND
           B1~CHARG NE ''
           AND
           B1~WERKS = 'ABC'
           AND
           (WHERE_TAB)
           .


  SORT TMP_REPORT BY VBELN.

  DATA: V_FLAG TYPE I,
        V_EXCLUDE TYPE I,
        V_LOT_EXCLUDE TYPE I.

  V_FLAG = 0.
  V_EXCLUDE = 0.
  V_LOT_EXCLUDE = 0.

  IF SY-SUBRC = 0.

* trim the parameter space
    SHIFT P_MAWB RIGHT DELETING TRAILING SPACE.
    SHIFT P_MAWB LEFT DELETING LEADING SPACE.

    SHIFT P_LOT RIGHT DELETING TRAILING SPACE.
    SHIFT P_LOT LEFT DELETING LEADING SPACE.

    LOOP AT TMP_REPORT.

      AT NEW VBELN.
        V_FLAG = 1.
        V_EXCLUDE = 0.
      ENDAT.

      IF V_FLAG = 1.
        PERFORM GET_HEADER_TEXT
              TABLES
                   LTEXT
              USING
                   'Z3IH'
                    TMP_REPORT-VBELN
                              .

        READ TABLE LTEXT INDEX 1.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-VERUR TMP_REPORT-VERUR.
        READ TABLE LTEXT INDEX 2.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-KZGBE TMP_REPORT-KZGBE.
        READ TABLE LTEXT INDEX 3.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-KZABE TMP_REPORT-KZABE.
        READ TABLE LTEXT INDEX 4.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-STABE TMP_REPORT-STABE.
        READ TABLE LTEXT INDEX 5.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-PRONU TMP_REPORT-PRONU.
        READ TABLE LTEXT INDEX 6.
        SPLIT LTEXT-TDLINE AT ':' INTO
        TMP_REPORT-LADEL TMP_REPORT-LADEL.

        SHIFT TMP_REPORT-KZABE RIGHT DELETING TRAILING SPACE.
        SHIFT TMP_REPORT-KZABE LEFT DELETING LEADING SPACE.

        MOVE-CORRESPONDING TMP_REPORT TO WA_REPORT.
        MOVE-CORRESPONDING TMP_REPORT TO WA_TMPREPORT.

        V_FLAG = 0.
      ELSE.
        MOVE TMP_REPORT-VBELN TO WA_REPORT-VBELN.
        MOVE TMP_REPORT-LIFNR TO WA_REPORT-LIFNR.
        MOVE TMP_REPORT-MATNR TO WA_REPORT-MATNR.
        MOVE TMP_REPORT-LFIMG TO WA_REPORT-LFIMG.
      ENDIF.

      PERFORM GET_LOT_CODE USING
                                 WA_REPORT-MATNR
                                 '3LTU'
                                 WA_TMPREPORT-CHARG
                                 WA_REPORT-LOT.

      IF V_EXCLUDE &amp;lt;&amp;gt; 1 AND P_MAWB NE ''
        AND WA_TMPREPORT-KZABE NE P_MAWB .
        V_EXCLUDE = 1.
      ENDIF.

      SHIFT WA_REPORT-LOT RIGHT DELETING TRAILING SPACE.
      SHIFT WA_REPORT-LOT LEFT DELETING LEADING SPACE.

      IF P_LOT NE '' AND P_LOT NE WA_REPORT-LOT.
        V_LOT_EXCLUDE = 1.
      ELSE.
        V_LOT_EXCLUDE = 0.
      ENDIF.


      IF V_EXCLUDE &amp;lt;&amp;gt; 1 AND V_LOT_EXCLUDE &amp;lt;&amp;gt; 1.
        APPEND WA_REPORT TO I_REPORT.
        CLEAR WA_REPORT.
        CLEAR TMP_REPORT.
      ENDIF.

    ENDLOOP.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Kit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 16:44:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202895#M763442</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T16:44:55Z</dc:date>
    </item>
    <item>
      <title>Re: Header Text selection Option</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202896#M763443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this perform is taking more time. Can you paste below perform code here?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PERFORM GET_LOT_CODE USING
                                 WA_REPORT-MATNR
                                 '3LTU'
                                 WA_TMPREPORT-CHARG
                                 WA_REPORT-LOT&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Satish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 20:15:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202896#M763443</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T20:15:07Z</dc:date>
    </item>
    <item>
      <title>Re: Header Text selection Option</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202897#M763444</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is my code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
  FORM GET_LOT_CODE USING MATCODE PLANT BATCH LOT_CODE.
  DATA: W_OBJECTTAVLE LIKE BAPI1003_KEY-OBJECTTABLE VALUE 'MCHA',
        W_CLASSNUM LIKE BAPI1003_KEY-CLASSNUM VALUE 'Z003',
        W_CLASSTYPE LIKE BAPI1003_KEY-CLASSTYPE VALUE '022',
        IT_ALLOCVALUESNUM LIKE BAPI1003_ALLOC_VALUES_NUM OCCURS 0,
        IT_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR OCCURS 0,
        WA_ALLOCVALUESCHAR LIKE BAPI1003_ALLOC_VALUES_CHAR,
        IT_ALLOCVALUESCURR LIKE BAPI1003_ALLOC_VALUES_CURR OCCURS 0,
        IT_RETURN LIKE BAPIRET2 OCCURS 0.


  DATA: BEGIN OF IT_OBJECT OCCURS 0.
          INCLUDE STRUCTURE BAPI1003_OBJECT_KEYS.
  DATA: END OF IT_OBJECT.

  DATA: W_OBJECT LIKE BAPI1003_KEY-OBJECT.

  CLEAR: IT_OBJECT, IT_RETURN.
  REFRESH: IT_OBJECT, IT_RETURN.

  IT_OBJECT-KEY_FIELD = 'MATNR'.
  IT_OBJECT-VALUE_INT = MATCODE.
  APPEND IT_OBJECT.

  IT_OBJECT-KEY_FIELD = 'WERKS'.
  IT_OBJECT-VALUE_INT = PLANT.
  APPEND IT_OBJECT.

  IT_OBJECT-KEY_FIELD = 'CHARG'.
  IT_OBJECT-VALUE_INT = BATCH.
  APPEND IT_OBJECT.

  CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
       EXPORTING
            OBJECTTABLE    = 'MCHA'
       IMPORTING
            OBJECTKEY_CONC = W_OBJECT
       TABLES
            OBJECTKEYTABLE = IT_OBJECT
            RETURN         = IT_RETURN.


  CLEAR: IT_RETURN.
  REFRESH: IT_RETURN.


  CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
       EXPORTING
            OBJECTKEY       = W_OBJECT
            OBJECTTABLE     = W_OBJECTTAVLE
            CLASSNUM        = W_CLASSNUM
            CLASSTYPE       = W_CLASSTYPE
       TABLES
            ALLOCVALUESNUM  = IT_ALLOCVALUESNUM
            ALLOCVALUESCHAR = IT_ALLOCVALUESCHAR
            ALLOCVALUESCURR = IT_ALLOCVALUESCURR
            RETURN          = IT_RETURN.

  LOOP AT IT_ALLOCVALUESCHAR INTO WA_ALLOCVALUESCHAR.
    IF WA_ALLOCVALUESCHAR-CHARACT = 'Z_VENDOR_LOT_NUMBER'.
      LOT_CODE = WA_ALLOCVALUESCHAR-VALUE_CHAR.
    ENDIF.
  ENDLOOP.
  
ENDFORM.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 14 Dec 2007 02:31:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/header-text-selection-option/m-p/3202897#M763444</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-14T02:31:53Z</dc:date>
    </item>
  </channel>
</rss>

