File Adapter SynchRead Rejection Handler

Hi,
I have a process where I have to read a large file using SynchRead (Chunk) operation, and handle the schema validation failure (I guess).
Exception occured when binding was invoked.
<bindingFault>
<part  name="summary">
<summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'SynchRead' failed due to: Cannot create/verify default Rejection Handler directory = 'jca\chunked\ProcessConcurFiles:GetChunkedFileAdapter [ SynchRead_ptt::SynchRead(Empty,body) ] _0JK+pBxlvQ9Gr4ZC+I4uT48XWZGCEaL+oY8PPq0axRY=\rejectedMessageHandlers'". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary> 
</part>
<part  name="detail">
<detail>Cannot create/verify default Rejection Handler directory = 'jca\chunked\ProcessConcurFiles:GetChunkedFileAdapter [ SynchRead_ptt::SynchRead(Empty,body) ] _0JK+pBxlvQ9Gr4ZC+I4uT48XWZGCEaL+oY8PPq0axRY=\rejectedMessageHandlers'</detail> 
</part>
<part  name="code">
<code>null</code> 
</part>
</bindingFault>
Anyone know what is causing the error? It could be the schema file?
Thanks,
ENU

Hi Modarator;
This topic is already open on um Home » Technology Network Community » Documentation part too. Please close other thread
Regard
Helios

Similar Messages

  • File Adapter - Exception / Error handling

    We are using File Adapter in BPEL process to read multiple records from the file. Additionally, we have also handled rejectedMessageHandlers & fatalErrorFailoverProcess exception to lunch custom BPEL process. The process is running fine and also successfully launches custom handler processes too.
    Need help / direction in addressing following issues.
    1. While reading from file, if a records errors out, the custom BPEL process is launched (as specified in rejectedMessageHandlers property). In such instance, the previously read valid records are processed but remaining records are marked as errored out. Our requirement is to make entire record set as invalid and would like to perform rollback of entire process.
    2. Whenever an error occurs during reading the records using File adapter, the associated data file is being deleted from the input directory and also NOT available in archive directory also.
    Are we missing any set up ? We are on 10.1.3.1
    thanks
    -Yj
    Sample Log file:
    <2009-04-20 11:46:14,080> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::init - Initializing the JCA activation agent, processId='bpel://localhost/default/TestFileRead~1.0/
    <2009-04-20 11:46:14,080> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> JCAActivationAgent::initiateInboundJcaEndpoint - Creating and initializing inbound JCA endpoint for:
    process='bpel://localhost/default/TestFileRead~1.0/'
    domain='default'
    WSDL location='Read.wsdl'
    portType='Read_ptt'
    operation='Read'
    activation properties={portType=Read_ptt, rejectedMessageHandlers=bpel://default|AdapterError2|initiate|payload}
    <2009-04-20 11:46:14,096> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Adapter Framework instance: OraBPEL - endpointActivation for portType=Read_ptt, operation=Read
    <2009-04-20 11:46:14,143> <INFO> <default.collaxa.cube.activation> <File Adapter::Inbound> Endpoint Activation called in File Adapter for endpoint: c:\temp\yj
    <2009-04-20 11:46:14,143> <INFO> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Adapter Framework instance: OraBPEL - successfully completed endpointActivation for portType=Read_ptt, operation=Read
    <2009-04-20 11:46:30,580> <WARN> <default.collaxa.cube.activation> <File Adapter::Inbound> PollWork::run exiting, Worker thread will die
    <2009-04-20 11:47:14,158> <INFO> <default.collaxa.cube.activation> <File Adapter::Inbound> Translated inbound batch index 1 of file {testdata6.txt} with corrupted message count = 1
    <2009-04-20 11:47:14,158> <INFO> <default.collaxa.cube.activation> <File Adapter::Inbound> Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
    fileName=C:\temp\yj\testdata6.txt, startLine=3, startColumn=1, endLine=-1, endCol=-1, Exception=ORABPEL-11168
    Error while reading native data.
    [Line=3, Col=5] Expected "|" for the data starting at the specified position, while trying to read the data for "element with name C2", using "style" as "terminated" and "terminatedBy" as "|", but not found.
    Ensure that "|", exists for the data starting at the specified position.
    <2009-04-20 11:47:14,158> <WARN> <default.collaxa.cube.activation> <AdapterFramework::Inbound> [Read_ptt::Read(Root-Element)]onReject: Sending invalid inbound message to Exception Handler: bpel://default|AdapterError2|initiate|payload
    <2009-04-20 11:47:14,315> <INFO> <default.collaxa.cube.activation> <File Adapter::Inbound> Setting last error record to : -1
    <2009-04-20 11:47:14,658> <ERROR> <default.collaxa.cube.activation> <AdapterFramework::Inbound> onBatchFailure: Batch 'bpel://localhost/default/TestFileRead~1.0//testdata6.txt_1240205493408' (C:\temp\yj\testdata6.txt) has failed due to: ORABPEL-11168
    Error while reading native data.
    [Line=3, Col=5] Expected "|" for the data starting at the specified position, while trying to read the data for "element with name C2", using "style" as "terminated" and "terminatedBy" as "|", but not found.
    Ensure that "|", exists for the data starting at the specified position.

    Any light / idea on the following issue ?
    1. While reading from file, if a records errors out, the custom BPEL process is launched (as specified in rejectedMessageHandlers property). In such instance, the previously read valid records are processed but remaining records are marked as errored out. Our requirement is to make entire record set as invalid and would like to perform rollback of entire process. Even, if we do not configure rejectedMessageHandlers, the behavior is that valid rows are processed with the rest of BPEL process and for Invalid rows, the records are rejected. Our requirement, is that, even if there is one invalid record, the entire set of record should NOT move ahead with the BPEL process
    2. Whenever an error occurs during reading the records using File adapter, the associated data file is being deleted from the input directory and also NOT available in archive directory also. Note, in case of all valid record the file is available in archive directory

  • Receiver File adapter - 'Empty Message Handling' option to ignore not worki

    Hi,
      I am trying to create the Files in receiver based on condition.But I am gettiung error in communication channel when there is no payload. Receiver I am usuing FCC and processing tab I selected -'Empty Message Handling' option to ignore .
    one source -> Target 1 (0..1 occurance in signature tab changed, message mapping and operation mapping)
                 and Target 2 (0..1 occurance in signature tab changed)
    and I put the message type level condition. While creating first message If did not create the Message type in my maaping still my Receiver File communication channel is giving error. even thow I my receiver interface occurance is 0..1
    Right now I am in PI7.1 and SP7 is the bug for support pack do I am missing any thing. and do I need to upgrade any nwe patch. appreciate your help.
    Regards,
    Venu.

    Hi,
    here is the my requirment one source -> two target interfacess (0..1)
    If u have 2 target interfaces,then this is not suffice..... u should make it as 0..unbounded both in operation mapping and message mapping.
    But based on ur requirements posted above i guess u have only one inbound interface at a time based on some conditions....
    But,
    <messages>
    <messages1>
    based on condition first message type not created in mapping.
    <messgaes2>
    The error u r getting is because.... u want only one interface in target at a time....
    Then u should not generate Message1 also in the target.
    So avoid mapping to message1 if u want only message2.
    If both message1 and message2 are created in target means... it is triggering for two interfaces.... so avoid one message1 or message2... based on some conditions u have..
    Still nt solved do post...
    Babu

  • Receiving "Invalid char in text." error from file adapter

    I'm testing a file adapter and am receiving the following error:
    Invalid char in text.
    The invalid character seems to be the ascii Record Separator character, Hex 1E, HTML &#xa;
    Is it possible for me to modify the file adapter schema to handle this character?

    The HTML description should have been this (minus space characters)
    & # x a ;

  • Reciever file adapter configuration for Deep structure

    Hi Experts,
                     I have a idoc to file scenario in which i used a data type for file in below format:
    DT_Test
    -->Recordset(0.unbounded)
    >E21DPU1(0.unbounded)
    >field1
    >field2
    >E21DPU5(0.unbounded)
    >filed 3
    >filed 4
    >E21DP03(0.unbounded)
    >filed 5
    >filed 6
    Here DT_test is datatype name,Recordset is a structure name which contain E21DPU1, E21DPU5,E21DPO3 stucture inside it.Now,E21DPU5 and E21DPO3 structures are under E21DPU1.
    I am confused in creating content conversion parameters i.e what we have to mention in Recordset Stucture .
    I used E21DPU1,,E21DPU5,,E21DP03,* .should it work for deep structure.
    Thanks
    Deepak

    Hi,
    file adapter does not handle 2 level deep structures
    the easiest way to do it now is to go for abap or java mapping
    and create a line for each of the output lines and handle this in the file adapter
    so like <line> </line>
    <line>E21DPU1(0.unbounded) with fields </line>
    <line>E21DPU5(0.unbounded) with fields </line>
    <line> etc. </line>
    Regards,
    Michal Krawczyk

  • Generic File Adapter Schema

    I am trying to pick up a .csv file that doesn't comform to a strict format, mainly because of human formatting errors in the file.
    I've tried to create a fixed length schema and a comma delimited schema but both fail as soon as they get a file that doesn't exactly fit. How should I create the schema to cope with a file like this?
    Regards
    Jen

    I too am trying to accomplish something similar.
    My file is tab delimited and has 10 fields. It begins with 6 lines of header and ends with 1 line of footer. The Header is easy enough to skip over, but the footer is causing me no end of problems because the file Adapter is rejecting the entire file when it hits this malformed line. I tried to turn on uniqueMessageSeparator as ${eol} but that didn't seem to do anything different (I suspect it is because ${eol} is also a field terminator for the last field but I'm not sure).
    Ideally I'd like to say any line that has 9 tabs is a Data line, and any line that doesn't is a NotData line but I haven't found any functions that will take a regular expression match as a condition for processing in the XSD.
    I tried using the "choice" method of conditional processing but is seems that I must provice a string that is an exact match for nxsd:conditionValue and not a regex. I don't have a spcific string to look for.
    I also tried to use the "Sequence" method of conditional processing that will treat any record that doesn't begin with a digit as a NotData Message of 1 string element terminated by ${eol} and any record that begins with 8 digits (which is a date in YYYYMMDD format) as a Data record using the "nxsd:startsWith" function but it seems I can only create multiple message types on files when there is some specific string to test. That's not going to work for me. There is no specific string on the records to identify them. The format of the line could be used to identify the records if a function supporting a regex could be found.
    When I tried to deploy the "Sequence" method using a regex for the nxsd:startsWith value it seemed to put my BPEL Process into an infinite loop consuming 100% CPU. I had to kill the app server to stop it.
    A detailed reference on how the File Adapter processes files and what functions are available for ignoring bad records and/or conditional processing would be appreciated. Also, any more ideas on how to get this file parsed would be appreciated.

  • "Message Rejection Handler" for the file/ftp adapter using fault policy

    Hi guys,
    We are trying to implement "Message Rejection Handler" for the file/ftp adapter using following fault policy configuration.
    Fault Policy:
    `````````````
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicies xmlns="http://schemas.oracle.com/bpel/faultpolicy">
    <faultPolicy version="2.0.1" id="ProcessNameGenericPolicy"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-rethrow-fault"/>
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    <faultPolicy version="2.0.1" id="ProcessNameHumanInterventionPolicy"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Conditions>
    <faultName xmlns:medns="http://schemas.oracle.com/mediator/faults"
    name="medns:mediatorFault">
    <condition>
    <test>contains($fault.mediatorErrorCode, "TYPE_TRANSIENT")</test>
    <action ref="ora-retry-with-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:remoteFault">
    <condition>
    <action ref="ora-retry-with-intervention"/>
    </condition>
    </faultName>
    <faultName xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
    name="bpelx:bindingFault">
    <condition>
    <action ref="ora-rethrow-fault"/>
    <!--<action ref="ora-retry-with-intervention"/>-->
    </condition>
    </faultName>
    </Conditions>
    <Actions>
    <Action id="ora-retry-with-intervention">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-human-intervention"/>
    </retry>
    </Action>
    <Action id="ora-retry">
    <retry>
    <retryCount>3</retryCount>
    <retryInterval>1</retryInterval>
    <retryFailureAction ref="ora-rethrow-fault"/>
    </retry>
    </Action>
    <Action id="ora-rethrow-fault">
    <rethrowFault/>
    </Action>
    <Action id="ora-human-intervention">
    <humanIntervention/>
    </Action>
    <Action id="ora-terminate">
    <abort/>
    </Action>
    </Actions>
    </faultPolicy>
    <faultPolicy version="2.0.1" id="RejectedMessages">
    <Conditions> <!-- All the fault conditions are defined here -->
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:PartnerLinkName">
    <!-- local part of fault name should be the service name-->
    <condition>
    <action ref="writeToFile"/> <!-- action to be taken, refer to Actions section for the details of the action -->
    </condition>
    </faultName>
    </Conditions>
    <Actions> <!-- All the actions are defined here -->
    <Action id="writeToFile">
    <fileAction>
    <location>Server/Loc/path</location>
    <fileName>Rejected_AJBFile_%ID%_%TIMESTAMP%.xml</fileName>
    </fileAction>
    </Action>
    </Actions>
    </faultPolicy>
    </faultPolicies>
    Fault Binding:
    ``````````````
    <?xml version='1.0' encoding='UTF-8'?>
    <faultPolicyBindings version="2.0.1"
    xmlns="http://schemas.oracle.com/bpel/faultpolicy"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <composite faultPolicy="ProcessNameGenericPolicy"/>
    <service faultPolicy="RejectedMessages">
    <name>PartnerLinkName</name>
    </service>
    <reference faultPolicy="RejectedMessages">
    <name>PartnerLinkName</name>
    </reference>
    </faultPolicyBindings>
    We have SyncFileRead partner link.
    The expectation is: when the message read by SyncFileRead partner link is rejected,
    that rejected message should come to particular directory in the server.
    Could you please help us fixing this.
    TIA.

    HI..
    Have a look at this blog :
    3) Error: HTTP_RESP_STATUS_CODE_NOT_OK 401 Unauthorized
    Description: The request requires user authentication
    Possible Tips:
    u2022 Check XIAPPLUSER is having this Role -SAP_XI_APPL_SERV_USER
    u2022 If the error is in XI Adapter, then your port entry should J2EE port 5<System no>
    u2022 If the error is in Adapter Engine
    u2013then have a look into SAP note- 821026, Delete the Adapter Engine cache in transaction SXI_CACHE Goto --> Cache.
    u2022 May be wrong password for user XIISUSER
    u2022 May be wrong password for user XIAFUSER
    u2013 for this Check the Exchange Profile and transaction SU01, try to reset the password -Restart the J2EE Engine to activate changes in the Exchange Profile After doing this, you can restart the message
    Http* Errors in XI
    Thanks,
    Pooja

  • About the Rejection Handler (File Adapter)

    I use file Adapter to get the information form other applications and transform the data format to XML . I want to kown ,when will the Rejection Handler of the file Adapter take action ,can i do some predefine to the Rejection Handler to reject the specifically data ?

    Hi,
    The rejection handler only comes into the picture when the input data is invalid as per the schema definition. i.e. you can reject invalid data so that it can be corrected and enqueued again. You can choose to set up your rejection handling mechanisms in bpel.xml.
    See the fllowing post for config info on rejection handlers:
    Re: How can I make my read file server still work when it read a wrong file?
    Regards,
    Narayanan

  • How to handle rejected messages in file adapter

    Hi....! every one.........
    in file adapter read operation it will pick the files even the file contains unstructure message but that file wont be processed.
    where the rejected message goes.
    i have requirement like that rejected message i have to store in another file
    please provide me answer..........

    Hi,
    You can add the parameter 'PhysicalErrorArchiveDirectory' in the JCA file (of the File Adapter).
    Put there the required directory where you want the rejected file to be sent.
    You can add this property in 2 ways:
    1. In your JDeveloper open the JCA file and add: <property name="PhysicalErrorArchiveDirectory" value="/../.."/>
    2. In EM, right click the composite->Service/Reference Properties->Choose your file->On the Properties tab press Add-> Choose 'PhysicalErrorArchiveDirectory' and put the directory-> press Apply.
    Arik

  • 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

  • How to get file name in faultpolices file for file based rejection handler

    Hi All,
    I am implementing the file rejection handler in fault polices.xml
    Now i want to catch exact file name and use this in faultpolices.xml under Filename tag and move the rejected file to custom directory.
    Can some please let me know is it possible to catch the exact filename and use the same name in rejection handle.
    Suppose If we don't handle the rejection handler then these files will move to the default path in SOA HOME. But the file name remains the same. So i think this can be changed in SOA, but i am afraid i how can i do it.
    Please suggest me.
    Regards,
    Tarak.

    Hi,
    have a look at my new weblog:
    /people/michal.krawczyk2/blog/2005/11/10/xi-the-same-filename-from-a-sender-to-a-receiver-file-adapter--sp14
    to see how you can access filename
    Regards,
    michal

  • File Adapter Error Handling

    Hi All,
    I am using File adapter to read the xml file and FTP it to another directory ( BPEL 10.1.3)
    If i put any xml file in the input directory , it picks up the file and FTP it , but the as the xml file will not match the xsd, it out put some xml file which doesnt have any data. I
    if the xml file not as per XSD then it should throw error or ?
    If i put the correct xml file it FTP it to output directory with correct xml file.
    My question is how do i handle the situation/error where xml file is not well formed or xml is not as per the xsd, so that it should stop the process and will log the error and put the file in some other directory.
    Please help.
    Thanks and Regards,
    Vikram Singh

    Hi,
    Yes, i did checked in the folder.
    Also did the following changes as per the Adapter dev guide, Now i am able to validate the file but its not writing the rejected file messgae to the specified director.
    bpel.xml details -----
    <BPELSuitcase>
    <BPELProcess id="Airtricity_Credit" src="Airtricity_Credit.bpel">
    <partnerLinkBindings>
    <partnerLinkBinding name="Read_Credit_File">
    <property name="wsdlLocation">Read_Credit_File.wsdl</property>
    <property name="validateXML">true</property>
    </partnerLinkBinding>
    </partnerLinkBindings>
    <activationAgents>
    <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="Read_Credit_File">
    <property name="portType">Read_ptt</property>
    <property name="rejectedMessageHandlers">
    file://C:\product\10.1.3.1\OracleAS_1\bpel/samples/tutorials/124.AQAdapter/AQMessageRejectionHandler/rejected
    </property>
    </activationAgent>
    </activationAgents>
    </BPELProcess>
    </BPELSuitcase>
    ++++++++++++++++++++++++++++++
    Please help.
    Thanks ,
    vikram Singh

  • File based rejection handling using Debatching

    Hi All,
    I am facing very serious issue while using debatching option in file adapter.
    I am reading file in de-batch mode. When any record is corrupted inside file then entire file is moving to default rejmsgs folder in SOA domain/soa_server1 folder.
    Let say i have total 10 record in files. If record 2,5,and 7 have invalid record then entire message is moving to rejmsgs/process name folder. Because of this case size of the rejmsgs is increased to 20G.
    I request some one to provide me the solution that how can avoid this case and movie only particular invalid record to rejection handler.
    Appreciate for response.
    Regards,
    Tarak.

    Hi Ankit kalanoria,
    Thank you for your response
    As you said i am using debatching mode and in my .Jca file i can see publishsize property value as 1.
    <adapter-config name="ReadRMSinput_file" adapter="File Adapter" wsdlLocation="ReadRMSinput_file.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
      <connection-factory location="eis/FileAdapter" UIincludeWildcard="storetsf*.tsfxml"/>
      <endpoint-activation portType="Read_ptt" operation="Read">
        <activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
          <property name="DeleteFile" value="false"/>
          <property name="MinimumAge" value="0"/>
          <property name="PhysicalDirectory" value="/u01/textdata/SOADEV/SABAT/TSF2SIM/out"/>
          <property name="Recursive" value="false"/>
          <property name="PublishSize" value="1"/>
          <property name="PollingFrequency" value="10"/>
          <property name="IncludeFiles" value="storetsf.*\.tsfxml"/>
          <property name="UseHeaders" value="false"/>
        </activation-spec>
      </endpoint-activation>
    </adapter-config>XSD which i am using for debatching in fileadapter.
    <xs:schema elementFormDefault="qualified"
               targetNamespace="http://www.oracle.com/RMS/RMStoSIMTransfers/RMStoSIMTransfers.xsd"
               version="1.0"
               xmlns="http://www.oracle.com/RMS/RMStoSIMTransfers/RMStoSIMTransfers.xsd"
               xmlns:retailDoc="http://www.w3.org/2001/XMLSchema"
               xmlns:xs="http://www.w3.org/2001/XMLSchema">
             <xs:element name="Shipments">
              <xs:complexType>
                <xs:sequence>
                 <xs:element minOccurs="1" maxOccurs="unbounded" ref="Shipment" nxsd:uniqueMessageSeparator="${eol}"/>
                  </xs:sequence>
                  </xs:complexType>
                  </xs:element>
                  <xs:element name="Shipment">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="ActualShipDateTime" type="xs:dateTime"/>
                        <xs:element name="BolNumAlpha" type="xs:string"/>
                        <xs:element ref="Carrier" minOccurs="0"/>
                         <xs:element ref="Comments" minOccurs="0"/>
                        <xs:element ref="Customer" minOccurs="0"/>
                        <xs:element name="InternalShipmentNum" type="xs:int"/>
                        <xs:element name="OrderType" type="xs:string"/>
                        <xs:element name="TotalContainers" type="xs:int"/>
                        <xs:element name="TotalLines" type="xs:int"/>
                        <xs:element name="TotalQuantity" type="xs:int"/>
                        <xs:element name="TotalVolume" type="xs:int"/>
                        <xs:element name="TotalWeight" type="xs:int"/>
                        <xs:element name="WeightUm" type="xs:string"/>
                         <xs:element ref="Details" minOccurs="0"/>
                              <xs:element ref="ItemDetails" minOccurs="0"/>
                         <xs:element ref="Containers" minOccurs="0"/>
                         </xs:sequence>
                        </xs:complexType>
                        </xs:element>
                        <xs:element name="Carrier">
                           <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Carrier" type="xs:string"/>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="Comments">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Comment" minOccurs="0"
                                          maxOccurs="unbounded">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Text" type="xs:string"/>
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="Customer">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Customer" type="xs:string"/>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="Details">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="ShipmentDetail" minOccurs="0"
                                          maxOccurs="unbounded"/>
                               </xs:sequence>
                                </xs:complexType>
                                </xs:element>
                                <xs:element name="ShipmentDetail">
                                 <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="UserDef1" type="xs:string"/>
                                    <xs:element name="UserDef2" type="xs:string"/>
                                    <xs:element name="UserDef6" type="xs:string"/>
                                    <xs:element name="UserDef5" type="xs:string"/>
                                    <xs:element name="ErpOrder" type="xs:string"/>
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                             <xs:element name="ItemDetails">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="ItemDetail" minOccurs="0"
                                          maxOccurs="unbounded"/>
                               </xs:sequence>
                                </xs:complexType>
                                </xs:element>
                                <xs:element name="ItemDetail">
                                 <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Item" type="xs:int"/>
                                    <xs:element name="Quantity" type="xs:decimal"/>
                                    </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                        <xs:element name="Containers">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element ref="ShippingContainer" minOccurs="0"
                                          maxOccurs="unbounded"/>
                                </xs:sequence>
                                </xs:complexType>
                                </xs:element>
                                <xs:element name="ShippingContainer">
                                <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ContainerId" type="xs:string"/>
                                    <xs:element ref="ContainerDetails" minOccurs="0"/>
                                    <xs:element ref="ContainerType" minOccurs="0"/>                           
                                    <xs:element name="ManifestCarrServiceSymbol"
                                                type="xs:string"/>
                                    <xs:element name="ManifestId" type="xs:string"/>
                                    <xs:element name="TotalFreightCharge"
                                                type="xs:decimal"/>
                                    <xs:element name="TotalFreightDiscount"
                                                type="xs:decimal"/>
                                    <xs:element name="TotalQuantity"
                                                type="xs:decimal"/>
                                    <xs:element name="TotalWeight"
                                                type="xs:decimal"/>
                                    <xs:element name="TrackingNumber"
                                                type="xs:string"/>
                                    <xs:element name="WeightUm" type="xs:string"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="ContainerDetails">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="ContainerDetail" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="ContainerDetail">
                                    <xs:complexType>
                                     <xs:sequence>
                                    <xs:element name="Item" type="xs:int"/>
                                    <xs:element name="Quantity"   type="xs:decimal"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="ContainerType">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="DimensionUm"
                                                      type="xs:string"/>
                                          <xs:element name="Height"
                                                      type="xs:decimal"/>
                                          <xs:element name="Length"
                                                      type="xs:decimal"/>
                                          <xs:element name="MaxWeight"
                                                      type="xs:decimal"/>
                                          <xs:element name="Volume"
                                                      type="xs:decimal"/>
                                          <xs:element name="Weight"
                                                      type="xs:decimal"/>
                                          <xs:element name="Width"
                                                      type="xs:decimal"/>
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                </xs:schema>After adding the attribute uniqueMessageSeparator, if any record in the xml is invalid then my De-batching process is getting stopped. Could you pls let me know if any thing more i have to define in my xsd in order to avoid stopping debatching mode..

  • Problem about Handling of Empty Files in File Adapter

    Hello everyone,
    NetWeaver 2004s --- XI
    In Sender i have a File Adapter.
    Now i meet a problem about Handling of Empty Files. When i send empty file, but don't cerate a leer message.
    I have seen following text in help document. But in adapter configuration i can not find the correspond parameter.
    can you give me some tips?
    Thx in advance
    best regards
    Yaning
    SAP Help Document über File Adapter
    +Handling of Empty Files
    Specify how empty files (length 0 bytes) are to be handled.
    &#9675;       Do Not Create Message
    No XI messages are created from empty files.
    The files are processed according to the selected Processing Mode.
    For example, if the processing mode is Delete, empty files are deleted in the source directory.
    &#9675;       Process Empty Files
    XI messages are created with an empty main payload.
    The files are processed according to the selected Processing Mode.
    &#9675;       Skip Empty Files
    No XI messages are created from empty files.
    Empty files are skipped and remain in the source directory.+
    Help Docu

    hi,
    it's available since Sp19 for XI 3.0
    and the corresponding SPS fpr XI 7.0
    http://help.sap.com/saphelp_nw04/helpdata/en/44/f565854b7341e6e10000000a1553f6/frameset.htm
    so probably you need to install the new SP
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • Receiver file adapter creates empty files, Empty-Message Handling SP19

    Hello,
    We have just upgraded the system to SP19.
    One of the new features is that it should be possible to determine how XI messages with an empty main payload are to be handled in the receiver file adapter.
    If the parameter Empty-Message Handling is set to 'Ignore' no file should be created if the main payload is empty. In our case an empty file (size 0 kb) is still created even though the main payload is empty and the flag is set to 'Ignore'.
    Has anybody experienced the same problem?
    //  Best regards  Hans

    This should work:
    Use your own adapter module that parses incoming message and checks if it has any record sets in the document. If it does not have any record sets, then set the message to empty and then give this modified message to File receiver.
    For example, see the example code below:
    Module imports..
    Audit log import..
    DOM imports/SAX imports..
    public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException {
              try {
                   // get the XI message from the environment
                   Message msg = (Message) inputModuleData.getPrincipalData();
                   AuditMessageKey amk = new AuditMessageKey(msg.getMessageId(),AuditDirection.INBOUND);
                   Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"RemoveRootTag: Module called");
                   XMLPayload payLoad = msg.getDocument();
                   Document doc = parseXmlFile(payLoad.getInputStream());
                   if(doc != null){
                        if(!doc.getDocumentElement().hasChildNodes()){
                             Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS, "Document is empty!!");
                             payLoad.setContent("".getBytes());
                             msg.setDocument(payLoad);
                   // provide the XI message for returning
                   inputModuleData.setPrincipalData(msg);
                   } catch (Exception e) {
                   // raise exception, when an error occurred
                   ModuleException me = new ModuleException(e);
                   throw me;
                   // return XI message
              return inputModuleData;
         private Document parseXmlFile(InputStream xmlpayload) {
              try {
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   factory.setValidating(false);
                   //        Create the builder and parse the file
                   Document doc = factory.newDocumentBuilder().parse(xmlpayload);
                   return doc;
              } catch (SAXException e) {
              } catch (ParserConfigurationException e) {
              } catch(IOException e){
              return null;

Maybe you are looking for

  • Free of Charge Intercompany Invoice process

    Hello Experts, I would like to know how the TANN, Free of Charge process works for intercompany Sales? When I do the F2 billing document, the system behaves as it should but when I process the IV billing document, system is finding a price maintained

  • BI Statistics installed on BI 7.0 but data not getting loaded

    Hi All, I have installed the BI statistics on BI 7.0 from Business content. All the flows, cubes, multi providers, queries, process chains are all installed from Business content. After installing I have run some loads on BI and also executed some qu

  • Problems with outlook - losing identity very often

    Hi. I am using a Mac Book Pro, with OS X 10.8.5. I am a long time user of Outlook, but it keeps losing its identity very often, and I always have to go through the process of reinstalling it. any idea how to prevent this, besides the obvious of givin

  • UK Job with potential worldwide travel!

    I'm recruiting for a world leading company who specialise in test equipment. I'm looking for a Software Engineer in a Test Systems context. The role will involve specifying, developing and delivering and supporting software-based test solutions for c

  • Inner join on internal table

    HI all, How to access data from two internal table using join condition ? suppose i have tow internal table itab and jtab and i want to access data by using inner join on this tow table. please tell . thanx..