cancel
Showing results for 
Search instead for 
Did you mean: 

File Content Conversion

Former Member
0 Kudos

Hi

I am working on scenario with following settings in Sender File adapter:

Recordset Structure : Recordset,*

Recordset Sequence : ascending

Recordset.fieldNames HexValue

Recordset.fieldSeparator 'nl'

Recordset.endSeparator 'nl'

ignoreRecordsetName true

But getting the XML file as -->

<?xml version="1.0" encoding="utf-8" ?>

- <ns:HexData_MT xmlns:ns="urn:Testing">

- <Recordset>

- <Recordset>

<HexValue>ffd</HexValue>

</Recordset>

- <Recordset>

<HexValue>abc1</HexValue>

</Recordset>

- <Recordset>

<HexValue>dead</HexValue>

</Recordset>

</Recordset>

</ns:HexData_MT>

My test file is like this

********

ff

abc1

dead

*********

Even when I am using <i>" ignoreRecordsetName true "</i> i am getting recordset in XML file.

I know the solution is to change my XML structure & put one context above HexValue, but I dont want that to do.

Can't I get the file like this

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

<ns0:HexData_MT xmlns:ns0="urn:Testing">

<HexValue>ff</HexValue>

<HexValue>fff</HexValue>

<HexValue>dead</HexValue>

<HexValue>16a</HexValue>

</ns0:HexData_MT>

Pls. suggest as I tried multiple options but everytime getting the different XMl file.

Also one forum was created earlier for this

after which I started working on this. But no solution of that forum link also.

- Lalit -

Accepted Solutions (0)

Answers (1)

Answers (1)

Shabarish_Nair
Active Contributor
0 Kudos

Which SP are you on ? I guess ignoreRecordset works only for SP12 and above (not till SP9 for sure).

<i><?xml version="1.0" encoding="UTF-8"?>

<ns0:HexData_MT xmlns:ns0="urn:Testing">

<HexValue>ff</HexValue>

<HexValue>fff</HexValue>

<HexValue>dead</HexValue>

<HexValue>16a</HexValue>

</ns0:HexData_MT></i>

>>>>

I am not sure if you can acheive such a XML from FCC. the maximum you can acheive is;

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

<ns0:HexData_MT xmlns:ns0="urn:Testing">

<Record>

<HexValue>ff</HexValue>

<HexValue>fff</HexValue>

<HexValue>dead</HexValue>

<HexValue>16a</HexValue>

</Record>

