Content Conversion Issue
I am performing content conversion on a file in the file receiver adapter. Everything works well but one item. My xml is set up as
<ns0:MT_Delivery xmlns:ns0="http://abc.com">
<Header>
<BOF>$BOF 20111220</BOF>
</Header>
<BOB>
<BOB>
<BOBItem>$BOB</BOBItem>
<OH>
<record_type>OH</record_type>
<origin_code>1701</origin_code>
<order_no>0030001031</order_no>
</OH>
<ThreePICO>
<record_type>3P</record_type>
<party_code>C1</party_code>
<company_name>CHS INC</company_name>
<company_name2>Plant City Sales</company_name2>
</ThreePICO>
<RFPO>
<record_type>RF</record_type>
<reference_code>PO</reference_code>
<reference_dscr>A.05</reference_dscr>
</RFPO>
<RFCustPO>
<record_type>RF</record_type>
<reference_code>xs</reference_code>
<reference_dscr>A.05</reference_dscr>
</RFCustPO>
</BOB>
</BOB>
</ns0:MT_Delivery>
This is ~ delimited.
My content conversion data is set up as:
Recordset = Header,BOB,OH,ThreePICO,RFPO,RFCustPO
fieldNames for Header = BOF
fieldNames for BOB = BOBItem
fieldNames for OH = record_type,origin_code,order_no
fieldNames for ThreePICO = record_type,party_code,company_name,company_name2
fieldNames for RFPO = record_type,reference_code,reference_dscr
fieldNames for RFCustPO = record_type,reference_code,reference_dscr.
When my file is created, I get the following
$BOF 20111120
$BOBOH1701~0030001031
3PC1CHS Inc~Plant City Sales
RFPOA.05
RFxsA.05
I don't understand while "$BOB" and "OH17010030001031" all show up on the same line. I've even tried to force a new line using 'nl' after the BOB segment, but no luck. Any ideas?
hi,
have you writen any udf for removing delimiter in mapping level?
thanks,
Similar Messages
-
Receiving file adapter content conversion issue
Guys,
Could someone please help me with a Receiving file adapter issue?
My output structure is something like this:
Vendor_file_MT (occurence 1)
--Recordset (occurence 0..unbounded)
Vendor (occurence 1)
Field1
Field2
Field3
Field73
Field74
My content conversion is very simple:
Recordset Structure: Vendor
Parameters:
Vendor.fieldFixedLengths 30,30,30, (...) ,1,27
Vendor.fixedLengthTooShortHandling Cut
Vendor.endSeparator 'nl'
If I don't do the content conversion, it works fine, I get all the fields in the XML format.
When I do the content conversion however, I get multiple lines but only the very first field of each line.
What could be the problem? What am I missing here? Any idea?
Your help would be much appreciated.
Thanks,
ViktorVarga:
Its little strange that its not working even after adding that. Did you check the receiver channel in your RWB for any logs. Add the statement in my previous post and Also try to clear the Cache and activate the channel again..See if it works
Glad it worked
Edited by: Guru on Apr 21, 2008 3:15 PM -
Content Conversion issue for header record
Hi,
We have a very urgent question on an issue here with one of our XI objects.
This is an inbound interface from an external system into R/3 & BW. The inbound file has a header record (with about 8 fields) and detail records (about 900 fields per detail record). Data going into R/3 & BW don't have header records and everything goes in as detail records. One field from the header of this source file should be passed to the target structure at the detail level. Also, we are NOT using BPM.
Can someone help us how we could define the file content conversion parameters for File adapter.
Thanks in advance ......
PrashantI'm so sorry, I wasn't subscribed to this thread and I didn't realize there were responses.
If you have a message type made up of a Header with 1 occurence and Detail with 1 to unbounded occurunces, you'd want to do the following in content conversion:
Document Name - your message type
Document Namespac - your message type namespace
Recordset Structure - Header,1,Detail,*
Recordset Structure - Ascending
Then you'll need to set some of the parameters, depending on the layout of your incoming file.
As for the problem of having hundreds of fields, I'm less sure about that.
Would it be possible to break your detail data type down into smaller data types. Each with fewer fields. You'd still have to maintain every field in content conversion, but at least they'd be in seperate parameters, instead of all 900 in one tiny box.
Here's a very rough example of what I mean:
If you have 900 fields, instead of making 1 data type of detail, you could make 9 data types, Detail1, Detail2, Detail3, Detail4, Detail5, Detail6, Detail7,Detail8, Detail 9, each with 100 fields in them (or more with even less fields).
Setting things up the file content conversion would be more complex in this scenario, so it might be a toss up if it's worth it to break it up this way or not if it meant configuring quite a few more parameters.
For example,
You'd have to declare your recordset structure like Header,1,Detail1,,Detail2,,Detail3,* etc, and you'd have to make sure to set the .endSeparator to '0' for all of the first 8 details, so it would recognize that they were all on one line.
I hope this helps a little bit. -
Hi ,
I am facing issue in JMS content conversion
my file looks like as below...
field1¤field2¤
field1¤field2¤
field1¤field2¤
field1¤field2¤
in module i have used this
AF_Modules/MessageTransformBean PLAIN2XML
Transform.Class com.sap.aii.messaging.adapter.Conversion
Transform.ContentType text/xml;charset=utf-8
xml.conversionType SimplePlain2XML
xml.documentName MT_data
xml.documentNamespace http://xyz.com
xml.fieldNames field1,field2
xml.fieldSeparator ¤
xml.processFieldNames fromConfiguration
xml.structureTitle records
but i am getting following error
Error occurred while processing message: . Detailed error (if any): com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Transformer Conversion3.0.5226 Error initializing Class: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter xml.fieldFixedLengths or xml.fieldSeparator is missing (4409) Consistency check: no. of arguments in xml.fieldFixedLength does not match xml.fieldNames (0 <> 2) : TransformException: Transformer Conversion3.0.5226 Error initializing Class: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter 'xml.fieldFixedLengths' or 'xml.fieldSeparator' is missing (4409) Consistency check: no. of arguments in 'xml.fieldFixedLength' does not match 'xml.fieldNames' (0 <> 2)
ironically when i use file adapter, its reading the file properly and converting XML as expected?
Did anyone face this issue.....
is this issue because of an extra ¤ .. is so... why its not giving issue with File??You need an additional hierarchy level:
root
-> row
-> data
In your example:
<?xml version="1.0" ?>
<ns1:HQ_reply_MT xmlns:ns1="urn:abc.com:HQToSAP">
<b><row></b>
<Data1> PIPXSDI3070 00000 00342YSDI3070PROCESS_MQSERIES HQXPLOR10 XPLOR.ORDER.RESULTS 0000 000000000000000086312 Invalid Process flag : 2. 065</Data1>
<b></row></b>
</ns1:HQ_reply_MT>
Regards
Stefan -
XI File Content Conversion Issue
Peace to All,
I am having this funny problem in File Content Conversion:
com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:ZIN_MT. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd
What did I do:
DATA TYPE1.
Structure1: TESTOUT_DT Complex Type
REC Element 1-1
Name11 Element xsd:string 1-1
Name12 Element xsd:string 1-1
Structure2: TESTIN_DT Complex Type
Name21 Element xsd:string 1-1
Name22 Element xsd:string 1-1
Mapping:
name11-name21
name12-name22
Configuration of Sender File :
DocumentName : TESTOUT_DT
Document NameSpace : http:/myspace.com/test1
RecordSetName : Recordset
Recordset Structure : Rec,1
Rec.fieldNames :name11,name12
Rec.fieldSeparator :,
Rec.endSeparator :'nl'
So when I test it it picks up the file but is unable to map it to destination.
Can anyone help me to find out why?.
One more hint is that I am using Third party Business System and I use the same for both file CC sender channel and Filereceiver channel.
I will appreciate your help.
ThanksMany thanks to your guidance...SDN is the best...It worked
Moving forward I encountered another issue, when I extend it a Trail to it and end up with this mapping:
ZOUT_MT 11 -ZIN_MT 11
Recordset 1--1
Rec 1unboundedTest01 1-----unbounded
key(string) 1...1----
key 1..1(string)
name11(string) 1..1----
name21 1..1(string)
name12(string) 1..1----
name22 1..1(string)
Trail 1...1 -
Trail 1---1
key(string) 1..1 -
key 1..1(string)
test(string) 1...1 -
test1..1 (string)
In Config: Sender File CC
Doc Name :ZOUT_MT
Doc namspace : http://mytest.com/test1
RecordsetName : Recordset
Recordset Structure : Rec,*,Trail,1
Key Field Name : key
Recordset per message : 1
Rec.fieldNames : key,name11,name12
Rec.fieldSeparator : ,
Rec.endSeparator : 'nl'
Rec.processConfiguration: FromConfiguration
Rec.keyFieldValue : 1
Trail.fieldNames: key,test
Trail.endSeparator: 'nl'
Trail.processConfiguration : FromConfiguration
Trail.keyFieldValue : 1
Trail.fieldSeparator : ,
From all this work above , when I put the file having:
1,111,112
1,222,223
1,333,334
1,99
The output file in empty (null)...
Does anyone out there understand why the output file is becoming null..
here is the log I get in workbecnh (commuunication channel)
Audit Log for Message: c1a434f5-ad9f-4a26-08c1-e7d579a5927a
Time Stamp Status Description
21.01.2009 11:48:22 Success Channel ztest_sender_cc: Entire file content converted to XML format
21.01.2009 11:48:22 Warning Channel ztest_sender_cc: Empty document found. Proceed without sending message
21.01.2009 11:48:22 Success File "/mylocation/interface/SCM/somefolder/in/shilpagirlsinput.txt" deleted after processing -
Content Conversion Issue - sender File adapter..!!
Hi All ,
Input file:
GRP|HD|7001|7001A00443|012|
GRP-LN|DTL|1|ZTAS|3|002|209782010|0001|EN
GRP-LN|TXT|Customer: KR Test, Case 3
GRP-LN|TXT|Power : -2.25
GRP-LN|DTL|2|ZTAS|4|002|209782035|0001|EN
GRP-LN|TXT|Customer: CL Test, Case 4
GRP-LN|TXT|Sphere Power : -2.25
T 7
I have 4 segments (Header,Detail,Text,Trailer) with "|" as the field separator and HD,DTL,TXT,T are the Keyfields
I need to get the xml structure like below heirarchy. Text segment has to come under Detail structure. Header,Detail and Trailer has to be in the same position.
Recordset
--Header
--Detail
Text
--Trailer
After completion of content conversion, I am getting the XML structure in the below format. All the segments are coming in the same hierarchy.
Recordset
-Header
-Detail
-Text
-Trailer
Text segment has to come under Detail segment. I used the below parameters for FCC.
Recordset Structure: Header,1,Detail,,Text,,Trailer,1
Recordset Sequence: Variable
Header.fieldSeparator
Header.keyFieldValue
Header.fieldNames
Detail.fieldSeparator
Detail.keyFieldValue
Detail.fieldNames
Text.fieldSeparator
Text.keyFieldValue
Text.fieldNames
Trailer.fieldSeparator
Trailer.keyFieldValue
Trailer.fieldNames
Kindly suggest me wat went wrong and how to solve it by content conversion.?
Thanks
DeepthiHi All,
Thank you for your replies.
I thought of doing it in mapping . My map is like
DTL -
> E1EDP01
TXT----
> -
EIEDPT2
According to my scenario when ever DTL comes then E1EDP01 has to come and EIEDPT2 has to repeat untill next DTL comes.
Ex: 1DTL and 4TXT segments .So the output will be..
DTL -> E1EDP01
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
DTL -> E1EDP01
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
Right now I couldn't able to generate the above target XML. Everytime I am getting all the TXT segments under one DTL segment like below.
DTL -> E1EDP01
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
TXT -
> -
EIEDPT2
Any suggestions how we can get rid of in mapping?
Thanks
Deepthi -
File Content Conversion issue in PI 7.1
Hi Experts
I am working on a file to Proxy scenario, I am getting a flat file with , separated but my file will have multiple nodes and I need to do the content conversion and map it to the following structure
Interface Header
InterfaceName
UserID
Date
Time
Journal Entries (1 - Unbounded)
DocumentHeader
DocumentDate
DocHeadetext
postingDate
DocumentLineItems
lineItemno
lineitemText
postingkey
InterfaceTrailer
Noofrecords.
Here the problem :I have declared the InterfaceHeader, DocumentHeade,DocumentLineItems and Interface trailer but for Journal entries node what are all the parameters to declare in the content conversion
please let me know if there are any solutions for this coples structure (content conversion)
Thanks
PR<?xml version="1.0" encoding="UTF-8"?>
<!-- New document created with EditiX at Thu May 12 18:57:06 EDT 2011 -->
<xsd:schema targetNamespace="http://pi.dvn.com/fa/app/ecc/journalEntries/10" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://pi.dvn.com/fa/app/ecc/journalEntries/10">
<xsd:element name="MT_JournalEntryVouchers" type="DT_JournalEntryVouchers"/>
<xsd:complexType name="DT_JEHeader">
<xsd:annotation>
<xsd:documentation xml:lang="EN">Journal Entry Header structure</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="documentDate">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="docHeaderText" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="25"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postingDate">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="companyCode">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="currency" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="documentType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="transactionCode">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="referenceNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="16"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="accrualReasonForReversal" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="accrualReversalDate" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="taxCalculationFlag" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_JELineItems">
<xsd:annotation>
<xsd:documentation xml:lang="EN">Journal Entry Line Items structure</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="lineItemNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="lineItemText" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postingKey">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="companyCodeLineitem">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="accountNumber">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="17"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="transactionAmount">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="costCenter" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="accountType">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="wbsElement" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="quantity" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="unitOfMeasure" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="productionDate" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="tradingPartner" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="materialNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="18"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="paymentKeyTerms" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="paymentBlockKey" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="paymentMethod" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="paymentMethodSupplement" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="baselineDate" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="witholdingTaxCode" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="payer_payeeNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="jointVenture" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="equityGroup" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="partnerAcctNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="recoveryIndicator" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="billingIndicator" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="orderNumber" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="profitCenter" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="partnerProfitCenter" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="assignment" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="18"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="referenceKey" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="transactionType" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="amountInLocalCurrency" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="amountInGroupCurrency" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="13"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="taxCode" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="splGLIndicator" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="assetTransactionType" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="xref2" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_JournalEntryRecord">
<xsd:annotation>
<xsd:documentation xml:lang="EN">Record Set for Journal Entry</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="InterfaceHeader" type="DT_InterfaceHeader"/>
<xsd:element name="journalEntries" type="DT_JEDocument" maxOccurs="unbounded"/>
<xsd:element name="InterfaceTrailer" type="DT_InterfaceTrailer"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_JEDocument">
<xsd:annotation>
<xsd:documentation xml:lang="EN">Journal Entry Document Data Type</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="documentHeader" type="DT_JEHeader"/>
<xsd:element name="documentLineItems" type="DT_JELineItems" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_InterfaceTrailer">
<xsd:sequence>
<xsd:element name="numberOfRecords" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_JournalEntryVouchers">
<xsd:annotation>
<xsd:documentation xml:lang="EN">Journal Entry Voucher Interface structure</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="JournalEntryRecordSet" type="DT_JournalEntryRecord"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_InterfaceHeader">
<xsd:sequence>
<xsd:element name="interfaceName" type="xsd:string"/>
<xsd:element name="userID" type="xsd:string" minOccurs="0"/>
<xsd:element name="runDate" type="xsd:string" minOccurs="0"/>
<xsd:element name="runTime" type="xsd:string" minOccurs="0"/>
<xsd:element name="testRun" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema> -
Hi ,
My Scenario is File to FIle having Sender .CVS using File Content Conversion
The sender file is coming below as an example,
a,b,"c,d,e",f
Here I need to consider Double code value "c,d,e" as a single field value using File separator as COMMA(,)
Please guide me how to achieve this type of file using FCC with file separator COMMA.Hi Dilip,
We had a similar problem where the name for eg: "John,Smith" when written into a .csv file were considered as "John","Smith" as two different entities instead of one. The solution was we used the character quotes " before and after the name field message mapping before it is sent to channel for .csv conversion as shown in the screenshot. Now it is treated as one single filed instead of two.
Hope this helps!
Thanks,
Divya. -
Sender File Content Conversion Issue
Hi guys,
I´m trying to convert a flat file into a xml structure using FCC. The flat file looks like:
G220520102205201003062010
D824000 006500015010000000000000GPDME 4521005 LP00
D351023 006500015010000000000000GPDME 4521005 LP00
D523000 006500015010000000000010GPDME 4521005 LP00
G220520102205201003062010
D824000 006500012510000002442490GPDME 4521005 LP00
D351023 006500012510000000049530GPDME 4521005 LP00
D523000 006500012510000000517790GPDME 4521005 LP00
G220520102305201003062010
D824000 006500012510000000025240GPDME 4521005 LP00
I´ve created the following DT:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap.com" targetNamespace="urn:sap.com">
<xsd:complexType name="DT_PRODUCTS_OUT">
<xsd:sequence>
<xsd:element name="RECORDS" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="REG_TYPE" type="xsd:string"></xsd:element>
<xsd:element name="PSTNG_DATE" type="xsd:string"></xsd:element>
<xsd:element name="DOC_DATE" type="xsd:string"></xsd:element>
<xsd:element name="FECINT" type="xsd:string"></xsd:element>
<xsd:element name="DETAIL" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="REG_TYPE" type="xsd:string"></xsd:element>
<xsd:element name="MATERIAL" type="xsd:string"></xsd:element>
<xsd:element name="PLANT" type="xsd:string"></xsd:element>
<xsd:element name="STGE_LOC" type="xsd:string"></xsd:element>
<xsd:element name="MOVE_TYPE" type="xsd:string"></xsd:element>
<xsd:element name="ENTRY_QNT" type="xsd:string"></xsd:element>
<xsd:element name="ENTRY_UOM" type="xsd:string"></xsd:element>
<xsd:element name="ITEM_TEXT" type="xsd:string"></xsd:element>
<xsd:element name="COSTCENTER" type="xsd:string"></xsd:element>
<xsd:element name="TR_PART_BA" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
As you can see the record DETAIL is nested to the record RECORDS. The point is that with the standard module of the FCC I can´t achieve my requirements, I only could get an XML structure like this:
<Recordset>
*<RECORDS>*
<REG_TYPE>G</REG_TYPE>
<PSTNG_DATE>22052010</PSTNG_DATE>
<DOC_DATE>22052010</DOC_DATE>
<FECINT>03062010</FECINT>
*</RECORDS>*
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>824000</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000000</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>351023</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000000</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>523000</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000010</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
</Recordset>
But it should look like this, with the records DETAIL inside RECORDS:
<Recordset>
+*<RECORDS>*+
<REG_TYPE>G</REG_TYPE>
<PSTNG_DATE>22052010</PSTNG_DATE>
<DOC_DATE>22052010</DOC_DATE>
<FECINT>03062010</FECINT>
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>824000</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000000</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>351023</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000000</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
*<DETAIL>*
<REG_TYPE>D</REG_TYPE>
<MATERIAL>523000</MATERIAL>
<PLANT>0065</PLANT>
<STGE_LOC>0001</STGE_LOC>
<MOVE_TYPE>501</MOVE_TYPE>
<ENTRY_QNT>0000000000010</ENTRY_QNT>
<ENTRY_UOM>GPD</ENTRY_UOM>
<ITEM_TEXT>ME</ITEM_TEXT>
<COSTCENTER>4521005</COSTCENTER>
<TR_PART_BA>LP00</TR_PART_BA>
*</DETAIL>*
+*<RECORDS>*+
</Recordset>
Any Idea how to achieve that with File Content Conversion?
Thanks in Advance,
Luis
Edited by: Luis Zarzo on Jun 14, 2010 1:22 PMSorry, I don´t know why my message format has been lost. Hopefully is a bit understandable. The point is that I want to achieve a structure like this:
What I´ve read is that this is not possible to achieve with File Content Conversion, but maybe there is a way.
Otherwise I would like to know if there is an easy way to make this using for example graphical or maybe java mapping.
Thanks a lot,
Luis -
Receiver JMS Adapter Content Conversion issue
Scenario :
R/3 -->XI -->MQ(XML2Plain)
Hi
We are using Receiver JMS Adapter to send the Message from XI to MQ.
The XML has to be converted to plain file. And Content conversion is
being done.
With the new development, the message type defined consist of 8 fields
with fixed length. The XML message goes successfully from XI to MQ
without any content conversion. But once simple content conversion is
being done for Receiver JMS adapter, even though the message is
received but its empty (without any data records). The adapter
monitoring everything seems fine and it gives the status that message
converted to binary and the message is delivered to MQ. Though on
checking the messages there is no data records.
Below is my content conversion configuration done in Module tab. Kindly
revert back what can be the problem as have done exactly the same way
as described in Content Conversion How to Guide for receiver JMS.
localejbs/AF_Modules/MessageTransformBean Local Enterprise Bean XML2Plain
localejbs/SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
localejbs/SAP XI JMS Adapter/SendBinarytoXIJMSService Local Enterprise Bean exit
XML2Plain Transform.Class com.sap.aii.messaging.adapter.Conversion
XML2Plain TransformContentType text/plain;charset=utf-8
XML2Plain xml.addHeaderLine 0
XML2Plain xml.addHeaderLine SimpleXML2Plain
XML2Plain xml.fieldFixedLengths 8,10,10,20,40,40,8,8
XML2Plain xml.fixedLengthTooShortHandling Cut
regards.
santosh.Hi,
check localejbs/SAP XI JMS Adapter/ConvertMessageToBinary Local Enterprise Bean convert_XI2Bin
this is not CallJMSService.
And also check the receiver Structure, if it is falt structure its ok, else
see the below link if it has the complex structure , how to handle..
See the below links
/people/alessandro.guarneri/blog/2006/01/04/jms-sender-adapter-handling-too-short-lines
/people/william.li/blog/2006/11/13/how-to-use-saps-webas-j2ees-jms-queue-in-exchange-infrastructure
content conversion
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
Regards
Chilla.. -
JMS receiver adapter file content conversion issue
I'm able to successfully convert complex structure using XML2Plain using StructXML2Plain module keys. However, I'm having trouble with a simple structure. All I see is a LF in the queue.
For the simple structure, I create the message via ABAP mapping unlike complex structure.
My data looks like this -
<?xml version="1.0" ?>
- <ns1:HQ_reply_MT xmlns:ns1="urn:abc.com:HQToSAP">
<Data1> PIPXSDI3070 00000 00342YSDI3070PROCESS_MQSERIES HQXPLOR10 XPLOR.ORDER.RESULTS 0000 000000000000000086312 Invalid Process flag : 2. 065</Data1>
</ns1:HQ_reply_MT>
the only think I'm missing is the encoding="UTF-8" in the first line of the xml document. Not sure how to get this via ABAP mapping.
My conversion rules are as follows -
<b>Transform.Class com.sap.aii.messaging.adapter.Conversion
Transform.ContentType text/plain;charset=utf-8
xml.addHeaderLine 0
xml.conversionType SimpleXML2Plain
xml.fieldSeparator ","</b>
I've tried Transform.ContentType and TransformContentType, both result in success with only LF in the queue.
At this point I'm thinking its something to do with my XML message I create. Any ideas?
Thank you.You need an additional hierarchy level:
root
-> row
-> data
In your example:
<?xml version="1.0" ?>
<ns1:HQ_reply_MT xmlns:ns1="urn:abc.com:HQToSAP">
<b><row></b>
<Data1> PIPXSDI3070 00000 00342YSDI3070PROCESS_MQSERIES HQXPLOR10 XPLOR.ORDER.RESULTS 0000 000000000000000086312 Invalid Process flag : 2. 065</Data1>
<b></row></b>
</ns1:HQ_reply_MT>
Regards
Stefan -
Mapping issue after Content Conversion in PI 7.1
Hi Experts
I am working on a File (Fixed format) to proxy , Data is getting converted in the File Content and conversion and passing to mapping as xml data , But the when the mapping happens no values are being returned on the target side
When I load the data (xml ) file from sxmb_moni on the sender side all nodes shows in red color though file content happened without issues
please provide the inputs how to map with the values
Thanks
PRA couple of checkpoints for you:
1. When you load the XML from SXMB_MONI in the test tab of message mapping it turns red..this means the constructed XML (from CC content conversion) doesnt match the one (XSD) defined in your ESR/IR. In this case you have to check again thoroughly the file content conversion fields values/field length in the sender Communication chaneel.
2. Once you rectify the error above then you can test the mapping in ESR message mapping. -
Issue w/ File content conversion (Receiver side)
Folks, there seems to be an issue with the conversion. I've read several of threads on this forum, but none helped! Although the file is generated with 8 bytes there seems to be nothing in the file.
However when 'File' message protocol is used, the xml file is generated correctly as expected. All my other settings are fine.
Here is the scenario:
1) created Message type -
MTX
..Material
..BaseUnit
..MatGrp
..Division
2) comm. channel created for -
Transport protocol: File (NFS)
Message protocol: File content conversion
Recordset Structure: MTX
parameters:
MTX.fieldSeparator: ,
MTX.endSeparator: 'nl'
Should recordset struc. and parameters have 'ns0' prefix, i.e.,
Recordset Structure: ns0:MTX
parameters:
ns0:MTX.fieldSeparator: ,
ns0:MTX.endSeparator: 'nl'
What esle is missing? any thoughts are welcome.
Thanks and appreciate your responses.Hi ABAP JUNOON,
Could you please create another Test scenario and
try
MTI_XXX
- DATA(0..unbounded)
- fields?
i mean, without redundant RS(Record Structure).
and use
Transport protocol: File (NFS)
Message protocol: File content conversion
Recordset Structure: DATA.
it will written the complete output file.
some people create the Reciver data type for test scenario's as follows.
MTI_XXX
-RS
- DATA(0..unbounded)
- fields?
i mean with redundant RS
in this case file is generated, but nothing will be appear.
so plz take care while creating the reciver data type with FCC.
and the following case also will work i.e
MTI_XXX
-RS
-Header(0,1)
- fields?
- DATA(0..unbounded)
- fields?
- Trailer(0,1)
- fields?
Regards
Mahesh. -
File Content Conversion and Empty file issue
Hello,
The issue is :
I have configured a file sender adapter with file Content Conversion. I have 2 kinds of records Header and Items.
i have defined the 'Key Field Name' based on the first character of each line of my flat file and the values associated :
Header.keyFieldValue = 1
Item.keyFieldValue = 2
Flat file example :
1;Headerfield1;Headerfield2
2;ItemField1;ItemField1;ItemField1;ItemField1;
2;ItemField1;ItemField1;ItemField1;ItemField1;
2;ItemField1;ItemField1;ItemField1;ItemField1;
and everything works fine !
But now imagine you receive a bad file like this :
xxxxx;ohhohoh;llllll
y;sdfsdfs;zezerz;zerzer
e;zerzerze;zezerzerzer
The result is : IS receive nothing and no alert is generated ?!!!???
What i have seen is that the adapter doesn't find any corresponding value for keyFieldValue so it consider that the flat file is empty and i do nothing, the file is archived and that's all no alert is generated ????
But i want to receive an alert for checking that the processed flat file was not correct !
If anybody has an idea, it will be great !
Regards,
VincentHi Vincent.
Sometimes it really #!@#%%#.. me off when customers excepts that XI will solve their whole organization interfacing problems (and the world hunger as well...:)...
even when it comes to the responsible systems that creates the file(sometimes with bugs and problems even before XI came to the org.).as in every developed application or out of the box one, the application has to take care of its outputs and deal with errors. when it cant deliver what other systems expects her to it has to inform some one...
When it comes to the Adapter frame work XI expects the system in its landscape to be responsible for the data they send (well formed and with the defined structure...IDocs,XML,flat files).
as mentioned in my colleagues previous postings you can take care of data verification during mapping and so..
I belive it is possible to monitor the incoming file before it is parsed to XML (not sure it is the right way to) and maybe we'll get a solution to that in the future (today we can monitor the comm. channel wether its configures well or not,maybe it will be possible in the future to alert when an incoming file is empty)
Regards.
Nimrod -
IMAP Sender channel, Content Conversion Module , target XSD structure issue
Hi,
I'm using the content conversion adapter module in my IMAP senderchannel , to transform a flat file into a IDOC ORDERS05 structure.
I have some difficulties generating the right structure... how can I make a more deep structure ?
My output is like this. All created segment is on the same level.
<ORDERS05>
<IDOC>
<E1EDK01>
<E1EDK03>
<E1EDKA1>
<E1EDK02>
<E1EDKT1>
<E1EDKT2>
<E1EDKT2>
<E1EDKT1>
<E1EDKT2>
<E1EDKT2>
<IDOC>
</ORDERS05>
Here the E1EDKT2 should be a "level under" or "sub structure" to E1EDKT1, and not on the same level !
The wanted result:
<ORDERS05>
<IDOC>
<E1EDK01>
<E1EDK03>
<E1EDKA1>
<E1EDK02>
<E1EDKT1>
<E1EDKT2>
<E1EDKT2>
<E1EDKT1>
<E1EDKT2>
<E1EDKT2>
<IDOC>
</ORDERS05>
How can I solve this ????Hi,
you can do it on adapter level too:
but you cannot do it in standard content conversion I guess
(if it has more then 2 levels)
check this how you can do it:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/482aae19-0301-0010-3485-8efd618818d0
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>
Maybe you are looking for
-
The Keiser M3i and the Concept 2 Rowing Ergometer feature BLE but are not recognized natively on the iPhone's bluetooth menu Is there a chance of this being changed on an update of IOS?
-
I updated iphoto and images weren't visible.
I updated iphoto and images weren't visible. Still in the library but not visible.. did all the normal start up fixes like rebuilding thumbnails, database etc --- bt nothing worked... I copied images folders ORIGINAL MODIFIED etc -to an external har
-
Hello and sorry for my English. I use SNMP for my Cisco, more than 30 Cisco switchs in my network. we had buy a new model : SG200-26 and i don t find OID for this switch like others, i think that most of MIB are not supported :-( I look for : ciscoM
-
Non-working (ADSL) extension after BT engineer put...
Hi - I'm not blaming the engineer (yet) but am asking, if after a new Master Socket has been put in (the type with separate phone and RJ11 connectors) is there anything that could explain why an extension doesn't work? What I mean by "doesn't work" i
-
Dell Powerconnect 6248 1gb and 10gb "redundant" Links
Hello,I have two powerconnect 6248 switches on separate floors that are currently linked with a 1gb fiber. This environment was setup prior to me joining this team.We have noticed that we are saturating the 1gb line and need to go to a 10gb link. The