
ソリューションへのフレームワークコンポーネントの追加
8 タスク
45 分
シナリオ
最初の2つのアプリケーションプロジェクトが終了しました。 ソリューションのドキュメントを確認したところ、MainPrjという名前のユーザーインターフェイスプロジェクトが必要です。このプロジェクトには顧客情報を表示し、顧客の郵便番号に基づいて、最も近い店舗住所を表示するWindowsフォームが含まれます。 同時に多数のケースが開かれることがあるため、コンボボックスを使用してアカウント番号を収集します。このようにすると、エージェントはコンボボックスで別の顧客のアカウント番号を選択して顧客を切り替えることができます。
ソリューションのドキュメントに従い、「Customer Information」ウィンドウで、CRMアプリケーションから顧客のアカウント情報を表示します。 1つのプロジェクトから別のプロジェクトの間で効率的にコミュニケーションをとり、データを渡すには、ソリューションのインタラクションフレームワークを使用し、顧客情報と店舗情報が反映されるようにフレームワークXMLファイルを更新します。
ソリューションドキュメントでは、最終的なソリューションは、1つのソリューションとして動作し、実装される必要があると示されています。 MainPrjには、他のアプリケーションへのパイプラインとなるユーザーインターフェイスが含まれています。 MainPrjプロジェクトは、他のプロジェクトを参照してビジネスニーズを満たし、そしてソリューションのStartup Projectとして設定される必要もあります。
ケースを確認する際、「Customer Information」ウィンドウのコンボボックスにアカウント番号が表示され、ユーザーは開かれているアカウント間で簡単に切り替えることができます。 既存のオートメーションでCRMアプリケーションにログインし、「User 1」ボタンをクリックして最初の顧客にアクセスします。 ケースに基づき、顧客のアカウントが開かれると、ソリューションが必要な情報をすべて更新し、インタラクションフレームワークを起動してデータのソートと共有を開始します。 このビジネスケースでは、フレームワークのインタラクションキーはCRMアカウント番号である必要があるとされています。
課題
ソリューションのこの部分では、以下のタスクを行います。
オブジェクト名 |
更新するプロパティ |
プロパティ値 |
---|---|---|
Customer Information |
Text TopMost |
Customer Information True |
label1 |
Design(Name) Text Font > Bold Font > ForeColor - |
MainlblCurrentAcct Current Account True Highlight |
label2 |
Design(Name) Text Text Font > Bold Font > ForeColor - |
MainlblGetAcct Get Account True Highlight |
label3 |
Design(Name) Text Text Font > Bold Font > ForeColor - |
MainlblName Customer Name (True) Highlight |
label4 |
Design(Name) Text Text Font > Bold |
MainlblAddress Address True |
label5 |
Design(Name) Text Text Font > Bold |
MainlblCity City True |
label6 |
Design(Name) Text Text Font > Bold |
MainlblState State True |
label7 |
Design(Name) Text Text Font > Bold |
MainlblZip ZIP Code True |
combobox1 |
Design(Name) MaxDropDownItems Sorted |
MaincmbGetAcct 100 True |
textbox1 |
Design(Name) Text |
MaintxtCurrentAcct -------- (8個のダッシュ) |
textbox2 |
Design(Name) |
MaintxtName |
textbox3 |
Design(Name) |
MaintxtAddress |
textbox4 |
Design(Name) |
MaintxtCity |
textbox5 |
Design(Name) |
MaintxtState |
textbox6 |
Design(Name) |
MaintxtZip |
Groupbox1 |
Design(Name) Text |
MaingboxNearestStore ACME Nearest Store |
Button1 |
Design(Name) Text |
MainbtnNearestStor Find Store |
Label 8 |
Design(Name) Text |
MainlblNearestStore ----- (5個のダッシュ) |
- MainPrjという名前のプロジェクトを追加し、それをStartup Projectとして設定します。
- CustomerInformationという名前のWindowsフォームをMainPrjに追加します。
- Toolboxから以下の.Netコントロールを追加し、以下の表に基づいてプロパティを更新します。
- CRMPrjおよびMainPrjプロジェクトにグローバルコンテナを追加し、順に「_GC_CRM」と「_GC_Main」という名前にします。
- 「TrainingCertificationSln」ディレクトリーの「MainPrj」フォルダーに、interaction-call.xmlを追加します。
- CRMPrj、ACMESearchPrj、MainPrjプロジェクトのグローバルコンテナに、Interaction Managerコンポーネントを追加し設定します。 各インタラクションマネージャーコンポーネントの名前を「IntMgr」に変更し、それらのコンポーネントをinteraction-call.xmlに関連付けます。
- interaction-call.xmlドキュメントに、7個のアカウント情報アイテム、データタイプ、デフォルト値を追加します。
コンテキストアイテム データタイプ デフォルト値 AcctNum string 10000 Name string [No Active Call] Adress string xxxxx City string xxxxx State string xxxxx ZipCode string xxxxx NearestStore string xxxxx - MainPrjから、CRMPrjおよびACMESearchPrjへのプロジェクト参照を作成します。
- ACMESearchPrjのfrmTestプロジェクトアイテムを、「Not to run」に設定します。
- CRMChild Createdイベントからインタラクションを開始する、CRM_E_CRMChild_Createdというオートメーションを作成します。
- インタラクション開始後に、コンボボックスに顧客のアカウント番号を追加するオートメーションを作成します。
- 「CRMChild」ウィンドウが閉じると、インタラクションを停止するオートメーションを作成します。
- 「CRMChild」ウィンドウが閉じると、コンボボックスからアカウント番号を削除するオートメーションを作成します。
詳細なタスク
1 新しいプロジェクトとユーザーインターフェイスの作成
- ソリューションエクスプローラーから、「TrainingCertificationSln」を右クリックして、「Add」>「New Project」を選択し、「Add New Project」ウィンドウを表示します。
- 「Add New Project」ウィンドウで、「Empty Pega Robotics Project」を選択します。
- 「Add New Project」ウィンドウの「Name」フィールドに、「MainPrj」と入力します。
- 「OK」をクリックしてウィンドウを閉じ、ソリューションエクスプローラーを更新して新しいプロジェクトを含めます。
- ソリューションエクスプローラーから、「MainPrj」を右クリックして、「Add」>「New Windows Form」を選択し、「Add New Item」ウィンドウを表示します。Windowsフォームアイテムがハイライトされています。
- 「Add New Item」ウィンドウの「Name」フィールドに、「frmCustInfo」と入力します。
- 「Add New Item」ウィンドウで「Add」」をクリックし、ウィンドウを閉じて、デザインエリアで 「frmCustInfo.os」タブを開きます。
- Object Hierarchyで、「frmCustInfo」をクリックして、コントロールをハイライトし、「Properties」ウィンドウを更新します。
- 「Properties」ウィンドウで、「Text」プロパティを探し、プロパティ名を「Customer Information」に変更します。
- 「Properties」ウィンドウで、「TopMost」プロパティを「True」に設定します。
- メニューバーから、「File」>「Save All」を選択して変更内容を保存します。
- Toolboxで「Common Controls」セクションと「Containers」セクションを展開し、必要なコントロールを探します。
- Toolboxから、「Customer Information」ウィンドウに次のコントロールをドラッグアンドドロップし、次の画像に従ってコントロールを配置します。
- 8個のLabelコントロール
- 6個のTextboxコントロール
- 1個のComboBoxコントロール
- 1個のGroupBoxコントロール
- 1個のButtonコントロール
- メニューバーから、「File」>「Save All」を選択してユーザーインターフェイスを保存します。
- Object Hierarchyで各コントロールを選択したら、「Properties」ウィンドウを使用し、各コントロールのプロパティを更新します。
オブジェクト名
更新するプロパティ
プロパティ値
label1
Design Name
Text
Font > Bold
Font > ForeColor -
MainlblCurrentAcct
Current Account
True
Highlight
label2
Design Name
Text
Text Font > Bold
Font > ForeColor -
MainlblGetAcct
Get Account
True
Highlight
label3
Design Name
Text
Text Font > Bold
Font > ForeColor -
MainlblName
Customer Name
(True)
Highlight
label4
Design Name
Text
Text Font > Bold
MainlblAddress
Address
True
label5
Design Name
Text
Text Font > Bold
MainlblCity
City
True
label6
Design Name
Text
Text Font > Bold
MainlblState
State
True
label7
Design Name
Text
Text Font > Bold
MainlblZip
ZIP Code
True
combobox1
Design Name
MaxDropDownItems
Sorted
MaincmbGetAcct
100
True
textbox1
Design Name
Text
MaintxtCurrentAcct
-------- (8個のダッシュ)
textbox2
Design Name
MaintxtName
textbox3
Design Name
MaintxtAddress
textbox4
Design Name
MaintxtCity
textbox5
Design Name
MaintxtState
textbox6
Design Name
MaintxtZip
Groupbox1
Design Name
Text
MaingboxNearestStore
ACME Nearest Store
Button1
Design Name
Text
MainbtnNearestStor
Find Store
Label 8 Design Name
Text
MainlblNearestStore
----- (5個のダッシュ)
完成すると、「Object Explorer」ウィンドウは次の画像のようになります。
- メニューバーから「File」>「Save All」を選択し、ユーザーインターフェイスに編集内容を保存します。
2 インタラクションマネージャーコンポーネントの追加
- ソリューションエクスプローラーで、「CRMPrj」を右クリックし、「Add」>「New Item」を選択して、「Add New Item」」ウィンドウを表示します。
- 「Add New Item」」ウィンドウで、「Global Container」」をクリックしてプロジェクトアイテムをハイライトします。
- 「Add New Item」ウィンドウの「Name」フィールドに、「_GC_CRM」と入力します。
- 「Add New Item」ウィンドウで「Add」」をクリックしてウィンドウを閉じ、デザインエリアでグローバルコンテナを開きます。
- 手順の1~4を繰り返し、_GC_Mainというという名前のMainPrj のためにグローバルコンテナを作成します。
- interaction-call.zipファイルをクリックしてダウンロードします。
- My Documentsのソリューションディレクトリーで、interaction-call.xmlをコピーしてMainPrjプロジェクトフォルダー(C:\Users\{userid}\Documents\Pega Robot Studio\Projects\TrainingCertificationSln\MainPrj)に貼り付けます。
- ソリューションエクスプローラーで、「_GC_CRM.os」をダブルクリックし、デザインウィンドウでグローバルコンテナを開きます。
- Toolboxの「Interaction Management」セクションで、InteractionManagerを「_GC_CRM.os」ウィンドウにドラッグアンドドロップします。
- 「Properties」ウィンドウの「(Name)」フィールドで、「interactionManager1」の名前を「IntMgr」に変更します。
- IntMgrの「Properties」ウィンドウで、「Configuration File」プロパティをクリックし、エリプスボタンを表示します。
- Configurationファイルプロパティで、省略符号をクリックして、「Open File」ウィンドウを表示します。
- ソリューションディレクトリーの「Open File」ウィンドウで、「MainPrj」プロジェクトフォルダーに移動します。
- 「Open File」ウィンドウの「MainPrj」フォルダーで、「interaction-call.xml」をクリックしてファイルを選択します。
- 「Open File」ウィンドウで、「Open」をクリックしてファイルを関連付け、「Open File」ウィンドウを閉じます。
- 手順の8~15を繰り返し、Interaction Managerコンポーネントを_GC_Mainと_GC_ACMEに追加します。
- メニューバーから、「File」>「Save All」を選択し、新しいグローバルコンテナをプロジェクトとインタラクションマネージャーコンポーネントに保存します。
3 project-to-project referencesの作成
- ソリューションエクスプローラーで、「MainPrj」プロジェクトを右クリックして、「Add」>「Reference」を選択し、「Add Reference」ウィンドウを開きます。
- 「Add References」ウィンドウで、「Projects」タブをクリックします。
- 「Project」タブで、Shiftキーを押したまま、「CRMPrj」と「ACMESearchPrj」を選択します。
- 「Add References」ウィンドウで「OK」をクリックして「Add Reference」ウィンドウを閉じ、ソリューションエクスプローラーの「MainPrj」の下にある「Reference」フォルダーにプロジェクトを表示します。
- ソリューションエクスプローラーで、「MainPr」を右クリックして、「Manage Imported Projects」を選択し、「Import Projects」ウィンドウを開きます。
- 「Available Projects」リストの「Import Projects」ウィンドウで、「>>」をクリックして両方のプロジェクトを「Imports」リストに移動します。
- 「Import Projects」ウィンドウで、「OK」をクリックしてウィンドウを閉じ、MainPrjにプロジェクトをインポートします。
- ソリューションエクスプローラーで、「MainPrj」を右クリックし、「Set as StartUp Project」を選択します。 MainPrjテキストが太字になります。
- ソリューションエクスプローラーの「ACMESearchPrj」で、「frmTest」を右クリックし、「Run Actions」>「Set To 'Not Run'」を選択して、ソリューションエクスプローラーでそのプロジェクトアイテム上に小さな赤い停止アイコンを表示します。
- メニューバーから、「File」>「Save All」を選択して編集内容を保存します。
4 インタラクション開始後に、コンボボックスにアカウント番号追加するオートメーションの作成
- ソリューションエクスプローラーで、「MainPrj」プロジェクトを右クリックして、「Add」>「New Folder」を選択します。
- ソリューションエクスプローラーの新しいフォルダーで、「Events」と入力してフォルダーの名前を変更します。
- ソリューションエクスプローラーで、「Events」フォルダーを右クリックし、「Add」>「New Automation」を選択して、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウの「Name」フィールドに、「Main_E_IntMgr_InteractionStarted」と入力します。
- 「Add New Item」ウィンドウで「Add」をクリックしてウィンドウを閉じ、デザインエリアでオートメーションを開きます。
- _GC_MainのObject Hierarchyから、「IntMgr」をクリックして「InteractionManager」コンポーネントをハイライトします。
- Object Inspectorで、「Show Events Only」をクリックしてイベントをフィルタします。
- イベントのリストから、「InteractionStarted」をオートメーションにドラッグアンドドロップします。
- IntMgr.InteractionStartedデザインブロックの右上で、上向き矢印をクリックしてKeyパラメーターを公開します。
- frmCustInfoのObject Hierarchyで、「MaincmbGetAcct」コントロールを選択してハイライトします。
- Object Explorerの右上で「Explore Component Properties」を選択し、Object Hierarchyでコンポーネントプロパティを更新します。
- Component Propertiesの結果で、コンポーネントのリストを下にスクロールし、「Items」を選択してコンポーネントをハイライトします。
- Object Inspectorで、「Configure Type」をクリックし「Object Configuration」ウィンドウを表示します。
- 「Object Configuration」ウィンドウで、「Methods」カテゴリーを展開します。
- 「Object Configuration」ウィンドウで、「Add (1 parameter)」メソッドのチェックボックスと、「Remove (1 parameter)」メソッドのチェックボックスを選択します。
- 「Object Configuration」ウィンドウで、「OK」」をクリックしてウィンドウを閉じます。
- Object Inspectorで、「Show Methods Only」をクリックしてオブジェクトのメソッドを表示します。
- Object Inspectorで、「Add」メソッドをオートメーションにドラッグアンドロップします。
- 次の図に示すように、オートメーションでデザインブロックを接続します。
- メニューバーから、「File」>「Save All」を選択します。
- メニューバーから、「Debug」>「Start Debugging」を選択します。 コンボボックスには、アカウント番号23453があります。
- CRMアプリケーションで、「User 2」をクリックします。 アカウント番号23454がコンボボックスに入力されます。
- メニューバーから、「Debug」>「Stop Debugging」を選択してデバッグを停止し、ウィンドウを閉じます。
5 interaction-call.xmlの変更
- ソリューションエクスプローラーで、「_GC_Main.os」をダブルクリックし、それをデザインエリアで開きます。
- 「_GC_Main」ウィンドウで、「IntMgr」を右クリックしてコンテキストメニューを表示します。
- コンテキストメニューで、「Modify Configuration」をダブルクリックし、デザインエリアでinteraction-call.xmlファイルを開きます。
- interation-call.xmlで、Contextセクションを探します。
- Contextセクションで、以下のコンテキスト値を新しく追加します。 XMLファイルの新規または編集された各行には、左の余白に黄色のマーカーが表示されます。
コンテキストアイテム データタイプ デフォルト値 AcctNum string 10000 Name string [No Active Call] Address string xxxxx City string xxxxx State string xxxxx ZipCode string xxxxx NearestStore string xxxxx - メニューバーから「File」>「Save All」を選択し、編集内容をXMLファイルに保存します。 ファイルの黄色のマーカーが緑で表示されます。
- メニューバーから、「Build」>「Clean Solution」を選択し、メモリーからアイテムを削除します。
- 削除を終えたら、メニューバーから「Build」>「Rebuild Solution」を選択し、新しいXMLエントリーをソリューションで使用できることを確認し、メモリーのキャッシュに保存された古いXMLを削除します。
6 「CRMChild」ウィンドウからインタラクションを開始するオートメーションの作成
- ソリューションエクスプローラーの「CRMPrj」プロジェクト」で、「Events」フォルダーを右クリックし、「Add」>「New Automation」を選択して、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウの「Name」フィールドに、「CRM_E_CRMChild_Created」と入力します。
- 「Add New Item」ウィンドウで「Add」をクリックしてウィンドウを閉じ、デザインエリアでオートメーションを開きます。
- オートメーションで、次のデザインブロックを追加します。
補足: Object Inspectorにコントロールのプロパティ、イベント、メソッドが存在しない場合、「Configure Type」アイコンをクリックして表示するオプションを選択します。
プロジェクト項目ソース コントロール 説明/設定 CRM CRMChild.Createdイベント このソリューションでは、「New Call」ウィンドウが表示されると常にオートメーションロジックが実行されます。 CRM CRMlblAcctNum.WaitForCreateメソッド このメソッドは、値をCRMChildのキープロパティに割り当てる前に、「Account Number」フィールドが作成されるのを待ちます。 CRM CRMlblAcctNum.Textプロパティ アカウント番号のテキストがキーです。 CRM CRMChild.Keyプロパティ CRMChildのキープロパティをアカウント番号テキストに割り当てます。 _GC_CRM CRMIntMgr.StartInteraction(2つのパラメーター)メソッド デザインブロックで、「Activate」をクリックしてプロパティをTrueに設定します。 - 次の図に示すように、オートメーションでデザインブロックを接続します。
- 「Toolbox」ウィンドウの「Advanced」セクションで、「MessageDialog」」コンポーネントをオートメーションにドラッグアンドドロップして、「Overwrite」ウィンドウを表示します。
- 「Overwrite」ウィンドウで、2番目のラジオボタンを選択し、「OK」をクリックしてデザインブロックをオートメーションに追加します。
- MessageDialog1デザインブロックで、「message」」をクリックし、「CRM Account is not available」と入力します。
- 次の図に示すように、オートメーションで、CRMlblAcctNum.WaitForCreate False出力をMessageDialog1.Show入力に接続します。
- メニューバーから、「File」>「Save All」を選択してオートメーションの編集内容を保存します。
7 「CRMChild」ウィンドウが閉じるとインタラクションを停止するオートメーションの作成
- CRMPrjのソリューションエクスプローラーで、「Events」を右クリックして「Add」>「New Automation」を選択し、「Add New Item」ウィンドウを表示します。
- 「Add New Item」ウィンドウの「Name」フィールドに、「CRM_E_CRMChild_Closing」と入力します。
- 「Add New Item」ウィンドウで「Add」をクリックしてウィンドウを閉じ、デザインエリアでオートメーションを開きます。
- Object Explorerで、次のデザインブロックを「CRM_E_CRMChild_Closing」オートメーションに追加します。
プロジェクト項目ソース コントロール 説明/設定 CRM CRMChild.Closingイベント このソリューションでは、「CRMChild」ウィンドウが閉じると、常にオートメーションロジックが実行されます。 CRM CRMlblAcctNum.Textプロパティ このテキストプロパティは、フレームワーク内でインタラクションキーの値を提供します。 CRM IntMgr.CloseInteractionメソッド Close Interactionメソッドは、インタラクションキーに基づいて、メモリーに格納されたコンテキスト値を削除します。 - 次の図に示すように、オートメーションでデザインブロックを接続します。 「CRMlblAcctNum」を「IntMgr.CloseInteraction」に接続すると、閉じるインタラクションの識別子を求める「Key」パラメーターが表示されます。 「None」を選択して、「Key」に変更します。 これで、インタラクションキーをアカウント番号として定義できます。
- メニューから、「File」>「Save All」を選択してオートメーションを保存します。
8 「CRMChild」ウィンドウが閉じるとコンボボックスからアカウント番号を削除するオートメーションの作成
- MainPrjのソリューションエクスプローラーで、「Events」を右クリックして「Add」>「New Automation」を選択し、「Add New Item」」ウィンドウを表示します。
- 「Add New Item」ウィンドウの「Name」フィールドに、「Main_E_IntMgr_InteractionClosed」と入力します。
- 「Add New Item」ウィンドウで「Add」」をクリックしてデザインエリアにオートメーションを開き、ウィンドウを閉じます。
- Object Explorerで、次のデザインブロックを「Main_E_IntMgr_InteractionClosed」オートメーションに追加します。
プロジェクト項目ソース コントロール 説明/設定 _Main_GC IntMgr.InteractionClosedイベント デザインブロックで下向き矢印をクリックして、インタラクションキーパラメーターを公開します。 CustomerInformation MaincmbGetAcct.Items.Removeメソッド Object Explorerで「Explore Component Properties」ボタンを使用して、Removeメソッドにアクセスします。 - 次の図に示すように、オートメーションでデザインブロックを接続します。
- メニューバーから、「File」>「Save All」をクリックしてオートメーションを保存します。
- メニューバーから、「Debug」>「Start Debugging」を選択します。 コンボボックスには、アカウント番号23453があります。
- CRMアプリケーションで、「User 2」をクリックします。 アカウント番号23454がコンボボックスに入力されます。
- CRMアプリケーションで、顧客のウィンドウを閉じます。 ウィンドウに関連付けられたアカウント番号がコンボボックスから消えます。
- メニューバーから、「Debug」>「Stop Debugging」を選択してデバッグを停止し、ウィンドウを閉じます。
このモジュールは、下記のミッションにも含まれています。
If you are having problems with your training, please review the Pega Academy Support FAQs.