AlertHub・スコープで解析されるパラメータ(内部変数)について
完了お世話になっております。
AlertHubに送付されたメールは、AlertHub・スコープのルール及びトリガにてメール内のパラメータを解析している認識です。
①メール内に解析したいパラメータの内容がない場合は、(正規表現の指定にもよるかと思いますが)内部変数にはNullが設定される想定です。
齟齬はないでしょうか?
例)
パラメータ解析ルールの内容
パラメータ(内部変数)名1:param1
解析ルール1(正規表現) :param1:\\s*(.+)
パラメータ(内部変数)名2:param2
解析ルール2(正規表現) :param2:\\s*(.+)
実際の送付されるメール本文
param1:hogehoge
内部変数の値
param1 → hogehoge
param2 → Null ※メールに「param2:」の指定がないためNullとなる想定
②また、ルールでなくトリガのパラメータ解析ルールであれば、このような値がないパラメータがあっても、その後のPigeon連携は問題なく出来る想定です。
※ルールの方は必須項目定義という認識なのでパラーがないとエラーになる(アクションが実行されない)想定です。
齟齬はないでしょうか?
以上、よろしくお願い致します。
-
正式なコメント
お問い合わせありがとうございます。
ご質問の件、以下の通り回答させていただきます。質問①についてはその認識で間違いございません。
補足しますと、「フィールドから正規表現によって値をひとつ取り出す」は、選択してトリガーやルールに配置すると「F1
から正規表現P1
によって値をひとつ取り出して一時フィールドF2
に保存する」といった表現になり、F1
,P1
F2
という 3 つのパラメーターを取ります。例を見ると、P1
にparam1:\s*(.+)
と書かれていると、抽出結果がparam1
に保存されるという理解になっているようにも見えましたが、そのようなことはありません。
保存先はF2
の指定ですべて決まり、P1
にparam1:
と書かれていても、あるいは書かれていなくとも保存先に影響を与えることはありません。このオペレーターの挙動は以下の通りです。-
F1
に書かれている内容 (message.content.text
ならメール本文) の内容に対して正規表現P1
のマッチを試みます- マッチした場合、
F2
で指定された正規表現に最初にマッチした部分の括弧内に当たる箇所を格納します- 括弧がひとつもなかったり複数あったりした場合の挙動については今回の問い合わせの対象外だと思いますので割愛
- マッチしなかった場合、
F2
で指定されたフィールドにnull
を格納します
- マッチした場合、
F2
に格納された内容はさらに後に配置されたオペレーターや、(トリガーやランブックに配置されたオペレーターの場合) アクション内のテキストの展開に利用することができます。質問②につきましては、「フィールドから正規表現によって値をひとつ取り出す」の以下の挙動はルールでもトリガーでも共通です。-
F1
,P1
,F2
はルール/トリガー定義時にすべて入力しなければならない - ルール / トリガー実行時、
F1
に対応するフィールドには文字列が格納されている必要がある (されていなければエラー) -
F2
は実行時に存在する場合にエラーになる (何もないところに作らなければならない)
以上、よろしくお願いします。コメントアクション -
-
お世話になっております。
すみません。追加確認よろしくお願いします。
メール内に解析したいパラメータの内容がない場合は、(正規表現の指定にもよるかと思いますが)内部変数にはNullが設定される(と解釈される)ということでしたが・・・
①NullがPigeonにWEBHOOK経由で渡された場合、読み上げ内容がNullにならないでしょうか?
②もしNullで読み上げられる場合、Nullではなく空文字で解釈させることは可能でしょうか。
※何も読み上げないようにしたいと思っております。
追記
正規表現が「\\s*(.+)」であれば、パラメータとして半角スペースを入れればよいでしょうか?
以上、よろしくお願い致します。
サインインしてコメントを残してください。
コメント
12件のコメント