本主题仅适用于 IBM Business Automation Workflow Advanced 配置。

嵌套业务对象的单个实例

使用 setWithCreate 函数可创建嵌套业务对象的单个实例。

准备工作

以下示例代码说明了一般情况下如何为较高级别(父代)对象中的中间级别(子代)对象创建代码以便创建第三级(孙代)对象。 XSD 文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:complexType name="Parent">
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="child" type="Child"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Child">
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="grandChild" type="GrandChild"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="GrandChild">
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
  
</xsd:schema>

关于本任务

如果已使用传统的“自顶向下”方法来设置业务对象数据,那么必须处理以下代码,以在孙代对象中设置数据之前指定子代和孙代对象:
DataObject parent = ...
DataObject child = parent.createDataObject("child");
DataObject grandchild = child.createDataObject("grandChild");
grandchild.setString("name", "Bob");
您可以通过使用 setWithCreate 函数来同时定义孙代对象并设置其数据,而不必指定中间子对象,从而使用更有效的方法。 以下示例代码说明了如何完成此任务:
DataObject parent = ...
parent.setString("child/grandchild/name", "Bob");

结果

已设置了较低级别的业务对象数据,而不必引用中间级别的业务对象。 如果路径无效,那么会发生异常。