This section provides the following information on how the FixedWidth data
handler converts FixedWidth documents to business objects:
When converting a string to an business object, the
FixedWidth data handler makes the following assumptions:
- The business object name appears as the first field in the data.
- The verb appears as the second field in the data.
- All attributes are given in the order that they appear in the business
object definition.
- The ObjectEventId attribute is present in each business
object. An entry for ObjectEventId is always required for a
business object, even when it has the value CxIgnore, because the
data handler uses it to distinguish between instances of a business object at
runtime.
The format for a fixed-width string is as follows:
[Bus_Obj_Name<blank_space_padding_for_size>]
[Verb<blank_space_padding_for_size>]
[Attr1<blank_space_padding_for_size>]
[Attr2...<blank_space_padding_for_size>]
[Number-of-child-object_instances<blank_space_padding_for_size>]
[Child_Object_Name<blank_space_padding_for_size>]
[Child_Object_Verb<blank_space_padding_for_size>]
[Child_Object_Attr1<blank_space_padding_for_size>]
[Child_Object_Attr2...<blank_space_padding_for_size>]
<EndBO:Bus_Obj_Name>
In this format, the first two fields (Bus_Obj_Name and Verb) are
padded to create fields of a length specified by the
BONameSize and
BOVerbSize attributes in the FixedWidth child meta-object.
The subsequent attributes are padded to create fields of a length specified in
the
MaxLength property for each business object attribute.
A field used with the FixedWidth data handler must be at least eight
characters long if
CxIgnore is a possible value for that attribute. If an
attribute is guaranteed not to have a CxIgnore value,
MaxLength can be less than eight characters long.
When a connector reads a file in fixed-width format, the
CxIgnore and
CxBlank meta-object attributes must be configured to generate the
desired values. These strings affect the minimum MaxLength
attributes. The minimum value for MaxLength must accommodate
both.
The FixedWidth data handler processes a FixedWidth document into a business
object as follows:
- The data handler creates a business object to contain the data. The
type of business object is either passed into the conversion method by the
connector, or the data handler extracts the name of the business object from
the first field of the string. If the type parameter and the content in
the data do not match, the data handler generates an error.
- The data handler sets the verb in the business object. The data
handler assumes that the verb for the top-level business object is in the
second field in the data.
- The data handler determines if there are any child meta-objects (those
whose names are listed in the cw_mo_ tag of the business object
application-specific information). The data handler does not
perform the processing to populate these attributes of the business
object.
- The data handler looks for the meta-object attribute named
OmitObjectEventId. If this is set to true, the
data handler does not perform the processing to populate the
ObjectEventId attribute.
- To set the remaining business object attributes, the data handler parses
the data based on the MaxLength of each attribute as specified in
the business object definition. It extracts attribute values from the
data and populates the values of the simple attributes in the business
object.
The data handler processes array attributes as follows:
- If the attribute is a single-cardinality attribute, the data handler
recursively parses the attribute list, sets the attribute values, and adds the
child business object to the parent business object.
- If the attribute is a multiple cardinality array, the data handler
recursively parses the attributes in each child attribute list, and adds the
child business object to the parent business object.
