Skip to main content

Windowsフォームとプロシジャーオートメーションの作成

9 タスク

45 分

Visible to: All users
初級 Pega Robotic Automation 19.1 ロボティックプロセスオートメーション 日本語

シナリオ

このソリューション設計では、ユーザーインターフェイスのボタンをクリックすると、ACME検索システムで検索が実行され、顧客の郵便番号に基づいて一番近い店舗の所在地を返す機能が必要です。 最寄りの店舗が検索されると、ユーザーはオートメーションによってホームページに戻ります。 このソリューションにはまだユーザーインターフェイスがありません。 暫定的な解決法としては、デベロッパーがテスト用のWindowsフォームを作成し、そこでオートメーションを完成し、ACMESearchプロジェクト内でテストします。

オートメーションをテストしたら、サインインページでソースコードを調べ、ACME_P_SignInオートメーションを修正します。

このビジネスケースで期待される結果は、顧客の郵便番号から最も近い店舗を探すことです。 ホームナビゲーションとサインインのオートメーションを終えたら、次にACME検索システムで最も近い店舗を探すオートメ―ションが必要です。 Windowsテストフォームからのボタンクリックを処理する一時的なオートメーションが、ソリューションのデバッグに必要です。

ソリューションのこの部分では、以下のタスクを行います。

  • ラベル、テキストボックス、ボタンを含むWindowsフォームを作成。
  • ACME_P_SignInオートメーションを更新し、btnTestのログインプロセスをテスト。
  • ユーザーインターフェイスから転送される郵便番号を受信し、最も近い店舗住所を検索して店舗住所を返すACME_P_SearchByZipオートメーションを作成。 入力パラメーターのプロキシの抽出に、Object Explorerを使用することを検討。 最寄りの店舗が検索されると、ユーザーはACME検索システムのホームページに戻ります。
  • 郵便番号の文字列パラメーターを渡し、ACME_P_NavToHomeとCME_P_SearchByZipオートメーションを呼び出して、ACME_P_GetNearestStoreオートメーションを作成します。 入力パラメーターのプロキシの抽出に、Object Explorerを使用することを検討。
  • ACME_P_GetNearestStoreオートメーションを呼び出して店舗住所を返すか、またはMessageDialogにエラーメッセージを返すACME_E_btnTestClickedオートメーションを作成。

このチャレンジを完了するには、Pegaインスタンスを起動する必要があります。

起動には5分ほどかかることがありますので、しばらくお待ちください。

詳細なタスク

1 テスト用Windowsフォームの作成

  1. ソリューションエクスプローラーで、「ACMESearchPrj」を右クリックして、「Add」 > 「New Windows Form」を選択し、「Add New Item」ウィンドウを表示します。
  2. Add New Item」ウィンドウで、「Name」フィールドにfrmTestと入力します。
  3. Add New Item」ウィンドウで「Add」をクリックし、デザインエリアに「frmTest.os」ウィンドウを表示します。
  4. Object Explorerで、「frmTest」をクリックしてオブジェクトをハイライトし、「Properties」ウィンドウに使用できるすべてのプロパティを表示します。
  5. 「Properties」ウィンドウで、「TopMost」プロパティを「True」に設定します。
  6. メニューバーから、「File」>「Save All」をクリックして編集内容を保存します。
  7. Toolboxの「Common Controls」セクションで、次のコントロールを「frmTest」ウィンドウにドラッグします。
    • Label
    • TextBox
    • Button 
      Toolbox
  8. Object Hierarchyで、「Label」、「TextBox」、「Button」コントロールをクリックして強調表示します。
  9. Properties」ウィンドウで、次の表の情報を使用して、コントロールの各プロパティと、Design(Name)プロパティを更新します。

    オブジェクト名

    更新するプロパティ

    プロパティ値

    label1

    Design(Name)

    Text

    lblZipCode

    Zip Code

    textbox1

    Design(Name)

    txtZipCode

    button1

    Design(Name)

    Text

    btnTest

    Test

  10. メニューバーから、「File」>「Save All」をクリックしてWindowsフォームを保存します。
    Form Test

