General Performance Issue

In the last few days I've noticed a general degradation in the on-line performance of my iMac. For example, when I select a mail message that is heavy on graphics (like a Home Depot flyer or something) the text displays and then after four or five seconds the graphics are painted. Until recently, the actions would have been simultaneous and immediate. Also, I've noticed that web sites (the first page) are taking three or four seconds to load. I have cable and I don't believe my connection is an issue on this. In the old days (prior to my born-again in the Mac world birth) I would have done some tinkering with my PC but I'm not sure where to start on my iMac. Thanks.
jor

Sometimes the web browser cache files can get corrupted, or the hard drive gets slow reading the cache. Try emptying the cache using the function of the browser itself.
As for e-mail, it is strongly advisable you do not load HTML e-mail with e-mail programs, but instead turn off all HTML rendering in e-mail, save such messages to the desktop, and reopen with your web browser. HTML e-mail is not fully supported on any e-mail client:
http://www.birdhouse.org/etc/evilmail.html
For other reasons why your system may be slowing down, see my FAQ:
http://www.macmaps.com/Macosxspeed.html

Similar Messages

  • DB Performance Issues after 10g Upgrade in EBS Instance

    We have upgraded our Database from 9i to 10g as first part of EBS 11.5.9 to 11.5.10.2 upgrade. Currently our production is running on 11.5.9 apps with 10g DB.
    Facing performance problems now. one of the them is, one Valueset query not using funcion based index while fired from the front end. but the same query when collected from SQL trace tkprofed file and executed from SQL Plus, it uses all proper indexes. We are not getting the cause of this.
    Had anyone faced same kind of issues before. please suggest.
    thanks,
    Raj.

    Make sure you have all of the recommended performance patches for 11.5.9, and gather stats for SYS and SYSTEM in the following manner:
    Oracle E-Business Suite Recommended Performance Patches
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=244040.1
    Collecting Statistics with Oracle Apps 11i
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=368252.1
    execute dbms_stats.unlock_schema_stats('SYS');
    execute dbms_stats.unlock_schema_stats('SYSTEM');
    exec dbms_stats.gather_schema_stats('SYSTEM',options=>'GATHER', estimate_percent => 100, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
    exec dbms_stats.gather_schema_stats('SYS',options=>'GATHER', estimate_percent => 100, method_opt => 'FOR ALL COLUMNS SIZE AUTO', cascade => TRUE);
    exec dbms_stats.gather_fixed_objects_stats();
    commit;
    exec dbms_stats.DELETE_TABLE_STATS('SYS','X$KCCRSR');
    exec dbms_stats.LOCK_TABLE_STATS('SYS','X$KCCRSR');
    commit;
    The last 3 commands resolve problems with RMAN, in case you are using it.
    Rman Backup is Very Slow selecting from V$RMAN_STATUS
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=375386.1
    Poor performance when accessing V$RMAN_BACKUP_JOB_DETAILS
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=420200.1
    Troubleshooting Oracle Applications Performance Issues
    http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=169935.1
    Debugging General Performance Issues with Oracle Apps
    http://blogs.oracle.com/schan/newsItems/departments/optimizingPerformance/2007/05/18#a1548
    Performance Tuning the Apps Database Layer
    http://blogs.oracle.com/schan/newsItems/departments/optimizingPerformance/2007/05/17#a1562
    Preventing Apps 11i Performance Issues in Four Steps
    http://blogs.oracle.com/schan/newsItems/departments/optimizingPerformance/2007/05/21#a1566

  • Performance issue entering monitor etc

    Dear Sirs,
    Our system currently feels quite slow. When entering the monitor for a load, or managing a cube the system it takes a while.
    In SM50 I can see it reads at table  (sequential) på RSMONIPTAB (which contains 1 millions records).
    SAP help.sap.com describes a process u201CArchivation of Request Administration Datau201D, which might help? Look below. However, I do not like the paragraph marked in bold. What kind of features do they reference to.
    http://help.sap.com/saphelp_nw04s/helpdata/en/42/ead8d7b55e1bd2e10000000a11466f/frameset.htm  
    Archiving request administration data allows you to store the administration and log information for a request in an archive. In BI, tables store the totals records that the system requires so that the request is not set to red because information is missing. This function allows you to limit the size of the administration and log tables, RSDONE und RSMON. This improves performance for actions performed for the request and in the affected InfoProviders and saves memory space in the database without affecting the status set by the system.
    For certain functions and processes that access requests, you have to reload request administration data to the BI administration and log tables.
    Any hints on the issue in general; performance issue with monitor, please let me know.
    Best regards,
    Jørgen

    Guess note below describes gives more info about situation. However, not with a clear solution :=)
    SAP Note 694895 - Performance and tables RSMON, RSDONE
    Note Language: English Version: 5 Validity: Valid Since 29.11.2005
    Summary
    Symptom
    Tables RSMON* (for example, table RSMONMESS) and tables RS*DONE (for
    example, table RSSELDONE) continuously increase in size in the BW system
    with each request that is created.
    Currently there is no option to reduce these tables.
    Do not delete any entries from these tables. If you did, this would have
    the following consequences:
    When you carry out the next check for the requests for which you have
    deleted records from these tables, the check will not run properly.
    The status of the relevant requests turns RED in the monitor, and also in
    all affected data targets that contain the request.
    The affected request and all subsequent requests are no longer visible in
    the reporting - all queries on the affected data targets then only display
    old data.
    Numerous dumps will occur in various situations.
    You will not be able to repair the errors caused by the deletion.
    More Terms
    RSMONMESS; RSSELDONE; Performance; RSMON; RSDONE;
    Cause and Prerequisites
    This is caused by a program error.
    Solution
    In the next BW release (BI in SAP NetWeaver 2004s - that is BW 7.0), you
    will be able to archive entries from the RSMON* and RS*DONE tables using a
    request archiving process that archives the administrative information for
    requests.
    After archiving, these tables are then considerably reduced in size.
    Until then, there is unfortunately no option for reducing the tables.

  • Urgent : general abap performance issue

    HI floks
    i did some development in new smartform its working fine but i have issue in data base performance is 76% . but i utilize similar below code with various conditions in various 12 places . is it possible to reduce performance this type of code . check it and mail me how can i do it . if possible can suggest me fast .how much % is best for this type of performance issues.
    DATA : BEGIN OF ITVBRPC OCCURS 0,
           LV_POSNR LIKE VBRP-POSNR,
           END OF ITVBRPC.
    DATA : BEGIN OF ITKONVC OCCURS 0,
            LV_KNUMH LIKE KONV-KNUMH,
            LV_KSCHL LIKE KONV-KSCHL,
           END OF ITKONVC.
    DATA:  BEGIN OF ITKONHC OCCURS 0,
           LV_KNUMH LIKE KONH-KNUMH,
           LV_KSCHL LIKE KONH-KSCHL,
           LV_KZUST LIKE KONH-KZUST,
           END OF ITKONHC.
    DATA: BEGIN OF ITKONVC1 OCCURS 0,
           LV_KWERT LIKE KONV-KWERT,
           END OF ITKONVC1.
    DATA :  BEGIN OF ITCALCC OCCURS 0,
           LV_KWERT LIKE KONV-KWERT,
           END OF ITCALCC.
    DATA: COUNTC(3) TYPE n,
           TOTALC LIKE KONV-KWERT.
    SELECT POSNR FROM VBRP INTO ITVBRPC
      WHERE VBELN = INV_HEADER-VBELN AND ARKTX = WA_INVDATA-ARKTX .
    APPEND ITVBRPC.
    ENDSELECT.
    LOOP AT ITVBRPC.
    SELECT KNUMH KSCHL FROM KONV INTO ITKONVC WHERE KNUMV =
    LV_VBRK-KNUMV AND KPOSN = ITVBRPC-LV_POSNR AND KSCHL = 'ZLAC'.
    APPEND ITKONVC.
    ENDSELECT.
    ENDLOOP.
    SORT ITKONVC BY LV_KNUMH.
    DELETE ADJACENT DUPLICATES FROM ITKONVC.
    LOOP AT ITKONVC.
    SELECT KNUMH KSCHL KZUST FROM KONH INTO ITKONHC WHERE KNUMH = ITKONVC-LV_KNUMH AND KSCHL = 'ZLAC' AND KZUST = 'Z02'.
    APPEND ITKONHC.
    ENDSELECT.
    ENDLOOP.
    LOOP AT ITKONHC.
    SELECT KWERT FROM KONV INTO ITKONVC1 WHERE KNUMH = ITKONHC-LV_KNUMH AND
    KSCHL = ITKONHC-LV_KSCHL AND KNUMV = LV_VBRK-KNUMV.
    MOVE ITKONVC1-LV_KWERT TO ITCALCC-LV_KWERT.
    APPEND ITCALCC.
    ENDSELECT.
    endloop.
    LOOP AT ITCALCC.
    COUNTC = COUNTC + 1.
    TOTALC = TOTALC + ITCALCC-LV_KWERT.
      ENDLOOP.
    MOVE ITKONHC-LV_KSCHL TO LV_CKSCHL.
    MOVE TOTALC TO LV_CKWERT.
    it's urgent ..........
    thanks .
    bbbbye
    suresh

    You need to use for all entries instead of select inside the loop.
    Try this:
    DATA : BEGIN OF ITVBRPC OCCURS 0,
    VBELN LIKE VBRP-VBELN,
    LV_POSNR LIKE VBRP-POSNR,
    END OF ITVBRPC.
    DATA: IT_VBRPC_TMP like ITVBRPC occurs 0 with header line.
    DATA : BEGIN OF ITKONVC OCCURS 0,
    LV_KNUMH LIKE KONV-KNUMH,
    LV_KSCHL LIKE KONV-KSCHL,
    END OF ITKONVC.
    DATA: BEGIN OF ITKONHC OCCURS 0,
    LV_KNUMH LIKE KONH-KNUMH,
    LV_KSCHL LIKE KONH-KSCHL,
    LV_KZUST LIKE KONH-KZUST,
    END OF ITKONHC.
    DATA: BEGIN OF ITKONVC1 OCCURS 0,
    KNUMH LIKE KONV-KNUMH,
    KSCHL LIKE KONV- KSCHL,
    LV_KWERT LIKE KONV-KWERT,
    END OF ITKONVC1.
    DATA : BEGIN OF ITCALCC OCCURS 0,
    LV_KWERT LIKE KONV-KWERT,
    END OF ITCALCC.
    DATA: COUNTC(3) TYPE n,
    TOTALC LIKE KONV-KWERT.
    *SELECT POSNR FROM VBRP INTO ITVBRPC
    *WHERE VBELN = INV_HEADER-VBELN AND ARKTX = WA_INVDATA-ARKTX .
    *APPEND ITVBRPC.
    *ENDSELECT.
    SELECT VBELN POSNR FROM VBRP INTO TABLE ITVBRPC
    WHERE VBELN = INV_HEADER-VBELN AND
                     ARKTX = WA_INVDATA-ARKTX .
    If sy-subrc eq 0.
      IT_VBRPC_TMP[] = ITVBRPC[].
      Sort IT_VBRPC_TMP by vbeln posnr.
      Delete adjacent duplicates from IT_VBRPC_TMP comparing vbeln posnr.
    SELECT KNUMH KSCHL FROM KONV
                   INTO TABLE ITKONVC
                   WHERE KNUMV = LV_VBRK-KNUMV AND
                   KPOSN = ITVBRPC-LV_POSNR AND
                    KSCHL = 'ZLAC'.
    if sy-subrc eq 0.
       SORT ITKONVC BY LV_KNUMH.
        DELETE ADJACENT DUPLICATES FROM ITKONVC COMPARING LV_KNUMH.
       SELECT KNUMH KSCHL KZUST FROM KONH
                 INTO TABLE ITKONHC
                 WHERE KNUMH =  ITKONVC-LV_KNUMH AND
                               KSCHL = 'ZLAC' AND
                               KZUST = 'Z02'.
       if sy-subrc eq 0.
    SELECT KNUMH KSCHL KWERT FROM KONV
                   INTO TABLE ITKONVC1
                    WHERE KNUMH = ITKONHC-LV_KNUMH AND
                                   KSCHL = ITKONHC-LV_KSCHL AND
                                    KNUMV = LV_VBRK-KNUMV.
        Endif.
    Endif.
    Endif.
    *LOOP AT ITVBRPC.
    *SELECT KNUMH KSCHL FROM KONV INTO ITKONVC WHERE KNUMV =
    *LV_VBRK-KNUMV AND KPOSN = ITVBRPC-LV_POSNR AND KSCHL = 'ZLAC'.
    *APPEND ITKONVC.
    *ENDSELECT.
    *ENDLOOP.
    *SORT ITKONVC BY LV_KNUMH.
    *DELETE ADJACENT DUPLICATES FROM ITKONVC.
    *LOOP AT ITKONVC.
    SELECT KNUMH KSCHL KZUST FROM KONH INTO ITKONHC WHERE KNUMH = ITKONVC-LV_KNUMH AND KSCHL = 'ZLAC' AND KZUST = 'Z02'.
    *APPEND ITKONHC.
    *ENDSELECT.
    *ENDLOOP.
    *LOOP AT ITKONHC.
    *SELECT KWERT FROM KONV INTO ITKONVC1 WHERE KNUMH = ITKONHC-LV_KNUMH *AND
    *KSCHL = ITKONHC-LV_KSCHL AND KNUMV = LV_VBRK-KNUMV.
    *MOVE ITKONVC1-LV_KWERT TO ITCALCC-LV_KWERT.
    *APPEND ITCALCC.
    *ENDSELECT.
    *endloop.
    LOOP AT ITCALCC.
    COUNTC = COUNTC + 1.
    TOTALC = TOTALC + ITCALCC-LV_KWERT.
    ENDLOOP.
    MOVE ITKONHC-LV_KSCHL TO LV_CKSCHL.
    MOVE TOTALC TO LV_CKWERT.

  • Performance issues

    Hi,
    The program(developed by someother person) which was given to me is having performance issue. Its giving RUNTIME ERROR 'TIME LIMIT EXCEEDED'. Can u please suggest me in what way i can improve the performance of the program.
    please help me in resolving this.
    Helpful answers will be rewarded.
    TABLES : MARA, "General Material Data
    MARC, "Plant Data for Material
    VBAP, "Sales Document: Item Data
    MARD, "Storage Location Data for Material
    MAST, "Material to BOM Link
    MKPF, "Header: Material Document
    MSEG, "Document Segment: Material
    PKHD, "Control Cycle
    PKPS, "Control Cycle Item / Kanban
    PVBE, "Supply area
    ZTGRP, "Wabco Technology Group table
    ZZC10. "Kanban status table
    I N T E R N A L T A B L E D E C L A R A T I O N *
    INTERNAL TABLE FOR TECH.GROUP AND PLANT
    DATA: BEGIN OF IT_MARC_ZTGRP OCCURS 0,
    MATNR LIKE MARC-MATNR,
    WERKS LIKE MARC-WERKS,
    ZZPTG LIKE ZTGRP-ZZPTG,
    ZZPTD LIKE ZTGRP-ZZPTD,
    END OF IT_MARC_ZTGRP.
    INTERNAL TABLE FOR RETURN VALUES
    DATA IT_RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE.
    INTERNAL TABLE FOR SUBASSEMBLY AND FINISHED GOOD
    DATA: BEGIN OF IT_MATERIAL OCCURS 0,
    IDNRK LIKE STPO-IDNRK,
    MATNR LIKE MAST-MATNR,
    END OF IT_MATERIAL.
    INTERNAL TABLE FOR OUTPUT YESTERDAY
    DATA: BEGIN OF IT_KBED_KAKO OCCURS 0,
    KBEAREST LIKE KBED-KBEAREST,
    KRUEREST LIKE KBED-KRUEREST,
    KEINH LIKE KBED-KEINH,
    END OF IT_KBED_KAKO.
    INTERNAL TABLE FOR MATERIAL AND PLANT
    DATA: BEGIN OF IT_PLANT OCCURS 0,
    MATNR LIKE MARC-MATNR,
    WERKS LIKE MARC-WERKS,
    END OF IT_PLANT.
    DATA: BEGIN OF IT_COBK OCCURS 0,
    RUECK LIKE COBK-REFBN,
    END OF IT_COBK.
    DATA: BEGIN OF IT_COEPL OCCURS 0,
    KOKRS LIKE COEPL-KOKRS,
    BELNR LIKE COEPL-BELNR,
    END OF IT_COEPL.
    DATA: BEGIN OF IT_CAPACITIES OCCURS 0,
    LSBBTR LIKE COEPL-LSBBTR,
    MEINB LIKE COEPL-MEINB,
    END OF IT_CAPACITIES.
    DATA: BEGIN OF IT_MKPF_MSEG OCCURS 0,
    MBLNR LIKE MKPF-MBLNR,
    MJAHR LIKE MKPF-MJAHR,
    BUDAT LIKE MKPF-BUDAT,
    BWART LIKE MSEG-BWART,
    MATNR LIKE MSEG-MATNR,
    MENGE LIKE MSEG-MENGE,
    MEINS LIKE MSEG-MEINS,
    DMBTR LIKE MSEG-DMBTR,
    WERKS LIKE MSEG-WERKS,
    END OF IT_MKPF_MSEG.
    INTERNAL TABLE FOR MATERIAL-TO-BOM LINK
    DATA: IT_MAST LIKE MAST OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR MATERIAL
    DATA: BEGIN OF IT_MAT OCCURS 0,
    MATNR LIKE MARA-MATNR,
    END OF IT_MAT.
    INTERNAL TABLE FOR STORAGE LOCATION DATA FOR SUBASSEMBLY
    DATA: BEGIN OF IT_MARD OCCURS 0,
    LABST LIKE MARD-LABST,
    END OF IT_MARD.
    INTERNAL TABLE FOR PLANT FOR MATERIALS
    DATA IT_MARC LIKE MARC OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR BOM ITEM DATA
    DATA: IT_STPO LIKE STPO OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR KANBAN STATUS DATA
    DATA IT_ZZC10 LIKE ZZC10 OCCURS 0 WITH HEADER LINE.
    TEMPORARY INTERNAL TABLE FOR KANBAN STATUS DATA
    DATA IT_ZZC10_TEMP LIKE ZZC10 OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR CONTROL CYCLE
    DATA IT_PKHD LIKE PKHD OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR CONTROL CYCLE ITEM
    DATA IT_PKPS LIKE PKPS OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR MATERIAL DOCUMENT HEADER
    DATA IT_MKPF LIKE MKPF OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR MATERIAL DOCUMENT ITEM
    DATA IT_MSEG LIKE MSEG OCCURS 0 WITH HEADER LINE.
    TEMPORARY INTERNAL TABLE FOR ACTUAL QUANTITY
    DATA : BEGIN OF IT_TEMP OCCURS 0,
    TECH LIKE ZTGRP-ZZPTD,
    MATNR LIKE ZZC10-MATNR,
    FINISHED LIKE MAST-MATNR,
    PKNUM LIKE PKHD-PKNUM,
    WERKS LIKE ZZC10-WERKS,
    GSMNG LIKE PLAF-GSMNG,
    MEINS LIKE PLAF-MEINS,
    BEHAZ LIKE PKHD-BEHAZ,
    BEHMG LIKE PKHD-BEHMG,
    PKBMG LIKE ZZC10-PKBMG,
    LATEHOURS LIKE PKHD-KWBZM,
    FILLRATE TYPE P DECIMALS 2,
    REPL_LEAD_TIME TYPE P DECIMALS 3,
    QTY_1 LIKE PLAF-GSMNG,
    QTY_2 LIKE PLAF-GSMNG,
    QTY_3 LIKE PLAF-GSMNG,
    QTY_4 LIKE PLAF-GSMNG,
    QTY_5 LIKE PLAF-GSMNG,
    QTY_6 LIKE PLAF-GSMNG,
    GSMNG_OUTY LIKE PLAF-GSMNG,
    MEINS_OUTY LIKE PLAF-MEINS,
    KAPBD_OUTY LIKE COEPL-LSTBTR,
    KEINH_OUTY LIKE COEPL-MEINH,
    GSMNG_OUTM LIKE MSEG-MENGE,
    MEINS_OUTM LIKE MSEG-MEINS,
    KAPBD_OUTM LIKE COEPL-LSTBTR,
    KEINH_OUTM LIKE COEPL-MEINH,
    GSMNG_BORD LIKE PLAF-GSMNG,
    MEINS_BORD LIKE MSEG-MEINS,
    KAPBD_BORD LIKE KBED-KBEAREST,
    KEINH_BORD LIKE COEPL-MEINH,
    GSMNG_TDAY LIKE PLAF-GSMNG,
    KAPBD_TDAY LIKE KBED-KBEAREST,
    GSMNG_DAY1 LIKE PLAF-GSMNG,
    KAPBD_DAY1 LIKE KBED-KBEAREST,
    GSMNG_DAY2 LIKE PLAF-GSMNG,
    KAPBD_DAY2 LIKE KBED-KBEAREST,
    GSMNG_DAY3 LIKE PLAF-GSMNG,
    KAPBD_DAY3 LIKE KBED-KBEAREST,
    GSMNG_DAY4 LIKE PLAF-GSMNG,
    KAPBD_DAY4 LIKE KBED-KBEAREST,
    GSMNG_DAY5 LIKE PLAF-GSMNG,
    KAPBD_DAY5 LIKE KBED-KBEAREST,
    STOCK_PO01 LIKE MARD-LABST,
    F_GSMNG_BORD LIKE PLAF-GSMNG,
    F_MEINS_BORD LIKE MSEG-MEINS,
    F_KAPBD_BORD LIKE KBED-KBEAREST,
    F_KEINH_BORD LIKE COEPL-MEINH,
    F_GSMNG_TDAY LIKE PLAF-GSMNG,
    F_MEINS_TDAY LIKE MSEG-MEINS,
    F_KAPBD_TDAY LIKE KBED-KBEAREST,
    F_KEINH_TDAY LIKE COEPL-MEINH,
    F_GSMNG_DAY1 LIKE PLAF-GSMNG,
    F_MEINS_DAY1 LIKE MSEG-MEINS,
    F_KAPBD_DAY1 LIKE KBED-KBEAREST,
    F_KEINH_DAY1 LIKE COEPL-MEINH,
    F_GSMNG_DAY2 LIKE PLAF-GSMNG,
    F_MEINS_DAY2 LIKE MSEG-MEINS,
    F_KAPBD_DAY2 LIKE KBED-KBEAREST,
    F_KEINH_DAY2 LIKE COEPL-MEINH,
    F_GSMNG_DAY3 LIKE PLAF-GSMNG,
    F_MEINS_DAY3 LIKE MSEG-MEINS,
    F_KAPBD_DAY3 LIKE KBED-KBEAREST,
    F_KEINH_DAY3 LIKE COEPL-MEINH,
    F_GSMNG_DAY4 LIKE PLAF-GSMNG,
    F_MEINS_DAY4 LIKE MSEG-MEINS,
    F_KAPBD_DAY4 LIKE KBED-KBEAREST,
    F_KEINH_DAY4 LIKE COEPL-MEINH,
    F_GSMNG_DAY5 LIKE PLAF-GSMNG,
    F_MEINS_DAY5 LIKE MSEG-MEINS,
    F_KAPBD_DAY5 LIKE KBED-KBEAREST,
    F_KEINH_DAY5 LIKE COEPL-MEINH,
    F_GSMNG_OUTM LIKE MSEG-MENGE,
    F_MEINS_OUTM LIKE MSEG-MEINS,
    F_KAPBD_OUTM LIKE COEPL-LSTBTR,
    F_KEINH_OUTM LIKE COEPL-MEINH,
    F_GSMNG_OUTN LIKE MSEG-MENGE,
    F_MEINS_OUTN LIKE MSEG-MEINS,
    F_KAPBD_OUTN LIKE KBED-KBEAREST,
    F_KEINH_OUTN LIKE COEPL-MEINH,
    END OF IT_TEMP.
    INTERNAL TABLE FOR PLANNED DATA
    DATA IT_PLAF LIKE PLAF OCCURS 0 WITH HEADER LINE.
    INTERNAL TABLE FOR FACTORY CALENDER AND CURRENCY
    DATA: BEGIN OF IT_T001W OCCURS 0,
    WERKS LIKE T001W-WERKS,
    BWKEY LIKE T001W-BWKEY,
    FABKL LIKE T001W-FABKL,
    END OF IT_T001W.
    V A R I A B L E S *
    DATA: AUX_BORD LIKE SY-DATUM,
    AUX_YDAY LIKE SY-DATUM,
    AUX_TDAY LIKE SY-DATUM,
    AUX_DAY1 LIKE SY-DATUM,
    AUX_DAY2 LIKE SY-DATUM,
    AUX_DAY3 LIKE SY-DATUM,
    AUX_DAY4 LIKE SY-DATUM,
    AUX_DAY5 LIKE SY-DATUM,
    AUX_CURRENT LIKE SY-DATUM,
    AUX_PREVIOUS LIKE SY-DATUM,
    AUX_TECH LIKE ZTGRP-ZZPTD,
    AUX_BUDAT LIKE MKPF-BUDAT,
    AUX_LOW LIKE MKPF-BUDAT,
    AUX_HIGH LIKE MKPF-BUDAT,
    AUX_MNG LIKE MSEG-MENGE,
    AUX_MENGE LIKE MSEG-MENGE,
    AUX_QUANT LIKE PLAF-GSMNG,
    AUX_SUM_UNIT LIKE UMADD-MSEHI,
    AUX_TIMESTAMP1 LIKE CCUPEAKA-TIMESTAMP,
    AUX_TIMESTAMP2 LIKE CCUPEAKA-TIMESTAMP,
    AUX_BUKRS LIKE T001K-BUKRS,
    AUX_BWKEY LIKE T001W-BWKEY,
    AUX_GSMNG LIKE PLAF-GSMNG,
    AUX_PKBMG LIKE ZZC10-PKBMG,
    AUX_FILL LIKE ZZC10-PKBMG,
    AUX_TOTAL LIKE ZZC10-PKBMG,
    AUX_FABKL LIKE SCAL-FCALID,
    AUX_WAERS LIKE MSEG-WAERS,
    AUX_ZZC10_HR TYPE P DECIMALS 3,
    AUX_PLAF_HR TYPE P DECIMALS 3,
    AUX_KAPBD_OUTY TYPE P DECIMALS 3,
    AUX_KAPBD_OUTM TYPE P DECIMALS 3,
    AUX_KAPBD_BORD TYPE P DECIMALS 3,
    AUX_F_KAPBD_BORD TYPE P DECIMALS 3,
    AUX_F_KAPBD_TDAY TYPE P DECIMALS 3,
    AUX_F_KAPBD_DAY1 TYPE P DECIMALS 3,
    AUX_F_KAPBD_DAY2 TYPE P DECIMALS 3,
    AUX_F_KAPBD_DAY3 TYPE P DECIMALS 3,
    AUX_F_KAPBD_DAY4 TYPE P DECIMALS 3,
    AUX_F_KAPBD_DAY5 TYPE P DECIMALS 3,
    AUX_F_KAPBD_OUTM TYPE P DECIMALS 3,
    AUX_F_KAPBD_OUTN TYPE P DECIMALS 3,
    AUX_PKHD_TIME TYPE P DECIMALS 3,
    AUX_LATEHOURS TYPE P DECIMALS 3,
    AUX_DIFF TYPE I,
    AUX_FLAG TYPE C,
    AUX_SET TYPE C,
    AUX_DATUMABSOLUT(5) TYPE P,
    AUX_FDAY LIKE SY-DATUM,
    AUX_DAYS LIKE PKHD-KWBZD,
    AUX_HOURS LIKE IT_ZZC10-TIME_EMPTY,
    AUX_TIME LIKE PKHD-KWBZM,
    AUX_PKHD_DAYS LIKE PKHD-KWBZD,
    AUX_PKHD_HOURS LIKE PKHD-KWBZM,
    AUX_TMP_DAYS LIKE PKHD-KWBZM VALUE 24,
    AUX_TMP_HRS LIKE PKHD-KWBZM,
    AUX_FILL_DAYS LIKE PKHD-KWBZD,
    AUX_FILL_HOURS LIKE AUX_HOURS,
    AUX_FILL_TIME LIKE PKHD-KWBZM,
    AUX_TOTAL_QTY LIKE PKHD-BEHMG,
    AUX_RATID LIKE PLAF-RATID,
    AUX_MATNR LIKE PLAF-MATNR,
    AUX_HEADER LIKE MARA-MATNR,
    AUX_ZZPTG LIKE MARC-ZZPTG,
    AUX_PEDTR LIKE PLAF-PEDTR,
    AUX_KRUEREST LIKE KBED-KRUEREST,
    AUX_KBEAREST LIKE KBED-KBEAREST,
    AUX_KRUEREST_T LIKE KBED-KRUEREST,
    AUX_KBEAREST_T LIKE KBED-KBEAREST,
    AUX_KEINH LIKE KBED-KEINH,
    AUX_KAPBD LIKE KBED-KBEAREST,
    AUX_ARBPL LIKE MKAL-MDV01,
    AUX_ARBID LIKE CRHD-OBJID,
    AUX_QUALF LIKE CRHD-QUALF,
    AUX_SAT1800 LIKE SY-UZEIT VALUE '180000'.
    S E L E C T I O N S C R E E N *
    INPUT SELECTION
    SELECTION-SCREEN : BEGIN OF BLOCK BL0 WITH FRAME TITLE TEXT-000.
    SELECT-OPTIONS : SO_PRVBE FOR PVBE-PRVBE,
    SO_MATNR FOR MARA-MATNR,
    SO_ZZPTG FOR MARC-ZZPTG OBLIGATORY,
    SO_WERKS FOR MARC-WERKS OBLIGATORY,
    SO_BUDAT FOR MKPF-BUDAT OBLIGATORY.
    SELECTION-SCREEN : END OF BLOCK BL0.
    I N I T I A L I Z A T I O N *
    INITIALIZATION.
    MOVE SY-DATUM TO AUX_CURRENT.
    AUX_PREVIOUS = AUX_CURRENT - 1.
    MOVE SY-DATUM TO SO_BUDAT-LOW.
    MOVE '01' TO SO_BUDAT-LOW+6(2).
    APPEND SO_BUDAT.
    AUX_PREVIOUS = AUX_CURRENT - 1.
    A T S E L E C T I O N - S C R E E N *
    AT SELECTION-SCREEN.
    CHECK ON SELECTION SCREEN
    PERFORM CHECK_ON_SELECTION.
    S T A R T O F S E L E C T I O N *
    START-OF-SELECTION.
    CHECK IF BOM EXISTS FOR THE COMPONENTS
    PERFORM CHECK_BOM_EXISTENCE.
    GET FINISHED PRODUCT NUMBER FOR THE SUBASSEMBLIES
    IF NOT IT_MARC_ZTGRP[] IS INITIAL.
    LOOP AT IT_MARC_ZTGRP.
    PERFORM GET_HEADER_MATERIAL USING IT_MARC_ZTGRP-MATNR.
    IF NOT IT_MAT[] IS INITIAL.
    PERFORM GET_FINISHED_GOOD TABLES IT_MAT.
    ENDIF.
    CLEAR IT_MARC_ZTGRP.
    ENDLOOP.
    ELSE.
    MESSAGE S010 WITH 'No data present for given selection'.
    ENDIF.
    CHECK IF SALES DATA EXIST FOR THE FINISHED GOOD
    PERFORM CHECK_SALESDATA_EXISTENCE.
    GET CONTROL CYCLE AND KANBAN DATA
    PERFORM GET_KANBAN_DATA.
    GET VALUATION AREA DATA
    PERFORM GET_VALUATION_AREA.
    GET MATERIAL DOCUMENT DATA
    PERFORM GET_MATERIAL_DOC_DATA.
    GET KANBAN DETAILS
    PERFORM GET_KANBAN_DETAILS.
    E N D O F S E L E C T I O N *
    END-OF-SELECTION.
    IF NOT IT_TEMP[] IS INITIAL.
    DISPLAY OUTPUT
    PERFORM DISPLAY_OUTPUT.
    ENDIF.
    *& Form CHECK_ON_SELECTION
    text
    --> p1 text
    <-- p2 text
    FORM CHECK_ON_SELECTION .
    CHECK IF ENTERED PLANT IS VALID
    IF NOT SO_WERKS-LOW IS INITIAL AND SO_WERKS-HIGH IS INITIAL.
    SELECT SINGLE * FROM MARC WHERE WERKS EQ SO_WERKS-LOW.
    IF SY-SUBRC NE 0.
    SET CURSOR FIELD 'SO_WERKS-LOW'.
    MESSAGE E010 WITH 'Please enter a valid Plant'.
    ENDIF.
    ENDIF.
    CHECK IF SUPPLY AREA AND PLANT IS VALID
    IF NOT SO_PRVBE-LOW IS INITIAL AND SO_PRVBE-HIGH IS INITIAL.
    IF NOT SO_WERKS IS INITIAL AND SO_WERKS-HIGH IS INITIAL.
    SELECT SINGLE * FROM PVBE WHERE WERKS EQ SO_WERKS-LOW
    AND PRVBE EQ SO_PRVBE-LOW.
    IF SY-SUBRC NE 0.
    SET CURSOR FIELD 'SO_PRVBE-LOW'.
    MESSAGE E010 WITH 'Supply Area' SO_PRVBE-LOW 'donot belong to'
    SO_WERKS-LOW.
    ENDIF.
    ENDIF.
    ENDIF.
    CHECK IF ENTERED MATERIAL NUMBER IS VALID
    IF NOT SO_MATNR-LOW IS INITIAL AND SO_MATNR-HIGH IS INITIAL.
    SELECT SINGLE * FROM MARA WHERE MATNR EQ SO_MATNR-LOW.
    IF SY-SUBRC NE 0.
    SET CURSOR FIELD 'SO_MATNR-LOW'.
    MESSAGE E010 WITH 'Please enter a valid Material Number'.
    ELSE.
    IF NOT SO_WERKS-LOW IS INITIAL AND SO_WERKS-HIGH IS INITIAL.
    SELECT SINGLE * FROM MARC WHERE MATNR EQ SO_MATNR-LOW
    AND WERKS EQ SO_WERKS-LOW.
    IF SY-SUBRC NE 0.
    SET CURSOR FIELD 'SO_MATNR-LOW'.
    MESSAGE E010 WITH 'Material' SO_MATNR-LOW
    'doesnot belong to plant' SO_WERKS-LOW.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDIF.
    CHECK IF TECHNOLOGY GROUP AND PLANT IS VALID
    IF NOT SO_ZZPTG-LOW IS INITIAL AND SO_ZZPTG-HIGH IS INITIAL.
    IF NOT SO_WERKS-LOW IS INITIAL AND SO_WERKS-HIGH IS INITIAL.
    SELECT SINGLE * FROM MARC WHERE WERKS EQ SO_WERKS-LOW
    AND ZZPTG EQ SO_ZZPTG-LOW.
    IF SY-SUBRC NE 0.
    SET CURSOR FIELD 'SO_ZZPTG-LOW'.
    MESSAGE E010 WITH 'Tech.Group' SO_ZZPTG-LOW 'doesnot belong to plant'
    SO_WERKS-LOW.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM. " CHECK_ON_SELECTION
    *& Form CHECK_BOM_EXISTENCE
    text
    --> p1 text
    <-- p2 text
    FORM CHECK_BOM_EXISTENCE .
    JOIN MARC AND ZTGRP TABLES TO GET THE COMPONENTS BASED ON THE INPUT
    CRITERIA
    REFRESH IT_MARC_ZTGRP.
    SELECT MARCMATNR MARCWERKS ZTGRPZZPTG ZTGRPZZPTD
    INTO TABLE IT_MARC_ZTGRP
    FROM MARC INNER JOIN ZTGRP
    ON MARCWERKS EQ ZTGRPWERKS AND
    MARCZZPTG EQ ZTGRPZZPTG
    WHERE MARC~WERKS IN SO_WERKS
    AND MARC~ZZPTG IN SO_ZZPTG
    AND MARC~MATNR IN SO_MATNR
    AND MARC~LVORM NE 'X'
    AND ( MARC~BESKZ EQ 'E' OR
    MARC~BESKZ EQ 'X' ).
    IF NOT IT_MARC_ZTGRP[] IS INITIAL.
    CHECK THE EXISTENCE OF BOM FOR THE SELECTED COMPONENTS.
    IF NOT PRESENT, DELETE THE ENTRY FROM INTERNAL TABLE
    LOOP AT IT_MARC_ZTGRP.
    REFRESH IT_RETURN.
    CALL FUNCTION 'BAPI_MAT_BOM_EXISTENCE_CHECK'
    EXPORTING
    MATERIAL = IT_MARC_ZTGRP-MATNR
    PLANT = IT_MARC_ZTGRP-WERKS
    BOMUSAGE = '1'
    TABLES
    RETURN = IT_RETURN.
    IF NOT IT_RETURN[] IS INITIAL.
    DELETE IT_MARC_ZTGRP WHERE MATNR EQ IT_MARC_ZTGRP-MATNR
    AND WERKS EQ IT_MARC_ZTGRP-WERKS
    AND ZZPTG EQ IT_MARC_ZTGRP-ZZPTG.
    ENDIF.
    CLEAR IT_MARC_ZTGRP.
    ENDLOOP.
    ELSE.
    MESSAGE S010 WITH 'No data present for given selection'.
    ENDIF.
    ENDFORM. " CHECK_BOM_EXISTENCE
    *& Form GET_HEADER_MATERIAL
    text
    -->P_IT_MARC_ZTGRP_MATNR text
    FORM GET_HEADER_MATERIAL USING P_MATNR.
    REFRESH IT_STPO.
    GET BOM ITEM DATA FOR THE COMPONENT
    SELECT * FROM STPO INTO TABLE IT_STPO WHERE IDNRK EQ P_MATNR
    AND DATUV LE SO_BUDAT-LOW
    AND LKENZ NE 'X'.
    IF NOT IT_STPO[] IS INITIAL.
    IF BOM ITEM DATA IS PRESENT FOR THE COMPONENT
    REFRESH IT_MAST.
    GET MATERIAL TO BOM LINK
    SELECT * FROM MAST INTO TABLE IT_MAST FOR ALL ENTRIES IN IT_STPO
    WHERE STLNR EQ IT_STPO-STLNR.
    IF NOT IT_MAST[] IS INITIAL.
    SORT IT_MAST BY MATNR.
    DELETE ADJACENT DUPLICATES FROM IT_MAST COMPARING MATNR.
    LOOP AT IT_MAST.
    CLEAR AUX_SET.
    REFRESH IT_PLANT.
    GET ALL THE PLANTS FOR THE COMPONENT
    SELECT MATNR WERKS FROM MARC INTO TABLE IT_PLANT
    WHERE MATNR EQ IT_MAST-MATNR.
    LOOP AT IT_PLANT.
    REFRESH IT_RETURN.
    CHECK FOR BOM EXISTENCE FOR MATERIAL IN ALL PLANTS
    CALL FUNCTION 'BAPI_MAT_BOM_EXISTENCE_CHECK'
    EXPORTING
    MATERIAL = IT_MAST-MATNR
    PLANT = IT_PLANT-WERKS
    BOMUSAGE = '1'
    TABLES
    RETURN = IT_RETURN.
    IF IT_RETURN[] IS INITIAL.
    MOVE 'X' TO AUX_SET.
    ENDIF.
    CLEAR IT_PLANT.
    ENDLOOP.
    IF BOM EXISTS FOR THE COMPONENT IN ANY PLANT, MOVE THE COMPONENT
    TO INTERNAL TABLE IT_MAT
    IF AUX_SET EQ 'X'.
    MOVE IT_MAST-MATNR TO IT_MAT-MATNR.
    APPEND IT_MAT.
    CLEAR IT_MAT.
    ELSE.
    IF BOM DOESNOT EXISTS FOR THE COMPONENT IN ALL PLANTS,
    SELECT THE COMPONENT AS THE FINISHED PRODUCT
    CLEAR MARA.
    SELECT SINGLE * FROM MARA WHERE MATNR EQ IT_MAST-MATNR.
    IF SY-SUBRC EQ 0 AND MARA-LVORM NE 'X'.
    MOVE: IT_MARC_ZTGRP-MATNR TO IT_MATERIAL-IDNRK,
    IT_MAST-MATNR TO IT_MATERIAL-MATNR.
    APPEND IT_MATERIAL.
    CLEAR IT_MATERIAL.
    ENDIF.
    ENDIF.
    CLEAR IT_MAST.
    ENDLOOP.
    ENDIF.
    ELSE.
    IF BOM ITEM DATA DOESNOT PRESENT FOR THE COMPONENT,
    CONSIDER THE COMPONENT AS FINISHED PRODUCT
    CLEAR MARA.
    SELECT SINGLE * FROM MARA WHERE MATNR EQ P_MATNR.
    IF SY-SUBRC EQ 0 AND MARA-LVORM NE 'X'.
    MOVE: IT_MARC_ZTGRP-MATNR TO IT_MATERIAL-IDNRK,
    P_MATNR TO IT_MATERIAL-MATNR.
    APPEND IT_MATERIAL.
    CLEAR IT_MATERIAL.
    ENDIF.
    ENDIF.
    ENDFORM. " GET_HEADER_MATERIAL
    *& Form GET_FINISHED_GOOD
    text
    -->P_IT_MAT text
    FORM GET_FINISHED_GOOD TABLES P_IT_MAT LIKE IT_MAT[].
    LOOP AT P_IT_MAT.
    PERFORM GET_HEADER_MATERIAL USING P_IT_MAT-MATNR.
    DELETE P_IT_MAT INDEX 1.
    CLEAR P_IT_MAT.
    ENDLOOP.
    ENDFORM. " GET_FINISHED_GOOD
    *& Form CHECK_SALESDATA_EXISTENCE
    text
    --> p1 text
    <-- p2 text
    FORM CHECK_SALESDATA_EXISTENCE .
    IF NOT IT_MATERIAL[] IS INITIAL.
    LOOP AT IT_MATERIAL.
    CLEAR VBAP.
    SELECT SINGLE * FROM VBAP WHERE MATNR EQ IT_MATERIAL-MATNR.
    IF SY-SUBRC NE 0.
    DELETE IT_MATERIAL WHERE IDNRK EQ IT_MATERIAL-IDNRK
    AND MATNR EQ IT_MATERIAL-MATNR.
    ENDIF.
    CLEAR IT_MATERIAL.
    ENDLOOP.
    ENDIF.
    ENDFORM. " CHECK_SALESDATA_EXISTENCE
    *& Form GET_KANBAN_DATA
    text
    --> p1 text
    <-- p2 text
    FORM GET_KANBAN_DATA.
    SORT IT_MATERIAL BY IDNRK MATNR.
    DELETE ADJACENT DUPLICATES FROM IT_MATERIAL COMPARING ALL FIELDS.
    IF NOT IT_MATERIAL[] IS INITIAL.
    GET CONTROL CYCLE HEADER DATA
    SELECT * FROM PKHD INTO TABLE IT_PKHD
    FOR ALL ENTRIES IN IT_MATERIAL
    WHERE WERKS IN SO_WERKS
    AND MATNR EQ IT_MATERIAL-IDNRK
    AND PRVBE IN SO_PRVBE.
    IF NOT IT_PKHD[] IS INITIAL.
    GET CONTROL CYCLE ITEM DATA
    SELECT * FROM PKPS INTO TABLE IT_PKPS
    FOR ALL ENTRIES IN IT_PKHD
    WHERE PKNUM EQ IT_PKHD-PKNUM.
    IF NOT IT_PKPS[] IS INITIAL.
    GET KANBAN STATUS DATA
    SELECT * FROM ZZC10 INTO TABLE IT_ZZC10_TEMP
    FOR ALL ENTRIES IN IT_PKPS
    WHERE PKKEY EQ IT_PKPS-PKKEY
    AND PKNUM EQ IT_PKPS-PKNUM
    AND ZDATE BETWEEN SO_BUDAT-LOW AND SY-DATUM
    AND STATUS EQ '5'.
    ENDIF.
    ENDIF.
    ENDIF.
    ENDFORM. " GET_KANBAN_DATA
    *& Form GET_VALUATION_AREA
    text
    --> p1 text
    <-- p2 text
    FORM GET_VALUATION_AREA.
    IF NOT IT_MARC_ZTGRP[] IS INITIAL.
    SELECT WERKS BWKEY FABKL FROM T001W INTO TABLE IT_T001W
    FOR ALL ENTRIES IN IT_MARC_ZTGRP
    WHERE WERKS EQ IT_MARC_ZTGRP-WERKS.
    ENDIF.
    ENDFORM. " GET_VALUATION_AREA
    *& Form GET_MATERIAL_DOC_DATA
    text
    --> p1 text
    <-- p2 text
    FORM GET_MATERIAL_DOC_DATA.
    GET MATERIAL DOCUMENT HEADER DATA
    SELECT * FROM MKPF INTO TABLE IT_MKPF
    WHERE BUDAT IN SO_BUDAT.
    IF NOT IT_MKPF[] IS INITIAL.
    GET MATERIAL DOCUMENT ITEM DATA
    SELECT * FROM MSEG INTO TABLE IT_MSEG
    FOR ALL ENTRIES IN IT_MKPF
    WHERE MBLNR EQ IT_MKPF-MBLNR
    AND WERKS IN SO_WERKS
    AND MJAHR EQ SY-DATUM+0(4)
    AND ( BWART EQ '131' OR BWART EQ '132' ).
    IF NOT IT_MATERIAL[] IS INITIAL.
    LOOP AT IT_MSEG.
    READ TABLE IT_MATERIAL WITH KEY IDNRK = IT_MSEG-MATNR.
    IF SY-SUBRC NE 0.
    DELETE IT_MSEG WHERE MATNR EQ IT_MSEG-MATNR.
    ENDIF.
    CLEAR: IT_MATERIAL, IT_MSEG.
    ENDLOOP.
    ENDIF.
    ENDIF.
    ENDFORM. " GET_MATERIAL_DOC_DATA
    *& Form GET_KANBAN_DETAILS
    text
    --> p1 text
    <-- p2 text
    FORM GET_KANBAN_DETAILS .
    SORT IT_PKHD BY PKNUM.
    IF NOT IT_ZZC10_TEMP[] IS INITIAL.
    LOOP AT IT_ZZC10_TEMP.
    CLEAR: AUX_FILL, AUX_PKBMG.
    MOVE IT_ZZC10_TEMP] TO IT_ZZC10[.
    DELETE IT_ZZC10 WHERE MATNR NE IT_ZZC10_TEMP-MATNR
    AND WERKS NE IT_ZZC10_TEMP-WERKS.
    LOOP AT IT_ZZC10.
    CLEAR: AUX_TIMESTAMP1, AUX_TIMESTAMP2, AUX_ZZC10_HR, AUX_DIFF.
    EMPTY DATE GREATER THAN FULL DATE
    IF IT_ZZC10-DATE_EMPTY GT IT_ZZC10-DATE_FULL.
    CONCATENATE IT_ZZC10-DATE_EMPTY IT_ZZC10-TIME_EMPTY
    INTO AUX_TIMESTAMP1.
    CONCATENATE IT_ZZC10-DATE_FULL IT_ZZC10-TIME_FULL
    INTO AUX_TIMESTAMP2.
    CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
    EXPORTING
    TIMESTAMP1 = AUX_TIMESTAMP1
    TIMESTAMP2 = AUX_TIMESTAMP2
    IMPORTING
    DIFFERENCE = AUX_DIFF.
    AUX_ZZC10_HR = AUX_DIFF / 3600.
    FULL DATE GREATER THAN EMPTY DATE
    ELSEIF IT_ZZC10-DATE_FULL GT IT_ZZC10-DATE_EMPTY.
    CONCATENATE IT_ZZC10-DATE_EMPTY IT_ZZC10-TIME_EMPTY
    INTO AUX_TIMESTAMP2.
    CONCATENATE IT_ZZC10-DATE_FULL IT_ZZC10-TIME_FULL
    INTO AUX_TIMESTAMP1.
    CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
    EXPORTING
    TIMESTAMP1 = AUX_TIMESTAMP1
    TIMESTAMP2 = AUX_TIMESTAMP2
    IMPORTING
    DIFFERENCE = AUX_DIFF.
    AUX_ZZC10_HR = AUX_DIFF / 3600.
    FULL DATE EQUAL TO EMPTY DATE
    ELSEIF IT_ZZC10-DATE_FULL EQ IT_ZZC10-DATE_EMPTY.
    EMPTY TIME GREATER THAN FULL TIME
    IF IT_ZZC10-TIME_EMPTY GT IT_ZZC10-TIME_FULL.
    CONCATENATE IT_ZZC10-DATE_EMPTY IT_ZZC10-TIME_EMPTY
    INTO AUX_TIMESTAMP1.
    CONCATENATE IT_ZZC10-DATE_FULL IT_ZZC10-TIME_FULL
    INTO AUX_TIMESTAMP2.
    CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
    EXPORTING
    TIMESTAMP1 = AUX_TIMESTAMP1
    TIMESTAMP2 = AUX_TIMESTAMP2
    IMPORTING
    DIFFERENCE = AUX_DIFF.
    AUX_ZZC10_HR = AUX_DIFF / 3600.
    FULL TIME GREATER THAN EMPTY TIME
    ELSEIF IT_ZZC10-TIME_FULL GT IT_ZZC10-TIME_EMPTY.
    CONCATENATE IT_ZZC10-DATE_EMPTY IT_ZZC10-TIME_EMPTY
    INTO AUX_TIMESTAMP2.
    CONCATENATE IT_ZZC10-DATE_FULL IT_ZZC10-TIME_FULL
    INTO AUX_TIMESTAMP1.
    CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
    EXPORTING
    TIMESTAMP1 = AUX_TIMESTAMP1
    TIMESTAMP2 = AUX_TIMESTAMP2
    IMPORTING
    DIFFERENCE = AUX_DIFF.
    AUX_ZZC10_HR = AUX_DIFF / 3600.
    FULL TIME EQUAL TO EMPTY TIME
    ELSEIF IT_ZZC10-TIME_FULL EQ IT_ZZC10-TIME_EMPTY.
    AUX_ZZC10_HR = 0.
    ENDIF.
    ENDIF.
    READ TABLE IT_PKHD WITH KEY PKNUM = IT_ZZC10-PKNUM
    BINARY SEARCH.
    IF SY-SUBRC EQ 0.
    CLEAR: AUX_TIMESTAMP1, AUX_TIMESTAMP2,
    AUX_PKHD_DAYS, AUX_PKHD_HOURS, AUX_TMP_DAYS,
    AUX_PKHD_TIME.
    AUX_PKHD_DAYS = IT_PKHD-KWBZD.
    AUX_PKHD_HOURS = IT_PKHD-KWBZM.
    IF AUX_PKHD_DAYS NE 0.
    AUX_TMP_DAYS = AUX_PKHD_DAYS * 24.
    AUX_PKHD_TIME = AUX_TMP_DAYS + AUX_PKHD_HOURS.
    ELSE.
    AUX_PKHD_TIME = AUX_PKHD_HOURS.
    ENDIF.
    COMPARE STATUS CHANGE TIME WITH REPLENISHMENT LEAD TIME
    IF AUX_ZZC10_HR GT AUX_PKHD_TIME.
    CLEAR: AUX_LATEHOURS.
    LATE HOURS
    AUX_LATEHOURS = AUX_ZZC10_HR - AUX_PKHD_TIME.
    LATE QUANTITY FOR +1 DAY
    IF AUX_LATEHOURS LE 24.
    IT_TEMP-QTY_1 = IT_TEMP-QTY_1 + IT_ZZC10-PKBMG.
    LATE QUANTITY FOR +2 DAYS
    ELSEIF AUX_LATEHOURS GT 24
    AND AUX_LATEHOURS LE 48.
    IT_TEMP-QTY_2 = IT_TEMP-QTY_2 + IT_ZZC10-PKBMG.
    LATE QUANTITY FOR +3 DAYS
    ELSEIF AUX_LATEHOURS GT 48
    AND AUX_LATEHOURS LE 72.
    IT_TEMP-QTY_3 = IT_TEMP-QTY_3 + IT_ZZC10-PKBMG.
    LATE QUANTITY FOR +4 DAYS
    ELSEIF AUX_LATEHOURS GT 72
    AND AUX_LATEHOURS LE 96.
    IT_TEMP-QTY_4 = IT_TEMP-QTY_4 + IT_ZZC10-PKBMG.
    LATE QUANTITY FOR +5 DAYS
    ELSEIF AUX_LATEHOURS GT 96
    AND AUX_LATEHOURS LE 120.
    IT_TEMP-QTY_5 = IT_TEMP-QTY_5 + IT_ZZC10-PKBMG.
    LATE QUANTITY FOR MORE THAN 5 DAYS
    ELSEIF AUX_LATEHOURS GT 120.
    IT_TEMP-QTY_6 = IT_TEMP-QTY_6 + IT_ZZC10-PKBMG.
    ENDIF.
    TOTAL KANBAN LATE QUANTITIES
    AUX_PKBMG = AUX_PKBMG + IT_ZZC10-PKBMG.
    ELSE.
    AUX_FILL = AUX_FILL + IT_ZZC10-PKBMG.
    CONTINUE.
    ENDIF.
    ENDIF.
    ENDLOOP.
    SUBASSEMBLY PART NUMBER
    IT_TEMP-MATNR = IT_ZZC10-MATNR.
    FINISHED GOOD
    READ TABLE IT_MATERIAL WITH KEY IDNRK = IT_ZZC10-MATNR.
    IT_TEMP-FINISHED = IT_MATERIAL-MATNR.
    TECHNOLOGY GROUP
    READ TABLE IT_MARC_ZTGRP WITH KEY WERKS = IT_ZZC10-WERKS
    MATNR = IT_ZZC10-MATNR.
    IF SY-SUBRC EQ 0.
    MOVE IT_MARC_ZTGRP-ZZPTD TO IT_TEMP-TECH.
    ENDIF.
    NUMBER OF KANBAN CONTAINERS
    IT_TEMP-BEHAZ = IT_PKHD-BEHAZ.
    KANBAN QUANTITY
    IT_TEMP-BEHMG = IT_PKHD-BEHMG.
    LATE HOURS
    AUX_LATEHOURS = AUX_ZZC10_HR - AUX_PKHD_TIME.
    IT_TEMP-LATEHOURS = AUX_LATEHOURS.
    REPLENISHMENT LEAD TIME
    IT_TEMP-REPL_LEAD_TIME = AUX_PKHD_TIME.
    KANBAN LATE QUANTITIES
    IT_TEMP-GSMNG = AUX_PKBMG.
    FILL RATE
    AUX_TOTAL = AUX_PKBMG + AUX_FILL.
    IT_TEMP-FILLRATE = ( AUX_FILL / AUX_TOTAL ) * 100.
    GET STOCK IN PO01
    REFRESH IT_MARD.
    SELECT LABST FROM MARD INTO TABLE IT_MARD
    WHERE MATNR EQ IT_ZZC10-MATNR
    AND WERKS EQ IT_ZZC10-WERKS.
    IF SY-SUBRC EQ 0.
    LOOP AT IT_MARD.
    SUM.
    ENDLOOP.
    MOVE IT_MARD-LABST TO IT_TEMP-STOCK_PO01.
    CLEAR IT_MARD.
    ENDIF.
    GET YESTERDAY'S OUTPUT QUANTITY
    PERFORM GET_YESTERDAY_QTY.
    CUMULATIVE OUTPUT FOR ACTUAL MONTH
    PERFORM GET_CUMULATIVE_OUTPUT.
    GET BACKORDER SUBASSEMBLY DATA
    PERFORM GET_BACKORDER_QTY.
    GET BACKORDER FINISHED GOODS, TODAY, +1, +2, +3, +4, +5
    AND AVERAGE OUPTUT NEEDED DATA
    PERFORM GET_FINISHEDGOODS_DATA.
    GET DATA FOR ACTUAL MONTH DELIVERED
    PERFORM GET_ACTUAL_MONTH_DATA.
    APPEND IT_TEMP.
    CLEAR IT_TEMP.
    DELETE IT_ZZC10_TEMP WHERE MATNR EQ IT_ZZC10_TEMP-MATNR
    AND WERKS EQ IT_ZZC10_TEMP-WERKS.
    CLEAR: IT_ZZC10, IT_ZZC10_TEMP, IT_PKHD.
    ENDLOOP.
    ENDIF.
    ENDFORM. " GET_KANBAN_DETAILS
    *& Form GET_YESTERDAY_QTY
    text
    --> p1 text
    <-- p2 text
    FORM GET_YESTERDAY_QTY .
    CLEAR: AUX_BUKRS, AUX_WAERS.
    READ TABLE IT_T001W WITH KEY WERKS = IT_PKHD-WERKS.
    IF SY-SUBRC EQ 0.
    CLEAR AUX_FABKL.
    MOVE IT_T001W-FABKL TO AUX_FABKL.
    SELECT SINGLE BUKRS INTO AUX_BUKRS FROM T001K
    WHERE BWKEY = IT_T001W-BWKEY.
    IF SY-SUBRC EQ 0.
    SELECT SINGLE WAERS INTO AUX_WAERS FROM T001
    WHERE BUKRS = AUX_BUKRS.
    ENDIF.
    IF 'WD;WF;WN;WP;WU' CS AUX_FABKL.
    AUX_FABKL(1) = 'P'.
    ENDIF.
    MOVE SY-DATUM TO AUX_DATUMABSOLUT.
    PERFORM WEEKDAY USING AUX_DATUMABSOLUT.
    MOVE 'W' TO AUX_FLAG.
    PERFORM CHECK_WORKING_DAY CHANGING AUX_FLAG.
    IF AUX_DATUMABSOLUT = 0.
    AUX_YDAY = SY-DATUM.
    ELSEIF AUX_DATUMABSOLUT = 1.
    AUX_YDAY = SY-DATUM - 1.
    ELSEIF AUX_FLAG = 'F'.
    AUX_YDAY = SY-DATUM.
    ENDIF.
    IF AUX_DATUMABSOLUT = 0 OR
    AUX_DATUMABSOLUT = 1 OR
    AUX_FLAG = 'F'.
    PERFORM DATE_WITH_OFFSET USING 0 CHANGING AUX_TDAY.
    PERFORM DATE_WITH_OFFSET USING 1 CHANGING AUX_DAY1.
    PERFORM DATE_WITH_OFFSET USING 2 CHANGING AUX_DAY2.
    PERFORM DATE_WITH_OFFSET USING 3 CHANGING AUX_DAY3.
    PERFORM DATE_WITH_OFFSET USING 4 CHANGING AUX_DAY4.
    PERFORM DATE_WITH_OFFSET USING 5 CHANGING AUX_DAY5.
    ELSE.
    PERFORM DATE_WITH_OFFSET USING 0 CHANGING AUX_YDAY.
    PERFORM DATE_WITH_OFFSET USING 1 CHANGING AUX_TDAY.
    PERFORM DATE_WITH_OFFSET USING 2 CHANGING AUX_DAY1.
    PERFORM DATE_WITH_OFFSET USING 3 CHANGING AUX_DAY2.
    PERFORM DATE_WITH_OFFSET USING 4 CHANGING AUX_DAY3.
    PERFORM DATE_WITH_OFFSET USING 5 CHANGING AUX_DAY4.
    PERFORM DATE_WITH_OFFSET USING 6 CHANGING AUX_DAY5.
    ENDIF.
    AUX_BORD = '19000101'.
    GET PLANNED ORDER DATA FOR YESTERDAY
    REFRESH IT_PLAF.
    CLEAR: AUX_KAPBD, AUX_KBEAREST, AUX_KRUEREST, AUX_GSMNG.
    SELECT * FROM PLAF INTO TABLE IT_PLAF
    WHERE MATNR EQ IT_PKHD-MATNR
    AND PLWRK EQ IT_PKHD-WERKS
    AND ( PAART EQ 'KD' OR PAART EQ 'PE' )
    AND RATID GT 0
    AND PEDTR EQ AUX_YDAY.
    IF NOT IT_PLAF[] IS INITIAL.
    LOOP AT IT_PLAF.
    REFRESH IT_KBED_KAKO.
    SELECT KBED~KBEAREST KBED~KRUEREST KBED~KEINH
    FROM KBED INNER JOIN KAKO
    ON KBED~KAPID EQ KAKO~KAPID
    INTO TABLE IT_KBED_KAKO
    WHERE KBED~BEDID = IT_PLAF-RATID
    AND KAKO~KAPAR = '001'.
    IF NOT IT_KBED_KAKO[] IS INITIAL.
    LOOP AT IT_KBED_KAKO.
    IF IT_KBED_KAKO-KEINH NE 'STD'.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KBEAREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KBEAREST.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KRUEREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KRUEREST.
    ENDIF.
    ADD IT_KBED_KAKO-KBEAREST TO AUX_KBEAREST.
    ADD IT_KBED_KAKO-KRUEREST TO AUX_KRUEREST.
    CLEAR IT_KBED_KAKO.
    ENDLOOP.
    AUX_KAPBD = AUX_KBEAREST + AUX_KRUEREST.
    ENDIF.
    CLEAR IT_PLAF.
    ENDLOOP.
    ENDIF.
    READ TABLE IT_KBED_KAKO INDEX 1.
    MOVE: AUX_KAPBD TO IT_TEMP-KAPBD_OUTY,
    IT_KBED_KAKO-KEINH TO IT_TEMP-KEINH_OUTY.
    GET OUTPUT QUANTITY FOR YESTERDAY
    REFRESH: IT_MKPF, IT_MSEG.
    CLEAR: AUX_MENGE.
    SELECT * FROM MKPF INTO TABLE IT_MKPF
    WHERE BUDAT EQ AUX_PREVIOUS.
    IF NOT IT_MKPF[] IS INITIAL.
    GET MATERIAL DOCUMENT ITEM DATA
    SELECT * FROM MSEG INTO TABLE IT_MSEG
    FOR ALL ENTRIES IN IT_MKPF
    WHERE MBLNR EQ IT_MKPF-MBLNR
    AND MATNR IN SO_MATNR
    AND WERKS IN SO_WERKS
    AND MJAHR EQ SY-DATUM+0(4)
    AND ( BWART EQ '131' OR BWART EQ '132' ).
    IF NOT IT_MSEG[] IS INITIAL.
    LOOP AT IT_MSEG.
    AUX_MENGE = AUX_MENGE + IT_MSEG-MENGE.
    CLEAR IT_MSEG.
    ENDLOOP.
    ENDIF.
    ENDIF.
    READ TABLE IT_MSEG INDEX 1.
    MOVE: AUX_MENGE TO IT_TEMP-GSMNG_OUTY,
    IT_MSEG-MEINS TO IT_TEMP-MEINS_OUTY.
    CLEAR IT_T001W.
    ENDIF.
    ENDFORM. " GET_YESTERDAY_QTY
    *& Form GET_BACKORDER_QTY
    text
    --> p1 text
    <-- p2 text
    FORM GET_BACKORDER_QTY .
    GET PLANNED ORDER DATA FOR BACKORDER
    REFRESH IT_PLAF.
    CLEAR: AUX_KAPBD, AUX_KBEAREST, AUX_KRUEREST, AUX_GSMNG, AUX_QUANT.
    SELECT * FROM PLAF INTO TABLE IT_PLAF
    WHERE MATNR EQ IT_ZZC10-MATNR
    AND PLWRK EQ IT_ZZC10-WERKS
    AND ( PAART EQ 'KD' OR PAART EQ 'PE' )
    AND RATID GT 0
    AND PEDTR GE SO_BUDAT-LOW
    AND PEDTR LE SY-DATUM.
    IF NOT IT_PLAF[] IS INITIAL.
    LOOP AT IT_PLAF.
    CLEAR: AUX_TIMESTAMP1, AUX_TIMESTAMP2, AUX_PLAF_HR, AUX_DIFF.
    EMPTY DATE GREATER THAN FULL DATE
    CONCATENATE SY-DATUM SY-UZEIT
    INTO AUX_TIMESTAMP1.
    CONCATENATE IT_PLAF-PEDTR IT_PLAF-PEDTI
    INTO AUX_TIMESTAMP2.
    CALL FUNCTION 'CCU_TIMESTAMP_DIFFERENCE'
    EXPORTING
    TIMESTAMP1 = AUX_TIMESTAMP1
    TIMESTAMP2 = AUX_TIMESTAMP2
    IMPORTING
    DIFFERENCE = AUX_DIFF.
    AUX_PLAF_HR = AUX_DIFF / 3600.
    IF AUX_PLAF_HR > AUX_PKHD_TIME.
    AUX_GSMNG = AUX_GSMNG + IT_PLAF-GSMNG.
    REFRESH IT_KBED_KAKO.
    SELECT KBEDKBEAREST KBEDKRUEREST KBED~KEINH
    FROM KBED INNER JOIN KAKO
    ON KBEDKAPID EQ KAKOKAPID
    INTO TABLE IT_KBED_KAKO
    WHERE KBED~BEDID = IT_PLAF-RATID
    AND KAKO~KAPAR = '001'.
    IF NOT IT_KBED_KAKO[] IS INITIAL.
    LOOP AT IT_KBED_KAKO.
    IF IT_KBED_KAKO-KEINH NE 'STD'.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KBEAREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KBEAREST.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KRUEREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KRUEREST.
    ENDIF.
    AUX_KBEAREST = AUX_KBEAREST + IT_KBED_KAKO-KBEAREST.
    AUX_KRUEREST = AUX_KRUEREST + IT_KBED_KAKO-KRUEREST.
    CLEAR IT_KBED_KAKO.
    ENDLOOP.
    AUX_KAPBD = AUX_KBEAREST + AUX_KRUEREST.
    ENDIF.
    ENDIF.
    ENDLOOP.
    READ TABLE IT_PLAF INDEX 1.
    MOVE: AUX_GSMNG TO IT_TEMP-GSMNG_BORD,
    IT_PLAF-MEINS TO IT_TEMP-MEINS_BORD.
    READ TABLE IT_KBED_KAKO INDEX 1.
    MOVE: AUX_KAPBD TO IT_TEMP-KAPBD_BORD,
    IT_KBED_KAKO-KEINH TO IT_TEMP-KEINH_BORD.
    ENDIF.
    ENDFORM. " GET_BACKORDER_QTY
    *& Form WEEKDAY
    text
    -->P_AUX_DATUMABSOLUT text
    FORM WEEKDAY USING P_DATUMABSOLUT.
    P_DATUMABSOLUT = P_DATUMABSOLUT MOD 7.
    ENDFORM. " WEEKDAY
    *& Form CHECK_WORKING_DAY
    text
    <--P_AUX_FLAG text
    FORM CHECK_WORKING_DAY CHANGING P_FLAG.
    CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
    EXPORTING
    DATE = SY-DATUM
    FACTORY_CALENDAR_ID = AUX_FABKL
    IMPORTING
    DATE = AUX_FDAY
    EXCEPTIONS
    CALENDAR_BUFFER_NOT_LOADABLE = 1
    CORRECT_OPTION_INVALID = 2
    DATE_AFTER_RANGE = 3
    DATE_BEFORE_RANGE = 4
    DATE_INVALID = 5
    FACTORY_CALENDAR_NOT_FOUND = 6
    OTHERS = 7.
    IF AUX_FDAY NE SY-DATUM.
    AUX_FLAG = 'F'.
    ENDIF.
    ENDFORM. " CHECK_WORKING_DAY
    *& Form DATE_WITH_OFFSET
    text
    -->P_0 text
    <--P_AUX_TDAY text
    FORM DATE_WITH_OFFSET USING AUX_OFFSET
    CHANGING P_TDAY.
    DATA:
    AUX_CALENDARDATE LIKE SCAL-DATE,
    AUX_FACTORYDATE LIKE SCAL-FACDATE.
    CALL FUNCTION 'DATE_CONVERT_TO_FACTORYDATE'
    EXPORTING
    DATE = SY-DATUM
    FACTORY_CALENDAR_ID = AUX_FABKL
    IMPORTING
    FACTORYDATE = AUX_FACTORYDATE
    EXCEPTIONS
    CALENDAR_BUFFER_NOT_LOADABLE = 1
    CORRECT_OPTION_INVALID = 2
    DATE_AFTER_RANGE = 3
    DATE_BEFORE_RANGE = 4
    DATE_INVALID = 5
    FACTORY_CALENDAR_NOT_FOUND = 6
    OTHERS = 7.
    AUX_FACTORYDATE = AUX_FACTORYDATE + AUX_OFFSET.
    CALL FUNCTION 'FACTORYDATE_CONVERT_TO_DATE'
    EXPORTING
    FACTORYDATE = AUX_FACTORYDATE
    FACTORY_CALENDAR_ID = AUX_FABKL
    IMPORTING
    DATE = AUX_CALENDARDATE
    EXCEPTIONS
    CALENDAR_BUFFER_NOT_LOADABLE = 1
    FACTORYDATE_AFTER_RANGE = 2
    FACTORYDATE_BEFORE_RANGE = 3
    FACTORYDATE_INVALID = 4
    FACTORY_CALENDAR_ID_MISSING = 5
    FACTORY_CALENDAR_NOT_FOUND = 6
    OTHERS = 7.
    P_TDAY = AUX_CALENDARDATE.
    ENDFORM. " DATE_WITH_OFFSET
    *& Form GET_CUMULATIVE_OUTPUT
    text
    --> p1 text
    <-- p2 text
    FORM GET_CUMULATIVE_OUTPUT .
    CLEAR: AUX_LOW, AUX_HIGH.
    MOVE: SY-DATUM TO AUX_LOW,
    SY-DATUM TO AUX_HIGH.
    MOVE: '01' TO AUX_LOW+6(2),
    '31' TO AUX_HIGH+6(2).
    REFRESH IT_MKPF_MSEG.
    CLEAR AUX_MNG.
    SELECT MKPFMBLNR MKPFMJAHR MKPF~BUDAT
    MSEGBWART MSEGMATNR MSEGMENGE MSEGMEINS MSEGDMBTR MSEGWERKS
    INTO TABLE IT_MKPF_MSEG
    FROM MKPF JOIN MSEG
    ON MKPFMBLNR EQ MSEGMBLNR
    WHERE MKPF~BUDAT BETWEEN AUX_LOW AND AUX_HIGH
    AND MKPF~MJAHR EQ AUX_CURRENT+0(4)
    AND MKPF~VGART EQ 'WS'
    AND MSEG~ZEILE EQ 1
    AND MSEG~WERKS EQ SO_WERKS
    AND MSEG~MATNR EQ IT_PKHD-MATNR
    AND MSEG~BWART IN ('131', '132').
    IF NOT IT_MKPF_MSEG[] IS INITIAL.
    LOOP AT IT_MKPF_MSEG.
    AUX_MNG = AUX_MNG + IT_MKPF_MSEG-MENGE.
    CLEAR IT_MKPF_MSEG.
    ENDLOOP.
    ENDIF.
    MOVE AUX_MNG TO IT_TEMP-GSMNG_OUTM.
    READ TABLE IT_MKPF_MSEG INDEX 1.
    MOVE IT_MKPF_MSEG-MEINS TO IT_TEMP-MEINS_OUTM.
    REFRESH IT_COBK.
    SELECT DISTINCT BLPP~RUECK FROM BLPK INNER JOIN BLPP
    ON BLPKPRTNR EQ BLPPPRTNR
    INTO TABLE IT_COBK
    WHERE BLPK~WERKS EQ SO_WERKS
    AND BLPK~MATNR EQ SO_MATNR
    AND BLPK~DATUM BETWEEN AUX_LOW
    AND AUX_HIGH
    AND BLPP~PRTPS EQ '0002'.
    IF NOT IT_COBK[] IS INITIAL.
    REFRESH IT_COEPL.
    SELECT KOKRS BELNR FROM COBK
    INTO CORRESPONDING FIELDS OF TABLE IT_COEPL
    FOR ALL ENTRIES IN IT_COBK
    WHERE REFBT EQ 'R'
    AND REFBN EQ IT_COBK-RUECK
    AND BLDAT BETWEEN AUX_LOW AND AUX_HIGH.
    CLEAR IT_CAPACITIES.
    REFRESH IT_CAPACITIES.
    LOOP AT IT_COEPL.
    SELECT LSBBTR MEINB FROM COEPL
    APPENDING CORRESPONDING FIELDS OF TABLE IT_CAPACITIES
    WHERE KOKRS EQ IT_COEPL-KOKRS
    AND BELNR EQ IT_COEPL-BELNR
    AND OBJNR LIKE '%DLABOR'.
    CALL FUNCTION 'UNIT_SUM'
    IMPORTING
    QUANTITY_SUM = IT_TEMP-KAPBD_OUTM
    UNIT_SUM = AUX_SUM_UNIT
    TABLES
    QUANTITIES_UNITS = IT_CAPACITIES.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_TEMP-KAPBD_OUTM
    UNIT_IN = AUX_SUM_UNIT
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_TEMP-KAPBD_OUTM.
    ENDLOOP.
    READ TABLE IT_CAPACITIES INDEX 1.
    MOVE IT_CAPACITIES-MEINB TO IT_TEMP-KEINH_OUTM.
    ENDIF.
    ENDFORM. " GET_CUMULATIVE_OUTPUT
    *& Form GET_FINISHEDGOODS_DATA
    text
    --> p1 text
    <-- p2 text
    FORM GET_FINISHEDGOODS_DATA .
    GET PLANNED ORDER DATA
    REFRESH IT_PLAF.
    CLEAR: AUX_KAPBD, AUX_KBEAREST, AUX_KRUEREST, AUX_GSMNG.
    SELECT * FROM PLAF INTO TABLE IT_PLAF
    WHERE MATNR EQ IT_TEMP-FINISHED
    AND ( PAART EQ 'KD' OR PAART EQ 'PE' )
    AND RATID GT 0
    AND PEDTR GE AUX_BORD
    AND PEDTR LE AUX_DAY5.
    IF NOT IT_PLAF[] IS INITIAL.
    LOOP AT IT_PLAF.
    CLEAR: AUX_KAPBD, AUX_GSMNG.
    REFRESH IT_KBED_KAKO.
    SELECT KBEDKBEAREST KBEDKRUEREST KBED~KEINH
    FROM KBED INNER JOIN KAKO
    ON KBEDKAPID EQ KAKOKAPID
    INTO TABLE IT_KBED_KAKO
    WHERE KBED~BEDID = IT_PLAF-RATID
    AND KAKO~KAPAR = '001'.
    IF NOT IT_KBED_KAKO[] IS INITIAL.
    CLEAR AUX_KAPBD.
    LOOP AT IT_KBED_KAKO.
    IF IT_KBED_KAKO-KEINH NE 'STD'.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KBEAREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KBEAREST.
    CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
    INPUT = IT_KBED_KAKO-KRUEREST
    UNIT_IN = IT_KBED_KAKO-KEINH
    UNIT_OUT = 'STD'
    IMPORTING
    OUTPUT = IT_KBED_KAKO-KRUEREST.
    ENDIF.
    ADD IT_KBED_KAKO-KBEAREST TO AUX_KBEAREST.
    ADD IT_KBED_KAKO-KRUEREST TO AUX_KRUEREST.
    CLEAR IT_KBED_KAKO.
    ENDLOOP.
    AUX_KAPBD = AUX_KBEAREST + AUX_KRUEREST.
    ENDIF.
    READ TABLE IT_KBED_KAKO INDEX 1.
    CASE IT_PLAF-PEDTR.
    WHEN AUX_DAY5.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_DAY5 = IT_TEMP-F_GSMNG_DAY5 + AUX_GSMNG.
    IT_TEMP-F_MEINS_DAY5 = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_DAY5 = IT_TEMP-F_KAPBD_DAY5 + AUX_KAPBD.
    IT_TEMP-F_KEINH_DAY5 = IT_KBED_KAKO-KEINH.
    WHEN AUX_DAY4.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_DAY4 = IT_TEMP-F_GSMNG_DAY4 + AUX_GSMNG.
    IT_TEMP-F_MEINS_DAY4 = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_DAY4 = IT_TEMP-F_KAPBD_DAY4 + AUX_KAPBD.
    IT_TEMP-F_KEINH_DAY4 = IT_KBED_KAKO-KEINH.
    WHEN AUX_DAY3.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_DAY3 = IT_TEMP-F_GSMNG_DAY3 + AUX_GSMNG.
    IT_TEMP-F_MEINS_DAY3 = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_DAY3 = IT_TEMP-F_KAPBD_DAY3 + AUX_KAPBD.
    IT_TEMP-F_KEINH_DAY3 = IT_KBED_KAKO-KEINH.
    WHEN AUX_DAY2.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_DAY2 = IT_TEMP-F_GSMNG_DAY2 + AUX_GSMNG.
    IT_TEMP-F_MEINS_DAY2 = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_DAY2 = IT_TEMP-F_KAPBD_DAY2 + AUX_KAPBD.
    IT_TEMP-F_KEINH_DAY2 = IT_KBED_KAKO-KEINH.
    WHEN AUX_DAY1.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_DAY1 = IT_TEMP-F_GSMNG_DAY1 + AUX_GSMNG.
    IT_TEMP-F_MEINS_DAY1 = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_DAY1 = IT_TEMP-F_KAPBD_DAY1 + AUX_KAPBD.
    IT_TEMP-F_KEINH_DAY1 = IT_KBED_KAKO-KEINH.
    WHEN AUX_TDAY.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_TDAY = IT_TEMP-F_GSMNG_TDAY + AUX_GSMNG.
    IT_TEMP-F_MEINS_TDAY = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_TDAY = IT_TEMP-F_KAPBD_TDAY + AUX_KAPBD.
    IT_TEMP-F_KEINH_TDAY = IT_KBED_KAKO-KEINH.
    WHEN OTHERS.
    AUX_GSMNG = IT_PLAF-GSMNG.
    IT_TEMP-F_GSMNG_BORD = IT_TEMP-F_GSMNG_BORD + AUX_GSMNG.
    IT_TEMP-F_MEINS_BORD = IT_PLAF-MEINS.
    IT_TEMP-F_KAPBD_BORD = IT_TEMP-F_KAPBD_BORD + AUX_KAPBD.
    IT_TEMP-F_KEINH_BORD = IT_KBED_KAKO-KEINH.
    ENDCASE.
    IT_TEMP-F_GSMNG_OUTN = IT_TEMP-F_GSMNG_OUTN + AUX_GSMNG.
    IT_TEMP-F_KAPBD_OUTN = IT_TEMP-F_KAPBD_OUTN + AUX_KAPBD.
    ENDLOOP.
    READ TABLE IT_PLAF INDEX 1.
    MOVE IT_PLAF-MEINS TO IT_TEMP-F_MEINS_OUTN.
    READ TABLE IT_KBED_KAKO INDEX 1.
    MOVE IT_KBED_KAKO-KEINH TO IT_TEMP-F_KEINH_OUTN.
    ENDIF.
    ENDFORM. " GET_FINISHEDGOODS_DATA
    *& Form GET_ACTUAL_MONTH_DATA
    text
    --> p1 text
    <-- p2 text
    FORM GET_ACTUAL_MONTH_DATA .
    CLEAR: AUX_LOW, AUX_HIGH.
    MOVE: '01' TO SO_BUDAT-LOW+6(2),
    SO_BUDAT-LOW TO AUX_LOW,
    '31' TO SO_BUDAT-LOW+6(2),
    SO_BUDAT-LOW TO AUX_HIGH.
    REFRESH IT_MKPF_MSEG.
    CLEAR AUX_MNG.
    SELECT MKPFMBLNR MKPFMJAHR MKPF~BUDAT
    MSEGBWART MSE

    Hi Ramya,
    Your program contains a lot of BIG standard tables, these tables
    usually contain huge amount of data,
    plus you have used SELECT * in many places, try to avoid that and replace with only those field names that are reqd.
    even the joins are on huge tables, performance could improve on those  if you can put some more conditions or keys to the joins to make it more specific.
    even after that if it gives the Runtime Error then you have 2 options:
    1. Ask your Basis to increase Time limit for program executing in foreground.
    2. Execute your program in Background Mode.
    Regards,
    Samson Rodrigues.

  • How should I report forum performance issues?

    The forums rely heavily on the caching features of browsers to improve the speed of page rendering. Performance of these forums should greatly improve after a few pages because more and more of the images, css and javascript is cached in the browser. As a consequence, when reporting forums performance issues the report should include some information on the state of the browser cache to determine whether the issue is a browser issue or a server issue. Such detailed information is generally not available from just watching the browser screen, but needs to come from specialized tools such as performance monitor plugins and recording proxies.
    The preferred report method for performance issues is to use the speed reporting features build into or available as a plugin for a browser for both the page you want to report a problem with and several refence pages in the site. Detailed instructions are listed below separated out for different browsers. If possible, please use Firefox for submitting the report because it provides an export format that can be read back electronically.
    Known performance issues
    The performance issues with any screen with a Rich Text Editor, such as the Reply window and the compose Private Message window have been acknowleged and improvements are being implemented.
    Mozilla Firefox (preferred)
    Warning: it is currently not recommended to generate a speed report when logged in. The speed report has enough detail for somebody else to hijack your session and impersonate you on the forums. If you really must report while logged in, make sure you log out your browser after generating the speed report and wait at least 4 hours before posting.
    Install the Firebug plugin
    Install the NetExport 0.6 extension for Firebug
    Enable all Firebug panels
    Switch to the "Net" panel in Firebug
    Click on this link
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Browse to the page where you are experiencing the performance problem.
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Click on this link
    Export the data from the Firebug Net panel
    Browse to the page where you are experiencing the performance problem.
    Export the data from the Firebug Net panel
    When you report a performance problem please attach the 6 exports from the Firebug Net panel and an explanation of how you are experiencing the issues (for instance how much slower it is then normal) and include a description of your internet connection (dial-up, dsl, cable etc.) and the country from where you are connecting. If you have non-standard tweaks to your Firefox configuration (such as pipelining enabled) or are running any plugins please include that information in your report as well.
    Google Chrome
    Open the Developer Tools (Ctrl-Shift-J)
    Navigate to the resources tab
    Enable resource tracking.
    Click on this link
    Export the resource loading data.
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Navigate to the page where you experience the performance problem
    Export the data
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Click on this link
    Export the data
    Reset the data by disabling and enabling resource tracking
    Navigate to the page where you experience the performance problem
    Export the data
    Since Google Chrome does not have an export format for the Resource Tracking information best current practice is to take a screenshot and note the hover details for any resource with a tail that is longer then 25% of the total load time. When you report a performance problem please attach the screenshots and an explanation of how you are experiencing the issues (for instance how much slower it is then normal)  and include a description of your internet connection (dial-up, dsl, cable etc.) and the country from where you are connecting.
    Apple Safari
    The Apple Safari Web Inspector has a Resources panel similar to the Resources panel in the Google Chrome developer tools.To get there, follow these steps:
    Show the menu bar.
    Go to preferences
    Go to the Advanced Tab
    Check “Show  Develop menu in menu bar”.
    From the Develop menu select “Show Web  Inspector”. 
    Collecting the performance information and exporting works exactly the same as in Google Chrome. Please refer to the instructions for Google Chrome.
    Microsoft Internet Explorer
    IE does not have native features to analyze web traffic. No plugins have been found that produce the required information (please let us know if we missed any). For now, please reproduce the issue with Firefox, Chrome or Safari.
    Please note that due to the reliance on Javascript for the interactive effects the performance of these forums will be much better on MS IE 8 then on previous versions of MS IE.

    Hi
    It works, check once again...
    regards
    Swami

  • Performance Issue Executing a BEx Query in Crystal Report E 4.0

    Dear Forum
    I'm working for a customer with big performance issue Executing a BEx Query in Crystal via transient universe.
    When query is executed directly against BW via RSRT query returns results in under 2 seconds.
    When executed in crystal, without the use of subreports multiple executions (calls to BICS_GET_RESULTS) are seen. Runtimes are as long as 60 seconds.
    The Bex query is based on a multiprovider without ODS.
    The RFC trace shows BICS connection problems, CS as BICS_PROV_GET_INITIAL_STATE takes a lot of time.
    I checked the note 1399816 - Task name - prefix - RSDRP_EXECUTE_AT_QUERY_DISP, and itu2019s not applicable because the customer has the BI 7.01 SP 8 and it has already
                domain RSDR0_TASKNAME_LONG in package RSDRC with the
                description: 'BW Data Manager: Task name - 32 characters', data
                type: CHAR; No. Characters: 32, decimal digits: 0
                data element RSDR0_TASKNAME_LONG in package RSDRC with the
                description 'BW Data Manager: Task name - 32 characters' and the
                previously created domain.
    as described on the message
    Could you suggest me something to check, please?
    Thanks en advance
    Regards
    Rosa

    Hi,
    It would be great if you would quote the ADAPT and tell the audience when it is targetted for a fix.
    Generally speaking, CR for Enteprise  isn't as performant as WebI,  because uptake was rather slow .. so i'm of the opinion that there is improvements to be gained.   So please work with Support via OSS.
    My onlt recommendations can be :
    - Patch up to P2.12 in bi 4.0
    -  Define more default values on the Bex query variables.
    - Implement this note in the BW 1593802    Performance optimization when loading query views 
    Regards,
    H

  • Performance issue of frequently data inserted tables

    Hi all,
    Have a table named raw_trap_store having columns as trap_id(number,PK),Source_IP(varchar2), OID(varchar2),Message(CLOB)  and received_time(date).
    This table is partitioned across 24 partitions where partitioning column being received_time. (every hour's data will be stored in each partition).
    This table is getting inserted with 40-50 records/sec on an average. Overall number of records for a day will be around 2.8-3 million. Data will be retained for 2 days.
    No updates will be happening on this table.
    Performance issue:N
    Need a report  which involves selection of records from this table based on certain values of Source IP (filtering condition on source_ip column).
    Need a report  which involves selection of records from this table based on certain values of OID (filtering condition on OID column).
    But, if i create an index on SourceIP and OID column, then inserts are getting slow. (have created a normal index. not partitioned index)
    Please help me to address the above issue.

    Giving the nature of your report (based on Source_IP and OID) and the nature of your table partitioning (range partitioned by received_time), you have already made a good decision to create these particular indexes as a normal (b-tree or global) and not locally partitioned. Because if you have locally partitioned them, your reports will not eliminate partitions (because they do not include the partition key in their where clause) and hence your index range scans will scan all 24 partitions generating a lot of logical I/O
    That is said, remember that generally we insert once and select many times. You have to balance that. If you are sure that it is the creation of your two indexes that has decreased the insert performance then you may set them at in an unusable state before the insert and rebuild them after. But this might be a good advice only if the volume of data to be inserted is much bigger than the existing volume of data before the insert.
    And if you are not deleting from the table and the table does not contain triggers and integrity constraints (like FK constraint) then you can opt for a direct path insert using the hint /*+ append */
    Best regards
    Mohamed Houri
    <mod. action: removed unecessary blog ref.>
    Message was edited by: Nicolas.Gasparotto

  • Strange performance issue with 3510/3511 SAM-FS disk cache

    Hi there!
    I'm running a small SAM-QFS environment and have some strange performance issue on the disk storage part, which somebody here might be able to explain.
    Configuration: one 3510, dual controller, RAID-5 9+1, one hot spare and one disk not configured for whatever reason. The R5 logical drive hosts a 150GB LUN for SAM-QFS metadata (mm in SAM-FS speak) and a 1TB LUN for data (mr in SAM-FS speak). Further, there are two small LUNs (2GB, 100GB) for some other purpose. Those two LUNs have nearly no I/O. All disks are SUN146G. Host connection is 2GBit, multipathing enabled and working.
    Then the disk cache became too small, and the customer added a 3511 expansion unit with SUN300G disks. One logical drive is a RAID-1, 1+1, used for NetBackup catalog. The other is a RAID-5, 8+1, providing two LUNs: 260GB SAM-FS metadata (mm) and 1.999TB SAM-FS data (mr).
    For SAM-FS, the LUNs form two file systems: one "residing" in the 3510, the other "residing" in the 3511 expansion. Cabling is according to the manual and checked several times by several independant people. Operating system is Solaris 10, hardware is a V880.
    The problem we observe: SAM-FS I/O on LUNs on disks inside the 3510 is fine. With iostat, I see 100MB/s read and 50MB/s write at the same time. On the SAM-FS file system which is running on the two LUNs in the 3511, the limit seems to be at 40MB/s read/write. Both SAM-FS file systems are configured the same in regards of block size.
    In case I have activity on both SAM-FS file systems, I see 100MB/s+ on the LUN running inside the controller shelf and another 40MB/s on the disk runnin in the 3511 expansion chassis. So, the controller is easily capable of handling 150MB/s.
    Cache settings in the 3510 controller are default I think (wasn't installed by me), batteries are fine.
    Is this 40MB/s we experience a limitation by the expansion shelf? Don't think so. Anybody has any ideas on this? What parameters to check or to change? Any hint appreciated. I can also provide further details if needed. Thank you.
    wolfgang

    SUN300G disks sound like 300GB FC disks.
    Depending on how many files are in the SAMFS file system, sharing the mm and mr devices on the same RAID array can be a pretty horrible idea. In my opinion and experience, it's almost always better to NEVER put more than one LUN on a RAID array. Period. Putting more than one LUN on an array results in IO contention on that array. And large, unnaturally configured (9+1? Why?) RAID arrays will have problems from the start.
    What are the block sizes used on the RAID arrays? It wouldn't surprise me to see that the RAID array on the expansion tray has a very large block size. Larger block sizes are, in general, not better. Especially for SAMFS metadata - which IIRC is something like 8k or 16k blocks.
    I suspect what is happening is most of the metadata updates are going to the mm device on the new array, contending with the IO operations on the file data.
    How much space is left on each mm device? What does "iostat -sndxz 2" show when you're having the IO problems?

  • My macbook pro is suddenly having major performance issues

    Hi,
    I´ve been having some performance issues with my Macbook Pro (late 2006) and was hoping that someone here might be able to help me figure out what it is.
    It all started about a month ago with the disc utility giving me an error.
    The error said something about the amount of threads being wrong.
    I popped in the install dvd and fixed the problem. I also did a complete reinstall and upgraded from leopard to snow leopard.
    There was nothing wrong with the S.M.A.R.T.-status of the drive.
    At the same time the hardrive error came around my cpu started to choke. The cpu-problem didn´t go away after I repaired the disc and formatted the drive and installed 10.6.
    Now it feels like the cpu is running way below it´s capacity. Even the simplest of tasks make my computer choke.
    My audio applications are working at about half the speed of what they used to handle. Converting a wave file to mp3 takes about twice as long, and converting a video is even worse.
    I haven´t had any problems since I bought it in 2006. It is still running smooth - except for the lack of speed. It´s not really acting weird or being unstable, just slow. Way slower than it is supposed to be (and was before).
    And it happened overnight.
    I also had a kernel panic last week. But after restarting the system it went away and I haven´t seen it since.
    My specs are: C2D 2.16, 3GB RAM, 120GB 5400rpm hdd, OS 10.6.4...
    Would really appreciate help of any/every kind!
    I fear that this might be the end of my work horse

    Well, kind of a good news bad news situation for you.
    Bad news, is that your hard drive is dying. Make sure you back things up while you still can. Disk Utility's SMART status is generally just this side of useless I'm afraid. I've seen plenty of drives that are completely toast, that will show up as "Verified".
    Good news, is that as repairs go, this is close to as cheap as they get. It's up to you if you want to attempt doing it yourself, but be sure to look for some kind of take apart guide first. Look it over, and if you're even a little unsure, take it somewhere. Shortly after this model they started making it a lot easier to do HDD upgrades, not that it does you a lot of good.
    Anyway, even for a system as old as yours, this is a very cost effective repair if everything else is still working fine, and you're satisfied with the system. It's also a good opportunity to upgrade, give yourself a little extra space. No need to go overboard, but maybe a 250GB drive or so. A touch over 2X the space you had before, which can be had on the cheap. Just about any 2.5" SATA drive should work in that system.

  • LR 4.1 RC performance issues

    I find that the 4.1 rc version is better than 4.0 but still not snappy like 3.6 was.  Here are some things I have noticed that are slow:
    • tagging images with flags, colors, labels, etc. - seems to be a two to three second delay when doing this before they register and show up with the files.  I have write .xmp off.
    • and in regards to writing to xmp off, if I select it,  It seems to want to update my whole catalog (148,000 images) and if I try to quit, it promps me that it has not finished and do I want to quit and if I do it will resume upon restarting.  At that point when I try to quit, it just hangs even if I tell it to quit writing xmp info.  I let it go for a couple hours yesterday and it seems it still didn't finish and caused problems again trying to quit.  I ended up having to force quit.  I never remember this problem in the past and in the past, if you selected write to xmp or not, it used to do it or not do it from that point forward.  Until this is fixed, I have it off and just manually save metadata using Cmd-S.
    •When in library mode, moving between images is snappy, however once you go to the develop module, it slows to a snail's pace (3-5 second delay).  I know develop module is not as fast in general for moving between images, but in ver. 3.6 there was only a slight delay (maybe 1 sec.).  Now I'm bouncing back and forth wasting time switching modules, which brings me to my next performance issue:
    * When switching from library to develop, it takes quite a few seconds to respond, then after that it loads the image with the loading... icon/message, and another few seconds are wasted.  That used to be almost instantaneous in 3.6.  Going to develop to library seems fine with only a slight delay.
    • The adjustment brush is faster in 4.1 than 4.0 but not nearly as responsive as in 3.6 which is frustrating and very easy to overdo what you're trying to do by the time the brush catches up.
    •Sliders still have a bit of jerkiness to them in develop module.  Also sometimes when I grab a scrubby slider to move it, it highlights the field as if I want to enter a number.  Wish this would not happen.  If I want to enter the number, a single click should do it in the field.  If I grab the scrubby slider, it should just activate the scrubby slider.
    • Keyword suggestions take much longer to generate.  In 3.6 as fast as I'd add keywords, the relevant suggestions would pop up right away.
    • When zooming into 100%, it seems to be reasonably fast to render, but I've noticed sometimes it just shows the blurred semi-rendered version without actually rendering 1:1.  Even unzooming and rezooming doesn't work.  Only solution is to go to another image and then back to the original image and that seems to kick it into gear and re-initialize the rendering engine.
    Overall I love the features and new process 2012, I'm just disappointed in the performance.  Especially now that I'm trying to edit a large job.  I really wish the program could be optimized to work as well as 3.6 did and I hope once the final version of 4.1 is released (hopefully soon) we will see an overall performance boost.  I have removed ver 3.6 from my system so that's too much of a hassle to go back and not an option, plus I've gotten used to the new process and like it too much to go back.
    From the posts I've read it seems others are experiencing this as well, as well as colleagues I've spoken to.  It seems to be across platforms and regardless of computer specs (as long as someone's using a fairly updated and capable computer)
    Thanks for working on a performance boost Adobe and getting ver. 4.1 dialed in and releasing a final version.

    Cannot reproduce on Win7 64Bit (LR4.1RC).
    What OS
    what external editor
    what image format is the original
    what image format is passed to the external editor
    Beat

  • Mappings Creation Performance Issue:

    Mappings Creation Performance Issue
    I am having a performance problem when linking attributes from Splitter Transformation (has app. 80 input ports and 9 different filter condition for 9 target tables) to other transformations. It takes app. 6 minutes to link one attribute from Splitter Transformation to other transformations; generally it should take less than a second. This is the problem only with Splitter Transformation, other transformations works very well.
    Any thoughts on this will be very helpful.
    Thanks
    Ragu Mandala

    Ragu,
    Unfortunately this issue was introduced in 9.0.3.36.3 (lower versions did not have this... 'feature'). The issue has been rolled into the 9.2.0.3 version, but there is no backport for 9.0.3.
    Any chance you can migrate to 9.2? or go back to 9.0.3.35?
    Mark.

  • Dashboard Performance Issue

    HI Ingo,
    Thanks a lot for the wonderful postings in SDN and for your blogs on SAP BI/BO Solution architecture.
    I  am looking for few clarifications on SAP BO Xcelsius Dashboards. 
    Though I know limitations on component number and data volumes which could badly affect performance of the dashboard, We do have a requirement to handle huge data volumes and multiple components. For drilling down and complete analysis for the users. Our source data lies in SAP BI system and we are using BICS connectivity/ Webi with Live office for updating data in Xcelsius.
    Our requirement is too complex where we should be in a position to meet user expectations for complete multidimensional analysis by different criterion.
    We have scenarios like, Delivery performance where we need to get Case fill rate, Line fill rate, OTIF (On Time In Full),  etc .along with that alerts and based on that we should be providing short term, long term and medium term analysis.  (also we have scenarios from Sales, Inventory , Supply chain which are interlinked to each other).
    Here are my questions,
    1.     Is there any way to provide complete functionality using large data sets to the users with the current architecture without any performance issues?
    2.     Are there any third party tools which can be used with Xcelsius for the performance improvement and handling huge volumes?
    3.     Do you suggest any alternate solution for complete functionality?
    Awaiting your response.
    Thanks & Regards,
    Paramesh Kumar Bada

    hi,
    Generally, it would be better to display summarized information in Xcelsius.
    So at database/Source level, maintain aggregated information which will serve as input to Xcelsius.
    You can use Crystal Reports and Xcelsius together.
    Because Crystal reports has the capability of embedding Xcelsius components within the report.
    So Charts can be built using Xcelsius and embed in Crystal. whereas Table related content can be developed within Crystal report directly. Also, try to provide URLs(Open Document concept) from Xcelsius to Crystal reports to drill-down from  Summary data to detailed data.
    Regards,
    Vamsee

  • Performance issue in guest access anchored in DMZ

    Hello,
    I've been having performance issue in our wifi guest network anchored in the DMZ.
    I have 3-5508 anchor controllers behind the Checkpoint gaia firewall and have 24 guest SSIDs in here.
    Right now, only 14 guest SSIDs are enabled and tunnelled out in this anchor DMZ setup, whenever I try to add few more SSIDs I run into performance issue.
    It seems to me that the problem is not about these additional SSIDs that I add because the performance issue starts to appear only when the traffic peaks or associated clients reached to certain number which is in my case 4000 users.
    The firewall serves as the NAT device and gateway for all these guest SSIDs. The cpu, memory, number of connections have been checked and verified low.
    Has anyone seen a problem like this? or has a setup like mine?
    thanks!

    Presuming you're not exceeding client count maximums on the individual WLCs I can't say I've seen anything in line with this "specific problem", but anything is possible.
    What are the specific "performance issues" the clients are experiencing?  Is it just general poor performance (slow web browsing/etc) or do you see other issues like no internet connectivity at all or something else?
    May I ask, what is the use-case behind having 24 SSIDs on your anchors?

  • Aperture performance issues.

    Dear members:
    After some disappointments with the latest version of Bridge (CS3) I decided to start working with Aperture as I found it offered some interesting tools for viewing and selecting images.
    First I worked on some test images and everything went well. However, last night I did my first import of "real world" images and experienced severe performance issues.
    I imported one folder containing 163 photos to two different locations - the folder and the images were the same but imported into two separate locations in Aperture as I was trying to create the ideal file structure for me.
    These are the questions and/or problems I have.
    1. This IS NOT a major problem. As much as I tried to import photos into an album or folder I couldn't do it. I don't like the project concept and prefer to have my images placed into folders or albums. My iPhoto library was imported by Aperture using this structure. The iPhoto library is a folder with albums as subdivisions as they were set up in iPhoto originally. However, this doesn't seem to be working as I import photos from other locations.
    Q: How can I import photos into folders or albums and completely avoid the projects concept and icons ?
    2. This IS major problem. Performance was very poor. I imported the folders last night and waited for approximately 30 min until I decided to turn my computer off. Aperture gave me a message stating that it was still generating previews and asking me if I wanted to quit. I pressed the OK button and turned the computer off. This morning I launced Aperture again and it went back to the spinning wheel on both projects. It must have taken approximately 45 min until the spinning wheels were no longer turning.
    This is a problem for me as I have a library with approximately 15,000 - 20,000 images. The ones I imported last night were CR2 generated by a Canon 1Ds MK II (17 MB each). I can only imagine how long it would have taken had I chosen to import the 120+ MB TIFF images I also have in my library from slide scans.
    My Aperture preferences have been set for Preview Quality = 12 and Limit Preview Size = Don't Limit. I have it set this way as I don't with to have reduced size previews so that (1) they can display with the highest possible quality as I mostly use the full screen mode for viewing and selecting images, and (2) in case I upgrade to a larger monitor in the near future (I have a 23" cinema display but am planning to upgrade to a 30") the previews will still work with that monitor.
    Is this performace typical of Aperture ? I understand my camera is a professional camera that generates large images but isn't Aperture supposed to be a professional application aimed at professional photographers ? And what about those who work with 39 MB images from a Hasselblad or with scanned 120+ MB slide images ?
    Is there something obvious I have forgotten to look at or set up in Aperture ?
    Thank you in advance,
    Joseph Chamberlain

    Steve:
    Thank you very much for your reply to my post and for your suggestions. Some comments about my experience appear below. I am grateful for your help and don't wish in any way to discuss what you recommend below. I just wish to share my view of this issue and also to try to find the best answers for my problem.
    For 1, use File > Import > Folders Into A Project. That will retain your folder
    structure using brown folders and albums.
    See:
    http://www.bagelturf.com/aparticles/library/fivesimple/index.html and
    http://www.bagelturf.com/aparticles/library/brown/index.html and
    http://www.bagelturf.com/aparticles/library/libinadv/index.html
    A. You can't. Projects are the container for everything in Aperture. No
    projects, no images. So just live with them and subnvert them any way you
    like. I don't have "projects" so I just use months, vacations, events, or
    whatever keeps my image collections a reasonable size.
    As an user I would like to have control over my own filing structure. This works quite well in iPhoto and I don't understand why Aperture chose to adopt this less flexible file structure. Also I noticed that the imported iPhoto library appears in Aperture inside a folder with multiple albums. Since Aperture can do this for iPhoto I find it hard to understand why it can't do for other imported images.
    2. Turn off previews and delete the ones you have. When you find you need > them, use them selectively:
    http://www.bagelturf.com/aparticles/previews/pwho/index.html
    As stated in my previous post I always (no exception) use the full screen mode for viewing my images which is similar to a slide show. So according to the web page you reference above I would fall under the category of users that need previews.
    You don't need high res previews. Aperture already generates thumbnails
    for you.
    General speed tips:
    * Get the best video card with the most RAM you can afford
    I can't. My computer is fairly new as it was purchased a little more than 2 years ago. Although it is a fairly new computer Apple no longer offers parts for it. My video card is an ATI Radeon 9600 Pro with 64 MB of VRAM installed. I have contacted Apple about this issue and they tell me there is nothing they can do. I have also contacted both ATI Radeon and nVidia and both have discontinued the only two cards they would work in my system (X800 XT Mac Edition and GeForce 6800, respectively).
    * Smaller screens are faster than larger screens
    My screen is 23" which I would consider to be a medium size screen by today's standards. However, isn't the purpose of working with Aperture to be able to develop a professional workflow ? And don't most professionals like to use large screens to view their work ?
    * Avoid H&S adjustments until all the others are done
    * Make sure you have sufficient RAM (2G minimum, 3G on a Mac Pro)
    My system has 2.5 GB RAM installed. It has been suggested to me that I should add another 1 or 2 GB RAM as it would improve performance significantly. I have no problem doing that and would welcome that solution if I knew for a fact it was going to address my issues. However, I have already invested too much on hardware and software while still finding myself struggling with the issues I have described. Do you think the additional RAM would solve the problem ?
    * Don't use previews unless you need them
    Based on what I have read on the pages you referenced it seems to me I am one of those users who needs previews.
    * Keep projects small. Use blue folders to group projects
    My current filing structure is simple - I four folders each with subfolders containing in average 200 to 1000 images each. Some have as little as 1 image and some have 1000. But the majority would fall in the 300 to 400 images range.
    * Rebuild the database once in a while
    * Quit other apps if memory is restrictive
    It seems in this case that the RAM upgrade I mention above would be helpful. Would it allow me to run other applications while also running Aperture without any noticeable performance alteration ?
    To a great extent you have to rethink your workflow once you use Aperture.
    Many people do a lot of unnecessary things because they are coming from
    an environment that forced them to. Start from scratch and ask yourself
    why you do everything you do. Much of the effort you will find is wasted
    because Aperture either does it for you or make it unnecessary.
    I am trying to simply my workflow as much as I can but not at the expense of quality. Bridge CS2 did a very good job for me. In many ways it was the perfect application althout it didn't have many of the great features I find in Aperture for reviewing and selecting images. First it was simple - all you had to do was to create your own file structure and then point Bridge to the folders as it would create its own previews. Second it was fast - this process happened a lot faster compared to Aperture and Bridge CS3. Third it was high quality - the previews generated were high quality and could be seen with amazing resolution while in slide show viewing mode on my 23" screen. My upgrade to Bridge CS3 was disastrous as (1) it has many bugs Adobe hasn't taken the time to fix, (2) it is slow on average machines requiring the latest hardware to run efficiently which is unrealistic for most consumers and (3) the previews generated are soft and appear pixilated and in poor quality while in slide show view.
    I am going back to Aperture after a very disappointing start as I was one of the very first to purchase the software as soon as it was introduced only to be frustrated with all of its bugs and design flaws. Aperture has one of the best interfaces I have seen on any imaging application and I would really like to use but after this new attempt to use and the barriers I have encountered I am not sure I can.
    Joseph Chamberlain

Maybe you are looking for

  • HR - Programming without Logical database

    Hi All I have some doubts, I am mainly using Logical database while creting Reports in HR, if I want to use HR function modules and BAPI do they use logical database, question is when we have to do HR programming with Logical database and when withou

  • [ALBPM-5.7] - How to use the result of a invoked web service?

    Using PBL I wrote the following piece of code: ........some rows........ request as Ex1_WebServices.Ph.GetSuperiorRequest2 response as Ex1_WebServices.Ph.GetSuperiorResponse2 lm as MyPrj.LineManager request.alias = "danieas" getSuperior PeopleHierarc

  • Image gallery: Open browser w/ 'Next/Back' button?

    Howdy people. I am planning on making a photo gallery. I want to have the user click on the first image - have a browser window open then have a 'NEXT' 'BACK' and "CLOSE WINDOW" button in that browser window. I know how to do all except the arrow par

  • Running OpenScript Application doesn't load the forms

    Hi, I'm new using OpenScript and I'm facing a problem. I need to create scripts to test a site that implement some Oracle Forms, I can open IE and use the site without problems, BUT when I run OpenScript to create the script, the application doesn't

  • Determining the "type" of a SQL statement

    I'm using the Oracle thin driver with my JDBC program. I want to be able to accept a String containing a SQL statement from the user and execute it. If it's a select statement then present the rows returned in a JTable, otherwise retrieve the return