SAP メソッドの動的な呼び出し

動的呼び出しを使用すると、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、メソッドの呼び出し、プロパティーの取得、またはプロパティーの設定を直接実行できます。また、このコントロールの Silk Test Workbench API で使用できないメソッドおよびプロパティーも呼び出すことができます。動的呼び出しは、作業しているカスタム コントロールを操作するために必要な機能が、Silk Test Workbench API を通して公開されていない場合に特に便利です。

注: 動的呼び出しは、スクリプトで使用できます。ビジュアル テストでは使用できません。

オブジェクトの動的メソッドは Invoke メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

オブジェクトの複数の動的メソッドは InvokeMethods メソッドを使用して呼び出します。コントロールでサポートされている動的メソッドのリストを取得するには、GetDynamicMethodList メソッドを使用します。

動的プロパティの取得には GetProperty メソッドを、動的プロパティの設定には SetProperty メソッドを使用します。コントロールでサポートされている動的プロパティのリストを取得するには、GetPropertyList メソッドを使用します。

たとえば、テスト対象アプリケーション内のコントロールの実際のインスタンスに関して、タイトルを String 型の入力パラメータとして設定する必要がある SetTitle というメソッドを呼び出すには、次のように入力します:
control.Invoke("SetTitle", "my new title")
注: 通常、ほとんどのプロパティは読み取り専用で、設定できません。
注: ほとんどのテクノロジー ドメインでは、メソッドを呼び出してプロパティーを取得する場合、Reflection を使用します。

サポートされているメソッドおよびプロパティ

次のメソッドとプロパティを呼び出すことができます。
  • Silk Test Workbench がサポートするコントロールのメソッドとプロパティー。
  • SAP オートメーション インターフェイスによって定義されているすべての public メソッド
  • コントロールが標準コントロールから派生したカスタム コントロールの場合、標準コントロールが呼び出すことのできるすべてのメソッドとプロパティー。

サポートされているパラメータ型

次のパラメータ型がサポートされます。
  • すべての組み込み Silk Test Workbench

    Silk Test Workbench 型には、プリミティブ型 (boolean、int、string など)、リスト、およびその他の型 (Point や Rect など) が含まれます。

  • UI コントロール

    UI コントロールは、TestObject として渡したり、返したりできます。

戻り値

プロパティや戻り値を持つメソッドの場合は、次の値が返されます。
  • すべての組み込み Silk Test Workbench 型の場合は正しい値。これらの型は、「サポートされているパラメータ型」のセクションに記載されています。
  • 戻り値を持たないすべてのメソッドの場合、C# では null が、VB では Nothing が返されます。

以下の VB .NET スクリプトの例では、SAP メソッドを動的に呼び出す方法を示します。

Dim _desktop As Desktop = Agent.Desktop
Dim wnd As SapWindow = _desktop.SapWindow("wnd 0")
Dim result As Object

result = wnd.Invoke("IsVKeyAllowed", 8) ' boolean return value
Console.WriteLine(
  "invoke result='" & result & "' type=" & result.GetType().ToString())
wnd.Invoke("ShowMessageBox", "A Title", "Some text...", 1, 1)