2020.9.25
「一覧表示したデータから任意のデータを選択し、選択したデータを用いて業務フローを進める」といった要件の実現に向けて、
ViewCreatorとIM-BISを使って実装したものを何回かに分けて使い方と一緒にご紹介します。
例として今回は、資材の在庫管理一覧を作成し、そこから在庫の使用申請を行うことを想定しましょう。
今回は最終章、IM-BISとViewCreatorの連携編です!
連携編とは言うものの、前回まででほとんど完成しているので、後はデータの受け渡しをどのようにするのか、
また、少々応用的なことも含めて書いていきます。
ViewCreatorで選択したレコードのデータは、遷移先へリクエストパラメータとして送られます。
しかし、FormaDesignerの前処理は標準ではメソッドと引数が決まっているため、ViewCreatorのパラメータを受け取ることはできません。。。
そこで今回は、データの受け取り用プログラムを1つはさみ、前処理への中継をさせようと思います。
流れは以下のようなイメージです。
ViewCreator一覧でレコードを選択 → 中継プログラム → IM-BIS申請画面へリダイレクト
中継プログラムはintra-martの基本的なスクリプト開発モデルの書き方で記載します。
今回はセッションでデータを保持し、前処理で取得する方針でいくので以下のようなプログラムになります。
// 中継プログラム // 初期メソッド function init(request) { /*----------------------------------------------------------------- requestからViewCreatorで選択したレコードのデータが取得できます 例)request.%DBカラム名% -----------------------------------------------------------------*/ // セッションに保持する値オブジェクト var sessionObj = { materialId : request.material_id, // ID materialName : request.material_name, // 資材名 stockNum : request.stock_num // 在庫数 }; // セッションキーと保持する値オブジェクトをセット Client.set("sessiionKey", sessionObj); // 特定フローの申請画面へリダイレクト // <CONTEXT_PATH>,<FLOW_ID>は環境に合わせて変更してください PageManager.redirect("/<CONTEXT_PATH>/im_workflow/user/apply/apply_direct/<FLOW_ID>", "POST"); }
これでセッションにデータを保持した状態で申請画面へ移動することができました。
後は、データを受け取って初期値をセットするだけです!!
セッションに保持したデータは以下のように記載することで、取得可能です。
初期値の設定は、前回のブログをご参照ください。 ぺこ <(_ _)>
// ------------------------------ // APセッション情報の取得 // ------------------------------ var reuseObj = Client.get("sessiionKey");
無事、初期表示ができました!!
この他にも応用編ということで、中継プログラムにてリダイレクトするフローを動的に変更したり、取得したデータを加工してセットしたりなどすることで、汎用性の高いものにすることができます。
最後まで読んで頂き、ありがとう御座いました。
お役に立てれば、幸いです(^人^)感謝♪