Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
engswee
Active Contributor

Update 14 Mar 2016: Revert 2 Jan 2015 change - xml.<StructureName>.processFieldNames is actually correct for StructPlain2XML. Also parameter xml.recordsetsPerMessage is not allowed for StructPlain2XML


Update 9 Oct 2015: Consolidate content - introduction was previously in original blog. Fully move all content to this collaborative document to allow for collaborative effort to maintain/update this reference list


Update 2 Jan 2015: Correction for StructPlain2XML- should be xml.processFieldNames instead of xml.<StructureName>.processFieldNames






Introduction

Performing File Content Conversion (FCC) is a common requirement when developing interfaces that deal with flat file formats. This can be easily accomplished in the File/FTP adapter. However, for other adapter types, this needs to be achieved by adding the MessageTransformBean (MTB) module with conversion class com.sap.aii.af.sdk.xi.adapter.Conversion into the module chain.

However, MTB is not feature-equivalent with the FCC functionality in the File/FTP adapter. Certain parameters that are available for configuration in the File/FTP adapter are not equally supported in MTB. Furthermore, the SAP Help Library online documentation does not fully list down all the available configuration parameters. Therefore, more often than not when working with MTB, it becomes a trial and error exercise.

This blog is an attempt to come up with a list (as comprehensive as possible) of the configuration options available when using MTB. This has been accomplished by decompiling the corresponding JAR package for MTB. Whilst this is on a PI 7.11 system, hopefully most of it will still be applicable for higher releases. Hopefully this will be a helpful reference for those who plan to use MTB in the future.

1) Conversion type: SimplePlain2XML

Parameter NameDefault value if parameter not configuredAllowed parameter valuesAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeSimplePlain2XMLRequired parameter
xml.structureTitlerow
xml.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.fieldFixedLengthTypechar
xml.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.endSeparatornl
xml.beginSeparator
xml.enclosureSign
xml.enclosureSignEndxml.enclosureSign
xml.enclosureSignEscape
xml.enclosureSignEndEscapexml.enclosureSignEscape
xml.enclosureConversionYES
xml.checkForXMLPredefinedEntitiesYES
xml.checkForISOControls
xml.lastFieldsOptionalNODeprecated and should not be used with missingLastFields or additionalLastFields
xml.missingLastFieldsignore
xml.additionalLastFields
xml.keepIncompleteFieldsNO
xml.addBeginSeparatorAsField
xml.addEndSeparatorAsField
xml.fieldContentFormattingtrim
xml.processFieldNames

fromFile - means that the field name information is located in the header line of the file to be converted.

fromFileWithBlankLine - corresponds to fromFile. After the header line there also follows a blank line or separator that is skipped.

fromConfiguration - means that no header information exits in the file to be converted, but it will be delivered by the present configuration.

notAvailable - means that no field name information is assumed to be in the configuration or in the file to be converted. In this case, the columns in the XML document are identified using a simple counter tag (<columnX> , X=0,1,2…).

Required parameter
xml.documentName
xml.documentNamespace
xml.documentNamespaceScoperoot
xml.fieldNamesRequired parameter if xml.processFieldNames = fromConfiguration

2) Conversion type: StructPlain2XML

<StructureName> is per the structure names defined in xml.recordsetStructure. For each structure name listed, configure the corresponding xml.<StructureName>.* parameters.

Parameter NameDefault value if parameter not configuredAllowed parameter valuesAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeStructPlain2XMLRequired parameter
xml.recordsetStructureRequired parameter
xml.recordsetStructureOrderasc
xml.allowEmptyRecordsetsYES
xml.recordsetNameRecordset
xml.recordsetNamespace
xml.recordsetNamespaceScoperoot
xml.recordsetBeginSeparator
xml.recordsetEndSeparator
xml.documentName
xml.documentNamespace
xml.documentNamespaceScoperoot
xml.recordsetsPerMessage*Message splitting via MTB is actually not allowed. If this is configured, it will result in an error in the communication channel.
xml.documentSkipFirstRows0
xml.keyFieldNameRequired parameter if there is a structure with * in xml.recordsetStructure
xml.keyFieldTypeRequired parameter if there is a structure with * in xml.recordsetStructure
xml.<StructureName>.processFieldNamesfromConfiguration

