REPORT TAKING MORE CPU UTILIZATION

Hello Experts,
my following report is of sales order report it gives me an output in less than 250 seconds,
But taking 80 percentage CPU time so tell me how to overcome this problem ??
<b>&----
*& Report  ZMSL_SALES_ORDER_REPORT
REPORT  ZMSL_SALES_ORDER_REPORT.
DEFINE: M_FIELDCAT.
  ADD 1 TO LS_FIELDCAT-COL_POS.
  LS_FIELDCAT-FIELDNAME = &1.
  LS_FIELDCAT-SELTEXT_L = &2.
  LS_FIELDCAT-OUTPUTLEN = &3.
  LS_FIELDCAT-TABNAME = 'gt_final_data'.
  APPEND LS_FIELDCAT TO FELD_CAT.
END-OF-DEFINITION.
*==================Start of Datebase tables Declaration=================
TABLES : VBAK, "Sales Document: Header Data
         VBAP, "Sales Document: Item Data
         MARA, "Matrial Master
         VBEP, "Sales Document: Schedule Line Data
         VBPA, "Sales Document: Partner
         TVROT,
         YMSLT_MAIL_ID.
*=================End of Datebase tables Declaration====================
*==================Start of Virable  ALV  declaration=================
**=============================
TYPE POOLS
*=============================
TYPE-POOLS: SLIS.
*=============================
*FIELD CATALOG DECLARATION
*=============================
CONSTANTS : CO_FORMNAME_TOP_OF_PAGE  TYPE SLIS_FORMNAME
                                     VALUE 'TOP_OF_PAGE'.
DATA : G_TABNAME_HEADER TYPE SLIS_TABNAME,
       G_TABNAME_ITEM   TYPE SLIS_TABNAME.
DATA:  FELD_CAT TYPE SLIS_T_FIELDCAT_ALV," WITH HEADER LINE ,
       ALV_LAYOUT   TYPE SLIS_LAYOUT_ALV,
       T_EVENTS           TYPE SLIS_T_EVENT,
       G_SAVE(1) TYPE C,
       G_VARIANT LIKE DISVARIANT,
       GX_VARIANT LIKE DISVARIANT,
       EVENTS   TYPE SLIS_T_EVENT,
       G_EXIT(1) TYPE C,
       LAYOUT   TYPE SLIS_LAYOUT_ALV,
       ALV_PRINT        TYPE SLIS_PRINT_ALV,
       ALV_DETAIL_FUNC(30),
      EVENTS   TYPE SLIS_T_EVENT,
       T_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
RANGES : R_PARVW FOR VBPA-PARVW.
*=================End of Virable  tables Declaration====================
*==================Start of Selection Screen Declaration================
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN BEGIN OF BLOCK VAR WITH FRAME TITLE VARIANT.
PARAMETERS     : P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK VAR.
SELECTION-SCREEN :BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS : S_VKORG FOR VBAK-VKORG OBLIGATORY, " Sales Org.
                 S_VKBUR FOR VBAK-VKBUR, " Sales Office
                 S_VKGRP FOR VBAK-VKGRP, " Sales Group
                 S_VTWEG FOR VBAK-VTWEG. " Distribution Channel
SELECTION-SCREEN :END OF BLOCK B2.
SELECTION-SCREEN :BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-003.
SELECT-OPTIONS : S_KUNNR FOR VBAK-KUNNR, "Customer Number
                 S_VBELN FOR VBAK-VBELN, "Sales Order Number
                 S_ERDAT FOR VBAK-ERDAT, "OBLIGATORY, "Sales Order Date
                 S_AUGRU FOR VBAK-AUGRU, "Order Reason
                 S_BSTNK FOR VBAK-BSTNK, "PO Number
                 S_AUART FOR VBAK-AUART. "Sales order type
SELECTION-SCREEN :END OF BLOCK B3.
SELECTION-SCREEN :BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
SELECT-OPTIONS : S_WERKS FOR VBAP-WERKS,  "plant,
                 S_MATNR FOR VBAP-MATNR, " Matrial Code
                 S_PSTYV FOR VBAP-PSTYV, "Sales Order Item cat.
                 S_EDATU FOR VBEP-EDATU,  "Conformatin Date
                 S_REQDAT FOR VBAP-ZZCUST_REQDAT. "Req.Del Date
SELECTION-SCREEN :END OF BLOCK B4.
SELECTION-SCREEN :BEGIN OF BLOCK B5 WITH FRAME TITLE TEXT-005.
SELECT-OPTIONS : S_ZE FOR  VBPA-KUNNR NO INTERVALS NO-EXTENSION , "Partner Function
                 S_ZS FOR VBPA-KUNNR NO INTERVALS NO-EXTENSION, "Partner Function
                 S_ZA FOR VBPA-KUNNR NO INTERVALS NO-EXTENSION, "Partner Function
                 S_ZR FOR VBPA-KUNNR NO INTERVALS NO-EXTENSION, "Partner Function
                 S_ZI FOR VBPA-KUNNR NO INTERVALS NO-EXTENSION. "Partner Function
*FOR VBPA-KUNNR MATCHCODE OBJECT ZSMR ,
***SELECT-OPTIONS : S_ZE FOR  VBPA-PARVW NO INTERVALS NO-EXTENSION , "Partner Function
                S_ZS FOR VBPA-PARVW NO INTERVALS NO-EXTENSION, "Partner Function
                S_ZA FOR VBPA-PARVW NO INTERVALS NO-EXTENSION, "Partner Function
                S_ZR FOR VBPA-PARVW NO INTERVALS NO-EXTENSION, "Partner Function
                S_ZI FOR VBPA-PARVW NO INTERVALS NO-EXTENSION. "Partner Function
SELECTION-SCREEN :END OF BLOCK B5.
SELECTION-SCREEN : BEGIN OF BLOCK B6 WITH FRAME TITLE TEXT-006.
PARAMETER :  P_SCREEN RADIOBUTTON GROUP RTYP DEFAULT 'X' USER-COMMAND
                                                 UCOMM ,
             P_FILE  RADIOBUTTON GROUP RTYP,
             P_MAIL  RADIOBUTTON GROUP RTYP.
SELECTION-SCREEN :END OF BLOCK B6.
SELECTION-SCREEN : BEGIN OF BLOCK B7 WITH FRAME TITLE TEXT-007.
PARAMETER :  P_PEN RADIOBUTTON GROUP RE1 DEFAULT 'X' USER-COMMAND
                                                 UCOMM , " Pending Sales order
             P_ALL  RADIOBUTTON GROUP RE1,  " ALL Sales order
             P_BLOCK  RADIOBUTTON GROUP RE1.  " Blocked Sales order
            P_DELE   RADIOBUTTON GROUP RE1.  " Delevered Sales order
SELECTION-SCREEN :END OF BLOCK B7.
SELECTION-SCREEN : END OF BLOCK B1.
*=================End of Selection Screen Declaration===================
*==================Start of Internal table Declaration==================
Internal table for vbak
DATA : BEGIN OF GT_VBAK OCCURS 0 ,
            VBELN             LIKE VBAK-VBELN , " Sales Document Number
            ERDAT             LIKE VBAK-ERDAT , " Order Date
            AUART             LIKE VBAK-AUART,  "Sales Document Type
            VTWEG             LIKE VBAK-VTWEG,  "Distribution Channel
            SPART             LIKE VBAK-SPART,  "Division
            KNUMV             LIKE VBAK-KNUMV ,  "Number of the document condition
            BSTNK             LIKE VBAK-BSTNK, " cUSTOMER pURCHASE ORDER NUMBER
            BSTDK             LIKE VBAK-BSTDK,  "Customer purchase order date
            KUNNR             LIKE VBAK-KUNNR,  " Customer Code
            ZOA_RECP_PLAN_DT  LIKE VBAK-ZOA_RECP_PLAN_DT, "Order receipt at plant
       END OF GT_VBAK.
Internal table for VBAP
DATA : BEGIN OF GT_VBAP OCCURS 0,
          VBELN LIKE VBAP-VBELN, " Sales Document Number
          POSNR LIKE VBAP-POSNR, " Sales Doc. Line item number
          MATNR LIKE VBAP-MATNR,
          ABGRU LIKE VBAP-ABGRU, "Reason for rejection
          MEINS LIKE VBAP-MEINS,  "Base Unit of Measure
          FAKSP LIKE VBAP-FAKSP,
          NETWR  LIKE VBAP-NETWR, " Net Value
          KWMENG LIKE VBAP-KWMENG, " Order Quantity
          WERKS LIKE VBAP-WERKS, "PLANT
          LGORT LIKE VBAP-LGORT, "S.Loc
          ROUTE LIKE VBAP-ROUTE, " Route
          ZZWIDTH LIKE VBAP-ZZWIDTH, " widht
          ZZKDMAT LIKE VBAP-ZZKDMAT, " customer Matrial
          ZZBRAND LIKE VBAP-ZZBRAND, " bRAND
          ZZSPLDIA LIKE VBAP-ZZSPLDIA, "Spool Diameter
          ZZCUST_REQDAT LIKE VBAP-ZZCUST_REQDAT, " REquested Date
          ZZCOATING LIKE VBAP-ZZCOATING,
          ZZWEIGHT LIKE VBAP-ZZWEIGHT,
          ZZWEIGHT_UMO LIKE VBAP-ZZWEIGHT_UMO,
         END OF GT_VBAP.
Internal table for VBEP
DATA : BEGIN OF GT_VBEP OCCURS 0,
          VBELN LIKE VBEP-VBELN, " Sales Doc. Number
          POSNR LIKE VBEP-POSNR, " Sales Doc. Item Number
          ETENR LIKE VBEP-ETENR, "Delivery Schedule Line Number
          EDATU LIKE VBEP-EDATU, "Schedule line date
         END OF GT_VBEP.
Internal table for VBPA
DATA : BEGIN OF GT_VBPA OCCURS 0,
         VBELN LIKE VBAP-VBELN, "Sales Document Number
         POSNR LIKE VBAP-POSNR, "Sales Document Item Number
         PARVW LIKE VBPA-PARVW, "Partner Function
         KUNNR LIKE VBPA-KUNNR, " Customer Number
      END OF GT_VBPA.
Internal table for VBKD
DATA : BEGIN OF GT_VBKD OCCURS 0,
        VBELN LIKE VBKD-VBELN , " Sales Documet number
        KDGRP LIKE VBKD-KDGRP, " Custoemr Group
        INCO1 LIKE VBKD-INCO1, "Incoterms (Part 1)
        INCO2 LIKE VBKD-INCO2, "Incoterms (Part 2)
        ZTERM LIKE VBKD-ZTERM, " Payment Term
        STCUR LIKE VBKD-STCUR, " Exchang Rate
     END OF GT_VBKD.
