|
ワークフローガイド |
この章では、WorkflowTag.jarに含まれているJSPタグを使用する方法について説明します。
基礎的な情報については、『コア開発ガイド』の
Directorタグライブラリの使用に関する章を参照してください。
説明
このタグをネストしているタグに渡されるワークアイテム宛先を指定します。 このタグは、ネストされているタグで、 別のタグの子としてのみ使用できます。
親タグには、signature addAddressee(String x)メソッドが必要です。 addresseeタグは、親タグでこのメソッドを呼び出し、宛先を渡します。 このコードは、親タグ内の各addresseeタグに対して1回実行されます。
getWorklistを参照してください。
構文
<prefix:addressee>addressee</>
例
この例では、getWorklist親タグにネストされているaddresseeタグを指定する方法を示します。
<epwf:getWorkList id="example" iterate="true" > <epwf:addressee>user1</epwf:addressee> <epwf:addressee>user2</epwf:addressee> Activity = <%=activity%><br/> workitemid = <%=workitemid%><br/> name = <%=name%><br/> lockedby = <%=lockedby%><br/> message = <%=message%><br/> </epwf:getWorkList>
説明
プロパティ名、値、およびタイプに対して指定した値を使用して、ワークアイテムまたはドキュメントのEbiPropertyオブジェクトを作成します。
docNameを指定すると、プロパティオブジェクトがドキュメントに対して作成されます。 EbiPropertyオブジェクトは、newPropertyというデフォルトのスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでcreateProperty()のバージョンをラップします。
構文
<prefix:createProperty workitemID="workitemID" docName="docName" propName="propName" value="value" type= "type" immutable="immutable" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
docName |
なし |
あり |
プロパティを追加する先のドキュメントの名前 |
|
propName |
あり |
あり |
プロパティの名前 |
|
value |
あり |
あり |
プロパティ値 |
|
type |
あり |
あり |
プロパティ値のデータタイプ(有効なエントリについては、APIのドキュメントの EbiPropertyを参照) |
|
immutable |
なし |
あり |
プロパティが不変であるかどうかを指定する、trueまたはfalseのブール値(デフォルトはfalse) |
|
id |
なし |
なし |
返されたプロパティオブジェクトを保存する変数の名前(デフォルトの名前はnewProperty) |
例
この例では、ワークアイテムプロパティを作成し、返されたオブジェクトからプロパティ名を取得します。
<epwf:createProperty id="example" workitemID="<%=wid.getWorkitem().getId()%>" propName="wiproperty2" value="testvalue" type="string" / >
<% com.sssw.wf.api.EbiProperty prop = (com.sssw.wf.api.EbiProperty)pageContext.getAttribute("example");%><br/>
<%=prop.getPropertyName()%>
説明
次のアクティビティにワークアイテムを転送し、転送が成功したかどうかを表すブール値を返します。
値は、wi_forwardというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiQueueDelegateインタフェースでforward()メソッドをラップします。
構文
<prefix:forwardWorkitem workitemID="workitemID" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
現在のワークアイテムID |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はwi_forward) |
例
<epwf:forwardWorkitem id="forward" workitemID=\q<%=x%>\q />
<%=pageContext.getAttribute("forward") %>
説明
指定したワークアイテムIDのドキュメントを返します。 デフォルトでは、org.w3c.dom. Documentタイプのオブジェクトとしてドキュメントを返します。 returnDOMがfalseに設定されている場合、ドキュメントは文字列として返されます。 値は、wi_documentというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでgetDocument()をラップします。
構文
<prefix:getDocument workitemID="workitemID" docName="docName" returnDOM="returnDOM" id="id"/>
例
この例では、ワークアイテムドキュメントを文字列として取得します。
<epwf:getDocument id="example" workitemID="<%=wid.getWorkitem().getId()%>" docName="mydoc1" returnDOM="false" />
<%=pageContext.getAttribute("example")%>
説明
使用可能なワークフロープロセスのリストを取得します。 また、DOM、またはタグ内で設定できる変数として、リストを返します。 結果は、processListというスクリプト変数を使用して、またはid属性で設定した値によって返されます。
タグオプション
returnDOMをtrue (DOMを返す)またはfalse (文字列XMLを返す)に設定します。 この場合、iterate属性はfalseでなければなりません。
または
iterateをtrueに設定し、本文タグの変数を使用して結果を返します。 この場合、returnDOMは使用されません。
このタグは、EbiWorkflowEngineDelegateインタフェースでgetProcessDefinitions()メソッドをラップします。
構文
<prefix:getProcessList returnDOM="returnDOM" iterate="iterate" id="id"/>
例
この例では、繰り返されたネストされている変数を使用してプロセスリストを取得します。
<epwf:getProcessList iterate="true" >
ProcessID = <%=processid%><br/>
Name = <%=name%><br/>
</epwf:getProcessList>
説明
ワークアイテムまたはドキュメント(docNameが指定されている場合)に対するEbiPropertyタイプのプロパティオブジェクトを取得します。 値は、propertyというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでgetProperty()メソッドをラップします。
構文
<prefix:getProperty workitemID="workitemID" propName="propName" docName="docName" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
propName |
あり |
あり |
プロパティの名前 |
|
docName |
なし |
あり |
これがドキュメントプロパティの場合は、プロパティに関連付けられているドキュメントの名前 |
|
id |
なし |
なし |
返されたプロパティオブジェクトを保存する変数の名前(デフォルトの名前はproperty) |
例
この例では、返されたオブジェクトからワークアイテムプロパティ名と値を取得します。
<epwf:getProperty id="example" workitemID="<%=wid.getWorkitem().getId()%>" propName="wiproperty" />
<%=((com.sssw.wf.api.EbiProperty)pageContext.getAttribute("example")).getPropertyName()%> = name
<%=((com.sssw.wf.api.EbiProperty)pageContext.getAttribute("example")).getPropertyValue()%> = value
説明
特定のワークアイテムまたは関連ドキュメント、あるいはその両方に対するEbiPropertyオブジェクトのリスト(java.util.List)を返します。 forWorkitem属性またはforDocuments属性のいずれかは、trueに設定する必要があります。 両方をtrueに設定した場合、ワークアイテムおよびすべての関連ドキュメントに対してすべてのプロパティが返されます。 リストは、propertyListというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、指定した属性に基づいて、EbiWorkitemDelegateインタフェースでgetAllProperties()、getWorkitemProperties、およびgetDocumentPropertiesをラップします。
構文
<prefix:getPropertyList workitemID="workitemID" forWorkitem="forWorkitem" forDocuments="forDocuments" docName="docName" iterate="iterate" id="id"/>
例
繰り返されたネストされている変数を使用した場合のプロパティリスト:
<epwf:getPropertyList id="example1" iterate="true" workitemID="<%=wid.getWorkitem().getId()%>" forWorkitem="true" forDocuments="true" > name = <%=name%><br/> value = <%=value%><br/> docName = <%=docName%><br/> </epwf:getPropertyList>
<epwf:getPropertyList id="example2" iterate="false" workitemID="<%=wid.getWorkitem().getId()%>" forWorkitem="true" forDocuments="true" /> <%=example2.size()%> = size
説明
ワークフローエンジンのステータスを確認します。 そして、running、shutdown、またはsuspendedという語を返します。 値は、queueStatusというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiQueueDelgateインタフェースでgetQueueStatusをラップします。
構文
<prefix:getQueueStatus id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はqueueStatus) |
例
<epwf:getQueueStatus id="queue" />
<%=pageContext.getAttribute("queue") %>
説明
指定したworkitemIDに対するEbiWorkitemDelegateタイプのオブジェクトを返します。 値は、workitemというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiQueueDelgateインタフェースでgetWorkitem()をラップします。
構文
<prefix:getWorkitem workitemID="workitemID" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はworkitem) |
例
<epwf:getWorkitem id="get" workitemID=\q<%=x%>\q />
<%=pageContext.getAttribute("get") %>
説明
指定したキューからワークアイテムのリストを取得します。 結果は、workListというデフォルトのスクリプト変数を使用して、またはid属性で設定した値によって返されます。
ワークアイテム宛先は、 addresseeタグを使用して、このタグに埋め込むことができます。
このタグは、EbiQueueDelegateインタフェースでgetWorklist()のバージョンをラップします。 使用されるメソッドバージョンは、指定したタグ属性によって異なります。
タグオプション
|
手順 |
操作内容 |
|---|---|
|
1 |
最初に、「次のいずれか」が真であることを確認します。
|
|
2 |
その後、「次のいずれか」を実行します。 |
getWorklistタグは、EbiQueueDelegateインタフェースでgetWorklist()のバージョンをラップします。 使用されるメソッドバージョンは、指定したタグ属性によって異なります。
構文
<prefix:getWorklist activity="activity" name="name" returnDOM="returnDOM" returnList="returnList" iterate= "iterate" priority="priority" ignoreSuspended="ignoreSuspended" id="id"/>
例
繰り返されたネストされている変数を使用した場合のワークリスト:
<epwf:getWorkList iterate="true" >
Activity = <%=activity%><br/>
Name = <%=name%><br/>
Workitemid = <%=workitemid%><br/>
<%! String x;%>
<% x = (String) pageContext.getAttribute("workitemid"); %>
Message = <%=message%><br/>
Lockedby = <%=lockedby%><br/>
</epwf:getWorkList>
<epwf:getWorkList id="list" iterate="false" returnDOM="true" />
// access the DOM
xml string = <%org.w3c.dom.Document doc = (org.w3c.dom.Document) pageContext.getAttribute("list");%>
<%=doc.getFirstChild().getNodeName()%>
<epwf:getWorkList id="list2" returnList="true" />
<% for (int x=0;x<list2.size();x++){
// parse the List
com.sssw.wf.client.EbiWorkitemDelegate wid = (com.sssw.wf.client.EbiWorkitemDelegate) list2.get(x); %>
Wid <%=x%> activity name = <%=wid.getActivityName()%>
<% } %>
<epwf:getWorkList id="list3" iterate="false" returnDOM="false" />
xml string = <%=(String) pageContext.getAttribute("list3")%>
埋め込まれた addresseeタグを使用した場合のワークリスト:
<epwf:getWorkList iterate="true" > <epwf:addressee>sample</epwf:addressee> Activity = <%=activity%><br/> workitemid = <%=workitemid%><br/> name = <%=name%><br/> lockedby = <%=lockedby%><br/> message = <%=message%><br/> </epwf:getWorkList>
説明
ワークアイテムに対してドキュメントが存在するかどうかを確認し、ブール値を返します。 値は、hasDocumentというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでhasDocument()をラップします。
構文
<prefix:hasDocument workitemID="workitemID" docName="docName" returnDOM="returnDOM" id="id"/>
例
<epwf:hasDocument workitemID="<%=wid.getWorkitem().getId()%>" docName="mydocument" />
<%=pageContext.getAttribute("hasDocument")%>
説明
ワークアイテムまたはドキュメント(docNameが指定されている場合)に対してプロパティが存在するかどうかを確認します。 そして、ブール値を返します。 値は、hasPropertyというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでhasProperty()およびhasDocumentプロパティをラップします。
構文
<prefix:hasProperty workitemID="workitemID" docName="docName" propName="propName" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
docName |
なし |
あり |
確認するプロパティのドキュメントの名前(ドキュメントプロパティに対してのみ使用) |
|
propName |
あり |
あり |
プロパティの名前 |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はhasProperty) |
例
<epwf:hasProperty id="status" workitemID="<%=wid.getWorkitem().getId()%>" propName="wiproperty2" />
<%=pageContext.getAttribute("status")%>
説明
ワークアイテムドキュメントがロックされているかどうかを確認します。userID属性が設定されている場合は、特定のユーザによってドキュメントがロックされているかどうかも確認します。 そして、ブール値を返します。 値は、doc_islockedというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでisDocumentLocked()またはisDocumentLockedBy()をラップします。
構文
<prefix:isDocumentLocked workitemID="workitemID" docName="docName" userID ="userID" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
docName |
あり |
あり |
ドキュメントの名前 |
|
userID |
なし |
あり |
ユーザID (設定しなかった場合、タグはドキュメントステータスのみを確認する) |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はdoc_isLocked) |
例
<epwf:isDocumentLocked id="doclocked" workitemID=\q<%=x%>\q docName="doc1" />
<%=pageContext.getAttribute("doclocked") %> <br/>
説明
ワークアイテムがロックされているかどうかを確認します。userID属性が設定されている場合は、特定のユーザによってワークアイテムがロックされているかどうかも確認します。 そして、ブール値を返します。 値は、wi_islockedというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkitemDelegateインタフェースでisLocked()またはisLockedBy()をラップします。
構文
<prefix:isWorkitemLocked workitemID="workitemID" userID ="userID" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
userID |
なし |
あり |
確認するユーザID (設定しなかった場合、タグはワークアイテムステータスのみを確認する) |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はwi_isLocked) |
例
<epwf:isWorkitemLocked id="worklock" workitemID=\q<%=x%>\q />
<%=pageContext.getAttribute("worklock") %> <br/>
説明
指定したEbiPropertyオブジェクトを使用して、ワークアイテム(または、docNameが指定されている場合はドキュメント)に対する既存のEbiPropertyオブジェクトを保存します。 そして、成功または失敗を表すブール値を返します。 値は、setPropertyというスクリプト変数またはid属性で指定した名前のスクリプト変数で保存されます。
userID属性を指定しなかった場合、現在のユーザが使用されます。
このタグは、EbiWorkitemDelegateインタフェースでsetProperty()およびsetDocument Property()をラップします。
構文
<prefix:setProperty workitemID="workitemID" property="property" forDocument="forDocument" userID ="userID" id="id"/>
|
属性 |
必要性 |
要求時における式の値のサポート |
説明 |
|---|---|---|---|
|
workitemID |
あり |
あり |
ワークアイテムID |
|
property |
あり |
あり |
追加するプロパティの名前 |
|
forDocument |
なし |
あり |
プロパティがドキュメントプロパティであるかどうかを指定するブール値(デフォルトはfalse) 注記: プロパティは、指定したドキュメントに以前に関連付けられている必要があります( createPropertyを参照)。 |
|
userID |
なし |
あり |
ユーザID 設定した場合、タグは、ユーザに対するドキュメントプロパティまたはワークアイテムプロパティを設定します。設定しなかった場合は、現在のコンテキストを使用します。 |
|
id |
なし |
なし |
戻り値を保存する変数の名前(デフォルトの名前はsetProperty) |
例
この例では、ページで指定した属性からプロパティを設定します。
<epwf:setProperty id="set" workitemID="<%=wid.getWorkitem().getId()%>" property="<%=(com.sssw.wf.api.EbiProperty)pageContext.getAttribute("myatt")%>" / >
<%=pageContext.getAttribute("set")%>
説明
指定したprocessIDでワークフロープロセスを開始します。 docName属性と、ドキュメントを表す次のいずれかの属性が指定されている場合は、そのドキュメントでプロセスを開始します。
|
値 |
意味 |
|---|---|
|
0 |
成功 |
|
-1 |
エンジンが実行中ではない(プロセスを開始できない) |
|
-2 |
プロセス定義が見つからない |
|
-3 |
プロセスが一時停止されている |
値は、processStartedというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
このタグは、EbiWorkflowEngineDelegateインタフェースでstartProcess()をラップします。
構文
<prefix:startProcess processID="processID" docName="docName" document="document" docstring="docstring" url ="url" id="id"/>
例
<epwf:startProcess id ="start" processID="c373e9ea737c902a8f7af0aa8c836fd6" />
<%=pageContext.getAttribute("start") %>
説明
指定したワークアイテムIDとドキュメント名に対するドキュメントを更新または追加し、成功を表すブール値を返します。 戻り値は、wi_documentというスクリプト変数または指定したidのスクリプト変数で保存されます。
新しいドキュメントを追加するには、addMode属性をtrueに設定します。 既存のドキュメントを更新するには、false (デフォルト)に設定します。
userID属性を指定しなかった場合、現在のユーザが使用されます。
このタグは、EbiWorkitemDelegateインタフェースでaddDocument()およびupdateDocument()をラップします。
構文
<prefix:updateDocument workitemID="workitemID" docName="docName" document="document" identifier="identifier" url="url" userID="userID" addMode="addMode" id="id"/>
例
<epwf:updateDocument id="doc1" workitemID="<%=wid.getWorkitem().getId()%>" docName="identifier" addMode="true" identifier="myidentifier" / >
<%= pageContext.getAttribute("doc1")%>
// lock the document first
<epwf:workitemLock workitemID="<%=wid.getWorkitem().getId()%>" docName="identifier" documentLock="true" action="lock"/>
// update the document
<epwf:updateDocument id="doc2" workitemID="<%=wid.getWorkitem().getId()%>" docName="identifiertest3" identifier="newidentifier" / >
<%=pageContext.getAttribute("doc2")%>
<epwf:updateDocument id="doc3" workitemID="<%=wid.getWorkitem().getId()%>" docName="string1" addMode="true" document="<main><node1>this is my document</node1></main>" / >
<%= pageContext.getAttribute("doc3")%>
説明
ワークアイテムまたはワークアイテムに関連付けられているドキュメントをロックまたはロック解除します(action属性は、lockまたはunlockに設定する必要があります)。 そして、成功を表すブール値を返します。 値は、wilockedというスクリプト変数またはid属性で指定した名前のスクリプト変数で返されます。
documentLockをtrueに設定した場合は、docNameを指定する必要があります。
userID属性を指定しなかった場合、オブジェクトは、現在のユーザを使用してロックまたはロック解除されます。
このタグは、EbiWorkitemDelegateインタフェースでlock()、unlock()、lockDocument()、およびunlockDocument()をラップします。
構文
<prefix:workitemLock workitemID="workitemID" action="action" workitemLock="workitemLock" documentLock="documentLock" docName="docName" userID="userID" id="id"/>
例
<epwf:workitemLock id="wilock" workitemID=\q<%=x%>\q action="lock" workitemLock="true" />
<%=pageContext.getAttribute("wilock") %> <br/>
<% get.addDocument("test", "ID" , "sample"); %>
<epwf:workitemLock id="doclock" workitemID=\q<%=x%>\q action="lock" workitemLock="false" documentLock="true" docName="test" />
<%=pageContext.getAttribute("doclock") %>
<epwf:workitemLock id="wiunlock" workitemID=\q<%=x%>\q action="unlock" workitemLock="true" />
<%=pageContext.getAttribute("wiunlock") %> <br/>
<%-- get.addDocument("test1456", "ID" , "sample"); --%>
<epwf:workitemLock id="docunlock" workitemID=\q<%=x%>\q action="unlock" workitemLock="false" documentLock="true" docName="test" />
<%=pageContext.getAttribute("docunlock") %>
|
ワークフローガイド |
Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.