2004s Web report performance is not good ,though that of 3x web is OK.

Hi,
I feel 2004s Web report performance is bad, though that of 3x web is no problem (the same query is used.) it is worse than BEx analyzer.
This query has more than 1,000 records and those queries that have many records result in the same bad performance.
Of course there are many reason for this bad performance, please tell me your solution by which you solve the same problem like this.
the SIDs of EP and BI is difference here.
CPU is not consumed when 2004s web report is executed.
And I have cancelled  virus scan to this web report...
Kind regards,
Masaaki

It is bad, am sure it's down to the new .net and java based technology.  Aggregates are a way forwards though from what i've heard of the BI Accelerator this is the real way forwards.

Similar Messages

  • Web reporting performance

    Hi,
    We are experiencing very slow response times when viewing reports over the web.  We get a connection time out in most cases.  Can somebody provide any guidance as to how to optimize/improve web reporting performance.  Thanks for your help.
    SC

    Hello:
    Since you stated explicitly "when viewing reports over the web", I assume that your performance issue has been isolated to some extent (web queries instead of general query problems).  Therefore things like aggregates and the timeout parameter are not likely your main bottleneck (you would notice the issue for all queries).
    I would start here - on SDN, Business Information Warehouse > Performance Tuning section.  The whitepaper on the performance tuning topic is available there, which is quite comprehensive.
    Since the issue appears to be web-related, I would speculate that there may be an IGS issue.  When analyzing the performance data, make sure that the front-end times for the queries you have problems with are high.  Network overhead is a component to this - since BWQ results are compressed this shouldn't be a big overhead though.
    In terms of optimizing/improving web performance, your killer apps are precalaculate template / information broadcasting.  These techniques allow you to run the query ahead of time in the background and store the result set to deliver immediately when the user runs a query. 
    Good luck with the performance analysis.  If you hit a wall you may consider contacting SAP Active Global Support or SAP Consulting for further assistance.
    Regards -
    Ron Silberstein, SAP

  • Will BW indexing help Webi reports performance

    Hi Experts,
    Environment
    BO Version:4.1 SP3
    Reporting Database:BW 7.4 sp3
    Recently we have applied the OSS note :. 0001898395 so that we enabled index on the master data.
    We have applied the note and had the index on the 0profit_ctr in the Infoobject: 0mat_plant.
    Reports are fast in BEX side but there is no difference in webi reports performance.
    Our opinion is if BEx performance is increased obviously WEbi performance also should increase.
    Please post your experiences..
    Thank you,,

    Several things will affect the report speed. Note that there are two halves to it - the data source fetch time and the report render time.
    Data source fetch time is the time that it takes for all the data to be returned. BO will always look slower than the native tool because the native tool starts spooling out results as soon as it retrieves the first one - the more data returned, the slower BO will look by comparison.
    Report render time will depend upon the number and complexity of variables as well as the number of rows returned.
    Reducing the volume of data with correct aggregations and filters rather than summing and filtering at report level are the two best ways to improve performance without database/universe access.

  • Webi Reports - Performance Issues

    Hi Experts,
           Right now we are using BO XI R2 version. We have 2 servers, server 1 is old and server 2 is new (AIX server u2013 new upgrade of old server).
          When I trying to schedule the report (webi) in both server, reports is running successfully. But problem is that the report scheduling time is more in new server (AIX) than old server (Server1).
    There is some performance issues
    Example:
    Old serve     : 1 hrs (time taken)
    New server  : 2 hrs (time taken)
    Could you please tell me how to increase the webi report performance in new server?
    Regards,
    Sridharan Krishnan

    Hi,
    How to enable Excel and Pdf option under Save as file in infoview.
    When i trying to click modify option under public folder reports ,Report is getting open but i am not able to save that report as excel or pdf , since those option is disabled in infoview.
    But it is enabled in user private folder Reports.
    Right now we have upgraded the objects from XI R2 to BO 3.1, Since there is some difference in security rights in 3.1, Please tell me how to fix it.
    BO Version u2013  3.1
    Regards,
    Sridharan

  • HT2311 My computer says that the file iTunes.cab its not good and that I need that to install the program, what is that?

    My computer says that the file iTunes.cab its not good and that I need that to install the program, what is that?

    I'm having the same problem. For what it's worth, I am running Windows 7 64-bit.

  • Webi Report Performance issue as compared with backaend SAP BW as

    Hi
    We are having Backend as SAP BW.
    Dashboard and Webi reports are created with Backend SAP BW.
    i.e thru Universe on top of Bex query and then webi report and then dashboard thru live office.
    My point is that when we have created webi reprts with date range as parameter(sometimes as mandatory variable which comes as prompt in webi) or sometimes taking L 01 Calender date from Bex and creating a prompt in webi,  we are facing that reports are taking lot of time to open. 5 minutes 10 minutes and sometimes 22 minutes  to open.
    This type of problem never ocurred when Backened was Oracle.
    Also when drilling in webi report,it takes lot of time .
    So can you suggest any solution?

    Hi Gaurav,
    We logged this issue with support already, it is acknowledged.
    What happens is that whenever you use an infoobject in the condition
    (so pull in the object into condition and build a condition there,
    or use that object in a filter object in the universe and then use the filter)
    this will result in that object being added to the result set.
    Since the query will retrieve a lot of different calendar days for the period you selected,
    the resultset will be VERY big and performance virtually non-existent.
    The workaround we used is to use a BEX variable for all date based selections.
    One optional range variable makes it possible to build various types of selections
    (less (with a very early startdate), greater (with a very far in the future enddate) and between).
    Because the range selection is now handled by BEX, the calendar day will not be part of the selection...
    Good luck!
    Marianne

  • Webi Report : Drill Functionality not working properly

    Hello Guru's,
    I am working on Webintelligence Rich Client XI 3.1 FP 3.5.
    I have created a hierarchy Country -> Region -> Location -> Customer  and Sales Amount in my universe. I exported it to CMC and Created a Webi Report. I selected Country and Sales Amount only into the output screen and clicked on DRILL button in Webi Report and it showed me a line below Country which represents the drilldown is ON now.
    When i clicked on Country, it drills to Region and when i select any region, it drills to location and then to customer. The objects which is drilled that we can see in the Report filter (in the toolbar). Now, if i want to change Country or Region or Location directly (rather then click on Up, Up and Up). So, i clicked on the objects available in the report filter (in the toolbar), it doesn't show me the other contries or Region or Location while i see the same functionality in the standard Webi report (Formatted Report for Drill) given by SAP. If i drill any dimension then it comes in the Report Filter tool bar then i can see all the values for that dimension in the Report Filter and i can change it any time.
    What is the difference in that filters ? Do i have to make any settings ?
    Please do the needful and let me know.
    Regards,
    Komik Shah

    Hi,
    Can anyone help us on below requirement:-
    We are trying to build a BW hierarchy based  webi report. Trying to use drill features on charts.
    Then using this document link in our website ,which is used on Mobiles.
    The problem here is - I cannot drill up on an hierarchy using on mobile without right click.Is there any way to do do this?
    Regards,
    Vidhi

  • How to schedule a WebI Report for the list of users that it contains in it

    I have a WebI Report in BOXIr2 which contains the list of Employees Details (Employee Name, Mail ID, Emp Code) who had missed their timesheet for the week, Please let me know Is their a way that i can send mail notification through BO report Scheduling to the list of Employees who are listed in the Report, Thanks in advance !

    Hi,
    in BO XI 3.1 you can do this using a publication object. Unfortunately in XI R2 this works only for DeskI documents. You may want to consider using the BOE SDK for this. I must admit that I do not have a specific solution for you a workflow may look like this:
    1) Schedule your WebI with the user list to be exported on a network drive
    2) Build a java program that reads in the file, connects to the BOBJ repository and schedules the report using the recepient list.
    Regards,
    Stratos

  • How to run webi report automatically with the current date/system date in webi report

    Hi Friends,
    I have a webi report which has a date prompt now. Based on the selection that user makes while running a report, he will get the related data for that particular date selection. Now I want to make that date prompt automated that is the report should run automatically based on the system date daily on scheduling.
    I want it to run current day automatically without have to go in and pick the date in webi report. I will be scheduling the webi report. Can you please let me know how to achieve this functionality of running a webi report automatically with a system date.
    Please let me know if I couldn't make you understand so that I will write with an example.
    Waiting for your valuable solutions.
    Thanks in advance.
    Regards,
    Bhaskar

    Hello Bhasakar,
    1.Create sysdate object in the universe
    2.Create another query in webi and select only sysdate object
    3.In the original query drag the Day object in the filter pane and choose the "List of values" from another query.and select the sysdate object from the second query.
    So your report always will run for sysdate...
    regards,
    Naveen D

  • Need Help to see why the performance is not good

    Hi,
    We have an application that all process are developed in PL/SQL on Oracle 9i Database :
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
    PL/SQL Release 9.2.0.6.0 - Production
    Why I have created this package. the application is a production management on chemical industries. I need to sometimes trace the Manufacturing order execution to eventually answer some incoherent data. If I analyze directly the data in the Table is not always responding because the origin of problem can be provide of some execution that perform some calculation.
    In the procedure or function a use my package PAC_LOG_ERROR.PUT_LINE(xxxxxx) to save the information. This command save the information in the memory before. At the end of the procedure or function a perform the insert with the COMMIT calling PAC_LOG_ERROR.LOGS or PAC_LOG_ERROR.ERRORS on the catch exception.
    This package is always call. On each routines performed I execute it. In the trace log of the database we have see a problem we the procedure GET_PROC_NAME in the package. We have identify that is called more that 800x and increase the performance. Who increase is this select command :
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;I use it to get the procedure or function name where my log proc is called. I now that I can pass in parameters, but I have think to use an automatic method, that can help to not have some problem with others developer team to make a copy/past and not update the parameters. Because the Log info is read by the Help Desk and if we have an error on the information, it not a good help.
    COULD YOU PLEASE HELP ME TO OPTIMIZE OR SAID THE BETTER METHOD TO DO IT ?
    Here my package :
    create or replace
    PACKAGE PAC_LOG_ERROR AS
    -- Name         : pac_log_error.sql
    -- Author       : Calà Salvatore - 02 July 2010
    -- Description  : Basic Error and Log management.
    -- Usage notes  : To active the Log management execute this statement
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 'Y' WHERE PRM_TYPE = 'TRC_LOG';
    --                COMMIT;
    --                To set the period in day before to delete tracability
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 60 WHERE PRM_TYPE = 'DEL_TRC_LOG';
    --                COMMIT;
    --                To set the number in day where the ERROR is save before deleted
    --                UPDATE PARAM_TECHNIC SET PRM_VALUE = 60 WHERE PRM_TYPE = 'DEL_TRC_LOG';
    --                COMMIT;
    -- Requirements : Packages PAC_PUBLIC and OWA_UTIL
    -- Revision History
    -- --------+---------------+-------------+--------------------------------------
    -- Version |    Author     |  Date       | Comment
    -- --------+---------------+-------------+--------------------------------------
    -- 1.0.0   | S. Calà       | 02-Jul-2010 | Initial Version
    -- --------+---------------+-------------+--------------------------------------
    --         |               |             |
    -- --------+---------------+-------------+--------------------------------------
      PROCEDURE INITIALIZE;
      PROCEDURE CLEAN;
      PROCEDURE RESETS(IN_SOURCE IN VARCHAR2 DEFAULT NULL);
      PROCEDURE PUT_LINE(TXT IN VARCHAR2);
      PROCEDURE ERRORS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99', ERR_CODE IN NUMBER DEFAULT SQLCODE, ERR_MSG IN VARCHAR2 DEFAULT SQLERRM);
      PROCEDURE LOGS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99');
    END PAC_LOG_ERROR;
    create or replace
    PACKAGE BODY PAC_LOG_ERROR
    AS
      /* Private Constant */
      CR    CONSTANT CHAR(1)  := CHR(13);  -- Retour chariot
      LF    CONSTANT CHAR(1)  := CHR(10);  -- Saut de ligne
      CR_LF CONSTANT CHAR(2)  := LF || CR; --Saut de ligne et retour chariot
      TAB   CONSTANT PLS_INTEGER := 50;
      sDelay   CONSTANT PLS_INTEGER := 30;
      /* Private Record */
      TYPE REC_LOG IS RECORD(
        ERR_DATE TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
        ERR_TXT  VARCHAR2(4000)
      /* Private Type Table */
      TYPE TAB_VALUE IS TABLE OF REC_LOG INDEX BY PLS_INTEGER;
      TYPE TAB_POINTER IS TABLE OF TAB_VALUE INDEX BY VARCHAR2(80);
      /* Private Variables Structures */
      LOG_TRC PARAM_TECHNIC.PRM_VALUE%TYPE;
      LIST_PARAM TAB_POINTER;
      /* Private Programs */
      FUNCTION GET_PROC_NAME( SOURCE_OWNER IN all_source.OWNER%TYPE
                             ,SOURCE_NAME  IN all_source.NAME%TYPE
                             ,SOURCE_LINE  IN all_source.LINE%TYPE) RETURN VARCHAR2
      AS
        SOURCE_TEXT  all_source.TEXT%TYPE;
        TYPE RECORD_TEXT IS TABLE OF all_source.TEXT%TYPE;
        RETURN_TEXT     RECORD_TEXT;
      BEGIN
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;
        IF SOURCE_TEXT IS NOT NULL OR  SOURCE_TEXT != '' THEN
          SOURCE_TEXT := TRIM(SUBSTR(SOURCE_TEXT,1,INSTR(SOURCE_TEXT,'(')-1));     
          SOURCE_TEXT := LTRIM(LTRIM(TRIM(SOURCE_TEXT),'PROCEDURE'),'FUNCTION');
          SOURCE_TEXT := SOURCE_NAME||'.'|| TRIM(SOURCE_TEXT);
        ELSE
          SOURCE_TEXT := 'ANONYMOUS BLOCK';
        END IF;
        RETURN SOURCE_TEXT;
      END GET_PROC_NAME;
      PROCEDURE SELECT_MASTER(REF_TYPE IN VARCHAR2, PARAM_VALUE IN VARCHAR2, SITE OUT VARCHAR2, REF_MASTER OUT VARCHAR2)
      AS
      BEGIN
          REF_MASTER := '';
          SITE := '99';
          CASE UPPER(REF_TYPE)
            WHEN 'PO' THEN -- Process Order
              SELECT SITE_CODE INTO SITE FROM PO_PROCESS_ORDER WHERE PO_NUMBER = PARAM_VALUE;
            WHEN 'SO' THEN -- Shop Order
              SELECT P.SITE_CODE,P.PO_NUMBER INTO SITE,REF_MASTER FROM SO_SHOP_ORDER S
              INNER JOIN PO_PROCESS_ORDER P ON P.PO_NUMBER = S.PO_NUMBER
              WHERE S.NUMOF = PARAM_VALUE;
            WHEN 'SM' THEN -- Submixing
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SO_SUBMIXING WHERE IDSM = PARAM_VALUE;
            WHEN 'IDSM' THEN -- Submixing
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SO_SUBMIXING WHERE IDSM = PARAM_VALUE;
            WHEN 'PR' THEN -- Pourring
              SELECT B.SITE_CODE,P.NUMOF INTO SITE,REF_MASTER FROM SO_POURING P
              INNER JOIN SO_SUBMIXING B ON B.IDSM=P.IDSM
              WHERE P.IDSM = PARAM_VALUE;
            WHEN 'NUMSMP' THEN -- Pourring
              SELECT SITE_CODE,NUMOF INTO SITE,REF_MASTER FROM SAMPLE WHERE NUMSMP = TO_NUMBER(PARAM_VALUE);
    --        WHEN 'MSG' THEN -- Messages
    --          SELECT SITE_CODE,PO_NUMBER INTO SITE,REF_MASTER FROM CMS_INTERFACE.MAP_ITF_PO WHERE MSG_ID = PARAM_VALUE;
            ELSE
              SITE := sys_context('usr_context', 'site_attribute');
          END CASE;
      EXCEPTION
        WHEN OTHERS THEN
          REF_MASTER := '';
          SITE := sys_context('usr_context', 'site_attribute');
      END SELECT_MASTER;
      PROCEDURE ADD_LIST_PROC
      AS
      PRAGMA AUTONOMOUS_TRANSACTION;
      BEGIN
        MERGE INTO LOG_PARAM A
        USING (SELECT OWNER, TYPE
                     ,NAME PROC
                     , CASE NAME WHEN SUBNAME THEN NULL
                                 ELSE SUBNAME
                       END SUBPROC
               FROM (
                  SELECT owner,TYPE,UPPER(NAME) NAME,UPPER(trim(substr(substr(trim(text),1,instr(trim(text),'(')-1),instr(substr(trim(text),1,instr(trim(text),'(')-1),' ')))) SUBNAME
                         FROM ALL_SOURCE where owner in ('CMS_ADM','CMS_INTERFACE')
                                             and type in ('FUNCTION','PROCEDURE','PACKAGE BODY')
                                             and (instr(substr(trim(text),1,instr(trim(upper(text)),'(')-1),'FUNCTION') = 1 or instr(substr(trim(text),1,instr(trim(upper(text)),'(')-1),'PROCEDURE')=1)
               )-- ORDER BY OWNER,PROC,SUBPROC NULLS FIRST
        ) B
        ON (A.OWNER = B.OWNER AND A.TYPE = B.TYPE AND A.PROC=B.PROC AND NVL(A.SUBPROC,' ') = NVL(B.SUBPROC,' '))
        WHEN NOT MATCHED THEN
          INSERT (OWNER,TYPE,PROC,SUBPROC) VALUES (B.OWNER,B.TYPE,B.PROC,B.SUBPROC)
        WHEN MATCHED THEN
          UPDATE SET ACTIVE = ACTIVE;
        DELETE LOG_PARAM A
        WHERE NOT EXISTS (SELECT OWNER, TYPE
                     ,NAME PROC
                     , CASE NAME WHEN SUBNAME THEN NULL
                                 ELSE SUBNAME
                       END SUBPROC
               FROM (
                  SELECT owner,TYPE,NAME,upper(trim(substr(substr(trim(text),1,instr(trim(text),'(')-1),instr(substr(trim(text),1,instr(trim(text),'(')-1),' ')))) SUBNAME
                         FROM ALL_SOURCE where owner in ('CMS_ADM','CMS_INTERFACE')
                                             and type in ('FUNCTION','PROCEDURE','PACKAGE BODY')
                                             and (instr(substr(trim(text),1,instr(trim(text),'(')-1),'FUNCTION') = 1 or instr(substr(trim(text),1,instr(trim(text),'(')-1),'PROCEDURE')=1)
               ) WHERE A.OWNER = OWNER AND A.TYPE = TYPE AND A.PROC=PROC AND NVL(A.SUBPROC,' ') = NVL(SUBPROC,' '));
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END ADD_LIST_PROC;
      PROCEDURE INITIALIZE
      AS
      BEGIN
        LIST_PARAM.DELETE;
        CLEAN;
    --    ADD_LIST_PROC;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END INITIALIZE;
      PROCEDURE CLEAN
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        dtTrcLog DATE;
        dtTrcErr DATE;
      BEGIN
        BEGIN
          SELECT dbdate-NUMTODSINTERVAL(to_number(PRM_VALUE),'DAY') INTO dtTrcLog
          FROM PARAM_TECHNIC WHERE PRM_TYPE = 'DEL_TRC_LOG';
        EXCEPTION
          WHEN OTHERS THEN
            dtTrcLog := dbdate -NUMTODSINTERVAL(sDelay,'DAY');
        END;
        BEGIN
          SELECT dbdate-NUMTODSINTERVAL(to_number(PRM_VALUE),'DAY') INTO dtTrcErr
          FROM PARAM_TECHNIC WHERE PRM_TYPE = 'DEL_TRC_ERR';
        EXCEPTION
          WHEN OTHERS THEN
            dtTrcErr := dbdate -NUMTODSINTERVAL(sDelay,'DAY');
          END;
        DELETE FROM ERROR_LOG WHERE ERR_TYPE ='LOG' AND ERR_DATE < dtTrcLog;
        DELETE FROM ERROR_LOG WHERE ERR_TYPE ='ERROR' AND ERR_DATE < dtTrcErr;
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          NULL; -- Do nothing if error occurs and catch exception
      END CLEAN;
      PROCEDURE RESETS(IN_SOURCE IN VARCHAR2 DEFAULT NULL)
      AS
        SOURCE_OWNER all_source.OWNER%TYPE;
        SOURCE_NAME      all_source.NAME%TYPE;
        SOURCE_LINE      all_source.LINE%TYPE;
        SOURCE_TEXT  all_source.TEXT%TYPE;
        SOURCE_PROC  VARCHAR2(32727);
      BEGIN
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        IF SOURCE_PROC IS NULL THEN
          SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,125);
        ELSE
          SOURCE_PROC := IN_SOURCE;
        END IF;
        LIST_PARAM.DELETE(SOURCE_PROC);
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END RESETS;
      PROCEDURE PUT_LINE(TXT IN VARCHAR2)
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        SOURCE_OWNER     all_source.OWNER%TYPE;
        SOURCE_NAME     all_source.NAME%TYPE;
        SOURCE_LINE     all_source.LINE%TYPE;
        SOURCE_TEXT all_source.TEXT%TYPE;
        SOURCE_PROC VARCHAR2(128); 
      BEGIN
        IF TXT IS NULL OR TXT = '' THEN
          RETURN;
        END IF;
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE);
        IF LIST_PARAM.EXISTS(SOURCE_PROC) THEN
          LIST_PARAM(SOURCE_PROC)(LIST_PARAM(SOURCE_PROC).COUNT+1).ERR_TXT := TXT;
        ELSE 
          LIST_PARAM(SOURCE_PROC)(1).ERR_TXT := TXT;
        END IF;
      EXCEPTION
        WHEN OTHERS THEN
          NULL;   
      END PUT_LINE;
      PROCEDURE LOGS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99')
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        MASTER_VALUE ERROR_LOG.ERR_MASTER%TYPE;
        SITE PARAMTAB.SITE_CODE%TYPE;
        SOURCE_OWNER     all_source.OWNER%TYPE;
        SOURCE_NAME     all_source.NAME%TYPE;
        SOURCE_LINE     all_source.LINE%TYPE;
        SOURCE_TEXT all_source.TEXT%TYPE;
        SOURCE_PROC VARCHAR2(128);
        ERR_KEY NUMBER;
      BEGIN
    --    NULL;
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,128);
        LIST_PARAM.DELETE(SOURCE_PROC);
    --    SELECT NVL(MAX(ACTIVE),'N') INTO LOG_TRC FROM LOG_PARAM WHERE TRIM(UPPER((PROC||'.'||SUBPROC))) = TRIM(UPPER(SOURCE_PROC))
    --                                      AND OWNER =SOURCE_OWNER AND TYPE = SOURCE_TEXT ;
    --    IF LOG_TRC = 'N' THEN
    --      LIST_PARAM.DELETE(SOURCE_PROC);
    --      RETURN;
    --    END IF;   
    --    SELECT_MASTER(REF_TYPE => UPPER(REF_TYPE), PARAM_VALUE => REF_VALUE, SITE => SITE, REF_MASTER => MASTER_VALUE);
    --    ERR_KEY := TO_CHAR(LOCALTIMESTAMP,'YYYYMMDDHH24MISSFF6');
    --    FOR AIX IN 1..LIST_PARAM(SOURCE_PROC).COUNT LOOP
    --      INSERT INTO ERROR_LOG (ERR_KEY, ERR_SITE,ERR_SLAVE  ,ERR_MASTER  ,ERR_TYPE ,ERR_PROC,ERR_DATE,ERR_TXT)
    --      VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,'LOG',SOURCE_PROC,LIST_PARAM(SOURCE_PROC)(AIX).ERR_DATE ,LIST_PARAM(SOURCE_PROC)(AIX).ERR_TXT);
    --    END LOOP; 
    --    UPDATE SESSION_CONTEXT SET SCX_ERR_KEY = ERR_KEY WHERE SCX_ID = SYS_CONTEXT('USERENV','SESSIONID');
    --    LIST_PARAM.DELETE(SOURCE_PROC);
    --    COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          LIST_PARAM.DELETE(SOURCE_PROC);
      END LOGS;
      PROCEDURE ERRORS(REF_TYPE IN VARCHAR2 DEFAULT 'SITE', REF_VALUE IN VARCHAR2 DEFAULT '99', ERR_CODE IN NUMBER DEFAULT SQLCODE, ERR_MSG IN VARCHAR2 DEFAULT SQLERRM)
      AS
        PRAGMA AUTONOMOUS_TRANSACTION;
        MASTER_VALUE ERROR_LOG.ERR_MASTER%TYPE;
        SITE         PARAMTAB.SITE_CODE%TYPE;
        SOURCE_OWNER all_source.OWNER%TYPE;
        SOURCE_NAME      all_source.NAME%TYPE;
        SOURCE_LINE      all_source.LINE%TYPE;
        SOURCE_TEXT  all_source.TEXT%TYPE;
        SOURCE_PROC  VARCHAR2(4000);
        ERR_KEY NUMBER := TO_CHAR(LOCALTIMESTAMP,'YYYYMMDDHH24MISSFF6');
      BEGIN
        OWA_UTIL.WHO_CALLED_ME(owner    => SOURCE_OWNER,
                               name     => SOURCE_NAME,
                               lineno   => SOURCE_LINE,
                               caller_t => SOURCE_TEXT);
        SOURCE_PROC := SUBSTR(GET_PROC_NAME(SOURCE_OWNER,SOURCE_NAME,SOURCE_LINE),1,125);
        SELECT_MASTER(REF_TYPE => UPPER(REF_TYPE), PARAM_VALUE => REF_VALUE, SITE => SITE, REF_MASTER => MASTER_VALUE);
       IF LIST_PARAM.EXISTS(SOURCE_PROC) THEN
          FOR AIX IN 1..LIST_PARAM(SOURCE_PROC).COUNT LOOP
            INSERT INTO ERROR_LOG (ERR_KEY,ERR_SITE,ERR_SLAVE,ERR_MASTER,ERR_PROC,ERR_DATE,ERR_TXT,ERR_CODE,ERR_MSG)
            VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,SOURCE_PROC,LIST_PARAM(SOURCE_PROC)(AIX).ERR_DATE, LIST_PARAM(SOURCE_PROC)(AIX).ERR_TXT,ERR_CODE,ERR_MSG);
          END LOOP; 
         LIST_PARAM.DELETE(SOURCE_PROC);
        ELSE
          INSERT INTO ERROR_LOG (ERR_KEY,ERR_SITE,ERR_SLAVE,ERR_MASTER,ERR_PROC,ERR_DATE,ERR_TXT,ERR_CODE,ERR_MSG)
          VALUES (ERR_KEY,SITE,REF_VALUE,MASTER_VALUE,SOURCE_PROC,CURRENT_TIMESTAMP,'Error info',ERR_CODE,ERR_MSG);
        END IF;
        UPDATE SESSION_CONTEXT SET SCX_ERR_KEY = ERR_KEY WHERE SCX_ID = sys_context('usr_context', 'session_id');
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          LIST_PARAM.DELETE(SOURCE_PROC);
      END ERRORS;
    END PAC_LOG_ERROR;

    This package is always call. On each routines performed I execute it. In the trace log of the database we have see a problem we the procedure GET_PROC_NAME in the package. We have identify that is called more that 800x and increase the performance. Who increase is this select command :
        SELECT * INTO SOURCE_TEXT
        FROM (SELECT TEXT FROM all_source
            WHERE OWNER = SOURCE_OWNER AND
                  NAME=SOURCE_NAME AND
                  TYPE IN ('PROCEDURE','FUNCTION','PACKAGE BODY') AND
                  LINE <= SOURCE_LINE AND SUBSTR(TRIM(TEXT),1,9) IN ('PROCEDURE','FUNCTION ')
            ORDER BY LINE DESC)
        WHERE ROWNUM = 1;Complex SQL like inline views and views of views can overwhelm the cost-based optimizer resulting in bad execution plans. Start with getting an execution plan of your problem query to see if it is inefficient - look for full table scans in particular. You might bet better performance by eliminating the IN and merging the results of 3 queries with a UNION.

  • Web Reporting Performance issue

    Hello All,
    We have some webreports, which contains "Dropdown Boxes" for filters. When I execute the report it is taking very long time, and i realized it is due to filling the filter(characterstic) values with dropdown boxes... Query execution time is more..
    To solve this problem, I have removed all the "Dropdown boxes" for filters, and used "Navigation Block" with all the filters. After that the performance of the Webreport(initial screen) is improved by more than 50%.
    Now the issue is, when I click on one of the filters of the navigation block, to open filter values window, it is again taking long time.
    Is there anyway to improve the response time to open the filter values window of the Navigation block filter?
    Is my approach to improve the performance of a webreport is suggestable or is there any other way?
    Please suggest me.
    Thanks
    ravi

    Hi Ravi,
    try to use <param name="BOOKED_VALUES" value="Q"> in your Dropdown Box properties.
    If you use more than one DDB in your webtemplate, you can send the request to the
    server until all dropdown boxes with a sumbit button.
    Here is the code example for this solution:
    <form name="form_1" method="post" action="<SAP_BW_URL DATA_PROVIDER='DATAPROVIDER_1'
    FILTER_IOBJNM_1=’MYOBJ_1’ FILTER_IOBJNM_2='MYOBJ_2'>">
    <select name="FILTER_VALUE_1" size="1">
    <object>
    <param name="OWNER" value="SAP_BW">
    <param name="CMD" value="GET_ITEM">
    <param name="NAME" value="DROPDOWNBOX_1">
    <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_FILTER_DDOWN">
    <param name="DATA_PROVIDER" value="DATAPROVIDER_1">
    <param name="GENERATE_CAPTION" value="">
    <param name="IOBJNM" value="MYOBJ_1">
    <param name="ONLY_VALUES" value="X">
    <param name="BOOKED_VALUES" value="Q">
    ITEM: DROPDOWNBOX_1
    </object>
    </select>
    <select name="FILTER_VALUE_2" size="1">
    <object>
    <param name="OWNER" value="SAP_BW">
    <param name="CMD" value="GET_ITEM">
    <param name="NAME" value="DROPDOWNBOX_2">
    <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_FILTER_DDOWN">
    <param name="DATA_PROVIDER" value="DATAPROVIDER_1">
    <param name="GENERATE_CAPTION" value="">
    <param name="IOBJNM" value="MYOBJ_2">
    <param name="ONLY_VALUES" value="X">
    <param name="BOOKED_VALUES" value="Q">
    ITEM: DROPDOWNBOX_2
    </object>
    </select>
    <input type="submit" value="Submit ">
    </form>
    rgds Jens

  • Webi reports based on the BW query that sits on top of BW Infoset

    Hi everyone,
    I do can create the BW OLAP connection on BW Infosets, but when I use the Bex Query and try to create the report, when I launch the report in Webi, it doesn't return any values, but when I launch the Bex Query itself, it does have data!
    Any ideas why this happens?
    I don't have any filters, it's a simple test query and test report.
    Thanks!

    Hi,
    What's happens when testing the query in RSRT? 
    How about trace log analysis in ST05 and RSRT ?
    What happens in the SOFA /  MDA .log ? Any error there?
    Regards,
    H

  • Web templates (CSS / HTML) - not just iWeb - that look like Apple sites?

    Is there anywhere that has a website template, either paid for or free, that would make a site look like the apple site (like this one and the store homepage etc!)
    I really like the clean look and feel of it, and love the menue bar in particular.
    Does anyone know of anywhere?

    Why not create it yourself without the need for a template.
    It would be simple enough to do - just select the white template in iWeb and create your own nav menu using shapes etc. and you can create it yourself without having to spend any money.

  • How to add Tabs and List Boxes in Webi Report in Reporting Area(Not Report Filters & Input Controls)

    Hi All,
    I have a requirement to use some components called List Box and Tabs in my WebI report for presenting the information by dynamic dimension and measure selection using list box and segregate information by using Tabs as in below image.
    Image was prepared in MSPaint not executable webi report.
    Is it possible to integrate the list box and tabs into Report Zone in BO Webi? as show in below image?
    Thanks in Advance
    Muralidhar Reddy N

    Hello Muralidhar Reddy,
    The exact tool for your requirement is SAP BO Dashboard or SAP BO Design studio. WebI is a tool for ad-hoc reporting tool and we have limited functionalities to make dashboards using webI. You can have all those chart options in WebI and you can use Input controls or drill filters for restricting data. But you cannot have these selection components in reporting area. Tabs as shown in above post, you can have in bottom of the report.
    find below a good example of dashboard using WebI
    http://blog.davidg.com.au/2011/04/webi-as-dashboard.html
    hope it helps
    Regards,
    Nikhil Joy

  • BEx Variable default value does not pass thru to Webi report

    Hi,
    It appears that the integration between BEx and BOBJ Webi does not support default values when the webi report is scheduled.  This means that if Webi/Infoview is the delivery method, than clients require 2 reports.  1 for adhoc and 1 for scheduling.  Is there another way around this so 2 reports are not required?  See SAP Knowledge Base Article  https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/sno/ui_entry/entry.htm?param=69765F6D6F64653D3030312669765F7361706E6F7465735F6E756D6265723D3030303136363534393826
    Regards,
    Dae Jin

    Hi,
    Yes it is not supported. you can achieve by writing customer exit for this.
    in istep 2,
    check whether the variable value is intial.
    if intial
    pass default value
    if not intial (else)
    dont do any change, just pass the user input to restriction.
    -Sriram