Internal table VBFA
DATA : BEGIN OF GT_VBFA OCCURS 0 ,
         VBELV   LIKE VBFA-VBELV, " Preceding sales and distribution document
         POSNV   LIKE VBFA-POSNV, "Preceding item of an SD document
         VBELN   LIKE VBFA-VBELN, "Subsequent sales and distribution document
         POSNN   LIKE VBFA-POSNN, "Subsequent item of an SD document
         VBTYP_N LIKE VBFA-VBTYP_N, "Document category of subsequent document
         RFMNG   LIKE VBFA-RFMNG,    "Referenced quantity in base unit of measure
       END OF GT_VBFA.
Internal table for KONV
DATA :  BEGIN OF GT_KONV OCCURS 0,
              KNUMV LIKE KONV-KNUMV, "Number of the document condition
              KPOSN LIKE KONV-KPOSN, "Condition item number
              KSCHL LIKE KONV-KSCHL , "Cond Type.
              KBETR LIKE KONV-KBETR, " Rate per KG
              WAERS LIKE KONV-WAERS, "currency
              KWERT LIKE KONV-KWERT, "Condition value
          END OF GT_KONV.
Internal table for MSKA,
DATA  : BEGIN OF GT_MSKA OCCURS 0,
           MATNR LIKE MSKA-MATNR, "Matrial
           WERKS LIKE MSKA-WERKS, "PLANT
           LGORT LIKE MSKA-LGORT, "S. Loc
           CHARG  LIKE MSKA-CHARG,"Batch Number
           SOBKZ LIKE MSKA-SOBKZ, "Special Stock Indicator
           VBELN LIKE MSKA-VBELN , "Sales Doc Number
           POSNR LIKE MSKA-POSNR, "Sales Doc Item Number
           KALAB LIKE MSKA-KALAB, "Unrestricted-Use Stock
           KAINS LIKE MSKA-KAINS, " Stock in Quality Inspection
        END OF GT_MSKA.
Internal table for MARD
DATA : BEGIN OF GT_MARD OCCURS 0 ,
          MATNR LIKE MARD-MATNR, "Matrial
          WERKS LIKE MARD-WERKS, "PLANT
          LGORT LIKE MARD-LGORT, "S. Loc
          LABST LIKE MARD-LABST, "Valuated Unrestricted-Use Stock
       END OF GT_MARD.
Internal table for KNA1
DATA : BEGIN OF GT_KNA1 OCCURS 0,
           KUNNR LIKE KNA1-KUNNR , " Customer Number
           NAME1 LIKE KNA1-NAME1,  "Customer Name
           NAME2 LIKE KNA1-NAME2,  " Customer Name
           ORT01 LIKE KNA1-ORT01, "City
        END OF GT_KNA1.
DATA: BEGIN OF GT_KNA1_1 OCCURS 0,
          KUNNR LIKE KNA1-KUNNR , " Customer Number
          NAME1 LIKE KNA1-NAME1,  "Customer Name
         ORT01 LIKE KNA1-ORT01,
       END OF GT_KNA1_1.
Internal table for KNVV
DATA : BEGIN OF GT_KNVV OCCURS 0,
            KUNNR LIKE KNVV-KUNNR , " Customer Number
            KLABC LIKE KNVV-KLABC, " Custoemr Class
       END OF GT_KNVV.
Internal table for MAKT,
DATA : BEGIN OF GT_MAKT OCCURS 0,
         MATNR LIKE MAKT-MATNR,  "Matrial
         SPRAS LIKE MAKT-SPRAS,
         MAKTX LIKE MAKT-MAKTX, "Matrial DESC
         MAKTG LIKE MAKT-MAKTG,
      END OF GT_MAKT.
Internal table for MVKE
DATA : BEGIN OF GT_MVKE OCCURS 0 ,
            MATNR LIKE MVKE-MATNR,  "Matrial
            MVGR1 LIKE MVKE-MVGR1, " Matrial Group
      END OF GT_MVKE.
Internal table for TVM1T
DATA : BEGIN OF GT_TVM1T OCCURS 0 ,
             SPRAS LIKE TVM1T-SPRAS,
             MVGR1 LIKE TVM1T-MVGR1, " Matrial Group
             BEZEI LIKE TVM1T-BEZEI, "  Matrial Group DESC
      END OF GT_TVM1T.
Internal table for TSPAT
DATA : BEGIN OF GT_TSPAT OCCURS 0,
            SPRAS LIKE TSPAT-SPRAS,
            SPART LIKE VBAK-SPART,  "Division
            VTEXT LIKE TSPAT-VTEXT, "Division Desc
       END OF GT_TSPAT.
Internal table for TVTWT
DATA : BEGIN OF GT_TVTWT OCCURS 0 ,
        SPRAS LIKE TVTWT-SPRAS,
        VTWEG LIKE VBAK-VTWEG, "  Distribution Channel
        VTEXT LIKE TVTWT-VTEXT, "Distribution Channel Desc
       END OF GT_TVTWT.
Internal table for TVAKT
DATA : BEGIN OF GT_TVAKT OCCURS 0,
          SPRAS LIKE TVAKT-SPRAS,
          AUART LIKE VBAK-AUART,  "Sales Document Type
          BEZEI LIKE TVAKT-BEZEI, "sALES dOC TYPE Description
       END OF GT_TVAKT .
Internal table for T151t
DATA: BEGIN OF GT_VBUP OCCURS 0,
          VBELN LIKE VBUP-VBELN,
          POSNR LIKE VBUP-POSNR,
          GBSTA LIKE VBUP-GBSTA,
      END OF GT_VBUP.
DATA : BEGIN OF GT_T151T OCCURS 0,
          SPRAS LIKE T151T-SPRAS,
          KDGRP LIKE VBKD-KDGRP, " Custoemr Group
          KTEXT LIKE T151T-KTEXT, " Custoemr Group Desc
      END OF GT_T151T.
DATA : BEGIN OF GT_TVROT OCCURS 0,
          SPRAS LIKE TVROT-SPRAS,
          ROUTE LIKE TVROT-ROUTE, " Route code
          BEZEI LIKE TVROT-BEZEI , " Route Desc
       END OF GT_TVROT.
DATA : BEGIN OF GT_T052U OCCURS 0,
          SPRAS LIKE T052U-SPRAS,
          ZTERM LIKE T052U-ZTERM, " Payment terms
          TEXT1 LIKE T052U-TEXT1, " text
       END OF GT_T052U.
DATA: BEGIN OF GT_VBUK OCCURS 0,
         VBELN LIKE VBUK-VBELN,
         WBSTK LIKE VBUK-WBSTK,
      END OF GT_VBUK.
*-------fINAL iNTERNAL TABLE FOR OUTPUT
DATA : BEGIN OF GT_FINAL_DATA OCCURS 0,
            KUNNR             LIKE VBAK-KUNNR, " cUSTOMER CODE
            NAME(70)          TYPE C, " cUSTOMER NAME
            ORT01             LIKE KNA1-ORT01, "cITY
            S_KUNNR           LIKE VBAK-KUNNR, " cUSTOMER CODE
            S_NAME(70)        TYPE C, " cUSTOMER NAME
            S_ORT01           LIKE KNA1-ORT01, "cITY
            KLABC             LIKE KNVV-KLABC, " Custoemr Class
            VBELN(70)         TYPE C, "   LIKE VBAK-VBELN, "sALES oRDER nUMBER
            POSNR             LIKE VBAP-POSNR, "SALES ORDER LINE NUMBER
            INCO1             LIKE VBKD-INCO1, "Incoterms (Part 1)
            INCO2             LIKE VBKD-INCO2, "Incoterms (Part 2)
            KALAB             LIKE MSKA-KALAB, "Unrestricted-Use Stock
            KAINS             LIKE MSKA-KAINS, " Stock in Quality Inspection
            LABST             LIKE MARD-LABST, "Valuated Unrestricted-Use Stock
            ERDAT             LIKE VBAK-ERDAT , " Order Date
            MATNR             LIKE MAKT-MATNR,  "Matrial
            MAKTX             LIKE MAKT-MAKTX, "Matrial DESC
            MAKTG             LIKE MAKT-MAKTG, "Matrial DESC
            ZZKDMAT           LIKE VBAP-ZZKDMAT, "Customter Mat. Number
            ABGRU             LIKE VBAP-ABGRU, " Reason for rejection
            COLOR(20)         TYPE C,          "Color
            COMPLEX(20)       TYPE C,         "Complex
            WIDTH(10)         TYPE C,          "Width
            KBETR             LIKE KONV-KBETR, " Rate per KG
            WAERS             LIKE KONV-WAERS, "currency
            STCUR             LIKE VBKD-STCUR, " Exchang Rate
            MEINS             LIKE VBAP-MEINS,  "Base Unit of Measure
            KWMENG            LIKE VBAP-KWMENG, " Order Quantity
            RFMNG             LIKE VBFA-RFMNG,    "Referenced quantity in base unit of measure
            BAL_QTY           LIKE VBFA-RFMNG, " Balance QTY
            EDATU             LIKE VBEP-EDATU, "Schedule line date
            DAYS(5)          TYPE C, " Sch.Delay
            BSTNK             LIKE VBAK-BSTNK, " cUSTOMER pURCHASE ORDER NUMBER
            BSTDK             LIKE VBAK-BSTDK,  "Customer purchase order date
            VTWEG             LIKE VBAK-VTWEG,  "Distribution Channel
            SPART             LIKE VBAK-SPART,  "Division
            DIST_NAME         LIKE TVTWT-VTEXT, "Distribution Channels NAME
            DIV_NAME          LIKE TSPAT-VTEXT, "Sales Divisions NAME
            ZA_KUNNR          LIKE KNA1-KUNNR,
            ZA_NAME               LIKE KNA1-NAME1,
            ZE_KUNNR          LIKE KNA1-KUNNR,
            ZE_NAME               LIKE KNA1-NAME1,
            ZI_KUNNR          LIKE KNA1-KUNNR,
            ZI_NAME               LIKE KNA1-NAME1,
            ZR_KUNNR          LIKE KNA1-KUNNR,
            ZR_NAME               LIKE KNA1-NAME1,
            ZS_KUNNR          LIKE KNA1-KUNNR,
            ZS_NAME               LIKE KNA1-NAME1,
            MVGR1(20)         TYPE C          , " Matrial Group
            B_VALUE           LIKE KONV-KWERT, "bASIC value
            EX_VALUE          LIKE KONV-KWERT, "eXCISE value
            EC_VALUE          LIKE KONV-KWERT, "ecess value
            HE_VALUE          LIKE  KONV-KWERT, "hcess value
            VAT_VALUE         LIKE KONV-KWERT, "VAT value
            CST_VALUE         LIKE KONV-KWERT, "CST
            F_VALUE           LIKE KONV-KWERT, "fREIGJT
            C_VALUE           LIKE KONV-KWERT, "cOMISSION
            KDGRP(70)         TYPE C, " Custoemr Group
            NETWR             LIKE VBAP-NETWR, " Net Value
            INR               LIKE VBAP-NETWR, " inr Net Value
            AUART             LIKE VBAK-AUART,  "Sales Document Type
            BEZEI             LIKE TVAKT-BEZEI, "SALES DOC TYPE DESC
            ZOA_RECP_PLAN_DT  LIKE VBAK-ZOA_RECP_PLAN_DT, "Order receipt at plant
            ZZCUST_REQDAT     LIKE VBAP-ZZCUST_REQDAT, " REquested Date
            ROUTE             LIKE VBAP-ROUTE, " Route
            ROUTE_NAME        LIKE  TVROT-BEZEI , "Route name
            ZZBRAND           LIKE VBAP-ZZBRAND, " bRAND
            ZZSPLDIA          LIKE VBAP-ZZSPLDIA, "Spool Diameter
            ZTERM             LIKE VBKD-ZTERM, " Payment Term
            Z_TERM_TEXT(50)   TYPE C, "Payment Terms Text
            Z001(50)          TYPE C, "text
            Z002(50)          TYPE C, "text
            Z003(50)          TYPE C, "text
            Z004(50)          TYPE C, "text
            ZI_001(50)        TYPE C, "text
            ZI_002(50)        TYPE C, "text
            ZZCOATING(20)     TYPE C,
            ZZWEIGHT          LIKE VBAP-ZZWEIGHT,
            ZZWEIGHT_UMO      LIKE VBAP-ZZWEIGHT_UMO,
            WBSTK             LIKE VBUK-WBSTK,
            T_NETWR           LIKE VBAP-NETWR, " Net Value
            FAKSP             LIKE VBAP-FAKSP,
       END OF GT_FINAL_DATA.
