条件命令(if、then、else) conditional-instruction
高度なエディターでは、条件命令(if、then、else)をサポートしています。 これにより、より複雑な式を定義できます。 条件命令は、次の要素で構成されています。
- if:最初に評価される条件。
- then:条件評価の結果が true の場合に評価される式。
- else:条件評価の結果が false の場合に評価される式。
NOTE
すべての式は括弧で囲む必要があります。
if (<expression1>)
then
(<expression2>)
else
(<expression3>)
<expression1> は ブール値 を返す必要があります。
<expression2> と <expression3> は、同じタイプまたは互換性のあるタイプを持つ必要があります。 サポートされているシグネチャと戻り値のタイプは次のとおりです。
boolean,boolean : boolean
dateTime,dateTime : dateTime
dateTimeOnly,dateTimeOnly : dateTimeOnly
decimal,integer : decimal
integer,decimal : integer
integer,decimal : decimal
duration,duration : duration
string,string : string
listBoolean,listBoolean : listBoolean
listDateTime,listDateTime : listDateTime
listDateTimeOnly,listDateTimeOnly : listDateTimeOnly
listDateOnly,listDateOnly : listDateOnly
listDecimal,listDecimal : listDecimal
listInteger,listInteger : listInteger
listString,listString : listString
用途
条件命令を使用すると、条件アクティビティの数を減らして、ジャーニーワークフローを最適化できます。 例えば、同じアクションアクティビティ内で、1 つの条件式のみを使用して、1 つのフィールド定義に 2 つの代替オプションを指定できます。
アクションアクティビティの例(条件命令の結果として文字列を想定するフィールドの場合):
if (startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iPad') or startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iOS'))
then
('apns')
else
('fcm')
AI ナレッジリファレンス
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
- TL;DR:このページでは、ジャーニーの高度な式エディターで使用できる
if / then / elseの条件付き命令について説明します。これには、構文ルール、サポートされている型の組み合わせ、実用的な使用例が含まれます。
インテント:
if、then、elseを使用して条件式を作成し、ブール条件に基づいて異なる値を返します- 単一のアクションアクティビティにインライン条件ロジックを埋め込むことで、ジャーニー内の条件アクティビティの数を減らすことができます
thenおよびelse分岐に対して有効なデータ型の組み合わせを決定します- デバイスモデルに基づいてAPNSまたはFCMにプッシュ通知トークンをルーティングするための条件付き命令を適用します
用語集:
- 条件付き命令: ブール値を評価し、2つの式 (製品固有) のいずれかを返す高度なエディターの
if / then / else式コンストラクト - 高度な式エディター:条件、待機アクティビティ、およびアクションパラメーターマッピング (product-specific)で使用される複雑な式を書き込むためのJourney Optimizer インターフェイス
ガードレール:
if、thenおよびelse句のすべての式に括弧が必要ですif句(<expression1>)はブール型を返す必要がありますthenおよびelse式(<expression2>および<expression3>)は、同じ型または互換性のある型である必要があります(例:decimalおよびintegerは互換性があり、stringおよびintegerは互換性がありません)- すべてのタイプの組み合わせがサポートされているわけではありません。サポートされている署名テーブルにリストされているペアのみが有効です
用語:
- 正規名:条件付き命令 – 頭字語:なし – バリアント:if/then/else、三元スタイルの条件
- 同義語:“conditional instruction” = “inline condition” = “if-then-else expression”
- 混同しない:条件付き命令(インライン式) ≠条件アクティビティ(ジャーニーキャンバスノード)
FAQ:
- Q:
if句を括弧で囲む必要がありますか? – はい、if句の条件を含むすべての式に括弧が必要です。 - Q:
if / then / elseを使用して、あるブランチの数値を返したり、別のブランチの文字列を返したりできますか? – いいえ、<expression2>と<expression3>は同じまたは互換性のある型である必要があります。 - Q:条件付き命令によってジャーニーの複雑さが軽減される方法を教えてください。 — 1つの式を使用して、1つのアクションアクティビティ内で2つのフィールド値の代替案を指定し、キャンバス上の別の条件アクティビティノードを回避できます。
- Q:両方のブランチが文字列の場合、条件付き命令はどのようなタイプを返しますか? —
stringを返します。 - Q:
if / then / elseを使用してプッシュ通知チャネルを選択できますか? – はい。例えば、Apple デバイスの場合は'apns'、その他のデバイスの場合は'fcm'を返すようにデバイスモデルを評価しています。
recommendation-more-help
journey-optimizer-help