通知はトリガーされず、メールも作成されません。Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } メール通知が作成されない場合のトラブルシューティングでは、まず有効な受信者が存在するかどうかを確認することが最初のステップです。これをトラブルシューティングする方法は 2 つあります。 最初の最も簡単な方法は、通知の「Notification Preview」を使用することです。該当のレコードを選択し、受信者を確認します。すべての受信者が取り消し線で表示されている場合、該当のレコードに対してメールは作成されません。取り消し線で表示されている受信者の上にカーソルを合わせると、除外された理由を確認できます。2 番目の方法は、プロパティ glide.email.notification.save_when_no_recipients を作成して true に設定することです。問題を再現し、受信者がない sys_email を確認します。メールログには受信者が除外された理由が記録されます。 この記事では、Engine、Event、および Triggered の 3 種類の通知について説明します。 Engine: Engine ベースの通知は、レコードが挿入または更新されたときにトリガーされます。これらのアクションがインスタンスで発生すると、通知エンジンが実行されて対象テーブルのすべての通知を評価し、次に条件を評価します。条件が合致すると、イベント(notification_engine.process)が作成されます。このイベントでは、通知の sys_id が parm1 に、レコードの sys_id が instance として設定されます。イベントプロセッサーがこれらのイベントを処理し、sys_email レコードを作成します(有効な受信者が存在する場合)。 Event: ビジネスルールまたはその他のスクリプトによってイベントが作成されます。これらのイベントが処理されると、イベントプロセッサーは登録されたイベントをトリガーとする通知を検索し、条件を評価して、条件が合致した場合に sys_email が作成されます(有効な受信者が存在する場合)。 Triggered: Triggered 通知は Flow Designer 専用です。Flow Designer プラグインを有効にすると、通知の [Send When] に triggered という sys_choice が追加されます。これらの通知には条件がなく、フローの実行時に(フロー実行中にランタイムエラーが発生しない限り)無条件でトリガーされます。Flow Designer と Triggered 通知は Kingston リリースで追加されました。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Engine ベースのトラブルシューティング 通知の sys_id を parm1 に、レコードの sys_id を instance とした notification_engine.process イベントが存在するかどうかを確認します。このイベントが存在して処理済みであるにもかかわらず sys_email が作成されない場合、通知の条件が合致したことを意味し、有効な受信者が存在しないか、メッセージの内容に問題があると考えられます。通知の「Notification Preview」機能を使用し、イベントが処理された時点の localhost ログでエラーを確認してください。イベントが存在しない場合、条件が合致していない可能性が高いです。アクション実行時点のレコードと照らし合わせて条件を再確認してください。条件が合致しているはずだと確信している場合は、同じ条件を持つ insert/update のビジネスルールを作成してください。Order が 1000 より大きい After BR にして、BR が実行されたかどうかと、対象の条件の値を出力するログ文を記述します。または、条件なしの通知のコピーを作成します。このコピーが機能する場合は、条件を 1 つずつ追加していきます。この BR がスキップされた場合は条件が失敗していることを示します。この BR がそもそも実行されない場合は、どこかの時点でエンジンが停止していることを示します。スクリプトとエンジンの実行順序を確認することで、これに該当するかどうかを判断できます。 詳細については、「スクリプトとエンジンの実行順序」のドキュメントを参照してください。 簡単に説明すると、実行順序は次のとおりです。 Before ビジネスルール(Order < 1000)Before エンジンBefore ビジネスルール(Order >= 1000)データベース操作(insert、update、delete)After ビジネスルール(Order < 1000)After エンジン ← 通知エンジンはここAfter ビジネスルール(Order >= 1000) 6. エンジンが停止しているかどうかをトラブルシューティングするもう 1 つの方法は、[Business Rules (Detailed)] のセッションデバッグを有効にして問題を再現し、レコードの insert または update を実行することです。その後、ビジネスルールが実行されるページに出力を表示できます。対象テーブルのログを確認するようにしてください。前のステップで示した各実行領域の出力が表示されるはずです。After エンジン/通知の実行や After ビジネスルール(Order >= 1000)が表示されない場合は、エンジンの実行を停止している原因を特定する必要があります。 After エンジンが停止する原因 「Run SLAs」ビジネスルールを無効にして、問題が継続するかどうかを確認します。これで問題が解決する場合は、いずれかの SLA がエンジンを停止させています。実行中のビジネスルールを確認し、スクリプト内で setworfkow(false) または setAbortAction(true) を探します。これがエンジンを停止させている原因と考えられます。 詳細については、「ビジネスルールの動作方法」のドキュメントを参照してください。 条件が誤って失敗することが知られている既知の問題 KB0623377 - 高度な条件にコメントのみが含まれているメール通知は、条件が false と評価されるためトリガーされないKB0623384 - 最後のステートメントとして gs.log 呼び出しを含む高度な条件を持つメール通知は実行されないKB0824467 - インバウンドアクション:「Field Actions」と「Script」の両方を使用して新規作成レコードに値を割り当てると、二重更新が発生する Event ベースのトラブルシューティング Event ベースの通知は、イベントが処理された時点で通知条件を確認します。まずイベントが存在し、エラーなしに処理されていることを確認します。イベントが存在する場合は以下の手順に従ってください。存在しない場合は、イベントを作成しているビジネスルールまたはその他のスクリプトに問題があります。 「Notification Preview」機能を使用して、特定のイベントを選択します。選択可能であること、および少なくとも 1 人の受信者が含まれていることを確認します。イベントが処理された時点での条件を再確認します。レコードの変化が速い場合、イベントが作成された時点と処理された時点で値が異なる場合があります。 注意:「Notification Preview」は条件が合致しているかどうかを示すものではなく、受信者とコンテンツの確認のみを目的としています。 イベントが Event Registry に登録されていることを確認します。イベントのレジストリおよび sysevent テーブルで、イベント名の前後にスペースがないことを確認します。これは必ずしも明確ではなく、イベント名をリストビューに追加することがこのケースを確認する最も効果的な方法であることがわかっています。 注意:この場合、手順 1 の「Notification Preview」使用時にイベントを見つけることができないはずです。 イベントが処理された時点の localhost ログを確認し、エラーがないかどうかを確認します。同じパラメーターで同じイベントを手動で作成して、通知がトリガーされるかどうかを確認します。手動ではトリガーされるが、通常のイベント作成時にはトリガーされない場合は、スクリプト内で setworkflow(false) または setAbortAction(true) を確認します。通常のイベント作成時に何らかの原因で実行が停止している可能性が高いです。別のレコード/受信者で同じイベントを作成して、問題がユーザーまたはレコード固有であるかどうかを確認します。それに応じて、ユーザーの通知設定、通知条件、またはカスタムビジネスルールを確認します。条件に関しては、「Engine ベースのトラブルシューティング」の手順を適用します。 Triggered ベースのトラブルシューティング Triggered ベースの通知は notification_engine.process イベントを作成します。これらのイベントが存在する場合のトラブルシューティングは、このイベントが存在する場合の「Engine ベースの通知のトラブルシューティング」と同じです。これらのイベントが処理される時点では条件の評価は行われません。確認するのは受信者とコンテンツのみです。 このイベントが存在しない場合は、Flow Designer の [Flow Executions] タブのエラーと、Source が AutomationHub の syslog エントリを確認します。