|
ライブラリ サービスが有効にした WLP リポジトリを使用する場合、ユーザがリポジトリにコンテンツを追加および公開するワークフロー プロセスを強制できます。WLP リポジトリには、1 つのデフォルト コンテンツ ワークフローがあります。ビジネス要件に合わせて追加のコンテンツ ワークフローを作成したり、コンテンツ ワークフローをカスタマイズできます。
たとえば、コンテンツをポータルに公開する前に行うレビュー プロセスの範囲をコンテンツ ワークフローで指定できます。また、コンテンツが公開されると管理者に電子メールが送信されるようにコンテンツ ワークフローをカスタマイズできます。
リポジトリにいつでも新しいワークフローを追加できます。ただし、カスタム ワークフローを使用する場合、コンテンツ タイプを作成する前にリポジトリのワークフローを作成することをお勧めします。
コンテンツ ワークフローを使用できるのは、WLP リポジトリがライブラリ サービス対応である場合のみです。ライブラリ サービスの詳細については、「WLP リポジトリへのコンテンツの追加」を参照してください。
ライブラリ サービスが有効になっている WLP リポジトリで作成されたすべてのコンテンツは、カスタマイズされたワークフローを実装した場合を除き、デフォルト コンテンツ ワークフローを使用します。図 5-1 に示すように、デフォルト コンテンツ ワークフローでは、下書き、レビュー準備完了、拒否済み、公開済み、および廃棄済み というステータスがあります。デフォルトのワークフローでは、委託管理を使用することで、ユーザがコンテンツを違うステータスに移行するための不可と許可を切り替えられます。ただし、訪問者資格が使用できます。委託管理または訪問者資格のいずれかを使用することをお勧めします。両方使用することはできません。

| 注意 : | ロールに割り当てる機能によって、ユーザ ロールがコンテンツ ワークフローに参加する方法が決まります。たとえば、ロールに正しい機能が付与されていない場合、ユーザがコンテンツのステータスを公開済みまたは廃棄済みにすることはできません。 |
ユーザは、ライブラリ サービスが有効化になっているリポジトリでコンテンツをチェックインするときに利用可能なステータスを選択します。図 5-2 は、デフォルトのコンテンツ ワークフローで利用できるステータスの例を示します。

