Add new index definitions for roles in the DITA CMS

For each role available in the Web Author, you must specify the status that determines when documents are active for the role.

For example, assume the following two roles:
  • writer
  • reviewer

You could decide that, for writers, the documents must be in the Authoring:work status to be displayed in the Web Author; for reviewers, you could decide that the documents must be in the Authoring:review status to be displayed in the Web Author.

Important: You may not need to perform this procedure. To determine if you need to add new index definitions:
  1. Start the DITA CMS and open the TEXTML Administration perspective.
  2. Connect to your server and docbase.
  3. Expand the docbase node to display the Index Definition branch.
  4. Double-click the Index Definition document to open it.
  5. Search for the active_contributor index; is it in the document?
    • No: You must perform this procedure.
    • Yes: Look at the status content of the active_contributor index (see step 7 below); does it match the roles in your deployment?
      • No: You must perform this procedure.
      • Yes: You can skip this procedure.

To implement these status, you create new elements in the active_contributor index definition, as shown below:

  1. Start the DITA CMS and open the TEXTML Administration perspective.
  2. Connect to your server and docbase.
  3. Expand the docbase node to display the Index Definition branch.
  4. Right-click Index Definition and select Lock.
  5. Open the Index Definition Document in an XML editor.
  6. Add the following custom property:
    <index CUSTOMPROPERTY="True" NAME="active_contributor" SYNC="True">
       <!-- System index required by the DITA CMS -->
       <stringindex KEEPEXTRACTEDVALUES="True">
          <elements>
    
          </elements>
       </stringindex>
    </index>
  7. Under <elements> add an <element> for each role, as follows:
    <element DEPTH="INFINITE" XPATH="//assignedTo[parent::node()/@role='role' and //status='status']"/>
    Where:
    • role: Is the role defined in the Web Author. The role names are case-sensitive and must match a role configured in the DITA CMS.
    • status: Is the status at which the document will be visible for that role in the Web Author

    For example:

    <index CUSTOMPROPERTY="True" NAME="active_contributor" SYNC="True">
    <!-- System index required by the DITA CMS -->
       <stringindex KEEPEXTRACTEDVALUES="True">
          <elements>
             <element DEPTH="INFINITE" 
                      XPATH="//assignedTo[parent::node()/@role='Contributor' 
                      and //status='Authoring:contribute']"/>
             <element DEPTH="INFINITE" 
                      XPATH="//assignedTo[parent::node()/@role='Writer' 
                      and //status='Authoring:work']"/>
             <element DEPTH="INFINITE" 
                      XPATH="//assignedTo[parent::node()/@role='Editor' 
                      and //status='Authoring:review']"/>
             <element DEPTH="INFINITE" 
                      XPATH="//assignedTo[parent::node()/@role='Reviewer' 
                      and //status='Authoring:review']"/>
          </elements>
       </stringindex>
    </index>
  8. Save, close, and check in the index definition document.
Note: Documents must also be assigned to the user, otherwise they will not be displayed in the Web Author.