*****Mail Data Decleration.
DATA : BEGIN OF MAIL_TAB OCCURS 0 ,
            ZE_NAME               LIKE KNA1-NAME1,
            ZS_NAME               LIKE KNA1-NAME1,
            NAME              LIKE KNA1-NAME1,
            ORT01             LIKE KNA1-ORT01, "cITY
            S_NAME            LIKE KNA1-NAME1,
            S_ORT01           LIKE KNA1-ORT01, "cITY
            KLABC             LIKE KNVV-KLABC, " Custoemr Class
            VBELN             LIKE VBAK-VBELN, "sALES oRDER nUMBER
            POSNR             LIKE VBAP-POSNR, "SALES ORDER LINE NUMBER
            ERDAT             LIKE VBAK-ERDAT , " Order Date
            MATNR             LIKE MAKT-MATNR,  "Matrial
            MAKTX             LIKE MAKT-MAKTX, "Matrial DESC
            ZZKDMAT           LIKE VBAP-ZZKDMAT, "Customter Mat. Number
            COLOR(20)         TYPE C,          "Color
            COMPLEX(20)       TYPE C,         "Complex
            WIDTH(10)         TYPE C,          "Width
            KBETR             LIKE KONV-KBETR, " Rate per KG
            WAERS             LIKE KONV-WAERS, "currency
            MEINS             LIKE VBAP-MEINS,  "Base Unit of Measure
            KWMENG            LIKE VBAP-KWMENG, " Order Quantity
            BAL_QTY           LIKE VBFA-RFMNG, " Balance QTY
            EDATU             LIKE VBEP-EDATU, "Schedule line date
            DAYS(5)          TYPE C, " Sch.Delay
            BSTNK             LIKE VBAK-BSTNK, " cUSTOMER pURCHASE ORDER NUMBER
            BSTDK             LIKE VBAK-BSTDK,  "Customer purchase order date
            ZA_NAME               LIKE KNA1-NAME1,
            ZI_NAME               LIKE KNA1-NAME1,
            ZR_NAME               LIKE KNA1-NAME1,
            MVGR1(20)         TYPE C          , " Matrial Group
            ZZCUST_REQDAT     LIKE VBAP-ZZCUST_REQDAT, " REquested Date
            ZZBRAND           LIKE VBAP-ZZBRAND, " bRAND
       END OF MAIL_TAB.
DATA : IT_MAIL_ID TYPE YMSLT_MAIL_ID OCCURS 0 WITH HEADER LINE.
DATA : SM_MAIL_ID TYPE YMSLT_MAIL_ID OCCURS 0 WITH HEADER LINE.
DATA : SP_MAIL_ID TYPE YMSLT_MAIL_ID OCCURS 0 WITH HEADER LINE.
DATA:   IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
                WITH HEADER LINE.
DATA:   IT_ATTACH TYPE STANDARD TABLE OF SOLISTI1 INITIAL SIZE 0
                WITH HEADER LINE.
DATA:   T_PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
        T_CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
        T_RECEIVERS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
        T_ATTACHMENT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
        T_OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
        W_CNT TYPE I,
        W_SENT_ALL(1) TYPE C,
        W_DOC_DATA LIKE SODOCCHGI1,
        GD_ERROR    TYPE SY-SUBRC,
        GD_RECIEVER TYPE SY-SUBRC.
DATA STR_VAL TYPE STRING.
CLASS CL_ABAP_CHAR_UTILITIES DEFINITION LOAD.
CONSTANTS:
    CON_TAB  TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,
    CON_CRET TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF.
DATA: GT_VBAK_KNA1 LIKE GT_VBAK OCCURS 0 WITH HEADER LINE,
      GT_VBAP_VBPA LIKE GT_VBAP OCCURS 0 WITH HEADER LINE,
      GT_VBAP_MAKT LIKE GT_VBAP OCCURS 0 WITH HEADER LINE,
      GT_MVKE_TVM1T LIKE GT_MVKE OCCURS 0 WITH HEADER LINE,
      GT_VBAP_MSKA LIKE GT_VBAP OCCURS 0 WITH HEADER LINE,
      GT_VBPA_KNA1 LIKE GT_VBPA OCCURS 0 WITH HEADER LINE,
      GT_VBFA_VBUK LIKE GT_VBFA OCCURS 0 WITH HEADER LINE,
      GT_VBAP_INOB LIKE GT_VBAP OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF GT_INOB  OCCURS 0.
          INCLUDE STRUCTURE INOB.
DATA : END OF GT_INOB.
DATA: BEGIN OF GT_YCAT_PARAMS OCCURS 0,
       KEY01 TYPE YYKEY01_C10,
       KEY02 TYPE YYKEY02_C16,
       KEY03 TYPE YYKEY03_C20,
       SRNO TYPE YYSRNO_N4,
       VALUE TYPE YYVALUE_C25,
      END OF GT_YCAT_PARAMS.
DATA: BEGIN OF GT_CABN OCCURS 0,
       ATINN LIKE CABN-ATINN,
       ATNAM LIKE CABN-ATNAM,
      END OF GT_CABN.
DATA: BEGIN OF GT_AUSP OCCURS 0,
       OBJEK LIKE AUSP-OBJEK,
       ATINN LIKE AUSP-ATINN,
       ATWRT LIKE AUSP-ATWRT,
      END OF GT_AUSP.
DATA: BEGIN OF GT_CUOBJ OCCURS 0,
      CUOBJ(18) TYPE C,
        CUOBJ TYPE OBJNUM,
      END OF GT_CUOBJ.
DATA: BEGIN OF GT_CAWN OCCURS 0,
        ATINN LIKE CAWN-ATINN,
        ATZHL LIKE CAWN-ATZHL,
        ATWRT LIKE CAWN-ATWRT,
     END OF GT_CAWN.
DATA: BEGIN OF GT_CAWNT OCCURS 0,
        ATINN LIKE CAWNT-ATINN,
        ATZHL LIKE CAWNT-ATZHL,
        SPRAS LIKE CAWNT-SPRAS,
        ATWTB LIKE CAWNT-ATWTB,
     END OF GT_CAWNT.
                      START-OF-SELECTION                             *
INITIALIZATION.
  VARIANT = 'Display Options'.
RB1 = 'X'.
REPNAME = SY-REPID.
  PERFORM BUILD_EVENTTAB USING EVENTS[].
  PERFORM BUILD_LAYOUT .
  PERFORM INITIALIZE_VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN.
  PERFORM PAI_OF_SELECTION_SCREEN.
END-OF-SELECTION.
  PERFORM SELECT_DATA.
  PERFORM PROCESS_DATA.
  PERFORM FILTER_PATNER_DATA.
  IF P_FILE = 'X'.
    PERFORM OUT_PUT_FILE.
  ELSEIF P_SCREEN = 'X'.
    PERFORM FILED_CAT_LOG.
    PERFORM CREATE_ALV_LAYOUT.
PERFORM fill_events.
    PERFORM OUT_PUT_DATA.
  ELSEIF P_MAIL = 'X'.
    PERFORM MAIL_RPT.
  ENDIF.
*=================Start of Internal table Declaration===================
*===========
*&      Form  SELECT_DATA
      sELECTING DATA FROM dATA bASE
FORM SELECT_DATA .
  REFRESH R_PARVW.
  R_PARVW-SIGN = 'I'.
  R_PARVW-OPTION = 'EQ'.
  IF  NOT  S_ZE[] IS INITIAL.
    R_PARVW-LOW = S_ZE-LOW.
    APPEND R_PARVW.
  ENDIF.
  IF  NOT  S_ZS[] IS INITIAL.
    R_PARVW-LOW = S_ZS-LOW.
    APPEND R_PARVW.
  ENDIF.
  IF  NOT  S_ZA[] IS INITIAL.
    R_PARVW-LOW = S_ZA-LOW.
    APPEND R_PARVW.
  ENDIF.
  IF  NOT  S_ZR[] IS INITIAL.
    R_PARVW-LOW = S_ZR-LOW.
    APPEND R_PARVW.
  ENDIF.
  IF  NOT  S_ZI[] IS INITIAL.
    R_PARVW-LOW = S_ZI-LOW.
    APPEND R_PARVW.
  ENDIF.
R_PARVW-LOW = 'SH'.
APPEND R_PARVW.
sELECTING DATA FROM VBAK TABLE INTO INTERNAL TABLE GT_VBAK
  SELECT  VBELN ERDAT AUART
          VTWEG SPART KNUMV
          BSTNK BSTDK KUNNR
           ZOA_RECP_PLAN_DT
    INTO TABLE GT_VBAK
    FROM VBAK
          WHERE VBELN IN S_VBELN
          AND ERDAT IN S_ERDAT
          AND VBTYP = 'C'
          AND AUART IN S_AUART
          AND AUGRU IN S_AUGRU
          AND VKORG IN S_VKORG
          AND VTWEG IN S_VTWEG
          AND VKGRP IN S_VKGRP
          AND VKBUR IN S_VKBUR
          AND BSTNK  IN S_BSTNK
          AND KUNNR IN S_KUNNR.
  SORT GT_VBAK[] BY VBELN.
  IF NOT GT_VBAK[] IS INITIAL.
