cancel
Showing results for 
Search instead for 
Did you mean: 

Required Changes in FCC Paramenters for Sender File Adapter.

Former Member
0 Kudos

Hi

I am Doing File-File Scenario.I am using FCC in the Sender File Adapter. I have defined the structure as below.


My Source Structure
<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_Source xmlns:ns0="http://city.net/filecopy">
   <Message>
      <Id>123</Id>
      <Head>
         <Id>123</Id>
         <Filename>test.xml</Filename>
      </Head>
      <Body>Helloworld</Body>
   </Message>
</ns0:MT_Source_FILE>

So for the above structure, I have defined the FCC Parameters as

Document Name: MT_Source (Message Type)
Document Namespace:http://city.net/filecopy(Namespace)
Recordset Name: Message (root node)
Recordset Structure: Message,1,Head,1
Recordset Sequence: Ascending
Recordsets per message:1
Keyfield Type: string

In the Table Rows I have defined

Message.fieldFixedLengths: 3,10
Message.fieldNames: Id, Body
Message.fieldSeparator: ,
Message.endSeparator: 'nl'
Head.fieldFixedLengths: 3,8
Head.fieldSeparator: ,
Head.endSeparator: 'nl'
Head.fieldNames: Id, Filename.

My Input Text file 

123,Helloworld
123,text.xml

I am Getting Output as

 <?xml version="1.0" encoding="utf-8" ?> 
- <ns:MT_Source xmlns:ns="http://city.net/filecopy">
- <Message>
- <Message>
  <Id>123</Id> 
  <Body>HelloWorld</Body> 
  </Message>
- <Head>
  <Id>123</Id> 
  <Filename>test.xml</Filename> 
  </Head>
  </Message>
  </ns:MT_Source>

I should get Body field after Head Structure as in the Source Structure, So Please what changes do I need to do in the Parameters Specified above to get the desired Output.

So How should I define the FCC Paramenters For Sender File Adapter ?

Any Help Would be Appreciated.

Regards,

Varun

Accepted Solutions (1)

Accepted Solutions (1)

hemant_chahal
Contributor
0 Kudos

Change this Recordset Structure: Message,1,Head,1

to Recordset Structure: ID,1,Head,1,Body,1

Edited by: Hemant Chahal on Sep 2, 2008 10:37 AM

varun_k
Contributor
0 Kudos

Hi Hemant Chahal,

If I define the Recordset Structure: ID,1,Head,1,Body,1,

then what will be the parameters i need to give for body.

As Body Itself is a field. Please have a glance at my source structure.

Regards,

Varun

hemant_chahal
Contributor
0 Kudos

oh yes you have got value in body as well

Edited by: Hemant Chahal on Sep 2, 2008 10:45 AM

Answers (5)

Answers (5)

varun_k
Contributor
0 Kudos

Hi Everyone,

I could Succeed to some extent.

I have defined the parameters as follows

Recordset Structure: Message,*,Head,1
Key Field Name: KZ
Key Field Type: integer

In the table, I defined the Parameters as 
Message.fieldFixedLengths:1,3
Message.fieldNames:KZ,Id
Message.keyFieldValue:1
Message.keyFieldInStructure:ignore
Message.fieldSeparator:,
Message.endSeparator:'nl'
Head.fieldFixedLengths:1,3,8
Head.fieldNames:KZ,Id,filename
Head.keyFieldValue:2
Head.keyFieldInStructure:ignore
Head.fieldSeparator:,
Head.endSeparator:'nl'
Message.fieldFixedLengths:1,11
Message.fieldNames:KZ,Body
Message.keyFieldValue:3
Message.keyFieldInStructure:ignore
Message.fieldSeparator:,
Message.endSeparator:'nl'

My source text file
1,123
2,123,test.xml
3,Hello World

my output is
 <?xml version="1.0" encoding="utf-8" ?> 
- <ns:MT_Source xmlns:ns="http://city.net/FileCopy">
- <Message>
- <Message>
  <Id>123</Id> 
  </Message>
