テーブルおよびグリッドのセル値の自動パラメータ化
テストでの作業中は,テーブルまたはグリッド内のセルの値を変更すると,UFT One が標準設定で SetCellData ステートメントを記録します。1 つのテーブルまたはグリッドで複数のセルの値を変更し,テスト・アクションを実行するたびにセルに異なる値が入力されるようにテストをパラメータ化するには,各ステートメントを個別にパラメータ化するか,[テーブルおよびグリッド コントロールを自動パラメータ化する]オプションを有効にします。
このオプションを選択すると,UFT One は記録セッション中に特定のテーブルまたはグリッドに設定されたすべての値を自動的にキャプチャし,それらを[データ]表示枠内の特別なデータ・シートに格納します。UFT One はこの新しいデータ・シートを参照する SAPGuiTable.Input,SAPGuiGrid.Input,または SAPGuiAPOGrid.Input ステートメントをテストに 1 つ挿入します。テストを実行する前に,アクションの反復ごとに簡単に値を変更したり,データ・シートにデータ・セットを追加したりできます。
注: また,このオプションを使用して,Business Process Testing パッケージ・アプリ・キットを使用してフローを学習する際にテーブル・パラメータの作成を有効にします。
UFT One による自動パラメータ化モードでの記録方法
[テーブルおよびグリッド コントロールを自動パラメータ化する]オプションを使って記録を行い,テーブルまたはグリッドのセルの値を設定した後で SAP サーバにデータを送信する操作を実行すると,UFT One は次の処理を行います。
-
テーブルまたはグリッドを表す新しいデータ・シートを作成します。各データ・シートは,テーブルまたはグリッドの操作が記録されたアクションのサブシートです。データ・シート名は,常にアクション名の後ろにピリオド(.)とテーブルまたはグリッドの内部名を付加したものになります。例:Action1.FLIGHT_TABLE
注: シート名は 31 文字に制限されています。そのため,アクションとテーブル名の組み合わせが長すぎる場合は,一意性を維持しながら名前が自動的に短縮されます。
-
記録するテーブルまたはグリッドのカラムごとに 1 つのカラムをデータ・シートに追加します。データ・シート内のカラムの名前は,通常,アプリケーション内のカラムの名前と同じです。
アプリケーション内のカラムにヘッダがない場合や,同じ名前のカラム・ヘッダが複数ある場合,UFT One により_ _<インデックス> という形式の名前でカラムが挿入されます。<インデックス>は,Input ステップを記録したときのカラムの場所に対応するカラム番号を表します。
-
記録時に使用する値をデータ・シートの適切なセルに挿入します。データを入力した各行は,データ・シート内の 1 行で表されます。記録した行の上の行には,プレースホルダ(空)行が追加されます。たとえば,3,5,8 行目にデータを設定すると,データ・シートに 7 つの行が追加されます。2,4,6,7 行目のセルにはデータは格納されません。
-
行の最初のセルに .END という値を設定した終了行を挿入します。
-
Input <DataSheetName> ステートメント(およびその後に SelectCell ステートメント)をテストに挿入します。
Input ステートメントは,データ・シートの値をデータ・シート名に対応するテーブルまたはグリッドに入力するように UFT One に指示します。実質的には[データ]表示枠内の特別なシートを参照する自動的にパラメータ化されたステートメントです。
例: 航空会社の航空券情報が格納されたテーブル・コントロール内の値を更新するとします。一部の航空会社コードを更新し,一部の出発地と到着地に州名や国名を追加し,到着空港名コードの 1 つを更新し,一部の到着時間を更新します。アプリケーション内の編集後のテーブルは,たとえば次のようになります。
UFT One はデータ入力を表すために次の Input ステートメントをテストに挿入します。
SAPGuiSession("Session").SAPGuiWindow("SAP R/3").SAPGuiTable("SPFLI").Input "Action1.SPFLI"
PAGEDOWN キーではなく ENTER キーを使ってスクロールするテーブルまたはグリッドで記録を行った場合は,ScrollMethod オプション引数を手動で追加する必要があります。詳細については,スクロールが必要な行のデータを参照してください。
データ・テーブル内の対応する[データ]表示枠は,次のようになります。
アプリケーション内のテーブルまたはグリッドの最初の 3 行でデータが変更されたため,データ・シートには 3 つの行があります。[Airfare]カラムと[Plane Type]カラムの値は記録セッション中に変更されなかったため,これらのカラムに対応するカラムはデータ・シートに含まれていません。
データ・シート内のパラメータ化されたセル値
UFT One は,変更されたテーブルまたはグリッドのセル・データを含む情報がサーバに送信されるたびに Input ステートメントと新しい入力データ・シートを挿入します。サーバに情報が送信される前と後の両方で特定のテーブルまたはグリッドのセルにデータを設定した場合は,同じテーブルまたはグリッドを表す複数の入力データ・シート(および複数の Input ステートメント)が作成されます。最適な結果を得るには,次の手順を実行します。
-
記録中は,特にスクロールによってサーバに情報が送信される場合は,テーブルやグリッドの可視の行にのみデータを入力します。テストの編集時に,記録されたデータ・セットに行を追加できます。
-
並べ替えや計算などの操作は,テーブルまたはグリッドへのデータ入力を開始する前または終了した後に行ってください。
アクションの反復ごとに異なるデータの値を提供するには,新しいデータ・セットを追加します。テーブルまたはグリッドに新しいデータ・セットを追加するには,前の終了行の下の適切な行とカラムに値を入力します。新しいデータ・セットの終わりを示すため,最初のデータ・セットの終了行をコピーして,新しいデータ・セットの下の行に貼り付けます。各データ・セットには異なる数の行を含めることができます。
注: Input ステートメントは,終了行を見つけることができる場合にのみ正常に実行できます。したがって,終了行の最初のセルには .END というテキストのみを含める必要があります。必要に応じて,終了行のほかのセルにテキストを入力できます。たとえば,終了行の 2 番目のセルに番号を入力して,そのデータ・セットに対応する反復番号を示すことができます。
入力データ・シートは現在のアクションのサブシートとして追加されるため,Input ステートメントは現在のアクションの反復に対応するデータ・セットを使用します。たとえば,すべての反復で実行するようにアクションを設定し,アクション・シートに 5 つのデータ行を含めた場合は,入力データ・シートにも 5 つのデータ・セット(および 5 つの .END 行)を含める必要があります。
入力データ・シートから複数のデータ・セットを使用するには,[現在のアクション (ローカル)]を使用するように設定された別の[データ]表示枠パラメータがアクション内に少なくとも 1 つ必要です。また,[実行]タブ([アクション呼び出しプロパティ]ダイアログ・ボックス)で,複数の反復を実行するようにアクションが設定されていることを確認してください。
例: 次の入力データ・シートには,3 つのデータ・セットが格納されています。最初のセットには,テーブルまたはグリッドの先頭から 3 行分のデータが含まれています。2 番目のセットには,テーブルまたはグリッドの先頭から 2 行分のデータが含まれています。3 番目のセットには,3~6 行目のデータが含まれています。空の 1 行目(データ・シートの 9 行目)は,テーブルまたはグリッドの 1 行目のデータを入力または変更しないことを示します。
各データ・セットが対応するアクションの反復を簡単に識別できるように,各 END 行の 2 番目のセルに手動で番号が入力されています。
スクロールが必要な行のデータ
テーブル内のスクロールによってサーバにデータが送信される場合は,記録セッション中の目で確認できるセルだけにデータを追加することをお勧めします。実行セッション中に追加の行にデータを入力するには,テストの編集中に手動でデータ・シートに行を追加します。
アプリケーション内のテーブルまたはグリッドの可視でない行への入力データ・セットを作成する場合は,それらの行にデータを挿入するために,UFT One は実行セッション中にテーブルまたはグリッドをスクロールする必要があります。テーブルまたはグリッドに追加する必要がある行への入力データ・セットを作成する場合は,UFT One がその行を追加するコマンドを送信する必要があります。データ・シート内の行数がアプリケーション内で現在表示されている行数を超えている場合,UFT One は標準設定で PageDown コマンドを送信します。UFT One がテーブルまたはグリッドに行を追加するために ENTER キーを使用する必要がある場合は,テストの実行前にオプションの ScrollMethod 引数を(ENTER という値とともに)Input ステートメントに追加する必要があります。
例:
SAPGuiSession("Session").SAPGuiWindow("Create Standard").SAPGuiTable("SAPMV45ATCRTL_V_ERF_").Input "Action1.All items", ENTER