Selecting data from VBAP into Internal tabl gt_vbap
    IF P_BLOCK = 'X' .
      SELECT  VBELN   POSNR
              MATNR  ABGRU
              MEINS   FAKSP
              NETWR KWMENG
              WERKS   LGORT
              ROUTE ZZWIDTH
              ZZKDMAT ZZBRAND
              ZZSPLDIA ZZCUST_REQDAT
              ZZCOATING ZZWEIGHT
              ZZWEIGHT_UMO
        INTO TABLE GT_VBAP
        FROM VBAP
        FOR ALL ENTRIES IN GT_VBAK
        WHERE VBELN = GT_VBAK-VBELN
        AND MATNR IN S_MATNR
        AND ABGRU <> ''
        AND WERKS IN S_WERKS
    ELSEIF P_PEN = 'X'.
      SELECT  VBELN   POSNR
              MATNR  ABGRU
              MEINS   FAKSP
              NETWR KWMENG
              WERKS   LGORT
              ROUTE ZZWIDTH
              ZZKDMAT ZZBRAND
              ZZSPLDIA ZZCUST_REQDAT
              ZZCOATING ZZWEIGHT
              ZZWEIGHT_UMO
        INTO TABLE GT_VBAP
        FROM VBAP
        FOR ALL ENTRIES IN GT_VBAK
        WHERE VBELN = GT_VBAK-VBELN
        AND MATNR IN S_MATNR
        AND FAKSP <> '10'
        AND WERKS IN S_WERKS.
    ELSE.
         SELECT  VBELN   POSNR
              MATNR  ABGRU
              MEINS   FAKSP
              NETWR KWMENG
              WERKS   LGORT
              ROUTE ZZWIDTH
              ZZKDMAT ZZBRAND
              ZZSPLDIA ZZCUST_REQDAT
              ZZCOATING ZZWEIGHT
              ZZWEIGHT_UMO
        INTO TABLE GT_VBAP
        FROM VBAP
        FOR ALL ENTRIES IN GT_VBAK
        WHERE VBELN = GT_VBAK-VBELN
        AND MATNR IN S_MATNR
        AND WERKS IN S_WERKS.
    ENDIF.
  ENDIF.
IF P_PEN = 'X'.
   SELECT VBELN POSNR GBSTA FROM VBUP INTO TABLE GT_VBUP
          FOR ALL ENTRIES IN GT_VBAP
          WHERE VBELN = GT_VBAP-VBELN AND  POSNR = GT_VBAP-POSNR AND
          GBSTA <> 'C'.
   SORT GT_VBUP[] BY VBELN.
   LOOP AT GT_VBAP.
     READ TABLE GT_VBUP WITH KEY VBELN = GT_VBAP-VBELN
                                 POSNR = GT_VBAP-POSNR.
     IF SY-SUBRC <> 0.
       DELETE GT_VBAP.
     ENDIF.
     CLEAR GT_VBUP.
   ENDLOOP.
    LOOP AT GT_VBAK.
      READ TABLE GT_VBAP WITH KEY VBELN = GT_VBAK-VBELN.
      IF SY-SUBRC <> 0.
        DELETE GT_VBAK.
      ENDIF.
      CLEAR GT_VBAP.
    ENDLOOP.
ENDIF.
  IF NOT GT_VBAP[] IS INITIAL.
    GT_VBAP_INOB[] = GT_VBAP[].
SORT GT_VBAP_INOB[] BY MATNR.
DELETE ADJACENT DUPLICATES FROM GT_VBAP_INOB COMPARING MATNR.
SELECT * FROM INOB INTO TABLE GT_INOB
     WHERE KLART = '023'
         AND  OBTAB = 'MARA'.
IF SY-SUBRC = 0.
   SELECT  KEY01 KEY02 KEY03 SRNO VALUE
                 INTO TABLE Gt_YCAT_PARAMS
                 FROM  YCAT_PARAMS
                             WHERE KEY01 = 'CHAR_NAME'
                             AND   KEY02 = 'ATNAM'
                             AND  ( KEY03 = 'COLOR' OR  KEY03 = 'COMPLEX' )
                             AND   SRNO  = '0001'.
SELECT ATINN ATNAM INTO TABLE GT_CABN FROM CABN
                          WHERE ( ATNAM = 'COLOUR' OR ATNAM = 'COMPLEX' ).
LOOP AT GT_INOB.
GT_CUOBJ-CUOBJ = GT_INOB-CUOBJ.
APPEND GT_CUOBJ.
ENDLOOP.
SELECT OBJEK ATINN ATWRT
      INTO TABLE GT_AUSP FROM AUSP
         FOR ALL ENTRIES IN GT_CUOBJ
          WHERE OBJEK = GT_CUOBJ-CUOBJ.
         AND   ATINN = L_ATINN.
SELECT ATINN ATZHL ATWRT INTO TABLE GT_CAWN
        FROM CAWN FOR ALL ENTRIES IN GT_AUSP
          WHERE ATWRT = GT_AUSP-ATWRT.
SELECT ATINN ATZHL SPRAS ATWTB INTO TABLE GT_CAWNT
       FROM CAWNT FOR ALL ENTRIES IN GT_CAWN
          WHERE ATINN = GT_CAWN-ATINN
          AND   ATZHL = GT_CAWN-ATZHL
          AND SPRAS = 'EN'.
ENDIF.
Selecting data from VBeP into Internal tabl gt_vbep
    SORT GT_VBAP[] BY VBELN POSNR.
    SELECT  VBELN POSNR
            ETENR EDATU
      INTO TABLE GT_VBEP
      FROM VBEP
      FOR ALL ENTRIES IN GT_VBAP
      WHERE VBELN = GT_VBAP-VBELN
      AND POSNR = GT_VBAP-POSNR
      AND EDATU IN S_EDATU
           AND BMENG <> 0.
    SELECT SPRAS ROUTE BEZEI
          INTO TABLE GT_TVROT
          FROM TVROT
         WHERE SPRAS = 'EN'.
  ENDIF.
  IF NOT GT_VBAP[] IS INITIAL.
    GT_VBAP_VBPA[] = GT_VBAP[].
    SORT GT_VBAP_VBPA[] BY VBELN.
    DELETE ADJACENT DUPLICATES FROM GT_VBAP_VBPA COMPARING VBELN.
Selecting data from  VBPA into Internal tabl GT_VBPA
    IF NOT R_PARVW[] IS INITIAL.
      SELECT VBELN POSNR
             PARVW KUNNR
        INTO TABLE GT_VBPA
        FROM VBPA
        FOR ALL ENTRIES IN  GT_VBAP_VBPA
        WHERE VBELN = GT_VBAP_VBPA-VBELN
        AND (  PARVW  IN R_PARVW
        OR PARVW = 'WE' ).
    ELSE.
      SELECT VBELN POSNR
             PARVW KUNNR
        INTO TABLE GT_VBPA
        FROM VBPA
        FOR ALL ENTRIES IN  GT_VBAP_VBPA
        WHERE VBELN = GT_VBAP_VBPA-VBELN
        AND  ( PARVW  = 'ZE'
        OR  PARVW = 'ZS'
        OR PARVW = 'ZA'
        OR  PARVW = 'ZR'
        OR  PARVW = 'ZI' OR PARVW = 'WE' ).
    ENDIF.
  ENDIF.
  SORT GT_VBPA[].
  GT_VBPA_KNA1[] = GT_VBPA[].
  SORT GT_VBPA_KNA1[] BY KUNNR.
  DELETE ADJACENT DUPLICATES FROM GT_VBPA_KNA1 COMPARING KUNNR.
  IF NOT GT_VBPA_KNA1[] IS INITIAL.
    SELECT KUNNR NAME1 ORT01 FROM KNA1 INTO TABLE
           GT_KNA1_1 FOR ALL ENTRIES IN GT_VBPA_KNA1
            WHERE KUNNR = GT_VBPA_KNA1-KUNNR.
  ENDIF.
Selecting data from  VBKD into Internal tabl GT_VBKD
  IF NOT GT_VBAK[] IS INITIAL.
    SELECT VBELN  KDGRP
           INCO1 INCO2
           ZTERM  STCUR
      INTO TABLE GT_VBKD
      FROM VBKD
      FOR ALL ENTRIES IN GT_VBAK
      WHERE VBELN = GT_VBAK-VBELN
      AND PRSDT <> ''.
Selecting data from VBFA into Internal table gt_vbfa
    IF P_PEN = 'X'.
        SELECT VBFAVBELV   VBFAPOSNV
                VBFAVBELN   VBFAPOSNN
                VBFAVBTYP_N VBFARFMNG
           INTO TABLE GT_VBFA
           FROM VBFA INNER JOIN
           VBAK ON VBFAVBELV = VBAKVBELN
           WHERE
           ( VBFA~VBTYP_N = 'J' OR
                 VBFA~VBTYP_N = 'R').
LOOP AT GT_VBFA.
     READ TABLE GT_VBAK WITH KEY VBELN = Gt_VBFA-VBELV.
       IF SY-SUBRC <> 0.
         DELETE GT_VBFA.
       ENDIF.
CLEAR GT_VBFA.
ENDLOOP.
     SELECT VBELV   POSNV
               VBELN   POSNN
               VBTYP_N RFMNG
          INTO TABLE GT_VBFA
          FROM VBFA
          FOR ALL ENTRIES IN GT_VBAK
          WHERE VBELV = GT_VBAK-VBELN
          AND ( VBTYP_N = 'J' OR
                VBTYP_N = 'R').
    ELSE.
      SELECT VBELV   POSNV
             VBELN   POSNN
             VBTYP_N RFMNG
        INTO TABLE GT_VBFA
        FROM VBFA
        FOR ALL ENTRIES IN GT_VBAK
        WHERE VBELV = GT_VBAK-VBELN
        AND VBTYP_N = 'J'.
    ENDIF.
    SORT GT_VBFA[].
    IF GT_VBFA[] IS NOT INITIAL.
      GT_VBFA_VBUK[] = GT_VBFA[].
      SORT GT_VBFA_VBUK[] BY VBELN.
      DELETE ADJACENT DUPLICATES FROM GT_VBFA_VBUK COMPARING VBELN.
      SELECT VBELN WBSTK FROM VBUK INTO TABLE GT_VBUK
           FOR ALL ENTRIES IN GT_VBFA_VBUK
              WHERE VBELN = GT_VBFA_VBUK-VBELN.
    ENDIF.
         -----------Selection data from KONv into Internal table gt_konv
    SORT GT_VBAK[] BY KNUMV.
    SELECT KNUMV KPOSN KSCHL
           KBETR WAERS KWERT
         INTO TABLE GT_KONV
         FROM KONV
         FOR ALL ENTRIES IN GT_VBAK
         WHERE KNUMV = GT_VBAK-KNUMV
         AND ( KSCHL = 'ZBAP'
              OR   KSCHL = 'JEXP'
              OR   KSCHL = 'JEDC'
              OR   KSCHL = 'JEDH'
              OR   KSCHL = 'ZJIP'
              OR   KSCHL = 'ZCOM'
              OR   KSCHL = 'JIVC'
              OR   KSCHL   = 'JFRE' ).
  ENDIF.
  IF NOT GT_VBAP[] IS INITIAL.
