Receiver File Adapter Content Conversion Problem.

Hi All,
I am getting in receiver file adapter due to content conversion setting. Problem is that all the fields coming in file adapter are optional. In content conversion , i have specified fieldfixedlengths. So whenever any optional field is not present , it fails . How should we handle it? is there any option to declare fields as optional, I know that is the there for sender adapter. But no. of fields is also very large, so putting each and every field as optional is very time consuming.
What should i do?
Ranjeet Singh.

Hi Daniele,
Instead of using the standard funciton , i created a UDF for handling this situation.
My logic is UDF is like
   //write your code here
int Size = Integer.parseInt(Truncate_Size);
String Return_Value = "";
     if  (!("".equals(Input)) )
          if  (Input.length() > Size )
               Return_Value = Input.substring(0,Size);
          else
               Return_Value = Input.substring(0, Input.length());
     else
          for(int i = 0; i< Size ; i++)
          Return_Value = Return_Value + " " ;
return Return_Value;
SO in this case also , it should be able to handle empy source element. But it is not working.

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,
    Viktor

    Varga:
    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

  • Receiver File Adapter - Content Conversion

    Hi,
    I don't quite get this:
    I have a structure
    <?xml version="1.0" encoding="UTF-8"?>
    <AnElement1>
       <AnElement2>
          Bla bla bla
       </AnElement2>
    </AnElement1>
    I want to convert this to a flat file with a line containing
    Bla bla bla
    In te receiver file adapter I define the following:
    In the 'Content Conversion Parameters'
      Recordset Structure : AnElement2
      Name                         Value
    AnElement2.addHeaderLine         0
    AnElement2.fieldSeparator        'nl'
    AnElement2.endSeparator          'nl'
    This results in an Empty file each time indicating some error somewhere.
    What am I missing?
    Thanks
    Andre

    Hi Andre,
    Just check the link <a href="http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/frameset.htm">File content conversion</a>
    Also check out this web log <a href="/people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2 to TXT</a>
    Is there any error log shown in File adapter ?
    Regards,
    Keith
    Message was edited by: keith thompson

  • Receiver File adapter content conversion using StrictXml2PlainBean

    Hi All,
    For receiver file adapter i am using the module StrictXml2PlainBean, and also i mentioned the module configuration like this
    parameter name                              parameter value
    recordTypes                                  Header,TransactionHeader,TransactionDetail,TransactionTrailer,FileTrailer
    FileTrailer.endSeparator                |\n
    FileTrailer.fieldSeparator               |
    Header.endSeparator                   |\n
    Header.fieldSeparator                  |
    TransactionDetail.endSeparator   |\n
    TransactionDetail.fieldSeparator  |
    TransactionHeader.endSeparator |\n
    TransactionHeader.fieldSeparator |
    TransactionTrailer.endSeparator  |\n
    TransactionTrailer.fieldSeparator |
    But when i send the idoc, The receiver CC is throwing an error
    Message processing failed. Cause: com.sap.aii.af.modules.conversion.xml2plain.ConversionException: Invalid structure name encountered during conversion: Transaction at XML element MT_DeliveryOrder,Transaction
    My actual structure is
    MT_DelvOrder
       Header  0...1
       Transaction 0....Unbounded
          TransactionHeader  1..1
           TransactionDetail     0...unbounded
            TransactionTrailer  1...1
       FileTrailer  0...1
    The module is checking for the Transaction node,but i require the rest 3.
    Same configuration i have done successfully with FCC without using the module....
    So can any one suggest me where i am missing... why the module is pointint towards, the Transaction cant i ignore this node . and continue with the rest???
    Regards,
    Sridhar
    Edited by: sridhar reddy kondam on Aug 10, 2009 12:35 AM

    Hi Rajesh,
    The same FCC configuration was working fine with FCC and when i am using this module configuration i am getting the prob...
    In the file i need the Header,TransactionHeader,TransactionDetail,TransactionTail,Filetrailer
    my sample output file is
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:MT_DeliveryOrder>
    <Header>
    </Header>0...1
    <Transaction>0...Unbounded
        <TransactionHeader> 1..1
         </TransactionHeader>
         <TransactionDetail> 0...Unbounded
         </TransactionDetail>
          <TransactionTrailer>1...1
           </TransactionTrailer>
    </Transaction>
    <FileTrailer> 0...1
    </FileTrailer>
    Any suggestions will be great help...
    I think i need to go with other options without using this module....
    Regards,
    Sridhar
    Edited by: sridhar reddy kondam on Aug 10, 2009 6:03 AM

  • Blank line in receiver file adapter content conversion

    Hi,
    I am using a receiver file adapter. Everything is working fine. Except that a blank line is put by the file adapter between each records. It is a flat file format.
    I have used the stting below. How do we remove the blank line?
    Recordset : ACCTHDR,BATCHDR,TRANSREC,BATCHTLR,FILETLR
    ACCTHDR.fieldFixedLengths 1,7,4,9,8,665
    ACCTHDR.absoluteRowWidth  694
    ACCTHDR.addHeaderLine 0
    Thanks
    Sachin K

    Hi,
    .endSeparator
    The default value is a line break (no explicit separator after the last column; instead the structures are arranged line-by-line).
    If you enter a character string here, the system adds it to the last column as a closing character. You can also make this specification in addition to NameA.fieldFixedLengths. To include a line break following the closing character, you must explicitly define it by attaching ´nl´ (including the quotation marks) to the string.
    Regards
    Agasthuri Doss

  • Sender File Adapter content conversion problem

    Hi all,
    is it possible to do content conversion like this:
    Key;Field1;Field2;Field3
    PO00H;0482000000;20061102;PL61
    PO01I;00010;0A720;Material 1;100.000
    PO02D;20061102;100.000;
    PO00H;0482000001;20061102;PL63
    PO01I;00010;0A730;Material 2;40.000
    PO02D;20061102;40.000;
    PO01I;00010;0A740;Material 3;140.000
    PO02D;20061102;30.000;
    PO02D;20061103;110.000;
    convert to
    <?xml version="1.0" encoding="utf-8" ?>
    <MT_PO>
        <DT_PO>
            <DocumentHeader>
                <PONumber>0482000000</PONumber>
                <PODate>20061102</PODate>
                <CompanyCode>PL61</CompanyCode>
            </DocumentHeader>
            <Item>
                <ItemHeader>
                    <ItemNumber>00010</ItemNumber>
                    <MaterialCode>0A720</MaterialCode>
                    <MaterialDescription>Material 1</MaterialDescription>
                    <Quantity>100.000</Quantity>
                </ItemHeader>
                <ItemDetail>
                    <DeliveryDate>20061102</DeliveryDate>
                    <Quantity>100.000</Quantity>
                </ItemDetail>
            </Item>
        </DT_PO>
        <DT_PO>
            <DocumentHeader>
                <PONumber>0482000001</PONumber>
                <PODate>20061102</PODate>
                <CompanyCode>PL63</CompanyCode>
            </DocumentHeader>
            <Item>
                <ItemHeader>
                    <ItemNumber>00010</ItemNumber>
                    <MaterialCode>0A730</MaterialCode>
                    <MaterialDescription>Material 2</MaterialDescription>
                    <Quantity>40.000</Quantity>
                </ItemHeader>
                <ItemDetail>
                    <DeliveryDate>20061102</DeliveryDate>
                    <Quantity>40.000</Quantity>
                </ItemDetail>
            </Item>
            <Item>
                <ItemHeader>
                    <ItemNumber>00010</ItemNumber>
                    <MaterialCode>0A740</MaterialCode>
                    <MaterialDescription>Material 3</MaterialDescription>
                    <Quantity>140.000</Quantity>
                </ItemHeader>
                <ItemDetail>
                    <DeliveryDate>20061102</DeliveryDate>
                    <Quantity>30.000</Quantity>
                </ItemDetail>
                <ItemDetail>
                    <DeliveryDate>20061103</DeliveryDate>
                    <Quantity>110.000</Quantity>
                </ItemDetail>
            </Item>
        </DT_PO>
    </MT_PO>

    Ivan,
    I fear this is not possible.
    You can have
    <?xml version="1.0" encoding="utf-8" ?>
    <MT_PO>
    <DocumentHeader>
                <PONumber>0482000000</PONumber>
                <PODate>20061102</PODate>
                <CompanyCode>PL61</CompanyCode>
    </DocumentHeader>
    <ItemHeader>
                    <ItemNumber>00010</ItemNumber>
                    <MaterialCode>0A720</MaterialCode>
                    <MaterialDescription>Material 1</MaterialDescription>
                    <Quantity>100.000</Quantity>
    </ItemHeader>
    <ItemDetail>
                    <DeliveryDate>20061102</DeliveryDate>
                    <Quantity>100.000</Quantity>
    </ItemDetail>
    </MT_PO>
    Multiple <Item header> and multiple <Item details>
    Do the content conversion like this and then in mapping, convert it to any structure you need.
    Regards,
    JaiShankar

  • File Adapter - Content conversion parameters at Receiver

    Hi all,
    I'm trying to translate a XML message to a text line file.
    My XML message is this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:Proveedor_100011 xmlns:ns1="http://sap.com/xi/webservices/buyordint">
    <config>
    <directory>c:/tmp</directory>
    <filename>dynamicFile3.txt</filename>
    </config>
    <root><string>Header;423423</string>
    <lines>
    <value>LINE;</value>
    </lines>
    </root>
    </ns1:Proveedor_100011>
    I only want to write to text file the "root" TAG content.
    I try different "Content conversion parameters" in the integration builder (configuration)
    For example:
    RecordSet Structure: root
    root.addHeaderLine   0
    root.fieldSeparator  ;
    root.endSeparator    ;
    but the better result is all XML content.
    Can someone tell me how to skip "Config" TAG and only write the "ROOT" one?
    I'll apreciate any help.
    Thanks in advance,
    Diego.

    Hi Sravya,
    I've tried again without better luck.
    I change the root element of my message from
    Proveedor_100011 to Proveedor100011. (removed underscore)
    I created the next message as in your weblog:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sap.com/xi/webservices/buyordint" targetNamespace="http://sap.com/xi/webservices/buyordint">
    <xsd:element name="Proveedor100011" type="Proveedor100011" />
    <xsd:complexType name="Proveedor100011">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    54650790d48f11dab96c001438eb3b44
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:sequence>
    <xsd:element name="root">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f20d48e11dab854d06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="head" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f21d48e11da8f1dd06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="rows" minOccurs="0" maxOccurs="unbounded">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f22d48e11da894ad06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="value" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f23d48e11dab889d06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="filenode">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f24d48e11daab91d06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="filename" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f25d48e11da8becd06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    <xsd:element name="filepath" type="xsd:string">
    <xsd:annotation>
    <xsd:appinfo source="http://sap.com/xi/TextID">
    45f01f26d48e11dac56cd06ec0a8004a
    </xsd:appinfo>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    <Proveedor100011>
    <root>
    <rows>
    <value></value>
    </rows>
    </root>
    <filenode>
    <filename></filename>
    <filepath></filepath>
    </filenode>
    </Proveedor100011>
    I've tried to set "Recordset Structure" in file adapter configuration to "root,filenode" and to "Proveedor110001, filenode" but no output is writed
    We are using XI version: SAPKB64015, which version did  you use in your weblog?
    Thanks and regards,
    Diego.

  • 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 it’s 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..

  • Sender File Adapter - Content Conversion

    HI Friends,
    I got a scenario where I need to convert the File to XML document through Sender file adapter..
    My file looks like below.
    BATCH1234........
    12DASER123142JMM
    237DSAFDLKC839890
    45SDFLASJ90011
    BATCH3455...
    132FGAR
    SD21352525
    BATCH998898...
    123145DSRTW
    12FSTS
    So there is a Header and Body for each record set..
    My XML Structure is as follows.
    <TimeStructure>
      <TimeRecord>
         <ControlRec>
             <Field1>BATCH </Field1>   
             <Field2> ...</Field2>
         </ControlRec>
         <DataRec>
             <F1> ...... </F1>
             <F2> ...... </F2>
         </DataRec>
      </TimeRecord>
      <TimeRecord>
         <ControlRec>
             <Field1> BATCH  </Field1>   
             <Field2> ADFAS  </Field2>
         </ControlRec>
         <DataRec>
             <F1> ...... </F1>
             <F2> ...... </F2>
         </DataRec>
       </TimeRecord>
    </TimeStructure>
    The blog <a href="/people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem:///people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
    is somewhat relevant to my requirement.
    But the problem is I have the keyfield "BATCH" for my header file but don't have any <b>key field in the data record</b> of the input file.
    Please help me out how to mention the configuration parameters.
    Regards,
    Kumar

    Hi,
    If you don't have constant key value for your detail records, then you can not directly get the required xml.
    So in this case, you can read all the records in a common Row model, i.e each record will be considered as a one row with all the values, and then split this row with Substring or java functions in the mapping.
    Even you can do this in the Adapter module .
    If you have key value for each record to identify then you can try with content conversion.
    Regards,
    Moorthy

  • File adapter content conversion

    Hi all,
      We are having File to File Scenario
      We are facing problem in Content conversion in File
      Adapter(Sender)
      The source file is in text format and fields are
      seperated by '|' character
      The source file structure is :
      Header|No. of Records
      Data Record1 
      Data Record2
      Data Recordn
      Trailer|No. of Records
         where Data Recordn is of type Field1|Field2|Field3|Field4
         and the number of data records is variable
         e.g.
         Header|5
         2|144012|20050801|20050801
         212|012|20050801|20050801
         244012|2|20050801|20050801
         2144|144012|20050801|20050801
         212|012|20050801|20050801
         Trailer|5
      Now , we need to ignore the contents of Header and Trailer Records
         For Header , we are setting the property Document Offset to 1
         Hence the Header record is ignored
         However , we are facing problems in ignoring the Trailer record
         We want to know :
         1. Is there a direct way ( or some propety ) wherein we can ignore the last record of the file ,
            which in this case is Trailer record
         2. We also tried the following :
              a. We set the Recordset Structure to : row,*,trailer,1
              b. However in this case , the keyField is required for row ;
                 but since the number of data records is variable ,
                 the keyFieldValue cannot be specified
           How should we go about in this case
    Please guide us on this
    Regards
    Shikha

    Hi all
    Thanks for replies
    Actually , we are able to ignore header and that is not an issue
    Now if we need to discard the trailer record , we believe that RecordSet Structure should be <b>row,,trailer,1</b> or <b>header,1,row,,trailer,1</b>
    However , since structure is <b>row,*</b> ; we need to specify the <b>keyField</b> column for row ( data records )
    Since <u>number of data records</u> is variable , we are not able to set the <b>keyFieldValue</b> for <u>row ( data record )</u>
    Can you'all please guide us on this as we are stuck on this .
    Regards
    Shikha
    Message was edited by: Shikha Jain

  • File adaptor Content conversion problem

    Hi all,
    I have a client proxy > pi> CSV file scenario which im working on currently - everything is fine apart from 1 really annoying thing.
    The problem is this that when data is extracted from SAP it should put in 6 fields within the file produced e.g:
    field1,field2,field3,field4,field5,field6
    Which is fine however if one of the fields is blank there should still be the blank space which should appear instead of what it is curently doing which is ignoring the blank and shifting everything else left by 1 so:
    if out of 6 fields only 5 come out currently its doing this:
    field1,field2,field4,field5,field6      (Notice field3 is missing and there is no blank space in its place)
    What it should be doing is this:
    field1,field2,,field4,field5,field6       (Notice the blank space)
    I have gone through all the content conversion parameters I know for receiver file adaptors none have worked so if you know any which will do this please let me know!!
    Also if you know of other ways your ideas will be greatly appreciated.
    Many thanks in advance
    Edited by: Saqib Karim on Mar 5, 2009 5:45 PM

    >
    Saqib Karim wrote:
    > Hi Chirag,
    >
    > Does this mean that there is nothing in the file adaptor to cater for this and the only way is through mapping?
    >
    > I was hoping for an easier more straight forward solution along the lines of content conversion since this means that it has to apply to ALL FIELDS in the mapping!!??
    >
    > Thanks
    you solution is to alter the mapping in a simple way.
    If you are using graphical mapping then use this logic;
    Source field -> if EXISTS -> Target
                          else -> Pass an empty constant -> Target
    This will make sure an empty tag is created a the target and FCC will work fine.

  • Replace String in csv file with file adapter content conversion

    Hello experts,
    I have a sender file channel to receive csv files from an external server. I can process the csv files but I have a little problem. Since the separator in the csv file is a comma and sometimes a comma also appears in the dates but this time it is not a separator.
    Example:
    1234,20120123,ABCD,customer, which has a comma in it's name,...
    5678,20120123,FGHI,customer without comma,...
    My plan is to remove all commas when a blank follows.
    My current content conversion looks like this:
    Record.fieldNames field1,field2,...
    Record.fieldSeparator ,
    Record.endSeparator 'nl'
    Is there something like Record.fieldReplaceString or something similar which I can use? Or is there perhaps a better way to do this?
    I'd appreciate every help I can get here.
    Best regards.
    Oliver.

    Hi Oliver,
    I think I've got a solution for you, after all. All you need to do is have your customer name enclosed in quotes, like that:
    1234,20120123,ABCD,"customer, which has a comma in it's name",...
    Use the rest of FCC configuration as usually. You might also want to have a look at this wiki entry for a configuration example:
    http://wiki.sdn.sap.com/wiki/display/XI/FileContentConversion
    Moreover, see the description for "NameA.enclosureSign" in the help document below:
    http://help.sap.com/saphelp_nwpi71/helpdata/en/44/6830e67f2a6d12e10000000a1553f6/frameset.htm
    Hope this helps,
    Greg

  • File Adapter content conversion delimited/possitional file format.

    Hi,
    I have the following file to JDBC scenario, but having some issues with the file content conversion due to the file structure.
    Example:
    =======
    000038A020301
    000038A020101=AA1=AC1=AD=AG1=AH1=AI1=AK3049572=BN01 =BOMETLSS_ML_STD_30A7
    000038A020200=AA96=AB001=AC17000.000=AD1200=AF13021537=AE=AG8005992427=AH10
    OLRENDZZZZ
    Example 2:
    ========
    000040A020301
    000040A020101=AA1=AC1=AD=AG1=AH1=AI1=AK3049570=BN01 =BOMETLSS_ML_STD_30A7
    000040A020200=AA96=AB001=AC17000.000=AD1200=AF13021537=AE=AG8005992425=AH10
    000041A020301
    000041A020101=AA1=AC1=AD=AG1=AH1=AI1=AK3049571=BN01 =BOMETLSS_ML_STD_30A7
    000041A020200=AA96=AB001=AC17000.000=AD1200=AF13021537=AE=AG8005992426=AH10
    000042A020301
    000042A020101=AA1=AC1=AD=AG1=AH1=AI1=AK3049572=BN01 =BOMETLSS_ML_STD_30A7
    000042A020200=AA96=AB001=AC17000.000=AD1200=AF13021537=AE=AG8005992427=AH10
    000043A020301
    000043A020104=AA1=AC1=AD200619=AG1=AH1=AI1=AK3049568=BN01
    000043A020200=AA73=AB001=AC3700.000=AD1300=AF13047285=AE200619=AG8005992423=AH10
    000043A020200=AA73=AB002=AC5500.000=AD1300=AF13047285=AE200619=AG8005992423=AH10
    000043A020200=AA73=AB003=AC1800.000=AD1300=AF13047285=AE200619=AG8005992423=AH10
    000043A020200=AA73=AB004=AC5000.000=AD1300=AF13047285=AE200619=AG8005992423=AH10
    000044A020301
    000044A020104=AA1=AC1=AD200619=AG1=AH1=AI1=AK3049569=BN01
    000044A020200=AA73=AB001=AC3700.000=AD1300=AF10008536=AE200619=AG8005992424=AH10
    000044A020200=AA73=AB002=AC5500.000=AD1300=AF10008536=AE200619=AG8005992424=AH10
    000044A020200=AA73=AB003=AC2500.000=AD1300=AF10008536=AE200619=AG8005992424=AH10
    000044A020200=AA73=AB004=AC5000.000=AD1300=AF10008536=AE200619=AG8005992424=AH10
    OLRENDZZZZ
    Example Explained:
    ==============
    Position 1-9 is a "Transactional number".
    Position 10-11 is "Record type".
    Position 12-13 is "Line Item count".
    Four record types exist:
    03 = Location header
    01 = Transactional Header
    02 = Line Item
    OLRENDZZZZ = EoF marker.
    The equal sign "=" is a field separator/delimiter.
    In each delimited field, after the first equal sign in the record, the first two characters represent a field qualifier/field name tag/identifier and there only the data begins until the following delimiter.
    Each record is ended in a "CLRF"/'nl'.
    The file is build up, but not locked and only completed until the EoF marker "OLRENDZZZZ" is inserted by the application on the last record of the file.
    My solution so far:
    =============
    Record Structure: row,*
    Record Sequence: Ascending
    row.fieldNames: field1,field2,field3,ect.......
    row.fieldSeparator: =
    row.endSeparator: 'nl'
    row.keyFieldInStructure: ignore
    ignoreRecordsetName: true
    This brings the file into the integation server as xml as follow:
    ============================================
    <?xml version="1.0" encoding="utf-8"?>
    <ns:SAPtoFuelFACS xmlns:ns="urn:engenoil-com:i_fuel_facs_sap">
         <row>
              <field1>000038A020301</field1>
         </row>
         <row>
              <field1>000038A020101</field1>
              <field2>AA1</field2>
              <field3>AC1</field3>
              <field4>AD</field4>
              <field5>AG1</field5>
              <field6>AH1</field6>
              <field7>AI1</field7>
              <field8>AK3049572</field8>
              <field9>BN01</field9>
              <field10>BOMETLSS_ML_STD_30A7</field10>
              <field11>BP0003049572</field11>
         </row>
         <row>
              <field1>000038A020200</field1>
              <field2>AA96</field2>
              <field3>AB001</field3>
              <field4>AC17000.000</field4>
              <field5>AD1200</field5>
              <field6>AF13021537</field6>
              <field7>AE</field7>
              <field8>AG8005992427</field8>
              <field9>AH10</field9>
         </row>
         <row>
              <field1>OLRENDZZZZ</field1>
         </row>
    </ns:SAPtoFuelFACS>
    So far, so good.
    The problem I am having is that I have to check for the EoF marker "OLRENDZZZZ" to be present before picking up the file, else the file is not completed.
    I have tried a script to rename files in msg pre-processing in the channel, but the problem is the file channel has to be triggered and the original file mask is necessary for this, but then this mask is a valid pickup file mask. So to me it seems the only way is to do this is during the content conversion process as the files not matching the file criteria, where a EoF "OLRENDZZZZ" definition is not present, will not be picked up and be ignored until it is present or totally independent with a batch job.
    If someone has a more elegant way to solve this problem with just using the file channel configuration where every thing is pretty much apparent, I would greatly appreciate it if you could assist.
    Regards
    Willie Hugo

    The problem I am having is that I have to check for the EoF marker "OLRENDZZZZ" to be present before picking up the file, else the file is not completed.
    I suggest a script.
    Say The files are dropped in FolderA. Have a script transfer a file to FolderB only if it finds the EoF marker in a file. Thus FolderB will be what XI will poll and that will always have the complete file.
    Hope this sounds good!!!

  • File XML Content Conversion: Problem with special characters

    Hello,
    in a file sender cc content conversion is used to transform a flat structure to XML. What we experiencecd is that the message mapping failed due to a character that was not allowed in XML:
    I was assuming that the file content conversion just creates XML messages with allowed characters. Is there any way to configure content conversion to remove control characters which are not allowed in XML? Unfortunately the sender system cannot be modified.
    Thank you.

    Hi Florian,
      Please use this UDF to remove special characters which prevent XML messages to form properly.
    public static String removeSpecialChar(String s)
              try
                   s=s.replaceAll("&","& amp ;");
                   s=s.replaceAll("<"  , "  & lt ;");
                   s=s.replaceAll(">", "& gt ;");
                   s=s.replaceAll("'", "& apos ;");
                   s=s.replaceAll("\"", "& quot ;");
              catch(Exception e)
                   e.printStackTrace();
              return s;
    Please remove spaces between characters within double quotes. I have added them because otherwise you can't see this code properly. Please check this below link , please replace the characters with proper values as the display is causing a problem here   
    http://support.microsoft.com/kb/316063
    regards
    Anupam
    Edited by: anupamsap on Jul 7, 2011 4:22 PM
    Edited by: anupamsap on Jul 7, 2011 4:23 PM

  • Receiver JMS adapter content conversion

    Hi All,
    Can anyone provide me guidelines on how to do content conversion for the receiver JMS adapter??
    Thx
    Navin

    Hi,
    Based on your structure , you need to configure the JMS CC parameters.
    see the below link
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f02d12a7-0201-0010-5780-8bfc7d12f891
    regards
    Chilla

Maybe you are looking for