Native Format Builder in File Adapter - NXSD:ConditionValue
Hello,
I am trying to build a schema using the Native Format Builder in the File Adapter. I am using the option "Multiple Records of different types"
The CSV file will look like the one shown below, the first column will have either DS, Shipping or an alpha numeric value (not a static value). How should the condition value look like for a dynamic value?
<xsd:element name="RECORD1" nxsd:conditionValue="OrderDetailSKU"> - Static value, the value SKU will not change
*<xsd:element name="RECORD2" nxsd:conditionValue="1"> - This value differs per order, it can be any number or alphabet or a combination of a number and an alphabet*
<xsd:element name="RECORD3" nxsd:conditionValue="DS"> - Static value, the value SKU will not change
<xsd:element name="RECORD4" nxsd:conditionValue="Shipping"> - Static value, the value SKU will not change
SKU,VendorID,PurchaseOrderNumber,RefNum,OrderStatus,Invoice#,InvoiceAmt,FreightCharge,ProcessingFee,Qty,QtyOrdered,QtyShipped,Price,Net,TotalNoBoxes,BoxNo,BoxWeight,BoxWidth,BoxHeight,BoxLength,ShipMethod,TrackingNumber,StatusDate
1,266219,648290074,648290074,Shipped,648290074,17,0,0,1,1,1,15,17,1,1,5,,,,UPSG,,
DS,,648290074,648290074,Shipped,648290074,17,0,0,1,1,1,2,17,1,1,5,,,,UPSG,,
Shipping,,648290074,648290074,Shipped,648290074,17,0,0,1,1,1,0,17,1,1,5,,,,UPSG,1Z4R3E350366250200,
1,,648290075,648290075,Shipped,648290075,77,0,0,5,5,5,15,77,1,1,11,,,,UPSG,,
DS,,648290075,648290075,Shipped,648290075,77,0,0,1,1,1,2,77,1,1,11,,,,UPSG,,
Shipping,,648290075,648290075,Shipped,648290075,77,0,0,1,1,1,0,77,1,1,11,,,,UPSG,1Z4R3E350366250201,
1,,648290076,648290076,Shipped,648290076,32,0,0,1,1,1,15,32,1,1,7,,,,UPSG,,
2,,648290076,648290076,Shipped,648290076,32,0,0,1,1,1,15,32,1,1,7,,,,UPSG,,
DS,,648290076,648290076,Shipped,648290076,32,0,0,1,1,1,2,32,1,1,7,,,,UPSG,,
Shipping,,648290076,648290076,Shipped,648290076,32,0,0,1,1,1,0,32,1,1,7,,,,UPSG,1Z4R3E350366250202,
1,,648290077,648290077,Shipped,648290077,107,0,0,2,2,2,15,107,1,1,11,,,,UPSG,,
5,,648290077,648290077,Shipped,648290077,107,0,0,5,5,5,15,107,1,1,11,,,,UPSG,,
DS,,648290077,648290077,Shipped,648290077,107,0,0,1,1,1,2,107,1,1,11,,,,UPSG,,
Shipping,,648290077,648290077,Shipped,648290077,107,0,0,1,1,1,0,107,1,1,11,,,,UPSG,1Z4R3E350366250203,
1,,648290079,648290079,Shipped,648290079,122,0,0,2,2,2,15,122,1,1,11,,,,UPSG,,
2,,648290079,648290079,Shipped,648290079,122,0,0,3,3,3,15,122,1,1,11,,,,UPSG,,
5,,648290079,648290079,Shipped,648290079,122,0,0,3,3,3,15,122,1,1,11,,,,UPSG,,
DS,,648290079,648290079,Shipped,648290079,122,0,0,1,1,1,2,122,1,1,11,,,,UPSG,,
Shipping,,648290079,648290079,Shipped,648290079,122,0,0,1,1,1,0,122,1,1,11,,,,UPSG,1Z4R3E350366250204,
I need the above CSV to be translated to the below format for each order,
<ns1:order>
<ns2:order_number>648290076</ns2:order_number>
<ns2:order_status>Shipped</ns2:order_status>
<ns2:order_inv_number>648290076</ns2:order_inv_number>
<ns2:order_inv_amt>32</ns2:order_inv_amt>
<ns2:order_freight_charge>0</ns2:order_freight_charge>
<ns2:item_Data>
<ns0:vendor_item_number>1</ns0:vendor_item_number>
<ns0:quantity_ordered>1</ns0:quantity_ordered>
<ns0:quantity_shipped>1</ns0:quantity_shipped>
<ns0:unit_cost>15</ns0:unit_cost>
<ns0:extended_cost>32</ns0:extended_cost>
<ns0:package_id>1</ns0:package_id>
</ns2:item_Data>
<ns2:package_Data>
<ns0:package_id>1</ns0:package_id>
<ns0:package_Items>
<ns0:vendor_item_number>1</ns0:vendor_item_number>
<ns0:quantity_shipped>1</ns0:quantity_shipped>
</ns0:package_Items>
<ns0:TrackingNo>
<ns0:TrackingNum>123456789</ns0:TrackingNum>
</ns0:TrackingNo>
</ns2:package_Data>
</ns1:order>
Hi Vlad,
Thanks for the Idea, I tried using the Choice Condition and I am not sure what would be the condition, in my case, there are 3 record, the value in SKU will vary and differentiate the records. The first record (s) (based on no.of items in an order), the value in SKU column will be any value (alpha/numeric/alphanumeric), the next record will have "DS" in the SKU column and the next one will will "Shipping" in the SKU column. The example does look for "Yes" or "No" starting from the "70"th character in the line. I am not sure how to accommodate the condition to check whether the column* "SKU" contains an Item Number or "DS" or "Shipping". The poistion of the column "SKU" may vary every time, so I am not sure how to add a condition to verify that.
Here is the Schema when I used "Delimited" in the choice condition,
<?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="OrderDetail">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="unbounded" nxsd:choiceCondition="terminated" nxsd:terminatedBy=","*>
<xsd:element name="ItemsRecord" type="tns:Items" nxsd:conditionValue="(!= DS) and (!= Shipping)" />
<xsd:element name="DSRecord" type="tns:ProcessingFee" nxsd:conditionValue="DS" />
<xsd:element name="ShippingRecord" type="tns:ShippingInfo" nxsd:conditionValue="Shipping" />
</xsd:choice>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ShippingInfo">
<xsd:sequence>
<xsd:element name="OrderDetails" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="VendorID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="PurchaseOrderNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="RefNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="OrderStatus" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceAmt" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="FreightCharge" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="" />
<xsd:element name="ProcessingFee" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="SKU" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTY" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYOrdered" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYShipped" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Price" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Net" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TotalNoBoxes" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxNo" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWidth" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxHeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxLength" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="ShipMethod" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TrackingNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="StatusDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Items">
<xsd:sequence>
<xsd:element name="OrderDetail" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="VendorID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="PurchaseOrderNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="RefNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="OrderStatus" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceAmt" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="FreightCharge" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="ProcessingFee" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="SKU" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTY" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYOrdered" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYShipped" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Price" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Net" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TotalNoBox" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxNo" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWidth" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxHeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxLength" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="ShipMethod" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TrackingNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="StatusDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ProcessingFee">
<xsd:sequence>
<xsd:element name="OrderDetail" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="VendorID" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="PurchaseOrderNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="RefNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="OrderStatus" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceNum" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="InvoiceAmt" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="FreightCharge" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="ProcessingFee" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="SKU" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTY" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYOrdered" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="QTYShipped" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Price" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="Net" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TotelNoBoxes" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxNo" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxWidth" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxHeight" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="BoxLength" type="xsd:float" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="ShipMethod" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="TrackingNumber" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
<xsd:element name="StatusDate" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
I thank you once again for your valuable ideas and suggestions.
Thanks,
Venkatesh
Similar Messages
-
File Adapter - Native Format Builder
Dear All,
In File Adapter - Native Format Builder exists option "Number of rows to skip". But this means how many rows from beginning of file to skip,
can somebody help to define how to skip n rows from the end of file.
Thanks in advance!There is no option available to skip rows from end. But if you know how many rows are there in the file and how many you want to skip, then you can use the option of "Number of data rows to process" and process only number of rows you want to actually process.
- Achilles -
File Adapter Wizard - Native Format Builder - no spaces in header?
My project uses a vendor supplied, delimited text file. The first row of the file is a header, followed by data rows. The problem is that the header elements contain spaces, Which are not acceptable by the Native Format Builder.
Has anyone experienced this before and know of a good work-around? Or, is this a known issue?You can make use of the attribute "headerLines" in the top level "schema" tag. It would look something like this nxsd:headerLines="1".
This will skip first header line and will start from line number 2.
More Info here : http://docs.oracle.com/cd/E23943_01/integration.1111/e10231/nfb.htm#CHDBECJI
Hope it helps. -
File Adapter - Native format Builder button not Appearing
Hi,
When We go through the file adapter wizard and on the screen where we define the schema, there is a button 'Native format builder'. But on Jdeveloper Version - 11.1.1.3.0, it is not appearing. Has this been removed in this release?
regards,
Rajeshat step 8 of 9 of the file adapter wizard, the icon appears as a cog, on the right, with caption "define schema for native format".
I have JDev 11..1.1.3.0
The problem might be with the version of the SOA extensions you have installed.... -
How to split a file by using Native Format Builder?
Hi all,
Please help me with this issue.
In this project we need to split a file to save in the db.
Following is the sample code and I would like to split this from 'BOH--------------' to 'BOT---------------' (as in BOLD)
But as you can see sometimes 'BOT' line comes up multiple times so I need to skip few 'BOT's until I meet new 'BOH' line.
I guess I have to use complex type in Native Format Builder, but I'm not sure how to..
Please help me with this situation.
Thanks in advance.
BFH0000000101TYO988 203PROD1108021046JP000869
BCH00000002020811110807D110801
BOH000001690316300561110807 JPY0
BKT0000017006 000011 015X 988 AXSS00000000 00000000 00000000
BKS00000171241108010000119881734947154 0 0FFVV 16300561 TKTTTYO/TYO TDHAWK/JL
*BKS00000172301108010000119881734947154 00000006200{0000000000{ SW 0000000200{BP 0000000215{0000007233{0000000000{ JPY0*
*BKS00000173301108010000119881734947154 00000000000{0000000000{ YQ 0000000618{ 0000000000{0000000000{0000000000{ JPY0*
*BKS00000174391108010000119881734947154 0I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000175461108010000119881734947154 0 1/2/NON-REF/MZP1M
BKI00000176631108010000119881734947154 01 03AUG03AUG HND GMP OZ 1035 M 03AUG 2020 OK20K MZPH1M
BKI00000177631108010000119881734947154 02 04AUG03SEP GMP HND OZ 1045 M 06AUG 1530 OK20K MZPH1M
BAR00000178641108010000119881734947154 0 JPY62000/ JPY2000SW JPY2150BP JPY6180YQ JPY72330 13150RX5 0
BAR00000179651108010000119881734947154 0NAGASHIMA/HIDEKIMR
BAR00000180661108010000119881734947154 01CASH
BMP00000181731108010000119881734947154 0 C
BKF00000182811108010000119881734947154 0 103AUG11 TYO OZ SEL 387.28MZPH1M OZ TYO 387.28MZPH1M
BKF00000183811108010000119881734947154 0 2 NUC774.56END ROE80.044
*BKP0000018484110801000011CA 0000007233{ 0000000000000000{0000007233{ JPY0*
BKT0000018506 000012 015X 988 AXSS00000000 00000000 00000000
BKS00000186241108010000129881734947155 1 0FFVV 16300561 TKTTTYO/TYO TDHAWK/JL
*BKS00000187301108010000129881734947155 10000006200{0000000000{ SW 0000000200{BP 0000000215{0000007233{0000000000{ JPY0*
*BKS00000188301108010000129881734947155 10000000000{0000000000{ YQ 0000000618{ 0000000000{0000000000{0000000000{ JPY0*
*BKS00000189391108010000129881734947155 1I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000190461108010000129881734947155 1 1/2/NON-REF/MZP1M
BKI00000191631108010000129881734947155 11 03AUG03AUG HND GMP OZ 1035 M 03AUG 2020 OK20K MZPH1M
BKI00000192631108010000129881734947155 12 04AUG03SEP GMP HND OZ 1045 M 06AUG 1530 OK20K MZPH1M
BAR00000193641108010000129881734947155 1 JPY62000/ JPY2000SW JPY2150BP JPY6180YQ JPY72330 13150RX5 0
BAR00000194651108010000129881734947155 1IWATA/HITOSHIMR
BAR00000195661108010000129881734947155 11CASH
BMP00000196731108010000129881734947155 1 C
BKF00000197811108010000129881734947155 1 103AUG11 TYO OZ SEL 387.28MZPH1M OZ TYO 387.28MZPH1M
BKF00000198811108010000129881734947155 1 2 NUC774.56END ROE80.044
*BKP0000019984110801000012CA 0000007233{ 0000000000000000{0000007233{ JPY0*
BKT0000020006 000013 017X 988 WSPN00000000 00000000 00000000
BKS00000201241108010000139882898050606 0 0FFFF 16300561 TKTTNGO/NGO N7ZAXW/1P
*BKS00000202301108010000139882898050606 00000005000{0000000000{ SW 0000000250{BP 0000000154{0000007539{0000000000{ JPY0*
*BKS00000203301108010000139882898050606 00000000000{0000000000{ KX 0000000199{YQ 0000001936{0000000000{0000000000{ JPY0*
*BKS00000204391108010000139882898050606 0I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000205461108010000139882898050606 0 NON-ENDS/QZA14/
BKI00000206631108010000139882898050606 01X02OCT02OCT NGO ICN OZ 121Q 02OCT 1200 OK20K QLZA14D
BKI00000207631108010000139882898050606 02O02OCT02OCT ICN REP OZ 737Q 02OCT 1920 OK20K QLZA14D
BKI00000208631108010000139882898050606 03X10OCT10OCT REP ICN OZ 738Q 10OCT 2340 OK20K QLZA14D
BKI00000209631108010000139882898050606 04 11OCT11OCT ICN NGO OZ 122Q 11OCT 0910 OK20K QLZA14D
BAR00000210641108010000139882898050606 0JPY 50000/ XT 21350SW 2500BP 1540JPY 75390 52350NT 9
BAR00000211651108010000139882898050606 0WATANABE/FUMIE.MS
BAR00000212661108010000139882898050606 01VI 4297 XXXXXXXXX 1870P0812
BKF00000213811108010000139882898050606 0 1NGO OZ X/SEL OZ REP 312.32OZ X/SEL OZ NGO 312.32NUC624.64 END ROE80.044OZ XT1990KX 1936
BKF00000214811108010000139882898050606 0 20YQ
*BKP0000021584110801000013CCVI4297 0000007539{4297690004451870 0812 701410 0000000000000000{0000000000{ JPY0*
*BKP0000021684110801000013CA 0000000000{ 0000000000000000{0000000000{ JPY0*
BKT0000021706 000014 015X 988 INFI00000000 00000000 00000000
BKS00000218241108010000149885195702276 678841696569480 5FFVV 16300561 TKTTNGO/NGO JMERJU/1F
*BKS00000219301108010000149885195702276 60000002500{0000000000{ SW 0000000250{BP 0000000215{0000003583{0000000000{ JPY0*
*BKS00000220301108010000149885195702276 60000000000{0000000000{ YQ 0000000618{ 0000000000{0000000000{0000000000{ JPY0*
*BKS00000221391108010000149885195702276 6I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000222461108010000149885195702276 6 NON-REF/QZA7
BKI00000223631108010000149885195702276 61O16SEP16SEP NGO ICN OZ 123 Q 16SEP 1745 OK20K QKPMZA7
BKI00000224631108010000149885195702276 62 22SEP22SEP ICN NGO OZ 124 Q 22SEP 1500 OK20K QKPMZA7
BAR00000225641108010000149885195702276 6JPY 25000/ 2500SW 2150BP 6180YQJPY 35830INFI78840 99999999 N0
BAR00000226651108010000149885195702276 6INUKAI/HIROKO MS NTS REF 3607438
BAR00000227661108010000149885195702276 61JC35875900009516110115/ C 018627*
BMP00000228731108010000149885195702276 6 NTS REF 3607438 ANU
BKF00000229811108010000149885195702276 6 116SEP11NGO OZ SEL156.16OZ NGO156.16NUC312.32END ROE80.044
*BKP0000023084110801000014CCJC3587 0000003583{3587590000951611 0115 018627 0000000000000000{0000000000{ JPY0*
*BKP0000023184110801000014CA 0000000000{ 0000000000000000{0000000000{ JPY0*
BKT0000023206 000015 014X 988 GDSL00000000 00000000 00000000
BKS00000233241108010000159885340399785 458803403997853 6FFVV 16300561 TKTTNRT/NRT V7R5WC/1V
*BKS00000234301108010000159885340399785 40000004000{0000000000{ YQ 0000000618{BP 0000000215{0000005087{0000000000{ JPY0*
*BKS00000235301108010000159885340399785 40000000000{0000000000{ SW 0000000204{OI 0000000050{0000000000{0000000000{ JPY0*
*BKS00000236391108010000159885340399785 4I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000237461108010000159885340399785 4 NON-REF-QZA7
BKI00000238631108010000159885340399785 41 08AUG08AUG NRT ICN OZ 107 Q 08AUG 0900 OK20K QHA2ZA7
BKI00000239631108010000159885340399785 42 10AUG10AUG ICN NRT OZ 106 Q 10AUG 1510 OK20K QHA2ZA7
BAR00000240641108010000159885340399785 4 JPY40000/ JPY500OI JPY10370XT JPY50870 588002LNCK U3
BAR00000241651108010000159885340399785 4TAKAHASHI/AYA MS
BAR00000242661108010000159885340399785 41CASH
BKF00000243811108010000159885340399785 4 1FP CASH FC 8AUG TYO OZ SEL 249.86QHA2ZA7 OZ TYO 249.86QHA2ZA7 NUC499.72END ROE80.044 XT
BKF00000244811108010000159885340399785 4 2 6180YQ 2150BP 2040SW
*BKP0000024584110801000015CA 0000005087{ 0000000000000000{0000005087{ JPY0*
*BOT000002469316300561110807 00000000030675{00000000019553{00000000000000{00000000006775{00000000000000{SALE 00000000000000{JPY0*
*BKT0000024706 000016 010 988 INFI00000000 00000000 00000000 A*
*BKS00000248241108010000169885195419735 678841696711651 4 16300561 RFND /*
*BKS00000249301108010000169885195419735 60000005700}0000000000{ OI 0000000050}SW 0000000204}0000006087}0000000000{ JPY0*
*BKS00000250301108010000169885195419735 60000000000{0000000000{ BP 0000000215}YQ 0000000518}0000000000{0000000000{ JPY0*
*BKS00000251301108010000169885195419735 60000000000{0000000000{ CP 0000000600{ 0000000000{0000000000{0000000000{ JPY0*
*BKS00000252391108010000169885195419735 6I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000253451108070000169885195419735 2 1200 110727
BAR00000254651108010000169885195419735 6SATO/YUKIMR
BKP0000025583110801000016 9889AZ5E61I6V
BKP0000025684110801000016CA 0000006087} 0000000000000000{0000006087} JPY0
BKT0000025706 000017 010 988 INFI00000000 00000000 00000000 A
BKS00000258241108010000179885195419736 078841696711481 1 16300561 RFND /
*BKS00000259301108010000179885195419736 00000005700}0000000000{ OI 0000000050}SW 0000000204}0000006087}0000000000{ JPY0*
*BKS00000260301108010000179885195419736 00000000000{0000000000{ BP 0000000215}YQ 0000000518}0000000000{0000000000{ JPY0*
*BKS00000261301108010000179885195419736 00000000000{0000000000{ CP 0000000600{ 0000000000{0000000000{0000000000{ JPY0*
*BKS00000262391108010000179885195419736 0I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0*
BKS00000263451108070000179885195419736 3 1200 110727
BAR00000264651108010000179885195419736 0KANG/SOONBOKMS
BKP0000026583110801000017 9889AZ5E61I6W
BKP0000026684110801000017CA 0000006087} 0000000000000000{0000006087} JPY0
*BOT000002679316300561110807 00000000012174}00000000012174}00000000000000{00000000000774}00000000000000{RFND 00000000000000{JPY0*
*BOT000002689416300561110807 00000000018501{00000000007379{00000000000000{00000000006001{00000000000000{ 00000000000000{JPY0*
BOH000002690316300863110807 JPY0
BKT0000027006 000018 015X 988 AXSS00000000 00000000 00000000
BKS00000271241108010000189881734547779 3 0FFVV 16300863 TKTTNGO/NGO 47F8J6/JL
BKS00000272301108010000189881734547779 30000005000{0000000000{ SW 0000000250{BP 0000000215{0000006083{0000000000{ JPY0
BKS00000273301108010000189881734547779 30000000000{0000000000{ YQ 0000000618{ 0000000000{0000000000{0000000000{ JPY0
BKS00000274391108010000189881734547779 3I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0
BKS00000275461108010000189881734547779 3 1/2/NON-REF/MZP1M
BKI00000276631108010000189881734547779 31 07AUG07AUG NGO ICN OZ 121 M 07AUG 1200 OK20K MZP1M
BKI00000277631108010000189881734547779 32 08AUG07SEP ICN NGO OZ 124 M 09AUG 1500 OK20K MZP1M
BAR00000278641108010000189881734547779 3 JPY50000/ JPY2500SW JPY2150BP JPY6180YQ JPY60830 13150OL2 0
BAR00000279651108010000189881734547779 3KAMEGAI/NORIOMR
BAR00000280661108010000189881734547779 31CASH
BMP00000281731108010000189881734547779 3 C
BKF00000282811108010000189881734547779 3 107AUG11 NGO OZ SEL 312.32MZP1M OZ NGO 312.32MZP1M N
BKF00000283811108010000189881734547779 3 2UC624.64END ROE80.044
BKP0000028484110801000018CA 0000006083{ 0000000000000000{0000006083{ JPY0
BKT0000028506 000019 014X 988 AXSS00000000 00000000 00000000
BKS00000286241108010000199881734547801 4 0FFVV 16300863 TKTTNGO/NGO 5Y5RQQ/JL
BKS00000287301108010000199881734547801 40000008350{0000000000{ SW 0000000250{BP 0000000215{0000009433{0000000000{ JPY0
BKS00000288301108010000199881734547801 40000000000{0000000000{ YQ 0000000618{ 0000000000{0000000000{0000000000{ JPY0
BKS00000289391108010000199881734547801 4I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0
BKI00000290631108010000199881734547801 41 16AUG NGO ICN OZ 123 C 16AUG 1745 OK30K CRTOZKR
BKI00000291631108010000199881734547801 42 16AUG ICN NGO OZ 9122 Y 18AUG 1835 OK20K YRTOZKR
BAR00000292641108010000199881734547801 4 JPY83500/ JPY2500SW JPY2150BP JPY6180YQ JPY94330 13150GI3 0
BAR00000293651108010000199881734547801 4HIRAI/SHUJIMR
BAR00000294661108010000199881734547801 41CASH
BMP00000295731108010000199881734547801 4 C
BKF00000296811108010000199881734547801 4 116AUG11 NGO OZ SEL 624.65CRTOZKR OZ NGO 418.51YRTOZ
BKF00000297811108010000199881734547801 4 2KR NUC1043.16END ROE80.044
BKP0000029884110801000019CA 0000009433{ 0000000000000000{0000009433{ JPY0
BOT000002999316300863110807 00000000015516{00000000015516{00000000000000{00000000002166{00000000000000{SALE 00000000000000{JPY0
BOT000003009416300863110807 00000000015516{00000000015516{00000000000000{00000000002166{00000000000000{ 00000000000000{JPY0
BOH000003010316300933110807 JPY0
BKT0000030206 000020 009 988 INFI00000000 00000000 00000000 A
BKS00000303241108010000209885195510345 178840417924611 4 16300933 RFND /
BKS00000304301108010000209885195510345 10000005800}0000000000{ SW 0000000265}YQ 0000000259}0000006074}0000000000{ JPY0
BKS00000305301108010000209885195510345 10000000000{0000000000{ CP 0000000250{ 0000000000{0000000000{0000000000{ JPY0
BKS00000306391108010000209885195510345 1I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0
BKS00000307451108070000209885195510345 4 1000 110727
BAR00000308651108010000209885195510345 1SONG/YOUNGSUKMR
BKP0000030983110801000020 9889AZ5E63G3T
BKP0000031084110801000020CA 0000006074} 0000000000000000{0000006074} JPY0
BKT0000031106 000021 009 988 INFI00000000 00000000 00000000 A
BKS00000312241108010000219885195510346 278840417924641 0 16300933 RFND /
BKS00000313301108010000219885195510346 20000004000}0000000000{ SW 0000000265}YQ 0000000259}0000004274}0000000000{ JPY0
BKS00000314301108010000219885195510346 20000000000{0000000000{ CP 0000000250{ 0000000000{0000000000{0000000000{ JPY0
BKS00000315391108010000219885195510346 2I 000000000000000{ 000000000000000{000000000000000{0000000000{ JPY0
BKS00000316451108070000219885195510346 5 1000 110727
BAR00000317651108010000219885195510346 2KIM/WONBINMR
BKP0000031883110801000021 9889AZ5E63G3U
BKP0000031984110801000021CA 0000004274} 0000000000000000{0000004274} JPY0
BOT000003209316300933110807 00000000010348}00000000010348}00000000000000{00000000000548}00000000000000{RFND 00000000000000{JPY0
BOT000003219416300933110807 00000000010348}00000000010348}00000000000000{00000000000548}00000000000000{ 00000000000000{JPY0
BCT00021143950811 0014500000009520310F00000005400221G00000002821794}00000001540700F00000000000000{ 00000000002785PJPY0
BFT0002114499TYO 0014500000009520310F00000005400221G00000002821794}00000001540700F00000000000000{ 00000000002785PJPY0
Edited by: 964067 on Oct 14, 2012 11:26 PM
Edited by: 964067 on Oct 14, 2012 11:26 PMHi,
Firstly please ensure that the file that you are reading is bound to have a format of some sort.
I will relate this to one of the requirement we did it in previous projects.
We have a requirement to read a csv file coming in:
1) It will be having records for Header (ODH) and Detail (ODL)
2) The Header and Detail records will be repeated 'N' number of times in the input file.
The schema we used it something as below to poll the CSV file:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
xmlns:tns="http://TargetNamespace.com/ReadCSV" targetNamespace="http://TargetNamespace.com/ReadCSV"
elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:parseBom="true"
nxsd:version="NXSD" nxsd:stream="chars" nxsd:encoding="US-ASCII">
<xsd:element name="Package">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="unbounded" nxsd:choiceCondition="terminated" nxsd:terminatedBy=",">
<xsd:element name="Header" nxsd:conditionValue="BOH">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecordAction" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="VisitType" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="OrderAction" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="Route" type="xsd:int" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="${eol}" nxsd:quotedBy="""/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Lines" nxsd:conditionValue="BOD">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecordAction" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="OrderCode" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="ShippingUnitNumber" type="xsd:int" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="," nxsd:quotedBy="""/>
<xsd:element name="ProdOptDesc" type="xsd:string" minOccurs="0" nxsd:style="terminated"
nxsd:terminatedBy="${eol}" nxsd:quotedBy="""/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
So the approach we followed is as below:
1) Design two DB tables. One to put the header records in Header table
2) Put the detail records in Trailer table.
3) Poll from these two tables to trigger next business requirements.
Hope this helps.
Thanks,
Deepak. -
File Adapter NXSD to read ACH NACHA file
Hi All,
I am trying to parse the ACH file which is in NACHA format using Native format builder. Let me know if anyone has the schema built.
-ChaitanyaHi,
You can use file rejection handler which can invoke a user defined BPEL process in case of invalid file. Check :
http://www.oracle.com/technology/products/integration/adapters/pdf/Adapter_TN_004_Adapter_ErrorManagement.pdf
HTH,
Ketan -
File Adapter fixed length Native format Builder schema not reading the data as expected
Hi
We are using a File Adapter for reading a fixed length data. Using the schema we are able to read the file but the places are incorrect. Following is the schema that we used and the payload.
At the last you can find our expected read of data how it should be.
With out the record type code we are not even reading the file. Hope there should be a correction in the schema. Please suggest
Schema that we are using:
<?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://xmlns.energy.com/CreateReturnedItemGENVNDRPReqABCSImplFileAdapterReadReturnedItem"
targetNamespace="http://xmlns.energy.com/CreateReturnedItemGENVNDRPReqABCSImplFileAdapterReadReturnedItem"
elementFormDefault="qualified" attributeFormDefault="unqualified" nxsd:version="NXSD" nxsd:stream="chars"
nxsd:encoding="US-ASCII">
<xsd:element name="GENVNDRReturnedItem">
<xsd:complexType>
<xsd:sequence minOccurs="1" maxOccurs="unbounded" nxsd:choiceCondition="fixedLength" nxsd:length="1">
<xsd:element name="HeaderRec" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:startsWith="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecordTypeCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="PriorityCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="2" nxsd:padStyle="tail"/>
<xsd:element name="ImmediateDstn" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="10" nxsd:padStyle="tail"/>
<xsd:element name="ImmediateOrgin" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="10" nxsd:padStyle="tail"/>
<xsd:element name="FileCrDt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="6" nxsd:padStyle="tail"/>
<xsd:element name="FileCrTm" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="4" nxsd:padStyle="tail"/>
<xsd:element name="FileIdMdfr" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="RecSize" type="xsd:string" nxsd:style="fixedLength" nxsd:length="3"
nxsd:padStyle="tail"/>
<xsd:element name="BlockingFctr" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="2" nxsd:padStyle="tail"/>
<xsd:element name="FormatCd" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="ImmediateDstnNm" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="23" nxsd:padStyle="tail"/>
<xsd:element name="ImmediateOrginNm" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="23" nxsd:padStyle="tail"/>
<xsd:element name="RefCd" type="xsd:string" nxsd:style="fixedLength" nxsd:length="8"
nxsd:padStyle="tail"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="BatchHdrRec" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:startsWith="5">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecordTypeCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="ServClsCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="3" nxsd:padStyle="tail"/>
<xsd:element name="CmpnyName" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="16" nxsd:padStyle="tail"/>
<xsd:element name="CmpnyDiscretionaryData" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="20" nxsd:padStyle="tail"/>
<xsd:element name="CmpnyIdfn" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="10" nxsd:padStyle="tail"/>
<xsd:element name="StdClsCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="3" nxsd:padStyle="tail"/>
<xsd:element name="CmpnyEntryDesc" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="10" nxsd:padStyle="tail"/>
<xsd:element name="CmpnyDescDate" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="6" nxsd:padStyle="tail"/>
<xsd:element name="EffEntryDate" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="6" nxsd:padStyle="tail"/>
<xsd:element name="SettlementDate" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="3" nxsd:padStyle="tail"/>
<xsd:element name="OrgntrStatusCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="OrgntrBatchCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="15" nxsd:padStyle="tail"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="FileControlRec" nxsd:style="terminated" nxsd:terminatedBy="${eol}"
nxsd:startsWith="9">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RecordTypeCode" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="1" nxsd:padStyle="tail"/>
<xsd:element name="BatchCnt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="6" nxsd:padStyle="tail"/>
<xsd:element name="BlockCnt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="6" nxsd:padStyle="tail"/>
<xsd:element name="EntryAddendaCnt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="8" nxsd:padStyle="tail"/>
<xsd:element name="EntryHash" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="10" nxsd:padStyle="tail"/>
<xsd:element name="TtlDbtEntryDlrAmt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="12" nxsd:padStyle="tail"/>
<xsd:element name="TtlCrdtEntryDlrAmt" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="12" nxsd:padStyle="tail"/>
<xsd:element name="Reserved" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="39" nxsd:padStyle="tail"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Sample data:
1011390714890 0910000191406110449A094101MCSCLDA_TESTIN
XPLLS KNRGO CNNK
5200MCSCLDA_TESTIN e-Bill
2390714890TELe-Bill
1406100001091000017000001
6262759774891010000074743
0000033793102651-013 U HOLBACH KARLA & JAMES 1091000013925011
799R01091000013925011
27597748
091000010000001
820000000200275977480000000337930000000000002390714890
091000010000001
9000060000025000001200995048661000001265867000000000000
Read File receive Activity:
<GENVNDRReturnedItem>
<HeaderRec>
<RecordTypeCode>0</RecordTypeCode>
<PriorityCode>11</PriorityCode>
<ImmediateDstn>390714890</ImmediateDstn>
<ImmediateOrgin>0910000191</ImmediateOrgin>
<FileCrDt>406110</FileCrDt>
<FileCrTm>449A</FileCrTm>
<FileIdMdfr>0</FileIdMdfr>
<RecSize>941</RecSize>
<BlockingFctr>01</BlockingFctr>
<FormatCd>M</FormatCd>
<ImmediateDstnNm>CSCLDA_TESTIN X</ImmediateDstnNm>
<ImmediateOrginNm>PLLS KNRGO CNNK</ImmediateOrginNm>
<RefCd></RefCd>
</HeaderRec>
<BatchHdrRec>
<RecordTypeCode>2</RecordTypeCode>
<ServClsCode>00M</ServClsCode>
<CmpnyName>CSCLDA_TESTIN e</CmpnyName>
<CmpnyDiscretionaryData>-Bill 2</CmpnyDiscretionaryData>
<CmpnyIdfn>390714890T</CmpnyIdfn>
<StdClsCode>ELe</StdClsCode>
<CmpnyEntryDesc>-Bill</CmpnyEntryDesc>
<CmpnyDescDate>1</CmpnyDescDate>
<EffEntryDate>406100</EffEntryDate>
<SettlementDate>001</SettlementDate>
<OrgntrStatusCode>0</OrgntrStatusCode>
<OrgntrBatchCode>91000017000001</OrgntrBatchCode>
</BatchHdrRec>
<FileControlRec>
<RecordTypeCode>0</RecordTypeCode>
<BatchCnt>000600</BatchCnt>
<BlockCnt>000250</BlockCnt>
<EntryAddendaCnt>00001200</EntryAddendaCnt>
<EntryHash>9950486610</EntryHash>
<TtlDbtEntryDlrAmt>000012658670</TtlDbtEntryDlrAmt>
<TtlCrdtEntryDlrAmt>00000000000</TtlCrdtEntryDlrAmt>
<Reserved></Reserved>
</FileControlRec>
</GENVNDRReturnedItem>
Expected Read data how we are looking:
<GENVNDRReturnedItem>
<HeaderRec>
<RecordTypeCode>0</RecordTypeCode>
<PriorityCode>11</PriorityCode>
<ImmediateDstn>39071489</ImmediateDstn>
<ImmediateOrgin>0091000019</ImmediateOrgin>
<FileCrDt>140611</FileCrDt>
<FileCrTm>0449</FileCrTm>
<FileIdMdfr>A</FileIdMdfr>
<RecSize>094</RecSize>
<BlockingFctr>10</BlockingFctr>
<FormatCd>1</FormatCd>
<ImmediateDstnNm>MCSCLDA_TESTIN</ImmediateDstnNm>
<ImmediateOrginNm>XPLLS KNRGO CNNK</ImmediateOrginNm>
<RefCd/>
</HeaderRec>
<BatchHdrRec>
<RecordTypeCode>2</RecordTypeCode>
<ServClsCode>200</ServClsCode>
<CmpnyName>MCSCLDA_TESTIN</CmpnyName>
<CmpnyDiscretionaryData>e-Bill</CmpnyDiscretionaryData>
<CmpnyIdfn>2390714890</CmpnyIdfn>
<StdClsCode>TEL</StdClsCode>
<CmpnyEntryDesc>e-Bill</CmpnyEntryDesc>
<CmpnyDescDate/>
<EffEntryDate>140610</EffEntryDate>
<SettlementDate>000</SettlementDate>
<OrgntrStatusCode>1</OrgntrStatusCode>
<OrgntrBatchCode>091000017000001</OrgntrBatchCode>
</BatchHdrRec>
<FileControlRec>
<RecordTypeCode>0</RecordTypeCode>
<BatchCnt>000060</BatchCnt>
<BlockCnt>000025</BlockCnt>
<EntryAddendaCnt>00000120</EntryAddendaCnt>
<EntryHash>0995048661</EntryHash>
<TtlDbtEntryDlrAmt>000001265867</TtlDbtEntryDlrAmt>
<TtlCrdtEntryDlrAmt>000000000000</TtlCrdtEntryDlrAmt>
<Reserved/>
</FileControlRec>
</GENVNDRReturnedItem>at step 8 of 9 of the file adapter wizard, the icon appears as a cog, on the right, with caption "define schema for native format".
I have JDev 11..1.1.3.0
The problem might be with the version of the SOA extensions you have installed.... -
One file Adapter NXSD file dynamic
Hi all,
I will get different inputs based on the input request ID i have to do write the file using file adapter .
so the question is if i have 10 files is it necessary to create 10 File adapters or can i achieve this using a single File adapter and multiple NXD or XSD files in a folder .
select the xsd or NXSD at runtime based on the input request ID.
The best thing with this approach is even for a new transformation request i will just add the xsd or NXSD in the folder and update the DB no need to create a file adapter from scratch.
Thanks
PhaniHi,
You cannot change the XSD for a file adapter at runtime....u can choose to write an opaque file with an native format is not required option checked. -
Output file formats in receiver file adapter
Hi,
Is it possible to create a tab delimited or a .CSV file in a receiver file adapter ??
-TeresaHI,
It is possible to create a tab delimited/.csv file in a receiver file adapter by choosing "File content conversion" as a Message Protocol. But you need to do content conversion based on structure.
-Regards,
Moorthy -
Hi ,
My sample file is like this
RAJNagercoil19910809
JAMBangalore
ABCNagercoil20120304
ABBBangalore20120709
TOM
SAMBangalore20900909
here first 3 characters of each line represents Name,next 9 characters represents city,next 8 characters DOB.
Here everything is of fixedlength but all elements Name,city and DOB are optional they may or may not be in Sample file.
here if we open the above sample file in notepad++ the end of line is represented by LF.
My task is to separate the body elements given above into the following format
<Body>
<Name>Raj</Name>
<City>Nagercoil</City>
<DOB>19910809</DOB>
</Body>
<Body>
<Name>JIN</Name>
<City>Bangalore</City>
<DOB/>
</Body>
<Body>
<Name>ABC</Name>
<City>Nagercoil</City>
<DOB>20120304</DOB>
</Body>
<Body>
<Name>ABB</Name>
<City>Bangalore</City>
<DOB>20120709</DOB>
</Body>
<Body>
<Name>TOM</Name>
<City/>
<DOB/>
</Body>
<Body>
<Name>SAM</Name>
<City>Bangalore</City>
<DOB>20900909</DOB>
</Body>
The schema i designed for my task is like below
<?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/test"
targetNamespace="http://TargetNamespace.com/test"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
nxsd:version="NXSD"
nxsd:stream="chars"
nxsd:encoding="US-ASCII">
<xsd:element name="Root-Element">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Body" type="tns:sample" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="sample">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nxsd:style="fixedLength" nxsd:length="3" nxsd:padStyle="tail" nxsd:paddedBy=" " minOccurs="0" />
<xsd:element name="City" type="xsd:string" nxsd:style="fixedLength" nxsd:length="9" nxsd:padStyle="tail" nxsd:paddedBy=" " minOccurs="0"/>
<xsd:element name="DOB" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
But it is not producing the result which i want .It is converting as follow.
<?xml version = '1.0' encoding = 'UTF-8'?>
<Root-Element xmlns="http://TargetNamespace.com/test">
<Body>
<Name>Raj</Name>
<City>Nagercoil</City>
<DOB>19910809</DOB>
</Body>
<Body>
<Name>JIN</Name>
<City>Bangalore</City>
<DOB/>
</Body>
<Body>
<Name>ABC</Name>
<City>Nagercoil</City>
<DOB>20120304</DOB>
</Body>
<Body>
<Name>ABB</Name>
<City>Bangalore</City>
<DOB>20120709</DOB>
</Body>
<Body>
<Name>TOM</Name>
<City>
SAMBanga</City>
<DOB>lore20900909</DOB>
</Body>
</Root-Element>
The body element in red color indicates the issue.I my case i am not supposed to use MFL. Please Help me to Solve this issue and give me correct XSD which satisfies the above Sample.Its Very Urgent
Thanks in Advance...Alright.. I did some extensive home-work for you and this is what I have got.. You can improvise it further accordingly, but this solution will get you moving.
Native XSD :
=================================================================
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
xmlns:tns="http://TargetNamespace.com/test"
targetNamespace="http://TargetNamespace.com/test"
elementFormDefault="qualified" attributeFormDefault="unqualified"
nxsd:version="NXSD" nxsd:stream="chars" nxsd:encoding="US-ASCII">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="multiple" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:choice>
<xsd:element name="Body" type="tns:sample" nxsd:lookAhead="20"
nxsd:lookFor="${eol}"/>
<xsd:element name="Body1" type="tns:sample1" nxsd:lookAhead="12"
nxsd:lookFor="${eol}"/>
<xsd:element name="Body2" type="tns:sample2" nxsd:lookAhead="3"
nxsd:lookFor="${eol}"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="sample">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="3" minOccurs="0"/>
<xsd:element name="City" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="9" minOccurs="0"/>
<xsd:element name="DOB" type="xsd:string" nxsd:style="terminated"
nxsd:terminatedBy="${eol}" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sample2">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nxsd:style="terminated"
nxsd:terminatedBy="${eol}" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="sample1">
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nxsd:style="fixedLength"
nxsd:length="3" minOccurs="0"/>
<xsd:element name="City" type="xsd:string" nxsd:style="terminated"
nxsd:terminatedBy="${eol}" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
=================================================================
When used upon your input file, it produces a output file like the following :
<root xmlns="http://TargetNamespace.com/test">
<multiple>
<Body>
<Name>RAJ</Name>
<City>Nagercoil</City>
<DOB>19910809</DOB>
</Body>
<Body1>
<Name>JAM</Name>
<City>Bangalore</City>
</Body1>
</multiple>
<multiple>
<Body>
<Name>ABC</Name>
<City>Nagercoil</City>
<DOB>20120304</DOB>
</Body>
</multiple>
<multiple>
<Body>
<Name>ABB</Name>
<City>Bangalore</City>
<DOB>20120709</DOB>
</Body>
<Body2>
<Name>TOM</Name>
</Body2>
</multiple>
<multiple>
<Body>
<Name>SAM</Name>
<City>Bangalore</City>
<DOB>20900909</DOB>
</Body>
</multiple>
</root>
As I said, you can try out some experiments around this xsd and get the output in the format, you want.
Hope this helps !
Best,
Puneet. -
File Adapter problem for Fixed Length output file
Hi There!,
The following is my sample data format
ABCD 2345 03Accounting Swissland
ABCD 011234 1000Jack Gates 400000 03
ABCD 021234 1001Bill Welch 400000 03
In the first record has dept details:
DummyText, Row identifier(not given in case of dept), Identifier, Deptno, Deptname, Location
The second and third records are emp details:
DummyText,Row identifier, Identifier,EmptNo,Emp Name, Manager, Salary, Deptno.
Notice that the primary key is defined by the first three columns DummyText, Row identifier, Identifier.
When I use Native Format Builder from File Adapter and scan the first three columns I get all three records (i.e dept and both employees). I deleted the second employee and proceeded to finish the configuration. But, the problem I face is that the key value shows as "ABCD% 011234" for both the employee records where as I would like it to show as "ABCD 011234" for the first record and "ABCD 021234" for the second record.
How do I get around this problem?
Moreover if I have a group or recurring records and not just one record recurring. I mean assuming I have the following:
First row: Department
Second row: Employee
Thrid row: Manager
Fourth row: Employee
Fifth row: Manager
How do I get this done?
Does anyone have an idea where to find details of nxsd.
Thanks in Advance.Hi Manoj
Give the FCC parameter as
RecordSet Structure = Header,,Detaillnes,,Detaillines2,*
Header.endSeparator = 'nl'
Header.fieldFixedLengths = field length
Header.fieldFixedLengthType = char/byte
Header.fieldNames = field1,field2,field3,.....
Header.keyFieldValue = Header
Detaillnes.endSeparator = 'nl'
Detaillnes.fieldFixedLengths = field length
Detaillnes.fieldFixedLengthType = char/byte
Detaillnes.fieldNames = field1,field2,field3,.....
Detaillnes.keyFieldValue = Detaillnes
Detaillines2.endSeparator = 'nl'
Detaillines2.fieldFixedLengths = field length
Detaillines2.fieldFixedLengthType = char/byte
Detaillines2.fieldNames = field1,field2,field3,.....
Detaillines2.keyFieldValue = Detaillines2
The keyFieldValue should be the Value which identifies your record either as Header/Detaillines/Detaillnes2.
Regards
Santhosh
Message was edited by:
Santhosh Kumar V -
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,
NareshHi 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=""" />
<xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""" />
</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 -
Translation Error not happening in File Adapter Inbound
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="" />
<xsd:element name="LastName" type="xsd:string" nxsd:style="" />
<xsd:element name="Number" type="xsd:integer" nxsd:style="" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
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 trasnlation 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,
Nareshpls help....
-
File Adapter Fault Handling for CSV files
I have been working on a requirement where the file adapter picks up the file and gives to the BPEL for processing the data.
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....
<?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/ReadFile"
targetNamespace="http://TargetNamespace.com/ReadFile"
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="Root-Element">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Student" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="Street1" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="Street2" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="City" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="State" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy=""" />
<xsd:element name="Country" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
If i put some test data like below , the .txt file is being picked up and the valid being passed to the BPEL and its not returning any error for the invalid records. In this case, just want to throw an error and exit the bpel.
Krish,abcd,abcd,chennai,tnin - comma is missing here
NP,abcd,abcd,chennai,tnin - - comma is missing here
Nutan,abcd,abcd,chennai,tn,in - this record being processed successfully.
Pari,abcd,abcd,chennai,tn,in - - this record being processed successfully.
Experts, any help is really appreciated..Hi,
its better to opt for seeburger for EDI data processings..
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/20ed5d5b-b188-2c10-76a2-997a616e48a9
http://www.cbs-consulting.com/EN/Services/ProcessesApplications/SAP__TechnologyConsulting/OpenPI/OpenPI__n,naviExpand=.html__nnn=true
Check the above links can be helpful..
HTH
Rajesh -
Hi All,
I am writing a delimited file using the file adapter, i have built the XSD using the native format builder. Inside the BPEL, i get the data using a query, this query returns the data with delimited information between fields, but the output XSD came in such a way that there is only one element which holds the entire record. At runtime i get the information from database lookup and assign that records to invoke input variable of file adapter.
XSD of target file adapter...
<?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/ReadFile"
targetNamespace="http://TargetNamespace.com/ReadFile"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
nxsd:version="NXSD"
nxsd:stream="chars"
nxsd:encoding="UTF-8"
>
<xsd:element name="Root-Element">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Child-Element" minOccurs="1" maxOccurs="unbounded" nxsd:style="array" nxsd:cellSeparatedBy="${eol}">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C1" type="xsd:string" nxsd:style="fixedLength" nxsd:length="100" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
So, the thing is file is getting written to, but the records are getting right aligned, as you can see the length is 100, so the file i am writing is coming like
records starting with the spaces, but the data which i am getting doesn't return any spaces at the starting of the record, it has spaces in the middle and the end of the record. I want the records to be left aligned. Is there any property which i can set for the element in the XSD for the data that gets assigned to make it left aligned.
Please help Experts.
Thanks,
NareshYou can see the option of adding padStyle as head.. More detail check the below link and search on padding option which helps u in alignment.
http://docs.oracle.com/cd/B31017_01/integrate.1013/b28994/nfb.htm
Maybe you are looking for
-
How to do Home Share with 2 different Apple ID's? Spouse and I
How do I set up the Home Share when there are 2 different Apple ID's? Spouse and I. We each have accounts but are trying to share music. Is this possible? Can I reset my Apple ID and Password?
-
Where can i buy network manager pro?
where can i but network manager pro, i like the feel of the product but my auto installed version has expired and i can get rid of the reminder pop up. Cant find a link to order the software in UK and have not seen any software on dealers shelves.
-
OSX 10.5.8 Gimp & X11
I am having a problem getting both X11 and Gimp to Install and run. I have found solutions that apply to OSX 10.5.2 but not 10.5.8. Would appreciate any suggestions as to solutions, as well *** what version of gimp will work with what version of X11
-
Mighty Mouse clicking and releasing randomly
Hello, Its difficult to describe exactly what is happening but I'll try to be specific. I am running Mac OS X (fully updated) and Parallels 6. The only major change I've made was to install Adobe CS5 creative suite to the Mac side, and the mouse is
-
ESS java enabled screen for IT0581,IT0584,IT0585 & IT0586
Can we have java enabled screen for IT0581,IT0584,IT0585 & IT0586 as a Payroll services for Indian client . If not , how can we add the ITS version for the same infotypes in ESS making it in change mode where employee's can update their amount .