Run procedure - error handling

Hi,
I 've created a run procedure to fire off my test cases. In cases of success he puts ' PASS', in case of failure he puts 'FAIL' as status , however when the sql query is invalid he currently stops the procedure and RAISES the error.
I would like to let the procedure continue till the end and as status insert 'ERRO' for that query rather than that the procedure stops and raises teh error. This, to enable the procedure to be run completely even if a test case is badly written.
Could someone pls help out?
thnx
CREATE OR REPLACE PROCEDURE              RUN_TEST_CASES 
   AS
    cursor c_etrm_test_cases
    is
        select   test_group,
                 test_id,
                 test_type,
                 test_desc,
                 test_level,
                 test_query,
                 test_owner,
                 test_creation,
                 expected_result
          from   etrm_test_cases;
    v_result          number (10);
    v_tstart          timestamp (0);
    v_tend            timestamp (0);
    v_cresult         char (4);
    v_remark          varchar2 (2000);
    v_runid           number (3);
begin
    --check for active run_id
    select   a.run
      into   v_runid
      from   zainet_dev_mig.ZN_TEC_INFRA_RUN a
     where   a.active = 'Y';
    for r_etrm_test_cases in c_etrm_test_cases
    loop
        --start timestamp
        select   CURRENT_TIMESTAMP (0) into v_tstart from DUAL;
        --execute the query - test case
        begin
            execute immediate TO_CHAR (r_etrm_test_cases.test_query)
                into   v_result;
        exception
            when others
            then raise;
        end;
        --was the result as expected?
        if v_result = r_etrm_test_cases.expected_result
        then
            v_cresult := 'PASS';
            v_remark := null;
        else
            v_cresult := 'FAIL';
            v_remark :=
                   'Expected '
                || TO_CHAR (r_etrm_test_cases.expected_result)
                || ', got '
                || TO_CHAR (v_result);
        end if;
        --end timestamp
        select   CURRENT_TIMESTAMP (0) into v_tend from DUAL;
        BEGIN
        UPDATE ZAINET_DEV_MIG.etrm_test_log
        SET ZAINET_DEV_MIG.etrm_test_log.result = v_result,
            ZAINET_DEV_MIG.etrm_test_log.time_start = v_tstart,
            ZAINET_DEV_MIG.etrm_test_log.time_end = v_tend,
            ZAINET_DEV_MIG.etrm_test_log.status = v_cresult,
            ZAINET_DEV_MIG.etrm_test_log.run_id = v_runid,
            ZAINET_DEV_MIG.etrm_test_log.action = 'UPDATE'
            WHERE ZAINET_DEV_MIG.etrm_test_log.test_id in (select test_id from ZAINET_DEV_MIG.etrm_test_cases);
       EXCEPTION WHEN others
       THEN
       BEGIN
       insert into ZAINET_DEV_MIG.etrm_test_log (test_group,
                                              test_id,
                                              test_type,
                                              test_desc,
                                              test_level,
                                              test_query,
                                              test_owner,
                                              test_creation,
                                              expected_result,
                                              result,
                                              status,
                                              remark,
                                              time_start,
                                              time_end,
                                              run_id,
                                              action)
          values   (r_etrm_test_cases.test_group,
                    r_etrm_test_cases.test_id,
                    r_etrm_test_cases.test_type,
                    r_etrm_test_cases.test_desc,
                    r_etrm_test_cases.test_level,
                    r_etrm_test_cases.test_query,
                    r_etrm_test_cases.test_owner,
                    r_etrm_test_cases.test_creation,
                    r_etrm_test_cases.expected_result,
                    v_result,
                    v_cresult,
                    v_remark,
                    v_tstart,
                    v_tend,
                    v_runid,
                    'INSERT');
          EXCEPTION when others
          then raise;
          end;         
    end;
        commit;
    end loop;
end run_test_cases;Edited by: BluShadow on 29-Jul-2011 13:39
added {noformat}{noformat} tags.  Please read {message:id=9360002} to learn to do this yourself.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

It could be that the insert into etrm_test_log is raising another invalid number exception - completely unrelated to the first. You should have a full error stack which will point to the line number that is raising the exception.
Check the types of the variables against each column you are inserting.
Also with reference to the Merge that BluShadow mentioned, you've not really done anything about it. The very least you should do if you're not going to follow that advice is to get rid of the WHEN OTHERS and replace it with WHEN DUP_VAL_ON_INDEX. That is more precise than WHEN OTHERS...
/* Formatted on 01/08/2011 10:21:26 (QP5 v5.163.1008.3004) */
CREATE OR REPLACE PROCEDURE run_test_cases
AS
   CURSOR c_etrm_test_cases
   IS
      SELECT test_group,
             test_id,
             test_type,
             test_desc,
             test_level,
             test_query,
             test_owner,
             test_creation,
             expected_result
        FROM etrm_test_cases;
   v_result    NUMBER (10);
   v_tstart    TIMESTAMP (0);
   v_tend      TIMESTAMP (0);
   v_cresult   CHAR (4);
   v_remark    VARCHAR2 (2000);
   v_runid     NUMBER (3);
BEGIN
   --check for active run_id
   SELECT a.run
     INTO v_runid
     FROM zainet_dev_mig.zn_tec_infra_run a
    WHERE a.active = 'Y';
   FOR r_etrm_test_cases IN c_etrm_test_cases
   LOOP
      --start timestamp
      SELECT CURRENT_TIMESTAMP (0) INTO v_tstart FROM DUAL;
      --execute the query - test case
      BEGIN
         EXECUTE IMMEDIATE TO_CHAR (r_etrm_test_cases.test_query)
            INTO v_result;
      EXCEPTION
         WHEN INVALID_NUMBER
         THEN
            INSERT INTO zainet_dev_mig.etrm_test_log (test_group,
                                                      test_id,
                                                      test_type,
                                                      test_desc,
                                                      test_level,
                                                      test_query,
                                                      test_owner,
                                                      test_creation,
                                                      expected_result,
                                                      result,
                                                      status,
                                                      remark,
                                                      time_start,
                                                      time_end,
                                                      run_id,
                                                      action)
                 VALUES (r_etrm_test_cases.test_group,
                         r_etrm_test_cases.test_id,
                         r_etrm_test_cases.test_type,
                         r_etrm_test_cases.test_desc,
                         r_etrm_test_cases.test_level,
                         r_etrm_test_cases.test_query,
                         r_etrm_test_cases.test_owner,
                         r_etrm_test_cases.test_creation,
                         r_etrm_test_cases.expected_result,
                         'ERROR: INVALID NUMBER',
                         'ERROR: INVALID NUMBER',
                         'CHECK QUERY - ERROR: INVALID NUMBER',
                         NULL,
                         NULL,
                         v_runid,
                         'ERROR: INVALID NUMBER');
      END;                                       --was the result as expected?
      IF v_result = r_etrm_test_cases.expected_result
      THEN
         v_cresult := 'PASS';
         v_remark := NULL;
      ELSE
         v_cresult := 'FAIL';
         v_remark :=
               'Expected '
            || TO_CHAR (r_etrm_test_cases.expected_result)
            || ', got '
            || TO_CHAR (v_result);
      END IF;
      --end timestamp
      SELECT CURRENT_TIMESTAMP (0) INTO v_tend FROM DUAL;
      BEGIN
         INSERT INTO zainet_dev_mig.etrm_test_log (test_group,
                                                   test_id,
                                                   test_type,
                                                   test_desc,
                                                   test_level,
                                                   test_query,
                                                   test_owner,
                                                   test_creation,
                                                   expected_result,
                                                   result,
                                                   status,
                                                   remark,
                                                   time_start,
                                                   time_end,
                                                   run_id,
                                                   action)
              VALUES (r_etrm_test_cases.test_group,
                      r_etrm_test_cases.test_id,
                      r_etrm_test_cases.test_type,
                      r_etrm_test_cases.test_desc,
                      r_etrm_test_cases.test_level,
                      r_etrm_test_cases.test_query,
                      r_etrm_test_cases.test_owner,
                      r_etrm_test_cases.test_creation,
                      r_etrm_test_cases.expected_result,
                      v_result,
                      v_cresult,
                      v_remark,
                      v_tstart,
                      v_tend,
                      v_runid,
                      'INSERT');
      EXCEPTION
         WHEN DUP_VAL_ON_INDEX
         THEN
               UPDATE zainet_dev_mig.etrm_test_log
                  SET zainet_dev_mig.etrm_test_log.result = v_result,
                      zainet_dev_mig.etrm_test_log.time_start = v_tstart,
                      zainet_dev_mig.etrm_test_log.time_end = v_tend,
                      zainet_dev_mig.etrm_test_log.status = v_cresult,
                      zainet_dev_mig.etrm_test_log.run_id = v_runid,
                      zainet_dev_mig.etrm_test_log.action = 'UPDATE'
                WHERE zainet_dev_mig.etrm_test_log.test_id =
                         r_etrm_test_cases.test_id;
      END;
      COMMIT;
   END LOOP;
