HELP

共通マクロ書式

制御書式

NAME 条件式
FORMAT {%IF(条件,真の値,偽の値)}

条件を判定し、条件に合致する場合は真の値を返却し、合致しない場合は偽の値を返却します。条件の比較記号は、>,<,=,>=,<=,!=が使用可能です。条件の左辺、右辺が両方とも数字の場合、数値としての比較を行います。それ以外は文字比較になります。条件や、真の値、偽の値には、各種書式を入れ子で記述することが可能です。

カンマそのものを条件や値に記述したい場合は、「|,」と記述します。

比較式の左辺と右辺が両方とも数値の場合は、比較を数値として行います。

比較式の左辺、右辺は空白も文字列として比較対象とします。

例1
現在の日が20日より後の場合、翌月を返却し、20日以前の場合は、当月を返却する場合
{%SET_U(属性,処理日,{%DATE(yyyy/MM/dd)})}
{%IF({%FORMAT({%GET_U(属性,処理日)},dd)}>20,{%DATE_ADD({%GET_U(属性,処理日)},yyMM,+1M)},{%FORMAT({%GET_U(属性,処理日)},yyMM)})}
現在の日付が2004年2月20日の場合、0402となります。
現在の日付が2004年2月21日の場合、0403となります。
DATEマクロはマクロ毎にシステム日付を取得するので、0時付近に処理をすると日付が変わるので、上記のようにユーザーデータに一度セットしてから、ユーザーデータの日付で判定と取得を行います。
NAME 繰り返し式
FORMAT {%LOOP 名前 繰り返し回数(文字列)}

文字列を繰り返し回数分展開します。名前には任意の文字列を指定します。文字列には、改行が含まれても問題ありません。

文字列には、以下の特殊キーワードが使用できます。

[L_IDX(名前)]

L_IDXキーワードは、LOOPマクロの引数文字列中に使用すると、ループの展開時に、インデックスに置換します。名前には、LOOPマクロで指定した名前と同じ名前を指定します。

例1
ログ出力を3回繰り返す。
{%LOOP L1 3(
  {%WRITE_LOG([L_IDX(L1)])}
)}
結果 1 2 3
NAME 比較演算式作成
FORMAT {%CREATE_COMPARE(左辺,比較演算子(<|>|<=|>=|=|!=|正規表現|部分一致|前方一致|後方一致),右辺)}

引き数の左辺と右辺を比較するための比較演算式情報を作成します。

比較演算子には、「<,>,<=,>=,=,!=,正規表現,部分一致,前方一致,後方一致」の何れかが指定できます。

比較演算を行うためのデータ(JSON文字列)を作成します。

この比較演算用の文字列は条件式評価マクロ(EVALUATE)等で判定を行うことができます。

例1
年齢が20以上であるかを判定する比較演算式情報を作成する。
{%SET_U(属性,年齢,21)}

{%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)}
例2
処理中ファイルのパスに「総務課」が含まれるかを判定する比較演算式情報を作成、評価して条件分岐の処理を行う。
{%IF({%EVALUATE({%CREATE_COMPARE({%GET(FullPathFileName)},部分一致,総務課)})}=True,
  #条件を満たす場合
  {%WRITE_LOG(条件を満たしています。)}
,
  #条件を満たさない場合
  {%WRITE_LOG(条件を満たしていません。)}
)}
例3
処理中ファイルのパスに「営業1課」又は「総務課」が含まれるかを判定する比較演算式情報を作成する。
{%CREATE_COMPARE({%GET(FullPathFileName)},正規表現,(?:営業1課|総務課))}
例3
処理中ファイル名の先頭が2024で始まっているかを判定する比較演算式情報を作成する。
{%CREATE_COMPARE({%GET(FileName)},前方一致,2024)}
NAME 論理演算式作成
FORMAT {%CREATE_OPERATOR(論理演算子(AND|OR|XOR),論理演算式または比較演算式,論理演算式または比較演算式,[論理演算式または比較演算式],[...])}

論理演算を行うための論理演算式情報を作成します。

2番目以降の引き数に指定された論理演算式または比較演算式を、1番目の引き数で指定された論理積(AND)又は論理和(OR)又は排他的論理和(XOR)で論理演算を行うためのデータ(JSON文字列)を作成します。

この論理演算用の文字列は条件式評価マクロ(EVALUATE)等で判定を行うことができます。

例1
年齢が20以上、且つ、50以下であるかを判定する条件を作成する
{%SET_U(属性,年齢,21)}

{%CREATE_OPERATOR(AND,
  {%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)},
  {%CREATE_COMPARE({%GET_U(属性,年齢)},<=,50)}
)}
NAME 演算式評価
FORMAT {%EVALUATE(演算式情報)}

比較演算式情報、論理演算式情報から演算式を評価します。

比較演算式作成マクロや論理演算式作成マクロで作成された演算を行うためのデータ(JSON文字列)を引き数に指定します。

評価の結果、条件を満たす場合はTrueを満たさない場合はFalseを返却します。

例1
年齢が20以上、且つ、50以下であるかを判定する条件を評価する。
{%SET_U(属性,年齢,21)}

{%SET_U(temp,条件式,
  {%CREATE_OPERATOR(AND,
    {%CREATE_COMPARE({%GET_U(属性,年齢)},>=,20)},
    {%CREATE_COMPARE({%GET_U(属性,年齢)},<=,50)}
  )}
)}

{%IF({%EVALUATE({%GET_U(temp,条件式)})}=True,
  #条件を満たす場合
  {%WRITE_LOG(条件を満たしています。)}
,
  #条件を満たさない場合
  {%WRITE_LOG(条件を満たしていません。)}
)}