Maybe you are looking for

  • How do I change the names associated with numbers on my bill

    I have multiple numbers on my bill that have the wrong names associated with them.  I have tried calling *611 only to wait and then be disconnected. I am the account owner  and am unable to locate where to correct the information.

  • Thread Pool , Executors ...

    Sorry if i make a stupid post now, but i'm looking for a implementation of a Thread Pool using the latest 1.5 java.util.concurrent classes and i can't find anything serious. Any implementation or link to a tutorial should be vary helpful. Thnx

  • Not charging Ipad mini

    My Ipad mini will not charge.  It is not the cable nor is it the charger.  My daughter has a Ipad mini also and have checked all components against hers.  All work perfectly fine when connected to her Ipad but do not when connected to mine. the only

  • Third Party Sales Senerio

    H Guru's Company will not produce Material - A, They procure from 3rd party, one customer ordered 100 Nos of MAterial A, and raised PR and P.O for 100 Nos, and invoiced the customer for 100 Nos, and customer paid for 100 Nos, after noticed that only

  • HT4946 I am getting Error 3014 when trying to restore my iphone 3GS?

    I am updating the operating system on my iphone 3GS, as prompted by itunes. I have a screen on the mac saying 'iphone recovery mode' I check all the prompts but the phone failts to restore quoting Error 3014. Anyone know what the problem is and how t