2 テスト用にオートメーションを更新

  1. ソリューションエクスプローラーで、「ACME_P_NavToHome.os」を右クリックして、「Open」を選択し、デザインエリアにオートメーションを表示します。
  2. オートメーションで、次のデザインブロックを追加します。
    ソースプロジェクト項目 プロパティ、イベント、メソッド 説明
    frmTest btnTest.Clickイベント  
  3. 次の図に示すように、オートメーションで、オートメーションリンクを接続します。
    Jump to

3 プロシジャーオートメーションのテスト

  1. ソリューションエクスプローラーで、「ACMESearchPrj」を右クリックし、「Set as Startup Project」を選択します。
  2. メニューバーから、「Debug」 > 「Start Debugging」を選択し、2つのプロシジャーオートメーションをデバッグします。
  3. テスト用のWindowsフォームから、「Test」をクリックします。 「Sign In」ページまではプロセスが機能します。このページでは「Sign In」ボタンが有効になっていません。
  4. メニューバーから、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。

4 RaiseEventメソッドの追加

  1. ソリューションエクスプローラーで、「ACMESystem.os」をダブルクリックして、デザインエリアで開きます。
  2. 「ACMESearch.os」タブで、「Start Interrogation」をクリックしてウェブアプリケーションを起動します。
  3. 「Object Hierarchy」で、「ACMEwpSignIn」を右クリックし、「View Source」を選択して「Source Code」ウィンドウを表示します。
  4. Source Code」ウィンドウで、「<small>checkLengthP()</small>」(約32行目付近)を検索します。
    補足: このコードは、「Sign In」ボタンを有効にする前に、パスワード入力の長さを確認する関数を呼び出します。
    Check Length
  5. Source Code」ウィンドウで、「checkLengthP()」(約292行目付近)を検索します。
    補足: onkeyupメソッドがchecklengthP()関数を呼び出します。
    Onkeyup
  6. Source Code」ウィンドウで、「Close」アイコンをクリックしてウィンドウを閉じます。
  7. 「ACMESystem.os」」タブで、「Stop Interrogation」をクリックしてウェブアプリケーションを閉じ、インテロゲーションを停止します。
  8. デザインエリアで、「ACME_P_SignIn.os」タブをクリックしてオートメーションを有効にします。
  9. オートメーションで、ACMEtxtPassword.TextデザインブロックとACMEbtnSignin.PerformClickデザインブロックの間のオートメーションリンクを削除します。
    Link
  10. 「Object Hierarchy」で、「ACMEtxtPassword」を選択し、コントロールをハイライトします。
  11. Object Inspectorで、「Show Methods Only」をクリックしてウィンドウをフィルタします。
  12. Object Inspectorで、「RaiseEvent」メソッドをクリックしてオートメーションにドラッグします。
    補足: Configure Type」を使用してメソッドを検索します。
  13. 「RaiseEvent」デザインブロックで、「evt」をクリックし、「onkeyup」を選択して、メソッドが実行するイベントを設定します。
    sign in
  14. 次の図に示すように、オートメーションでコンポーネントを接続します。
    ACME system
  15. メニューバーから、「File」>「Save All」を選択して編集内容を保存します。

5 プロシジャーオートメーションのテスト

  1. メニューバーから、「Debug」 > 「Start Debugging」を選択し、2つのプロシジャーオートメーションをデバッグします。
  2. テスト用のWindowsフォームから、「Test」をクリックします。 「Sign In」ボタンが有効になり、クリックしてホームページに移動できます。
  3. メニューバーから、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。

