マッピング関数を利用して演算処理を行いたい
この記事では、マッピング関数を利用して簡単な演算処理を行う方法について紹介します。
IM-LogicDesignerでは、マッピング設定内で演算処理を行い、その結果を出力先に渡したいときにマッピング関数が利用できます。マッピング関数を使うことで、ロジックフローで処理を追加せずにマッピング設定内で完結でき、フローの複雑化を防ぐことができます。 IM-LogicDesignerで使用できるマッピング関数の種類と特徴をについて確認してみましょう。
マッピング関数とは?
マッピング関数とは、マッピング設定で利用できる小規模な演算処理を行う関数のことです。
タスクAの出力値をタスクBに渡す場合、通常のマッピング設定では、タスクAの出力値をそのままタスクBの入力値として渡します。しかし、業務要件によっては、タスクAの出力値に処理を加えてから、その結果をタスクBの入力値として渡すほうが適している場合があります。
そのような場合、マッピング設定内で、用途に応じたマッピング関数を設定し、処理に必要な入力値と処理結果となる出力値をそれぞれ定義します。
マッピング関数の種類によっては、複数の出力値を組み合わせて、目的の値を生成することができます。また、複数のマッピング関数を組み合わせて利用することも可能です。
マッピング関数の追加方法
マッピング設定画面にマッピング関数を追加する方法について確認できます。入力値とマッピング関数の引数、あるいはマッピング関数の返却値と出力値の型がそれぞれ異なる場合は、自動で型を変換します。
マッピング関数の種類と特徴
IM-LogicDesignerで使用できるマッピング関数には、用途に応じた関数が多数用意されています。各関数の種類と特徴について見ていきましょう。
数値データや文字列を扱う関数
数値形式や文字列形式の入力値に対する操作、または数値データと文字列の相互変換などに使用するマッピング関数について紹介します。
数値データを演算する
「数値演算」にあるマッピング関数では、数値データに演算処理を行い、その結果を出力します。
add
:数値aと数値bを加算(+)する
subtract
:数値aと数値bを減算(-)する
multiply
:数値aと数値bを乗算(×)する
divide
:数値aと数値bを除算(+)する
mod
:数値aと数値bを除算(+)した余りを求める
roundUp
:数値を指定した桁数(スケール)で切り上げをする
round
:数値を指定した桁数(スケール)で四捨五入をする
roundDown
:数値を指定した桁数(スケール)で切り捨てをする
abs
:数値の絶対値を求める
pow
:数値aを数値bでべき乗を計算する
max
:数値aと数値bを比較し、最大値を求める
min
:数値aと数値bを比較し、最小値を求める
数値データを演算するマッピング関数
「数値演算」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
文字列を操作する
「文字列操作」にあるマッピング関数では、文字列に必要な操作を行い、その結果を出力します。
concat
:文字列同士を連結する
replace
:元の文字列から、指定した文字列を別の文字列に置換する
trim
:文字列の前後の空白を除去する
split
:元の文字列から、正規表現を用いて指定した文字列で分割する
join
:複数の文字列と指定した文字列を連結し、一つの文字列とする
el
:Expression Languageで記述された文字列から、文字列を返却する
substring
:元の文字列から開始位置と終了位置を指定し、その範囲の文字列を抽出する
文字列を操作する関数
「文字列操作」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
【参考】入力値と定数値を結合する
チュートリアルガイドでは、concat
関数を利用したマッピング設定の例について確認できます。ここでは、フローの入力値と条件に合わせた文言(定数値)を結合し、その値をもとにログ出力を実行しています。concat
関数は、IM-BloomMakerからIM-LogicDesignerに変数が正しく受け渡しされているかを調べる際など、デバッグ時にログ出力と組み合わせて活用できます。
数値データと文字列を相互変換する
「数値操作」にあるマッピング関数では、文字列を数値データに、あるいは数値データを文字列にそれぞれ変換します。
parse
:文字列を解析し、数値に変換する
format
:数値を文字列に変換する
数値データと文字列を相互変換する関数
「数値操作」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
バイナリと文字列を相互変換する
「Base64」にあるマッピング関数では、バイナリを文字列に、あるいは文字列をバイナリにそれぞれ変換します。
encode
:バイナリをエンコードし、Base64文字列に変換する
decode
:Base64文字列をバイナリに変換する
バイナリと文字列を相互変換する関数
「Base64」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
日付データを扱う関数
日付や時間に対する操作、またはユーザのタイムゾーンとシステムタイムゾーンの相互変換などに使用するマッピング関数について紹介します。
日付や時間のデータを処理する
「日付操作」にあるマッピング関数では、日付や時間のデータに必要な操作を行い、その結果を出力します。
parse
:文字列を日付に変換する
format
:日付を文字列に変換する
calcDate
:日付を演算する
interval
:日付aと日付bの期間(間隔)を取得する
beginMonthDay
:月初の日付を取得する
endMonthDay
:月末の日付を取得する
convertInSystemTimeZone
:ユーザのタイムゾーンの日付をシステムタイムゾーンの日付に変換する
convertInAccountTimeZone
:システムタイムゾーンの日付をユーザのタイムゾーンの日付に変換する
parseWithAccountTimeZone
:文字列(ユーザのタイムゾーンの日付)を指定した日付フォーマットに従ってDate型に変換する
formatWithAccountTimeZone
:Date型を指定した日付フォーマットの文字列(ユーザのタイムゾーンの日付)に変換する
日付や時間のデータを処理する関数
「日付操作」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
【参考】ユーザのタイムゾーンの日付に変換する
チュートリアルガイドでは、convertInAccountTimeZone
関数を利用したマッピング設定の例について確認できます。ここでは、システムタイムゾーンの日付をユーザのタイムゾーンの日付に変換し、その値をもとに次のフローを実行しています。さらに、formatWithAccountTimeZone
関数を組み合わせることで、日付を文字列に変換しています。複数のマッピング関数を組み合わせる方法についても押さえておきましょう。
新しくIDを生成する関数
IDの生成に使用するマッピング関数について紹介します。
IDを生成する
「ID生成」にあるマッピング関数では、一意となるIDを生成します。
identifier
:API Identifierを利用し、一意となるIDを生成する
uuid
:UUID(universally unique identifier)を生成する
IDを生成する関数
「ID生成」にあるマッピング関数の仕様について、戻り値の詳細を確認できます。このマッピング関数では、引数を使用しません。
【参考】生成したIDを入力値と紐づける
チュートリアルガイドでは、identifier
関数を利用したマッピング設定の例について確認できます。ここでは、IDを生成し、アンケートの回答IDと紐づけています。その他にも、文字列を連結させるjoin
関数や、文字列を分割させるsplit
関数について、どのような用途で設定されているのかを押さえておきましょう。
配列やオブジェクトを扱う関数
配列やオブジェクトに対する操作、またはオブジェクトと文字列の相互変換などに使用するマッピング関数について紹介します。
配列を操作する
「配列操作」にあるマッピング関数では、配列とその要素に関する操作を行い、その結果を出力します。
unshift
:配列の先頭に、要素を追加する
push
:配列の末尾に、要素を追加する
remove
:配列の中から、指定したインデックスの要素を削除する
replace
:配列の中から、指定したインデックスの要素を、別の要素に置換する
size
:配列の要素数を取得する
get
:配列の中から、指定したインデックスの要素を取得する
insert
:配列の中で指定したインデックスに、要素を追加する
first
:配列の中から、先頭の要素を取得する
last
:配列の中から、末尾の要素を取得する
配列を操作する関数
「配列操作」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。特に、replace
関数やinsert
関数では、インデックスと要素の数が一致しない場合、処理数が少ない方に合わせて実行されます。
【参考】変数の配列にユーザ名を追加する
チュートリアルガイドでは、push
関数を利用したマッピング設定の例について確認できます。ここでは、変数の配列にユーザ名を追加し、その値を出力に渡しています。
オブジェクトを操作する
「オブジェクト操作」にあるマッピング関数では、オブジェクトとその要素に関する操作を行い、その結果を出力します。
key
:オブジェクトのキー(プロパティ名)を取得し、その値を配列で返却する
values
:オブジェクトに含まれるプロパティの値を取得し、その値を配列で返却する
toUpperCamelCase
:オブジェクトのキー(プロパティ名)をsnake_caseからUpperCamelCaseに変換する
toLowerCamelCase
:オブジェクトのキー(プロパティ名)をsnake_caseからlowerCamelCaseに変換する
toUpperSnakeCase
:オブジェクトのキー(プロパティ名)をcamelCaseからUPPER_SNAKE_CASEに変換する
toLowerSnakeCase
:オブジェクトのキー(プロパティ名)をcamelCaseからlower_snake_caseに変換する
オブジェクトを操作する関数
「オブジェクト操作」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。スネークケースとキャメルケースの変換についても押さえておきましょう。
オブジェクトと文字列を相互変換する
「JSON」にあるマッピング関数では、オブジェクトを文字列に、あるいは文字列をオブジェクトにそれぞれ変換します。
toJSON
:オブジェクトをJSON文字列に変換する
parseJSON
:JSON文字列をオブジェクトに変換する
オブジェクトと文字列を相互変換する関数
「JSON」にあるマッピング関数の仕様について、引数と戻り値の詳細を確認できます。
まとめ
マッピング関数を利用すると、マッピング設定内で小規模な演算処理やデータ型の変換などができ、フローの複雑化を防ぐことができます。また、標準の関数を使用することで、ツール内における統一した処理が可能になり、予期しないエラーの防止にも役立ちます。マッピング設定とあわせて、マッピング関数の種類や特徴を把握し、適切に使いこなせるようになることをおすすめします。
intra-martでは、IM-LogicDesignerをもっと知っていただくためにマニュアルやコンテンツなどを豊富にご用意しています。IM-LogicDesignerの機能を最大限に発揮させるためにも、ぜひご活用ください。