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 ......
Prashant
I'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.
Similar Messages
-
SFTP Sender - content conversion to read Header & detail and control record
Hi Experts,
I'm just beginner in SAP PI. Just would like to know possibility for below requirement for my further reseach
Soure file format fix length with 3 different format(H,D,T)
As example
H001TestHeader1
D001001TestDetail11
D001002TestDetail21
T2
H002TestHeader2
D002001TestDetail21
T2
The requirement detail :
1. There are multiple set of H,D,T per files
2. T line is the record count of total D line per each H set. for example as green font we have 2 D line, So T show T2
3. If number in T line is not match with actual D line, then only these set should be filter out and write to error file and send email alert. for example as red font we have 1 D line, but T show T2
4. If number in T line is match with actual D line, then these set will be write to result file.
As I know that content conversion may be support this requirement for separate records set for H/D/T but I don't have idea how to handle requirement no.3 and 4, Is it need ccBPM? Please help to provide some overview guideline for my further research. Thank you.As I know that content conversion may be support this requirement for separate records set for H/D/T
>>> For the FCC, you might be using Message Transformation bean and unfortunately MTB doesn't provide the option to split the message i.e. " Records set per message".
If you go for two step approach i.e. then you can use this option to split the records.
1) pass through interface -> SFTP -> NFS
2) NFS(Standard FCC) -> Your target system
I don't have idea how to handle requirement no.3 and 4, Is it need ccBPM? Please help to provide some overview guideline for my further research. Thank you.
>>> If you can split the file for each recordset i.e. one set of H/D/T then you can handle the validation part in message mapping.
If T has valid number of records then execute the mapping set the filename and directory to "result file" locations using dynamic configuration.
If T has invalid number of records then execute the mapping set the filename and directory to "error file" location.
To trigger the email from the message mapping refer to the below blogs -
Mail without email adapter? Part - I - Process Integration - SCN Wiki
How to send Alerts using UDF or JAVA Mapping -
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> -
What are the content conversion parameters for this structure
Hi All,
The below file is the text file. what are the content conversion parameters are required and what is the structure to create in the IR to convert into xml.
Schedule D - District/Port List (by District Code) [Produced13APR11]
District | Port | Name
Code | Code |
01 | | PORTLAND, ME
| 0101 | PORTLAND, ME
| 0102 | BANGOR, ME
| 0103 | EASTPORT, ME
| 0104 | JACKMAN, ME
| 0105 | VANCEBORO, ME
| 0106 | HOULTON, ME
| 0107 | FORT FAIRFIELD, ME
| 0108 | VAN BUREN, ME
| 0109 | MADAWASKA, ME
| 0110 | FORT KENT, ME
| 0111 | BATH, ME
| 0112 | BAR HARBOR, ME
| 0115 | CALAIS, ME
| 0118 | LIMESTONE, ME
| 0121 | ROCKLAND, ME
| 0122 | JONESPORT, ME
| 0127 | BRIDGEWATER, ME
| 0131 | PORTSMOUTH, NH
| 0132 | BELFAST, ME
| 0152 | SEARSPORT, ME
| 0181 | LEBANON AIRPORT
| 0182 | MANCHESTER USER FEE AIRPORT, NH
02 | | ST. ALBANS, VT
| 0201 | ST. ALBANS, VT
| 0203 | RICHFORD, VT
| 0206 | BEECHER FALLS, VT
| 0207 | BURLINGTON, VT
| 0209 | DERBY LINE, VT
| 0211 | NORTON, VT
| 0212 | HIGHGATE SPRINGS/ALBURGsince in this case you dont seem to have a key value to figure out what your header is, it is better to go for a two level mapping. i.e first read all the data - each line as an xml tag. and in the first mapping group it as required and then use it for your original mapping.
Regards,
Ninu -
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 -
Content conversion parameters for fixed length file
Hi,
Hey i have a small doubt.My input is like this
99443 123213 232234 12312 127544 23423
Here i have four recorsetnames namely HEADER1,HEADER2,HEADER3,HEADER4,HEADER5,HEADER6 all the recordsets are of same size but the lengths of the fields in it vary so i specified the following parameters
HEADER1.fieldFixedLengths=1,3,1
HEADER1.fieldNames=value1,value2,value3
HEADER1.endseperator=" "
HEADER2.fieldFixedLengths=1,3,2
HEADER2.fieldNames=value1,value2,value3
HEADER2.endseperator=" "
MY OUPUT XML STRUCTURE SHOULD BE like this
<header1>
<value1>9<\value1>
<value2>944<\value2>
<value3>3<\value3>
<\header1>
<header2>
<value1>1<\value1>
<value2>232<\value2>
<value3>13<\value3>
<\header2>
Is the content conversion parameters i specified enough for that. I wanted to know how would it know the begin of the next recordset(ie the seperation between the two recordsets) .Please help me its vey urgent
Thanks in advance
SriandhAre header 1 fields always going to occur first , then header 2 and so on?
By default file adapters do not support Nested Strcutures and so if the sequence is going to be the same and all of these have an occurence of 1..1 then things will work.
But if there is going to be an occurnece of * then you will need to use KeyFields.
Regards
Bhavesh -
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 -
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, -
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 -
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 -
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.. -
Unit Conversion issue for same material with Diff KPI
Hi,
i have a report with multiple key figures which form a structure.
Unit conversion for this report and all the key figures are defined at report level.
Below are the settings in place
Source currency: Data record from target
Target Currency: From variable ( Input variable in BeX report)
Conversion factor: Dyanamic Determination of conversion factor
Using Reference Infobject if available otherwise use T006
Reference Infobject: 0Material
Issue: For 1 Key figure conversion to TO is happening, however for other Key figure conversion is not happening for the same material.
Note: Conversion to TO is defined in BEX settings for Info object 0material and stored in DSO UOM0MATE.
Why for same material some key figures convert to target unit correctly and not the others?
See the attached screenshot. Sales Quantity is convertin to "TO" while Volume third party shows figue in"ERR" for same material.
Thanks
NayabHi,
Following reasons cause to your issue,
1. Unit Conversion is not maintained for that particular material in source system Material itself, so that conversion data data may not updated in DSO (UOM0MATE).
2. For particular transnational data record key figure value don't have any base unit or units measures, that case also you may get that error.
Request check the transnational data in your InfoProvider and 0Material Master data and DSO data (UOM0MATE) . Correct the data based on that.
Check the Master data test in RSRV for 0Material, if any SID generations was missed or not.
I hope this can be help to find the cause of error , based on that you can resolve problem.
Thanks & Regards,
Leela Krishna. -
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 -
Posting date issue for COGI records.
Hi all,
I have one issue regarding the posting date for the records which are being cleared from COGI.
_In case of MF47 (Postprocessing for REM) following is the behaviour,_
In this if GR has happened on say 1st and due to stock un-availability components are gone to Post processing, Now when stock of component inwarded on say 20th then GI posting happens on 20th in post processing record clearance
_Now in case of COGI (Automatic goods movement : Error handling) behaviour is different,_
In this scenario if GR has happened on say 1st and due to stock un-availability components are gone to Post processing (COGI), Now when stock of component inwarded on say 20th then GI posting happens on 1st in post processing record clearance
I want same should be happened in case of COGI also, is there any note/ correction/option available??
Thanks in advance
Regards,
Vinayak.Dear,
There are backlogs from the backflush in repetitive manufacturing. You can display these using Transaction MF47 and/or Transaction COGI. So schedule a job for program RMSERI11 on daily basis or hourly basis so it will clear the postprocessing errors.
But for some of the errors, it needs manual intervention like updating storage location, posting dates due to posting period block etc.
Hope clear to you.
Regards,
R.Brahmankar -
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.
Maybe you are looking for
-
Unable to collect NIC data for reporting with MIB-II module
Hi all, Here we have SunMC 3.6.1 set up with almost all the available modules, including the complete "MIB-II Instrumentation" one. We also have the "Performance Reporting Manager" feature, and want to use it to generate a hole bunch of performance r
-
Lightroon CC upgrade will not run on windows 8.1
Ran Adobe Creative Cloud updates today, all updates installed and are working OK except for Lightroom, it will not run when opened, no error messages appear and windows trouble shooter reports it as lightroom is incompatible. I have done a complete m
-
while homesharing with my apple tv will i be using up my internet data?
-
Hi, I used Canon HV-20 I am trying to capture a complete tape, but the timecode breaks are so frequent. What settings should I use or is this a common occurrence? I am quite new to HD so any help would be appreciated. I cleaned the heads as well, but
-
does anyne knows the phone number to cal for questions of unauthorized card charges??