6 ACME_P_SearchByZipオートメーションの作成

  1. 「ACME_P_NavToHome」オートメーションで、「frmTest.btnTest.Click」デザインブロックを削除します。
  2. ソリューションエクスプローラーから、「ACMESearchPrj」「Procedures」を右クリックし、「Add」 > 「New Automation」を選択し、「Add New Item」ウィンドウを表示します。
  3. Add New Item」ウィンドウで、「Name」フィールドにACME_P_SearchByZipと入力します。
  4. Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「デザイナ」タブで開きます。
  5. オートメーションで、次のデザインブロックをオートメーションに追加します。
    補足: Object Inspectorの、「Configure Type」アイコンを使用し、プロパティ、イベント、メソッドを探します。
    ソースプロジェクト項目 デザイン名 説明
    オートメーションで右クリック 「Add Entry Point」を選択
    • Addアイコンをクリックしてパラメーターを追加します。
    • param1の名前を「zip」に変更します。
    ACMESystem ACMElnkStores.WaitForCreateメソッド
    • 結果を展開します。
    オートメーションで右クリック 2つのラベルを追加
    • 1つのラベルの名前を「Success」に、もう1つのラベルの名前を「Failed」に変更します。
    • 「Success」ラベルで、「Add」アイコンをクリックしてパラメーターを追加します。
    • param1の名前を「store」に変更します。
    • 「Failed」ラベルで、「Add」アイコンをクリックしてパラメーターを追加します。
    • param1の名前を「msg」に変更します。
    オートメーションで右クリック 2つのエグジットポイントを追加
    • 1つの名前を「Success」に、もう1つの名前を「Failed」に変更します。
    • Successエグジットポイントで、VoidパラメーターをStringデータタイプに変更します。
    • Failedエグジットポイントで、「Add」をクリックしてパラメーターを1つ追加します。 このパラメーターがすべてのエグジットポイントに表示されます。
    • param1のデータタイプをStringに変更し、「msg」という名前に変更します。
    ACMESystem ACMElnkStores.PerformClickメソッド  
    ACMESystem ACMEwpStores.WaitForCreateメソッド  
    ACMESystem ACMEtxtZip.Textプロパティ  
    オートメーションで右クリック 「Add Label」を選択 Label1の名前を「Store」に変更します。
    オートメーションで右クリック

    「Jump To」 > 「Store」を選択

     
    Jump to store
  6. 「Object Hierarchy」で、ACME_P_SearchByZipオートメーションとExecuteノードを展開し、Zip入力パラメーターを表示します。
  7. 「Object Hierarchy」で、「Zip」パラメータを選択し、パラメーターをハイライトします。
  8. Object Inspectorで、「Configure Type」をクリックして「Configuration」ウィンドウを表示します。
  9. 「Configuration」ウィンドウの「Results」フレームで、プロパティの前にある「+」アイコンをクリックしてオプションを展開します。
  10. 「Results」フレームで、「This」プロパティを選択し、「OK」をクリックして、プロパティをObject Inspectorに追加し、ウィンドウを閉じます。
  11. Object Inspectorで、「Show Methods Only」をクリックして結果をフィルタします。
  12. Object Inspectorで、「This」プロパティをオートメーションにドラッグします。

    補足: このデザインブロックは、入力パラメーターのプロキシです。
  13. 次の図に示すように、オートメーションでデザインブロックを接続します。
    Zip new
  14. Object Explorerで、次のデザインブロックをオートメーションに追加します。
    補足: Object Inspectorの、「Configure Type」アイコンを使用し、プロパティ、イベント、メソッドを探します。
    ソースプロジェクト項目 デザイン名 説明
    ACMESystem ACMEbtnFindStore.PerformClickメソッド  
    ACMESystem ACMElnkHome.PerformClickメソッド  
    ACMESystem ACMEtblNearestStore.WaitForCreateメソッド
    • 「Results」ページが読み込まれるまで待機してから店舗住所を格納します。
    • 「Results」パラメーターを展開します。
    ACMESystem ACMEtblNearestStore.Textプロパティ
    • このプロパティは店舗住所を格納します。
    オートメーションで右クリック 「Jump To」 > 「Success」を選択  
    オートメーションで右クリック 「Jump To」 > 「Failed」を3回選択
    • 失敗した各デザインブロックに1つのメッセージを入力します。
    • ACMEストアは作成されていません。
    • ACMEストアページを使用できません。
    • ACMEストアの結果を使用できません。
  15. 次の図に示すように、オートメーションでコンポーネントを接続します。
    Screenshot showing the Search By Zip automation connections
  16. メニューバーから、「File」>「Save All」を選択して編集内容を保存します。

