バージョン:Rome
Flow Designer

Flow Designer の開発

記事 (1/33)

「Flow Designer の開発」の目標

このモジュールでは、次のことを学習します。

  • スポークの作成
  • アクションの作成と編集
  • ドラフトアクションのテスト
  • アクションの公開
  • サブフローの作成と使用
  • サブフローのテスト
  • サブフローの公開

記事 (2/33)

この学習モジュールについて

重要:この学習モジュールの内容は、Quebec ServiceNow リリース用に最後に更新されたもので、Rome リリースでは更新されていません。Rome リリースとこの学習モジュールのコンテンツとの間に違いが見られる場合があります。

Asset Management Spoke アプリケーションは、アプリケーション作成の背後にある概念とプロセスを紹介し、デモンストレーションするために、この学習モジュール全体で使用されます。Asset Management Spoke アプリケーションは構築しません。

演習では、NeedIt アプリケーションを開発します。

演習は、次の 3 つの方法で示されます。

  • ナビゲーションペインの [演習] アイコン。
  • ページ上部の [演習] アイコンと「演習」という単語。
  • ページタイトルの「演習」または「課題」という単語。

ナビゲーションとページタイトルに、強調表示された演習ページのアイコンと演習プリフィックスが表示された、演習ページの上部。

NeedIt アプリケーションを使用すると、ユーザーは複数の部門からのサービスを要求できます。ソースコントロールを使用して、この学習モジュールに必要なすべての NeedIt アプリケーションファイルから始めます。

演習 (3/33)

演習:「Flow Designer の開発」モジュールのためにリポジトリをフォークしてアプリケーションをインポートする

ServiceNow は GitHub を使用して、開発者サイトの学習コンテンツをコピーして使用するアプリケーションリポジトリを提供します。リポジトリには、アプリケーションファイルの固定セットであるタグが含まれているため、部分的に構築されたアプリケーションを使用して作業を開始できます。ServiceNow が提供するリポジトリを個人開発者インスタンス (PDI) にコピーしてインポートすることで、モジュール内の実践的な演習に必要なすべてのファイルを取得できます。

注意:ServiceNow が開発者プログラムの学習コンテンツで GitHub を使用する方法の詳細と、リポジトリをフォークしてアプリケーションをインポートする方法に関するビデオを見るには、『GitHub ガイド』を参照してください。

この演習では、次のことを行います。

  1. ServiceNow リポジトリを GitHub アカウントにフォークします。
  2. リポジトリのフォークから PDI にアプリケーションをインポートします。

重要:リポジトリを既にフォークしてインポートしている場合は、次の演習に進み、タグから分岐を作成して、アプリケーションファイルを PDI にロードできます。モジュールを完了するには、NeedIt アプリケーションファイルが必要です。

リポジトリのフォーク

演習のこのセクションでは、開発者サイトの学習コンテンツで使用するアプリケーションリポジトリのパーソナルフォークを作成します。

  1. Web ブラウザーで、github.com を開きます。

  2. GitHub アカウントをお持ちの場合は、サインインします。お持ちでない場合は、新しいアカウントにサインアップします。

  3. サインインしたら、NeedIt リポジトリを開きます。

  4. [フォーク] ボタン (GitHub の [フォーク] ボタン) をクリックして、GitHub アカウントにリポジトリのコピーを作成します。

  5. 既にリポジトリをフォークしている場合は、ダイアログが表示されます。リポジトリを既にフォークしている場合は、次の演習に進みます。

    リポジトリは以前にフォークされている

  6. GitHub アカウントが複数の組織に属している場合は、GitHub でフォークを作成する場所を指定します。[Fork devtraining-application-release] ダイアログで、<お使いの GitHub ユーザー名> リンクを選択します。リポジトリのプライベートフォークを作成します。GitHub はリポジトリフォークのページを自動的にロードします。

    GitHub ユーザーが複数の組織に属している場合、GitHub はフォーク先を尋ねます。GitHub ユーザー名を選択します。

  7. リポジトリのフォークの URL が次のようになっているかを検証します:<お使いの GitHub ユーザー名>/devtraining-application-release

    フォークしたコピーは自動的にロードされます。

  8. フォークしたリポジトリの URL をコピーします。

    1. [コード] ボタンをクリックします。

    2. URL に ServiceNow ではなく GitHub ユーザー名が含まれていることを確認します。

    3. HTTPS が選択されていることを確認します。選択されていない場合は、[クローン] フライアウトで [HTTPS] タブを選択します。

    4. [クリップボードにコピー] ボタン ([クリップボードにコピー] ボタン) をクリックします。

      フォークしたリポジトリの URL をコピーする

      注意:次のセクションでは、コピーした URL を使用して、フォークしたリポジトリへの接続を設定します。

フォークしたリポジトリからアプリケーションをインポートします。

演習のこのセクションでは、アプリケーションリポジトリを ServiceNow にインポートします。プロセスの一環として、まず GitHub アカウントの資格情報レコードを作成してから、Studio を使用してアプリケーションリポジトリを PDI にインポートします。

  1. 管理者ユーザーとして PDI にログインします。PDI がない場合は、ServiceNow 開発者サイトを開いて Rome PDI を入手してください。

    注意:PDI の入手方法については、『個人開発者インスタンス (PDI) ガイド』を参照してください。

  2. GitHub 接続の資格情報レコードを作成します。

    重要:資格情報レコードを作成する必要があるのは 1 回だけです。別の演習で資格情報レコードを既に作成している場合は、この手順をスキップしてください。

    1. Application Navigator を使用して、[接続および資格情報] > [資格情報] を開きます。

    2. [新規] ボタンをクリックします。

    3. [作成する資格情報のタイプは?] リストで、[基本認証資格情報] リンクをクリックします。

    4. 資格情報レコードを設定します。

        名前 GitHub 資格情報 (GitHub Credentials) - <お使いの github.com ユーザー名>
        ユーザー名 <お使いの github.com ユーザー名>
        パスワード <お使いの github.com 個人アクセストークン>

      基本認証資格情報の新しいレコードフォーム。

      重要:GitHub では、ServiceNow などの他のプラットフォームからリポジトリにアクセスするには、個人アクセストークンが必要です。認証時には、パスワードの代わりに個人用アクセストークンが使用されます。GitHub パーソナルアクセストークンを作成する方法については、『GitHub ガイド』の「GitHub への認証」セクションを参照してください。

    5. [送信] ボタンをクリックします。

  3. Application Navigator を使用して [システムアプリケーション] > [Studio] を開きます。

    Studio アプリケーションを開きます。

  4. 新しいブラウザータブで Studio が開きます。

  5. [アプリケーションを選択] ダイアログで、[ソースコントロールからインポート] ボタンをクリックします。

    [ソースコントロールからインポート] ボタンをクリックします。

  6. [アプリケーションのインポート] ダイアログで、分岐したリポジトリへの接続を設定します。

      URL <リポジトリのフォークドバージョン用にコピーしたURL>
      資格情報 GitHub 資格情報 (GitHub Credentials) - <お使いの github.com ユーザー名>
      分岐 メイン (main)

    注意[分岐] の値を [メイン (main)] に変更すると、「デフォルトの命名規則を使用することを強くお勧めします」という情報メッセージが表示されます。[分岐] フィールドの値はリポジトリに存在する必要があります。開発者サイトのトレーニングリポジトリにはすべて [メイン (main)] 分岐があり、デフォルト値の代わりに使用する必要があります。

    github.com からコピーした URL を使用して、GitHub にフォークしたリポジトリへの接続を構成します。

  7. [インポート] ボタンをクリックします。

  8. アプリケーションのインポートが完了したら、[アプリケーションの選択] ボタンをクリックします。

    有効なリポジトリが存在する必要があります。

    注意:接続に失敗した場合は、フォークしたリポジトリ URL ではなく ServiceNow のリポジトリ URL を [URL] フィールドに入力しているか、あるいは GitHub アカウントで 2 要素認証を有効にしている可能性があります。接続のトラブルシューティング方法については、 「GitHub 問題のトラブルシューティング」を参照してください。

  9. [アプリケーションを選択] ダイアログで、Studio で編集するために、アプリケーションをクリックして開きます。

    重要:タグから分岐を正常に作成しないと、次の演習で Studio にアプリケーションファイルが表示されません。

演習 (4/33)

演習:「Flow Designer の開発」モジュール用にブランチを作成する

この演習では、モジュールで使用するアプリケーションファイルを含む「Flow Designer の開発」モジュールのために、NeedIt アプリケーションの分岐を作成します。

注意:この演習を開始する前に、「演習:「Flow Designer の開発」モジュールのためにリポジトリをフォークしてアプリケーションをインポートする」で説明したように、NeedIt リポジトリをフォークしてインポートしておく必要があります。

  1. 前回の演習で NeedIt アプリケーションを Studio でまだ開いていない場合は、ここで開きます。

    1. ServiceNow ブラウザーのメインウィンドウで、Application Navigator を使用して [システムアプリケーション] > [Studio] を開きます。

    Studio アプリケーションを開きます。

    1. [アプリケーションを選択] ダイアログで、NeedIt アプリケーションをクリックします。
  2. Studio で、[ソースコントロール] メニューを開き、[分岐を作成] メニューアイテムを選択します。

    [ソースコントロール] メニューおよび [分岐を作成 (Create Branch)] メニューアイテムを開きます。

  3. 分岐を構成します。

      分岐名 FDDevelopment
      タグから作成 LoadForFDDevelopmentModule
  4. [分岐を作成] ボタンをクリックします。

  5. [閉じる] ボタンをクリックします。

  6. タグに含まれているアプリケーションファイルをロードするには、(Studio ではなく) ServiceNow ブラウザーのメインタブに戻り、ブラウザーの再ロードボタンをクリックしてページを更新します。

    注意:分岐の作成に失敗した場合は、フォークしたリポジトリ URL ではなく ServiceNow のリポジトリ URL を [URL] フィールドに入力しているか、あるいは GitHub アカウントで 2 要素認証を有効にしている可能性があります。GitHub 接続問題のトラブルシューティング方法については、『GitHub ガイド』の「GitHub 問題のトラブルシューティング」セクションを参照してください。

記事 (5/33)

スポークの操作

スポークとは、Flow Designer のカスタムアクションまたはサブフローを含むスコープ対象のアプリケーションのことです。スポークは、関連するアクション、サブフロー、およびアプリケーションファイルの論理的グループです。開発者は、スポークロジックを独自のアプリケーションで再利用できます。Flow Designer にはベースラインスポークが含まれています。

Flow Designer とスポーク

たとえば、Visual Task Boards (VTB) スポーク には、VTB ボード、レーン、およびカードを管理するカスタムアクションが含まれています。開発者は、自身のアプリケーションで VTB スポークアクションを使用して、フリーフォーム VTB の作成、VTB メンバー (ユーザー) の管理、VTB へのレーンの追加、および VTB 上のカードの移動を行うことができます。

ServiceNow プラグインには、プラグイン固有の機能を提供するフローを作成するスポークが含まれています。たとえば、Security Operations Management プラグインには、Security Incident Response プロセスを管理するアクションを持つ Security Operations スポークが含まれています。Field Service Management および Security Operations には、スポークも含まれています。

