0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Preprocessor, Postprocessorの概要説明と使用方法

Last updated at Posted at 2022-12-13

目次

  1. はじめに
  2. 概要
  3. 完成イメージ
  4. 実装前
  5. 実装方法
  6. 実装後
  7. まとめ

はじめに

今回は、Foundry(旧Fabric)のPreProcessor,PostProcessorの機能や
実装方法について紹介していきます。

※今回は、VoltMX Foundryを用いて説明を行います。
Quantumと基本的には同じですが、メソッド名が一部異なる点がありますので、
Quantumご利用の方は、メソッド名など読み替えながら進めてください。

概要

PreProcessorは、外部データソースにデータを渡す前に呼び出される機能です。
例えば、リクエスト値が空の場合にエラーメッセージを表示する等で使用することができます。

PostProcessorは、外部データからデータが受信された後、
そのデータがフロントアプリに返される前に呼び出される機能です。
例えば、アプリにデータを返す前に一部のデータ形式を変更したり、データを追加する際に使用することができます。

完成イメージ

では早速実装を行っていきましょう!

今回は例として、リクエストの値が空の場合に、
「○○を入力してください」とエラーを表示するような処理を加えてみたいと思います。
スクリーンショット 0004-12-06 14.27.53.png

既にIntegration Serviceで外部APIを使用して、
天気情報を取得するgetWeatherというAPIを作成しておきましたので、
こちらを使って説明を行います。

リクエスト値であるcityNameを入力すると、
その都市の天気情報が取得できるという内容になっています。

スクリーンショット 0004-12-06 13.42.55.png

実装前

現状はPreProcessorに何も設定を行っていないため、
リクエスト値を空にすると、このような結果となります。
スクリーンショット 0004-12-06 13.45.27.png

このままだと、APIの呼び出しに失敗した、ということ以外何もわからないため、
何が原因のエラーなのかわかるように実装してみましょう!

実装方法

メニューを開く

まずは、Integration Serviceの「Advanced」のメニューを開きましょう。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3539323236342f66346661363537622d353939382d363366332d333861622d6130323364393732323062662e706e67.png

すると、PreProcessor,PostProcessorを設定できる画面が開きます。

スクリーンショット 0004-12-06 13.51.41.png

使用できる言語

ここでは、JavaまたはJavascript、Rules(※)の形式で記述することができます。

※補足
Rulesは、Fabric V8 SP4から追加されたオプションで、
より人間の言語に近づけたMVELという言語を採用しているため、
以下のように感覚的にわかりやすいコードで記述することができます。

name: "Convert account code to type in post-processor"
description: " Rule to convert account type to code and add details in result"
condition: "AccountType == 1"
actions:
- "results.addParam(\"AccountType\", \"Loan Account\")"
- "results.addParam(\"Message\", \"This is a Loan Account\")"

今回は、詳しく説明しませんが、
もっと詳しく知りたい方は公式ドキュメントを参考にしてみてくださいね👀

https://docs.kony.com/konylibrary/konyfabric/V9M2/kony_fabric_user_guide/Content/Rules.htm

コーディング

今回は、Javascriptを使用して記載します。
Javascriptのラジオボタンをクリックすると、
入力欄が表示されますので以下のように入力しました。

preProcessor.js
function processInput() {
    //リクエスト値を取得する
    var cityName = request.getParameter('cityName');

    if (!cityName) {
        var newOutputParam1 = new com.hcl.voltmx.middleware.dataobject.Param();
        newOutputParam1.setName('errorCode');
        newOutputParam1.setValue('ERR001');
        result.setParam(newOutputParam1);

        var newOutputParam2 = new com.hcl.voltmx.middleware.dataobject.Param();
        newOutputParam2.setName('errorMessage');
        newOutputParam2.setValue('都市名を入力してください。');
        result.setParam(newOutputParam2);
        return false;
    } else {
        return true;
    }
}
processInput();

処理の順に説明を行っていきます。

getParameter
()内にRequest Inputで設定したパラメーターを指定することで、
その値に入力された値を取得することができるメソッドになります。
今回は、Request InputのcityNameというパラメータを取得し、
cityNameという変数に代入しています。

if文の中では、
cityNameのデータが存在しない場合、
エラーメッセージを表示し、
そうでない場合は、trueを返す処理を行っています。

new com.hcl.voltmx.middleware.dataobject.Param()
(※Quantumの場合は、new com.konylabs.middleware.dataobject.Param

こちらを実行する際、
setNameでキーを、setValueでバリューを指定することで、
データ取得後の結果に新しいパラメーターを追加することができます。

今回、cityNameがない場合、
「都市名を入力してください」と表示したいので、
それぞれエラーコードとエラーメッセージを設定しています。

実装ができたので、早速実行してみましょう!

実装後

ezgif-5-708258aa18.gif

Request InputのcityNameを空にした状態で実行すると、
「都市名を入力してください」のエラーメッセージとエラーコードが表示され、
cityNameを入力した状態で実行すると、
正常に天気情報が取得できていることがわかりますね!

今回は、PreProcessorの実装方法を詳しくご説明しましたが、
PostProcessorについても同様に実装が可能です。
また、Integration Service以外にもOrchestration Serviceでも同じく設定が可能です。

使えるメソッドなどは公式ドキュメントに記載がありますので、
参考にしながら進めてみてくださいね:relaxed:

・VoltMX

・Quantum

まとめ

今回は、Pre-Postprocessorの概要と使用方法について紹介しました。
フロントアプリと外部サービス間の処理の中で、
データを追加・削除したり形式を変更したりと便利な機能ですので、ぜひ使ってみてくださいね!

参考

https://docs.kony.com/konylibrary/konyfabric/kony_fabric_user_guide/Content/Rules_as_Pre_Post_Processors.htm
https://opensource.hcltechsw.com/volt-mx-docs/java_docs_apis/MiddlewareAPI/overview-summary.html
https://docs.kony.com/konylibrary/integration/MiddlewareAPI/overview-summary.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?