sELECING dATA FROM MSKA INTO INTERNAL TABLE GT_MSKA
    GT_VBAP_MSKA[] = GT_VBAP[].
    SORT GT_VBAP_MSKA[] BY MATNR WERKS VBELN POSNR.
    DELETE ADJACENT DUPLICATES FROM GT_VBAP_MSKA COMPARING MATNR WERKS VBELN POSNR.
    SELECT  MATNR  WERKS
            LGORT  CHARG
            SOBKZ  VBELN
            POSNR
            KALAB  KAINS
      INTO TABLE GT_MSKA
      FROM MSKA
      FOR ALL ENTRIES IN GT_VBAP_MSKA
      WHERE MATNR = GT_VBAP_MSKA-MATNR
      AND WERKS = GT_VBAP_MSKA-WERKS
   AND LGORT = GT_VBAP-LGORT
      AND VBELN = GT_VBAP_MSKA-VBELN
      AND POSNR = GT_VBAP_MSKA-POSNR.
    SORT GT_MSKA[].
    DATA :BEGIN OF TMP_MATNR OCCURS 0,
           MATNR LIKE MARA-MATNR,
          END OF TMP_MATNR.
    LOOP AT GT_VBAP.
      TMP_MATNR-MATNR = GT_VBAP-MATNR.
      TMP_MATNR-MATNR+0(1) ='S'.
      APPEND TMP_MATNR.
    ENDLOOP.
    SORT TMP_MATNR[].
    DELETE ADJACENT DUPLICATES FROM TMP_MATNR COMPARING MATNR.
    SELECT MATNR
           WERKS
           LGORT
           LABST
      FROM MARD
      INTO TABLE GT_MARD
      FOR ALL ENTRIES IN TMP_MATNR
      WHERE MATNR = TMP_MATNR-MATNR."'SDX25000B040GC01'."GT_VBAP-MATNR.
  ENDIF.
  SORT GT_MARD[].
  IF NOT GT_VBAK[] IS INITIAL.
    GT_VBAK_KNA1[] = GT_VBAK[].
    SORT GT_VBAK_KNA1[] BY KUNNR.
    DELETE ADJACENT DUPLICATES FROM GT_VBAK_KNA1 COMPARING KUNNR.
    SELECT  KUNNR
                 NAME1
                 NAME2
                 ORT01
         FROM KNA1
         INTO TABLE GT_KNA1
         FOR ALL ENTRIES IN GT_VBAK_KNA1
         WHERE KUNNR = GT_VBAK_KNA1-KUNNR.
    SELECT KUNNR  KLABC
      FROM KNVV
     INTO TABLE GT_KNVV
     FOR ALL ENTRIES IN GT_VBAK_KNA1
     WHERE KUNNR = GT_VBAK_KNA1-KUNNR.
  ENDIF.
  IF NOT GT_VBAP[] IS INITIAL.
    GT_VBAP_MAKT[] = GT_VBAP[].
    SORT GT_VBAP_MAKT[] BY MATNR.
    DELETE ADJACENT DUPLICATES FROM GT_VBAP_MAKT COMPARING MATNR.
    SELECT   MATNR
             SPRAS
             MAKTX
         FROM MAKT
         INTO TABLE GT_MAKT
         FOR ALL ENTRIES IN GT_VBAP_MAKT
         WHERE MATNR = GT_VBAP_MAKT-MATNR AND
               SPRAS = 'EN'.
    SELECT MATNR
           MVGR1
      FROM MVKE
      INTO TABLE GT_MVKE
      FOR ALL ENTRIES IN GT_VBAP_MAKT
      WHERE MATNR = GT_VBAP_MAKT-MATNR
      AND MVGR1 <> ''.
  ENDIF.
  IF NOT GT_MVKE[] IS INITIAL.
    GT_MVKE_TVM1T[] = GT_MVKE[].
    SORT GT_MVKE_TVM1T[] BY MVGR1.
    DELETE ADJACENT DUPLICATES FROM GT_MVKE_TVM1T COMPARING MVGR1.
    SELECT SPRAS MVGR1 BEZEI
        FROM TVM1T
        INTO TABLE GT_TVM1T
        FOR ALL ENTRIES IN GT_MVKE_TVM1T
        WHERE SPRAS = 'EN' AND
          MVGR1 = GT_MVKE_TVM1T-MVGR1.
  ENDIF.
  IF NOT GT_VBAK[] IS INITIAL.
    SELECT SPRAS
           SPART
           VTEXT
      FROM TSPAT
      INTO TABLE GT_TSPAT
      WHERE SPRAS = 'EN'.
    SELECT  SPRAS
            VTWEG
            VTEXT
          FROM TVTWT
          INTO TABLE GT_TVTWT
          WHERE SPRAS = 'EN'.
    SELECT SPRAS AUART BEZEI
          FROM TVAKT
          INTO TABLE GT_TVAKT
          WHERE
           SPRAS = 'EN'.
  ENDIF.
  IF NOT GT_VBKD[] IS INITIAL.
    SELECT SPRAS KDGRP
           KTEXT
           FROM T151T
      INTO TABLE GT_T151T
    FOR ALL ENTRIES IN GT_VBKD
     WHERE SPRAS = 'EN' .
     AND
         KDGRP = GT_VBKD-KDGRP.
  ENDIF.
  IF NOT GT_VBKD[] IS INITIAL.
    SELECT SPRAS ZTERM TEXT1
      FROM T052U
      INTO TABLE GT_T052U
    FOR ALL ENTRIES IN GT_VBKD
      WHERE SPRAS = 'EN'.
      AND ZTERM = GT_VBKD-ZTERM.
  ENDIF.
ENDFORM.                    " SELECT_DATA
*&      Form  PROCESS_DATA
      text
-->  p1        text
<--  p2        text
FORM PROCESS_DATA .
  DATA : T_FLAG(2) TYPE C,
         J_AMT LIKE VBFA-RFMNG,
         M_AMT LIKE VBFA-RFMNG,
         R_AMT LIKE VBFA-RFMNG,
         N_AMT LIKE VBFA-RFMNG,
         JR_AMT LIKE VBFA-RFMNG,
         MN_AMT LIKE VBFA-RFMNG,
         TMP_WBSTK LIKE VBUK-WBSTK,
         SFG_MATNR LIKE MARD-MATNR.
  LOOP AT GT_VBAP.
    CLEAR : GT_FINAL_DATA,
          J_AMT ,
         M_AMT ,
         R_AMT,
         N_AMT ,
         JR_AMT ,
         SFG_MATNR,
         MN_AMT .
    READ TABLE GT_VBAK WITH KEY VBELN = GT_VBAP-VBELN.
    IF SY-SUBRC = 0.
      GT_FINAL_DATA-KUNNR    = GT_VBAK-KUNNR.
      GT_FINAL_DATA-VBELN  = GT_VBAK-VBELN.
      GT_FINAL_DATA-POSNR = GT_VBAP-POSNR.
      GT_FINAL_DATA-ABGRU = GT_VBAP-ABGRU.
    ENDIF.
    READ TABLE GT_KNA1 WITH KEY KUNNR = GT_VBAK-KUNNR.
    IF SY-SUBRC = 0.
      GT_FINAL_DATA-NAME = GT_KNA1-NAME1.
      GT_FINAL_DATA-ORT01 = GT_KNA1-ORT01.
    ENDIF.
    READ TABLE GT_KNVV WITH KEY KUNNR = GT_VBAK-KUNNR.
    IF SY-SUBRC = 0.
      GT_FINAL_DATA-KLABC = GT_KNVV-KLABC.
    ENDIF.
    IF SY-SUBRC = 0.
      READ TABLE GT_VBKD WITH KEY VBELN = GT_VBAK-VBELN.
      GT_FINAL_DATA-INCO1 = GT_VBKD-INCO1. "Incoterms (Part 1)
      GT_FINAL_DATA-INCO2 = GT_VBKD-INCO2. "Incoterms (Part 2)
      GT_FINAL_DATA-ZTERM = GT_VBKD-ZTERM. " Payment Term
    ENDIF.
    LOOP AT  GT_MSKA WHERE  MATNR = GT_VBAP-MATNR
                     AND    WERKS = GT_VBAP-WERKS
                     AND    LGORT = GT_VBAP-LGORT
                     AND    VBELN = GT_VBAP-VBELN
                     AND    POSNR = GT_VBAP-POSNR.
      GT_FINAL_DATA-KALAB = GT_FINAL_DATA-KALAB  + GT_MSKA-KALAB. "Unrestricted-Use Stock
      GT_FINAL_DATA-KAINS = GT_FINAL_DATA-KAINS + GT_MSKA-KAINS. " Stock in Quality Inspection
    ENDLOOP.
    SFG_MATNR = GT_VBAP-MATNR.
    SFG_MATNR+0(1) ='S'.
    READ TABLE  GT_MARD WITH KEY  MATNR = SFG_MATNR
                           WERKS = GT_VBAP-WERKS
                       LGORT = 'SF01'.
   loop at gt_mard where MATNR = SFG_MATNR
                   and  WERKS = GT_VBAP-WERKS.
    IF SY-SUBRC = 0.
      GT_FINAL_DATA-LABST =   GT_FINAL_DATA-LABST + GT_MARD-LABST . "Valuated Unrestricted-Use Stock
    ENDIF.
   endloop.
    GT_FINAL_DATA-MATNR = GT_VBAP-MATNR.  "Matrial
    GT_FINAL_DATA-ZZKDMAT = GT_VBAP-ZZKDMAT. " Customer Mat. N

Hi Rajan,
There is a lot of scope for performance tuning the code:
1. Read statement should be with BINARY SEARCH
2. Select statement should have FIELDS in the same order as they exist in the table
3. Select statement where clause should have fields in same order as they exist in the table.
4. Internal tables seem to be having a huge number of fields. If possible, please limit the fields to only required fields in the internal table.
Best regards,
Prashant

