1
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?

Cloud IntegrationでValue Mappingを使って固定値を管理する方法

1
Last updated at Posted at 2026-03-17

目的

Cloud IntegrationのiFlowで、複数箇所で使用し、かつ環境によって変わらないパラメータを管理したい場合、Value Mappingを使うことができます。

※環境によって変わる値を管理した場合は、以下のブログを参照

本ブログでは、パラメータを一元管理する方法としてValue Mappingを紹介します。

Value Mappingとは

連携元と連携先の機関(Agency)で、コード値のマッピングを定義するためのオブジェクトです。
これを流用して、固定値を管理するために使用されることがあります。

image.png

Value Mappingを定義してiFlowで使用するステップ

1. Value Mappingを登録

パッケージにValue Mappingを登録します。
image.png

image.png

Agencyを登録します。共通パラメータの管理用なので、片方はGlobal、もう片方はValueとしました。Identifierはkeyvalueとします。これで、どちらがキーでどちらが値を格納する側かが明確になります。
image.png

キーと値のマッピングを登録します。
image.png

以上で保存し、デプロイします。

2. iFlowでValue Mappingを取得

以下のようなシンプルなiFlowを作成し、Groovy ScriptでValue Mappingから値を取得します。
image.png

Value Mappingから値を取得する関数getMappedValueは引数が5つもあってわかりづらいので、ローカル関数を定義し、キーを渡すだけで値を取れるようにします。これで複数の固定値を取得する場合にやりやすくなります。

import com.sap.gateway.ip.core.customdev.util.Message
import com.sap.it.api.ITApiFactory
import com.sap.it.api.mapping.ValueMappingApi

// ローカル関数として定義
String getConfig(String key, String sourceAgency = 'Global', String targetAgency = 'Value') {
    def api = ITApiFactory.getApi(ValueMappingApi.class, null)
    return api.getMappedValue(sourceAgency, 'key', key, targetAgency, 'value')
}

def Message processData(Message message) {
    def folderName = getConfig('folderName')
    def paymentMethod = getConfig('paymentMethod')
    message.setProperty('folderName', folderName)
    message.setProperty('paymentMethod', paymentMethod)
    return message
}

iFlowをシミュレーションで実行し、Value Mappingで定義した値が取得できることを確認しました。
image.png

Value Mappingは移送で上書きされるか

以下のステップで、Value Mappingを移送したときの動作を確認しました。結論としては、Value Mappingは移送で上書きされます。

  1. 別のテナントにExport, Importでプロジェクトを移送
  2. 移送先の環境でValue Mappingの値を更新
  3. プロジェクトを再インポート

1. 別のテナントにExport, Importでプロジェクトを移送

移送時点の状態は以下のようになっています。
image.png

2. 移送先の環境でValue Mappingの値を更新

変更ボタンをクリックすると「変更すると以降の更新が反映されなくなる」という警告が出ますが、続行します。
image.png

この警告は、標準のインテグレーションパッケージの動作に関するものであり、パッケージの移送を行なった場合には上書きされるという動きでした。

folderNameの値をoutbound2に変更し、保存します。
image.png

アーティファクトの一覧で、ステータスが"Modified"に変わります。
image.png

3. プロジェクトを再インポート

インポートする際に同名のパッケージが存在するため警告が出ますが、続行します。
image.png

Value Mappingのステータスが"Unmodified"に戻っています。
image.png

変更した値も、移送元の値に戻っています。
image.png

Value MappingをiFlowと同じパッケージに含めると移送で上書きされてしまいますが、独立したパッケージとして、初期移送のあとは各環境でメンテナンスする運用にすれば、上書きの心配はなくなります。

1
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
1
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?