Catch procedure error in batch script

Hi,
I am calling the procedure inside a loop in a windows batch script.
Is there any way i can catch the oracle exception ora- errors ? in the batch script.
Thx.

Batch file cannot catch errors that are thrown by oracle procedures.
you can do some work around.
1. push the errors to a log file (text file) from the procedure.
2. once the procedure is complete, you can read for a specific text in the log file from Batch file. and if you find that error had occurred then do your stuff.
Regards,
Prazy

Similar Messages

  • Sql*loader in batch script

    Hi,
    I am calling a sqlloader and a procedure within a loop inside a batch script.
    Sometimes, The sqlloader fails and subsequent procedure fails, I am not able move to the next iteration.
    How to catch oracle errors in batch script
    Thx.

    hi,
    My batch script is something like this.
    I want to catch errors when
    1. sql*loader throws error
    2. when my pl/sql throws error.
    I welcome any suggestions to improve this code.
    d:
    echo cd Data\Scripts
    for %%f in (D:\Data\DELIVERY_NOTE\*.csv) Do (
    echo conn config/config;
    echo delete from SQLLOAD_DELIVERY_STAGE;
    )| sqlplus -s /nolog
    sqlldr USERID=config/config control=D:\Data\Scripts\loaddata_del.ctl skip=2 data=%%f
    echo conn config/config;
    echo exec DELIVERY_NOTE_PKG.Populate_Del_Note_stage;
    echo exec DELIVERY_NOTE_PKG.PROCESS_DELIVERY_NOTE;
    )| sqlplus -s /nolog
    move %%f D:\Data\Processed_Delivery\
    cd D:\Data\processed_Delivery\
    rename *.csv *.csv.processed
    cd d:\Data\scripts\
    echo #############
    echo PROCESSED THE FILE %%f AT %data% %time%
    echo ############
    )

  • XMLDB in batch scripts

    I have a pl/sql procedure that parses xml document using dbms_xslprocessor.It works fine within a procedure.
    Is it possible to replace this procedure with a batch script.
    Can anyone please let me know.
    Thanks in advance.

    So what are you doing in the batch scripts that you can't do via DBMS_SCHEDULER calling PL/SQL code? I'm not saying a reason doesn't exist, just trying to figure out what is going on.
    How are these scripts accessing the tables? I'm assuming via SQL, but asking to be certain.
    If via SQL, you can just XMLTable (if 10.2 as I showed in {message:id=3898813}) or if 10.1 you could use ...TABLE(XMLSEQUENCE(EXTRACT... as shown in {message:id=3896349}
    Either way, in 10g, there is no strong need to use dbms_xslprocessor for parsing XML that I know of.

  • Calling oracle procedure from batch script

    i have a .bat file, in which i am using sqlldr to load into a staging table from csv file, and then using merge to insert / update into target table
    i have 2 doubts
    1) my first doubt is regarding batch script..how to handle the errorlevels which are greater than 1?
    so generally speaking, how do i handle all the errors at once..and make sure the control goes to
    run_sqlldr0 always? and handle the error meaningfully if its other than 0 ?
    below is my batch script, and i get error
    goto run_sqlldr2
    the system cannot find the batch label specified - run_sqlldr2
    @echo on
    call oraenv.bat
    if not exist %mainpath% goto mainpath_def
    if not exist %scripts% goto scriptspath_def
    if not exist %logs% goto logspath_def
    if not exist %data% goto datapath_def
    goto x1
    :x1
    goto run_sqlldr%ERRORLEVEL%
    echo run_sqlldr%ERRORLEVEL%
    if run_sqlldr%ERRORLEVEL% NEQ 0 goto run_sqlldr1
    echo "entering sqlldr"
    :run_sqlldr1
    echo "entered sqlldr1"
    echo "some error"
    echo mergedata%ERRORLEVEL%
    :run_sqlldr0
    echo "entered sqlldr0"
    sqlldr userid = scott/tiger@orcl control=%mainpath%\cm.ctl log=%logs%\cm.log discard=%logs%\cm.dsc bad=%logs%\cm.bad SILENT=(HEADER, FEEDBACK)
    goto mergedata%ERRORLEVEL%
    :mergedata1
    echo "entered mergedata1"
    echo cleandata%ERRORLEVEL%
    :mergedata0
    sqlplus -s scott/tiger@orcl @%scripts%\merge_stg.sql
    goto cleandata%ERRORLEVEL%
    :cleandata1
    echo "entered cleandata1"
    sqlplus -s scott/tiger@orcl @%scripts%\clean_stg.sql
    goto exit
    :cleandata0
    echo "entered cleandata0"
    echo "error in removing data"
    goto exit
    :mainpath_def
    echo "mainpath not existing as specified %mainpath%, Please edit ORAENV with correct value"
    goto exit
    :scriptspath_def
    echo "scripts path not existing as specified %scripts%, Please edit ORAENV with correct value"
    goto exit
    :logspath_def
    echo "Logs path not existing as specified %logs%, Please edit ORAENV with correct value"
    goto exit
    :datapath_def
    echo "Data path not existing as specified %data%, Please edit ORAENV with correct value"
    goto exit
    :exit
    2) my second doubt, is this the right way of calling the stored procedures merge_stg and clean_stg?
    in clean_stg, i use dynamic sql to truncate the staging table
    create or replace procedure trunstg is
    lsql varchar2(2000) := 'truncate table stg_ldrtest';
    begin
    execute immediate lsql;
    end;
    /

    i have changed the code
    @echo on
    call oraenv.bat
    if not exist %mainpath% goto mainpath_def
    if not exist %scripts% goto scriptspath_def
    if not exist %logs% goto logspath_def
    if not exist %data% goto datapath_def
    goto x1
    :x1
    goto run_sqlldr%ERRORLEVEL%
    echo run_sqlldr errorlevel: %ERRORLEVEL%
    if run_sqlldr%ERRORLEVEL% NEQ 0 goto run_sqlldr1
    echo "entering sqlldr"
    :run_sqlldr1
    echo "entered sqlldr1"
    echo "some error"
    :run_sqlldr2
    echo errorlevel: %errorlevel%
    echo mergedata%ERRORLEVEL%
    :run_sqlldr0
    echo "entered sqlldr0"
    sqlldr userid = gautam/gautam@orcl control=%mainpath%\cm.ctl log=%logs%\cm.log discard=%logs%\cm.dsc bad=%logs%\cm.bad SILENT=(HEADER, FEEDBACK)
    goto mergedata%ERRORLEVEL%
    :mergedata1
    echo "entered mergedata1"
    goto end
    echo cleandata%ERRORLEVEL%
    :mergedata0
    sqlplus -s gautam/gautam@orcl @%scripts%\merge_stg.sql
    goto cleandata%ERRORLEVEL%
    :cleandata1
    echo "entered cleandata1"
    echo "cleaning error"
    goto end
    :cleandata0
    sqlplus -s gautam/gautam@orcl @%scripts%\clean_stg.sql
    goto end
    :mainpath_def
    echo "mainpath not existing as specified %mainpath%, Please edit ORAENV with correct value"
    goto exit
    :scriptspath_def
    echo "scripts path not existing as specified %scripts%, Please edit ORAENV with correct value"
    goto exit
    :logspath_def
    echo "Logs path not existing as specified %logs%, Please edit ORAENV with correct value"
    goto exit
    :datapath_def
    echo "Data path not existing as specified %data%, Please edit ORAENV with correct value"
    goto exit
    :end
    EXIT
    so the error is ORA - 30926, unable to get a stable set of
    rows in the source tables
    my merge is
    MERGE INTO ldrtest D
    USING (SELECT code,id,row_name,col1,col2,col3,crt_tm,md_tm,crt_user,mod_usr FROM stg_ldrtest) S
    ON (d.code = s.code and d.id = s.id and d.row_name=s.row_name )
    WHEN MATCHED THEN UPDATE SET d.col1 = s.col1,
    d.col2 = s.col2,
    d.col3 = s.col3,
    d.crt_tm = s.crt_tm,
    d.md_tm = s.md_tm,
    d.crt_user = s.crt_user,
    d.mod_usr = s.mod_usr
    WHEN NOT MATCHED THEN INSERT (d.code,d.id,d.row_name,d.col1,d.col2,d.col3,d.crt_tm,d.md_tm,d.crt_user,d.mod_usr)
    VALUES (s.code,s.id,S.row_name, s.col1,s.col2,s.col3,s.crt_tm,s.md_tm,s.crt_user,s.mod_usr);
    i did not understand what this error means..
    could anyone please help me out

  • [Resolved][ODQ] Error Running Exported Batch Script Outside of ODI

    Dear ODI experts,
    I have Installed 10.1.3.4.0 ---> selected "Oracle Data Integrator, Oracle Data Profiling, Oracle Data Quality 10.1.3.4.0" ---> Complete (1012MB)
    - follow all steps of "Design a Name and Address Cleansing Project" section in Sample Tutorial
    - in "Oracle DQ User Interface", right click Projects->Quality->customer master[1]
    - select "Run" from the context menu
    - the background tasks completed 100% properly
    - export the project as a Batch Script
    - make changes to config.txt, runProjectN.cmd, and *.stx files following as specified in the Sample Tutorial document
    - at step 13-f, got the following errors by executing runProjectN.cmd
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    I did a full search in ODI folders and couldn't find "e7_us_globrtr_p2.dat".
    I tried both export with data and export w/o data with proper change to specify input file path, and got the same error.
    Appreciate any suggestions and/or hints help me further debug of fix this issue.
    Regards,
    Roy
    The following is a complete message echo of runProjectN.cmd
    ===========================================================================
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>runproject1.cmd
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_PROJECT=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_CONFIG=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts\config.txt
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_SETTINGS=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>set TS_DATA=D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data
    D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\scripts>cd /D D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e5_tranfrmr_p1.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call globrtr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e6_globrtr_p2.stx
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tranfrmr D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e9_tranfrmr_p3.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e7_us_globrtr_p2.dat>. errno = 2; N
    o such file or directory Occurred in Transformer - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call cusparse D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e10_cusparse_p4.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e9_us_tranfrmr_p3.dat>. errno = 2;
    No such file or directory Occurred in Customer Data Parser - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e11_srtforpm_p5.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e10_us_cusparse_p4.dat>. errno = 2;
    No such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call uspmatch D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e12_pmatch_p6.stx
    Wed Nov 28 17:18:37 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e11_us_srtforpm_p5.dat>. errno = 2;
    No such file or directory Occurred in CGeoIO::initGIO - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call winkey D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e13_winkey_p7.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e12_us_pmatch_p6.dat>. errno = 2; N
    o such file or directory Occurred in CWKD::initWKD - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call tsqsort D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e14_srtforrl_p8.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e13_us_winkey_p7.dat>. errno = 2; N
    o such file or directory Occurred in tsqsort - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call rellink D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e15_rellink_p9.stx
    Wed Nov 28 17:18:38 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e14_us_srtforrl_p8.dat>. errno = 2;
    No such file or directory Occurred in CMatcher::InitMatcher - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call common D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e16_common_p10.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e15_us_rellink_p9.dat>. errno = 2;
    No such file or directory Occurred in Create Common - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>call datarec D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\settings\e17_datarec_p11.stx
    Wed Nov 28 17:18:39 2007 - 03503E ERROR: Can't open file: <D:\Bin\Oracle\ODIDQ10134\demo\oracledq\projects\oracledq\project1\data/e16_us_common_p10.dat>. errno = 2;
    No such file or directory Occurred in CReCons::initRC - (cl_open).
    D:\Bin\Oracle\ODIDQ10134\oracledq\quality_server\tsq11r0s\Software\bin>
    ===========================================================================
    Solution:
    Needs to modify "e9_tranfrmr_p3.stx" to point to "e6_nomatch_globrtr_p2_us.dat".

    Seems to be the DRM service went down, try running the batch after stopping & restarting the service.

  • How to extract row_id from PL/SQL procedure and assign that to batch script

    Hello Team,
    I am stuck with a requirement, wherein I am running a batch script and within the batch script I am calling a procedure which inserts a record in a table (Including a column named l_id).
    I need this generated l_id to be passed on as a variable to batch script after PL/SQL procedure completion. So that I can refer this same l_id to update the same record in the table again in the same batch script in the later part.
    Looking for some suggestions!!!!
    Thanks
    -Vj.

    789153 wrote:
    I am stuck with a requirement, wherein I am running a batch script and within the batch script I am calling a procedure which inserts a record in a table (Including a column named l_id). Operating system? Scripting language or command shell used?
    I need this generated l_id to be passed on as a variable to batch script after PL/SQL procedure completion. So that I can refer this same l_id to update the same record in the table again in the same batch script in the later part.
    Looking for some suggestions!!!!Don't do this using batch scripts. Batch scripts are very much inferior compared to stored PL/SQL code when it comes to managing databases processes and performing data crunching.
    Why can't this be written entirely in PL/SQL? And execution managed from either DBMS_JOB or DBMS_SCHEDULER ? And before answering that, consider the following:
    - what is the superior language, PL/SQL or shell script?
    - what provides tighter integration with the database, PL/SQL or shell script?
    - what provides proper security and access control, PL/SQL or shell script?
    As you can call SQL*Plus from a shell script to run PL/SQL, you can call a shell script from PL/SQL instead to run external commands and processes.
    Use the right tool for the job. And shell scripting is an excellent tool - but only when correctly used. Are you using it correctly? I strongly doubt that...

  • Run batch script from procedure

    How should we run a batch script that contains FDQM command line from a procedure?
    The command line is created using upsShell.exe.
    If anyone has tried the above scenario, kindly share your ideas regarding this.
    Edited by: Vallikannu Annamalai on Apr 9, 2012 4:33 AM

    SH, Since we use Oracle we cannot use xp_cmdshell.
    When we go for External Procedures, only routines callable from C code (not C++ code) are supported.
    For your information we cannot make use of the C program in our environment.
    Is there any other possibility to run the job from within oracle database.
    Please correct if I m wrong. Kindly need your clarification asap. Thank you.

  • DRM batch script error for export

    Hi,
    getting error while running batch script for export.
    ERemotableException with message: "Server was unable to process request. ---> Error during Export. Export was unable to run. Error: [Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied" while running Export
    4/26/2013 9:02:20 PM - => ERROR: Data Relationship Management Server returned error: "Server was unable to process request. ---> Error during Export. Export was unable to run. Error: [Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied."
    can anyone help .

    Hi,
    Did you check the username / password being used to run the export through Batch Client? All correct ? More details would help.
    Denzz

  • Catching an error on a single line

    Is there a way to catch an error on a single line in a VBS script? From what I understand the "On Error Resume Next" will apply to all lines in a procedure.
    George

    Hello George,
    unfortunaly there is no way in VBS like the On Error Goto xxx in VB/VBA. You have to encapsulate the crtitcal lines with a On Error Resume Next/On Error Goto 0 pair and find an error with if Err.Number <> 0 then after every line and handle it e.g. with a Exit Sub call.
    Matthias
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

  • Unable to Print From from Web-Based Sites, Error Occurred in script.

    When I try to print, I keep getting an error from a script running too long when I try to print anything web-based. I can print documents on my computer wirelessly, but not web-based (i.e.., financial statements). What is causing these errors from web sites? It is frustrating continually getting an error message. I have an HP 65000A Plus wireless CN557A#B1H, all in one printer and using Windows Vista Home edition operating system.
    When I hit print, an error message comes up saying;
    "An error has occurred in the script on this page"
    Line:2053
    Error: Invalid procedure call or argument
    At the bottom, it asks " do you want to continue running scripts on this page?".
    Any help would be appreciated. As mentioned, it is very frustrating.

    I have the same exact problem as SandyStill. It tries to print, ejects plain paper and nothing pending in the printer. I am running a Dell XP Pro, Adobe Reader 8.1.2, RAM-1G, and an HPDJ 6940 printer. Tried tech support with HP to no avail because everything else prints fine.
    I've even tried some of the suggestions of another thread using the Microsoft Utility to remove Adobe and then download it again with no success.
    Does anyone have a solution?

  • Catch the error in to a log file

    Hi Team,
    Created the script for testing the server online or offline, Could you please tell me how to catch the error in to a file
    Try
    $Result = Test-Connection -count 1 -computer (Get-Content ServerName.txt)  -ErrorAction "Continue"
    Catch
       $Result = New-Object PSCustomObject -Property @{
                TimeStamp = Get-Date
                __Server = $env:COMPUTERNAME
                Address = $Computer
                Protocol = ""
                ResponseTime = "Failed"
    $Result | Select TimeStamp,__Server,Address,ProtocolAddress,ResponseTime | ft -AutoSize

    As mjolinor pointed, you should change the -ErrorAction to Stop to make the control flow into catch block when error occurs. Just change alone is not sufficient because, the control will go to catch block if any of the computer in servername.txt gives error,
    and it will not go back to next computer in your text file perform the ping.
    So try chaning the code as shown below.
    $Outarr = @()
    foreach($Comp in (Get-Content C:\temp\servers.txt)) {
    Try {
    $Result = Test-Connection -count 1 -computer $Comp -ErrorAction stop
    Catch {
    $Result = New-Object PSCustomObject -Property @{
    TimeStamp = Get-Date
    __Server = $env:COMPUTERNAME
    Address = $Comp
    Protocol = ""
    ResponseTime = "Failed"
    $Outarr +=$Result
    $Outarr| Select TimeStamp,__Server,Address,ProtocolAddress,ResponseTime | ft -AutoSize
    Hope this helps.
    Thanks,
    Sitaram Pamarthi
    Blog : http://techibee.com
    Follow on Twitter
    This posting is provided AS IS with no warranties or gurentees,and confers no rights
    You can simplify that to:
    $Outarr =
    foreach($Comp in (Get-Content C:\temp\servers.txt)) {
    Try {
    Test-Connection -count 1 -computer $Comp -ErrorAction stop
    Catch {
    [PSCustomObject]@{
    TimeStamp = Get-Date
    __Server = $env:COMPUTERNAME
    Address = $Comp
    Protocol = ""
    ResponseTime = "Failed"
    $Outarr | ft -AutoSize
    The [PSCustomObject] type accelerator will take the hash table as a constructor, and coerce it to an [ordered] hash table, so the properties will stay in the same order they were declared.  That eliminates the need to use Select-Object afterward to
    get them back into the right order.
    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

  • Using MaxL in batch script to get Essbase database size before proceeding

    I have a batch script which dynamically generates some MaxL before passing it to ESSMSH. I would like to insert a command at the beginning of the MaxL script, to get and assess the size of the database before proceeding. If the database is empty I would like the script to quit. This is to prevent the script from exporting data and overwriting the previous export file if the database is empty.
    The generated MaxL (modified) is currently as follows. What logic can I add to the MaxL script, to assess the database size and go to the "errorhandler" label if it is empty? Is this even possible?
    login %USER% identified by %PASS% on %SERVER%;
    iferror "errorhandler";
    /* log file */
    spool stdout on to '<directory>.log';
    iferror "errorhandler";
    /* error file */
    spool stderr on to '<directory>.err';
    iferror "errorhandler";
    /* export data */
    set timestamp on;
    execute calculation %APP%.%DB%.C_Export;
    iferror "errorhandler";
    /* reset database */
    alter database %APP%.%DB% reset data;
    iferror "errorhandler";
    /* import data */
    import database %APP%.%DB% data from server data_file "<filename>.txt" on error abort;
    iferror "errorhandler";
    /* calculate database */
    execute calculation default on %APP%.%DB%;
    iferror "errorhandler";
    /* error handler */
    spool off;
    define label "errorhandler";
    logout;
    exit;

    Hi Stuart,
    Yes I was aware of display database "app"."db"; however this will output a table rather than a specific value. And what logic can I then add to the MaxL script to assess the specific value of "Db Status" and go to the "errorhandler" label if it is empty?
    It would seem this needs to be done via a VBScript, to loop through the file rows to find the value before proceeding accordingly. But I was hoping there might be a way to do this within MaxL.

  • DB Read error from UCCX Script

    Hi All,
    We are running uccx 7.0.
    Trying to return data from DB using stored procedure from the uccx script.
    We are able to run this when we pass explicit value instead of variable ANI.
    But whenever we provide variable ANI, we get below
    error: SQL statement varible not defined : ANI
    Query which provided in the DB Read as below,
    select * from  table(credit_back.fun_select_point($ANI));
    Request your help on it..
    Regards,
    Shalid K.C

    Yes Gergely.
    we have created new script and when i add DB Read function in the script, it is not allow to apply it, same time it is giveing the above mentioned error.
    but when i test it with explicite value it is working.. .not working by providing variable name
    Regards,
    Shalid

  • Catching an error in SUBMIT Statement

    Hi,
    I am using SUBMIT (REPORT) and RETURN.
    How to catch an error when there is one in the  REPORT Program that i am calling.

    hi
    Calling Programs
    If you need to program an extensive application, one single program can become very complex. To make the program easier to read, it is often a good idea to divide the required functions among several programs.
    As well as using external modularization, in which you store procedures in special non-executable ABAP programs like function groups, you can also call independent programs from within an ABAP program.
    The following ABAP statements allow you to start an executable program or transaction. You can either exit the calling program, or have the system return to it when the called program finishes running.
    Executable Program
    Transaction
    Call without return
    SUBMIT
    LEAVE TO TRANSACTION
    Call with return
    SUBMIT AND RETURN
    CALL TRANSACTION
    You can use these statements in any ABAP program. For example, while processing a user action in the output list of an executable program, you might call a transaction whose initial screen is filled with data from the selected list line.
    The event LOAD-OF-PROGRAM is triggered each time a program is called. If a corresponding event block is defined in the framework program, it is executed once before the first other processing block is executed.
    An interesting remark at this point is that each execution of an executable program actually has a SUBMIT statement as its source. When you enter the program name in a transaction like SE38 or SA38 and choose Execute, a SUBMIT statement occurs in the transaction. Technically speaking, therefore, executable programs have the attribute of being able to be called using SUBMIT, although their principal characteristic from a useru2019s point of view is that they are started in the foreground.
    Memory Organization in Program Calls
    The first ABAP program in a session on the application server opens its own internal session (roll area) within the main session. All externally-called procedures run in the same internal session as the calling program, that is, the main program and working data of the procedure are loaded into the same memory area in the internal session.
    When you call an executable program or a transaction, the system opens a new internal session for each program. Here, there are two possible cases: If the second program does not return control to the calling program when it has finished running, the called program replaces the calling program in the internal session. The contents of the memory of the calling program are deleted. If the second program does return control to the calling program when it has finished running, the session of the called program is not deleted. Instead, it becomes inactive, and its memory contents are placed on a stack. The system can open up to 9 further internal sessions in external program calls.
    As well as executable programs and transactions, dialog modules also open a new internal session. Dialog modules were previously used for modularizing screen sequences.
    Program Calls and SAP LUWs
    An SAP LUW is a logical unit consisting of dialog steps, whose changes are written to the database in a single database LUW. There are various bundling techniques that you can use to ensure that all of the database updates belonging to an SAP LUW are made in the same single database LUW.
    Externally-called procedures do not open a new SAP LUW.
    However, when you start a new executable program or transaction, a new SAP LUW starts. Database updates belonging to these programs are collected in their own database LUW. If the new program does not return control to the calling program, the SAP LUW of the old program concludes when the new program is called. If, on the other hand, the new program does return control to the calling program, the new SAP LUW runs parallel to the SAP LUW of the calling program.
    No new SAP LUW is opened when you call a dialog module. Bundling techniques in a dialog module add the database updates to the database LUW of the calling program. You may sometimes need to call a transaction that runs in the same SAP LUW as the calling program. One technique for doing this is to use the existing transaction as a dialog module. To do this, you need to create a new dialog module with the same main program and initial screen as the transaction. Transactions that are used both as transactions and as dialog modules must be programmed to obey certain rules. For further information, refer to Calling Screen Sequences.
    The fact that an external program shares (or does not share) the SAP LUW with its caller has special consequences if the program calls update-task functions or uses COMMIT WORK. For further information, refer to Special LUW Considerations.
    syntax:
    SUBMIT REPORT01     VIA SELECTION-SCREEN     USING SELECTION-SET 'VARIANT1'     USING SELECTION-SETS OF PROGRAM 'REPORT00'     AND RETURN.

  • Error during Batch Planning Redeploy

    Hello, everyone
    I'm trying to import planning metadata and redeploy an application by batch script:
    set bpmaserverurl=http://0.0.0.0/hyperion-bpma-server;
    set workspaceurl=http://0.0.0.0:19000/workspace;
    Login;
    Execute Import Parameters(importtype, profilename, filename, waitforcompletion)Values('InterfaceTables', 'CAPEX_TE_LOAD', '', 'true');
    Execute Redeploy Parameters(ApplicationName, InstanceName, HubProject, ClearAll, CheckIntegrity, waitforcompletion, purgeTransactions, deployOption, escapeValidateRules, Notes) Values ('CAPEX_TE', 'Default', 'Planning', 'false', 'false', 'true', 'true', 'AppView', 'true', 'CAPEX_TE redeployment');
    Logout;
    Quit;
    Metadata import does well. But during redeploy I get an error:
    <h4>Invalid data source ''. Either the data source does not exist or the application has not been deployed to the data source...</h4>
    Manual deploy/redeploy (through Planning) works fine.
    Please, help.
    Best regards

    If anyone interested, we have manually validated and deployed the application. From then on the batch was working fine again. It looks like validation has been failing during the batch, but once we did it manually, it seems to have cleared itself.

Maybe you are looking for