使用例

ここでは、SOAP APIの主な使用例をプログラムの実装例と共に説明します。
実装例で使用しているクラスの詳細は、 SOAP API仕様書 を参照ください。
(実装例では、説明を簡潔にするため例外処理が省略されています。)

ユーザー情報の取得

ユーザー情報の取得で使用する主なクラスは以下の通りです。

  1. WsUserInfomationManager
  2. WsOrganizationBean
  3. WsMemberBean

注釈

1~3はすべてjp.co.itarchitects.xFlow.soap.server.define.userパッケージです。

WsUserInfomationManager はユーザー情報の検索や更新を行うクラスです。
このクラスを使用して、WsOrganizationBean (所属する組織の情報)やWsMemberBean (ユーザー情報)等を取得します。

以下は、ユーザーのIDを指定して所属する組織の情報を取得する実装例です。

String memberID = "A10007";

WsUserInfomationManagerStub userInfomationManager = new WsUserInfomationManagerStub();
WsOrganizationBean[] organizationBeans = stub.doLookUpOrganizationVersion(memberID);

申請

申請は、処理を実行するクラスと、申請データを保持するクラスを組み合わせて使用します。
フォーム形式が”フォーム”のフォームでの申請に使用するのは、以下のクラスです。

  1. WsApplyAgent
  2. WsApplyData
  3. WsApplyOption (任意)

注釈

1~3はすべてjp.co.itarchitects.xFlow.soap.server.actionパッケージです。

WsApplyAgentは申請処理を実行するクラスです。
このクラスのexecuteメソッドに、申請データを渡して申請処理を実行します。

申請データは、WsApplyDataに対して設定します。
このクラスの各setterメソッドで、申請者のユーザー情報や申請内容など申請時に必須となるデータを設定します。

WsApplyOptionは、申請者コメントや添付ファイルなど、必須項目以外のデータを設定するためのクラスです。
WsApplyOptionの指定は必須ではありませんので、必要に応じてご利用ください。

以下は申請の実装例です。

//申請データの設定
WsApplyData applyData = new WsApplyData();
//申請者のID
applyData.setApplyerID("A10007");
//申請者が所属する組織の組織コード
applyData.setOrganizationVersionCode("OrgVer_20091027094625164");
//申請者が所属するグループのグループコード
applyData.setGroupCode("121000");
//申請者の役職コード
applyData.setAuthorityCode("105");
//申請フォームのキー
applyData.setDefineDataKey("BD20060512104350043_1000");
//申請件名
applyData.setApplySubject("APIによる申請");
//申請文書への入力データ
String[] documentData = new String[]{
      "GOODS_NAME01"    , "名刺"
    , "REQ_NUM01"       , "1"
    , "NOTE"            , "2週間後のイベントで必要です。"
};
applyData.setDocumentData(documentData);

//申請処理を実行
WsApplyAgentStub applyAgent = new WsApplyAgentStub();
applyAgent.execute(applyData, 1);

ヒント

WsApplyData#setOrganizationVersionCodeなどで指定する申請者の所属する組織情報(組織コードなど)の取得については「ユーザ情報の取得」を参照ください。

上記の実装例で申請データに設定している申請フォームのキーは、申請するフォームを特定するために使用されます。
このキーはjp.co.itarchitects.xFlow.soap.server.define.bdf パッケージのWsBdfManagerと、WsBdfBeanというクラスを使用して取得できます。

以下は申請フォームのキー取得の実装例です。

WsBdfManagerStub bdfManager= StubBuilder.buildWsBdfManagerStub();
WsBdfBean[] bdfBeans = bdfManager.doLookupBdf(
    "OrgVer_20091027094625164"   //申請者が所属する組織の組織コード
    , "121000"                   //申請者が所属するグループのグループコード
    , "105"                      //申請者の役職コード
    , "A10007");                 //申請者のID

WsBdfBean bdfBean = bdfBeans[0];
String key = bdfBean.getDefineDataKey();  //申請フォームのキー

承認

承認は、処理を実行するクラスと、承認データを保持するクラスを組み合わせて使用します。
フォーム形式が”フォーム”のフォームの承認に使用するのは、以下のクラスです。

  1. WsApproveAgent
  2. WsApproveData
  3. WsOption (任意)

注釈

1~3はすべてjp.co.itarchitects.xFlow.soap.server.actionパッケージです。

WsApproveAgentは承認処理を実行するクラスです。
このクラスのexecuteメソッドに、承認データなどを渡して承認処理を実行します。

承認データは、WsApproveDataに対して設定します。
このクラスの各setterメソッドで、承認者のIDや承認内容など承認時に必須となるデータを設定します。

WsOptionは、承認者コメントや添付ファイルなど、必須項目以外のデータを設定する場合に使用します。
WsOptionの指定は必須ではありませんので、必要に応じてご利用ください。

以下は承認の実装例です。

//承認データを設定
WsApproveData approveData = new WsApproveData();
//承認者のID
approveData.setApproverID("A10015");
//ワークフローの案件ID
approveData.setWorkflowID("A10007_20100127171539811");
//承認者を特定するための項番
approveData.setWorkflowMemberNodeNo("00001");

String[] documentData = new String[]{
  "GOODS_NAME01"    , "名刺"
, "REQ_NUM01"       , "1"
, "NOTE"            , "2週間後のイベントで必要です。"
};
//申請文書への入力データ
approveData.setDocumentData(documentData);

//承認処理を実行
WsApproveAgentStub approveAgent= new WsApproveAgentStub();
approveAgent.execute(approveData, 1);

ヒント

承認に必要なワークフロー案件のID、承認者を特定するための項番の取得は、「検索」を参照ください。

サンプルプログラム

[API/sample/soap_sample]に「使用例」で説明したAPIのサンプルプログラムが付属しています。

  1. ユーザー情報の取得
jp/co/itarchitects/soapsample/SoapUserSample.java
  1. 申請
jp/co/itarchitects/soapsample/SoapApplySample.java
  1. 承認
jp/co/itarchitects/soapsample/SoapApproveSample.java
  1. 検索
jp/co/itarchitects/soapsample/SoapSearchSample.java