updateMyChildren()

Adds and deletes child instances in a specified parent/child relationship of an identity relationship as necessary.

Syntax

void updateMyChildren(String parentChildRelDefName, 
       String parentParticpntDef, BusObj parentBusObj,
       String childParticpntDef, String childAttrName,
       String childIdentityRelDefName, 
       String childIdentityParticpntDefName,
       CxExecutionContext map_ctx)
 

Parameters

parentChildRelDefName
The name of the parent/child relationship definition.

parentParticpntDefName
The name of the participant definition that represents the parent business object in the parent/child relationship.

parentBusObj
The variable that contains the parent business object.

childParticpntDefName
The name of the participant definition that represents the child business object in the parent/child relationship.

childAttrName
The name of the attribute in the parent business object whose type is the child object name that participates in the parent/child relationship. For example, in a customer-address relationship, if the parent object contains an Address1 attribute, which is a child business object of type Address, the childAttrName attribute name is Address1.

childIdentityRelDefName
The name of the identity relationship in which the child business object participates.

childIdentityParticpntDefName
The name of the participant definition that represents the child business object in the identity relationship.

map_ctx
The map execution context. To pass the map execution context, use the cwExecCtx variable, which Map Designer Express defines for every map.

Return values

None.

Exceptions

RelationshipRuntimeException
see the Notes section for more information on when this exception is thrown

Notes

The updateMyChildren() method updates the child instances in the relationship tables of the parentChildRelDefName and childIdentityRelDefName relationship definitions. This method is useful in an identity relationship when a parent business object has been updated as a result of the addition or removal of child objects. Use updateMyChildren() to compare the after-image (in parentBusObj) with the before-image (information in the relationship tables) to determine which child objects in the after-image are new or deleted.

Note:
The updateMyChildren() method cannot handle the case where the child's composite key depends on its grandparents. For more information, see "Tips on using Update My Children".

The updateMyChildren() method performs the following validations on arguments that are passed in:

If any of these validations fails, updateMyChildren() throws the RelationshipRuntimeException exception.

Once the arguments are validated, the updateMyChildren() method adds children or deletes children from the list of child business objects that belong to the specified parent business object as appropriate. This method performs one of the following tasks to the relationship tables for the parent and child participants (parentParticpntDefName and childParticpntDefName, respectively):

The updateMyChildren() method requires that a parent/child relationship is defined with Relationship Designer Express. For information on how to create this kind of relationship, see "Creating the parent/child relationship definition".

Note:
If the child business object has a unique key, the child participant's attribute is the unique key of the child object. If the child object does not have a unique key, the child participant's attribute is this nonunique key.

Examples

For an example involving updateMyChildren() in conjunction with the maintainCompositeRelationship() method, see the Examples section of maintainCompositeRelationship().

For more examples involving updateMyChildren(), see "Customizing map rules for a composite identity relationship".

See also

addMyChildren(), deleteMyChildren(), maintainCompositeRelationship(), maintainSimpleIdentityRelationship()

"Handling updates to the parent business object"

Copyright IBM Corp. 1997, 2003