Configuring people substitution
This topic describes how to configure people substitution for Business Process Choreographer.
Before you begin
About this task
Procedure
- Add the attributes, "isAbsent", "substitutes", "substitutionStartDate",
and "substitutionEndDate" to the VMM definition
for PersonAccount:
- Locate the wimxmlextension.xml file:
- profile_root/config/cells/cell_name/wim/model/wimxmlextension.xml
- profile_root\config\cells\cell_name\wim\model\wimxmlextension.xml
- Make a backup copy of the wimxmlextension.xml file.
- Edit the original copy of the wimxmlextension.xml file,
and make sure that it contains the following definitions, which add
the two attributes that are needed for user substitution to the PersonAccount entity
type:
If you are using a file registry, fileRegistry.xml, skip to step 4.<wim:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="STRING" multiValued="false" propertyName="isAbsent"> <wim:applicableEntityTypeNames>PersonAccount </wim:applicableEntityTypeNames> </wim:propertySchema> <wim:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="STRING" multiValued="true" propertyName="substitutes"> <wim:applicableEntityTypeNames>PersonAccount </wim:applicableEntityTypeNames> </wim:propertySchema> <wim:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="STRING" multiValued="false" propertyName="substitutionStartDate"> <wim:applicableEntityTypeNames>PersonAccount </wim:applicableEntityTypeNames> </wim:propertySchema> <wim:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="STRING" multiValued="false" propertyName="substitutionEndDate"> <wim:applicableEntityTypeNames>PersonAccount </wim:applicableEntityTypeNames> </wim:propertySchema>
- Locate the wimxmlextension.xml file:
- Set up the property extension repository. For
more information about setting up a property extension repository,
see Configuring a property extension repository in a
federated repository configuration.
- Make sure that a database is available to store the property extensions.
- Make sure that the JDBC driver class is available on the server class path. Click Environment > WebSphere variables to check. If necessary, add the DataServer JDBC driver to the class path. For DB2®, add db2jcc4.jar , db2jcc_license_cu.jar, and db2jcc_license_cisuz.jar to the server's class path, and click Apply > Save
- Configure a DB2 Universal JDBC driver provider and type-4 data source for VMM using the administrative console. Set the webSphereDefaultIsolationLevel custom property for the data source to the value 2. For more information about changing the default isolation level, see Changing the default isolation level for non-CMP applications and describing how to do so using a new custom property webSphereDefaultIsolationLevel.
- Restart the server.
- Make a backup copy of the wimlaproperties.xml file.
- install_root/etc/wim/setup/wimlaproperties.xml
- install_root\etc\wim\setup
- Edit the original copy of the wimlaproperties.xml file,
and add the following definitions:
<wimprop:property wimPropertyName="isAbsent" dataType="String" valueLength="128" multiValued="false"> <wimprop:applicableEntityName> <wimprop:entityName>PersonAccount</wimprop:entityName> </wimprop:applicableEntityName> </wimprop:property> <wimprop:property wimPropertyName="substitutes" dataType="String" valueLength="128" multiValued="true"> <wimprop:applicableEntityName> <wimprop:entityName>PersonAccount</wimprop:entityName> </wimprop:applicableEntityName> </wimprop:property> <wimprop:property wimPropertyName="substitutionStartDate" dataType="String" valueLength="128" multiValued="false"> <wimprop:applicableEntityName> <wimprop:entityName>PersonAccount</wimprop:entityName> </wimprop:applicableEntityName> </wimprop:property> <wimprop:property wimPropertyName="substitutionEndDate" dataType="String" valueLength="128" multiValued="false"> <wimprop:applicableEntityName> <wimprop:entityName>PersonAccount</wimprop:entityName> </wimprop:applicableEntityName> </wimprop:property>
- Make sure that the application server (or in a network deployment environment, the deployment manager) is running. Be aware not to use the -conntype NONE option for the wsadmin utility.
- Use the VMM administrative task setupIdMgrPropertyExtensionRepositoryTables to
create the substitution properties in the Property Extension Repository
database. For more details, see Setting up an entry mapping
repository, a property extension repository, or a custom registry
database repository using wsadmin commands. For example, using a DB2 database
on a Windows platform:
For example, using a DB2 database on a Linux or UNIX platform:$AdminTask setupIdMgrPropertyExtensionRepositoryTables { -reportSqlError true -schemaLocation install_root\etc\wim\setup -laPropXML install_root\etc\wim\setup\wimlaproperties.xml -databaseType db2 -dbURL jdbc:DB2://host:port/name -dbDriver com.ibm.db2.jcc.DB2Driver -dbAdminId userID -dbAdminPassword password }
Where host is the host name of the database server, port is the service port for the DB2 instance, and name is the name of the database, and userID and password provide database administrator rights.$AdminTask setupIdMgrPropertyExtensionRepositoryTables { -reportSqlError true -schemaLocation install_root/etc/wim/setup -laPropXML install_root/etc/wim/setup/wimlaproperties.xml -databaseType db2 -dbURL jdbc:DB2://host:port/name -dbDriver com.ibm.db2.jcc.DB2Driver -dbAdminId userID -dbAdminPassword password }
- If you are using a Lightweight Directory Access Protocol
(LDAP) user repository, locate the wimconfig.xml file.
- profile_root/config/cells/cellName/wim/config/wimconfig.xml
- profile_root\config\cells\cellName\wim\config\wimconfig.xml
<config:repositories xsi:type="config:LdapRepositoryType" adapterClassName="com.ibm.ws.wim.adapter.ldap.LdapAdapter" id="ldaprepo1" ...> ... <config:attributeConfiguration> <config:propertiesNotSupported name="isAbsent"/> <config:propertiesNotSupported name="substitutes"/> <config:propertiesNotSupported name="substitutionEndDate"/> <config:propertiesNotSupported name="substitutionStartDate"/> </config:attributeConfiguration>
- Activate the extension property
repository:
- Using the setIdMgrPropertyExtensionRepository command.
For more details, see Setting up an entry mapping
repository, a property extension repository, or a custom registry
database repository using wsadmin commands.
For example, using a DB2 database named VMMDB,
a data source named VMMDS:
$AdminTask setIdMgrPropertyExtensionRepository { -dataSourceName jdbc/VMMDS -databaseType db2 -dbURL jdbc:DB2://host:port/VMMDB -dbAdminId userID -dbAdminPassword password -JDBCDriverClass com.ibm.db2.jcc.DB2Driver -entityRetrievalLimit 10 }
- Verify that the wimconfig.xml file contains
an entry similar to the following example:
<config:propertyExtensionRepository adapterClassName="com.ibm.ws.wim.lookaside.LookasideAdapter" id="LA" databaseType="db2" dataSourceName="jdbc/VMMDS" dbAdminId="userID" dbAdminPassword="{xor}PasswordXOR" dbURL="jdbc:DB2://host:port/VMMDB" entityRetrievalLimit="10" JDBCDriverClass="com.ibm.db2.jcc.DB2Driver"/>>
- Using the setIdMgrPropertyExtensionRepository command.
For more details, see Setting up an entry mapping
repository, a property extension repository, or a custom registry
database repository using wsadmin commands.
For example, using a DB2 database named VMMDB,
a data source named VMMDS:
- If you use an LDAP schema to hold the substitution
information: It may or may not already have definitions
for "isAbsent", "substitutes", "substitutionStartDate",
and "substitutionEndDate" (possibly with different
names). Whether you have existing definitions, or you will create
new ones, make sure the following items are set:
- The LDAP directory must allow write operations.
- The attribute for absence information ("isAbsent") must be of type Boolean or a String.
- The attribute that defines who the person can substitute for ("substitutes") must be of type String, multi-valued, and permit a length up to 128 characters.
- If your existing or chosen attribute names are not "isAbsent", "substitutes", "substitutionStartDate", and "substitutionEndDate", you must define your attribute names in the administrative console by clicking Servers > Clusters > WebSphere application server clusters > cluster_name, then on the Configuration tab, in the Business Process Manager section, expand Business Process Choreographer, and click Human Task Manager, on the Configuration tab select Custom properties then set the names for the custom properties Substitution.SubstitutesAttribute, Substitution.AbsenceAttribute, Substitution.StartDateAttribute, and Substitution.EndDateAttribute.
- Restart the server.
- Enable substitution in the Human Task Manager:
- Servers > Clusters > WebSphere application server clusters > cluster_name, then on the Configuration tab, in the Business Process Manager section, expand Business Process Choreographer, and click Human Task Manager, and click Human Task Manager, then either Runtime or Configuration.
- To enable substitution, select Enable substitution.
- If non-administrators are allowed to perform substitution
for other users, clear the Restrict substitute management
to administrators option. Note: This settings does not affect the ability of users to change substitution for themselves.
- Click Apply.
- If you selected Configuration in step 5.a, restart the server to activate the substitution settings.
- If you have problems with any of these steps, refer to Troubleshooting people assignment.