</ns0:HexData_MT>[/

Since in you mandatory fields for FCC, you have to provide;

Recordset Structure : Record,*

Recordset Sequence : ascending

<b>Recordset.fieldNames HexValue</b>

Recordset.fieldSeparator 'nl'

Recordset.endSeparator 'nl'

ignoreRecordsetName true

and via tht rule your XML is generated.

Former Member
0 Kudos

Thanks Vijay

Because by now my idea is also this that it is a compulsion that i have to use context for HexValue.

Though I am on XI 7.0 SP18. Can we put this in front of SAP guys, as sometime this can be necassity also. I am just testing things so I can change the structure the way I like but in real time you dont have much options sometime.

- Lalit -

Shabarish_Nair
Active Contributor
0 Kudos

as far as i have tried i have not been able to get the results. dont know if there is a way around. I wud suggest to raise a note with SAP. But then y is it that you need it that way. Cos finally in your mapping you can transform the XML to what ever you need. isnt the target we r all worried about

Former Member
0 Kudos

Hi

The closest I reached is this -->

<?xml version="1.0" encoding="utf-8" ?>

- <ns:HexData_MT xmlns:ns="urn:Testing">

- <Record>

<HexValue>ffd</HexValue>

</Record>

- <Record>

<HexValue>abc4</HexValue>

</Record>

- <Record>

<HexValue>dead</HexValue>

</Record>

</ns:HexData_MT>

I am using following settings

Recordset Structure : Record,*

Recordset Sequence : ascending

Recordset.fieldNames : HexValue

Recordset.fieldSeparator : 'nl'

ignoreRecordsetName : TRUE

Also if I am using following parameters getting the same result

Record.endSeparator : 'nl'

Record.processFieldNames : fromConfiguration

Can you pls. suggest how can i achieve

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

<ns0:HexData_MT xmlns:ns0="urn:Testing">

<Record>

<HexValue/>

<HexValue/>

<HexValue/>

</Record>

</ns0:HexData_MT>

- Lalit -

former_member184619
Active Contributor
0 Kudos

Hi Lalit,

Try this one out

Recordset.fieldNames : HexValue

Recordset.fieldSeparator : 'nl'

ignoreRecordsetName : TRUE

replace it by

Record.fieldNames : HexValue

Record.fieldSeparator : 'nl'

ignoreRecordsetName : TRUE

Regards

-


Sachin Dhingra

Former Member
0 Kudos

Sorry Sachin, but the parameters are actually the way you suggested -->

Record.fieldNames : HexValue

Record.fieldSeparator : 'nl'

ignoreRecordsetName : TRUE

Actually I copied it from above & didn't notice the field name.

Pls. suggest if you have achieve it with some other settings.

Thanks

- Lalit -

Shabarish_Nair
Active Contributor
0 Kudos

just try,

Recordset Structure : Record,*

Recordset Sequence : ascending

<b>Recordsets per Message = 1</b> - try with and without this (trial and error)

Recordset.fieldNames : HexValue

Recordset.fieldSeparator : 'nl'

ignoreRecordsetName : <b>true</b> - this is not in CAPS

Also have a look at -

/people/sravya.talanki2/blog/2005/08/16/configuring-generic-sender-file-cc-adapter

Former Member
0 Kudos

Parameters with values I am using in Sender File Adapter -->

Document Name -- HexData_MT

Document Namespace -- urn:Testing

Recordset Name -- Record

Recordset Structure -- Record,*

Recordset Sequence : ascending

Recordsets per Message = 1

Record.fieldNames : HexValue

Record.fieldSeparator : 'nl'

ignoreRecordsetName : TRUE <i>// if I am using this in lower case, it is not working & showing the recordset context in XML file. I guess this is because I am using XI 7.0 SP18</i>

But still I am getting the same XML file even when I am using Recordsets per Message as blank.

<?xml version="1.0" encoding="utf-8" ?>

- <ns:HexData_MT xmlns:ns="urn:Testing">

- <Record>

<HexValue>ffd9</HexValue>

</Record>

- <Record>

<HexValue>abc4</HexValue>

</Record>

- <Record>

<HexValue>dead</HexValue>

</Record>

</ns:HexData_MT>

- Lalit -

Former Member
0 Kudos

Hi Lalit,

<b>

Content Conversion Parameters</b>

Document Name: HexData_MT

Document Namespace: urn:Testing

Recordset Structure: Root,*

Recordset Sequence: Ascending

Key Field Type: String(Case-Sensitive)

<b>

Content Conversion</b>

Root.fieldSeparator:nl

Root.fieldNames:HexValue

Root.endSeparator:nl

ignoreRecordsetName:true

Just try this out and tell me if it works...

Regards,

Abhy

Former Member
0 Kudos

Thanks Abhy

I am still getting same results.

My flat file has data like this :

<i>ffa1

abc4

dead</i>

I even tried to put different delimiters & settings but getting different results but not the one which I want.

I know the solution is to change the source structure in XI in the way I am getting XML file. But that suggest we can never achieve multiple field under one record.

I would like to my XMl file like this ::

<i><?xml version="1.0" encoding="UTF-8"?>

<ns0:HexData_MT xmlns:ns0="urn:Testing">

<Record>

<HexValue>ff</HexValue>

<HexValue>ac12</HexValue>

<HexValue>dead</HexValue>

</Record>

</ns0:HexData_MT></i>

- Lalit -

Former Member
0 Kudos

Hi Friends

After all settings & going through different documents, it seems that putting single field values in same context is not possible.

XI always assumes that every field should come under new record/context.

- Lalit -