フローデザイナーはサードパーティアプリへの送信 REST 呼び出しを送信していませんが、システムにはまだ統合ハブプラグインが必要です。Issue フローデザイナーまたはワークフローを使用して外部アプリケーションと統合する場合 (送信 SOAP/REST 呼び出しをサードパーティアプリケーションに送信するなど)、ユーザーは統合ハブプラグインを有効にして、フローデザイナーで対応するフローアクションを使用する必要があります。これは、以下のドキュメントリンクにすでに記載されています。https://docs.servicenow.com/csh?topicname=flow-designer.html&version=latest=================================フローデザイナーソリューションを拡張して、統合ハブの別のサブスクリプションを使用して外部インスタンスやサードパーティアプリケーションと統合できます。================================= 場合によっては、フローデザイナー自体が直接発信コールを行わない場合でも、統合ハブのサブスクリプションを要求するシステムログにライセンスエラーが作成されていることを確認できます。以下は、エラーメッセージの例です。 JavaScriptException: com.glide.sys.OutboundRequestValidator$LicensingError の根本原因:com.glide.sys.OutboundRequestValidator$LicensingError:利用可能な統合ハブプラグインがありません。フローデザイナーからの外部呼び出しには統合ハブサブスクリプションが必要です この記事では、この問題を示すいくつかの典型的なシナリオと、このエラーを解決するためのいくつかの解決策を見ていきます。 再現手順: (作成されたアーティファクトはすべてグローバルアプリケーションスコープ内にあります) 1.テスト用の送信 REST メッセージを作成します。使用されている無料のサードパーティ "jsonplaceholder" REST サービスは、単純な JSON 形式のテキスト メッセージを返します。 2.フローデザイナーで「test_outboundrest」という名前のテストフローを作成します。このフローには、2 つのシステムログメッセージを出力する 2 つの簡単なアクションのみが含まれています。送信 REST ロジックは含まれていません。 3.以下のようにスクリプトインクルード「testOutboundRestMsg」を作成します。intialize 関数では、 sn_fd_FlowAPI.executeFlow() 関数を使用して、手順 2 で作成したフローを呼び出します。これには、別の getOutboundRESTrst() 関数を呼び出して送信 REST 要求を送信する別の main 関数があります。 4.バックグラウンドスクリプトの下でこのスクリプトインクルードを実行します var tstORM = new testOutboundRestMsg(); tstORM.main(); 5.システムログに以下のライセンスエラーが出力されます。利用可能な統合ハブプラグインがないと表示されます。ただし、フローに発信コールはありません。 注 1: 以下のサブフロー「test_outboundrestsubflow」を作成し、 sn_fd_FlowAPI.executeSubflow() 関数を使用してスクリプトインクルードで呼び出すと、同じライセンスエラーが発生します。これは、 executeFlow() 関数と executeSubflow() 関数の両方が同じトランザクションでフローを同期的に実行するためです。 注 2: スクリプトインクルードの getOutboundRESTrst() 関数で、 executeAsync() 関数を使用して RESTMessageV2 呼び出しを非同期に送信する場合、このライセンスエラーも解決されません。REST 呼び出しは、フローと同じトランザクションでまだ実行されているようです。 ReleaseKingston 以降のリリースCauseこれは、フローデザイナーを使用する場合、ServiceNow コア Java コードが、REST メッセージがフローと同じ Java スレッド内から送信されているかどうかをチェックするためです。その場合は、Integration Hub プラグインをインストールする必要があります (これには費用がかかります)。そうしないと、REST 呼び出しがブロックされます。これはすべて、ServiceNow プラットフォームではハードコードされたロジックです。Resolution解決策 1: スクリプトインクルードの初期化関数で sn_fd_FlowAPI.startFlow() 関数を介してフローを呼び出すと、フローが非同期で実行されるようになります。 フロー内の正しいRESTレスポンスとログメッセージは、以下のようにシステムログに出力されます。 サブフローの場合、以下のように sn_fd_FlowAPI.startSubflow() 関数を使用して非同期で呼び出すことができます。 フロー内の正しいRESTレスポンスとログメッセージは、以下のようにシステムログに出力されます。 解決策 2: RESTMessageV2 呼び出しをスクリプトインクルードから別のビジネスルールに移動すると、別のトランザクションで実行されるようになり、ライセンスエラーを解決できます。