- <Head>
  <Id>123</Id> 
  <Filename>test.xml</Filename> 
  </Head>
  </Message>
  </ns:MT_Source>

I got the output almost correct except I am not getting the value in the Body

Any help would be appreciated.

Please correct me If I am wrong.

Regards,

Varun

Edited by: Varun on Sep 2, 2008 12:06 PM

Edited by: Varun on Sep 2, 2008 12:15 PM

Former Member
0 Kudos

try adding Message,* again after Head,1

varun_k
Contributor
0 Kudos

Hi Arwind,

Thanks for your reply. After adding also, I am getting the same Output.

<?xml version="1.0" encoding="utf-8" ?> 
- <ns:MT_Source xmlns:ns="http://city.net/FileCopy">
- <Message>
    - <Message>
        <Id>123</Id> 
      </Message>
    - <Head>
        <Id>123</Id> 
        <Filename>test.xml</Filename> 
     </Head>
  </Message>
  </ns:MT_Source>

In the above structure, Message is repeating.

Desired Output

<?xml version="1.0" encoding="utf-8" ?> 
- <ns:MT_Source xmlns:ns="http://city.net/FileCopy">
- <Message>
       <Id>123</Id> 
   - <Head>
       <Id>123</Id> 
       <Filename>test.xml</Filename> 
     </Head>
     <Body>Hello world</Body>
  </Message>
  </ns:MT_Source>

Regards,

Varun

Former Member
0 Kudos

i think it is difficult to convert this using adapter as this is not a flat strcuture

former_member537867
Active Contributor
0 Kudos

Hi Varun,

Define BOdy as the segment under Header segment(i.e at same level) and include one more field for eg. xyz under Body segment which holds the value "Hello world".

Then follow the below procedure:

Recordset Structure: Message,1,Head,1,Body,*

Message.fieldFixedLengths: 3,10

Message.fieldNames: Id

Message.fieldSeparator: ,

Message.endSeparator: 'nl'

Head.fieldFixedLengths: 3,8

Head.fieldSeparator: ,

Head.endSeparator: 'nl'

Head.fieldNames: Id, Filename

Body.fieldSeparator: ,

Body.endSeparator: 'nl'

Body.fieldNames: xyz

Regards,

Vinod.

varun_k
Contributor
0 Kudos

Hi Vinod Reddy,

Thanks for you reply, If there is a field under body, then It would have been much easy as you said. but there is no field under body. I cant change the structure. Actually, My source file contains only the value in the Body filed. i.e "Hello world". ID, Filename should come at runtime.

for testing I am sending values for ID and filename also.

Regards,

Varun

varun_k
Contributor
0 Kudos

Hii,

for Body, what values do I need to define in the table?

regards,

Varun

hemant_chahal
Contributor
0 Kudos

Varun why dont you change your structure a bit.

to

<body>

<value>abcd</value>

</body>

as in FCC it doesnt support three hierarchies.

also you specified message as subtructure as well as recordset.

in Recordset Structure you can have substructures with their occurences, you dont have to type recordset their.

otherwise recordset also would become a substructure of recordset itself

<Message>

<Message>

<Head>

You try to make your sturcture like

<Recordset>

<Substruture1>

<field>dsfd<field>

</Substruture1>

<Substruture2>

<field>dsfd<field>

</Substruture2>

<Substruture3>

<field>dsfd<field>

</Substruture3>

<Recordset>

and for this Take recordsetname as Message.

and modify your body field to substructre,

former_member537867
Active Contributor
0 Kudos

Hi Varun,

I think there is problem while mentioning ur record set structure.Just try the below way mentioned,itmay help u:

Recordset Structure: Message,1,Head,1,Body,*

Regards,

Vinod.

former_member238007
Contributor
0 Kudos

HI,

May u try with the defining the fcc parameters in reverse case i.e declare the head parameters first and then declare the field parameters next.. i don't know exactly whether it may solve ur problem or not.. try this option..

regards

Kishore