Integration Server 10.5 | Flat File Schema Developer's Guide | Working with Elements in Flat File Schemas and Dictionaries | Customizing the Flat File Configuration Settings
 
Customizing the Flat File Configuration Settings
You can customize some aspects of your flat file experience.
The WmFlatFile package provides the following flags you can use to customize some aspects of the package’s default behavior. You implement these flags in the configuration file:
Integration Server_directory \instances\instance_name\packages\WmFlatFile\config\ff.cnf
Flag
Value
recWithNoIDLike46
Determines how the pub.flatFile:convertToValues service handles recordWithNoID records.
*If recWithNoIDLike46=false (the default), each recordWithNoID record appears as a child of the record above it, in an array.
*If recWithNoIDLike46=true, the services mimics the handling of recordWithNoID that was implemented in version 4.6 of the Integration Server. That is, all recordWithNoID records appeared as children of the root. In addition, when the pub.flatFile:convertToValues service returned only one recordWithNoID record, it returned it as a single record, not as an array.
alwaysSortFields
Determines whether the pub.flatFile:convertToString service checks the order of the fields in composites and records that it receives as input (in ffValues) against the flat file schema that is specified in the ffSchema input parameter.
*If alwaysSortFields=false, the pub.flatFile:convertToString service does not check the order of the fields in the composites and records. It assumes that the fields in composites and records are in the same order as the flat file schema. This is the default.
*If alwaysSortFields=true, the pub.flatFile:convertToString service checks the order of the fields in the composites and records. It attempts to match the order of the fields in composites and records to the order of the fields in composites and records in the flat file schema.

allowSubfieldDelimiterIn NonCompositeField
Determines whether Integration Server Flat File Adapter allows subfield delimiters in non-composite elements.
*If allowSubfieldDelimiterInNonCompositeField=false, subfield delimiters are not allowed in a non-composite element. This is the default.
*If allowSubfieldDelimiterInNonCompositeField=true, subfield delimiters are allowed in a non-composite element.
dontTrimControlCharacters
Determines how whitespace and control characters are handled by the service wm.b2b.edi:convertToString when the parameter spacePad is set to left or right.
*If dontTrimControlCharacters=true, and spacePad is set to left or right, the service does not truncate control characters from delimited fields.
*If dontTrimControlCharacters=false, and spacePad is set to left or right, control characters are treated as whitespace and truncated.
recordIdentifierCheck
Determines whether the pub.flatFile:convertToString service includes the record identifier in the string output parameter.
*If recordIdentifierCheck=false, the pub.flatFile:convertToString service includes the record identifier in the string output parameter. This is the default.
*If recordIdentifierCheck=true, the pub.flatFile:convertToString service does not include the record identifier in the string output parameter.
spacePadJustifies
Controls how the input parameter spacePad justifies fixed length fields handled by the services pub.flatFile:convertToString and wm.b2b.edi:convertToString.
*If spacePadJustifies=true and:
*spacePad is set to left, fixed length fields are left justified.
*spacePad is set to right, fixed length fields are right justified.
*If spacePadJustifies=false and:
*spacePad is set to left, fixed length fields are right justified.
*spacePad is set to right, fixed length fields are left justified.
This is the default.
spacePadJustifies has no effect when spacePad is set to none.
UNAOnlyForImmediateUNB
Controls how EDIFACT documents with multiple interchanges are validated when an interchange does not contain a UNA segment.
When none of the interchanges contain a UNA segment, each interchange is validated against the default delimiters regardless of the value of this property.
*If UNAOnlyForImmediateUNB=true, each UNB segment is validated against its corresponding UNA segment. When there is no corresponding UNA segment, EDI Module uses the default delimiters for validation.
*If UNAOnlyForImmediateUNB=false, each UNB segment is validated against its corresponding UNA segment. When there is no corresponding UNA segment, EDI Module uses the delimiters set in the previous UNA segment for validation. This is the default.
useAlternateCodeSets
Determines whether to enable the use of alternate code sets.
*If useAlternateCodeSets=true, use of alternate code sets is enabled. This is the default.
*If useAlternateCodeSets=false, use of alternate code sets is disabled.
useG11NEncodings and alwaysUseWebMEncodings
Determines whether the pub.flatFile:convertToValues and pub.flatFile:convertToString services use the webMethods charset or the default charset provided by JVM.
*If useG11NEncodings=true and either the encoding name begins with WM_ OR alwaysUseWebMEncodings=true, the pub.flatFile:convertToValues and pub.flatFile:convertToString services use the webMethods charset.
*If useG11NEncodings=false, the pub.flatFile:convertToValues and pub.flatFile:convertToString services use the default charset provided by JVM, regardless of the value assigned to alwaysUseWebMEncodings.
The default value for alwaysUseWebMEncodings is false and useG11NEncodings is true.
Example:
alwaysUseWebMEncodings=false
useG11NEncodings=true
useReadableDelimiterReporting
Controls how the delimiter record parser parses non-readable delimiters, such as \r (carriage return), \n (line feed), or \t (tab).
*true (the default): The parser reports the delimiters as human-readable characters, e.g., the carriage return character is represented as \r. This variable does not impact human-readable delimiters such as | or *.
*false: The parser reports the delimiters as the actual delimiter character. For example, if the delimiter is a carriage return, the value reported will be the non-readable carriage return code (decimal 13 or hexadecimal OD).
Note:
If you use webMethods Module for EDI, set this variable to false.
This impacts how you can use the delimiter information in flow mapping. If you use the delimiters directly in flows with variable substitution, non-printable characters will not be substituted correctly when useReadableDelimiterReporting=true.
For example, when the output of the pub.flatFile:convertToValues service shows that the record delimiter is \n and a user flow has an input set to the following:
abc%@delimiters\record%def
the resulting value will be as follows:
If useReadableDelimiterReporting=true, the resulting value is abc\ndef.
If useReadableDelimiterReporting=false, the resulting value is
abc
def
useAlternateNameForSegments
Determines whether the flat file parser uses an alternate name for segments, if an alternate name is provided.
If useAlternateNameForSegments=true and an alternate name for a segment is provided, the flat file parser uses an alternate name for segments. If an alternate name is not provided, the flat file parser uses the existing segment name.
If useAlternateNameForSegments=false, the flat file parser always uses the existing segment name. This is the default.
Note:
When processing many small files, a file polling port might become disabled and the following exception might be returned: java.lang.IllegalArgumentException: Comparison method violates its general contract. If this occurs, modify the custom_wrapper.conf file to pass the following Java system property to Integration Server: java.util.Arrays.useLegacyMergeSort=true. For information about how to pass Java system properties to Integration Server, see webMethods Integration Server Administrator’s GuideFor Microservices Runtime, add the property to JAVA_CUSTOM_OPTS in Integration Server_directory /bin/server.bat(sh).