Configuring a Dynamic Organization Model Extension Point

An organization model extension point is an organization unit that references an organization model template. The extension point configuration is used to dynamically generate instances of the organization model template directly below it.

The designation of the extension point is a design-time function; it consists only of the assignment of the organization model template. The remaining extension point configuration — that is, the LDAP connection information — is not known nor can be interrogated at design-time, and is therefore performed after deployment.

Note that any extension point that is not fully configured is ignored, and not does result in the creation of organization model template instances.

After an extension point is configured, instances of the organization model template are generated using the ExtensionPointProcessStart property in DE.Properties. For information about all extension point-related properties, see the TIBCO ActiveMatrix BPM Administration guide.

For more information about dynamic organizations, see the TIBCO Business Studio Modeling guide.

The following diagram shows an example of organization model extension point configuration.

Configuring a Dynamic Organization Model Extension Point

The following step-by-step descriptions correspond to the numbered steps in the illustration above. Note that the descriptions are from a web service operation point of view, and provide an example of performing the operations using the web service API (SOAP). (For an equivalent example using the Service Connector API (Java), see Configuring a Dynamic Organization Model Extension Point — Service Connector API Example (Java).)

Procedure

  1. Get organization model with extension points. The response will also include dynamic organization model templates.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:org="http://orgmodel.api.de.bpm.tibco.com">
       <soapenv:Header/>
       <soapenv:Body>
          <org:getOrgModel model-version="1" include-ext-points="true"/>
       </soapenv:Body>
    </soapenv:Envelope>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Header/>
       <SOAP-ENV:Body>
          <getOrgModelResponse model-version="1" xmlns="http://orgmodel.api.de.bpm.tibco.com">
             <organization guid="_k44DgWDiEeOXirad8gzrtg" label="Organization" name="Organization" xmlns="">
                <schema-type guid="_k44DiWDiEeOXirad8gzrtg" label="Public Company" name="PublicCompany"/>
                <allocation-method method="ANY"/>
                <org-unit guid="_4WIGYGDiEeOXirad8gzrtg" label="Head Office" name="HeadOffice">
                   <schema-type guid="_k44Di2DiEeOXirad8gzrtg" label="Department Type" name="DepartmentType"/>
                   <allocation-method method="ANY"/>
                   <position guid="_5lk8EGDiEeOXirad8gzrtg" ideal-number="1" label="Chief Executive" name="ChiefExecutive">
                      <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                      <allocation-method method="ANY"/>
                   </position>
                   <org-unit guid="_Y9FC0HnvEeOXwIHqtnmxgg" label="Board Of Directors" name="BoardOfDirectors">
                      <schema-type guid="_k44Di2DiEeOXirad8gzrtg" label="Department Type" name="DepartmentType"/>
                      <allocation-method method="ANY"/>
                      <position guid="_aPaNYHnvEeOXwIHqtnmxgg" ideal-number="1" label="Director" name="Director">
                         <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                         <allocation-method method="ANY"/>
                      </position>
     </org-unit>
                </org-unit>
                <org-unit guid="_6dgpoGDiEeOXirad8gzrtg" label="Branches" name="Branches">
                   <allocation-method method="ANY"/>
                   <extension-point complete="false" model-template="_sfuqsGDjEeOXirad8gzrtg"
                       ldap-alias="" ldap-attribute="" query="" search-scope="SUBTREE">
                      <instance-id-attr ldap-attribute="" name="Town"/>
                      <instance-id-attr ldap-attribute="" name="County"/>
                      <instance-id-attr ldap-attribute="" name="PostCode"/>
                   </extension-point>
                </org-unit>
             </organization>
             <model-template guid="_sfuqsGDjEeOXirad8gzrtg" label="Branch Office" name="BranchOffice" xmlns="">
                <schema-type guid="_k44Di2DiEeOXirad8gzrtg" label="Department Type" name="DepartmentType"/>
                <allocation-method method="ANY"/>
                <model-position guid="_upo9gGDjEeOXirad8gzrtg" ideal-number="1" label="Branch Manager" name="BranchManager">
                   <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                   <allocation-method method="ANY"/>
                </model-position>
                <model-org-unit guid="_Lk790HwwEeOYlvvBQKpL9g" label="Sales" name="Sales">
                   <schema-type guid="_k44Di2DiEeOXirad8gzrtg" label="Department Type" name="DepartmentType"/>
                   <allocation-method method="ANY"/>
                   <model-position guid="_P3takHwwEeOYlvvBQKpL9g" ideal-number="1" label="Sales Manager" name="SalesManager">
                      <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                      <allocation-method method="ANY"/>
                   </model-position>
                   <model-position guid="_QoZ3sHwwEeOYlvvBQKpL9g" ideal-number="1" label="Account Director" name="AccountDirector">
                      <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                      <allocation-method method="ANY"/>
                   </model-position>
                </model-org-unit>
                <model-org-unit guid="_zyJIYGDjEeOXirad8gzrtg" label="Finance" name="Finance">
                   <schema-type guid="_k44Di2DiEeOXirad8gzrtg" label="Department Type" name="DepartmentType"/>
                   <allocation-method method="ANY"/>
                   <model-position guid="_3OCAcGDjEeOXirad8gzrtg" ideal-number="1" label="Accounts Manager" name="AccountsManager">
                      <schema-type guid="_k44DkWDiEeOXirad8gzrtg" label="Standard Position Type" name="StandardPositionType"/>
                      <allocation-method method="ANY"/>
                   </model-position>
                   <model-position guid="_rNETgGDkEeOXirad8gzrtg" ideal-number="1" label="Accountant" name="Accountant">
                      <allocation-method method="ANY"/>
                   </model-position>
                </model-org-unit>
             </model-template
          </getOrgModelResponse>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
  2. Set the extension point configuration.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:org="http://orgmodel.api.de.bpm.tibco.com">
       <soapenv:Header/>
       <soapenv:Body>
          <org:setExtensionPoints>
             <ext-point model-version="1" ext-point-guid="_6dgpoGDiEeOXirad8gzrtg"
             			ldap-alias="easyAs" base-dn="ou=AllEmployees" query="(objectclass=organizationalUnit)"
             			search-scope="SUBTREE" ldap-attribute="ou">
                <instance-id-attr name="Town" ldap-attribute="location"/>
                <instance-id-attr name="County" ldap-attribute="county"/>
                <instance-id-attr name="PostCode" ldap-attribute="zip"/>
             </ext-point>
          </org:setExtensionPoints>
       </soapenv:Body>
    </soapenv:Envelope>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Header/>
       <SOAP-ENV:Body>
          <setExtensionPointsResponse xmlns="http://orgmodel.api.de.bpm.tibco.com"/>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>