This section provides the following information on how the
Delimited data handler converts Delimited data to business
objects:
When converting a string or stream, the Delimited data handler
makes the following assumptions:
- The data contains the delimiter specified in the Delimiter meta-object
attribute.
- The business object name appears in the first field in the
data.
- The verb appears as the second field in the data.
- Attributes are in the order that they appear in the business
object definition.
- All objects in a child container are of the same type.
- The data contains a token that represents the number of child
objects in each cardinality n container.
- 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.
If you have more than one business object in the data, make sure
you do not introduce any new characters (such as a space, a tab, a
new line, or a carriage return) between them.
When the Delimited data handler reads a file in Delimited
format, it takes the following special processing steps to assign
to a business object attribute the CxIgnore or
CxBlank attribute value:
- It assigns the
CxIgnore constant (null) as the corresponding
attribute value whenever it encounters any of the following
conditions in the Delimited data:
- The value of the CxIgnore meta-object attribute (the
value configured for its Default Value property)
- The value of an empty string (" ")
- It assigns the
CxBlank constant as the attribute value only when the
CxBlank meta-object
attribute is configured and it encounters this configured value in
the corresponding Delimited data.
- Note:
- Make sure the escape string
and the delimiter have different values as configured by the
Escape and Delimiter meta-object
attributes in the Delimiter data handler child meta-object.
The following line shows an
example of a string in Delimited format. The syntax is:
Bus_Obj_Name<delimiter>Verb<delimiter>Attr1<delimiter>Attr2<delimiter>
Number_of_child_object_instances<delimiter>Child_Object_Name<delimiter>
Verb<delimiter>Attr1<delimiter>Attr2<EndBO:Bus_Obj_Name>
The following sample uses a tilde (~) delimiter:
Customer~Create~p1~p2~p3~1~CustomerAddress~Create~q1~q2~q3~q4~q5~q6~q7~q8~q9~q10~3~
PhoneInfo~Create~r1~r2~r3~r4~r5~r6~r7~PhoneInfo~Create~r1~r2~r3~r4~r5~r6~r7~
PhoneInfo~Create~r1~r2~r3~r4~r5~r6~r7
The Delimited data handler processes delimited data into a
business object as follows:
- The data handler gets the business object name from the first
token in the data and creates a business object to contain the
data.
- 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 token in the delimited data. Note that child business
objects may not have verbs set.
- 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 meta-object attribute named
OmitObjectEventId. If this is set to true, the
data handler does not perform the processing to populate the
ObjectEventId attribute.
- The data handler parses the data and populates the values of
the remaining simple attributes in the business object with the
token values from the data. The data handler processes container
attributes as follows:
- If the attribute is single-cardinality, the data handler
recursively parses the attribute tokens in the string, sets the
attribute values in the business object, and adds the child
business object container to the parent business object.
- If the attribute is multiple cardinality, the data handler
recursively parses the attribute tokens for each child object, sets
the attribute values in the child business object, and adds the
child business object container to the parent business object.