Slack や HipChat などのサードパーティアプリケーションとデータ連携するスポークは、IntegrationHub スポークです。IntegrationHub スポークにはサブスクリプションが必要です。

スポークの作成

スポークを作成するプロセスは、スコープ対象のアプリケーションを作成するプロセスと同じです。

スポークを作成するアプリケーションを作成します。

開発者向けのヒント:慣例により、アプリケーション名に「Spoke」という単語を追加して、アプリケーションをスポークとして識別します。

アプリケーションにカスタムアクションを作成します。

Studio のアプリケーションエクスプローラーでの Asset Management Spoke のアクション。

スポークの使用

[アクション選択] ペインのアクションは、スポークごとにグループ化されています。[アクション選択] ペインには、スコープのアプリケーション名が「Spoke」という単語なしで一覧表示されます。

Flow Designer でアクションを選択する場合、Asset Management Spoke という名前のアプリケーションは Asset Management となっています。

記事 (6/33)

アクションの構造

アクションは、フローによって実行される操作です。コアアクションには、[承認の要求][レコードの作成][ログ]、および [メールの送信] が含まれます。開発者は、一般的な操作またはカスタムアプリケーションに固有の操作を実行するカスタムアクションを作成できます。

アクションの構成要素は次のとおりです。

  • 1 つ以上の操作ステップ
  • 変数をステップに渡すアクション入力
  • 他のフローアクションで使用するデータピル (変数) を作成するためのアクション出力

アクション入力はフロー内の構成情報を取得し、ステップは操作を実行し、アクション出力は他のアクションで使用するデータピルです。

記事 (7/33)

アクションの作成

action_designer ロールまたは admin ロールを持つユーザーは、カスタムアクションを作成して保存できます。

Flow Designer でのアクションの作成

Flow Designer のランディングページからアクションを作成するには、[新規] ボタンをクリックして [アクション] メニューアイテムを選択します。

[新規] ボタンは、ランディングページの右上にあります。[新規] ボタンをクリックし、[アクション] を選択します。

別の Flow Designer からアクションを作成するには、[フロー、サブフロー、またはアクションを作成] ボタン ([フロー、サブフロー、またはアクションの作成] ボタン) をクリックし、[アクション] メニューアイテムを選択します。

ランディングページ以外の Flow Designer タブから新しいアクションを作成するためのボタンは、タブのすぐ右側に白いプラス記号が付いた灰色のボタンです。

Studio でのアクションの作成

Studio でアクションを作成するには:

  1. [アプリケーションファイルを作成] リンクをクリックします。
  2. [Flow Designer] カテゴリを選択します。
  3. [アクション] オプションを選択します。
  4. [作成] ボタンをクリックします。

新しいアクションを作成するには、Studio でアクションタイプのアプリケーションファイルを作成します。

Flow Designer が新しいブラウザウィンドウで開きます。新しいアクションを構成します。

アクションプロパティの構成

以下のようにアクションプロパティを構成します。

[アクションプロパティ] フォームが表示され、新しいアクションの基本プロパティを設定できます。

  • 名前:アクションの一意の名前。
  • アプリケーション:アクションのアプリケーションスコープ。
  • アクセス可能: アクションを利用可能にする対象を、すべてのアプリケーションスコープにするか、アクションが作成されたスコープのみにするかを選択するオプション。
  • 保護:アクションを読み取り専用にするオプション。
  • カテゴリ:アクションをグループ化するカテゴリ。アプリケーションで利用可能なカテゴリがない場合は、虫眼鏡ボタンをクリックし、[新規] ボタンをクリックしてカテゴリを作成します。
  • 説明:アクションの実行内容を記述するフィールド。(A field to document what the action does.) フロー開発者には、アクション選択ペインにこの説明が表示されます。
  • アクション注釈:アクションのデフォルトの注釈テキスト。(The default annotation text for the action.)

開発者向けのヒント:アクション名にはスペースを使用できます。アクションには分かりやすい名前を使用します。

記事 (8/33)

ステップの追加

アクションデザイナーを使用してアクションを編集します。編集中のアクションごとに個別の [アクションデザイナー] タブが開きます。

アクションデザイナーのレイアウトでは、アクションアウトラインパネルとデータパネルの間にステップエディターがあります。

  • アクションヘッダー:アクションを設定、テスト、公開するためのアクション名とコントロールを表示します。
    • プロパティ:[アクションプロパティ] ダイアログが開きます。
    • テスト:アクションのテストを開始します。
    • 実行:アクションの実行のリストを含む [Flow Designer] タブを開きます。
    • 公開:アクションをフローとサブフローで使用できるようにします。
    • 保存:アクションを保存します。
    • [その他のアクション] メニュー ([その他のアクション] メニューは 3 つのドットで表示されます。):アクションオプションを設定するか、フローをコピーします。
  • [アクションアウトライン] パネル[アクションアウトライン] パネルで構成するアクションの入力、ステップ、および出力を選択します。パネルを折りたたむと、画面のスペースが広がります。
  • ステップエディター[アクションアウトライン] パネルで選択したアイテムを構成します。
  • [データ] パネル:アクション変数のデータピルにアクセスします。パネルを折りたたむと、画面のスペースが広がります。
  • アクションフッター:アクションのステータスとアプリケーションを表示します。
    • ステータス:ドラフト、変更、または公開のアクションステータスを示します。ステータスについては、このモジュール内で後ほど詳しく説明します。
    • アプリケーション:アクションのアプリケーションを識別します。

ステップを追加するには、[新しいステップを追加] ボタン ([新しいステップを追加] ボタンは [入力] と [出力] の間にあります。) をクリックします。

ステップを削除するには、[アクションアウトライン] パネルでステップを選択し、そのステップの [このステップを削除] アイコン ([このステップを削除] アイコン。) をクリックします。

[アクションアウトライン] パネルのボタンを使用して、ステップの追加/削除を行います。

注意:ステップは、いったん追加されるとアクションで並べ替えることはできません。削除して再作成する必要があります。

[アクションに追加するステップを選択] ダイアログを使用して、実行する操作を選択します。

[アクションに追加するステップを選択] ダイアログには、ServiceNow データに対する 8 つの一般的な操作と、ユーティリティタイプの操作がいくつか用意されています。

ステップを選択し、名前とステップオプションを構成します。構成オプションはステップタイプによって異なります。ServiceNow ドキュメントサイトには、ステップ構成オプションの詳細が記載されています。アクションデザイナーのドキュメントでステップタイプをクリックすると、構成オプションが表示されます。

開発者向けのヒント:ステップの名前を変更して、ステップの目的を詳しく記述します。ステップ名をクリックして、デフォルトのステップ名を変更します。

記事 (9/33)

スクリプトステップの構成

スクリプトステップを使用して、アクションでサーバー側 JavaScript を実行します。スクリプトステップには入力変数と出力変数が別々に用意されているため、アクションデータを JavaScript データにマッピングできます。

入力変数は、スクリプトに情報を渡します。入力変数には、アクションからの静的情報または動的情報を含めることができます。データピルを使用して、入力変数の値を動的に設定します。入力オブジェクトは自動的にインスタンス化され、入力変数をオブジェクトプロパティとして保存します。構文 inputs.variableName を使用して、スクリプトで入力変数を使用します。

出力変数はデータピルを作成して、スクリプトから他のステップまたはアクション出力にデータを渡します。出力変数は、スクリプトから値を取得します。出力オブジェクトは自動的にインスタンス化され、出力変数をオブジェクトプロパティとして保存します。構文 outputs.variableName = valueFromScript を使用して、出力変数の値を設定します。

inputs.inName と outputs.outName を使用して、スクリプト内の入力変数と出力変数を操作します。

スクリプトステップの説明は、データ連携のためにサブスクリプションが必要であることを示しています。ServiceNow インスタンスとのみやり取りするスクリプトステップには、サブスクリプションは必要ありません。REST または他の API 呼び出しを介して外部アプリケーションとやり取りするスクリプトステップには、IntegrationHub へのサブスクリプションが必要です。

スクリプトステップ

記事 (10/33)

アクションのテスト

アクションをテストするには、アクションヘッダーの [テスト] ボタンをクリックします。[アクションのテスト] ダイアログで、アクション入力の値を構成して [テストの実行] ボタンをクリックします。

[利用可能な権限の確認] アクションの [アクションのテスト] ダイアログには、利用可能な権限を確認するソフトウェアを構成するためのフィールドがあります。

アクションが実行されたら、[テストの実行が終了しました。アクション実行の詳細を表示します] というリンクをクリックして、結果を表示します。

注意:デフォルトでは、テストは同期して実行され、テスト結果を迅速に取得します。テストを非同期で実行するには、[バックグラウンドでテストを実行] オプションを選択します。

実行の詳細でのステップ詳細の表示

アクションの実行の詳細には、[ステップ] セクションが含まれています。[ステップ] セクションを展開して、ステップ設定とランタイムの詳細を表示します。

[実行の詳細] タブのカスタムアクションには、ステップの詳細を記録するための [ステップ] セクションが含まれています。

[ステップ構成] セクションを使用して、ステップ入力変数とランタイム値を表示します。

[ステップ出力データ] セクションを使用して、出力変数とランタイム値を表示します。

フローでのアクションのテスト

フローでアクションをテストするには、アクションをフローに追加し、フローの [テスト] ボタンをクリックします。新しく作成されたアクションは、ドラフトアクションと呼ばれます。ドラフトアクションをテストするには、フローに以下が必要です。

  • [ドラフト] または [変更済み] のステータス。
  • [ドラフトアクションを表示] トグルが True に設定されていること。

[ドラフトアクションを表示] トグルを設定するには、[その他のアクション] メニュー ([その他のアクション] メニュー) をクリックし、[構成] メニューアイテムを選択します。[ドラフトアクションを表示] トグルをクリックして、[選択済み] に設定します。

フローのヘッダーにドラフトステータスが表示され、[ドラフトアクションを表示] が true に設定されます。

[ドラフトアクションを表示] トグルを無効にすると、ドラフトアクションがフローから削除されます。

削除アラート - [ドラフトアクションを表示] を OFF に切り替えると、ドラフトアクションとそのすべての参照が削除されます。

演習 (11/33)

演習:アクションを作成する

この演習では、NeedIt アクションのスポークを作成し、フローで使用するアプリケーションプロパティの値を取得するアクションを作成します。

注意:アプリケーションプロパティは、アプリケーションの動作を変更するための構成可能なアプリケーションパラメーターです。アプリケーションプロパティの詳細については、「アプリケーションプロパティ」モジュールを参照してください。

NeedIt のプロパティを表示

  1. ServiceNow のメインウィンドウ (Studio ではない) で、Application Navigator を使用して [NeedIt] > [管理] > [プロパティ] を開きます。
  2. [NeedIt タスクが自動的に終了するまでの遅延日数] プロパティの値をメモします。

