記事 (1/20)
このモジュールでは、次のことを学習します。
記事 (2/20)
Suggestion Box アプリケーションは、アプリケーション作成の基になる概念とプロセスを紹介し、デモンストレーションするために、この学習モジュール全体で使用されます。Suggestion Box アプリケーションを構築することはありません。
実践的な演習では、Collection Tracker アプリケーションを作成します。
演習は、次の 3 つの方法で示されます。
Collection Tracker アプリケーションを使用すると、必要などんなタイプのコレクションでも追跡できます。まず、アプリケーションのデータモデルを作成してから、アプリケーションコンポーネントを追加します。この学習モジュールの最後には、App Engine Studio アプリケーションの 4 つの主要コンポーネントを含む簡単な Collection Tracker アプリケーションが出来上がります。
記事 (3/20)
作成者は、App Engine Studio (AES) を使用して、組織のビジネスニーズを満たすアプリケーションを迅速に構築できます。AES を使用したアプリの作成は、次の簡単なプロセスに従います。
この学習モジュールは、AES アプリケーション作成プロセスの最初の 2 つのステップに焦点を当てています。
記事 (4/20)
App Engine Studio のインターフェイスでは、次のことができます。
App Engine Studio が表示されない場合は、ここをクリックしてください。
この学習モジュールで、App Engine Studio 作成者ユーザーとしての実践的なアクティビティをすべて修了します。App Engine Studio 作成者ユーザーは、App Engine Studio を使用してアプリケーションを作成できますが、ServiceNow インスタンスでの管理権限をすべて持っているわけではありません。最初の演習では、App Engine Studio 作成者ユーザーとして個人開発者インスタンス (PDI) にログインできるように、開発者サイトでユーザーロールを設定します。まだログインする必要はありませんが、PDI でこの導入を続ける場合は、「演習:App Engine Studio でアプリケーションを構築する」の「準備:App Engine Studio ユーザーとしてログイン」セクションのステップを完了してください。
会社のインスタンスで作業していて、管理者が App Engine Studio を直接開くように ServiceNow を設定していない場合は、Application Navigator を使用して [App Engine] > [App Engine Studio] を開きます。App Engine Studio が新しいブラウザータブで開かれます。
App Engine Studio のヘッダーには 4 つのタブがあります。タブを選択すると、コンテンツが変わります。
記事 (5/20)
アプリケーションは、次のアプリケーションコンポーネントで構成されています。
アプリケーションコンポーネントを追加する前に、アプリケーションを作成します。
アプリケーションをゼロから作成するには、[ホーム] または [自分のアプリ] タブを開き、[アプリを作成] ボタンをクリックします。
[新しいアプリで作業を開始しましょう] 画面で、アプリケーションの名前と説明を入力します。必要に応じて、アプリケーションのロゴを追加します。このロゴは、App Engine Studio でアプリのカードに使用されます。この例では、作成者は「Suggestion Box」というアプリを作成しています。
注意:Suggestion Box アプリケーションは、アプリケーション作成の基になる概念を説明するために、この学習モジュール全体で使用されます。Suggestion Box アプリケーションを構築する必要はありません。
実践的な演習では、Collection Tracker アプリケーションを作成します。
[続行] ボタンをクリックします。
[アプリホームに移動] ボタンをクリックして、アプリケーションコンポーネントを追加します。
アプリケーションの [アプリホーム] タブが開きます。[アプリホーム] タブからアプリケーションコンポーネントを作成、編集します。コンポーネントタイプの [追加] アイコン ( 追加) をクリックして、コンポーネントをアプリケーションに追加します。この学習モジュールでは、各アプリケーションコンポーネントのタイプについて説明します。
[ガイダンス] パネルはデフォルトで開きます。[ガイダンス] パネルでトピックをクリックして、アプリケーションコンポーネントについて確認します。アプリケーションコンポーネントのタイプについての説明がフライアウトに表示されます。または、コンポーネントのタイプが作成された後、[ガイダンス] パネルは自動的に次のタイプのアプリケーションコンポーネントに移動します。
[ガイダンス] トグルをクリックして [ガイダンス] パネルを折りたたみ、フライアウトをオフにします。[ガイダンス] トグルをもう一度クリックすると、ガイダンスが再び有効になります。
演習 (6/20)
この演習では、Collection Tracker アプリケーションを構築します。
Collection Tracker アプリケーションを使用すると、必要などんなタイプのコレクションでも追跡できます。このアプリケーションには、次の 4 つのアプリケーションコンポーネントが含まれます。
演習のこのセクションでは、App Engine Studio 作成者ユーザーとして個人開発者インスタンス (PDI) にログインします。App Engine Studio 作成者ユーザーは、App Engine Studio でアプリケーションを作成するためのアクセス権を持ち、この学習モジュールで使用されます。App Engine Studio 作成者ユーザーは、所属組織の環境において App Engine Studio の有効な機能のみを使用して学習できます。詳細については、『Developer Site Learning (開発者サイト学習)』ガイドの「PDIs and User Roles (PDI とユーザーロール)」セクションを参照してください。
演習のこのセクションでは、Collection Tracker アプリケーションを作成します。
演習のこのセクションでは、ガイダンスを確認してオフにします。
この学習モジュールの後半の演習で、Collection Tracker アプリケーションにコンポーネントを追加します。
記事 (7/20)
データはアプリケーションの重要なコンポーネントです。アプリケーションは、次の目的でデータを使用します。
データはテーブルに保存されます。テーブルにフィールドの関連データを収集します。この学習モジュールの例として使用されている Suggestion Box アプリケーションは、テーブルを使用してユーザーからの提案を取得します。これには、次のような提案の詳細を保存するフィールドが必要です。
この情報はテーブルに保存されます。
App Engine Studio でテーブルを作成するには、[追加] アイコン ( 追加) を、[アプリホーム] タブの [データ] セクションでクリックします。
[テーブルをどのように作成しますか?] 画面でテーブルのソースを選択します。この例では、テーブルはゼロから作成されます。
[続行] ボタンをクリックします。
[では、新しいテーブルに関するその他の情報を取得しましょう] 画面でテーブルプロパティを設定します。テーブルのテーブルラベルを指定します。テーブル名は自動的に設定されます。
[続行] ボタンをクリックします。App Engine Studio がテーブルを作成します。
[完了] ボタンをクリックして、[アプリホーム] タブに戻ります。
記事 (8/20)
Table Builder を使用して、テーブル内のフィールドを作成および編集します。[アプリホーム] タブの [データ] セクションでテーブルのカードをクリックして、Table Builder を開きます。
Table Builder を紹介するダイアログが表示されます。Table Builder の紹介を完了し、[開始する] ボタンをクリックして、今後ダイアログが開かないようにします。
各テーブルにはデフォルトのフィールドが含まれています。
Table Builder で、[+ 新しいフィールドを追加] リンクをクリックしてテーブルにフィールドを追加します。
[列ラベル] の値を入力します。
キーボードの Return/Enter キーを押します。Table Builder は、[列ラベル] から列名の値を追加します。
[タイプ] フィールドをクリックして、フィールドのタイプ値を選択します。フィールドタイプの入力を開始してオプションのリストをフィルタリングし、フィールドのタイプを選択します。
演習 (9/20)
演習のこのセクションでは、Collection Tracker アプリケーションでテーブルを作成します。テーブルには、コレクション内のアイテムの詳細が保存されます。
演習のこのセクションでは、コレクション内のアイテムの詳細を保存するテーブルを作成します。
演習のこのセクションでは、[コレクションアイテム (Collection Item)] テーブルのアイテムを追跡するためのフィールドを追加します。
演習のこのセクションでは、アイテムのコスト、値、購入日、および説明を追跡するためのフィールドを追加します。
テーブルのセキュリティを設定した後、テーブルにデータを追加します。
記事 (10/20)
多くのアプリケーションには、すべての ServiceNow ユーザーが閲覧したり変更したりするのに適しているわけではない機密データやプライベートデータが含まれています。アプリケーション作成者はロールを使用して、特定ユーザーにアプリケーションの一部へのアクセス権を付与します。
[アプリホーム] タブで、[追加] アイコン ( 追加)。
[ロールをアプリにどのように追加しますか?] 画面で、ロールを作成するか、既存のロールを適用するかを選択します。この例では、[新しいロールを構築] オプションを使用しています。
[新しいロールを開始しましょう] 画面で、ロールの名前と説明を入力し、[続行] ボタンをクリックします。この例では、ロール名は sb で始まります。これは、アプリケーションの名前である Suggestion Box を表しています。
[「<ロール_名>」ロールはアプリ内で何ができますか?] 画面で、アプリケーション作成者は、テーブルレコードとエクスペリエンスへのロールのアクセス権を許可または拒否します。
[データ] タブを使用して、ロールに許可されるテーブルレコードとデータベース操作を指定します。チェックマークは、ロールにアクセス権が付与されていることを意味します。この例では、sb_admin ロールに [提案] テーブルのすべてのデータベース操作へのアクセス権が付与されています。
[続行] ボタンをクリックします。
[成功しました!このロールがアプリに追加されました] の画面で [ロール名] フィールドと [説明] フィールドを確認し、[完了] ボタンをクリックします。
[アプリホーム] タブの [セキュリティ] セクションでは、各ロールがそれぞれのカードに表示されます。この例では、Suggestion Box アプリケーションには、sb_admin、sb_reviewer、および sb_suggister の 3 つのロールがあります。ロールのカードをクリックして、新しい App Engine Studio タブでロールを編集用に開きます。
演習 (11/20)
この演習では、collection_user ロールを作成して設定します。ロールに選択的に権限を付与し、ロールのセキュリティ設定をテストします。
演習のこのセクションでは、サンプルコレクションレコードの作成を試みます。
演習のこのセクションでは、collection_user ロールを作成します。
演習のこのセクションでは、collection_user ロールに「作成」と「読み取り」のアクセス権を付与します。レコードの作成を試行して、ロールのアクセス権をテストします。
演習のこのセクションでは、collection_user ロールに「書き込み」アクセス権を追加して、レコードを作成し、レコードのフィールドに値を入力してロールをテストします。
演習のこのセクションでは、collection_user ロールに「削除」アクセス権を追加し、レコードを作成、編集、削除することによりロールをテストします。
記事 (12/20)
自動化では、人ではなくアプリケーションを使用して繰り返し可能なプロセスを管理します。自動化は、ワークフローまたはフローと呼ばれることがよくあります。App Engine Studio を使用すると、作成者はプロセスフローをアプリケーションに追加できます。例を次に示します。
[アプリホーム] タブの [ロジックと自動化] セクションで、[追加] アイコン () をクリックします。
[自動ワークフローをアプリにどのように追加しますか?] 画面で、追加する自動化のタイプを選択します。この例では、[ゼロから構築します] オプションを使用しています。
[フローを設定しましょう] 画面で、フローの名前と説明を入力し、[続行] ボタンをクリックします。
フローの作成が完了したら、[このフローを編集します] ボタンを [成功!フローの準備が完了しました。] 画面でクリックします。
フローエディターが開くと、作成者は Flow Designer ツアーに参加するかどうかを選択できます。[ツアーをスキップ] または [ガイドを表示] ボタンを、[ようこそ!Flow Designer のツアーを開始しましょう] ダイアログで選択します。
記事 (13/20)
フローは、トリガーとアクションで構成されています。
トリガーはフローロジックを実行するタイミングを決定します。プロセスフローに適したトリガーのタイプを選択します。トリガータイプは次のとおりです。
トリガーをフローに追加するには、[トリガーを追加] リンクをクリックします。
[トリガー] ダイアログで、トリガーを選択します。トリガーにカーソルを合わせると、トリガーのドキュメントが表示されます。
[トリガー] を選択すると、トリガーの設定フィールドが [トリガー] セクションに追加されます。各トリガーには、独自の設定オプションがあります。[レコード] トリガーではテーブルを指定する必要があります。この例では、[提案] テーブルで作成されたすべてのレコードに対してフローがトリガーされます。
[テーブル] フィールドのみが設定されている場合、テーブルに追加されたすべてのレコードに対してフローが実行されます。テーブルの特定のレコードのフローをトリガーするには、[条件] フィールドの [フィルターを追加] リンクをクリックします。
[条件] を設定します。条件の一般的な構文は、[フィールド] [比較演算子] [値] です。
すべての条件に [フィールド] と [比較演算子] が必要です。一部の [比較演算子] ([は空] など) は、条件定義に [値] を使用しません。
この例では、[送信日] フィールドの値を指定せずに [提案] テーブルレコードが作成されると、トリガーがフローの実行を開始します。
記事 (14/20)
アクションは、トリガーされたときにフローが実行する処理を指定します。フローには 1 つのトリガーしかありませんが、多くのアクションを設定できます。
アクションをフローに追加するには、[アクション、フローロジック、またはサブフローを追加] リンクをクリックします。
追加するアクションのタイプのボタン ([アクション]、[フローロジック]、または [サブフロー]) をクリックします。この例は、レコードを更新するアクションの追加を示しています。
アクションを選択すると、アクションの設定フィールドがフローエディターの [アクション] セクションに追加されます。各アクションには、独自の設定オプションがあります。[レコードを更新] アクションでは、更新するレコード、レコードのテーブル、および更新するフィールドを指定する必要があります。この例では、[提案] テーブルのレコードが [水曜日に会議なし (No Meeting Wednesdays)] を示している場合、フローは [送信日] フィールドの値を「2021-09-30」に変更します。
この例の [レコード] と [フィールド] の値には、ハードコードされた値が設定されています。値をハードコーディングすると、アクションの柔軟性が低下します。
アクション設定で値を動的に設定するには、データピルを使用します。データピルは、フローが実行されるまで値がない変数で、値のプレースホルダーです。[データ] パネルには、利用可能なデータピルが含まれています。データピルは、トリガーとアクションによってグループ化されます。
[データピルピッカー] ボタン () があるフィールドには、データピルを使用して動的に値を設定できます。データピルを使用するには、データピルを [データ] パネルからフィールドにドラッグします。
この例では、データピルを使用して、[レコード] フィールドの値を、フローの実行をトリガーしたレコードに設定しています。別のデータピルを使用して、[送信日] フィールドの値を [提案] レコードが作成された日付に設定します。
演習 (15/20)
この演習では、Collection Tracker アプリケーション用のフローを作成して設定します。[値] フィールドが空白のままの場合、フローは [値] フィールドに [コスト] フィールドの値を設定します。
演習のこのセクションでは、「空白の場合コストの値を設定」フローを作成します。
演習のこのセクションでは、「空白の場合コストの値を設定」フローにトリガーを追加します。[コレクションアイテム (Collection Item)] レコードが作成または変更され、かつ [値] フィールドに値がない場合に、トリガーによりフローが実行されます。
演習のこのセクションでは、「空白の場合コストの値を設定」フローにアクションを追加します。アクションでは、[コスト] フィールドの値を [値] フィールドにコピーします。
「空白の場合コストの値を設定」フローは、Collection Tracker アプリケーションの一部としてまだ実行されていません。フローをアプリケーションの一部として実行するには、フローを有効化する必要があります。演習のこのセクションでは、「空白の場合コストの値を設定」フローを有効化します。
演習のこのセクションでは、「空白の場合コストの値を設定」フローをテストするためにコレクションアイテムレコードを作成します。また、既存のレコードを変更してフローをテストします。
記事 (16/20)
エクスペリエンスは、ユーザーインターフェイスとも呼ばれ、ユーザーがアプリケーションをどのように操作するかを指します。[アプリホーム] タブの [エクスペリエンス] セクションでユーザーインターフェイスコンポーネントを作成します。エクスペリエンスの 1 つのタイプにワークスペースがあります。これは、アプリケーションデータを操作するためのダッシュボードです。
ワークスペースを作成するには、[追加] アイコン ( 追加) が [アプリホーム] タブの [エクスペリエンス] にあるので、それをクリックします。
[アプリにどのタイプのエクスペリエンスを追加しますか? (What type of experience do you want to add to your app?)] 画面で、追加するエクスペリエンスのタイプを選択します。この例では、[ワークスペース] オプションを使用しています。
[ワークスペース] ダイアログで、[開始] ボタンをクリックします。
[ワークスペースを設計しましょう] 画面で、ワークスペースの名前と説明を入力します。以前に作成した、ワークスペースへのアクセス権を持たないロールを削除し、[続行] ボタンをクリックします。
[お疲れ様でした。データを追加しましょう。] 画面で、[プライマリテーブル] の値が設定されていることを確認し、[続行] ボタンをクリックします。
ワークスペースの作成が完了したら、[完了] ボタンを [成功!エクスペリエンスが作成されました。] 画面でクリックします。
記事 (17/20)
App Engine Studio は、UI Builder を使用してワークスペースを編集します。UI Builder は、見たままを得られる (WYSIWYG) Web ユーザーインターフェイスビルダーです。
[アプリホーム] タブの [エクスペリエンス] セクションでワークスペースのカードをクリックし、UI Builder でワークスペースを編集用に開きます。
UI Builder には、次の 5 つの主要なセクションがあります。
[ページ] パネルで選択したページが、ライブアプリケーションデータとともに [ステージ] 上で開かれます。レイアウトはコンテナーとコンポーネントで構成されています。ページでコンテナーまたはコンポーネントを選択し、[構成] パネルでそのアイテムを構成します。
コンテナーとコンポーネントを更新するには、ページでコンテナーまたはコンポーネントを選択します。たとえば、App Engine Studio は [自分の作業] コンテナーを含むワークスペースを作成します。コンテナーラベルを更新するには、ページでコンテナーを選択します。
[構成] パネルには、選択したコンテナーまたはコンポーネントの構成が表示されます。この例では、[自分の作業] コンテナーが選択されています。[構成] パネルの [構成] タブを選択します。
[構成] パネルの [構成] タブで変更を行い、コンテナーまたはコンポーネントの構成を調整します。この例では、送信された提案がコンテナーに表示されているため、[ラベル] は [提案] に設定されています。
UI Builder で [保存] ボタンをクリックして、変更を保存します。ページで変更を表示します。
記事 (18/20)
[アプリホーム] タブの [エクスペリエンス] セクションでは、各ワークスペースがそれぞれのカードに表示されます。ワークスペースカードの [プレビュー] リンクをクリックして、ワークスペースを開きます。
ワークスペースが新しいブラウザータブで開かれます。
リストで、最初の列のリンクをクリックしてレコードを開き、詳細を表示します。この例では、[クローズ日] が [提案リスト] の最初の列になっています。[クローズ日] リンクをクリックして、提案レコードを開きます。
フォームでレコードの詳細を表示します。値を変更し、[保存] ボタンをクリックしてレコードを更新します。
演習 (19/20)
この演習では、Collection Tracker アプリケーション用のワークスペースを作成します。ワークスペースには、コレクション内のアイテム数とコレクション内のアイテムリストが含まれます。
演習のこのセクションでは、コレクション内のアイテムの詳細を表示して編集するためのワークスペースを作成します。
演習のこのセクションでは、ワークスペースに表示されるコンポーネントに適切なラベルを使用するようにワークスペースを編集します。
演習のこのセクションでは、ワークスペースをプレビューし、レコードの詳細を表示します。
記事 (20/20)
コアコンセプト: