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

この記事では、、IM-LogicDesignerのマッピング設定で利用できるマッピング関数について紹介します。

IM-LogicDesignerでは、マッピング設定の中で数値の演算や文字列の操作、日付の変換などを行う場合に、マッピング関数を利用できます。マッピング関数を利用すると、専用のタスクを追加することなく、マッピング設定内で簡単な処理を実現できます。そのため、ロジックフローをシンプルに保ちながら、入力値を加工して別のタスクへ渡すことができます。

ここでは、IM-LogicDesignerで利用できるマッピング関数を用途別に紹介します。

マッピング関数とは?

マッピング関数とは、マッピング設定内で利用できる小規模な処理を行う関数です。

たとえば、タスクAの出力値をタスクBの入力値として渡す際に、値をそのまま渡すのではなく、計算や文字列の加工などを行ってから渡したい場合があります。このような場合、マッピング設定にマッピング関数を追加し、処理に必要な値を入力することで、処理結果をタスクBへ渡すことができます。

マッピング関数によっては、複数の入力値を組み合わせて一つの値を生成したり、複数のマッピング関数を組み合わせて処理したりすることもできます。たとえば、数値の加算、文字列の連結、日付の変換など、フロー内で必要となるさまざまな処理に利用できます。

マッピング関数の種類と特徴

IM-LogicDesignerでは、用途に応じてさまざまなマッピング関数を利用できます。ここでは、数値や文字列、日付、ID、配列など、扱うデータの種類ごとに主なマッピング関数を紹介します。

数値データや文字列を扱う関数

数値の演算や文字列の操作、数値と文字列の相互変換などに利用できるマッピング関数を紹介します。

数値データを演算する

「数値演算」にあるマッピング関数では、数値データに対して演算処理を行い、その結果を出力できます。

  • 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」にあるマッピング関数では、バイナリと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の機能を最大限に発揮させるためにも、ぜひご活用ください。