マッピング関数を利用して演算処理を行いたい

この記事では、マッピング関数を利用して簡単な演算処理を行う方法について紹介します。
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複数の文字列と指定した文字列を連結し、一つの文字列とする
  • elExpression Languageで記述された文字列から、文字列を返却する
  • substring:元の文字列から開始位置終了位置を指定し、その範囲の文字列を抽出する

数値データと文字列を相互変換する

「数値操作」にあるマッピング関数では、文字列を数値データに、あるいは数値データを文字列にそれぞれ変換します。

  • parse:文字列を解析し、数値に変換する
  • format:数値を文字列に変換する

バイナリと文字列を相互変換する

「Base64」にあるマッピング関数では、バイナリを文字列に、あるいは文字列をバイナリにそれぞれ変換します。

  • encode:バイナリをエンコードし、Base64文字列に変換する
  • decode:Base64文字列をバイナリに変換する

日付データを扱う関数

日付や時間に対する操作、またはユーザのタイムゾーンとシステムタイムゾーンの相互変換などに使用するマッピング関数について紹介します。

日付や時間のデータを処理する

「日付操作」にあるマッピング関数では、日付や時間のデータに必要な操作を行い、その結果を出力します。

  • parse:文字列を日付に変換する
  • format:日付を文字列に変換する
  • calcDate:日付を演算する
  • interval:日付aと日付bの期間(間隔)取得する
  • beginMonthDay月初の日付を取得する
  • endMonthDay月末の日付を取得する
  • convertInSystemTimeZone:ユーザのタイムゾーンの日付をシステムタイムゾーンの日付に変換する
  • convertInAccountTimeZone:システムタイムゾーンの日付をユーザのタイムゾーンの日付に変換する
  • parseWithAccountTimeZone:文字列(ユーザのタイムゾーンの日付)を指定した日付フォーマットに従ってDate型に変換する
  • formatWithAccountTimeZone:Date型を指定した日付フォーマットの文字列(ユーザのタイムゾーンの日付)に変換する

新しくIDを生成する関数

IDの生成に使用するマッピング関数について紹介します。

IDを生成する

「ID生成」にあるマッピング関数では、一意となるIDを生成します。

  • identifier:API Identifierを利用し、一意となるIDを生成する
  • uuid:UUID(universally unique identifier)を生成する

配列やオブジェクトを扱う関数

配列やオブジェクトに対する操作、またはオブジェクトと文字列の相互変換などに使用するマッピング関数について紹介します。

配列を操作する

「配列操作」にあるマッピング関数では、配列とその要素に関する操作を行い、その結果を出力します。

  • unshift:配列の先頭に、要素を追加する
  • push:配列の末尾に、要素を追加する
  • remove:配列の中から、指定したインデックスの要素を削除する
  • replace:配列の中から、指定したインデックスの要素を、別の要素に置換する
  • size:配列の要素数を取得する
  • get:配列の中から、指定したインデックスの要素を取得する
  • insert:配列の中で指定したインデックスに、要素を追加する
  • first:配列の中から、先頭の要素を取得する
  • last:配列の中から、末尾の要素を取得する

オブジェクトを操作する

「オブジェクト操作」にあるマッピング関数では、オブジェクトとその要素に関する操作を行い、その結果を出力します。

  • 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文字列をオブジェクトに変換する

まとめ

マッピング関数を利用すると、マッピング設定内で小規模な演算処理やデータ型の変換などができ、フローの複雑化を防ぐことができます。また、標準の関数を使用することで、ツール内における統一した処理が可能になり、予期しないエラーの防止にも役立ちます。マッピング設定とあわせて、マッピング関数の種類や特徴を把握し、適切に使いこなせるようになることをおすすめします。

intra-martでは、IM-LogicDesignerをもっと知っていただくためにマニュアルやコンテンツなどを豊富にご用意しています。IM-LogicDesignerの機能を最大限に発揮させるためにも、ぜひご活用ください。