fromFile - means that the field name information is located in the header line of the file to be converted.

fromFileWithBlankLine - corresponds to fromFile. After the header line there also follows a blank line or separator that is skipped.

fromConfiguration - means that no header information exits in the file to be converted, but it will be delivered by the present configuration.

notAvailable - means that no field name information is assumed to be in the configuration or in the file to be converted. In this case, the columns in the XML document are identified using a simple counter tag (<columnX> , X=0,1,2…).

xml.<StructureName>.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.fieldFixedLengthTypechar
xml.<StructureName>.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.endSeparatornl
xml.<StructureName>.beginSeparator
xml.<StructureName>.enclosureSign
xml.<StructureName>.enclosureSignEnd
xml.<StructureName>.enclosureSignEscape
xml.<StructureName>.enclosureSignEndEscape
xml.<StructureName>.enclosureConversionYES
xml.<StructureName>.checkForXMLPredefinedEntitiesYES
xml.<StructureName>.checkForISOControls
xml.<StructureName>.lastFieldsOptionalNODeprecated and should not be used with missingLastFields or additionalLastFields
xml.<StructureName>.missingLastFieldsignore

xml.<StructureName>.additionalLastFields
xml.<StructureName>.keepIncompleteFieldsNO
xml.<StructureName>.addBeginSeparatorAsField
xml.<StructureName>.addEndSeparatorAsField
xml.<StructureName>.fieldContentFormattingtrim
xml.<StructureName>.keyFieldValueRequired parameter if there is a structure with * in xml.recordsetStructure
xml.<StructureName>.keyFieldInStructureadd
xml.<StructureName>.fieldNamesRequired parameter if xml.<StructureName>.processFieldNames = fromConfiguration

3) Conversion type: SimpleXML2Plain

xml.encoding
Parameter NameDefault value if parameter not configuredAllowed parameter valuesAdditional remarks
xml.skipEmptyFilefalse
UTF-8
xml.conversionTypeSimpleXML2PlainRequired parameter
xml.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.fieldFixedLengthTypechar
xml.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.endSeparatornl
xml.beginSeparator
xml.checkForXMLPredefinedEntitiesYES
xml.checkForISOControls
xml.addHeaderLineRequired parameter
xml.headerLineRequired parameter if xml.addHeaderLine = 3 or 4
xml.absoluteRowWidth0
xml.fixedLengthTooShortHandlingError

4) Conversion type: StructXML2Plain

<StructureName> is per the structure names defined in xml.recordsetStructure. For each structure name listed, configure the corresponding xml.<StructureName>.* parameters.

Parameter NameDefault value if parameter not configuredAllowed parameter valuesAdditional remarks
xml.skipEmptyFilefalse
xml.encodingUTF-8
xml.conversionTypeStructXML2PlainRequired parameter
xml.recordsetStructureRequired parameter
xml.<StructureName>.fieldFixedLengthsEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.fieldFixedLengthTypechar
xml.<StructureName>.fieldSeparatorEither fieldFixedLengths or fieldSeparator must be populated
xml.<StructureName>.endSeparatornl
xml.<StructureName>.beginSeparator
xml.<StructureName>.checkForXMLPredefinedEntitiesYES
xml.<StructureName>.checkForISOControls
xml.<StructureName>.absoluteRowWidth0
xml.<StructureName>.fixedLengthTooShortHandlingError

References:

For details about the functionality & values related to each parameter, refer to the corresponding parameter listed in the FCC section of the File/FTP adapter below:-

Converting Text Format in the Sender File/FTP Adapter to XML

Converting XML in the Receiver File/FTP Adapter to Text Format

Wiki with step by step sample of configuring FCC on JMS adapter

How To...Content conversion module with J2EE JMS adapter - Process Integration - SCN Wiki

6 Comments
Labels in this area