Similar Messages

  • Oracle internal queries taking more CPU time

    Hi,
    Following are queries taking more CPU time. I got this from awr report. Can anyone tell me why these queries are running? Is it a oracle enterprise manager query? should I use
    emctl stop dbconsole to stop this?
    DECLARE job BINARY_INTEGER := :job; next_date DATE := :mydate; broken BOOLEAN := FALSE; BEGIN EMD_MAINTENANCE.EXECUTE_EM_DBMS_JOB_PROCS(); :mydate := next_date; IF broken THEN :b := 1; ELSE :b := 0; END IF; END;
    SELECT COUNT(*) FROM MGMT_METRIC_DEPENDENCY_DETAILS DEP, MGMT_SEVERITY SEV WHERE DEP.TARGET_GUID = :B5 AND DEP.METRIC_GUID = :B4 AND DEP.KEY_VALUE = :B3 AND DEP.EDEP_TARGET_GUID = SEV.TARGET_GUID AND DEP.EDEP_METRIC_GUID = SEV.METRIC_GUID AND DEP.DEP_KEY_VALUE = SEV.KEY_VALUE AND SEV.COLLECTION_TIMESTAMP BETWEEN :B2 AND :B1
    SELECT CURRENT_STATUS FROM MGMT_CURRENT_AVAILABILITY WHERE TARGET_GUID = :B1
    Thanks in advance
    With Regards
    boobathi.P

    Hi,
    maybe this document will help if you are using 10g:
    SQL run by SYSMAN consuming a lot of resources on OMS with 800+ targets [ID 330383.1]
    https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=PROBLEM&id=330383.1
    there you'll find Cause and Solution too:
    SYSMAN Job and Queries are Taking Up High CPU (DB Console) [ID 1288301.1]
    https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&doctype=PROBLEM&id=1288301.1
    For databases above version 11.1 there are paches available.
    Best,
    Michael T. Z.

  • How to find which query taking more cpu

    Hi,
    How to find which query taking more CPU
    at a particular point of time .
    Chhers,

    Take a look at Server Standard Reports. It has a few CPU usage oriented reports.
    You can also track CPU usage by server-side tracing:
    http://www.sqlusa.com/bestpractices/createtrace/
    Glenn Berry's CPU usage query:
    SELECT TOP(25) p.name AS [SP Name], qs.total_worker_time AS [TotalWorkerTime],
    qs.total_worker_time/qs.execution_count AS [AvgWorkerTime], qs.execution_count,
    ISNULL(qs.execution_count/DATEDIFF(Second, qs.cached_time, GETDATE()), 0) AS [Calls/Second],
    qs.total_elapsed_time, qs.total_elapsed_time/qs.execution_count
    AS [avg_elapsed_time], qs.cached_time
    FROM sys.procedures AS p WITH (NOLOCK)
    INNER JOIN sys.dm_exec_procedure_stats AS qs WITH (NOLOCK)
    ON p.[object_id] = qs.[object_id]
    WHERE qs.database_id = DB_ID()
    ORDER BY qs.total_worker_time DESC OPTION (RECOMPILE);
    LINK:
    http://dba.stackexchange.com/questions/52216/sql-server-2008-high-cpu-historical-queries
    Query optimization:
    http://www.sqlusa.com/articles/query-optimization/
    Kalman Toth Database & OLAP Architect
    SELECT Video Tutorials 4 Hours
    New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012

  • SSRS report taking more time but fast in SSMS

    SSRS report taking more time but fast in SSMS,We are binding a string which more than 43000 length each and total number records is 4000.
    Plese do the needful.It is not possible to create index because it crosses 900 byte.

    Hi DBA5,
    As per my understanding, when previewing the report, there are three options to affect the report performance. They are data retrieval time, processing time, rendering time.
    The data retrieval takes time to retrieve the data from the server using a queries or stored procedures, the processing time takes time to process the data within the report using the operations in the layout of the report and the rendering time takes time
    to display the information of the report and how it is displayed like excel, pdf, html formats. It is the reason why report take more time than in SSMS.
    To improve the performance, we need to improve the three aspects. For the details, please see the great blog:http://blogs.msdn.com/b/mariae/archive/2009/04/16/quick-tips-for-monitoring-and-improving-performance-in-reporting-services.aspx
    Hope this helps.
    Regards,
    Heidi Duan
    Heidi Duan
    TechNet Community Support

  • Dbms_stats.cleanup_stats_db_proc taking more CPU time.

    Hi All,
    Oracle 11g R2(11.2.0.3) EE , on Linux machine.
    Oracle auto optimizer stats collection enabled in our environment. In that dbms_stats.cleanup_stats_db_proc() taking more CPU time (more than 24 hours).
    Could you please suggest any solution.
    Thanks in advance.
    BR,
    Surya

    suresh.ratnaji wrote:
    NAME                                 TYPE        VALUE
    _optimizer_cost_based_transformation string      OFF
    filesystemio_options                 string      asynch
    object_cache_optimal_size            integer     102400
    optimizer_dynamic_sampling           integer     2
    optimizer_features_enable            string      10.2.0.4
    optimizer_index_caching              integer     0
    optimizer_index_cost_adj             integer     100
    optimizer_mode                       string      choose
    optimizer_secure_view_merging        boolean     TRUE
    plsql_optimize_level                 integer     2
    please let me know why it taking more time in INDEX RANGE SCAN compare to the full table scan?Suresh,
    Any particular reason why you have a non-default value for a hidden parameter, optimizercost_based_transformation ?
    On my 10.2.0.1 database, its default value is "linear". What happens when you reset the value of the hidden parameter to default?

  • Syslogd Consuming more CPU utilization in Solaris 10

    Hi All,
    The Syslogd process consuming more CPU utilization in Solaris 10. Kindly help how to reduce this cpu utilization.
    Regards
    Siva

    Hi Robert,
    Both are same architecture. x86
    The following is the prstat o/p from the affected server. Pls note that one of the mount point in this server is in ZFS.
    prstat -l
    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/LWPID
    26092 root 3933M 3930M cpu1 60 0 29:00:43 22% syslogd/56
    26092 root 3933M 3930M run 30 0 289:47:33 12% syslogd/18
    26092 root 3933M 3930M run 40 0 272:31:05 11% syslogd/22
    26092 root 3933M 3930M run 22 0 14:47:16 9.7% syslogd/65
    26092 root 3933M 3930M run 42 0 14:43:46 9.7% syslogd/63
    26092 root 3933M 3930M run 31 0 14:40:42 9.6% syslogd/66
    26092 root 3933M 3930M sleep 40 0 152:45:42 5.9% syslogd/21
    26092 root 3933M 3930M cpu0 53 0 6:41:58 4.1% syslogd/58
    26092 root 3933M 3930M run 52 0 6:23:13 4.0% syslogd/57
    26092 root 3933M 3930M sleep 43 0 6:29:21 3.9% syslogd/59
    26092 root 3933M 3930M sleep 52 0 5:55:14 3.6% syslogd/71
    More over we are continuously receiving the below error message in the /var/adm/messages, we don't know, from where the error arises from the syslog server.
    syslogd: malloc failed: dropping message from remote: Not enough space
    PRIVILEGE :[4] 'NONE'
    Edited by: Siva_Systems on Mar 29, 2010 5:06 AM
    Edited by: Siva_Systems on Mar 29, 2010 8:18 AM

  • Custom Report taking more time to complete Normat

    Hi All,
    Custom report(Aging Report) in oracle is taking more time to complete Normal.
    In one instance, the same report is taking 5 min and the other instance this is taking 40-50 min to complete.
    We have enabled the trace and checked the trace file, but all the queries are working fine.
    Could you please suggest me regarding this issue.
    Thanks in advance!!

    TKPROF: Release 10.1.0.5.0 - Production on Tue Jun 5 10:49:32 2012
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Sort options: prsela exeela fchela
    count = number of times OCI procedure was executed
    cpu = cpu time in seconds executing
    elapsed = elapsed time in seconds executing
    disk = number of physical reads of buffers from disk
    query = number of buffers gotten for consistent read
    current = number of buffers gotten in current mode (usually for update)
    rows = number of rows processed by the fetch or execute call
    Error in CREATE TABLE of EXPLAIN PLAN table: APPS.prof$plan_table
    ORA-00922: missing or invalid option
    parse error offset: 1049
    EXPLAIN PLAN option disabled.
    SELECT DISTINCT OU.ORGANIZATION_ID , OU.BUSINESS_GROUP_ID
    FROM
    HR_OPERATING_UNITS OU WHERE OU.SET_OF_BOOKS_ID =:B1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.05 11 22 0 3
    total 3 0.00 0.05 11 22 0 3
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    3 HASH UNIQUE (cr=22 pr=11 pw=0 time=52023 us cost=10 size=66 card=1)
    3 NESTED LOOPS (cr=22 pr=11 pw=0 time=61722 us)
    3 NESTED LOOPS (cr=20 pr=11 pw=0 time=61672 us cost=9 size=66 card=1)
    3 NESTED LOOPS (cr=18 pr=11 pw=0 time=61591 us cost=7 size=37 card=1)
    3 NESTED LOOPS (cr=16 pr=11 pw=0 time=61531 us cost=7 size=30 card=1)
    3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=11 pr=9 pw=0 time=37751 us cost=6 size=22 card=1)
    18 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK1 (cr=1 pr=1 pw=0 time=17135 us cost=1 size=0 card=18)(object id 43610)
    3 TABLE ACCESS BY INDEX ROWID HR_ALL_ORGANIZATION_UNITS (cr=5 pr=2 pw=0 time=18820 us cost=1 size=8 card=1)
    3 INDEX UNIQUE SCAN HR_ORGANIZATION_UNITS_PK (cr=2 pr=0 pw=0 time=26 us cost=0 size=0 card=1)(object id 43657)
    3 INDEX UNIQUE SCAN HR_ALL_ORGANIZATION_UNTS_TL_PK (cr=2 pr=0 pw=0 time=32 us cost=0 size=7 card=1)(object id 44020)
    3 INDEX RANGE SCAN HR_ORGANIZATION_INFORMATIO_FK2 (cr=2 pr=0 pw=0 time=52 us cost=1 size=0 card=1)(object id 330960)
    3 TABLE ACCESS BY INDEX ROWID HR_ORGANIZATION_INFORMATION (cr=2 pr=0 pw=0 time=26 us cost=2 size=29 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 11 0.01 0.05
    asynch descriptor resize 2 0.00 0.00
    INSERT INTO FND_LOG_MESSAGES ( ECID_ID, ECID_SEQ, CALLSTACK, ERRORSTACK,
    MODULE, LOG_LEVEL, MESSAGE_TEXT, SESSION_ID, USER_ID, TIMESTAMP,
    LOG_SEQUENCE, ENCODED, NODE, NODE_IP_ADDRESS, PROCESS_ID, JVM_ID, THREAD_ID,
    AUDSID, DB_INSTANCE, TRANSACTION_CONTEXT_ID )
    VALUES
    ( SYS_CONTEXT('USERENV', 'ECID_ID'), SYS_CONTEXT('USERENV', 'ECID_SEQ'),
    :B16 , :B15 , SUBSTRB(:B14 ,1,255), :B13 , SUBSTRB(:B12 , 1, 4000), :B11 ,
    NVL(:B10 , -1), SYSDATE, FND_LOG_MESSAGES_S.NEXTVAL, :B9 , SUBSTRB(:B8 ,1,
    60), SUBSTRB(:B7 ,1,30), SUBSTRB(:B6 ,1,120), SUBSTRB(:B5 ,1,120),
    SUBSTRB(:B4 ,1,120), :B3 , :B2 , :B1 ) RETURNING LOG_SEQUENCE INTO :O0
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 20 0.00 0.03 4 1 304 20
    Fetch 0 0.00 0.00 0 0 0 0
    total 21 0.00 0.03 4 1 304 20
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 LOAD TABLE CONVENTIONAL (cr=1 pr=4 pw=0 time=36498 us)
    1 SEQUENCE FND_LOG_MESSAGES_S (cr=0 pr=0 pw=0 time=24 us)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 4 0.01 0.03
    SELECT MESSAGE_TEXT, MESSAGE_NUMBER, TYPE, FND_LOG_SEVERITY, CATEGORY,
    SEVERITY
    FROM
    FND_NEW_MESSAGES M, FND_APPLICATION A WHERE :B3 = M.MESSAGE_NAME AND :B2 =
    M.LANGUAGE_CODE AND :B1 = A.APPLICATION_SHORT_NAME AND M.APPLICATION_ID =
    A.APPLICATION_ID
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 2 0.00 0.00 0 0 0 0
    Fetch 2 0.00 0.03 4 12 0 2
    total 5 0.00 0.03 4 12 0 2
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=6 pr=2 pw=0 time=15724 us cost=3 size=134 card=1)
    1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=20 us cost=1 size=9 card=1)
    1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
    1 TABLE ACCESS BY INDEX ROWID FND_NEW_MESSAGES (cr=4 pr=2 pw=0 time=15693 us cost=2 size=125 card=1)
    1 INDEX UNIQUE SCAN FND_NEW_MESSAGES_PK (cr=3 pr=1 pw=0 time=6386 us cost=1 size=0 card=1)(object id 34367)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 4 0.00 0.03
    DELETE FROM MO_GLOB_ORG_ACCESS_TMP
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.02 3 4 4 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.02 3 4 4 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    0 DELETE MO_GLOB_ORG_ACCESS_TMP (cr=4 pr=3 pw=0 time=29161 us)
    1 TABLE ACCESS FULL MO_GLOB_ORG_ACCESS_TMP (cr=3 pr=2 pw=0 time=18165 us cost=2 size=13 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    db file sequential read 3 0.01 0.02
    SET TRANSACTION READ ONLY
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.01 0 0 0 0
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.01 0 0 0 0
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    begin Fnd_Concurrent.Init_Request; end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 148 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 148 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    log file sync 1 0.01 0.01
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    declare X0rv BOOLEAN; begin X0rv := FND_INSTALLATION.GET(:APPL_ID,
    :DEP_APPL_ID, :STATUS, :INDUSTRY); :X0 := sys.diutil.bool_to_int(X0rv);
    end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 9 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 9 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 8 0.00 0.00
    SQL*Net message from client 8 0.00 0.00
    begin fnd_global.bless_next_init('FND_PERMIT_0000');
    fnd_global.initialize(:session_id, :user_id, :resp_id, :resp_appl_id,
    :security_group_id, :site_id, :login_id, :conc_login_id, :prog_appl_id,
    :conc_program_id, :conc_request_id, :conc_priority_request, :form_id,
    :form_application_id, :conc_process_id, :conc_queue_id, :queue_appl_id,
    :server_id); fnd_profile.put('ORG_ID', :org_id);
    fnd_profile.put('MFG_ORGANIZATION_ID', :mfg_org_id);
    fnd_profile.put('MFG_CHART_OF_ACCOUNTS_ID', :coa);
    fnd_profile.put('APPS_MAINTENANCE_MODE', :amm); end;
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 8 0 1
    Fetch 0 0.00 0.00 0 0 0 0
    total 2 0.00 0.00 0 8 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 1 0.00 0.00
    SQL*Net message from client 1 0.00 0.00
    SELECT FPI.STATUS, FPI.INDUSTRY, FPI.PRODUCT_VERSION, FOU.ORACLE_USERNAME,
    FPI.TABLESPACE, FPI.INDEX_TABLESPACE, FPI.TEMPORARY_TABLESPACE,
    FPI.SIZING_FACTOR
    FROM
    FND_PRODUCT_INSTALLATIONS FPI, FND_ORACLE_USERID FOU, FND_APPLICATION FA
    WHERE FPI.APPLICATION_ID = FA.APPLICATION_ID AND FPI.ORACLE_ID =
    FOU.ORACLE_ID AND FA.APPLICATION_SHORT_NAME = :B1
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 2 0.00 0.00 0 7 0 1
    total 4 0.00 0.00 0 7 0 1
    Misses in library cache during parse: 1
    Misses in library cache during execute: 1
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=7 pr=0 pw=0 time=89 us)
    1 NESTED LOOPS (cr=6 pr=0 pw=0 time=93 us cost=4 size=76 card=1)
    1 NESTED LOOPS (cr=5 pr=0 pw=0 time=77 us cost=3 size=67 card=1)
    1 TABLE ACCESS BY INDEX ROWID FND_APPLICATION (cr=2 pr=0 pw=0 time=19 us cost=1 size=9 card=1)
    1 INDEX UNIQUE SCAN FND_APPLICATION_U3 (cr=1 pr=0 pw=0 time=9 us cost=0 size=0 card=1)(object id 33993)
    1 TABLE ACCESS BY INDEX ROWID FND_PRODUCT_INSTALLATIONS (cr=3 pr=0 pw=0 time=51 us cost=2 size=58 card=1)
    1 INDEX RANGE SCAN FND_PRODUCT_INSTALLATIONS_PK (cr=2 pr=0 pw=0 time=27 us cost=1 size=0 card=1)(object id 22583)
    1 INDEX UNIQUE SCAN FND_ORACLE_USERID_U1 (cr=1 pr=0 pw=0 time=7 us cost=0 size=0 card=1)(object id 22597)
    1 TABLE ACCESS BY INDEX ROWID FND_ORACLE_USERID (cr=1 pr=0 pw=0 time=7 us cost=1 size=9 card=1)
    SELECT P.PID, P.SPID, AUDSID, PROCESS, SUBSTR(USERENV('LANGUAGE'), INSTR(
    USERENV('LANGUAGE'), '.') + 1)
    FROM
    V$SESSION S, V$PROCESS P WHERE P.ADDR = S.PADDR AND S.AUDSID =
    USERENV('SESSIONID')
    call count cpu elapsed disk query current rows
    Parse 1 0.00 0.00 0 0 0 0
    Execute 1 0.00 0.00 0 0 0 0
    Fetch 1 0.00 0.00 0 0 0 1
    total 3 0.00 0.00 0 0 0 1
    Misses in library cache during parse: 0
    Optimizer mode: ALL_ROWS
    Parsing user id: 173 (recursive depth: 1)
    Rows Row Source Operation
    1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1883 us cost=1 size=108 card=2)
    1 HASH JOIN (cr=0 pr=0 pw=0 time=1869 us cost=1 size=100 card=2)
    1 NESTED LOOPS (cr=0 pr=0 pw=0 time=1059 us cost=0 size=58 card=2)
    182 FIXED TABLE FULL X$KSLWT (cr=0 pr=0 pw=0 time=285 us cost=0 size=1288 card=161)
    1 FIXED TABLE FIXED INDEX X$KSUSE (ind:1) (cr=0 pr=0 pw=0 time=617 us cost=0 size=21 card=1)
    181 FIXED TABLE FULL X$KSUPR (cr=0 pr=0 pw=0 time=187 us cost=0 size=10500 card=500)
    1 FIXED TABLE FIXED INDEX X$KSLED (ind:2) (cr=0 pr=0 pw=0 time=4 us cost=0 size=4 card=1)
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    asynch descriptor resize 2 0.00 0.00
    OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 6 0.00 0.00 0 0 0 0
    Execute 6 0.01 0.02 0 165 0 4
    Fetch 1 0.00 0.00 0 0 0 1
    total 13 0.01 0.02 0 165 0 5
    Misses in library cache during parse: 0
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    SQL*Net message to client 37 0.00 0.00
    SQL*Net message from client 37 1.21 2.19
    log file sync 1 0.01 0.01
    OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
    call count cpu elapsed disk query current rows
    Parse 49 0.00 0.00 0 0 0 0
    Execute 89 0.01 0.07 7 38 336 24
    Fetch 29 0.00 0.09 15 168 0 27
    total 167 0.02 0.16 22 206 336 51
    Misses in library cache during parse: 3
    Misses in library cache during execute: 1
    Elapsed times include waiting on following events:
    Event waited on Times Max. Wait Total Waited
    ---------------------------------------- Waited ---------- ------------
    asynch descriptor resize 6 0.00 0.00
    db file sequential read 22 0.01 0.14
    48 user SQL statements in session.
    1 internal SQL statements in session.
    49 SQL statements in session.
    0 statements EXPLAINed in this session.
    Trace file compatibility: 10.01.00
    Sort options: prsela exeela fchela
    1 session in tracefile.
    48 user SQL statements in trace file.
    1 internal SQL statements in trace file.
    49 SQL statements in trace file.
    48 unique SQL statements in trace file.
    928 lines in trace file.
    1338833753 elapsed seconds in trace file.

  • Report taking more time to execute

    Hi,
       I Have created a report on " 0FIGL_O02 " General Ledger: Line Items(DSO)
      This report is creates for document details . so using this report i want to creat
       jump report. But When i am running the report it is taking more tme.
      variable sellections i uesed for this report.
    1. company code
    2.G/L Account
    3.Posting date
    there are no caliculations for this report.  But it is taaking more time and not getting
    executed.
    plz sugest.
    Regards,
    prasad.

    Hi,
    Please rebuild the statistics of the ODS.
    Also check the various options available below:
    ODS Performance
    -Vikram

  • RDF report taking more time to complete

    Hi All,
    Our custom RDF report is taking more time to complete.
    Acutally on early hours of the login day, when i submit that request it completes in 5-6 min, but when i resubmit that request that is going on running.
    Please do help in this.

    Please post the details of the application release, database version and OS.
    Do you have the statistics collected up to date?
    Please enable trace and generate the TKPROF file -- https://forums.oracle.com/forums/search.jspa?threadID=&q=Concurrent+AND+Request+AND+Slow&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Performance tunned report taking more time to execute - URGENT

    Dear Experts,
    In One Report Program is Taking long time to execute at background session, I am Taking That Report To Tune The Performance But This is taking 12 hours more to excute .........
    The Code is given below.
    Before Tune.
    DATA  :  BEGIN OF ITAB OCCURS 0,
            LGOBE    LIKE T001L-LGOBE,
            105DT    LIKE MKPF-BUDAT,
            XBLNR    LIKE MKPF-XBLNR,
            BEDAT    LIKE EKKO-BEDAT,
            LIFNR    LIKE EKKO-LIFNR,
            NAME1    LIKE LFA1-NAME1,
            EKKO     LIKE EKKO-BEDAT,
            BISMT    LIKE MARA-BISMT,
            MAKTX    LIKE MAKT-MAKTX,
            NETPR    LIKE EKPO-NETPR,
            PEINH    LIKE EKPO-PEINH,
            VALUE    TYPE P DECIMALS 2,
            DISPO    LIKE MARC-DISPO,
            DSNAM    LIKE T024D-DSNAM,
            AGE      TYPE P DECIMALS 0,
            PARLIFNR LIKE EKKO-LIFNR,
            PARNAME1 LIKE LFA1-NAME1,
             MBLNR    LIKE MSEG-MBLNR,
             MJAHR    LIKE MSEG-MJAHR,
             ZEILE    LIKE MSEG-ZEILE,
             BWART    LIKE MSEG-BWART,
             MATNR    LIKE MSEG-MATNR,
             WERKS    LIKE MSEG-WERKS,
             LIFNR    LIKE MSEG-LIFNR,
             MENGE    LIKE MSEG-MENGE,
             MEINS    LIKE MSEG-MEINS,
             EBELN    LIKE MSEG-EBELN,
             EBELP    LIKE MSEG-EBELP,
             LGORT    LIKE MSEG-LGORT,
             SMBLN    LIKE MSEG-SMBLN,
             BUKRS    LIKE MSEG-BUKRS,
             GSBER    LIKE MSEG-GSBER,
             INSMK    LIKE MSEG-INSMK,
             XAUTO    LIKE MSEG-XAUTO,
             END OF ITAB.
    SELECT MBLNR MJAHR ZEILE BWART MATNR WERKS LIFNR MENGE MEINS
             EBELN EBELP LGORT SMBLN BUKRS GSBER INSMK XAUTO
             FROM MSEG
             INTO CORRESPONDING FIELDS OF TABLE ITAB
             WHERE WERKS  EQ P_WERKS AND
                   MBLNR  IN S_MBLNR AND
                   BWART  EQ '105'   and
                   mblnr ne '5002361303' and
                   mblnr ne '5003501080' and
                   mblnr ne '5002996300' and
                   mblnr ne '5002996407' AND
                    mblnr ne '5003587026' AND
                    mblnr ne '5003587026' AND
                    mblnr ne '5003493186' AND
                    mblnr ne '5002720583' AND
                    mblnr ne '5002928122' AND
                    mblnr ne '5002628263'.
    After tune.
    TYPES :  BEGIN OF ST_ITAB ,
             MBLNR    LIKE MSEG-MBLNR,
             MJAHR    LIKE MSEG-MJAHR,
             ZEILE    LIKE MSEG-ZEILE,
             BWART    LIKE MSEG-BWART,
             MATNR    LIKE MSEG-MATNR,
             WERKS    LIKE MSEG-WERKS,
             LIFNR    LIKE MSEG-LIFNR,
             MENGE    LIKE MSEG-MENGE,
             MEINS    LIKE MSEG-MEINS,
             EBELN    LIKE MSEG-EBELN,
             EBELP    LIKE MSEG-EBELP,
             LGORT    LIKE MSEG-LGORT,
             SMBLN    LIKE MSEG-SMBLN,
             BUKRS    LIKE MSEG-BUKRS,
             GSBER    LIKE MSEG-GSBER,
             INSMK    LIKE MSEG-INSMK,
             XAUTO    LIKE MSEG-XAUTO,
            END OF ST_ITAB.
    DATA : ITAB TYPE STANDARD TABLE OF ST_ITAB WITH HEADER LINE.
    SELECT MBLNR MJAHR ZEILE BWART MATNR WERKS LIFNR MENGE MEINS
             EBELN EBELP LGORT SMBLN BUKRS GSBER INSMK XAUTO
             FROM MSEG
             INTO TABLE ITAB
             WHERE WERKS  EQ P_WERKS AND
                   MBLNR  IN S_MBLNR AND
                   BWART  EQ '105'   AND
                   MBLNR NE '5002361303' AND
                   MBLNR NE '5003501080' AND
                   MBLNR NE '5002996300' AND
                   MBLNR NE '5002996407' AND
                    MBLNR NE '5003587026' AND
                    MBLNR NE '5003587026' AND
                    MBLNR NE '5003493186' AND
                    MBLNR NE '5002720583' AND
                    MBLNR NE '5002928122' AND
                    MBLNR NE '5002628263'.
    PLEASE GIVE ME THE SOULUTION......
    Reward avail for useful answer
    thanks in adv,
    jai.m

    Hi.
    The Select statment accessing MSEG Table is Slow Many a times.
    To Improve the performance of  MSEG.
    1.Check for the proper notes in the Service Market Place if you are working for CIN version.
    2.Index the MSEG table
    2.Check and limit the Columns in the Select statment .
    Possible Way.
    SELECT MBLNR MJAHR ZEILE BWART MATNR WERKS LIFNR MENGE MEINS
    EBELN EBELP LGORT SMBLN BUKRS GSBER INSMK XAUTO
    FROM MSEG
    INTO CORRESPONDING FIELDS OF TABLE ITAB
    WHERE WERKS EQ P_WERKS AND
    MBLNR IN S_MBLNR AND
    BWART EQ '105' .
    Delete itab where itab EQ '5002361303'
    Delete itab where itab EQ  '5003501080' 
    Delete itab where itab EQ  '5002996300'
    Delete itab where itab EQ '5002996407'
    Delete itab where itab EQ '5003587026'
    Delete itab where itab EQ  '5003587026'
    Delete itab where itab EQ  '5003493186'
    Delete itab where itab EQ  '5002720583'
    Delete itab where itab EQ '5002928122'
    Delete itab where itab EQ '5002628263'.
    Select
    Regards
    Bala.M
    Edited by: Bala Malvatu on Feb 7, 2008 9:18 PM

  • BAM reports taking more time while fetching data from EDS

    I have created an external Data Source(EDS) in the BAM, and when i create an object with that EDS, it is taking very long to fetch data from the EDS( more than 20 mins.), but as the Database is installed on my local system, when i fire a query there, it don't take much time. Please help me in this, what could be the possible reason?

    Your messaging gateway question would be better addressed in the SQL PL/SQL forum
    All Places > Database > Oracle Database + Options > SQL and PL/SQL >  Discussions

  • Gather Schema Statistics Report taking more than 13 hours to complete is it normal?

    I have run Gather Schema Statistics Report at 9 pm and it completed on 11am next morning. It almost took more than 13 hours, is this behavior normal.
    I have used the following parameter.
    Schema name: ALL
    Estimate percent:50
    Backup Flag :NOBACKUP
    History Mode :LASTRUN
    Gather Option:GATHER
    Invalidate Dependent Cursor : Y
    My database size is about 250 GB.
    Please reply

    Gather schema stastics is erroring out when i'm using the GATHER_AUTO option with 10%.
    Here is the log file
    +---------------------------------------------------------------------------+
    Application Object Library: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    FNDGSCST module: Gather Schema Statistics
    +---------------------------------------------------------------------------+
    Current system time is 13-AUG-2013 10:42:12
    +---------------------------------------------------------------------------+
    **Starts**13-AUG-2013 10:42:12
    ORACLE error 20001 in FDPSTP
    Cause: FDPSTP failed due to ORA-20001: SYS_NTGNSVL1S+OCZGRAAHKD9MYG== is an invalid identifier
    ORA-06512: at "APPS.FND_STATS", line 774
    ORA-06512: at line 1
    The SQL statement being executed at the time of the error was: SE
    +---------------------------------------------------------------------------+
    Start of log messages from FND_FILE
    +---------------------------------------------------------------------------+
    In GATHER_SCHEMA_STATS , schema_name= ALL percent= 10 degree = 8 internal_flag= NOBACKUP
    ORA-20001: SYS_NTGNSVL1S+OCZGRAAHKD9MYG== is an invalid identifier
    +---------------------------------------------------------------------------+
    End of log messages from FND_FILE
    +---------------------------------------------------------------------------+
    +---------------------------------------------------------------------------+
    Executing request completion options...
    Finished executing request completion options.
    +---------------------------------------------------------------------------+
    Concurrent request completed
    Current system time is 13-AUG-2013 10:43:29
    +---------------------------------------------------------------------------+
    I have used the following parameters
    Schema name: ALL
    Estimate percent:10
    Backup Flag :NOBACKUP
    History Mode :LASTRUN
    Gather Option:GATHER_AUTO
    Invalidate Dependent Cursor : Y

  • Report taking more time in Test Instance

    Hello Guys,
    I have got a custom report which is taking Just 2 mins in Dev Instance to complete but taking Hours to complete in Test Instance.Can any one suggest me what will be the solution to Tackle this.
    thanks in advance

    Sounds like you have some indexes missing on the test database.
    Run the report outputing the result of the SQL to a file. Then you can look at the resulting file to see which SQL queries are taking too long and alter your
    database accordingly.
    You are going to ask how to switch on the debugging? I havn't got Oracle Reports Builder with me but there is an option that you can set in the Report
    Builder to output the SQL results to a file.
    Dave

  • Report taking more time to format in PDF

    Dear All
    I have developed report in oracle reports bulider 10g. while running it from report builder data is coming very fast.
    But, If it is running from parameter form it is taking too much time to format report in PDF.
    Please suggest any configuration or setting if anybody is having Idea.
    Thanks

    Hi,
    Please rebuild the statistics of the ODS.
    Also check the various options available below:
    ODS Performance
    -Vikram

  • WEBI report taking more than a hour while refreshing

    Hi All,
    I have few WEBI report which need to be refreshed everyday at a particular time automatically, it should take around 10-15 minutes to refresh, while few day back  it started refreshing for hours without any error...i am unable to find out the reason...
    please guide me.
    Regards

    Hi Denis,
    Thanks for your reply.
    my report does not complete even after an hour of refreshing however its remain in the same running status,regarding the filter its the same its not changed, regarding the report sql i have tested it, its working fine as expected, no BOE users are increased,yes data set on DB is increased, could not find anything in Webi logs.
    Any guidance
    Regards