NeedIt アクションのスポークを作成

  1. Studio でアプリケーションを作成します。
    1. Studio が開いていない場合:
      1. ServiceNow のメインウィンドウ (Studio ではない) で、Application Navigator を使用して [システムアプリケーション] > [Studio] を開きます。
      2. [アプリケーションを作成] ボタンをクリックします。
    2. Studio が開いていない場合:
      1. Studio で、[ファイル] メニューをクリックし、[アプリケーションを作成] メニューアイテムを選択します。
  2. これがインスタンスで作成した最初のアプリケーションである場合は、ようこそページの [始めましょう] ボタンをクリックします。
  3. アプリケーションを構成します。
      名前 NeedIt Spoke
      スコープ (この値は自動的に生成されます)
  4. [作成] ボタンをクリックします。
  5. [Studio で続行 (詳細)] リンクをクリックします。
  6. [アプリケーションを選択] ダイアログで、編集する NeedIt Spoke アプリケーションをクリックして開きます。

アクションを作成

  1. アクションを作成します。
    1. Studio で [アプリケーションファイルを作成] リンクをクリックします。
    2. [フィルター...] フィールドに「アクション」というテキストを入力するか、左ペインのカテゴリから [Flow Designer] を選択します。
    3. 中央ペインからファイルタイプとして [アクション] を選択し、[作成] ボタンをクリックします。
    4. Flow Designer が新しいウィンドウで開きます。
  2. アクションを構成します。
      名前 プロパティを取得 (Get Property)
      アプリケーション NeedIt Spoke
      説明 アプリケーションプロパティの値を取得します。(Get the value of an application property.)
  3. [送信] ボタンをクリックします。