END run_test_cases;HTH
David

Similar Messages

  • Break execution after custom run-time error handler callback

    I am using Teststand 2010 SP1 and have written a custom runtime error handler based on the ErrorHandlerExample example that ships with TestStand. It has been implemented as a StationPostStepRuntimeError callback in my Station Callbacks folder.  I have modified the example as follows:
    (1) Added code to turn off the UUT transmitter if it was on.
    (2) Added a call to an executable that sends an email to the currently logged in user.
    (3) Calls the standard TestStand run-time error dialog using the Engine DisplayRunTimeErrorDialog method.
    (4) Processes the user's selection, then turns on the UUT transmitter for any option other then Abort.
    The callback also checks the status of the Break and "Don't Show again for this execution" options selected by the user.  If the user selects Break then the only option I can find is to call the API Execution.Break() method which breaks the execution right there in my callback. The user then has to single step there way out of the callback.   Is there a way of instructing TestStand to complete the callback execution and break immediately after completing the callback (i.e.at the step following the error)?  I've zipped up and attached my modified sequence.
    Alternatively, is there a better way of doing this?
    Regards,
    David
    Solved!
    Go to Solution.
    Attachments:
    StationCallbacks.7z ‏13 KB

    Didn't have a chance to try it yet but maybe StepOut is your solution?
    From the TS Help:
    StepOut Method
    Syntax
    Execution.StepOut
    Purpose
    Resumes the execution from a suspended state and then suspends the execution again after execution of the current sequence completes.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Run-time error handling without popup

    I'm searching for a way to make a CVI executable more robust by performing an automatic routine if any run-time error occurs.  Basically I don't like the fact that a popup is displayed and the program is halted in the event of a fatal run-time error.  I cannot prevent a fatal run-time error from ever occurring so I was hoping there was a way to handle it automattically when CVI detects it.  So far though, the only thing that I've found is the CVI run-time error popup which suspends the program until user input or in release mode, a Windows popup that suspends the program in a similar manner with more cryptic OS level exception info.  I'm using Windows XP and CVI 2009, thanks.

    Ok, well, the source of the fatal run-time error seems to be within a function call to imaqSnap within the NI Vision library.  imaqSnap() is a function that just grabs 1 frame of video.  We're using NI Vision 8.5 with a PCI-1422 Imaq card and whenever there is no signal present at the input of the card, we get the following error:
    FATAL RUN-TIME ERROR:   "Imaq_support.c", line 187, col 18, thread id 0x000004F8:   Function : (errorCode = -1074397150 [0xbff60022]). A timeout error occurred while waiting for the specified event.  If waiting for an image, verify that all video data is acquired within the timeout period.  If waiting for a signal, verify that the signal assertion occurs within the timeout period.
    Line 187 is the line with the call to imaqSnap shown below:
                                                /* Initialize the Image Capture system */
                                                /* Open an interface and a session */
          ApplErrChk(imgInterfaceOpen ("img0", &Iid));
          ApplErrChk(imgSessionOpen (Iid, &Sid));
                                                /* set aquire mode */
        /* Snap a picture : ImaqBuffer is NULL, memory will be allocated by NI-IMAQ */
          AcqImage = NULL;
          AcqImage = imaqSnap (Sid, NULL, IMAQ_NO_RECT);
          if (AcqImage == NULL) {
            ErrNull = TRUE;
            iErrCode = imaqGetLastError();
            if (iErrCode != ERR_SUCCESS) goto tst_exit;
    It seems to me that this should not be a fatal run-time error, it should instead throw a non-fatal timeout error and allow our calling code to handle the null reference to the image.  Since it's a fatal error though, it doesn't allow me to ignore the run-time error and handle it gracefully.  The Sid and Iid references look fine when it throws the error so I'm unable to detect the problem before the function call.  Any thoughts on how to fix this issue?

  • Error Handling in Stored Procedure code

    Hi All,
    I need to know which step is failing and whats the error message when i run a stored procedure.
    Lets say i have a stored procedure with below content.So i want to know which of the below four statements failed,and
    the error message belonging to it.
    How can i modify the below code to achieve my output.
    begin try
    DELETE FROM Table1 WHERE Column1 = 'A'
    UPDATE Table1 SET Column1 = 'C' WHERE Column2 = 'B'
    SELECT * FROM Table1 WHERE Column3 = 'C'
    SELECT * FROM Table1 WHERE Column4 = 'D'
    end try
    begin catch
    end catch
    Thanks in Advance!!

    Take a look at this excellent TechNet Wiki article
    Structured
    Error Handling Mechanism in SQL Server 2012
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • Error while running procedure for refreshing AWS

    Hello There,
    I am using a procedure which consists the script of refreshing the analytic workspace. I call this procedure from Business objects data services for automatic refresh.
    It used to work perfectly until the recent changes implemented.
    The issue is, when I run the procedure the cube refreshes successfully. When the same procedure is called from BODS, it shows an error.
    Error is :: XOQ-01601: error while loading data for cube dimension "BI_PETRA_DWH.ACTIVITY_TIME"  into analytic workspace
    Underlying DB error is : ORA-01858: a non -numeric character was found where a numeric was expected.
    I dont get this error if I run procedure directly in SQL developer.
    I verified attribues of dimension, there is only one numeric attribute and it is mapped to only numeric columns of view.
    Can you please help me fixing this issue?
    Thanks in advance.

    Hello There,
    I am using a procedure which consists the script of refreshing the analytic workspace. I call this procedure from Business objects data services for automatic refresh.
    It used to work perfectly until the recent changes implemented.
    The issue is, when I run the procedure the cube refreshes successfully. When the same procedure is called from BODS, it shows an error.
    Error is :: XOQ-01601: error while loading data for cube dimension "BI_PETRA_DWH.ACTIVITY_TIME"  into analytic workspace
    Underlying DB error is : ORA-01858: a non -numeric character was found where a numeric was expected.
    I dont get this error if I run procedure directly in SQL developer.
    I verified attribues of dimension, there is only one numeric attribute and it is mapped to only numeric columns of view.
    Can you please help me fixing this issue?
    Thanks in advance.

  • Error Handling on procedure based forms

    Hi all,
    I have seen examples of error handling on table based forms like
    the following:
    begin
    doInsert;
    exception
    when others then
    --redirect to some error page
    I have tried the same with a procedure based form by wrapping
    the doSubmit procedure, but when the procedure returns an
    exception, it doesn't execute my exception handling code.
    Any ideas on why this is happening or at least how I can catch
    these exceptions with my own exception handler?
    Thanks,
    Curt

    Chetan, Antonio,
    I opened a TAR on this issue with Oravle and they got the same
    results. Thay suggested a work around of creating an error table
    that gets written to and then dispaly and new page to retrieve
    the error from the table.
    What I ended up doing is creating a dummy procedure that does
    nothing (NULL). The form based on the dummy procedure allows me
    to get the values I need from the user.
    The procedure always returns succesful since it doesn't do
    anything. So in the form success code area I call the real
    procedure, check the return value, and now I can redirect back
    to the orignal form on error, or direct to another paqe on
    success.
    Not the most elegant solution, but it is working for now.
    Curt

  • RAPOST2000 error handling depreciation test run

    I have a problem with the error handling in ECC 6.0 (RAPOST2000). when I run a test run in foreground, the error list is diplayed nicely and i can doble click to see the problem for each asset. But as we have more than 1000 assets we have to run the test run in background, resulting that the error list is placed in the spool without the possibility to drill down to the problem per asset (only the error no displayed in the list). How to proceed to get a smooth way of handling errors without to use two lists ( first the errors per asset, and then the list explaining the error).

    Yes, the "Error Analaysis" indicator was ticked when starting the depreciation test run. So, that does not solve the problem having to match 2 different list/reports to analyze/correct the errors.
    Regards

  • Is including an error handler in every procedure OK?

    Hello,
    I have read a lot of articles about error handling on the internet but could not find advice on whether it is good/acceptable practice to put a handler in every procedure. My goal
    when debugging is to break on every error, so that the relevant variables are still in scope, and I can view them and react to the error. Is there a VS setting for this, or do I need to achieve this via error handling?
    In VB6 I think that there used to be a “Break on all errors” option.
    Currently, many procedures in my code do not have error handlers. When an error is encountered in a procedure that does not have an error handler, I believe that control is passed back down the stack to the first procedure that has a Catch.
    This makes it hard to debug, because the error variables that I need to review are out of scope.
    Therefore, if one is not worried about performance considerations, is it reasonable/best practice to include an error handler in every procedure where there might conceivably be an error?
    Also, how will the above approaches affect runtime behaviour?
    Many thanks.
    Keith
    R K Howard

    Hi Keith,
    First, just to be clear, I am going to assume that by error handling we are talking about Try-Catch blocks in code.  As Acamar said, if you write a block of code that has the potential to fail, and you have a plan for doing something when that failure
    occurs, then definitely wrap the code block in a Try-Catch. 
    As for what happens in the debugger when an error occurs, it depends on the context of the error and the assembly in which it occurred.  If you are still on the UI thread and the error occurred in your code or a base class library, then execution
    will stop on the line of code that caused the error - with or without a Try-Catch.  If however the error occurred in another thread, asynchronously, or within an assembly for which you do not have source code (or in unmanaged code), then the debugger
    will break at the lowest spot in the stack where managed code with known source was executed, or nowhere (no source available) if there is no source code or you broke in unmanaged code.  In these cases, adding a Try-Catch might let you break closer to
    the exception because there is managed code executed to create the Try statement - but it still doesn't let you break
    at the actual exception because there's still either no source code or the error is unmanaged.
    So I guess the answer is two-part: don't be afraid to use Try-Catch anywhere that it makes sense, and wait for the improved debugging experience in the next version of Visual Studio (they're improving the ability to debug with secondary threads and async
    code execution).
    Reed Kimble - "When you do things right, people won't be sure you've done anything at all"

  • Procedure run time error

    create or replace
    PROCEDURE proc1
    AS
    v_ename CHAR(20);
    v_salary NUMBER(10,0);
    BEGIN
    SELECT ename , sal
    INTO v_ename,
    v_salary
    FROM emp
    WHERE sal > 1000;
    END;
    run time error:
    Connecting to the database scott.
    ORA-20001: Exact Fetch Returned Too many Rows
    ORA-06512: at "SCOTT.PROC1", line 14
    ORA-06512: at line 2
    Process exited.
    Disconnecting from the database scott.
    what is the solution for this one?

    99922255599 wrote:
    i think these upper suggestions are right ,
    IF NOT then What is your suggestion??You have not said whether you want to fetch a single row or fetch multiple rows. The reasons will differ. The method used will differ.
    For example, you have a parameter table for an application. The application needs a call that returns a specific parameter value from the table. Or you have an Invoicing Shipping and Billing process that needs all invoices with the same shipping zip code in order to create the most cost effective shipping orders for the goods. It needs a call that will return a non-processed invoice data set with the same zip code.
    Both are very different business needs. One does a single row fetch always. The other does anything from fetching a single invoice to 1000's of invoices.
    These will be implemented very differently. There is not single processing and cursor approach for all problems in PL/SQL. The HOW it is done depends on the WHAT needs to be done.
    As for fetching multiple rows - that is best done using bulk fetching. This provides the least amount of context switches between the PL/SQL and SQL engines. The basic sample template for bulk fetching is demonstrated in {message:id=9651210}.

  • Oracle stored procedure call failed,but not captured by the error handling

    Hi All,
    I have a unix shelll script which calls a stored proc in Oracle, the stored proc call failed due to "ORA-01033: ORACLE initialization or shutdown in progress".
    But it is not captured in the error handling block, Any ideas why this had happened?
    SQL file had : my_test_sql.sql
    exec my_proc(..............);
    Unix shell script has this call:
    sqlplus -s my_user/my_pwd@db1 @my_test_sql.sql
    if [[ $? -ne 0 ]]; then
    echo "failed"
    exit 1
    else
    echo "success"
    fi
    If i execute the above shell, I'm getting the following
    ERROR:
    ORA-01033: ORACLE initialization or shutdown in progress
    SP2-0306: Invalid option.
    Usage: CONNÝECT¨ Ýlogon¨ ÝAS SYSDBA¨
    where <logon> ::= <username>Ý/<password>¨Ý@<connect_identifier>¨ | /
    success.
    This puzzled me, any pointers?

    The $? status variable shows the return code of the last command executed. It will be difficult to determine what the exit status of your sql script is without knowing the script. Do you have any "WHENEVER SQLERROR EXIT" statements in the script?
    The ORA-01033 error happens when the database is not open, perhaps in recovery, or startup or shutdown is halted due to a failed or full disk, error in archiving or writing to redo, etc.

  • Run-time error "PXA_NO_SHARED_MEMORY" occurred

    Hi All,
    My production system is running fine. And when i check SM21 I saw a lot of error message Run-time error "PXA_NO_SHARED_MEMORY" occurred and Run-time error "SYSTEM_NO_ROLL" occurred. However I can't see any error in ST22. I had read sap note 307976. And dont know when I restart the SAP services is it will be fine?
    trc file: "dev_w0", trc level: 1, release: "640"
    ACTIVE TRACE LEVEL           1
    ACTIVE TRACE COMPONENTS      all, M

    B Mon Feb 22 08:13:29 2010
    B  create_con (con_name=R/3)
    B  Loading DB library 'D:\usr\sap\PRD\SYS\exe\run\dbmssslib.dll' ...
    B  Library 'D:\usr\sap\PRD\SYS\exe\run\dbmssslib.dll' loaded
    B  Version of 'D:\usr\sap\PRD\SYS\exe\run\dbmssslib.dll' is "640.00", patchlevel (0.58)
    B  New connection 0 created
    M sysno      00
    M sid        PRD
    M systemid   560 (PC with Windows NT)
    M relno      6400
    M patchlevel 0
    M patchno    58
    M intno      20020600
    M make:      multithreaded, ASCII
    M pid        2440
    M
    M  ***LOG Q0Q=> tskh_init, WPStart (Workproc 0 2440) [dpxxdisp.c   1160]
    I  MtxInit: -2 0 0
    M  DpSysAdmExtCreate: ABAP is active
    M  DpShMCreate: sizeof(wp_adm)          11592     (828)
    M  DpShMCreate: sizeof(tm_adm)          2219848     (11044)
    M  DpShMCreate: sizeof(wp_ca_adm)          18000     (60)
    M  DpShMCreate: sizeof(appc_ca_adm)     6000     (60)
    M  DpShMCreate: sizeof(comm_adm)          192000     (384)
    M  DpShMCreate: sizeof(vmc_adm)          0     (320)
    M  DpShMCreate: sizeof(wall_adm)          (22440/34344/56/100)
    M  DpShMCreate: SHM_DP_ADM_KEY          (addr: 047D0040, size: 2510384)
    M  DpShMCreate: allocated sys_adm at 047D0040
    M  DpShMCreate: allocated wp_adm at 047D17A8
    M  DpShMCreate: allocated tm_adm_list at 047D44F0
    M  DpShMCreate: allocated tm_adm at 047D4518
    M  DpShMCreate: allocated wp_ca_adm at 049F2460
    M  DpShMCreate: allocated appc_ca_adm at 049F6AB0
    M  DpShMCreate: allocated comm_adm_list at 049F8220
    M  DpShMCreate: allocated comm_adm at 049F8238
    M  DpShMCreate: allocated vmc_adm_list at 04A27038
    M  DpShMCreate: system runs without vmc_adm
    M  DpShMCreate: allocated ca_info at 04A27060
    M  DpShMCreate: allocated wall_adm at 04A27068
    X  EmInit: MmSetImplementation( 2 ).
    X  <ES> client 0 initializing ....
    X  Using implementation flat
    M  <EsNT> Memory Reset disabled as NT default
    X  ES initialized.

    M Mon Feb 22 08:13:30 2010
    M  calling db_connect ...
    C  Thank You for using the SLOLEDB-interface
    C  Using dynamic link library 'D:\usr\sap\PRD\SYS\exe\run\dbmssslib.dll'
    C  dbmssslib.dll patch info
    C    patchlevel   0
    C    patchno      58
    C    patchcomment MSSQL: Workaround for SQL2005 change in RpcNexecInsert (814383)
    C  np:(local) connection used on PKG-PRD
    C  CopyLocalParameters: dbuser is 'prd'

    C Mon Feb 22 08:13:31 2010
    C  Provider SQLNCLI could not be initialized. See note #734034 for more information.
    C  Using provider SQLOLEDB instead.
    C  OpenOledbConnection: MARS property was not set.
    C  Provider Release:08.50.1022
    C  Provider SQLNCLI could not be initialized. See note #734034 for more information.
    C  Using provider SQLOLEDB instead.
    C  OpenOledbConnection: MARS property was not set.

    C Mon Feb 22 08:13:42 2010
    C  Cache sizes: header 52 bytes, 20000 names (26720000 bytes), 1000 dynamic statements (5432000 bytes), total 32152052 bytes
    C  Using shared procedure name cache PKG-PRD_PRDPRD_PRD_MEM initialized by another process.
    C  Connected to db server : [PKG-PRD] server_used : [np:(local)], dbname: PRD, dbuser: prd
    C  pn_id:PKG-PRD_PRDPRD_PRD
    C  Not using MARS (on sql 8.0)
    B  Connection 0 opened (DBSL handle 0)
    B  Wp  Hdl ConName          ConId     ConState     TX  PRM RCT TIM MAX OPT Date     Time   DBHost         
    B  000 000 R/3              000000000 ACTIVE       NO  YES NO  000 255 255 20100222 081330 PKG-PRD        
    C  The IRow interface is supported by this OLEDB provider
    M  db_connect o.k.

    I Mon Feb 22 08:14:02 2010
    I  MtxInit: 0 0 0
    M  SHM_PRES_BUF               (addr: 09E50040, size: 4400128)
    M  SHM_ROLL_AREA          (addr: 12510040, size: 262144000)
    M  SHM_PAGING_AREA          (addr: 617B0040, size: 113246208)
    M  SHM_ROLL_ADM               (addr: 0A290040, size: 2616690)
    M  SHM_PAGING_ADM          (addr: 0A510040, size: 525344)
    M  ThCreateNoBuffer          allocated 320144 bytes for 1000 entries at 0A5A0040
    M  ThCreateNoBuffer          index size: 3000 elems
    M  ThCreateVBAdm          allocated 7424 bytes (50 server) at 0A5F0040
    X  EmInit: MmSetImplementation( 2 ).
    X  <ES> client 0 initializing ....
    X  Using implementation flat
    X  ES initialized.
    B  db_con_shm_ini:  WP_ID = 0, WP_CNT = 14
    B  dbtbxbuf: Buffer TABL  (addr: 103500C8, size: 30000128, end: 11FEC4C8)
    B  dbtbxbuf: Buffer TABLP (addr: 0E5200C8, size: 10240000, end: 0EEE40C8)
    B  dbexpbuf: Buffer EIBUF (addr: 0EF000D0, size: 4194304, end: 0F3000D0)
    B  dbexpbuf: Buffer ESM   (addr: 0F3100D0, size: 4194304, end: 0F7100D0)
    B  dbexpbuf: Buffer CUA   (addr: 0F7200D0, size: 3072000, end: 0FA0E0D0)
    B  dbexpbuf: Buffer OTR   (addr: 0FA100D0, size: 4194304, end: 0FE100D0)
    M  rdisp/reinitialize_code_page -> 0
    M  icm/accept_remote_trace_level -> 0
    M  rdisp/no_hooks_for_sqlbreak -> 0
    C  Provider SQLNCLI could not be initialized. See note #734034 for more information.
    C  Using provider SQLOLEDB instead.
    C  OpenOledbConnection: MARS property was not set.
    S  *** init spool environment
    S  initialize debug system
    T  Stack direction is downwards.
    T  debug control: prepare exclude for printer trace
    T  new memory block 120D8040
    S  spool kernel/ddic check: Ok
    S  using table TSP02FX for frontend printing
    S  1 spool work process(es) found
    S  frontend print via spool service enabled
    S  printer list size is 150
    S  printer type list size is 50
    S  queue size (profile)   = 300
    S  hostspool list size = 3000
    S  option list size is 30
    S      found processing queue enabled
    S  found spool memory service RSPO-RCLOCKS at 121F0098
    S  doing lock recovery
    S  setting server cache root
    S  found spool memory service RSPO-SERVERCACHE at 121F03E0
    S    using messages for server info
    S  size of spec char cache entry: 165020 bytes (timeout 100 sec)
    S  size of open spool request entry: 1152 bytes
    S  immediate print option for implicitely closed spool requests is disabled

    A  -PXA--
    A  PXA INITIALIZATION
    A  PXA: Fragment Size too small: 107 MB, reducing # of fragments
    A  System page size: 4kb, admin_size: 13396kb.
    A  Attached to PXA (address 21F30040, size 440000K)
    A  abap/pxa = shared protect gen_remote
    A  PXA INITIALIZATION FINISHED
    A  -PXA--

    C  The IRow interface is supported by this OLEDB provider
    B  dbtran INFO (init_connection '<DEFAULT>' [MSSQL:640.00]):
    B   max_blocking_factor =  50,  max_in_blocking_factor      = 255,
    B   min_blocking_factor =   5,  min_in_blocking_factor      =  10,
    B   prefer_union_all    =   1,  prefer_union_for_select_all =   0,
    B   prefer_fix_blocking =   0,  prefer_in_itab_opt          =   0,
    B   convert AVG         =   1,  alias table FUPD            =   0,
    B   escape_as_literal   =   0,  opt GE LE to BETWEEN        =   0,
    B   select *            =0x00,  character encoding          =SBCS / []:X,
    B   use_hints           = abap->1, dbif->0x1, upto->0, rule_in->0,
    B                         rule_fae->0, concat_fae->0, concat_fae_or->0

    A Mon Feb 22 08:14:03 2010
    A  ABAP ShmAdm attached (addr=53EC5000 leng=20955136 end=552C1000)
    A  >> Shm MMADM area (addr=5422D180 leng=134720 end=5424DFC0)
    A  >> Shm MMDAT area (addr=5424F000 leng=17244160 end=552C1000)
    A  RFC Destination> destination pkg-prd_PRD_00 host pkg-prd system PRD systnr 0 (pkg-prd_PRD_00)
    A  RFC Options> H=pkg-prd,S=00
    A  RFC FRFC> fallback activ but this is not a central instance.
    A   
    A  RFC rfc/signon_error_log = -1
    A  RFC rfc/dump_connection_info = 0
    A  RFC rfc/dump_client_info = 0
    A  RFC rfc/cp_convert/ignore_error = 1
    A  RFC rfc/cp_convert/conversion_char = 23
    A  RFC rfc/wan_compress/threshold = 251
    A  RFC rfc/recorder_pcs not set, use defaule value: 1
    A  RFC rfc/delta_trc_level not set, use default value: 0
    A  RFC rfc/no_uuid_check not set, use default value: 0
    A  RFC abap/SIGCHILD_default not set, use default value: 0
    A  RFC Method> initialize RemObjDriver for ABAP Objects
    A  Hotpackage version: 49
    M  ThrCreateShObjects          allocated 14604 bytes at 0FFD0040

    N Mon Feb 22 08:14:05 2010
    N  SsfSapSecin: putenv(SECUDIR=D:\usr\sap\PRD\DVEBMGS00\sec): ok

    N  =================================================
    N  === SSF INITIALIZATION:
    N  ===...SSF Security Toolkit name SAPSECULIB .
    N  ===...SSF trace level is 0 .
    N  ===...SSF library is D:\usr\sap\PRD\SYS\exe\run\sapsecu.dll .
    N  ===...SSF hash algorithm is SHA1 .
    N  ===...SSF symmetric encryption algorithm is DES-CBC .
    N  ===...sucessfully completed.
    N  =================================================
    N  MskiInitLogonTicketCacheHandle: Logon Ticket cache pointer retrieved from shared memory.
    N  MskiInitLogonTicketCacheHandle: Workprocess runs with Logon Ticket cache.
    W  =================================================
    W  === ipl_Init() called
    W    ITSP Running against db release 620!
    W    ITSP Disable Kernel Web GUI functionality
    W  === ipl_Init() returns 2, ITSPE_DISABLED: Service is disabled (sapparam)
    W  =================================================

    E Mon Feb 22 08:14:39 2010
    E  Replication is disabled

    C Mon Feb 22 08:15:00 2010
    C  sloledb.cpp [DoDbcc,line 2930]: Error/Message: (err 2571, sev 0), User 'prd' does not have permission to run DBCC CACHEPROFILE.
    C  Procname: [No proc]

    C Mon Feb 22 08:15:01 2010
    C  statement rerun with user dbo was successful, you can ignore the preceeding message

    C Mon Feb 22 08:16:27 2010
    C  Provider SQLNCLI could not be initialized. See note #734034 for more information.
    C  Using provider SQLOLEDB instead.
    C  OpenOledbConnection: MARS property was not set.

    S Mon Feb 22 08:19:23 2010
    S  found spool memory service RSPO-ACTIONS at 121F4C68

    A Mon Feb 22 08:19:55 2010
    A  TH VERBOSE LEVEL FULL
    M  ***LOG R68=> ThIRollBack, roll back () [thxxhead.c   12304]
    C  Rollback Work (0)

    A Mon Feb 22 08:19:59 2010
    A  Mon Feb 22 08:19:59 2010

    A  ABAP/4 Program /SDF/SAPLRI_SQLSERVER                   .
    A  Source /SDF/LRI_SQLSERVERU02                    Line 264.
    A  Error Code CALL_FUNCTION_CONFLICT_LENG.
    A  Module  $Id: //bas/640_REL/src/krn/runt/abfunc.c#14 $ SAP.
    A  Function FuncParams Line 2906.
    C  Rollback Work (0)

    C Mon Feb 22 08:20:00 2010
    C  sloledb.cpp [DoDbcc,line 2930]: Error/Message: (err 2571, sev 0), User 'prd' does not have permission to run DBCC loginfo.
    C  Procname: [No proc]

    C Mon Feb 22 08:20:01 2010
    C  statement rerun with user dbo was successful, you can ignore the preceeding message

    C Mon Feb 22 08:20:07 2010
    C  sloledb.cpp [ParamStmtExec,line 12251]: Error/Message: (err 50000, sev 0), Table not found.
    C  Procname: [##Y3PKG_PRDprd00000024400000003365081342]
    C  ParamStmtExec failed.  HR 80040e14 DBSL retcode 99. stmt: [sap_get_table_size_info 'syscomments', 'prd', 'PRD'
    C  /* R3:CL_SQL_RESULT_SET=============CP:234 T: */
    C  ]
    C  Conn_i:2 selection:1 singleton:0 flag_fupd:0 use_cursor:0 chksum: 222194
    C  dbdsmss: DBSL99 SQL50000
    C  Table not found.
    B  ***LOG BY2=> sql error 50000      performing FET        [dbds#3 @ 592] [dbds    0592 ]
    B  ***LOG BY0=> Table not found. [dbds#3 @ 592] [dbds    0592 ]
    B  ***LOG BY1=> sql error 50000      [dbacds#2 @ 1187] [dbacds  1187 ]

    B Mon Feb 22 08:26:10 2010
    B  dbmyclu : info : my major identification is 3232261128, minor one 0.
    B  dbmyclu : info : Time Reference is 1.12.2001 00:00:00h GMT.
    B  dbmyclu : info : my uuid is 31B87DDDE43B904B955F2E6B45F604BE.
    B  dbmyclu : info : current optimistic cluster level: 3
    B  dbmyclu : info : pessimistic reads set to 2.
    N  login/password_change_for_SSO : 1 -> 1

    B Mon Feb 22 08:32:54 2010
    B  table logging switched off for all clients

    M Mon Feb 22 08:45:50 2010
    M  PfHIndInitialize: memory=<60720150>, header=<60720150>, records=<60720180>

    S Mon Feb 22 08:55:52 2010
    S  handle memory type is RSTSPROMMM

    M Mon Feb 22 09:18:08 2010
    M  *** ERROR => NiProcMsg: rc=-104 (NIEROUT_SNC_FAILURE) from router [nibuf.c      423]
    M  *** ERROR => MsIAttachEx: NiBufConnect to /H/192.168.100.7/S/sapdp99/H/194.39.131.34/S/sapdp99/H/oss001/sapmsOSS failed (rc=NIEROUT_SNC_FAILURE) [msxxi.c      633]
    M  *** ERROR => LgIAttach: MsAttach (rc=NIEROUT_SNC_FAILURE) [lgxx.c       2984]
    M  *** ERROR => LgIGroup: LgIAttach(rc=-101) [lgxx.c       3504]
    A  TH VERBOSE LEVEL FULL

    M Mon Feb 22 09:18:28 2010
    M  *** ERROR => NiProcMsg: rc=-104 (NIEROUT_SNC_FAILURE) from router [nibuf.c      423]
    M  *** ERROR => MsIAttachEx: NiBufConnect to /H/192.168.100.7/S/sapdp99/H/194.39.131.34/S/sapdp99/H/oss001/sapmsOSS failed (rc=NIEROUT_SNC_FAILURE) [msxxi.c      633]
    M  *** ERROR => LgIAttach: MsAttach (rc=NIEROUT_SNC_FAILURE) [lgxx.c       2984]
    M  *** ERROR => LgIGroup: LgIAttach(rc=-101) [lgxx.c       3504]
    A  TH VERBOSE LEVEL FULL

    C Mon Feb 22 10:01:09 2010
    C  Rollback Work (0)

    A Mon Feb 22 10:18:24 2010
    A  TH VERBOSE LEVEL FULL
    M  ***LOG R68=> ThIRollBack, roll back () [thxxhead.c   12304]
    C  Rollback Work (0)

    A Mon Feb 22 10:18:26 2010
    A  Mon Feb 22 10:18:26 2010

    A  ABAP/4 Program /SDF/SAPLRI_SQLSERVER                   .
    A  Source /SDF/LRI_SQLSERVERU02                    Line 264.
    A  Error Code CALL_FUNCTION_CONFLICT_LENG.
    A  Module  $Id: //bas/640_REL/src/krn/runt/abfunc.c#14 $ SAP.
    A  Function FuncParams Line 2906.
    C  Rollback Work (0)
    C  sloledb.cpp [DoDbcc,line 2930]: Error/Message: (err 2571, sev 0), User 'prd' does not have permission to run DBCC loginfo.
    C  Procname: [No proc]
    C  statement rerun with user dbo was successful, you can ignore the preceeding message

    C Mon Feb 22 10:18:29 2010
    C  sloledb.cpp [ParamStmtExec,line 12251]: Error/Message: (err 50000, sev 0), Table not found.
    C  Procname: [##Y3PKG_PRDprd00000024400000012657081342]
    C  ParamStmtExec failed.  HR 80040e14 DBSL retcode 99. stmt: [sap_get_table_size_info 'syscomments', 'prd', 'PRD'
    C  /* R3:CL_SQL_RESULT_SET=============CP:234 T: */
    C  ]
    C  Conn_i:2 selection:1 singleton:0 flag_fupd:0 use_cursor:0 chksum: 222194
    C  dbdsmss: DBSL99 SQL50000
    C  Table not found.
    B  ***LOG BY2=> sql error 50000      performing FET        [dbds#3 @ 592] [dbds    0592 ]
    B  ***LOG BY0=> Table not found. [dbds#3 @ 592] [dbds    0592 ]
    B  ***LOG BY1=> sql error 50000      [dbacds#2 @ 1187] [dbacds  1187 ]
    Could anybody advice me on this
    Regards,
    Zul

    Hi,
    I hope 440000 will not the cause,
    this might occur due to many reasons,
    1. make sure you have all the components(Applications,OSlevel,DBlevel) are at same level in entire the landscape.
    2. you can observe the evenlogs at OSlevel to get the error information pointing to. Also check for the dumps/logs(work direcotry).
    3. if not, can open SAP message.
    regards
    Nagaraju

  • Run time Error while Creating Expense request

    Dear Friends ,
    In   E-Payment ( Expense  Claim )   creation , While clicking on Enter Receipts application is going to run time error for only one user.    
    Run time Error Info :
    Runtime Errors         OBJECTS_OBJREF_NOT_ASSIGNED
    Exception              CX_SY_REF_IS_INITIAL
    Short text
         Access via 'NULL' object reference not possible.
    What happened?
         Error in the ABAP Application Program
         The current ABAP program "CL_WDR_P13N_UTILITIES=========CP" had to be
          terminated because it has
         come across a statement that unfortunately cannot be executed.
    Error analysis  
        An exception occurred that is explained in detail below.
       The exception, which is assigned to class 'CX_SY_REF_IS_INITIAL', was not
        caught in
       procedure "PRESET" "(METHOD)", nor was it propagated by a RAISING clause.
       Since the caller of the procedure could not have anticipated that the
       exception would occur, the current program is terminated.
       The reason for the exception is:
       You attempted to use a 'NULL' object reference (points to 'nothing')
       access a component (variable: "LR_CONTEXT_ELEMENT").
       An object reference must point to an object (an instance of a class)
       before it can be used to access components.
       Either the reference was never set or it was set to 'NULL' using the
       CLEAR statement.
    How to correct the error 
         Probably the only way to eliminate the error is to correct the program.
       If the error occures in a non-modified SAP program, you may be able to
       find an interim solution in an SAP Note.
       If you have access to SAP Notes, carry out a search with the following
       keywords:
       "OBJECTS_OBJREF_NOT_ASSIGNED" "CX_SY_REF_IS_INITIAL"
       "CL_WDR_P13N_UTILITIES=========CP" or "CL_WDR_P13N_UTILITIES=========CM002"
       "PRESET"
    Information on where terminated
        Termination occurred in the ABAP program "CL_WDR_P13N_UTILITIES=========CP" -
         in "PRESET".
        The main program was "SAPMHTTP ".
        In the source code you have the termination point in line 60
        of the (Include) program "CL_WDR_P13N_UTILITIES=========CM002".
        The termination is caused because exception "CX_SY_REF_IS_INITIAL" occurred in
        procedure "PRESET" "(METHOD)", but it was neither handled locally nor declared
        in the RAISING clause of its signature.
        The procedure is in program "CL_WDR_P13N_UTILITIES=========CP "; its source
         code begins in line
        1 of the (Include program "CL_WDR_P13N_UTILITIES=========CM002 ".
    Regards,
    Suresh .

    Hi Agrawal
    As you are getting run-time error after entering the sold to party and material and the error is in SAPLV61Z ,
    close the session for sometime and open again and then create sales order and then enter sold to party and material and then check wheather you are getting or not. If you are still facing the problem then take the help of the ABAP & BASIS consultant's.
    Regards
    Srinath

  • Run-time error SAPSQL_ARRAY_INSERT_DUPREC occurred

    When creating a new SyncBo (T51) instance after syncing eventually MI Clients shows the following message:
    [20070315 01:28:14:343] E [MI/Sync ] Received exception info code 10 and detailed message "Exception while callSync: The ABAP/4 Open SQL arrayinsert results in duplicate database records. records in the data base."
    In sm21 shows message:
    AB0 Run-time error "SAPSQL_ARRAY_INSERT_DUPREC" occurred
    AB1 > Short dump "070316 205056 sapnw ELDA " generated
    Looking for SAPSQL_ARRAY_INSERT_DUPREC error in SAP Note we found the note 817849 (Runtime error SAPSQL_ARRAY_INSERT_DUPREC occurs during sync).
    We have downloaded and applied this note in Backend as note requires and ALL prerequisites of this note. Also we have upgraded to SP19 and Kernel to 155 (part 1 and 2). But problem continues and the client that happened this problem does not work any more, all new SyncBO instances created goes to MEREP_MON as Waiting status.
    The dump on duplicate record is happening when the user is synchronizing and when a record is getting inserted to table merep_10100.
    The solution /workaround could be to do a client reset for those devicesand test again and see if it is happening, but error returns happening after this.
    When this happen SyncBo instance keeps on Waiting status (MEREP_MON). We couldn't understand why this happen suddenly and then no more new SyncBo could be created, all goes to Waiting status. Reprocess (ShiftF5) or start handler (Shift10) does not take any effect.
    Best Regards,
    Rogério

    Hi Ajith
    I am getting the same error and below is the error message from ST22. The only change is I am using for MTR application and the sync fails for the 2nd time when synched for patches for the MTR application. As it is generic sync, could you please advice to get rid of the problem.
    An exception occurred. This exception is dealt with in more detail below
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
      neither
    caught nor passed along using a RAISING clause, in the procedure
      "LOG_INSERT_DB" "(FORM)"
    Since the caller of the procedure could not have expected this exception
      to occur, the running program was terminated.
    The reason for the exception is:
    If you use an ABAP/4 Open SQL array insert to insert a record in
    the database and that record already exists with the same key,
    this results in a termination.
    (With an ABAP/4 Open SQL single record insert in the same error
    situation, processing does not terminate, but SY-SUBRC is set to 4.)
    Thanks, Raj

  • ABAP run time error

    Dear ALL,
    When we are creating sales order after entering sold-to-party, Material & Quantity when we press ENTER key That time
    we are getting following run time error
    Hoe to resolve this?
    Runtime Errors         SAPSQL_INVALID_FIELDNAME                                                    
    Except.                CX_SY_DYNAMIC_OSQL_SEMANTICS                                                
    Date and Time          15.01.2009 16:04:19                                                         
    Short dump has not been completely stored (too big)                                                                               
    Short text                                                                               
    A dynamically specified column name is unknown.                                               
    What happened?                                                                               
    Error in the ABAP Application Program                                                                               
    The current ABAP program "SAPLV61Z" had to be terminated because it has                       
        come across a statement that unfortunately cannot be executed.                                
    What can you do?                                                                               
    Note down which actions and inputs caused the error.                                                                               
    To process the problem further, contact you SAP system                                        
        administrator.                                                                               
    Using Transaction ST22 for ABAP Dump Analysis, you can look                                   
        at and manage termination messages, and you can also                                          
        keep them for a long time.                                                                    
    Error analysis                                                                               
    An exception occurred that is explained in detail below.                                      
        The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SEMANTICS', was                 
         not caught in                                                                               
    procedure "SEL_KONDTAB" "(FORM)", nor was it propagated by a RAISING clause.                  
        Since the caller of the procedure could not have anticipated that the                         
        exception would occur, the current program is terminated.                                     
        The reason for the exception is:                                                              
        An Open SQL clause was specified dynamically. The contained field name                        
        "ALAND" does not exist in any of the database tables from the FROM clause.                    
    How to correct the error                                                                               
    Check the field name in the SELECT clause.                                                                               
    If the error occures in a non-modified SAP program, you may be able to                        
        find an interim solution in an SAP Note.                                                      
        If you have access to SAP Notes, carry out a search with the following                        
        keywords:                                                                               
    "SAPSQL_INVALID_FIELDNAME" "CX_SY_DYNAMIC_OSQL_SEMANTICS"                                     
        "SAPLV61Z" or "LV61ZU01"                                                                      
        "SEL_KONDTAB"                                                                               
    If you cannot solve the problem yourself and want to send an error                            
        notification to SAP, include the following information:                                                                               
    1. The description of the current problem (short dump)                                                                               
    To save the description, choose "System->List->Save->Local File                            
        (Unconverted)".                                                                               
    2. Corresponding system log                                                                               
    Display the system log by calling transaction SM21.                                        
           Restrict the time interval to 10 minutes before and five minutes                           
        after the short dump. Then choose "System->List->Save->Local File                             
        (Unconverted)".                                                                               
    3. If the problem occurs in a problem of your own or a modified SAP                           
        program: The source code of the program                                                       
           In the editor, choose "Utilities->More                                                     
        Utilities->Upload/Download->Download".                                                                               
    4. Details about the conditions under which the error occurred or which                       
        actions and input led to the error.                                                                               
    The exception must either be prevented, caught within proedure                                
        "SEL_KONDTAB" "(FORM)", or its possible occurrence must be declared in the                    
        RAISING clause of the procedure.                                                              
        To prevent the exception, note the following:                                                 
    System environment                                                                               
    SAP-Release 700                                                                               
    Application server... "slgsap-prd"                                                            
        Network address...... "10.140.1.11"                                                           
        Operating system..... "Windows NT"                                                            
        Release.............. "5.2"                                                                   
        Hardware type........ "8x AMD64 Level"                                                        
        Character length.... 16 Bits                                                                  
        Pointer length....... 64 Bits                                                                 
        Work process number.. 0                                                                       
        Shortdump setting.... "full"                                                                               
    Database server... "SLGSAP-PRD"                                                               
        Database type..... "MSSQL"                                                                    
        Database name..... "PRD"                                                                      
        Database user ID.. "prd"                                                                               
    Terminal................. "SD0123l"                                                                               
    Char.set.... "C"                                                                               
    SAP kernel....... 700                                                                         
        created (date)... "May 6 2008 00:13:21"                                                       
        create on........ "NT 5.2 3790 Service Pack 1 x86 MS VC++ 14.00"                              
        Database version. "SQL_Server_8.00 "                                                                               
    Patch level. 159                                                                               
    Patch text.. " "                                                                               
    Database............. "MSSQL 7.00.699 or higher, MSSQL 8.00.194"                              
        SAP database version. 700                                                                     
        Operating system..... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2, Windows                
         NT 6.0"                                                                               
    Memory consumption                                                                               
    Roll.... 16192                                                                               
    EM...... 20949200                                                                               
    Heap.... 0                                                                               
    Page.... 196608                                                                               
    MM Used. 15928048                                                                               
    MM Free. 828016                                                                               
    User and Transaction                                                                               
    Client.............. 900                                                                      
        User................ "ADMIN"                                                                  
        Language key........ "E"                                                                      
        Transaction......... "VA01 "                                                                  
        Transactions ID..... "03F0E2DD6B35F16CBBFF002219897F24"                                                                               
    Program............. "SAPLV61Z"                                                               
        Screen.............. "SAPMV45A 4900"                                                          
        Screen line......... 930                                                                      
    Information on where terminated                                                                   
        Termination occurred in the ABAP program "SAPLV61Z" - in "SEL_KONDTAB".                       
        The main program was "SAPMV45A ".                                                                               
    In the source code you have the termination point in line 672                                 
        of the (Include) program "LV61ZU01".                                                          
        The termination is caused because exception "CX_SY_DYNAMIC_OSQL_SEMANTICS"                    
         occurred in                                                                               
    procedure "SEL_KONDTAB" "(FORM)", but it was neither handled locally nor                      
         declared                                                                               
    in the RAISING clause of its signature.                                                                               
    The procedure is in program "SAPLV61Z "; its source code begins in line                       
        260 of the (Include program "LV61ZU01 ".                                                      
    Source Code Extract                                                                               
    Line  SourceCde                                                                               
    642     if se_prestep              = yes or                                                     
      643        se_read_only_one_record = yes.                                                       
      644       if t681-ksdat is initial.                                                             
      645         if se_read_all_prestep is initial.                                                  
      646           select * from (t681-kotab) appending table <cond_tab>                             
      647                  up to 1 rows                                                               
      648                  where kappl  = se_kappl                                                    
      649                  and   kschl  = se_kschl                                                    
      650                  and   (coding_tab).                                                        
      651           h_subrc = sy-subrc.                                                               
      652         else.                                                                               
    653           select * from (t681-kotab) appending table <cond_tab>                             
      654                  where kappl  = se_kappl                                                    
      655                  and   kschl  = se_kschl                                                    
      656                  and   (coding_tab).                                                        
      657         endif.                                                                               
    658                                                                               
    659 * it is enough to find one record in prestep                                                
      660 * (care must be taken with pool tables - depending on database this                         
      661 *  will cost performance instead of saving)                                                 
      662         if select_split ne 0 and h_subrc ne 0.                                              
      663           modify coding_tab from coding_alter index select_split.                           
      664           select * from (t681-kotab) appending table <cond_tab>                             
      665                  up to 1 rows                                                               
      666                  where kappl  = se_kappl                                                    
      667                  and   kschl  = se_kschl                                                    
      668                  and   (coding_tab).                                                        
      669         endif.                                                                               
    670       else.                                                                               
    671         if se_read_all_prestep is initial.                                                  
    >>>>>           select * from (t681-kotab) appending table <cond_tab>                             
      673                  up to 1 rows                                                               
      674                  where kappl  = se_kappl     
    Regards,
    Akshay
    Edited by: Akshay Dalal on Jan 17, 2009 6:25 AM
    Edited by: Akshay Dalal on Jan 17, 2009 6:30 AM

    Dear Akshay,
    We will NOT be able to provide you with a solution on this forum, because we have no clue what configuration do you have in your system and what user exits or other custom development may have been done in your specific system.
    Lakshmipathi has already correctly pointed to a similar post. You might want to get an ABAPer to set a breakpoint just before the error occurs, then he/she might provide you with more information, which may (or may not) be helpful.
    There is obviously something wrong in the pricing condition either on configuration level or in a user exit. If you write to SAP (which you should, because it's a standard program), they will ask to connect to your system, because they don't have any chrystal balls over there either.
    Just in case - before going any further, try running the program RV80HGEN (in the test system, of course), which re-generates requirements and formulas. Sometimes it helps, although I doubt that it is the case here.
    Also if you've used some custom (Z...) fields in the pricing configuration, that's where the problem is most likely.

  • Error Handling in WebUtil CLIENT_OLE2.get_obj_property

    Hello,
    we have a problem with the error handling in WebUtil's CLIENT_OLE2.get_obj_property function. The WebUtil version is 1.0.2 and the problem can be reproduced on the 9iAS, 9iDS and 10gAS as well.
    Problem description:
    The get_obj_property function does not throw a PL/SQL exception when it is given an invalid object as first argument (i.e. an object handle to an application that has intermittently been closed by the user). Instead, the function returns a NULL value and the control flow of our application code continues as if the function had succeeded. So the problem is that the get_obj_property function neither throws an exception nor can the failure be caught by calling WEBUTIL_CORE.IsError as this returns that no error occurred.
    Example:
    PACKAGE BODY word IS
    OBJ_HND CLIENT_OLE2.OBJ_TYPE := NULL;
    mydocs CLIENT_ole2.obj_type;
    -- Start Word97
    PROCEDURE wordopen is                         
    BEGIN
    obj_hnd := null;
    obj_hnd := CLIENT_OLE2.create_obj ('Word.Application');
    CLIENT_OLE2.Set_property(obj_hnd,'Visible',1);
    END;
    PROCEDURE test is
    BEGIN
    IF obj_hnd IS NULL THEN
    wordopen;
    END IF;
    BEGIN
    mydocs := CLIENT_OLE2.get_obj_property(obj_hnd,'Documents');
    EXCEPTION WHEN OTHERS THEN
    -- Word has probably been closed by the user
    -- so just start it again and retry...
    wordopen;
    mydocs := CLIENT_OLE2.get_obj_property(obj_hnd,'Documents');
    END;
    END;
    END;
    If the procedure test is called once then the Word application is started and the procedure performs some work. The procedure could be called several times on the same Word instance but fails in case the user closes the Word application because the procedure does not get an exception or error from WebUtil's get_obj_property function. Only a JACOB Java exception is logged in the Java console of the user's computer - the PL/SQL code has no way of knowing that an error has occurred.
    Possible solution / patch for webutil.pll:
    The webutil.pll can be patched to throw an exception if it is given an invalid object handle. In webutil.pll version 1.0.2 in get_object_property, line 1205, just add the condition "(v_javaHandle IS NULL) or " at the beginning of the if-statement in that line so that an OLE_ERROR will be raised if v_javaHandle is NULL:
    if (v_javaHandle IS NULL) or (v_javaHandle = 0) or (v_javaHandle='') or (v_javaHandle=-1) then     
    raise OLE_ERROR;      
    end if;     
    Can you confirm the error and re-release a patched webutil.pll at a later time?
    Regards,
    Andreas Leidner
    infoteam GmbH Berlin

    Hi
    It is mentioned in webutil doc that, you must regenerate webutil.pll before using it; otherwise you’ll encounter error ORA-06508 when running a form with the attached library.
    Hope this helps...
    Regards,
    Amatu Allah

Maybe you are looking for