Maybe you are looking for

  • How can I write waveform data from a while loop?

    Alright, I have a NI-5122 high speed digitizer that I need to acquire 10,000 waveforms. I am currently using the NI example code "niScope EX Multi Record Fetch More Than Available Memory.vi" to do this and then onto that later. I set the Number of Re

  • Ipod stuck on "Usb -- iTunes" screen on my ipod.

    I attempted installing the iPod Touch 2.2 Update and it gave me an error, and now my ipod is stuck with the screen of a USB cable with an arrow pointing up to iTunes. I've unplugged and replugged it into my laptop, I've even powered down my iPod and

  • Input Filed Length Changes in SAP Table How to maintain in WDJ

    hi , i have scenario where we are having the scenario like dat .. container id with 10 chars previousl y in sap system currently from sap they have changed the length to 20 char in sap tablle. from web dynpro java we have set length 20 char . scenari

  • MacBook frozen on logo screen! Won't start from disk or boot into safe mode

    My MacBook was abnomally sluggish this morning. It froze several times as I checked my Mail, then I clicked 'Get Info' on an Application, and Finder restarted itself. I had to shut it down manually (hold down button.) When I turned it back on it woul

  • Enhancing a standard WD Component - View

    Hello Experts, My requierment is to make some fields read only in a view (V_DODC_SHIPTO) of an standard SAP SRM 7.0 application(/SAPSRM/WDC_UI_DO_SHIPTO). I created an enhancement for the view and was also able to hide a button using this enhancement