IBM TechXchange Japan Business Automation User Group

#JP
#dba

Japan Business Automation User Groupとは、IBM Cloud Pak for Business Automationおよびそのコンポーネント製品に関して、技術情報を提供およびディスカッションするための日本語ユーザー・グループです。

このページは,以下のURLでもアクセスできます。
http://ibm.biz/JPBizAutomationUG

developerWorks日本で公開されていたBusiness Automation製品の技術文章をお探しの方はこちらから。
旧developerWorks Business Automation日本語版 転載文章一覧

※ 本コミュニティはメンバー同士が相互に情報交換を行う場です。発信は個人の見解であり企業を代表するものではありません。


#AsiaPacific
#IBMCloudPakforBusinessAutomation
#Japan
#CloudPakforBusinessAutomation
 View Only

BAW Tips #3 APIによるプロセス起動

By SHINTARO HASE posted Mon April 17, 2023 01:05 AM

  

プロセスをAPIで起動したい!

BAWでプロセスを起動する方法としては以下の様な方法が考えられます。

  1. ポータルのメニューからの起動
  2. プロセスからサービスとして呼び出す
  3. JavascriptAPIによる起動
  4. REST-APIによる起動

BAWではJavascriptとRESTの2種類のAPIが提供されており、自由なタイミングで起動することが可能です。この記事ではJavascriptとRESTでプロセスを起動する方法について説明します。

Javascriptによるプロセスの起動

https://www.ibm.com/docs/ja/baw/20.x?topic=examples-starting-new-process
サービス・フロー内に、以下の様なコードを実装することでプロセスを起動することが可能です。

var mybo= new tw.object.MyBO();//入力パラメータのBOを生成する

mybo.string1="test"

var input = new tw.object.Map(); //入力パラメータのためのMapを作成する

input.put("variable1", "test");

 input.put("MyBO", mybo);

var instance = tw.system.startProcessByName("MyProcess", input, false); //プロセスの呼び出し

プロセス名と入力パラメータを指定するだけで呼び出し可能なため、実装が非常に簡単であることがメリットです。反面、特定のバージョンのプロセスを呼び出すなどの細かい制御を行うことはできません。

RESTAPIによるプロセスの起動

BAWの外部からプロセスを起動する際には、RESTAPIによるプロセスの起動が可能です。
https://www.ibm.com/docs/ja/baw/22.x?topic=process-post-start
RESTAPIによる呼び出しを行うには、まずCSRFTokenを取得し、トークンをヘッダーにセットしてからプロセス起動のAPIを呼びだす必要があり少し面倒です。基本的にはBAWの外部からBAWを呼び出すことがメインの使用方法で、サービスフローの中からRESTAPIを呼び出すことは少ないのですが、以下にBPMRestRequestを用いたREST呼び出しの例を示します。
特に入力パラメータ際に、inputパラメータとしてinputという名前のパラメータの配列を渡す部分が分かりにくいので注意してください。

var request = new BPMRESTRequest();

request.externalServiceName = "BAWREST";

request.httpMethod="POST";

request.operationName="startProcess";

request.httpHeaders = {
  "BPMCSRFToken":tw.local.createBPMCSRFToken.csrf_token,
  "Content-Type": "application/json";
  "Accept": "application/json"

};

request.parameters = {"model": "MyProcess", "container": "BATT",
         "input":{"input":[{"name":"variable1","data":"aaaa"},{"name":"MyBO","data":myBo}]}

 };

var response = tw.system.invokeREST(request);

まとめ

この記事ではJavascriptとRESTによるプロセスの起動方法について説明しました。
BAWの外からプロセスを起動する方法としては他にもJavascriptによるプロセスの呼び出しをサービス・フローとして実装し、そのサービス・フローをRESTサービスとして公開する方法もあります。製品提供のREST-APIはトークンの取得など複数の呼び出しが前提なので、Webhookによる連携などを行う場合には単発のAPI呼び出しでプロセスの起動が可能なこのような方法をとるのも良いでしょう。


#baw
#BusinessAutomationWorkflow(BAW)
0 comments
21 views

Permalink