Passing file name dynamically to file adapter

Sync Read option in BPEL file adapter allows us to read the file from the middle of the process, this is different from the Read option which polls for the new files and is the start of the BPEL process.
As we design the file adapter for sync read it asks for the file name which is static, this means that only file with this given name will be read. Now suppose if we need to read files having same format but different names. How are we going to do that?
There’s a simple way to do this. Whenever we create an adapter a fileAadapterOutboundHeader.wsdl file is created. If we open this file we’ll find an inline schema having the fileName element. Below is the fileAadapterOutboundHeader.wsdl file:
<schema attributeFormDefault=”qualified” elementFormDefault=”qualified”
<element name=”OutboundFileHeaderType”>
<element name=”fileName” type=”string”/>
<!– Header Message –>
<message name=”OutboundHeader_msg”>
<part element=”tns:OutboundFileHeaderType” name=”outboundHeader”/>
Steps :-
While invoking the adapter we only need to set this fileName element with some dynamic generated value. Below are the steps to do this:
  1. Double click the invoke activity which invokes the sync read adapter.
  2. Go to adapters tab and click the torch icon.
     3. Click on Variables and create a new variable.
     4. Give some name like OutboundheaderVariablechoose message type and click the torch.
    5. Drill down to fileAadapterOutboundHeader.wsdl > Message Types and select OutboundHeader_msg. Click    Ok till you are back in the diagram.
     6. Place an assign activity above this invoke and copy the file name to the OutboundHeaderVariable >fileName variable.
That’s it.
Now we can give the name of the file at runtime as the input parameter or we can define deployment descriptor to give the file name.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s