アクションにステップを追加

  1. [アクションのアウトライン] パネルで [新しいステップを追加] ボタン ([新しいステップを追加] ボタン)をクリックします。

  2. [追加するステップを選択] ダイアログで、[スクリプト] ステップを選択します。

  3. ステップの名前を [アプリプロパティのルックアップ (Look up App Property)] に変更します。

    このステップの名前は「アプリケーションプロパティのルックアップ (Look up App Property)」です。

  4. property_name 入力変数を追加します。

    1. [入力変数] セクションで、[変数の作成] リンクをクリックします。
    2. 変数を設定します。
        名前 property_name
        x_58872_needit.autoCloseOverdue
  5. property_value 出力変数を追加します。

    1. [出力変数] セクションで、[変数の作成] リンクをクリックします。
    2. 変数を設定します。
        ラベル プロパティ値 (Property value)
        名前 property_value
        タイプ 文字列
  6. [スクリプト] フィールドの内容を次のスクリプトに置き換えます。

    (function execute(inputs, outputs) { // Get the value for the input property and pass it as output outputs.property_value = gs.getProperty(inputs.property_name); })(inputs, outputs);
  7. [保存] ボタンをクリックします。

    「アプリケーションプロパティのルックアップ (Look up App Property)」スクリプトステップには、入力変数、出力変数、およびスクリプトが含まれています。

アクションをテスト

  1. [テスト] ボタンをクリックします。

  2. [アクションのテスト] ダイアログで、[テストの実行] ボタンをクリックします。

  3. [アクションのテスト] ダイアログで、[テストの実行が終了しました。アクション実行の詳細を表示します] というリンクをクリックします。

  4. [実行の詳細] で、[ステップ] をクリックしてステップの詳細を展開します。

    質問スクリプトステップからの出力は何でしたか?

    回答:アプリケーションプロパティの値が変更されていない限り、アプリケーションプロパティの値は 21 であるため、[スクリプト] ステップからの出力は 21 です。

    プロパティ値は 21 です。

  5. [実行の詳細] タブを閉じます。

  6. [アクションのテスト] ダイアログを閉じます。

記事 (12/33)

アクション入力の追加

アクション入力を定義して、変数をアクションステップと出力に渡します。アクション入力は、Flow Designer でのアクションの構成オプションです。

アクション入力は、フロー内のアクションを構成するために使用するフィールドになります。

アクション入力を追加するには、[アクションアウトライン] パネルから [入力] を選択します。[入力の作成] ボタンをクリックして、アクション入力を作成します。次のようにアクション入力を構成します。

アクション入力には、[名前] と [タイプ] が必要です。[タイプ] が [参照] の場合は、参照テーブルを指定します。

  • ラベル:アクション入力の分かりやすい名前。
  • 名前:アクション入力のフィールド名。この値はラベルから自動的に生成されますが、アクションを保存する前に変更できます。
  • タイプ:入力のデータタイプ。ServiceNow ドキュメントサイトでは、アクションの入力および出力データタイプについて説明しています。
  • 必須:入力を必須としてマークするための切り替え。

[参照] などの一部のデータタイプでは、参照テーブルが必要です。参照テーブルを選択するために参照テーブルが必要なタイプでは、[展開] アイコン ([展開] アイコンは円の中にある矢印です。) を使用します。結果の [タイプ] フィールド値は、Type.Reference テーブルの形式を使用します。

Reference.Software Model タイプの入力変数。

アクションに必要な入力の [必須]トグルを true に設定します。

アクションデザイナーでは、アクション入力は [データ] パネルでのデータピルです。

アクション入力データピル

詳細入力の構成

[詳細入力の切り替え] アイコン ([詳細入力の切り替え] アイコンは下向き矢印です。) をクリックして、追加の入力オプションを構成します。

参照入力の詳細入力には、[ヒント]、[デフォルト値]、および [参照修飾子の条件] が含まれています。

詳細オプションは、データタイプによって異なります。すべてのデータタイプは次のとおりです。

  • 名前:アクション入力の列名表示。
  • ヒント:入力のツールヒントを設定します。
  • デフォルト値:デフォルト値を設定します。

参照入力の詳細入力オプションを使用して [参照修飾子の条件] を設定し、フローで選択できるレコードを制限します。文字列入力の詳細入力オプションを使用して、最大長を設定します。

アクション入力の順序付け

アクションがフローで使用される場合、アクション入力は、アクションデザイナーで構成された順序で並べられます。

アクションデザイナーでのアクション入力の順序は、Flow Designer のアクション構成オプションの順序です。

アクション入力のハンドル (ハンドルアイコン。) アイコンをクリックしてドラッグし、アクション入力の順序を変更します。

アクション入力を新しい場所にドラッグして並べ替えます。

記事 (13/33)

アクション出力の追加

アクション出力を使用して、アクション内で使用される変数をフローで使用できるようにします。アクション出力はフロー内のデータピルです。

アクション出力はフロー内のデータピルです。

アクション出力を追加するには、[アクションアウトライン] パネルから [出力] を選択します。[出力の作成] リンクをクリックして、アクション出力を作成します。

アクション出力が作成されていない場合は、[出力の作成] リンクをクリックして最初のアクション出力を作成します。

次のようにアクション出力を構成します。

アクション出力のラベルと名前を構成します。

  • ラベル:出力変数の人間が判読可能な名前
  • 名前:スクリプトで使用されるときの出力変数の名前
  • タイプ:アクション出力のタイプ
  • 必須:値が必要な場合に選択

[出力の作成] ボタンをクリックして、さらにアクション出力を作成します。

すべてのアクション出力を構成したら、[編集モードを終了] ボタンをクリックしてアクション出力の値を構成します。

アクション出力値を構成します。

  • :フローに渡す値。値は静的にも動的にも設定できます。データピルを使用して動的に値を設定します。

さらにアクション出力を作成したり、既存のアクション出力を編集したりするには、[出力を編集] ボタンをクリックします。

記事 (14/33)

アクションの公開

開発中、アクションは [ドラフト] ステータスです。アクティブなフローでアクションを使用するには、アクションを公開します。

アクションを公開するには、アクションヘッダーの [公開] ボタンをクリックします。

[公開] ボタンはアクションヘッダーにあります。

公開されたアクションのステータスは [公開済み] です。

[ステータス] は、アクションが公開されたことを示しています。

公開済みアクションが変更された場合は、アクションを再度公開し、公開済みアクションを使用して変更をフローに反映します。

[ドラフトアクションを表示] が true に設定されたフローは、ドラフトアクションで機能します。[ドラフトアクションを表示] が false に設定されたフローは、公開アクションでのみ機能します。

公開済みアクションを非公開にすることはできません。アクションを使用しなくなった場合は、フローまたはサブフローからアクションを削除します。

演習 (15/33)

演習:アクションの入力と出力を追加する

前の演習では、アプリケーションプロパティの値を取得するアクションを作成しました。この演習では、アクションに入力と出力を追加して、アクションを動的にします。アクションが完了したら、これを公開します。

アクションに入力変数を追加

  1. 前回の演習で [プロパティを取得 (Get Property)] アクションがまだ開いていない場合は、ここで開きます。

  2. アクション入力を作成します。

    1. [アクションアウトライン] で、[入力] アイテムをクリックします。
    2. [入力の作成] ボタンをクリックします。
    3. 次のように入力を構成します。
        ラベル プロパティ (Property)
        名前 (この値は自動的に生成されます)
        タイプ 文字列
        必須 選択済み
  3. ステップのアクション入力を使用します。

    1. [アクションアウトライン] で、[アプリケーションプロパティのルックアップ] ステップをクリックします。

    2. [入力変数] セクションで、property_name 入力変数の [値] を削除します。

    3. [データ] パネルから、[プロパティ (Property)] データピルを property_name 入力変数値にドラッグします。

      新しいアクション入力変数データピルをスクリプトステップ入力データピルにドラッグして、フローからステップに値を渡します。

  4. [保存] ボタンをクリックします。

  5. [テスト] ボタンをクリックします。

    質問[テストアクション] ダイアログの変更点は何ですか。

    回答:入力をテストのアクションに渡すことができるようになりました。

    これで、アクションに追加できる入力値が用意されます。

  6. [キャンセル] ボタンをクリックします。

アクションに出力変数を追加

  1. [プロパティを取得 (Get Property)] アクションを開いて編集します。
  2. [アクションアウトライン] で、[出力] アイテムをクリックします。
  3. [出力を作成] リンクをクリックします。
  4. 出力変数を設定します。
      ラベル プロパティ値 (Property value)
      名前 property_value
      タイプ 文字列
  5. [編集モードを終了] ボタンをクリックします。
  6. [プロパティ値] を構成します。
      [データ] パネルの [アプリケーションプロパティのルックアップ] ステップから [プロパティ値] データピルをドラッグします。
  7. [保存] ボタンをクリックします。

入力および出力をテスト

  1. [テスト] ボタンをクリックします。
  2. テストのアクションを構成します。
      プロパティ x_58872_needit.autoCloseOverdue
  3. [テスト実行] ボタンをクリックします。
  4. [テストの実行が終了しました。アクション実行の詳細を表示します] というリンクをクリックします。
  5. アクションのランタイム値を確認し、入力と出力が予想どおりの値になっているかを検証します。
  6. 完了したら、[実行の詳細] タブを閉じます。
  7. [アクションのテスト] ダイアログを閉じます。

アクションを公開

  1. [プロパティを取得 (Get Property)] アクションに戻って編集します。
  2. [公開] ボタンをクリックします。

過去の日付を取得するアクションを作成

演習のこのセクションでは、数日前の日付を計算するアクションを作成します。

  1. Flow Designer で、[フロー、サブフロー、またはアクションの作成] ボタン ([フローまたはアクションの作成] ボタン。) をクリックし、[アクション] メニューアイテムを選択します。

  2. アクションを構成します。

      名前 過去の日付を取得 (Get Days Ago Date)
      アプリケーション NeedIt Spoke
      説明 数値を入力し、何日前の日付を返すかを指定します。(Input a number and return the date that many days ago.)
  3. [送信] ボタンをクリックします。

  4. 計算を実行するスクリプトを追加します。

    1. [アクションのアウトライン] パネルで [新しいステップを追加] ([新しいステップを追加] ボタン) ボタンをクリックします。
    2. [追加するステップを選択] ダイアログで、[スクリプト] ステップを選択します。
    3. ステップの名前を「過去の日付を計算」に変更します。
    4. 入力変数を追加します。
        名前 days_amo
        7
    5. 出力変数を追加します。
        ラベル 新しい日付 (New date)
        名前 new_date
        タイプ 日付
    6. [スクリプト] フィールドの内容を次のスクリプトに置き換えます。
    (function execute(inputs, outputs) { // Pass days_ago value into gs.daysAgo() method to get date outputs.new_date = gs.daysAgo(inputs.days_ago); })(inputs, outputs);
  5. [保存] ボタンをクリックします。

    構成が完了した [過去の日付を計算 (Calculate daysAgo)] ステップ。

    注意:ステップタイトルは切り捨てられ、完全には表示されません。

  6. アクションをテストし、結果を確認します。このステップでは、7 日前の日付を返すはずです。

  7. [実行の詳細] タブと [アクションのテスト] ダイアログを閉じます。

アクションの入力と出力を追加

  1. [過去の日付を取得] アクションに戻って編集します。
  2. 日数を取得するアクション入力を作成します。
    1. [アクションアウトライン] で、[入力] アイテムをクリックします。
    2. [入力の作成] ボタンをクリックします。
    3. 次のように入力を構成します。
        ラベル 何日前 (Days ago)
        タイプ 整数
        必須 選択済み
  3. アクションの入力を使用するように [過去の日付を計算] スクリプトステップを更新します。
    1. [アクションアウトライン] で、[過去の日付を計算] ステップをクリックします。
    2. [入力変数] セクションで、days_ago 入力変数の [値] を削除します。
    3. [データ] パネルから、[何日前 (Days ago)] データピルを days_ago 入力変数の [値] にドラッグします。
  4. [保存] ボタンをクリックします。
  5. 計算された日付を返すアクション出力を作成します。
    1. [アクションアウトライン] で、[出力] アイテムをクリックします。
    2. [出力を作成] リンクをクリックします。
    3. 出力変数を設定します。
        ラベル 計算日 (Calculated date)
        名前 calculated_date
        タイプ 日付
    4. [編集モードを終了] ボタンをクリックします。
        (ステップ ▸ 過去の日付を計算 ▸ 新しい日付)
  6. [保存] ボタンをクリックします。
  7. アクションをテストして、12 日前の日付を取得します。
  8. 結果を調べて、アクションが 12 日前の日付を返すことを確認します。
  9. [実行の詳細][アクションのテスト] ダイアログを閉じます。
  10. [過去の日付を取得] アクションを公開します。
  11. Flow Designer を閉じます。

記事 (16/33)

サブフローとは

サブフローとは、フローで使用する一連の再利用可能なアクションのことです。開発者は、カスタムアプリケーションに固有の一般的な処理を実行するサブフローを作成できます。

サブフローの構成要素は次のとおりです。

  • サブフロー内のアクションに変数を渡すためのサブフロー入力
  • 一連のアクション、フローロジック、およびサブフロー
  • 他のフローアクションまたはサブフローで使用するデータピル (変数) を作成するためのサブフロー出力

サブフローには、入力、出力、アクション、フローロジック、その他のサブフローがあります。

サブフローにはトリガーがありません。サブフローは、フローまたはスクリプトから実行されます。

記事 (17/33)

サブフローとアクション

サブフローとカスタムアクションの両方で、開発者は任意のフローから呼び出せる再利用可能なロジックを作成できます。

開発者はいつカスタムアクションを作成し、いつサブフローを作成する必要がありますか?

再利用可能なロジックの必要なステップ数が限られている場合、開発者はカスタムアクションまたはサブフローを使用できます。再利用可能なロジックに複数のステップまたはアクションが必要な場合、サブフローではアクションを並べ替えることができるため、カスタムアクションよりもサブフローの方が適しています。再利用可能なロジックに条件付きフローロジックが必要な場合は、アクションでフローロジックを使用できないため、サブフローを使用します。再利用可能なロジックにカスタムスクリプトが必要な場合は、スクリプトステップがサブフローで使用できないため、カスタムアクションを使用します。

アクション サブフロー
1 つまたは 2 つのステップ/アクションが必要 はい はい
複数のステップ/アクションが必要 いいえ はい
フローロジックが必要 いいえ はい
カスタムスクリプトステップが必要 はい いいえ
フローの呼び出しとは異なるユーザーコンテキストでプロセスを実行する必要がある いいえ はい

記事 (18/33)

サブフローの作成

Flow Designer または Studio でサブフローを作成します。

Flow Designer でのサブフローの作成

Flow Designer のランディングページからサブフローを作成するには、[新規] ボタンをクリックして [サブフロー] メニューアイテムを選択します。

[新規] ボタンは、ランディングページの右上にあります。[新規] ボタンをクリックし、[サブフロー] を選択します。

別の Flow Designer から新しいアクションを作成するには、[フロー、サブフロー、またはアクションの作成] ボタン ([フロー、サブフロー、またはアクションの作成] ボタン) をクリックし、[サブフロー] メニューアイテムを選択します。

ランディングページ以外の Flow Designer タブから新しいサブフローを作成するためのボタンは、タブのすぐ右側に白いプラス記号が付いた灰色のボタンです。

Studio でのサブフローの作成

Studio でサブフローを作成するには:

  1. [アプリケーションファイルを作成] リンクをクリックします。
  2. [Flow Designer] カテゴリを選択します。
  3. [フロー] オプションを選択します。
  4. [作成] ボタンをクリックします。

新しいフローを作成するには、Studio でフロータイプのアプリケーションファイルを作成します。

Flow Designer が新しいブラウザーウィンドウで開き、[フロー] ダイアログが開きます。[フロー] ダイアログで [サブフロー] オプションを選択し、[次へ] ボタンをクリックします。

[フロー] ダイアログを使用して、Studio でフローまたはサブフローを作成します。

[サブフロープロパティ] ダイアログボックスが開きます。

サブフローのプロパティの構成

サブフローのプロパティを構成します。スクロールすると、ダイアログに表示されないプロパティを表示できます。

[サブフローのプロパティ] フォームが表示され、新しいサブフローの基本プロパティを設定できます。

  • 名前:サブフローの一意の名前。
  • 説明:サブフローの実行内容を記述するフィールド。
  • アプリケーション:サブフローのアプリケーションスコープ。
  • アクセス可能: サブフローを利用可能にする対象を、すべてのアプリケーションスコープにするか、アクションが作成されたスコープのみにするかを選択するオプション。
  • カテゴリ:サブフローをグループ化するカテゴリ。アプリケーションで使用できるカテゴリがない場合は、[ルックアップレコード] ([ルックアップレコード] ボタンは虫眼鏡のように見えます。) をクリックし、[新規] ボタンをクリックしてカテゴリを作成します。
  • 保護:サブフローを読み取り専用にするオプション。
  • サブフロー注釈:サブフローのデフォルトの注釈テキスト。
  • 実行方法:フローが実行されるコンテキスト。フローを開始するユーザーまたはシステムユーザーにすることができます。
  • ロールを使用して実行:フローの実行時に適用する 1 つまたは複数のロールを指定します。[ロールを使用して実行] は、[実行方法][セッションを開始するユーザー] に設定されている場合にのみ使用できます。

開発者向けのヒント:サブフロー名にはスペースを使用できます。サブフローには分かりやすい名前を使用します。

記事 (19/33)

サブフロー入力の追加

サブフロー入力を定義して、サブフロー内のアクションに変数を渡します。サブフロー入力は、Flow Designer でのサブフローの構成オプションです。

サブフロー入力は、フロー内のサブフローを構成するために使用するフィールドになります。

サブフロー入力を追加するには、[新規入力を追加] ボタン ([新規入力を追加] ボタン。) をクリックしてサブフロー入力を作成します。次のようにサブフロー入力を構成します。

サブフロー入力にはラベルとタイプが必要です。[タイプ] に参照テーブルが必要な場合は、そのタイプの参照テーブルを選択します。

  • ラベル:サブフロー入力の分かりやすい名前。
  • 名前:アクション入力のフィールド名。この値はラベルから自動的に生成されますが、アクションを保存する前に変更できます。
  • タイプ:入力のデータタイプ。ServiceNow ドキュメントサイトでは、サブフローの入力および出力データタイプについて説明しています。
  • 必須:入力を必須としてマークするための切り替え。

[参照] などの一部のデータタイプでは、参照テーブルが必要です。参照テーブルを選択するために参照テーブルが必要なタイプでは、[展開] アイコン ([展開] アイコンは円の中にある矢印です。) を使用します。[タイプ] フィールド値は、Type.Reference テーブルの構文を使用します。

Reference.Software Model タイプの入力変数。

サブフローに必要な入力の [必須]トグルを true に設定します。

サブフロー入力は、サブフローの [データ] パネルにあるデータピルです。

サブフロー入力のデータピル

詳細入力の構成

[詳細入力の切り替え] アイコン ([詳細入力の切り替え] アイコンは下向き矢印です。) をクリックして、追加の入力オプションを構成します。

参照入力の詳細入力には、[ヒント]、[デフォルト値]、および [参照修飾子の条件] が含まれています。

すべてのデータタイプに共通の詳細オプションは次のとおりです。

  • 名前:サブフロー入力の列名表示。
  • デフォルト値:デフォルト値を設定します。
  • ヒント:入力のツールヒントを設定します。

詳細オプションは、データタイプによって異なります。参照入力の詳細入力オプションを使用して [参照修飾子の条件] を設定し、フローで選択できるレコードを制限します。

サブフロー入力の順序付け

サブフローがフローで使用される場合、サブフロー入力はサブフローで構成された順序になります。より重要なサブフロー入力を最初に配置します。

フローでのサブフロー入力順序は、サブフローの構成の順序と一致します。

サブフロー入力のハンドルアイコン (ハンドルアイコン。) をクリックしてドラッグし、サブフロー入力の順序を変更します。

入力ハンドルをクリックし、ドラッグして並べ替えます。

記事 (20/33)

サブフロー出力の追加

サブフロー出力を使用して、サブフロー内で使用される変数をフローで使用できるようにします。サブフロー出力は、フロー内のデータピルです。

サブフロー出力は、フロー内のデータピルです。

サブフロー出力を追加するには、[新規出力を追加] ボタン ([新規出力を追加] ボタン。) をクリックしてサブフロー出力を作成します。次のようにサブフロー出力を構成します。

サブフロー出力にはラベルとタイプが必要です。[タイプ] に参照テーブルが必要な場合は、そのタイプの参照テーブルを選択します。

  • ラベル:サブフローの出力名。
  • 名前:スクリプトで使用される出力変数のフィールド名[名前] の値は [ラベル] から自動的に生成されないため、手動で設定する必要があります。
  • タイプ:出力のデータタイプ。ServiceNow ドキュメントサイトでは、サブフローの入力および出力データタイプについて説明しています。

[参照] などの一部のデータタイプでは、参照テーブルが必要です。参照テーブルを選択するために参照テーブルが必要なタイプでは、[展開] ([展開] アイコンは円の中にある矢印です。) アイコンを使用します。[タイプ] フィールド値は、Type.Reference テーブルの構文を使用します。

Reference.Software Model タイプの出力変数。

記事 (21/33)

サブフロー出力の割り当て

サブフローの [サブフロー出力の割り当て] フローロジックを使用して、サブフロー出力に値を割り当てます。

サブフロー出力は、フロー内のデータピルです。

サブフロー出力に値を割り当てるには、[出力を追加 (Add output)] ([出力を追加 (Add output)] ボタン。) ボタンをクリックして値を選択し、サブフロー出力に割り当てます。次のようにサブフロー出力を構成します。

サブフロー出力にはラベルとタイプが必要です。[タイプ] に参照テーブルが必要な場合は、そのタイプの参照テーブルを選択します。

  • 名前:値を割り当てるサブフロー出力。
  • データ:フローに渡す値。値は静的にも動的にも設定できます。データピルを使用して動的に値を設定します。

サブフロー出力値が複数回割り当てられた場合、サブフローで定義された最後の値が使用されます。この例では、アクション 3 の [私の出力 (My output)] の値が、アクション 2 で設定された [私の出力 (My output)] の値を上書きします。アクション 4 で [私の出力 (My output)] の値を再度設定すると、アクション 3 で設定された [私の 出力 (My output)] の値が上書きされます。サブフローが実行されると、[私の出力 (My output)] には、アクション 4 で割り当てられた値があります。

フローロジックがない場合、サブフロー出力に定義された最後の値が実行時に割り当てられます。

フローロジックブロックを使用すると、サブフロー内の他の値に基づいてサブフロー出力を設定できます。この例では、If/Else If/Else ブロックを使用して、最初のアクションで見つかった最初のユーザー名に基づいてサブフロー出力が設定されています。

フローロジックでは、サブフロー出力はランタイムを実行する最後のブランチに割り当てられます。

記事 (22/33)

サブフローのテスト

サブフローをテストするには、サブフローヘッダーの [テスト] ボタンをクリックします。

サブフローヘッダーの [テスト] ボタンをクリックして、フローをテストします。

[サブフローのテスト] ダイアログで、サブフロー入力の値を入力して [テストの実行] ボタンをクリックします。

[サブフローのテスト] ダイアログでサブフロー入力の値を指定します。

注意:デフォルトでは、テストは同期して実行され、テスト結果を迅速に取得します。テストを非同期で実行するには、[バックグラウンドでテストを実行] オプションを選択します。

テスト結果の表示

テストの実行後に、[テストの実行が終了しました。サブフローの実行の詳細を表示します。] というリンクをクリックして、Flow Designer の新しいタブでフローの実行の詳細を開きます。

テストの実行後、「サブフローの実行の詳細を表示します」のリンクをクリックすると、サブフローの実行の詳細が開きます。

テストが完了したら、キャンセルボタンまたは閉じるボタン ([閉じる] ボタンは隅にある X です。) をクリックして、[テストサブフロー] ダイアログを閉じます。

サブフローの実行の詳細はフローの実行の詳細と同じですが、サブフローの実行の詳細には [トリガー] セクションではなく [入力と出力] セクションがあります。

サブフローの実行の詳細には、サブフローの入力と出力のランタイム値を表示する [入力および出力] セクションが含まれています。

記事 (23/33)

サブフローの公開

開発中、サブフローは [ドラフト] ステータスになっています。フローでサブフローを使用するには、サブフローを公開します。

サブフローを公開するには、サブフローヘッダーの [公開] ボタンをクリックします。

[公開] ボタンはサブフローヘッダーにあります。

未変更の公開済みサブフローのステータス[公開済み] です。

公開済みサブフローが変更されるまで、ステータスは [公開済み] になります。

公開済みサブフローが変更された場合は、サブフローを再度公開し、公開済みサブフローを使用して変更をフローに反映します。

公開済みサブフローのみをフローで使用できます。公開済みサブフローに加えられた変更は、変更が公開されるまでフロー内で実行されません。

注意:公開されたサブフローのみをフローで選択できます。

記事 (24/33)

サブフローの使用

フローへのサブフローの追加

フローにサブフローを追加するには、[アクション、フローロジック、またはサブフローを追加] リンクをクリックします。サブフローを追加するには、[サブフロー] ボタンをクリックします。

[サブフロー] ボタンをクリックして、[サブフロー] 選択ペインを表示します

[サブフロー] 選択ペインを使用して、フローに追加するサブフローを選択します。サブフローはアプリケーションごとにグループ化されています。アプリケーション内では、サブフローをカテゴリ別にグループ化できます。サブフローの詳細を表示するには、サブフローにカーソルを合わせます。

Flow Designer はサブフローをアプリケーションごとにグループ化します。サブフローは検索できます。サブフローにカーソルを合わせると、詳細が表示されます。

注釈を追加 ([注釈を追加] アイコン) アイコンを使用して、サブフローの目的に関する追加の詳細を入力します。

開発者向けのヒント:ドキュメントのサブフローには常に注釈を含めます。同僚も将来の自分も、それに感謝するでしょう。

サブフロー実行の詳細の表示

フロー実行の詳細にサブフローの結果を表示します。サブフロー名をクリックして、サブフローの入力と出力のランタイムの詳細を表示します。

フロー実行の詳細でサブフロー名をクリックして、サブフローの入力と出力のランタイムの詳細を表示します。

[クリックするか Enter を押して、すべての子アクションを展開してください] アイコン ([アクションの詳細を展開] アイコン。) をクリックし、サブフローアクションの実行の詳細を表示します。

[サブフローの詳細を展開] アイコンをクリックして、サブフローアクションの実行ランタイムの詳細を表示します。

演習 (25/33)

演習:サブフローを作成してテストする

この演習では、[NeedIt Spoke] にサブフローを作成して、期限切れの NeedIt タスクを処理します。

作成するサブフローは次のようになります。

  • 期限切れの NeedIt タスク[作業メモ] を更新し、NeedIt タスクをクローズします。
  • NeedIt タスクのクローズをログに記録
  • 自動的にクローズされたタスクをフォローアップするために、Fred Luddy の NeedIt タスクを作成する

サブフローを作成

  1. サブフローを作成します。
    1. Studio で [アプリケーションファイルを作成] リンクをクリックします。
    2. [フィルター...] フィールドに「フロー」というテキストを入力するか、左ペインのカテゴリから [Flow Designer] を選択します。
    3. 中央ペインからファイルタイプとして [フロー] を選択し、[作成] ボタンをクリックします。
    4. [フロー] ダイアログで、[サブフロー] オプションを選択し、[次へ] ボタンをクリックします。
  2. サブフローを構成します。
      名前 期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)
      説明 期限切れの NeedIt タスクをクローズしてログに記録します。(Close and log overdue NeedIt Tasks.) マネージャーのフォローアップ NeedIt タスクを作成します。(Create follow up NeedIt Task for manager.)
      アプリケーション NeedIt Spoke
      実行方法 セッションを開始するユーザー
  3. [送信] ボタンをクリックします。

サブフロー入力を追加

  1. サブフロー入力を作成して、NeedIt タスクレコードを渡します。

    1. [選択して、サブフローの入力および出力を作成]リンクをクリックします。
    2. [新規入力を追加] ボタン ([新規入力を追加] ボタン。) をクリックします。
    3. 入力を構成します。
        ラベル NeedIt タスク (NeedIt task)
        必須 選択済み
    4. 入力の [タイプ] を構成します。
      1. [参照] タイプを選択します。

      2. NeedIt タスク [x_58872_needit_needit_task] 参照テーブルを選択します。

        [参照] を選択して、「NeedIt タスクテーブル」を選択します。

  2. サブフロー入力を作成して、NeedIt タスクをクローズした [理由] を渡します。

    1. [新規入力を追加] ボタン ([新規入力を追加] ボタン。) をクリックします。
    2. 入力を構成します。
        ラベル 理由 (Reason)
        タイプ 文字列
  3. [保存] ボタンをクリックします。

    構成された NeedIt タスクと参照入力。

サブフロー出力を追加

  1. サブフロー出力を作成して、フォローアップ NeedIt タスクレコードを返します。
    1. [サブフローの入力と出力] セクションで、[新規出力を追加] ボタン ([新規入力を追加] ボタン。) をクリックします。
    2. 出力 を構成します。
        ラベル フォローアップタスク (Follow-up task)
        名前 followup_task
        タイプ Reference.NeedIt タスク
  2. [完了] ボタンをクリックします。
  3. [保存] ボタンをクリックします。

アクションを追加

  1. 期限切れの NeedIt タスクを更新するアクションを追加します。
    1. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。

    2. [アクション] ボタンをクリックします。

    3. [レコードを更新] アクションを選択します。

    4. アクションを構成します。

        レコード (入力 ▸ NeedIt タスク)
        テーブル (この値は自動的に入力されます)
        フィールド [ステータス] [未完了でクローズ]
        [作業メモ] [ (入力 ▸ 理由)]

      構成された「タスクの更新」アクション。

    5. [完了] ボタンをクリックします。

    6. アクションを説明する任意の注釈を追加します。注釈には、アクションの内容を明確に記述する必要があります。

  2. タスクのクローズをログに記録するアクションを追加します。
    1. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。

    2. [アクション] ボタンをクリックします。

    3. [ログ] アクションを選択します。

    4. アクションを構成します。

        メッセージ (入力 ▸ 理由)
    5. [完了] ボタンをクリックします。

    6. アクションを説明する任意の注釈を追加します。注釈には、アクションの内容を明確に記述する必要があります。

  3. フォローアップ NeedIt タスクを作成するアクションを追加します。
    1. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。

    2. [アクション] ボタンをクリックします。

    3. [タスクの作成] アクションを選択します。

    4. アクションを構成します。

        テーブル NeedIt タスク[x_58872_needit_needit_task]
        フィールド [簡単な説明] [NeedIt タスクがタイムリーにクローズされませんでした]
        [説明] [期限切れの NeedIt タスクの原因の特定 (入力 ▸ NeedIt タスク ▸ 番号)]
        [担当者] [Fred Luddy]

      構成された「タスクの作成」アクション。

    5. [完了] ボタンをクリックします。

    6. アクションを説明する任意の注釈を追加します。注釈には、アクションの内容を明確に記述する必要があります。

  4. [保存] ボタンをクリックします。

サブフロー出力の割り当て

  1. サブフロー出力に値を割り当てるフローロジックを追加します。
    1. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。
    2. [フローロジック] ボタンをクリックし、[サブフロー出力の割り当て] メニューアイテムを選択します。
    3. [出力を追加 (Add output)] ボタン ([出力を追加 (Add output)] ボタン。) をクリックします。
    4. 出力 を構成します。
        名前 フォローアップタスク (Follow-up task)
        データ (3 ▸ NeedIt タスクレコード)
    5. [完了] ボタンをクリックします。
    6. フローロジックを説明する任意の注釈を追加します。注釈には、アクションの内容を明確に記述する必要があります。
  2. [保存] ボタンをクリックします。

構成されたサブフロー。

サブフローをテスト

  1. テストで使用する NeedIt タスクレコードを作成します。

    1. ServiceNow のメインウィンドウで、Application Navigator を使用して [NeedIt] > [NeedIt タスク] を開きます。
    2. [新規] ボタンをクリックします。
    3. NeedIt タスクを設定します。
        担当者 Beth Anglin
        期日 <過去の日付を選択>
        簡単な説明 特許の質問に答える (Answer patent question)
    4. [送信] ボタンをクリックします。
  2. [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローに戻ります。

  3. [テスト] ボタンをクリックします。

  4. サブフローテストを構成します。

      NeedIt タスク <以前に作成された NeedIt タスクを選択>
      理由 [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローテスト
  5. [テスト実行] ボタンをクリックします。

  6. [サブフローのテスト] ダイアログで、[テストの実行が終了しました。サブフローの実行の詳細を表示します。] リンクをクリックします。

  7. [実行の詳細]で、[サブフローの入力と出力] をクリックして、入力と出力の詳細を表示します。

  8. 入力 NeedIt タスクに加えられた更新を探索します。

    1. NeedIt タスクサブフロー入力のランタイム値リンクをクリックして、NeedIt タスクレコードをプレビューします。レコードのステータスはどうなっていますか。
    2. [レコードを開く] ボタンをクリックして、NeedIt タスクレコード全体を新しいタブまたはウィンドウに表示します。
    3. [アクティビティ] フィールドで作業メモを検索します。
    4. [NeedIt タスク] タブまたはウィンドウを閉じます。
  9. 新しいフォローアップ NeedIt タスクを探索します。

    1. Flow Designer ウィンドウで、[フォローアップタスク] 出力のランタイム値をクリックして、フォローアップ NeedIt タスクレコードをプレビューします。

    質問[アサイン先][簡単な説明]、および [説明] フィールドはどのように入力されましたか。

    回答[担当者][Fred Luddy] です。[簡単な説明] は、「NeedIt タスクがタイムリーにクローズされませんでした」です。[説明] は、「NITASK 番号を使用した期限切れの NeedIt タスクの原因の特定」です。フォローアップ NeedIt タスクのフィールド値は、サブフローの [タスクの作成] アクションで構成されました。

  10. [実行の詳細] タブを閉じます。

  11. [サブフローのテスト] ダイアログを閉じます。

  12. ログエントリを表示します。

    1. ServiceNow のメインウィンドウで、Application Navigator を使用して [システムログ] > [システムログ] > [すべて] を開きます。
    2. [メッセージ] フィールドに「期限切れの NeedIt タスク」というテキストが含まれているログエントリを検索します。
    3. ログのメッセージがサブフローで構成されたメッセージと一致しているかを確認します。

演習 (26/33)

演習:サブフローを使用する

この演習では、フロー内の [期限切れの NeedIt タスクの処理] サブフローを公開して使用します。

サブフローを公開

  1. [期限切れの NeedIt タスクの処理] サブフローをフローに追加してみます。

    1. Flow Designer で、テストに使用するフローを作成します。

        名前 テストサブフロー (Test Subflow)
        アプリケーション NeedIt Spoke
        トリガー 1 回実行 (任意の日付)
    2. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。

    3. [サブフロー] ボタンをクリックします。

    4. [サブフローの検索] フィールドを使用して、[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローを検索します。

      質問[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローは選択肢にありますか。あるのはなぜですか?あるいは、ないのはなぜですか?

      回答[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローは使用できません。公開されたサブフローしかフローで使用できないからです。[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] はまだ公開されていません。

  2. [キャンセル] ([アクションをキャンセル] ボタン。) ボタンをクリックします。

  3. サブフローを公開します。

    1. [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローを開いて編集します。
    2. [公開] ボタンをクリックします。

フローにサブフローを追加

  1. [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローをフローに追加します。

    1. [サブフローのテスト] フローに戻って編集します。

    2. [アクション、フローロジック、またはサブフローを追加] リンクをクリックします。

    3. [サブフロー] ボタンをクリックします。

    4. [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローを選択します。

      質問[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローの構成オプションは何ですか。また、それらはどこから来たのですか?

      回答[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローには、NeedIt タスク [NeedIt Task]理由の 2 つの構成オプションがあります。これらの構成オプションは、サブフローで定義された入力です。

  2. サブフローを構成します。

      NeedIt タスク [NeedIt タスク] <NeedIt タスクを選択>
      理由 フロー内のタスクをクローズします。
  3. [完了] ボタンをクリックします。

  4. [保存] ボタンをクリックします。

フローをテストする

  1. [テスト] ボタンをクリックします。
  2. [フローのテスト] ダイアログで、[テストの実行] ボタンをクリックします。
  3. フローとサブフローの実行詳細を表示します。
    1. [テストの実行が終了しました。フロー実行の詳細を表示します。] リンクをクリックします。
    2. [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフロー名をクリックして、サブフローの入力と出力を表示します。
    3. [サブフローの詳細を展開] アイコン ([アクションの詳細を展開] アイコン。) をクリックして、サブフローアクションの実行詳細を表示し、すべてのアクションが正常に完了したことを確認します。

演習 (27/33)

課題:期限切れの NeedIt タスクを更新するためのスケジュール済みフローを作成する

前の演習では、2 つのアクションと 1 つのサブフローをテストして公開しました。この演習では、スケジュール設定済みフローのアクションとサブフローを使用して、期限切れの NeedIt タスクレコードを見つけてクローズします。

準備 - NeedIt タスクレコードを作成

課題のこの部分では、期日が 21 日より前の NeedIt タスクレコード (autoCloseOverdue アプリケーションプロパティの値) を作成します。期限切れであるが、期日が 21 日未満の 2 つ目の NeedIt タスクレコードを作成します。

作業しているモジュールによっては、NeedIt タスクレコードが既に存在する場合があります。

  1. ServiceNow ブラウザーのメインウィンドウ (Studio ではない) で、Application Navigator を使用して [NeedIt] > [NeedIt タスク] を開きます。NeedIt タスクレコードが既にある場合とない場合があります。
  2. 期限切れの NeedIt タスクレコードを作成します。
    1. [新規] ボタンをクリックします。
    2. NeedIt タスクを設定します。
        担当者 Beth Anglin
        期日 <21 日より前の任意の日付を選択>
        ステータス オープン
        簡単な説明 非常に遅れている
    3. 期限切れの NeedIt タスクレコード番号をメモします。
  3. [送信] ボタンをクリックしてレコードを保存します。
  4. 期限切れの NeedIt タスクレコードをもう 1 つ作成します。
    1. [新規] ボタンをクリックします。
    2. NeedIt タスクを設定します。
        担当者 Beth Anglin
        期日 <21 日未満で今日から数日前の日付を選択>
        ステータス オープン
        簡単な説明 少し遅れている
    3. 期限切れの NeedIt タスクレコード番号をメモします。
  5. [送信] ボタンをクリックしてレコードを保存します。

課題

課題のこの部分では、このモジュールで学習した内容を適用して、期限切れの NeedIt タスクをチェックするスケジュール済みフローを作成し、期限切れのタスクをクローズし、理由を付けてタスクの作業メモを更新し、自動クローズをログに記録します。

  • NeedIt アプリケーションの一部としてフローを作成します。
  • 毎週金曜日の午後 11 時にフローを実行します。
  • タスクを自動的にクローズするためのタスクの経過時間を決定するために、x_58872_needit.autoCloseOverdue アプリケーションプロパティの値を取得します。
  • [過去の日付を取得] アクションを使用して、期日と比較するために期限切れ日を計算します。
  • プロパティに設定された日数より前の期日を持つオープンな NeedIt タスクを検索します。
  • 各期限切れの NeedIt タスクを、[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローで更新します。
    • サブフローの理由入力の NeedIt タスクレコードの番号を渡します。
  • フローを保存してテストします。
  • NeedIt タスクレコードとシステムログを表示して、結果を検証します。

課題ソリューション

課題についてサポートが必要な場合は、次の手順を使用して課題フローを作成してください。ここでの答えは、考えられるソリューションの 1 つです。自分のソリューションが、これとは異なっている場合があります。

フロープロパティの構成:

フロー構成


トリガー構成:

トリガー構成


プロパティの取得アクションの構成:

プロパティの取得アクションの構成


過去の日付の取得アクションの構成:

過去の日付の取得アクションの構成


レコードの検索アクションの構成:

レコードの検索アクションの構成


For Each フローロジック構成:

For Each フローロジック構成


サブフローサンプルの構成 (理由は異なる場合があります):

レコードの更新アクションの構成


更新された NeedIt タスク

[アクティビティ] フィールドを使用して、送信された [作業メモ] を表示します。

更新された NeedIt タスクのステータスが [未完了でクローズ] で、アクティビティストリームに新しい作業メモがあります。


ログエントリ:

ServiceNow のメインウィンドウで、Application Navigator を使用して [システムログ] > [システムログ] > [すべて] を開きます。Needit タスクを含むログレコードでフィルタリングします。

ログエントリを検索します。


ログエントリ:

ログエントリには更新の詳細が記載されています。

記事 (28/33)

フロー、サブフロー、およびアクションを使用したスクリプティング

公開されたフロー、サブフロー、およびアクションは、FlowAPI を使用してサーバー側スクリプトで開始できます。Flow Designer には、スクリプトでフロー、サブフロー、およびアクションを使用するためのコードスニペットが用意されています。

注意:このモジュールは、サーバー側のコードスニペットのみを対象としています。フロー、サブフロー、およびアクションは、クライアントサイドのコードで実行するように構成することもできますが、追加の構成が必要です。

FlowAPI メソッド

FlowAPI オブジェクトには、フロー、サブフロー、およびアクションを同期および非同期で実行するメソッドが含まれています。グローバルのスコープ指定スクリプトで FlowAPI メソッドにアクセスするには、sn_fd.FlowAPI オブジェクトを使用します。

同期メソッドを使用するサーバーサイドスクリプトは、フロー、サブフロー、またはアクションの完了を待ってから処理を実行します。同期メソッドを使用するスクリプトは、サブフローとアクションの出力変数にアクセスできます。フローには出力変数がありません。フロー、サブフロー、またはアクションを同期的に実行するメソッド:

  • executeFlow (フロー名, inputs)
  • executeSubflow (サブフロー名, inputs)
  • executeAction (アクション名, inputs)

非同期メソッドを使用するサーバーサイドスクリプトは、フロー、サブフロー、またはアクションを開始し、フロー、サブフロー、またはアクションの完了を待たずに処理を実行します。フロー、サブフロー、またはアクションを非同期的に実行するメソッド:

  • startFlow (フロー名, inputs)
  • startSubflow (サブフロー名, inputs)
  • startAction (アクション名, inputs)

すべてのメソッドには、実行するフロー、サブフロー、またはアクションの名前と、入力をマップするオブジェクトが必要です。たとえば、このスクリプトは入力オブジェクトを作成し、test_flow と呼ばれるグローバルフローを実行します。

// Map inputs. For a flow with a record trigger, inputs are the record and table var inputs = {}; inputs['current'] = current; // GlideRecord of table: inputs['table_name'] = 'incident'; // Execute the global flow called test_flow sn_fd.FlowAPI.executeFlow('global.test_flow', inputs);

オプションの 3 番目のパラメーターをこれらすべてのメソッドで使用して、実行のタイムアウトをミリ秒単位で設定できます。値が指定されていない場合、タイムアウトはデフォルトで com.glide.hub.flow_api.default_execution_time プロパティの値になります。

コードスニペットの取得

flow_designer ロールまたは admin ロールを持つユーザーは、フロー、サブフロー、またはアクションのコードスニペットを取得できます。

開発者がコードスニペットを取得する前に、フロー、サブフロー、およびアクションを公開する必要があります。コードスニペットを取得するには、[その他のアクション] ボタンをクリックし、[コードスニペットの作成] メニューアイテムを選択します。

公開されたフロー、サブフロー、およびアクションにはそれぞれ、[その他のアクション] ボタンの下に [コードスニペット] メニューアイテムがあります。

[実行するコードスニペット...] ダイアログで、[コードスニペットをクリップボードにコピー] ボタンをクリックして、コードスニペットをコピーします。コードスニペットをスクリプトに貼り付けます。

[このサブフローを実行するコードスニペット] ダイアログには、ボタンをクリックするだけでクリップボードにコピーできるサブフローのコードスニペットがあります。

コードスニペットの使用

フロー、サブフロー、およびアクションのコードスニペットはすべて同じ構造になっています。コードスニペットは、エラーをキャッチする try/catch ステートメントを含む関数です。コードスニペットには、非同期メソッドと同期メソッドの両方が含まれています。非同期メソッドと同期メソッドの両方を実行しないでください。フロー、サブフロー、またはアクションが 2 回実行されてしまいます。

各コードスニペットには、入力を持つオブジェクト、非同期および同期で実行するコマンド、および各出力の変数が含まれています。

  • 入力オブジェクト:サブフロー入力とアクション入力は、入力オブジェクトで定義されます。レコードトリガーを持つフローは、レコードを入力として受け入れます。開発者は入力の値を指定する必要があります。各入力には、想定される情報のタイプを説明するコメントが含まれています。
  • 非同期メソッド:非同期メソッドはデフォルトでコメント化されています。戻る情報が必要ないときにフロー、サブフロー、またはアクションを呼び出すには、非同期メソッドでこの行のコメントを解除します。同期メソッドは削除するか、コメントアウトします。
  • 同期メソッド:デフォルトでは同期メソッドが使用されるため、スクリプトはフロー、サブフロー、またはアクションから出力された情報を使用できます。
  • 出力変数:サブフローまたはアクションからの出力は変数に取り込まれ、同期して呼び出されたときに後続のスクリプトステップで使用されます。たとえば、開発者は、アクションからの出力を取得してレコードを更新できます。

スクリプトにコードスニペットを貼り付け、入力値を更新して、任意のコードを追加します。この例は、UI アクションのコードスニペットを示しています。このコードスニペットは、ソフトウェアモデルで利用可能な権限の数を見つけるアクション用です。現在のソフトウェアモデルがアクションへの入力として渡されます。出力は情報メッセージに出力されます。

現在のレコードを入力 hardware_model として渡し、出力 substitute_model でメッセージを表示する、UI アクションスクリプトで使用されるコードスニペット。

演習 (29/33)

演習:コードスニペットを作成して使用する

この演習では、[期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローのコードスニペットを取得し、UI アクションでこのスニペットを使用して、ユーザーが期限切れのタスクを手動でクローズできるようにします。

この演習では、UI アクションを使用します。UI アクションに慣れていない場合は、「UI アクションを使用したインタラクションの作成」チュートリアルブログ投稿にアクセスして、UI アクションをよく理解してください。

コードスニペットを取得

  1. Flow Designer の [期限切れの NeedIt タスクの処理 (Handle Overdue NeedIt Tasks)] サブフローに戻ります。
  2. [その他のアクション] ボタン ([その他のアクション] ボタン。) をクリックし、[コードスニペット] メニューアイテムを選択します。
  3. コードスニペットのコードを確認します。
  4. [コードスニペットをクリップボードにコピー] ボタンをクリックします。
  5. [このサブフローを実行するコードスニペット] ダイアログを閉じます。

UI アクションを作成

  1. NeedIt アプリケーションで UI アクションを作成します。

    1. Studio で、[ファイル] メニューをクリックし、[切り替え] メニューアイテムを選択します。
    2. NeedIt アプリケーションをクリックします。
    3. [アプリケーションファイルを作成] リンクをクリックします。
    4. [フィルター...] フィールドにテキスト「ui」を入力するか、左ペインのカテゴリから [サーバー開発 (Server Development)] を選択します。
    5. 中央ペインからファイルタイプとして [UI アクション] を選択し、[作成] ボタンをクリックします。
  2. UI アクションを構成します。

      名前 期限切れの NeedIt タスクのクローズ (Close Overdue NeedIt Task)
      テーブル NeedIt タスク [x_58872_needit_needit_task]
      挿入を表示 未選択 (オフ)
      フォームリンク 選択済み (オン)
      ヒント 期限切れの NeedIt タスクをクローズし、調査するフォローアップタスクを作成
      条件 current.due_date < new GlideDate()
      スクリプト <コピーしたコードスニペットをペースト>
  3. [スクリプト] フィールドにサブフロー入力を構成します。

    1. current」を inputs['needit_task'] = の後に追加し、現在の NeedIt タスクをサブフローに渡します。
    2. inputs ['reason'] = の後に 「期限切れタスクが手動でクローズされました」を追加します。
  4. UI アクションをサブフローによって作成されたフォローアップタスクにリダイレクトし、リターンを元の NeedIt タスクに設定します。

    1. action.setRedirectURL(followup_task); を出力変数セクションの下に追加します。

    2. action.setReturnURL(current);action.setRedirectURL() の後に追加します。

      完成した UI アクションスクリプト。

  5. [送信] ボタンをクリックします。

UI アクションをテスト

  1. NeedIt タスクを作成してテストします。

    1. ServiceNow のメインウィンドウで、Application Navigator を使用して [NeedIt] > [NeedIt タスク] を開きます。

    2. [新規] ボタンをクリックします。

    3. NeedIt タスクを設定します。

        担当者 Beth Anglin
        期日 <未来の日付を選択>
        簡単な説明 テスト UI アクションサブフロー (Test UI Action Subflow)
    4. 値をメモします。

    5. [他のアクション] メニュー ([他のアクション] メニュー。) をクリックして、[保存] メニューアイテムを選択します。

      質問[期限切れの NeedIt タスクのクローズ (Close Overdue NeedIt Task)] UI アクションをフォームで使用できますか?使用できるのはなぜですか?あるいは、使用できないのはなぜですか?

      回答:いいえ。[期限切れの NeedIt タスクのクローズ (Close Overdue NeedIt Task)] UI アクションはフォームで使用できません。[期限切れの NeedIt タスクのクローズ (Close Overdue NeedIt Task)] UI アクションの条件では、NeedIt タスク期日が過去の場合にのみ UI アクションが表示されます。

  2. 期日の値を <過去の日付> に変更します。

  3. [他のアクション] メニュー ([他のアクション] メニュー。) をクリックして、[保存] メニューアイテムを選択します。

  4. [期限切れの NeedIt タスクのクローズ (Close Overdue NeedIt Task)] 関連リンクをクリックします。

  5. 実行操作にクロススコープ権限が付与されたことを示す情報メッセージが表示される場合があります。このメッセージは、UI アクションが初めて実行されたときにのみ表示されます。

    警告メッセージは、さまざまな ScriptableFlowRunner 操作に、NeedIt アプリケーションに対するクロススコープ権限が付与されていることを示します。

  6. サブフローによって作成されたフォローアップタスクが開きます。フィールド値がスクリプトによって正しく設定されていることを確認します。

      担当者 Fred Luddy
      簡単な説明 NeedIt タスクがタイムリーにクローズされませんでした
      説明 期限切れの NeedIt タスク NI##### の原因の特定

演習 (30/33)

演習:「Flow Designer の開発」作業を保存する (オプション)

開発者は、GitHub のようなソースコントロールアプリケーションを使用して、個人開発者インスタンス (PDI) の外部で変更をコミット (完了した作業を保存) できます。アプリケーションに対する変更内容をコミットして、作業をソースコントロールに保存します。

この演習では、このモジュールで完了した作業を GitHub リポジトリに保存します。

注意:ServiceNow が開発者プログラムの学習コンテンツで GitHub を使用する方法の詳細と、作業を保存する方法に関するビデオを見るには、『GitHub ガイド』を参照してください。

変更をコミット (Commit Changes)

  1. NeedIt アプリケーションが Studio で開かれていない場合は、ここで開きます。

    1. ServiceNow ブラウザーのメインウィンドウで、Application Navigator を使用して [システムアプリケーション] > [Studio] を開きます。

    2. [アプリケーションを選択] ダイアログで、このアプリケーションをクリックします。

  2. [ソースコントロール] メニューを開き、[変更をコミット] メニューアイテムを選択します。

    [変更をコミット (Commit Changes)] メニューアイテムを選択

  3. コミットする更新を選択します。

    1. [<アプリケーション> のソースコントロールにコミットするファイルを選択] ダイアログで、[すべての Update Sets] を選択します。
    2. コミットするアプリケーションファイルを確認します。
    3. [続行] ボタンをクリックします。

    ソースコントロールにコミットするファイルを選択します

  4. [NeedIt のソースコントロールにコミットするファイルを確認] ダイアログで、「完了した Flow Designer の開発モジュール」などの [コミットのコメント] を入力します。

  5. [コミットファイル] ボタンをクリックします。

    コミットメッセージを入力

  6. [変更をコミット] ダイアログが成功を報告したら、[閉じる] ボタンをクリックします。

    変更が正常にコミットされました

    注意:変更のコミットに失敗した場合は、フォークしたリポジトリ URL ではなく ServiceNow のリポジトリ URL を [URL] フィールドに入力している可能性があります。GitHub 接続問題のトラブルシューティング方法については、『GitHub ガイド』の 「GitHub 問題のトラブルシューティング」を参照してください。

NeedIt Spoke のリポジトリを作成

  1. GitHub を開き、サインインします。

  2. [リポジトリ] セクションで、[新規] ボタンをクリックします。

    [新規] リポジトリボタンは [リポジトリ] セクションにあります。

  3. 新しいリポジトリを構成します。

      リポジトリ名 needit-spoke
      説明 Flow Designer モジュールの開発 NeedIt Spoke リポジトリ
  4. [リポジトリを作成 (Create repository)] ボタンをクリックします。

NeedIt Spoke アプリケーションをソースコントロールにリンク

演習のこのセクションでは、新しいリポジトリを表示して、NeedIt Spoke アプリケーションを新しいリポジトリにリンクし、コミットされたファイルを含むリポジトリを表示します。

  1. リポジトリページの [コード] タブを確認します。GitHub にはリポジトリをセットアップするための指示が含まれていることに注意してください。現在、リポジトリにファイルは存在しません。

  2. [クイックセットアップ] セクションで、[URL のコピー] ボタンをクリックします。

    [URL のコピー] ボタンで、URL を git リポジトリにコピーします。

  3. NeedIt Spoke アプリケーションを、needit-spoke-rome リポジトリにリンクします。

    1. Studio で、NeedIt Spoke アプリケーションに切り替えます。

      1. [ファイル] メニューを開き、[切り替え] メニューアイテムを選択します。
      2. [アプリケーションを選択] ダイアログで、NeedIt Spoke リンクをクリックします。
    2. [ソースコントロール] メニューをクリックし、[ソースコントロールにリンク] メニューアイテムを選択します。

    3. [ソースコントロールへのリンク] ダイアログで、ソースコントロールへのリンクを構成します。

      1. URL<コピーしたリポジトリの URL をペースト>

      2. 資格情報GitHub 資格情報 (GitHub Credentials) - <お使いの github.com ユーザー名>

      3. 分岐マスター (master)

      4. コミットメッセージ初期 NeedIt Spoke コミット

        ソースコントロールにリンク完了ダイアログ。

    4. [ソースコントロールへのリンク] ボタンをクリックします。

    5. [ソースコントロールにリンク] ダイアログが成功を報告したら、[ダイアログを閉じる] ボタンをクリックします。

記事 (31/33)

「Flow Designer の開発」のナレッジをテストする

「Flow Designer の開発」に関する理解度を確認しましょう。以下の質問は、自分の進捗状況を評価するのに役立ちます。質問ごとに回答を決定し、質問の任意の場所をクリックして回答を表示します。

質問:スポークは次のうちどれですか。複数の回答が正解の場合があります。

  1. 外部プラットフォームとデータ連携するスコープ対象のアプリケーション
  2. アクションとサブフローを含むスコープ対象のアプリケーション
  3. 関連するアクション、サブフロー、およびアプリケーションファイルの論理グループ
  4. バイクタイヤの部品
  5. フローを持つスコープ対象のアプリケーション


回答:正解は 23 です。スポークは外部プラットフォームとデータ連携する必要はなく、フローを含めてもアプリケーションはスポークになりません。厳密にいえば「4. バイクタイヤの部品」も正解ですが、二輪車の修理やメンテナンスはこのトレーニングの対象ではありません。


質問:アクションで使用されないのは、次のどれですか?複数の回答が正解の場合があります。

  1. ステップ
  2. アクションの入力
  3. アクションの出力
  4. フローロジック
  5. データピル


回答:正解は 4 のフロー ロジック。アクションには、入力と出力、さまざまな作業を実行するためのステップ、およびアクションを通じてデータを渡すためのデータピルがあります。フローとサブフローはフローロジックを使用しますが、アクションは使用しません。


質問:アクションのテスト方法を説明する文は次のどれですか?複数の回答が正解の場合があります。

  1. アクションの [テスト] ボタンをクリックし、入力値を入力して、[テストを実行] ボタンをクリックします。
  2. アクションを公開し、action#singleQuotes トリガーの条件を満たします。
  3. アクションを公開し、テストするフローにアクションを追加します。
  4. アクションを公開し、アクションのコードスニペットをコピーして、テストするビジネスルールにコードスニペットを追加します。
  5. [ドラフトアクションの表示] に構成されたフローにアクションを追加し、フローの [テスト] ボタンをクリックします。


回答:正解は 15 です。アクションから直接テストするのが、アクションの動作を検証する最も簡単な方法です。アクションはフローでテストすることもできますが、未公開のアクションをフローに追加する前に、フローに [ドラフトアクションを表示] 構成を設定する必要があります。

アクションにはトリガーがありません。アクションは公開してフローで使用することも、ビジネスルールから実行することもできますが、テストする前に公開してはいけません。


質問:アクションからのデータをフロー内でどのように使用しますか?

  1. アクションオブジェクトを開くスクリプトを作成して、フロー内の他のアクションで使用するデータを取得します。
  2. アクション出力を作成し、アクションのステップからの値をアクション出力に割り当てます。アクション出力はフロー内のデータピルです。
  3. アクションがフローに追加されるときに使用するデータピルをアクションデザイナーで作成します。
  4. アクション出力を作成し、[アクション出力の割り当て] ステップを使用して出力に値を割り当てます。アクション出力はフロー内のデータピルです。
  5. アクションがフローで使用されるときにデータピルを作成するように、[スクリプト] ステップで出力を作成します。


回答:正解は 2 です。アクションからデータにアクセスするためのスクリプトは必要ありません。


質問:アクションを作成してテストしたとします。フローでアクションを使用する必要がありますが、そのアクションをアクション選択ペインで使用できません。アクションをフローで利用できるようにするのに最適な方法は次のうちどれですか?

  1. アクションを公開する。
  2. フローを公開する。
  3. フローに [ドラフトアクションを表示] を構成する。
  4. アクションとフローが同じアプリケーションの一部であるかを確認する。
  5. アクションを読み取り専用にする。


回答:正解は 1 です。アクションはテストが完了し、フローで使用する準備ができています。アクションを公開して利用可能にします。

フローを公開しても、アクションはフローで使用できません。ドラフトアクションを表示するようにフローを構成すると、アクションをフローに追加できますが、フロー自体は、ドラフトアクションが含まれなくなるまで有効化できません。アクションはテスト済みなので、「アクションを公開する」の方が回答として優れています。アクションとフローは同じアプリケーションの一部である必要はありません。


質問:正誤問題?サブフローには、条件付きデータで分岐したり、アクションを並列実行したりするフローロジックを含めることができます。


回答:正解は正しいです。サブフローは、フローで使用可能なすべての同じフローロジックを使用できます。


質問:サブフローの実行方法を説明する文は次のどれですか?複数の回答が正解の場合があります。

  1. フロー内
  2. スクリプトから
  3. スケジュールに従って
  4. [テスト] ボタンを使用して
  5. [今すぐ実行] ボタンを使用して


回答:正解は 1. フロー内」、「2. スクリプトから」、および「4. [テスト] ボタンを使用して」です。技術的には、サブフローはフロー内から、または予定スクリプトの実行 (SSE) によるスケジュールに従って実行できますが、フローと SSE はサブフローではなくスケジュールに基づいて実行しています。サブフローには [今すぐ実行] ボタンがありません。


質問:サブフローからのデータをフロー内でどのように使用しますか?

  1. サブフローオブジェクトを開くスクリプトを作成して、フロー内で使用するデータを取得します。
  2. サブフロー出力を作成し、サブフローの [サブフロー出力の割り当て] アクションからの値をサブフロー出力に割り当てます。サブフロー出力は、フロー内のデータピルです。
  3. サブフローがフローに追加されるときに使用するデータピルを [データ] パネルで作成します。
  4. サブフロー出力を作成し、[サブフロー出力の割り当て] フローロジックを使用して出力に値を割り当てます。サブフロー出力は、フロー内のデータピルです。
  5. サブフロー内のすべてのアクションからの出力は、フロー内のデータピルとして自動的に利用できます。


回答:正解は 4 です。[サブフロー出力の割り当て] はフローロジックであり、アクションではありません。スクリプトは不要です。サブフローからのアクション出力は、フローで自動的に使用できるわけではありません。


質問:フローでサブフローをどのように使用しますか?複数の回答が正解の場合があります。

  1. [クリックしてアクション、フローロジック、またはサブフローを追加] リンクをクリックし、[サブフロー] ボタンをクリックしてサブフローを選択し、サブフローの入力値を構成します。
  2. [アクション、フローロジック、またはサブフローを追加] リンクをクリックし、[サブフロー] ボタンをクリックしてサブフローを選択し、サブフローの入力値を構成します。
  3. [次の後にアクション、フローロジック、またはサブフローを追加:<ステップの説明>] ボタンをクリックし、[サブフロー] ボタンをクリックしてサブフローを選択し、サブフローの入力値を構成します。
  4. サブフローを [サブフロー] パレットタブからキャンバスにドラッグします。
  5. サブフローを呼び出すアクションを作成し、アクションをフローに追加します。


回答:正解は 23 です。Flow Designer の以前のリリースには、[クリックしてアクション、フローロジック、またはサブフローを追加] リンクがありました。


質問:サーバー側スクリプトでサブフローを呼び出すステップは次の内どれですか?複数の回答が正解の場合があります。

  1. [その他のアクション] > [コードスニペット] を開き、コードスニペットを表示します。
  2. サブフローを公開します。
  3. 入力値でコードスニペットを更新します。
  4. コードスニペットを UI ポリシーなどのスクリプトに貼り付けます。
  5. コードスニペットをビジネスルールなどのスクリプトに貼り付けます。


回答:正解は 1235 です。クライアント側スクリプトを使用する UI ポリシーを除き、すべてサーバー側スクリプトでサブフローを呼び出すために実行できるステップです。


記事 (32/33)

「Flow Designer の開発」のまとめ

コアコンセプト:

  • スポークとは、Flow Designer カスタムアクションを含むスコープ対象のアプリケーションのことである
  • アクションデザイナーにより、開発者は再利用可能なアクションを作成できる
  • アクションは次のもので構成されます。
    • アクションの入力
    • ステップ
    • アクションの出力
  • 未公開アクションを使用するには、ドラフトアクションを使用するようにフローを構成する必要がある
  • アクションをアクティブフローで使用するには、アクションを公開する必要がある
  • サブフローとは、再利用可能なプロセスのことである
  • サブフローは次のもので構成されます。
    • サブフローの入力
    • アクション
    • フローロジック
    • サブフロー
    • サブフローの出力
  • [サブフロー出力の割り当て] フローロジックを使用して、サブフロー出力に値を割り当てる
  • サブフローをフローで使用するには、サブフローを公開する必要がある

記事 (33/33)

「Flow Designer の開発」を完了した後の参考資料

お疲れさまでした。「Flow Designer の開発」モジュールが完了しました。Flow Designer への関心に基づいて、さらに次のことも学んでいただけます。

  • Flow Designer:意思決定:この開発者サイトボーナスコンテンツモジュールでは、意思決定および回答テーブルを作成し、意思決定フローロジックを使用する方法を学習します。
  • IntegrationHub の REST:この開発者サイト学習モジュールでは、REST を使用して Flow Designer を拡張し、外部プラットフォームとデータ連携する方法を学習します。
  • Flow Designer に関するドキュメント:ServiceNow のドキュメントサイトには、Now Platform のリファレンスマニュアルに関する完全な参照資料一式があります。