デフォルト ワークフロー内の各移行は、それぞれ異なる管理能力が必要です。コンテンツ管理に対する委託管理の機能の詳細な説明については、『WebLogic Portal のセキュリティ ガイド』の「コンテンツ管理リソースへの委託管理の設定」および「コンテンツ管理リソースからの委託管理の削除および編集」を参照してください。
表 5-1 は、デフォルト コンテンツ ワークフローのステータス、および違うステータスに移行するために必要な訪問者の資格または委託管理機能を示します。
コンテンツ ワークフローは、プロセス情報を格納する XML ファイルです。コンテンツ ワークフローをリポジトリに追加すると、定義されたワークフローをコンテンツと関連付けできます。以下の操作を行ってコンテンツ ワークフローの作成と追加を行います。
必要に応じてコンテンツ ワークフローをカスタマイズできます。以下の節では、カスタマイズされたコンテンツ ワークフローの例を示します。
コンテンツ ワークフロー ドキュメントを作成または変更する場合、次の点に留意してください。
| 注意 : | ワークフローからコンテンツ項目の転送方法の詳細については、「割り当て済み項目について」を参照してください。 |
<from-status> および <to-status> 要素 で -1 を指定することで示します。int) 4 を使用する必要がある場合にコンテンツの公開を行うために特に重要です。ワークフロー アクション クラスでは、この番号がバージョン管理のために必要です。整数 100 – 999 を使用して、カスタマイズされたワークフロー内の新しいステータス ID を追加します。APP-INF/classes) またはシステム クラスパスにあるカスタム ワークフロー アクションを挿入する必要があります。ワークフロー アクションはエンタープライズ アプリケーションで共有される場合、システム クラスパスにも挿入されます。クラスでは、コンテンツ管理を使用しない場合、システム クラスパスのみを使用できます。
新しいクラスを記述する最良の方法とは、Workshop for WebLogic 内の EJB またはユーティリティ プロジェクトが使用されます。これらの方法を使用して、必要に応じて、クラスが自動的にコンパイルおよび再デプロイし、エンタープライズ クラスパスにクラスを追加する必要がない。エンタープライズ アプリケーション クラスパス (APP-INF/classes) にあるカスタム ワークフロー アクションを挿入する必要があります。EJB またはユーティリティ プロジェクトの詳細については、『Workshop for WebLogic 製品ファミリ ドキュメント』の「チュートリアル : エンタープライズ JavaBean の構築」および「新規 Java コンポーネント モジュール ([ユーティリティ プロジェクト]) ウィザード」を参照してください。
カスタム ワークフローを作成して関連付けするまで、リポジトリ内のすべてのコンテンツ (フォルダ、コンテンツ、およびコンテンツ タイプ) はデフォルト ワークフローを使用します。
ワークフローをコンテンツに関連付けするとき、次の継承ルールが適用されます。
| 注意 : | コンテンツ管理については、Web アプリケーション スコープの訪問者資格ロールを使わず、エンタープライズ アプリケーション スコープの訪問者資格ロールを使用する必要がある。ポータル リソースに関する訪問者の資格ロールの詳細については、『セキュリティ ガイド』の「ロールベースの認可の設定」を参照してください。 |
表 5-2 に示すように、デフォルトのコンテンツ ワークフロー ドキュメントでは、<capabilityConstraint> 要素の値を変更して、委託管理の代わりに訪問者資格を使用できます。次に例を示します。
ワークフロー ステータス名を変更する場合 (たとえば、図 5-2)、デフォルト コンテンツ ワークフロー内のステータス ID の値が変更されます (コード リスト 5-1)。たとえば、<status id="2" text="Ready" /> を <status id="2" text="Submitted" /> に変更します。
| ヒント : | デフォルト コンテンツ ワークフローは多言語化されていません。コンテンツ ワークフローをローカライズする場合、XML 要素は英語のままで残す必要があります。要素の値はローカライズできます。たとえば、<status id = “3” text=”publicado”>。 |
ステータスを削除するために、ステータスからステータス ID および移行が削除されます。たとえば、デフォルトのコンテンツ ワークフロー (コード リスト 5-1) から廃棄済みステータスを削除する場合。
<status id> を削除します。<status id="5" text="Retired" />
<to-status> 要素を削除します。たとえば、下書きから廃棄済みへ移行を行うには、太字で表示されている XML が削除されます。<transition>
<from-status id="1"/>
<to-status id="2">
<action class="com.bea.content.virtual.workflow.ReadyAction"/>
</to-status>
<to-status id="4">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.PublishAction"/>
</to-status><to-status id="5"></transition>
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.RetireAction"/>
</to-status>
<transition>
<from-status id="5"/>
<to-status id="1">
<action class="com.bea.content.virtual.workflow.DraftAction"/>
</to-status>
<to-status id="2">
<action class="com.bea.content.virtual.workflow.ReadyAction"/>
</to-status>
<to-status id="4">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.PublishAction"/>
</to-status>
</transition>
| ヒント : | デフォルト ステータス用にデフォルト ID (1 – 4) を保持します。「コンテンツ ワークフロー ドキュメントの作成または変更のガイドライン」を参照してください。 |
移行を変更する場合、デフォルトのワークフロー ドキュメントから移行を追加または削除する必要がある。表 5-3 は、各ステータスのデフォルトの移行を示します。
デフォルトのワークフローでは、別のステータスに異なる機能を割り当てない — 各ステータスの移行には、can_publishが必要です。つまり、記事を承認準備完了として指定した場合、公開することもできます。ビジネス要件については、ライターから出版社への移行に関連付けられたユーザ ロールが変更する場合があります。
機能定数は、com.bea.content.manager.ContentEntitlementHelper クラスに定義されます。詳細については、WebLogic Portal
Javadoc を参照してください。カスタム ワークフローを作成すると、これらの定数の値が必要です。
ワークフロー アクションを作成できる 2 つの方法があります。
WorkflowAction インタフェースを実行するクラスを記述する。詳細については、WebLogic Portal
Javadoc のcom.bea.content.virtual.workflow.WorkflowAction を参照してください。StandardAction クラスを独自のクラスに拡張する。このクラスは、ノードがライターおよび出版社のようなロールに割り当てるために、プログラムから使用できる assignNodeToRoles および assignNodeToUser というメソッドを定義します。詳細については、WebLogic Portal
Javadoc の com.bea.content.virtual.workflow.StandardAction を参照してください。
新しいコンテンツ ワークフロー ドキュメントの最も容易な作成方法は、デフォルト コンテンツ ワークフローを利用して新しい文書として保存することです。
| ヒント : | ワークフローは、すべてのリポジトリを影響するので、この操作を安全に実行してデフォルト ワークフローを新しいワークフローにコピーし、テスト用のリポジトリ内の 1 つのフォルダに適用されます。 |
既存のドキュメントを変更して新しいコンテンツ ワークフロー ドキュメントを作成するには、以下の手順を実行します。
| 注意 : | XML エディタには、ワークフロー スキーマだけでなく、そのスキーマによってインポートされるスキーマが読み込まれます。XML ドキュメントに追加できる要素と属性が表示されます。 |
コード リスト 5-1 は、デフォルトのワークフロー ドキュメントを示します。表 5-4 は、コンテンツ ワークフロー XML スキーマの情報を提供します。
| ヒント : | コンテンツ ワークフロー ドキュメントを作成または変更する前にコンテンツ ワークフロー スキーマの内容を把握しています。 |
<?xml version="1.0" encoding="UTF-8"?>
<workflow xmlns="http://schema.workflow.virtual.content.bea.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schema.workflow.virtual.content.bea.com">
<transition>
<from-status id="1"/>
<to-status id="2">
<action class="com.bea.content.virtual.workflow.ReadyAction"/>
</to-status>
<to-status id="4">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.PublishAction"/>
</to-status>
<to-status id="5">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.RetireAction"/>
</to-status>
</transition>
<transition>
<from-status id="2">
<capabilityConstraint>can_publish</capabilityConstraint>
</from-status>
<to-status id="3">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.RejectAction"/>
</to-status>
<to-status id="4">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.PublishAction"/>
</to-status>
<to-status id="5">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.RetireAction"/>
</to-status>
</transition>
<transition>
<from-status id="3"/>
<to-status id="1">
<action class="com.bea.content.virtual.workflow.DraftAction"/>
</to-status>
<to-status id="2">
<action class="com.bea.content.virtual.workflow.ReadyAction"/>
</to-status>
</transition>
<transition>
<from-status id="4"/>
<to-status id="1">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.DraftAction"/>
</to-status>
<to-status id="5">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.RetireAction"/>
</to-status>
</transition>
<transition>
<from-status id="5"/>
<to-status id="1">
<action class="com.bea.content.virtual.workflow.DraftAction"/>
</to-status>
<to-status id="2">
<action class="com.bea.content.virtual.workflow.ReadyAction"/>
</to-status>
<to-status id="4">
<capabilityConstraint>can_publish</capabilityConstraint>
<action class="com.bea.content.virtual.workflow.PublishAction"/>
</to-status>
</transition>
<!--未定義の移行は、from-status ID で -1 を指定する
ことで示します。ノードのワークフローを変更したとき、ノード
の現在のステータスがこのワークフローで有効な移行の from-status
に一致しない場合に使用します。 -->
<transition>
<from-status id="-1"/>
<to-status id="1">
<action class="com.bea.content.virtual.workflow.DraftAction"/>
</to-status>
</transition>
<!--番号 1 - 5 はデフォルトのコンテンツ ワークフロー用に予約されています。
カスタマイズされたワークフロー内では、ステータス ID 番号として 100 - 999
の数字を使用することがベスト プラクティスです。 -->
<beginStatus id="1" />
<status id="1" text="Draft" />
<status id="2" text="Ready" />
<status id="3" text="Rejected" />
<status id="4" text="Published" />
<status id="5" text="Retired" />
</workflow>
表 5-4 は、コンテンツ ワークフロー ドキュメントの XML 要素および、それぞれの要素の考慮事項のリストです。コード リスト 5-2 は、スキーマ自体を示します。
|
|||
|
|
|||
|
|
|||
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schema.workflow.virtual.content.bea.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schema.workflow.virtual.content.bea.com" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="workflow">
<xs:annotation>
<xs:documentation>The content workflow</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="transition" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="from-status">
<xs:complexType>
<xs:sequence>
<xs:element name="capabilityConstraint"
type="xs:string" maxOccurs="unbounded" />
<xs:element name="roleConstraint"
type="xs:string" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="to-status" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="action"
maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="class"
type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="capabilityConstraint"
type="xs:string" maxOccurs="unbounded" />
<xs:element name="roleConstraint"
type="xs:string" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="xs:integer"
use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="status" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:integer"
use="required" />
<xs:attribute name="text" type="xs:string"
use="required" />
</xs:complexType>
</xs:element>
<xs:element name="beginStatus" maxOccurs="1">
<xs:complexType>
<xs:attribute name="id" type="xs:integer"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
コンテンツ ワークフローは、コンテンツを関連付ける前に、リポジトリに格納されている必要があります。これは、WebLogic Portal Administration Console の [コンテンツ管理] セクションで行います。
既存のドキュメントを変更して新しいコンテンツ ワークフロー ドキュメントを作成するには、以下の手順を実行します。
リポジトリにコンテンツ ワークフローを追加するには、次の手順を実行します。
ワークフローは、コンテンツ タイプまたはフォルダに関連付けられます。ワークフローは、コンテンツ寄稿者がリポジトリにコンテンツを追加するときに従うプロセスを定義します。
| 注意 : | コンテンツに関連するワークフローの変更をユーザに許可する場合、ワークフロー ドキュメントに未定義ステータスを追加する必要があります。詳細については、「コンテンツ ワークフロー ドキュメントの作成または変更のガイドライン」を参照してください。 |
コンテンツ ワークフローがコンテンツ フォルダに関連付けられている場合は、そのフォルダ内のすべてのコンテンツがワークフローに従います。コンテンツ ワークフローにも関連付けられているコンテンツ タイプをフォルダ内のコンテンツで使用する場合は、コンテンツ タイプのワークフローでフォルダのワークフローがオーバーライドされます。個別のコンテンツ項目のコンテンツ ワークフローも変更できます。コンテンツ ワークフローがコンテンツ項目レベルで設定されている場合、そのコンテンツ ワークフローは他の関連するコンテンツ ワークフローよりも優先されます。
コンテンツ ワークフローをリポジトリに追加したら、コンテンツ フォルダと関連付けできます。コンテンツ ワークフローをフォルダ レベル、またはコンテンツ タイプのみで関連付けできます。
仮想コンテンツ リポジトリ内でコンテンツ ワークフローをフォルダと関連付けするには、次の手順を実行します。
コンテンツ管理 API を使用して、フォルダへのコンテンツ ワークフローを割り当てることができます。
com.bea.content.federated.IWorkflowManager.setNodeWorkflow
(ContentContext context, ID nodeId, ID workflowId)
API の詳細については、WebLogic Portal
Javadoc を参照してください。
コンテンツ タイプを作成する際、コンテンツ タイプへのコンテンツ ワークフローを割り当てることができます。コンテンツ タイプの作成方法については、「コンテンツ タイプ プロパティについて」を参照してください。
コンテンツ ワークフローがコンテンツ タイプに関連付けられている場合は、そのタイプのすべてのコンテンツがワークフローに従います。ただし、次の節「コンテンツ項目へのコンテンツ ワークフローの割り当て」の説明に従って、ユーザは特定のコンテンツ項目のワークフローを変更できます。
WebLogic Portal デフォルト ワークフロー以外のコンテンツ タイプにコンテンツ ワークフローを割り当てる場合、[割り当てられたワークフロー] タブを使用してコンテンツ タイプとワークフローの関連性を確認できます。ワークフローの詳細については、「WLP リポジトリでのコンテンツ ワークフローの管理」を参照してください。
コンテンツ管理 API を使用して、コンテンツ タイプにコンテンツ ワークフローを割り当てることができます。
com.bea.content.federated.IWorkflowManager.setTypeWorkflow
(ContentContext context, ID typeId, ID workflowId)
API の詳細については、WebLogic Portal
Javadoc を参照してください。
コンテンツはフォルダに追加する場合、これはフォルダまたは使用するコンテンツ タイプに関連付けられたコンテンツ ワークフローに自動的に関連付けられます。詳細については、「コンテンツ ワークフローの継承方法」を参照してください。ただし、コンテンツ ワークフローにコンテンツを明示的に割り当てることができます。
デフォルトの WebLogic Portal ワークフローと異なるワークフローをコンテンツに割り当てる場合、[割り当てられたワークフロー] タブを使用してコンテンツ タイプとワークフローの関連性を確認できます。ワークフローの管理の詳細については、「WLP リポジトリでのコンテンツ ワークフローの管理」を参照してください。
コンテンツ管理 API を使用して、コンテンツ 項目へのコンテンツ ワークフローを割り当てることができます。
com.bea.content.federated.IWorkflowManager.setNodeWorkflow
(ContentContext context, ID nodeId, ID workflowId)
API の詳細については、WebLogic Portal
Javadoc を参照してください。
|