7 ACME_P_GetNearestStoreオートメーションの作成

  1. ソリューションエクスプローラーから、「ACMESearchPrj」の「Procedures」を右クリックし「Add」 > 「New Automation」を選択し、「Add New Item」ウィンドウを表示します。
  2. Add New Item」ウィンドウで、「Name」フィールドにACME_P_GetNearestStoreと入力します。
  3. Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「デザイナ」タブで開きます。
  4. ACME_P_GetNearestStoreオートメーションで、次のデザインブロックをオートメーションに追加します。
    補足: Object Inspectorの、「Configure Type」アイコンを使用し、プロパティ、イベント、メソッドを探します。
    ソースプロジェクト項目 デザイン名 説明
    オートメーションで右クリック 「Add Entry Point」を選択
    • 「+」アイコンをクリックしてパラメーターを追加します。
    • param1の名前を「zip」に変更します。
    ACME_P_NavToHomeオートメーション Executeメソッド
    • オートメーションを呼び出して、アダプタを確認し、ウェブアプリケーションにサインインします。
    オートメーションで右クリック 2つのラベルを追加
    • 1つのラベルを「Success」に、そしてもう1つを「Failed」に変更します。
    • 「Success」ラベルで、「+」アイコンをクリックしてパラメーターを追加します。
    • param1の名前を「store」に変更します。
    • 「Failed」ラベルで、「+」アイコンをクリックしてパラメーターを追加します。
    • param1の名前を「msg」に変更します。
    オートメーションで右クリック 2つのエグジットポイントを追加
    • 1つのラベルの名前を「Success」に、もう1つのラベルの名前を「Failed」に変更します。
    • Failedエグジットポイントで、「+」アイコンをクリックしてパラメーターを1つ追加します。
    • param1の名前を「msg」に変更します。
    • Successエグジットポイントで、VoidパラメーターをStringデータタイプに変更します。
    ACME_P_SearchByZipオートメーション Executeメソッド オートメーションを呼び出し、郵便番号に基づいて検索を実行します。
    ACME_P_GetNearestStore zip.Thisプロパティ Thisプロパティを使用して、Zip入力パラメーターのプロキシを作成します。
    オートメーションで右クリック 「Jump To」 > 「Success」を選択  
    オートメーションで右クリック

    「Jump To」 > 「Failed」を選択

    2つの「Jump To」デザインブロックを作成します。
  5. 次の図に示すように、オートメーションで、オートメーションリンクを接続します。
    Gear Near
  6. メニューバーから、「File」>「Save All」を選択して編集内容を保存します。

8 ACME_E_btnTestClickedオートメーションの作成

  1. ソリューションエクスプローラーで、「ACMESearchPrj」を右クリクして、「Add」 > 「New Folder」を選択し、プロジェクトに新しいフォルダーを作成します。
  2. フォルダーの「Name」フィールドに、「Events」と入力します。
  3. ソリューションエクスプローラーの「ACMESearchPrj」で、「Events」フォルダーを右クリックし、「Add」 > 「New Automation」を選択して、「Add New Item」ウィンドウを表示します。
  4. Add New Item」ウィンドウで、「Name」フィールドにACME_E_btnTestClickedと入力します。
  5. 「Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「designer」タブで開きます。
  6. ACME_E_bntTestClickedオートメーションで、次のデザインブロックをオートメーションに追加します。
    補足: Object Inspectorの、「Configure Type」アイコンを使用し、プロパティ、イベント、メソッドを探します。
    ソースプロジェクト項目 デザイン名 説明
    frmTest btnTest.Clickイベント ユーザーがボタンをクリックするとこのオートメーションを実行します。
    ACME_P_GetNearestStoreオートメーション Executeメソッド オートメーションを呼び出してアダプタを確認し、ウェブアプリケーションにサインインして、店舗住所を検索し、住所を返します。
    frmTest txtZipCode.Textプロパティ 「frmTest」テキストフィールドの郵便番号を渡すために使用します。
    Toolbox 2つのMessageDialogを追加 Choose Method Overload」ウィンドウで、メッセージを表示するための2つ目のラジオボタンを選択します。
  7. 次の図に示すように、ACME_E_btnTestClickedオートメーションで、オートメーションリンクを接続します。
    Test Click
  8. メニューから、「File」>「Save All」を選択して編集内容を保存します。

9 作業の確認

  1. メニューバーから、「Debug」 > 「Start Debugging」をクリックし、オートメーションをデバッグしてテストウィンドウを表示します。
  2. テストウィンドウで、「Zip Code」」フィールドに5桁の郵便番号を入力します。
  3. テストウィンドウで、「Test」をクリックして、ウェブアダプターを開始し、アプリケーションにサインインし、郵便番号に基づいて検索を実行します。 店舗住所が含まれたメッセージボックスが表示されます。
  4. オプションとして、オートメーション内でエラーメッセージをテストすることもできます。
  5. メニューバーで、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。


このモジュールは、下記のミッションにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice