タスク・リスト・タスク・フローに関する注意事項

タスク・リスト・タスク・フローでは、埋込みリージョンの表示動作を制御するためのパラメータを指定します。図32-68に詳細を示します。

図32-68 タスク・リスト

図32-68の説明が続きます
「図32-68 タスク・リスト」の説明

次に、パラメータの一部を示します。

  • federatedMode

  • federatedServers

  • showServerColumn

  • wfCtxID

federatedMode

trueとして渡された場合、タスク・リストはフェデレーテッド・モードで表示されます。タスク・フローをフェデレーテッド・モードで実行するには、フェデレーテッド・サーバーのリストをタスク・フローに渡す必要があります。次のいずれかの方法で、フェデレーテッド・サーバーのリストをタスク・フローに渡すことができます。

  • クライアント構成ファイルwf_client_config.xmlをクラス・パス(EARレベルのAPP-INF\classes\wf_client_config.xmlまたはWebアプリケーションのWEB-INF\classes)に含めます。クライアント構成ファイルには、すべてのフェデレーテッド・サーバーの詳細が含まれています。

  • フェデレーテッド・サーバー・リストを格納したJAXBオブジェクトを作成します。このJAXBオブジェクトは、federatedServersパラメータを使用してタスク・フローに渡すことができます。JAXBオブジェクトの作成方法については、次の「federatedServers」を参照してください。

クライアント構成ファイル(wf_client_config.xml)とJAXBオブジェクトの両方がタスク・フローに渡された場合は、JAXBオブジェクトが優先されます。

federatedServers

タスク・フローがフェデレーテッド・モードで実行される場合、このパラメータは、サーバーのリストが含まれるJAXBオブジェクトです。クライアント構成ファイル(wf_client_config.xml)も渡された場合は、このパラメータが優先されます。JAXBオブジェクト(WorkflowServicesClientConfigurationType)の作成方法の詳細は、次のコード・サンプルを参照してください。

次のコード・サンプルに示すように、サーバーの1つをdefaultとして設定する必要があります。デフォルトとして指定する必要があるのは1つのサーバーのみです。また、デフォルトとして指定したサーバーが、フェデレーテッド・サーバーのリストから除外されていることを確認してください。次の例では、これに関連するコードが太字で表示されています。

デフォルト・サーバーが使用されるのは、wf_client_config.xmlまたはJAXBオブジェクトに複数のサーバーが定義されているが、ワークフロー・クライアントで1つのサーバーのみ必要な場合です。サーバー名をパラメータとして使用しないレガシーのAPIがいくつかあります。このようなレガシーのAPIをサポートするには、1つのサーバーをデフォルト・サーバーとして定義する必要があります。そうしないと、サーバー名を使用しないレガシーのAPIは機能しません。

import oracle.bpel.services.workflow.client.config.IdentityPropagationType;
import oracle.bpel.services.workflow.client.config.PolicyReferenceType;
import oracle.bpel.services.workflow.client.config.PolicyReferencesType;
import oracle.bpel.services.workflow.client.config.RemoteClientType;
import oracle.bpel.services.workflow.client.config.ServerType;
import oracle.bpel.services.workflow.client.config.SoapClientType;
import oracle.bpel.services.workflow.client.config.WorkflowServicesClientConfigurationType;
         
WorkflowServicesClientConfigurationType wscct =
   new WorkflowServicesClientConfigurationType();
        
List<ServerType> servers = wscct.getServer();        
        
/**** Setting default server in the list ****/
                
ServerType defalutServer = new ServerType();
servers.add(defalutServer);
 
defalutServer.setDefault(true);
defalutServer.setExcludeFromFederatedList(true);
defalutServer.setName("default");
 
RemoteClientType rct = new RemoteClientType();
rct.setServerURL("t3://myhost.us.example.com:7001");
rct.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct.setParticipateInClientTransaction(false);
defalutServer.setRemoteClient(rct);
 
SoapClientType sct = new SoapClientType();
PolicyReferencesType prts = new PolicyReferencesType();
 
PolicyReferenceType prt = new PolicyReferenceType();
prt.setEnabled(true);
prt.setCategory("security");
prt.setUri("oracle/wss10_saml_token_client_policy");
prts.getPolicyReference().add(prt);
 
IdentityPropagationType ipt = new IdentityPropagationType();
ipt.setMode("dynamic");
ipt.setType("saml");
ipt.setPolicyReferences(prts);
 
sct.setRootEndPointURL("http://myhost.us.example.com:7001");
sct.setIdentityPropagation(ipt);
 
defalutServer.setSoapClient(sct);      
        
/****** Setting Federated Server 1 to the list ****/       
              
ServerType server1 = new ServerType();
servers.add(server1);
server1.setName("Human Resource");
 
RemoteClientType rct1 = new RemoteClientType();
rct1.setServerURL("t3://myhost.us.example.com:7001");
rct1.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct1.setParticipateInClientTransaction(false);
server1.setRemoteClient(rct1);
 
SoapClientType sct1 = new SoapClientType();
PolicyReferencesType prts1 = new PolicyReferencesType();
 
PolicyReferenceType prt1 = new PolicyReferenceType();
prt1.setEnabled(true);
prt1.setCategory("security");
prt1.setUri("oracle/wss10_saml_token_client_policy");
prts1.getPolicyReference().add(prt1);
IdentityPropagationType ipt1 = new IdentityPropagationType();
ipt1.setMode("dynamic");
ipt1.setType("saml");
ipt1.setPolicyReferences(prts1);
 
sct1.setRootEndPointURL("http://myhost.us.example.com:7001");
sct1.setIdentityPropagation(ipt1);
 
server1.setSoapClient(sct1); 
        
/****** Setting Federated Server 2 to the list ****/       
        
ServerType server2 = new ServerType();
servers.add(server2);
server2.setName("Financials");
 
RemoteClientType rct2 = new RemoteClientType();
rct2.setServerURL("t3://myhost.us.example.com:7001");
rct2.setInitialContextFactory("weblogic.jndi.WLInitialContextFactory");
rct2.setParticipateInClientTransaction(false);
server2.setRemoteClient(rct2);
 
SoapClientType sct2 = new SoapClientType();
PolicyReferencesType prts2 = new PolicyReferencesType();
 
PolicyReferenceType prt2 = new PolicyReferenceType();
prt2.setEnabled(true);
prt2.setCategory("security");
prt2.setUri("oracle/wss10_saml_token_client_policy");
prts2.getPolicyReference().add(prt2);
 
IdentityPropagationType ipt2 = new IdentityPropagationType();
ipt2.setMode("dynamic");
ipt2.setType("saml");
ipt2.setPolicyReferences(prts2);
 
sct2.setRootEndPointURL("http://myhost.us.example.com:7001");
sct2.setIdentityPropagation(ipt2);
 
server2.setSoapClient(sct2);

showServerColumn

タスク・フローがフェデレーテッド・モードで実行される場合、デフォルトではタスク・リストのサーバー列は表示されません。サーバー列を表示する場合は、このパラメータをtrueで渡します。それ以外の場合、サーバー列は表示されません。

wfCtxID

これはワークフロー・コンテキストのトークン文字列です。ワークフロー・コンテキストをタスク・フロー内部に作成する場合に使用します。アプリケーションがSSO対応の場合、またはアプリケーションがADFセキュリティを使用して保護されている場合、このパラメータは必要ありません。それ以外の場合、これは必須パラメータです。ワークフロー・コンテキストIDは、 次のコード・サンプルの方法で取得できます。

IWorkflowContext wfCtx =  wfSvcClient.getTaskQueryService().authenticate(username,password,realm,null); 
wfCtxID = wfCtx.getToken();