Tuesday, January 6, 2015

#366 SFTP (Put/Get) with the Oracle FTP adapter

Simple scenario here -







All the composite does is accept in an order and then PUTs the order to the FTP server.

As FTP server I am using Cerberus FTP.

I configured a new user niall




















Note: the root folder for user niall is D:\Work\envs\CerberusFTP\NcFolder

Here are the Constraints -
niall can only use sftp






























So user niall will use the above public key to authenticate.

So where did this key come from?

I used PuttyGEN to create public/private keys on the machine, hosting SOA Suite.
























These keys are stored here on my machine - in D:\Work\keys








Now back to the composite -

Here is the configuration of the FTP adapter -











Note the JNDI Name eis/Ftp/ncSFTPAdapter.

I now go to the Weblogic console and configure this resource -






































Properties 1 - 10: no changes.

Properties 11 - 20: change Host value to FTP Server host



Here is the ip address from the FTP Server console -

























Properties 21 - 30: no changes.

Properties 31 - 40: change ListParserKey = WIN


















Properties 41 - 50: set PrivateKeyFile to point to the SOA Host
private key.

change port to 22.



















Properties 51 - 60: no changes.

Properties 61 - 70: Set
ServerType=win
Username=niall

(niall is, of course, our ftp user)




















Properties 71 -74:
Set UseSftp to true















Save and update the ftpAdapter deployment






































Deploy the composite and test -














--- GET ---

Here is my composite -










Adapter config as follows -
























I drop a file into NcFolder














It is picked up and an instance of the composite is instantiated.








Monday, January 5, 2015

#365 FileAdapter --> dynamically setting the outbound file name

Scenario 1 -

set the file name to XXX_timestamp




































results in the creation of the file -






Scenario 2 -

set the file name to nn_nn_timestamp.xml

nn_nn will be set to custLastName-product















I set the filename dynamically in the BPEL process as follows -

I edit the Invoke activity -




























Deploy and Test











Check the output file -






















#364 Fixed Length file processing part 2

Here we receive a fixed length text file of type A and
write it to a fixed length text file of type B

Type A -







AccountNr 8 chars
First Name 10 chars
Surname 10 chars
CountryCode 2 chars

Type B -







AccountNr 12 chars
First Name 15 chars
Surname 15 chars
CountryCode 2 chars

Create a composite and and add a File Adapter (Read),using the schema builder, as per the previous post.

Add a file write adapter using the schema builder, based on the file of type B.

















Deploy and test -




















outB_7.txt and outB_8.txt are my two output files, and, as you can see,
they adhere to the FixedLengthTextFile2.txt format.

All I needed to add to the nXSD generated for FormatB was the padding instruction -

nxsd:padStyle="tail"



















#363 Fixed Length File processing with SOA Suite 12c

Here is a simple example -

My flat file is as follows -










AccountNr (8 chars)
First name (10 chars)
Surname (10 chars)
CountryCode (2 chars)

I create an empty soa composite in JDev 12c and add a file adapter -















































































I set the field positions as follows -










Now I can set the field names and types -












































looks good!























I click the Test button (bottom right)























I now add a File adapter(Write) to the composite.
I added a new schema to the project, this will be used by the WriteCustomer2File.
This simply writes each customer record to a file.
















I will hardcode the status value in the following BPEL process Assign activity.

I add a BPEL process that will receive in my file and invoke the file adapter(Write)





I deploy and test -

I see 2 output files, 1 per customer -