Windowsフォームとプロシジャーオートメーションの作成
9 タスク
45 分
初級
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オートメーションを作成。
詳細なタスク
1 テスト用Windowsフォームの作成
- ソリューションエクスプローラーで、「ACMESearchPrj」を右クリックして、「Add」 > 「New Windows Form」を選択し、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウで、「Name」フィールドにfrmTestと入力します。
- 「Add New Item」ウィンドウで「Add」をクリックし、デザインエリアに「frmTest.os」ウィンドウを表示します。
- Object Explorerで、「frmTest」をクリックしてオブジェクトをハイライトし、「Properties」ウィンドウに使用できるすべてのプロパティを表示します。
- 「Properties」ウィンドウで、「TopMost」プロパティを「True」に設定します。
- メニューバーから、「File」>「Save All」をクリックして編集内容を保存します。
- Toolboxの「Common Controls」セクションで、次のコントロールを「frmTest」ウィンドウにドラッグします。
- Label
- TextBox
- Button
- Object Hierarchyで、「Label」、「TextBox」、「Button」コントロールをクリックして強調表示します。
- 「Properties」ウィンドウで、次の表の情報を使用して、コントロールの各プロパティと、Design(Name)プロパティを更新します。
オブジェクト名
更新するプロパティ
プロパティ値
label1
Design(Name)
Text
lblZipCode
Zip Code
textbox1
Design(Name)
txtZipCode
button1
Design(Name)
Text
btnTest
Test
- メニューバーから、「File」>「Save All」をクリックしてWindowsフォームを保存します。
2 テスト用にオートメーションを更新
- ソリューションエクスプローラーで、「ACME_P_NavToHome.os」を右クリックして、「Open」を選択し、デザインエリアにオートメーションを表示します。
- オートメーションで、次のデザインブロックを追加します。
ソースプロジェクト項目 プロパティ、イベント、メソッド 説明 frmTest btnTest.Clickイベント - 次の図に示すように、オートメーションで、オートメーションリンクを接続します。
3 プロシジャーオートメーションのテスト
- ソリューションエクスプローラーで、「ACMESearchPrj」を右クリックし、「Set as Startup Project」を選択します。
- メニューバーから、「Debug」 > 「Start Debugging」を選択し、2つのプロシジャーオートメーションをデバッグします。
- テスト用のWindowsフォームから、「Test」をクリックします。 「Sign In」ページまではプロセスが機能します。このページでは「Sign In」ボタンが有効になっていません。
- メニューバーから、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。
4 RaiseEventメソッドの追加
- ソリューションエクスプローラーで、「ACMESystem.os」をダブルクリックして、デザインエリアで開きます。
- 「ACMESearch.os」タブで、「Start Interrogation」をクリックしてウェブアプリケーションを起動します。
- 「Object Hierarchy」で、「ACMEwpSignIn」を右クリックし、「View Source」を選択して「Source Code」ウィンドウを表示します。
- 「Source Code」ウィンドウで、「
<small>checkLengthP()</small>
」(約32行目付近)を検索します。補足: このコードは、「Sign In」ボタンを有効にする前に、パスワード入力の長さを確認する関数を呼び出します。 - 「Source Code」ウィンドウで、「
checkLengthP()
」(約292行目付近)を検索します。補足:onkeyup
メソッドがchecklengthP()
関数を呼び出します。 - 「Source Code」ウィンドウで、「Close」アイコンをクリックしてウィンドウを閉じます。
- 「ACMESystem.os」」タブで、「Stop Interrogation」をクリックしてウェブアプリケーションを閉じ、インテロゲーションを停止します。
- デザインエリアで、「ACME_P_SignIn.os」タブをクリックしてオートメーションを有効にします。
- オートメーションで、ACMEtxtPassword.TextデザインブロックとACMEbtnSignin.PerformClickデザインブロックの間のオートメーションリンクを削除します。
- 「Object Hierarchy」で、「ACMEtxtPassword」を選択し、コントロールをハイライトします。
- Object Inspectorで、「Show Methods Only」をクリックしてウィンドウをフィルタします。
- Object Inspectorで、「RaiseEvent」メソッドをクリックしてオートメーションにドラッグします。
補足: 「Configure Type」を使用してメソッドを検索します。
- 「RaiseEvent」デザインブロックで、「evt」をクリックし、「onkeyup」を選択して、メソッドが実行するイベントを設定します。
- 次の図に示すように、オートメーションでコンポーネントを接続します。
- メニューバーから、「File」>「Save All」を選択して編集内容を保存します。
5 プロシジャーオートメーションのテスト
- メニューバーから、「Debug」 > 「Start Debugging」を選択し、2つのプロシジャーオートメーションをデバッグします。
- テスト用のWindowsフォームから、「Test」をクリックします。 「Sign In」ボタンが有効になり、クリックしてホームページに移動できます。
- メニューバーから、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。
6 ACME_P_SearchByZipオートメーションの作成
- 「ACME_P_NavToHome」オートメーションで、「frmTest.btnTest.Click」デザインブロックを削除します。
- ソリューションエクスプローラーから、「ACMESearchPrj」の「Procedures」を右クリックし、「Add」 > 「New Automation」を選択し、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウで、「Name」フィールドにACME_P_SearchByZipと入力します。
- 「Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「デザイナ」タブで開きます。
- オートメーションで、次のデザインブロックをオートメーションに追加します。
補足: 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」を選択
- 「Object Hierarchy」で、ACME_P_SearchByZipオートメーションとExecuteノードを展開し、Zip入力パラメーターを表示します。
- 「Object Hierarchy」で、「Zip」パラメータを選択し、パラメーターをハイライトします。
- Object Inspectorで、「Configure Type」をクリックして「Configuration」ウィンドウを表示します。
- 「Configuration」ウィンドウの「Results」フレームで、プロパティの前にある「+」アイコンをクリックしてオプションを展開します。
- 「Results」フレームで、「This」プロパティを選択し、「OK」をクリックして、プロパティをObject Inspectorに追加し、ウィンドウを閉じます。
- Object Inspectorで、「Show Methods Only」をクリックして結果をフィルタします。
-
Object Inspectorで、「This」プロパティをオートメーションにドラッグします。
補足: このデザインブロックは、入力パラメーターのプロキシです。 - 次の図に示すように、オートメーションでデザインブロックを接続します。
- 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ストアの結果を使用できません。
- 次の図に示すように、オートメーションでコンポーネントを接続します。
- メニューバーから、「File」>「Save All」を選択して編集内容を保存します。
7 ACME_P_GetNearestStoreオートメーションの作成
- ソリューションエクスプローラーから、「ACMESearchPrj」の「Procedures」を右クリックし、「Add」 > 「New Automation」を選択し、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウで、「Name」フィールドにACME_P_GetNearestStoreと入力します。
- 「Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「デザイナ」タブで開きます。
- 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」デザインブロックを作成します。 - 次の図に示すように、オートメーションで、オートメーションリンクを接続します。
- メニューバーから、「File」>「Save All」を選択して編集内容を保存します。
8 ACME_E_btnTestClickedオートメーションの作成
- ソリューションエクスプローラーで、「ACMESearchPrj」を右クリックして、「Add」 > 「New Folder」を選択し、プロジェクトに新しいフォルダーを作成します。
- フォルダーの「Name」フィールドに、「Events」と入力します。
- ソリューションエクスプローラーの「ACMESearchPrj」で、「Events」フォルダーを右クリックし、「Add」 > 「New Automation」を選択して、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウで、「Name」フィールドにACME_E_btnTestClickedと入力します。
- 「Add New Item」ウィンドウで、「Add」をクリックして、「Add New Item」ウィンドウを閉じ、オートメーションを新しい「designer」タブで開きます。
- 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つ目のラジオボタンを選択します。 - 次の図に示すように、ACME_E_btnTestClickedオートメーションで、オートメーションリンクを接続します。
- メニューから、「File」>「Save All」を選択して編集内容を保存します。
9 作業の確認
- メニューバーから、「Debug」 > 「Start Debugging」をクリックし、オートメーションをデバッグしてテストウィンドウを表示します。
- テストウィンドウで、「Zip Code」」フィールドに5桁の郵便番号を入力します。
- テストウィンドウで、「Test」をクリックして、ウェブアダプターを開始し、アプリケーションにサインインし、郵便番号に基づいて検索を実行します。 店舗住所が含まれたメッセージボックスが表示されます。
- オプションとして、オートメーション内でエラーメッセージをテストすることもできます。
- メニューバーで、「Debug」 > 「Stop Debugging」を選択してデバッガを閉じ、開発モードに戻ります。
このモジュールは、下記のミッションにも含まれています。
トレーニングを実施中に問題が発生した場合は、Pega Academy Support FAQsをご確認ください。