Error handling in OWB

Hi,
I have created a process flow which include more than a mapping. How do I handle the errors that arise out of the mappings?
Are there wrappers stored procedures available for the extracting info from the auditing views of the runtime repository?
Thanks
Giri

If the error is raised outside of the PL/SQL custom package, then it is recognized as a database error.

Similar Messages

  • Exception Handling in OWB Urgent!!!

    Hi,
    I want to do error handling in OWB Mapping, how to achivw the same as there is no exception handling OPERATOR provided by OWB. Please let me know its URGET...
    Not: OWB version is 10g R1.

    Hi,
    Jeane has answered your query. Such vague questions dont have any specific answer. Identify your rules that should raise an exception. On satisfying such conditions, route this record to the error table instead of the target table. your exception is raised and it also has been handled as you have managed to load into a error table upon which you can report.
    Regards
    -AP

  • Owb process flow error handling

    Hi,
    I am using OWB 10gR2.
    I have 2 process flows that each call a series of mappings. Then I have one "master" process flow that calls the two aforementioned proecess flows. When a mapping errors, I want my whole master process flow to abort. I put error handling in, but it doesn't seem to work. For example, if I get an error in the first process flow, I get my email notification that something is wrong. The process ends. However, the master process flow continues to go. I want it to stop. It continues to go because there wasn't an error in the first process flow. The error was handled, and the process flow ended successfully. Does anyone have any tips or tricks on how to handle this type of situation? I'm not doing anything revolutionary. I'm just new to these process flows.
    Thanks,
    Tim

    hmm ok this sounds a bit weird to me.
    I've created similar processflows with customers and never had similar problems like you describe.
    Just to verify your design, here is how I would solve your master1 processflow.
    _______________________END_WARNING
    w w
    start----PF1----------s---------------PF2------s---- END_SUCCESS
    e e
    \___________________\____END_WARNING
    where the conditions for the transitions is indicated with w for warning, s for success and e for error.
    Some poorly made ascii art there but hopefully you get the idea...:p
    This also sounds like what you've done already and with extra email functionality.
    Are you sure that pf2 starts after pf1? Or can it actually run in parallel with pf1 but just finishes after pf1 so it seems like it its done afterwards? The reason I ask is that I experienced that in one of my processflows with around 30+ mappings, one of the mappings that was supposed to be executed almost at the end, executed before everything else and messed everything up. It was quite the annoying little bug and took a long time for me to discover. If you have noticed on the transitions, there is a little number next to the line on the canvas, indicating in which order the operators are to be executed. In my case, two transitions had the same number and that caused one of the mappings to just start as soon as the processflow was told to start. If this is the case there is a way to set these, but I don't remember right now. Delete and recreate the transitions also do the trick I think.
    Hope you figure it out!
    Ragnar
    edit: seems like my ascii art got a bit messed up... :(
    Message was edited by:
    rhaug

  • Writing transformations for OWB/OWF to implement bespoke error handling

    I have implemented mappings which perform lookup on a translation table and if the lookup is not found a suitable value is output to a column, e.g. 'ERROR' is written to the output column on an intermediate table e.g. xxx_temp. The intermediate table is then split into two streams and output to two tables, those with errors to xxx_errors and those that are valid to xxx_out. What I want to know is how to write a transformation which will count the number of errors in xxx_errors and if 0 will return 'success' and if > 0 will return 'error' - because OWB Process Flows can only seem to handle three state events. Will this example function work or are there other parameters that I must include in the function before Oracle Workflow can process it correctly.
    FUNCTION etl_md_errors
    RETURN NUMBER IS
    lv_status NUMBER(22) := 0;
    lv_count NUMBER(5) := 0;
    ** Cursor to count the number of errors in the mappings run
    ** for the Operating Unit Master Data.
    CURSOR lcur_count_errors IS
    SELECT c1.err_cnt + c2.err_cnt
    FROM (
    SELECT Count(Rowid) err_cnt
    FROM t_mdo_ce_errors
    ) c1,
    SELECT Count(Rowid) err_cnt
    FROM t_mdo_cstobj_errors
    ) c2,
    SELECT Count(Rowid) err_cnt
    FROM t_mdo_vntr_errors
    ) c3;
    BEGIN
    OPEN lcur_count_errors;
    FETCH lcur_count_errors
    INTO lv_count;
    CLOSE lcur_count_errors;
    IF lv_count <= 0 THEN
    lv_status := 1;
    ELSE
    lv_status := 3;
    END IF;
    RETURN lv_status;
    EXCEPTION
    WHEN OTHERS THEN
    RETURN 3;
    END etl_md_errors;
    I cannot test the Process Flow deployment as Oracle Workflow 2.6.0 has been installed on an Oracle 8i schema but the Location registration version pulldown only has one entry 2.6.2
    Cheers,
    Phil Thomson

    Hi,
    You seem to have missed the point of the posting.
    I am asking how to write a transformation which can be used in Process Flow to determine whether any lookup validation errors have occurred, e.g. to determine which e-mail to send to the system administrator's email account. I was not asking if the method of processing/validating the transactions needed revamping .. it is what the client asked for and it's what they have tested and approved. I'll give an explanation of the background to the processing.
    a) we are reading in transactions from Country Data Warehouses (SAP BW) which are placed as tables in country data source schemas.
    b) we want to consolidate the transactions so that they can be loaded into a European wide Data Warehouse (SAP BW) and these are placed as tables in the target country schemas ... which are consolidated in a global schema using views and dblinks.
    c) as the Country Data Warehouses are using their own set of reference/look up values the transactions have the country data warehouse reference codes translated to equivalent european reference codes. Therefore in each country target schema we have sets of mapping/xref table(s) which translates one country column value to the equivalent european column value, e.g. area_ctry and area_eur. Area_ctry is the area reference code in the Country Data Warehouse and area_eur is the area reference code to be used in the European Data Warehouse.
    d) when a transaction record has a reference value that does not have an equivalent european reference value we want to flag that column and record as an error, as their are several column values to be translated you do not want to only flag up the 1st validation error encountered, you want to validate the entire record and you also want to validate the entire set of transaction records. Users get a bit miffed if you fail the entire batch of transactions on the first column validation or first invalid record, they correct it then find there are other records with errors ... user has to repeat until no errror records.
    e) that is the reason we use the Key Lookup operator on the mapping/xref table with the transaction column's country value in the input group and as the value for the Lookup Condition, on the Key Lookup operator's output group we set the default value for the looked up column to 'ERROR' so if no lookup is found 'ERROR' will be output as the looked up value.
    f) the Split operator is then used to identify error records e.g. area_eur = 'ERROR' OR region_eur = 'ERROR' etc, and to identify valid records e.g. area_eur != 'ERROR' AND region_eur != 'ERROR' etc. The error records are output their own table and the valid records are output to their own table.
    g) if their are true SQL errors e.g. tablespace exceeded, referenced procedure/function state changed then these will be handled by OWB and should be viewed vaie the OWB audit browser.
    As stated in my post what is the template of PL/SQL functions that can be used as Transformations in Process Flows with their 'SUCCESS', 'WARNING' and 'ERROR' transition condition.
    Hope the above explanation helps,
    Cheers,
    Phil Thomson

  • OWB Error handling through error tables

    I have a mapping, which i want to implement error handling through error table, the table is created (error) and i have supplied it in the error table propertis in the target table. But i have tried testing if this is working by changing the data type of one column in my target database, but the whole mapping is failing to run with no error rerded in the error table. And i tried testing the this through sql and suprisingly the errors are being captured. How do i get the whole mapping to run and record the errors if any in the error table without it failing.

    When you say 'the whole mapping is failing to run' what do you mean? Can you deploy the mapping? If not what is the error? When you run the mapping what happens?
    If you look at the DML statement (the INSERT, MERGE or whatever) generated by OWB does it include the LOG ERRORS INTO statement in it?
    There is a blog post below for OWB 11gR2;
    http://blogs.oracle.com/warehousebuilder/entry/owb_11gr2_dml_error_logging
    And an older one here which was based on OWB 10gR2
    http://blogs.oracle.com/warehousebuilder/entry/set_based_errors_dml_error_log
    Cheers
    David

  • DML error table intermittently fails to generate error handling in package

    Hi!
    In OWB 11gR2 (11.2.0.1), we're seeing an issue when setting the DML Error table name on a target table. Sometimes, mostly on older and complex mappings, the error handling logic does not get generated when we deploy the mapping, and nothing is populated in the error tables for error conditions, though the errors display as warnings in the OWB UI.
    When I create a new mapping that is very simple - one table loading another - setting the DML Error table name always results in errors being put in the error table. That's great, but that doesn't help us with our more-complex mappings that aren't logging errors.
    We can't determine the cause of the issue. I can't see a difference in the configuration of the mappings that work and don't work. Generation Mode is All Operating Modes. Default Operating Mode is Set based fail over to row based. We've generated the error table using DBMS_ERRLOG.CREATE_ERROR_LOG. The target tables do not have primary keys.
    I've tried synchronizing the target table operator in the mapping as another forum thread suggested. No change.
    Has anyone else seen this issue or know of a workaround?
    Thanks,
    Jayce

    Which logic did you talk about ?
    For the version 10, you will find the error table more on the insert statement such as:
    INSERT INTO "TSALES"
      ("PROD_ID",
      "SALES"."AMOUNT_SOLD" "AMOUNT_SOLD"
    FROM
      "SALES"  "SALES"
    LOG ERRORS INTO TSALES_ERR (get_audit_detail_id) REJECT LIMIT 50;Come from here:
    http://blogs.oracle.com/warehousebuilder/2007/08/set_based_errors_dml_error_log.html
    Then check the insert SQL generated.
    Cheers
    Nico

  • Error while installing OWB

    Error while installing OWB
    after 50% install.. it says
    "Error in writing to file c:\oracle\ora9201\bin\oci.dll
    The process cannot access the file because it is being used by another process"
    Apparently I have restarted the workstation and closed all oracle related services in services and no other program is running expect the installer.
    Can any one help in resolving the issue. Or can I hit the ignore button and continue installing?

    Always install OWB into a new ORACLE_HOME unless the Installation and Configuration Guide states otherwise. This has only happened twice. OWB 9.0.2.62.3 was the last version to allow installation into an existing ORACLE_HOME. Another thing you can do is go to www.sysinternals.com and download the utility LISTDLLs. It is great. From a command prompt, start it with the syntax: listdlls >log.txt
    This will output the DLLs in use and which executable is using it. Search for the DLL in the log.txt and scroll up until the double line. The executable name locking the DLL will be above the double line. If you have the Microsoft Distributed Transaction Coordinator Service running on the client, it will lock Oracle DLLs. This has been a common issue in the past, going back to the days of Data Mart Suite. This was documented in the Release Notes for it and may still be in the system in a note somewhere. It is in: DMS: Unable To Install; Filesopen/Service Running On Compaq Server Doc ID: Note:1080977.6 and Certain Files which need to be Reinstalled are Being Used Doc ID: Note:117672.1
    The first note I wrote back before 2000.
    Barry

  • Error in starting OWB repository browser listener

    Hi,
    I got the following error when starting owb repository browser listener on Solaris with startOwbbInst.sh
    Exception in thread "main" java.lang.NoClassDefFoundError: javax.servlet.Servlet
    at com.evermind.server.ApplicationServer.class$(ApplicationServer.java:297)
    at com.evermind.server.ApplicationServer.checkDependencies(ApplicationServer.java:297)
    at com.evermind.server.ApplicationServer.launchCommandline(ApplicationServer.java:498)
    at com.evermind.server.OC4JServer.launchOC4JCommandline(OC4JServer.java:171)
    at com.evermind.server.OC4JServer.main(OC4JServer.java:306)
    Is this caused by something with the configuration?
    Jeffrey

    Hi ,
    What is your OWB version ?
    If it is 10.2 then read the following
    With Warehouse Builder 10.2.0.X, the Repository Browser Listener is only supported on Windows x86-32bit and linux x86-32bit client machine.
    So start the Warehouse Builder Repository Browser Listener on Windows/Linux x86-32bit client machine
    For 11g refer MOS Note 469422.1
    Thanks,
    Sutirtha

  • 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

Maybe you are looking for