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

Similar Messages

  • WEBUTIL - CLIENT_OLE2 : Clientside Word Integration problem

    Hi,
    I have attached webutil.pll and webutil.olb and configured the necessary files as per the webutil manual in Oracle Forms 10g under Windows 2000. I have compiled the libraries before running the form.
    When I run the form, encountering following error message:
    WUC-015: Your form must contain the following bean for this function to be available : oracle.forms.webutil.ole.olefunction
    Please help me out to trace the error.
    Thanks - Mundhir.
    [email protected]
    In my forms [When-Button-Pressed], I added the following code :
    ==========================================================
    PROCEDURE worddoc IS
    BEGIN
    DECLARE
    -- Declare the OLE object
    application CLIENT_OLE2.OBJ_TYPE;
    -- Declare handle to the OLE argument list
    args CLIENT_OLE2.LIST_TYPE;
    BEGIN
    -- Start WordBasic and make Word visible
    application:=CLIENT_OLE2.CREATE_OBJ('Word.Basic');
    CLIENT_OLE2.INVOKE(application, 'AppShow');
    -- Create a new Word document
    CLIENT_OLE2.INVOKE(application, 'FileNew');
    -- Navigate to the bookmark called 'LetterHead'
    args:=CLIENT_OLE2.CREATE_ARGLIST;
    CLIENT_OLE2.ADD_ARG(args, 'ViewHeader');
    CLIENT_OLE2.INVOKE(application, 'EditGoto', args);
    CLIENT_OLE2.DESTROY_ARGLIST(args);
    args:=CLIENT_OLE2.CREATE_ARGLIST;
    CLIENT_OLE2.ADD_ARG(args, :TXT_HEADER);
    CLIENT_OLE2.INVOKE(application, 'Insert', args);
    CLIENT_OLE2.DESTROY_ARGLIST(args);
    -- Insert the text item into the Word document
    args:=CLIENT_OLE2.CREATE_ARGLIST;
    CLIENT_OLE2.ADD_ARG(args, :TXT_COMMENT);
    CLIENT_OLE2.INVOKE(application, 'Insert', args);
    CLIENT_OLE2.DESTROY_ARGLIST(args);
    -- Save the document to the filesystem
    args:=CLIENT_OLE2.CREATE_ARGLIST;
    CLIENT_OLE2.ADD_ARG(args, 'c:\temp\EXAMPLE.DOC');
    CLIENT_OLE2.INVOKE(application, 'FileSaveAs', args);
    CLIENT_OLE2.DESTROY_ARGLIST(args);
    -- Release the OLE object
    CLIENT_OLE2.RELEASE_OBJ(application);
    END;
    END;
    ==========================================================

    I used code given below, it gives an error ORA-305501
    I am using Microsoft Office-2003.
    how can I export contents(modified) of MSWORD back to form?
    declare
         app CLIENT_OLE2.OBJ_TYPE;
         docs CLIENT_OLE2.OBJ_TYPE;
         doc CLIENT_OLE2.OBJ_TYPE;
         selection CLIENT_OLE2.OBJ_TYPE;
         args CLIENT_OLE2.LIST_TYPE;
    BEGIN
    -- create a new document
              app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
              CLIENT_OLE2.SET_PROPERTY(app,'Visible',1);
              docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
              doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
              selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
         -- insert data into new document from long item
              CLIENT_OLE2.SET_PROPERTY(selection, 'Text', :b1.t1);
    -- save document as example.doc
         args := OLE2.CREATE_ARGLIST;
         CLIENT_OLE2.ADD_ARG(args, 'c:\temp\example.doc');
              CLIENT_OLE2.INVOKE(doc, 'SaveAs', args);
              CLIENT_OLE2.DESTROY_ARGLIST(args);
    -- close example.doc
              args := CLIENT_OLE2.CREATE_ARGLIST;
              CLIENT_OLE2.ADD_ARG(args, 0);
              CLIENT_OLE2.INVOKE(doc, 'Close', args);
              CLIENT_OLE2.DESTROY_ARGLIST(args);
              CLIENT_OLE2.RELEASE_OBJ(selection);
              CLIENT_OLE2.RELEASE_OBJ(doc);
              CLIENT_OLE2.RELEASE_OBJ(docs);
    -- exit MSWord
              CLIENT_OLE2.INVOKE(app,'Quit');
    END;

  • Webutil - CLIENT_OLE2 for exporting to MS Word

    I've done a lot of reading about this on the net, and have been unable to find the solution, perhaps someone on here knows. I am attempting to launch a word document and fill it with some text. A very simple small block of code (taken from an example I found on Oracle's website):
    ==========================================================
    DECLARE
    app CLIENT_OLE2.OBJ_TYPE;
    docs CLIENT_OLE2.OBJ_TYPE;
    doc CLIENT_OLE2.OBJ_TYPE;
    selection CLIENT_OLE2.OBJ_TYPE;
    args CLIENT_OLE2.LIST_TYPE;
    BEGIN
    -- create a new document
    app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
    CLIENT_OLE2.SET_PROPERTY(app,'Visible',1);
    docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
    doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
    selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
    -- insert data into new document from long item
    CLIENT_OLE2.SET_PROPERTY(selection, 'Text', 'TEST123');
    CLIENT_OLE2.RELEASE_OBJ(selection);
    CLIENT_OLE2.RELEASE_OBJ(doc);
    CLIENT_OLE2.RELEASE_OBJ(docs);
    END;
    ==========================================================
    This will launch the word application, but no new document is created. I'm inclined to think there is a problem with the way that I've setup webutil, but why would forms have no trouble launching the word application, and be unable to create a new document?
    The error I get in the Java Console is the following:
    2007-Jul-11 09:49:39.699 ERROR>WUO-714 [OleFunctions.setExceptionValues()] Unable to get the last OLE Error details; Exception
    null
    2007-Jul-11 09:49:39.699 ERROR>WUO-708 [OleFunctions.get_obj_property()] Unable to get Property: Documents; Exception
    com.jacob.com.ComFailException: A COM exception has been encountered:
    At Invoke of: Documents
    Description: An unknown COM error has occured.
    I'm using the latest version of Jacob, a recent version of webutil, and Forms 10g. And MS Office 2003.
    Any help with this would be much appreciated.

    I used code given below, it gives an error ORA-305501
    I am using Microsoft Office-2003.
    how can I export contents(modified) of MSWORD back to form?
    declare
         app CLIENT_OLE2.OBJ_TYPE;
         docs CLIENT_OLE2.OBJ_TYPE;
         doc CLIENT_OLE2.OBJ_TYPE;
         selection CLIENT_OLE2.OBJ_TYPE;
         args CLIENT_OLE2.LIST_TYPE;
    BEGIN
    -- create a new document
              app := CLIENT_OLE2.CREATE_OBJ('Word.Application');
              CLIENT_OLE2.SET_PROPERTY(app,'Visible',1);
              docs := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Documents');
              doc := CLIENT_OLE2.INVOKE_OBJ(docs, 'add');
              selection := CLIENT_OLE2.GET_OBJ_PROPERTY(app, 'Selection');
         -- insert data into new document from long item
              CLIENT_OLE2.SET_PROPERTY(selection, 'Text', :b1.t1);
    -- save document as example.doc
         args := OLE2.CREATE_ARGLIST;
         CLIENT_OLE2.ADD_ARG(args, 'c:\temp\example.doc');
              CLIENT_OLE2.INVOKE(doc, 'SaveAs', args);
              CLIENT_OLE2.DESTROY_ARGLIST(args);
    -- close example.doc
              args := CLIENT_OLE2.CREATE_ARGLIST;
              CLIENT_OLE2.ADD_ARG(args, 0);
              CLIENT_OLE2.INVOKE(doc, 'Close', args);
              CLIENT_OLE2.DESTROY_ARGLIST(args);
              CLIENT_OLE2.RELEASE_OBJ(selection);
              CLIENT_OLE2.RELEASE_OBJ(doc);
              CLIENT_OLE2.RELEASE_OBJ(docs);
    -- exit MSWord
              CLIENT_OLE2.INVOKE(app,'Quit');
    END;

  • Error while using wbutil Client_OLE2.create_obj('Excel...ora-06508

    I am facing ora-06508 error while using webutil. Have done all setup as per "How to Configure Webutil in Forms 11g ".
    Error on following statement "Client_OLE2.create_obj('Excel.Application')"
    FRM-40375, ORA-06508.
    Waiting for Help.
    Thanks;
    Edited by: umairm on Apr 20, 2012 10:16 AM

    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

  • How to take control back from service error handler in osb

    I am using osb to send data to multiple services at the same time.since x query is a procedural language if any single operation fails the flow goes to service error handler which calls a BPEL webservice and logs the error in a database but the control doesnt comes back to my code I have tried everything including RESUME,REPLY operations but all in vain similarly i cannot use service callout call to my business service because its not allowing to select my BPEL wsdl operation

    If your statement "the control doesnt comes back to my code" means you expect that your xquery will continue in processing than your expectations are just too high. :-)
    Resume action is supposed to resume the next action in the message flow. It means the action that follows the action which caused an error.

  • Report and Alert don't executed in the error handler with a JMS proxy service

    Hi,
    I'm working with OSB 11.1.1.4.0 and I'm facing a problem with the error handler of my JMS proxy service.
    My error handler contains two main elements :
    - a Report action
    - an Alert with a JMS destination defined
    When the business service failed the message remain in the queue. It's the expected behavior.
    The problem is :
    - the report is missing
    - the alert is raised but missing in the JMS destination defined in the Alert setting.
    I've noticed if I add a Reply with Failure or Success, Report and Alert are successfully executed.
    Unfortunately the message don't remain in the JMS queue.
    What can I do in order to have my report/alert done and the JMS transaction rollback in order to keep the message in the queue ?
    I've already met this problem in the past with alsb v3 and my solution was to add Service Callout in the error handler in order to externalize these actions.
    This solution is not convenient and I hope another solution is possible.

    Inventorying workgroups can be difficult, especially when it comes to remote access and network security. Because workgroups are not centrally managed, some of the items discussed in this
    wiki article on preparing your workgroup environment may require you to visit each machine individually.
    For non-domain credentials, you do not use the <systemname>\<user> format, you simply enter the user name. Regarding how to enter the credentials, if you have an account that uses the same username and password on all machines and is an administrator
    on all of those machines, then you can enter that in the All computers credentials page of the wizard. You can also do this if they are different user names. However, if some machines have an account with the same user name, such as Administrator,
    but different passwords on each machine, you will need to use the Manually enter computer names discovery method, and then enter the information for each group or each machine.
    As you can tell, workgroup environments can quickly negate any benefit that the agentless inventory nature of MAP provides.
    Please remember to click "Mark as Answer" on the post that helps you, and to click
    "Unmark as Answer" if a marked post does not actually answer your question. Please
    VOTE as HELPFUL if the post helps you. This can be beneficial to other community members reading the thread.

  • LV7.1 Strange behavior with Automatic Error Handling occuring when it shouldn't [LV 7.1 Pro on WinXP for Tablet PC's]

    [LV 7.1 Pro on WinXP for Tablet PC's]
    I recently let a rather large LV app of mine run in the development environment while I was out for a couple of days. Upon returning I found that the app had hung for ~22 hours waiting for an answer to an Automatic Error Handling (AEH) dialog proclaiming an Error 7 in New File without any indication of the VI hierarchy that called New File.  I set about ensuring that AEH dialogs would not pop up and have not been able to discover how I could have possibly received one in the first place.
    Subsequent investigation revealed:
    Neither AEH option in Options>Block Diagrams were checked.
    Network problems had occurred around the time that the app had hung.  All file paths are network paths when running in the development environment, so the cause of the error was most likely valid, even if the AEH dialog appearance wasn't.
    My app has only one instance where the New File primitive is used by me. That subVI and all others above it in the hierarchy DO NOT have the AEH property enabled.  The error out cluster of New File in my subvi is wired.
    My app has three instances where New File is called from a vi.lib vi (Open/Create/Replace File.vi, Open Config Data.vi, and Prompt Web Browser Path.vi), none of which have the AEH property enabled.  Nor does any of their calling VI's.  All three instances also have their error out cluster wired.
    A utility to examine the AEH property of all VI's (with all top level and dynamic VI's loaded) in memory reported that only 1 of 308 vi's ( RGT Does File Exists.vi from the Report Generation Toolkit) had that property true.  That vi has no subVI's other than the File/Directory Info primitive and no calling VI's in common with any of the vi's that call New File, except a top level VI.
    As long as 'Enable automatic error handling dialogs' remains unselected in options>block diagram, I am unable to get an AEH dialog for either the New File or File/Directory Info primitives in a test VI with AEH property enabled and their error out clusters unwired no matter what invalid path I pass to the functions.  As soon as the options>block diagram>Enable AEH dialogs' is selected, both primitives fire AEH dialogs with no error out wired and don't when wired. i.e. works as advertised.
    In other words I can find no reason why I should have gotten the problem AEH dialog...
    I cannot afford for this app to hang because of a network problem, other portions of the app that were running concurrently correctly handled the error and, had the AEH dialog not appeared, the app would have made corrections or shutdown in an orderly fashion.
    Any ideas?

    Very good.
    Write Characters to File.vi>Open/Create/Replace File.vi>New File
    New File throws the error.  Open/Create/Replace strips the hierarchy from the source of the error.  Write Characters passes it to the General Error Handler.  I never looked above O/C/R file in the hierarchy except for enable automatic error handling property.  The tip-off should have been to realize that O/C/R file was stripping the hierarchy from the error and look above that. 
    The real irony is that Write Characters was being used to log error cluster data to an error log file...
    Save as... Copy without updating... the OEM 'Write Characters to File' is gone from this app.
    Thanx (a bunch)

  • Error handling in process chain-doubts

    Hi ,
    I have some doubts in error handling of process chains.
    1) I have  aprocess load infopackeage and subsequent process is update fromPSA.
    process load infopackage got failed  , so i loaded  the IP manually and repeated the next i.e process update from PSA .
    How to correct the process chain from now?
    2) I have  aprocess load infopackeage and subsequent process is Delete request in infocube .process load infopackage got failed  , so i loaded  the IP manually and repeated the next process i.e Delete request in infocube. Chain continued by deleting the right request . How this is possible ?
    Plz  help me  as this is urgent and daily i have to deal with this  issues. If any documents on error handling is greatly appreciated.
    My mail id is [email protected]
    Regards,
    Pavan

    Hi Pavan,
    Hope the following links will give u a clear idea about process chains and clear ur doubts.
    Business Intelligence Old Forum (Read Only Archive)
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8f/c08b3baaa59649e10000000a11402f/frameset.htm
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/8da0cd90-0201-0010-2d9a-abab69f10045
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/19683495-0501-0010-4381-b31db6ece1e9
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/36693695-0501-0010-698a-a015c6aac9e1
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9936e790-0201-0010-f185-89d0377639db
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3507aa90-0201-0010-6891-d7df8c4722f7
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/263de690-0201-0010-bc9f-b65b3e7ba11c
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    Errors in monitoring of process chains can be categorized into 4 different sections...
    Master data - Full Update
    Master data - Delta Update
    Transaction data - Full Update
    Transaction data - Delta Update.. in terms of loading of data which can be due to server shut down or system maintenance... errors due to incorrect entries in the OLTP system in which case you'll have to fix the errors in the PSA and manually load the data...
    Otherwise it can have errors on Attribute change run being locked by some other job... Aggregate Roll up failing because of attribute change run being run at the same time... Problem with hierarchies and save hierarchies...
    There can be problems with the data store activation if the ODS object contains any incorrect request sitting inside it... then, you need to delete the incorrect request and reload the data again...
    In case of Transaction Delta failure, you'll have to request for a repeat either manually in the infopackage or using the repeat option if available on right clicking the load event...
    For Master Data Delta failures, you need to do an Re-init by deleteing the previous initalization condition in the "initalization option for source systems" in the menu scheduler or reschedule the enitre chain... because, master data generally do not support repeat of last delta ...
    U can even look into these links:
    /people/siegfried.szameitat/blog/2006/02/26/restarting-processchains
    For common data load errors check this link:
    /people/siegfried.szameitat/blog/2005/07/28/data-load-errors--basic-checks
    ****Assign Points if Helpful****
    Regards,
    Ravikanth.

  • Error handling function: ORA-20001: get_dbms_sql_cursor error:ORA-00942: table or view does not exist  is not trapped. Why?

    Why APEX 4.1 Error handling function does not trap  the error of missing table?
    Say, I create simple application with single IR report page and I also assign standard simple error handling function.
    Function works perfectly, except but this case:
    If I just drop a table used by report page and then refresh the page I am getting usual APEX error message:
    ORA-20001: get_dbms_sql_cursor error ORA-00942: table or view does not exist
    and error handling function is not invoked at all.
    Is this a feature or a bug?

    Hi,
    Check the corrections given in the note 990764:
    Reason and Prerequisites
    Up to now, using a characteristic with its own master data read class as the InfoProvider was not supported. This is now released but it is not available for all modelings. Using the attributes in the query is not supported for characteristics that have their own master data read class. Using the attributes in the query causes a termination. The following errors may occur in this case:
    ORA-00942: table or view does not exist
    Fehler in CL_SQL_RESULT_SET  Include NEXT_PACKAGE
    RAISE_READ_ERROR in CL_RSDRV_VPROV_BASE
    Solution
    SAP NetWeaver 2004s BI
               Import Support Package 11 for SAP NetWeaver 2004s BI (BI Patch 11 or SAPKW70011) into your BI system. The Support Package is available once Note 0914305 "SAPBINews BI 7.0 Support Package 11", which describes this Support Package in more detail, has been released for customers.
    In urgent cases you can implement the correction instructions.
    The correction instructions contain the tightened inspection for characteristics.
    Regards,
    Anil Kumar Sharma .P

  • Issue with SRDemo error handling

    Hi All,
    Glad the forums are back up and running. In debugging some error-handling issues in our own application, I found an issue in the error handling code of SRDemo. I thought I'd post the issue here, as many of us (myself included) use some SRDemo code as the basis for our own applications.
    The issue can be found in the oracle.srdemo.view.frameworkExt.SRDemoPageLifecycle class, specifically in the translateExceptionToFacesErrors method. I'll show the code that has the issue first, and explain the issue afterwards:
            if (numAttr > 0) {
                Iterator i = attributeErrors.keySet().iterator();
                while (i.hasNext()) {
                    String attrNameKey = (String)i.next();
                     * Only add the error to show to the user if it was related
                     * to a field they can see on the screen. We accomplish this
                     * by checking whether there is a control binding in the current
                     * binding container by the same name as the attribute with
                     * the related exception that was reported.
                    ControlBinding cb =
                        ADFUtils.findControlBinding(bc, attrNameKey);
                    if (cb != null) {
                        String msg = (String)attributeErrors.get(attrNameKey);
                        if (cb instanceof JUCtrlAttrsBinding) {
                            attrNameKey = ((JUCtrlAttrsBinding)cb).getLabel();
                        JSFUtils.addFacesErrorMessage(attrNameKey, msg);
                }Now, this bit of code attempts to be "smart" and only show error messages relating to attributes if those attributes are in fact displayed on the screen. It does so by using a utility method to find a control binding for the attribute name. There are two issues with this code, one obvious, and one that is a bit more subtle.
    The obvious issue: if there is a binding in the page definition, it doesn't necessarily mean that the attribute is shown on the screen. It's a good approximation, but not exact.
    The other issue is more subtle, and led to errors being "eaten," or not shown, in our application. The issue comes if you are using an af:table to display and update your data. In that case, the findControlBinding will not find anything for that attribute, since the attribute is contained within a table binding.
    Just posting this as a word to the wary.
    Best,
    john

    somehow, this message got in the wrong thread....
    Hi Frank,
    Yes, I simply scripted it out this way to contrast the behaviour if the first attribute was read-only vs not read-only. I found the issue on a page in our app that was simply drag-and-drop the VO from the data control on the page.
    It's quite annoying, because our particular use case that hit this error is a "save" button on the page. If the commit operation doesn't return any errors (and it doesn't in this use case!), we add a JSF message saying "save successful" - then the attribute errors are further added later in the page lifecycle, so we get 3 messages: "Save successful" and "Fix this error" and "Tried to set read-only attribute" - quite confusing to the end-user when the only message they should see is "fix this error."
    At any rate, the fix is to simply re-order the attributes in the page definition - that doesn't affect the UI at all, other than to fix this issue.
    John
    it was supposed to be something like:
    Hi Frank,
    Thanks for the reply. I was simply posting this here so that people who use the SRDemo application techniques as a basis for developing the same functionality in their own apps (like me) can be aware of the issue, and avoid lots of head-scratching to figure out "what happened to the error message?"
    John

  • Error Handling in File Adapter

    I have been working on a requirement where the file adapter picks up the file and gives to the BPEL for processing the data.
    So, in order to do Error Handling for file adapter, i have been reading the Oracle documentation for technology adapters. In that, some of the
    points which i felt valuable for my error handling when using file adapter are the uniqueMessageSeparator property, fault-policies for rejected messages,
    and one of the action for rejected messages could be writing the payload to a file or invoking any other webservice.
    In my composite, i have configured the file adapter as a service for reading files, and i defined the xsd using the native format builder....If i put some data like 'aaaa' in the attribute of type integer , the .csv file is being picked up and its being passed to the BPEL without any error ? I believe there should be a translation error...right...
    But i am not getting the error, please tell me if anything is wrong in my xsd....
    Here is my xsd...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/InboundService"
    targetNamespace="http://TargetNamespace.com/InboundService"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="names">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="name" minOccurs="1" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    And for DB Adapter, there is a property called SchemaValidation, i think that is not there for File adapter, by default it will take care of validation i guess....In another composite, my file adapter is picking up the .xml file and if i put any wrong data over there, that is working fine, i am getting the translation error, but only here in the case of csv file, i am not getting the error. Experts, please help me in this regard...I am using SOA 11G
    Thanks,
    Naresh

    Hi Yatan,
    Thanks for the reply. I did the same way, where my composite is picking up an XML file and translation error is coming. Even the fault policies are working fine, like writing to a file and even invoking other web service. Its really good that you have achieved the same thing in csv files. But the same thing i am unable to achieve when my file adapter is picking up the csv file. I really cant understand where i am doing wrong.
    here is my XSD which i defined through my native builder format...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/FileRecv"
    targetNamespace="http://TargetNamespace.com/FileRecv"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="Roots">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    the jca file ..
    <adapter-config name="FileRecv" adapter="File Adapter" wsdlLocation="FileRecv.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/FileAdapter" UIincludeWildcard="n*.csv"/>
    <endpoint-activation portType="Read_ptt" operation="Read">
    <activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="C:\files"/>
    <property name="Recursive" value="false"/>
    <property name="PollingFrequency" value="5"/>
    <property name="IncludeFiles" value="n.*\.csv"/>
    <property name="UseHeaders" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    I told that the file will contain only 1 record while defining xsd and i kept a record whose values are John , Peter and akjdkjdskj.
    Now if the data is like above, the file is still getting picked up without any translation error and the BPEL is getting completed successfully...
    Is it possible for you to send your sample project and the csv file from which you have defined the xsd to me if you dont mind ?
    Thanks,
    Naresh

  • Error handling in File - XI - SOAP scenario without BPM

    Hello!
    We have a File -> XI -> SOAP scenario without BPM. The problem is that if the Web Service sends back an error XI tries to reprocess the same message again and again instead of taking the next one.
    We do not want set the retry interval to NULL because most error cases are temporary connection problems and then also those messages would not automatically be reprocessed any more.
    We also have to use BE instead of EO, otherwise the Web Service will not return a response. But we need the response to be sure that the processing was successful. The message volume in this scenario is quite high and we do not want to use BPM only for the error handling.
    I know that from SP19 some additional adapter modules are available for async - sync scenarios without BPM. I tried to configure it like described in File - RFC - File without a BPM - Possible from SP 19. but it did not solve the problem. Does anybody have any other ideas? Thanks.
    Regards, Tanja

    Hi Tanja,
    >>>The volume is 3000 messages/day on business days and 700 messages/day during weekends but the traffic will increase in the future
    I think, you should check that out. It is assumedly only 2 days work to build a scenario:
    IDoc -> BP
    BP <-> SOAP/HTTP
    BP -> IDoc (Acknowledgement)
    In the process you need a condition branch, where you decide success or not. You need 2 Interface Mappings for filling the ALEAUD.
    Just send 1000 IDocs to the Test-XI and look to performance monitoring at Runtime Workbench, to find out, how many message will be processed in one hour. Assumedly 3000 and more per day should be possible. The advantage would be to reduce number of systems (no file system) and messages (better monitoring) and using the standard (better maintenance).
    >>>So you are suggesting I should use HTTP adapter and then add the SOAP header manually in a mapping?
    Yes, build the SOAP envelop during the mapping. Most easy is to use XSL or, if your mapping is ready, an additionsal XSL. You can put the error into the Acknowledgement to see it in ERP transaction WE02.
    Filling of ALEAUD fields:
    E1ADHDR/MESTYP: original message type
    E1ADHDR/E1STATE/DOCNUM: original IDoc number
    E1ADHDR/E1STATE/STATUS: 68 in case of error, 53 in case of success
    E1ADHDR/E1STATE/STATXT: Short description for R/3 user what has happend
    I ve done such a scenario several times. That works without any problems.
    Regards,
    Udo

  • IDOC to SOAP asynchronous scenario Error handling

    Need an expert!!!!!!!!! advise on  error handling for IDOC--PI--
    SOAP scenario.This is a asynchronous scenario where PI is calling a Legacy system using SOAP adapter.My question is how i can do error handling in this scenario.If i get an alert in pi with payload variable that would be fine, do i need to use BPM and if that is tthe case what will be steps.
    Appreciate your help.
    Manish

    Hello Manish,
    My question is how i can do error handling in this scenario.
    Use the standard alert framework. Search on SDN / SAP Help for details.
    do i need to use BPM and if that is tthe case what will be steps.
    BPM is not required to raise alerts, as this is an async call.
    Regards,
    Neetesh

  • How to stop execution after generating error message in an error handler?

    I am working on ALSB 3.0.I have a proxy consisting of 2 stages in a pipeline pair. I have error handlers for each of the stages. The first stage contains schema validation action. Whenever the schema validation fails,control should transfer to error handler.
    The error handler has a publish action and in request action I am calling an xquery transformation to generate error message.Publish action should publish message to a jms based business service configured. My questions are:
    1. After getting into the error handler, the first alert msg configured inside request action (of publish action) is generated.Subsequent actions to generate error xml message and to replace the contents of errorXml in $body are not executed.And so no error message is generated or published.
    2. I have also configured a reply with failure. Inspite of that,the control shifts to next stage in request pipeline and execution continues.
    Can anyone tell me where I need to do the corrections.
    Cheers.
    Edited by: arrajago on Jun 15, 2009 11:55 PM

    Got the answer.Generate error xml outside publish action.Replace action has to placed inside Publish's request action.To stop execution,use Reply action after Publish.

  • BPM for error handling and acknowledgements

    Hi,
    Can any one tell me how to handle BPM for error handling and acknowledgements in one scenario.
    Please send me the link if you have other wise give me the solution on the same.
    Thanks,
    Nagesh

    Hi !
    Just check out these links This might help you.
    Usually Application Level Acknowledgement is considered during Sync communication. If you are using RFC, you can make use of Sync communication. So you can handle it without bpm, provided your both sender and receiver are sync interfaces.
    To know about Ack-
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    you can not dirrectly access the content of the ACK, however the BPM shows different behaviours based on the ACK status. E.g. if the ACK contains a success message the BPM will continue in its normal process, if the ACK contains a permanent error, it will either stop or go through an exception branch (provided such a branch has been defined). Have a look at the documentation: http://help.sap.com/saphelp_nw04/helpdata/en/43/65ce41ae343e2be10000000a1553f6/content.htm It doesnt"t state the above mentioned behaviour in detail but says that you need to define an exception branch.
    The trickiest part is always to find out, when you will get a transient vs. as permanent error ack. If you are using ACKs with Proxies refer also to this link http://help.sap.com/saphelp_nw04/helpdata/en/29/345d3b7c32a527e10000000a114084/content.htm and this http://help.sap.com/saphelp_nw04/helpdata/en/f4/8620c6b58c422c960c53f3ed71b432/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/29/345d3b7c32a527e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/7b/94553b4d53273de10000000a114084/content.htm
    <b>The following link has entire configuration of Receiver XI Adapter (including acknowledgements)</b>
    http://help.sap.com/saphelp_nw04/helpdata/en/f4/0a1640a991c742e10000000a1550b0/content.htm
           <b>   eror handling in BPM.  
    </b>
    1. CCMS monitoring
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/42fb24ff-0a01-0010-d48d-ed27a70205a8
    2. BPM Monitoring
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
    3. Monitoring XML Messages http://help.sap.com/saphelp_nw04/helpdata/en/41/b715045ffc11d5b3ea0050da403d6a/frameset.htm
    /people/sap.user72/blog/2005/11/29/xi-how-to-re-process-failed-xi-messages-automatically
    monitoring BPm https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e7bc3a5a-0501-0010-1095-eb47159e169c
    Reconciliation of Messages in BPM - /people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm
    Also see the below BPM related links
    check list for BPM https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3bf550d4-0201-0010-b2ae-8569d193124e
    /people/shabarish.vijayakumar/blog/2005/08/03/xpath-to-show-the-path-multiple-receivers
    http://help.sap.com/saphelp_nw04/helpdata/en/3c/831620a4f1044dba38b370f77835cc/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/62/dcef46dae42142911c8f14ca7a7c39/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/cb/15163ff8519a06e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/08/16163ff8519a06e10000000a114084/content.htm
    Many other examples can be found under the following link at help.sap.com
    http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
    And some weblogs
    https://weblogs.sdn.sap.com/pub/wlg/1403 [original link is broken] [original link is broken] [original link is broken]
    /people/siva.maranani/blog/2005/05/22/schedule-your-bpm *****
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    /people/michal.krawczyk2/blog/2005/09/04/xi-do-you-realy-enjoy-clicking-and-waiting-while-tracing-bpm-steps *****
    /people/udo.martens/blog/2005/09/30/one-logical-system-name-for-serveral-bpm-acknowledgements *****
    /people/sudharshan.aravamudan/blog/2005/12/01/illustration-of-multi-mapping-and-message-split-using-bpm-in-sap-exchange-infrastructure
    /people/kannan.kailas/blog/2005/12/07/posting-multiple-idocs-with-acknowledgement
    Also have a look at these seminars,
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/daea5871-0701-0010-12aa-c3a0c6d54e02
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/e8515171-0701-0010-be98-e37bec4706cc
    Thanks !!!
    Regards
    Abhishek Agrahari
    Questions are welcome here!!
    <b>Also mark helpful answers by rewarding points</b>

Maybe you are looking for