次の方法で共有


手順 2: SAP 成果物のアプリケーション定義ファイルを作成する

手順 2/4

完了までの時間: 15 分

目的: Microsoft SharePoint Server のビジネス データ カタログ機能は、基幹業務 (LOB) アプリケーションのデータを公開し、ポータルに組み込みます。 このデータをポータル サイトに組み込むには、Microsoft Office SharePoint Server で使用できるアプリケーション定義ファイルを作成する必要があります。

Microsoft Office SharePoint Server 2007 SDK で使用できるビジネス データ カタログ定義エディター ツールを使用すると、ビジネス データ カタログのアプリケーション定義ファイルを作成できます。 このツールでは定義ファイルの XML ファイルが自動的に生成されるため、XML エディターでファイルを手動で作成する必要はありません。

作成する Microsoft Office SharePoint Server アプリケーションの目的は、次のとおりです。

  • 顧客名に基づいて SAP システムで顧客を検索します。

  • フェッチされた顧客の一覧から顧客を選択し、顧客の詳細を取得します。

  • フェッチされた顧客の一覧から顧客を選択し、顧客の販売注文を取得します。

    これらの要件ごとに、ビジネス データ カタログ定義エディター ツールで一連のタスクを完了する必要があります。 このトピックでは、これらのタスクを実行する方法について説明します。

[前提条件]

アプリケーション定義ファイルの作成

このトピックでは、WCF サービスのアプリケーション定義ファイルを作成する手順について説明します。

WCF LOB サービスに接続し、エンティティを作成する

WCF サービスに接続して、サービスの Web サービス記述言語 (WSDL) を抽出する必要があります。 WSDL から、ビジネス・データ・カタログ定義エディターがメソッドを抽出します。 これらのメソッドを使用してエンティティを作成できます。 この例では、2 つのエンティティが作成され、それぞれ顧客と販売注文に対して 1 つ作成されます。

WCF サービスに接続してエンティティを作成するには
  1. ビジネス データ カタログ定義エディターを起動します。 [スタート] メニューの [Microsoft Business Data Catalog Definition Editor] をクリックします。

  2. ツール バーの [ LOB システムの追加] をクリックします。

  3. [LOB システムの追加] ウィンドウで、[ Web サービスへの接続] をクリックします。

  4. [URL] ボックスに、WCF サービスの URL を入力します。 URL は次の形式である必要があります。

    https://<computer_name>/Customer_Order/Rfc.svc?wsdl
    

    ここで、Rfc.svc は Rfc コントラクト用に作成されたファイルです。

    この URL は、「 手順 1: SAP 成果物を WCF サービスとして発行する」の説明に従って、WCF サービスが正常に発行されたかどうかをテストするときに使用できます。

  5. [接続] をクリックします。

  6. WCF アダプター サービス開発ウィザードで選択した操作を表示するには、[ Web メソッドの追加 ] タブをクリックします。次のメソッドが表示されます。

    • SD_RFC_CUSTOMER_GET

    • BAPI_SALESORDER_GETLIST

      BDC アプリケーション に Web メソッドを追加する

      メソッドをデザイン サーフェイスにドラッグします。 両方の操作を別のエンティティにドラッグしてください。

      Web メソッド のエンティティを作成する

  7. OK をクリックします。

  8. [ LOB システムの名前を入力 ] ダイアログ ボックスで、[ LOB システム名 ] ボックスに名前を入力します。 この例では、 Customer_Order呼び出し、[OK] をクリック します

  9. ビジネス データ カタログ定義エディターでは、2 つのエンティティが Entity0Entity1 として表示されます。 これらのエンティティにわかりやすい名前を付けます。 SD_RFC_CUSTOMER_GETのエンティティの名前を Customer に変更し、BAPI_SALESORDER_GETLISTのエンティティの名前を SalesOrder に変更します。 エンティティの名前を変更するには、次の手順を実行します。

    1. Customer_Order ノードを展開し、[エンティティ] ノードを展開します。

    2. Entity0 ノードを選択します。

    3. [プロパティ] ウィンドウで、[名前] ボックスに「Customer」と入力します。

      エンティティ の名前を変更する

    4. Entity1 ノードを選択します。

    5. [プロパティ] ウィンドウで、[名前] ボックスに「SalesOrder」と入力します。

メソッドのユーザー名とパスワード ヘッダーを指定する

SAP システムで選択した RFC の WCF サービスを作成するときに、エンドポイント動作構成の一部としてユーザー名とパスワード ヘッダーを指定しました。 「手順 1: WCF サービスとして SAP 成果物を発行する」を参照してください。 メソッドのプロパティに同じ値を指定する必要があります。

ユーザー名とパスワードのヘッダーを指定するには
  1. SD_RFC_CUSTOMER_GET メソッドのユーザー名とパスワード のヘッダーを追加します。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

    2. SD_RFC_CUSTOMER_GET ノードをクリックし、[プロパティ] ウィンドウで [ プロパティ ] ボックスの省略記号 (...) ボタンをクリックします。

    3. [PropertyView コレクション エディター] ウィンドウで [追加] をクリックし、[プロパティ] ウィンドウの [名前] ボックスに「HttpHeaderUserName」と入力します。 同様に、[PropertyValue] ボックスに「MyUserHeader」と入力します。 種類 ボックスで System.String を選択します。

      プロパティ を追加する

    4. [PropertyView コレクション エディター] ウィンドウで[追加] をクリックし、[プロパティ] ウィンドウで[名前] ボックスに「HttpHeaderPassword」と入力します。 同様に、PropertyValue ボックスに「MyPassHeader」と入力します。 [種類] ボックスの [System.String] を選択します。

    5. OK をクリックします。

  2. BAPI_SALESORDER_GETLIST メソッドのユーザー名とパスワード のヘッダーを追加します。

    1. [メタデータ オブジェクト] ウィンドウで、[ SalesOrder ] ノードを展開し、[メソッド] ノード 展開します。

    2. BAPI_SALESORDER_GETLIST ノードをクリックし、[プロパティ] ウィンドウで [ プロパティ ] ボックスの省略記号 (...) ボタンをクリックします。

    3. [PropertyView コレクション エディター] ウィンドウで [追加] をクリックし、[プロパティ] ウィンドウの [名前] ボックスに「HttpHeaderUserName」と入力します。 同様に、[PropertyValue] ボックスに「MyUserHeader」と入力します。 [種類] ボックスのSystem.Stringを選択します。

    4. [PropertyView コレクション エディター] ウィンドウで[追加] をクリックし、[プロパティ] ウィンドウで[名前] ボックスに「HttpHeaderPassword」と入力します。 同様に、PropertyValue ボックスに「MyPassHeader」と入力します。 [種類] ボックスの [System.String] を選択します。

    5. OK をクリックします。

SAP システムに接続するための単一 Sign-On の設定

このトピックのすべての手順の実行が完了すると、SharePoint アプリケーションにインポートできるアプリケーション定義ファイルが作成されます。 アプリケーションから SAP メソッドを呼び出して、SAP システムから関連データを取得します。 これを有効にするには、SAP システムのユーザーと SharePoint アプリケーションのユーザーとの間にマッピングを作成する必要があります。 このマッピングは、アプリケーション定義ファイルをインポートした後、SharePoint サーバーの全体管理コンソールで作成します。

ただし、マッピングを作成するには、ビジネス データ カタログ定義エディターで SecondarySsoApplicationId プロパティを設定する必要があります。

SecondarySsoApplicationId プロパティを設定するには
  1. [メタデータ オブジェクト] ウィンドウで、 Customer_Order ノードを展開し、[ インスタンス] ノードを展開します。

  2. [Customer_Order_Instance] をクリックし、[プロパティ] ウィンドウの [プロパティ] ボックスに対する省略記号 (...) ボタンをクリックします。

  3. [PropertyView コレクション エディター] ウィンドウで [追加] をクリックし、[プロパティ] ウィンドウの [名前] ボックスに「SecondarySsoApplicationId」と入力します。 同様に、[PropertyValue] ボックスに「SAPSSO」と入力します。 種類 ボックスで System.String を選択します。

    SSO プロパティ を追加する

  4. OK をクリックします。

要件 1: 顧客名に基づいて顧客を検索する

顧客名に基づいて顧客を検索するために使用できるアプリケーション定義ファイルを作成するには、次の一連のタスクを実行する必要があります。

  • SD_RFC_CUSTOMER_GET メソッドで、フィルターを作成し、顧客名を格納するパラメーターにマップします。

  • SD_RFC_CUSTOMER_GET メソッドの Finder メソッド インスタンスを作成します。 Finder メソッドは、フィルターに基づいてレコードの一覧を取得します。

フィルターを作成し、それを顧客名パラメーターにマップするには
  1. フィルターを作成します。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

    2. SD_RFC_CUSTOMER_GETメソッドを展開し、[ フィルター] を右クリックし、[ フィルターの追加] をクリックします。

      メソッド にフィルターを追加する

    3. [プロパティ] ウィンドウで、[名前] ボックスに「CustomerName」と入力します。

      フィルター の名前を指定します

    4. FilterType プロパティの場合は、WildcardFilter を選択します。

  2. SD_RFC_CUSTOMER_GET メソッドの NAME1 パラメーターにフィルターをマップします。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

    2. SD_RFC_CUSTOMER_GETメソッドを展開し、[ パラメーター] ノードを展開します。

    3. NAME1 ノードを展開し、2 番目の NAME1 ノードをクリックします。 NAME1 パラメーターには、顧客の名前が含まれています。

    4. [プロパティ] ウィンドウで、FilterDescriptor の一覧から CustomerName を選択します。

      フィルターをメソッド パラメーター にマップする

SD_RFC_CUSTOMER_GET メソッドの Finder メソッド インスタンスを作成するには
  1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

  2. SD_RFC_CUSTOMER_GET ノードを展開し、[インスタンス] を右クリックし、[メソッド インスタンスの追加] をクリックして [メソッド インスタンスの作成] ウィンドウを開きます。

    メソッド インスタンス を追加する

  3. [メソッド インスタンスの作成] ウィンドウで、[メソッド インスタンスの種類] の [Finder] をクリックします。 CUSTOMER_T戻り値 TypeDescriptorに選択します。

    Finder メソッド インスタンス を追加する

  4. OK をクリックします。

  5. [プロパティ] ウィンドウで、[名前] ボックスに「GetCustomerByName_Instanceと入力します。

    [プロパティ] ウィンドウのスクリーンショット。[名前] フィールドが強調表示され、値GetCustomerByName_Instance指定されています。

要件 2: 顧客の一覧から特定の顧客の詳細を取得する

顧客名に基づいて顧客を検索するために使用できるアプリケーション定義ファイルを作成するには、次の一連のタスクを実行する必要があります。

  • SD_RFC_CUSTOMER_GET メソッドで識別子を作成し、顧客番号を格納するパラメーターにマップします。

  • SD_RFC_CUSTOMER_GET メソッドの Specific Finder メソッド インスタンスを作成します。 Specific Finder メソッドは、識別子に基づいて特定のレコードを検索します。

識別子を作成し、それを顧客番号パラメーターにマップするには
  1. Customer エンティティの識別子を作成します。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開します。

    2. [識別子] ノードを右クリックし、[識別子の追加] を選択します。

      メソッド に識別子を追加する

    3. [プロパティ] ウィンドウで、[名前] ボックスに「CustomerID」と入力します。

    4. 種類 ボックスで System.String を選択します。

      識別子 の名前を指定します

  2. 識別子を SD_RFC_CUSTOMER_GET メソッドのキー パラメーターにマップします。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

    2. SD_RFC_CUSTOMER_GETメソッドを展開し、[ パラメーター] ノードを展開します。

    3. KUNNR パラメーターを展開し、2 番目の KUNNR ノードをクリックします。

    4. [プロパティ] ウィンドウで、[識別子] の一覧から CustomerID[Customer] を選択します。

      識別子をパラメーター にマップする

  3. 入力パラメーターと戻り値パラメーターの関連付けを設定します。

    1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

    2. SD_RFC_CUSTOMER_GETメソッドを展開し、[ パラメーター] ノードを展開します。

    3. CUSTOMER_T ノードを展開し、次に 2 番目のCUSTOMER_T ノード、次に Item ノードを展開し、KUNNR ノードをクリックします。

    4. [プロパティ] ウィンドウで、[識別子] の一覧から CustomerID[Customer] を選択します。

SD_RFC_CUSTOMER_GET メソッドの Specific Finder メソッド インスタンスを作成するには
  1. [メタデータ オブジェクト] ウィンドウで、[ 顧客 ] ノードを展開し、[ メソッド ] ノードを展開します。

  2. SD_RFC_CUSTOMER_GET ノードを展開し、[インスタンス] を右クリックし、[メソッド インスタンスの追加] を選択して [メソッド インスタンスの作成] ウィンドウを開きます。

    メソッド インスタンス を追加する

  3. [メソッド インスタンスの作成] ウィンドウで、[メソッド インスタンスの種類] に [特定の検索] を選択します。 同様に、CUSTOMER_T戻り値のTypeDescriptorとして選択します。

    特定の Finder メソッド インスタンス を追加する

  4. OK をクリックします。

  5. [プロパティ] ウィンドウで、[名前] ボックスにGetCustomerByNumber_Instanceと入力します。

    [プロパティ] ウィンドウのスクリーンショット。[名前] フィールドが強調表示され、値GetCustomerByNumber_Instance指定されています。

要件 3: 顧客の一覧から特定の顧客の販売注文の詳細を取得する

特定の顧客の販売注文の詳細を取得するために使用できるアプリケーション定義ファイルを作成するには、次の一連のタスクを実行する必要があります。

  • Customer エンティティと SalesOrder エンティティ間の関連付けを設定します。

  • BAPI_SALESORDER_GETLIST メソッドの Association メソッドを作成します。

Customer エンティティと SalesOrder エンティティの間に関連付けを作成するには
  1. [メタデータ オブジェクト] ウィンドウで、[ SalesOrder ] ノードを展開し、[メソッド] ノード 展開します。

  2. BAPI_SALESORDER_GETLIST メソッドを展開し、[ パラメーター] ノードを展開します。

  3. CUSTOMER_NUMBER ノードを展開し、2 番目のCUSTOMER_NUMBER ノードをクリックします。

  4. [プロパティ] ウィンドウで、[識別子] の一覧から CustomerID[Customer] を選択します。

    2 つのエンティティ間の関連付けを作成する

BAPI_SALESORDER_GETLIST メソッドの Association メソッド インスタンスを作成するには
  1. [メタデータ オブジェクト] ウィンドウで、[ SalesOrder ] ノードを展開し、[メソッド] ノード 展開します。

  2. BAPI_SALESORDER_GETLIST ノードを展開し、[インスタンス] を右クリックし、[メソッド インスタンスの追加] を選択して [メソッド インスタンスの作成] ウィンドウを開きます。

    Association メソッド インスタンスを追加する

  3. [メソッド インスタンスの作成] ウィンドウで、メソッド インスタンスの種類[関連付け] を選択します。

  4. [ ソース エンティティ ] リストから、[ 顧客 ] を選択します。

  5. [ 戻り値の TypeDescriptor ] のリストボックスで、[ SALES_ORDERS ] を選択します。

    アソシエーションメソッドインスタンス を作成する

  6. OK をクリックします。

  7. [プロパティ] ウィンドウで、[名前] ボックスに「SalesOrderForCustomer_Instance」と入力します。

    Association メソッドの名前を指定してください

System.Nullable 型のパラメーターを削除する

BAPI_SALESORDER_GETLIST メソッドの Association メソッド インスタンスを作成するときに、戻り値の型をSALES_ORDERSとして選択しました。 SALES_ORDER パラメーターを展開すると、一部のパラメーターが System.Nullable 型であることがわかります。 ビジネス データ カタログ定義エディターでパラメーターを選択し、 TypeName プロパティの値を調べることで、パラメーターの種類を確認できます。

このようなパラメーターの場合、ビジネス データ カタログ定義エディターは、同じ名前の "指定" サフィックスを持つ別のパラメーターを作成します。 たとえば、 パラメーターのITM_NUMBERITM_NUMBERSpecifiedを見てみましょう。 Microsoft Office SharePoint Server では、System.Nullable パラメーターはサポートしていません。 そのため、System.Nullable 型のパラメーターを含むレコードを試すと、例外が発生します。 そのため、ビジネス データ カタログ定義エディターからパラメーター ("Specified" サフィックスの有無にかかわらず同じ名前) の両方を削除する必要があります。

System.Nullable 型のパラメーターを削除するには
  1. [メタデータ オブジェクト] ウィンドウで、[ SalesOrder ] ノードを展開し、[メソッド] ノード 展開します。

  2. BAPI_SALESORDER_GETLIST ノードを展開し、[パラメーター] ノードを展開します。

  3. SALES_ORDERS を展開し、2 番目の SALES_ORDERS を展開し、項目 を展開します。

  4. 名前に "Specified" サフィックスを含むパラメーターを右クリックし、[削除] を選択 します

  5. 削除したパラメーターと同じ名前のパラメーターをサフィックスなしで右クリックし、[削除] を選択 します。 通常、このパラメーターは、"Specified" サフィックスを持つパラメーターの直前です。

既定のパラメーターを設定する

BAPI_SALESORDER_GETLISTは 2 つのパラメーターを受け取ります。 これらのパラメーターの 1 つである TRANSACTION_GROUP は、既定のパラメーターです。 そのため、このパラメーターの既定値を設定する必要があります。

TRANSACTION_GROUPの既定値を設定するには
  1. [メタデータ オブジェクト] ウィンドウで、[ SalesOrder ] ノードを展開し、[メソッド] ノード 展開します。

  2. BAPI_SALESORDER_GETLIST ノードを展開し、[インスタンス] ノードを展開します。

  3. SalesOrderForCustomer_Instanceメソッド インスタンスを選択し、[プロパティ] ウィンドウで、DefaultValues ボックスに対する省略記号ボタン (...) をクリックします。

  4. [編集] ウィンドウTRANSACTION_GROUPノード 展開し、[ TRANSACTION_GROUP ] ボックスに既定値 0 を指定します。

    メソッド インスタンス の既定値を指定します

  5. をクリックしてを閉じます。

アプリケーション定義をファイルにエクスポートする

これで、SAP システム インスタンスのメタデータを含むアプリケーション定義が作成されました。 この定義は、Microsoft Office SharePoint Server にインポートできる XML ファイルにエクスポートする必要があります。

アプリケーション定義をファイルにエクスポートするには
  1. [メタデータ オブジェクト] ウィンドウで、 Customer_Order ノードを右クリックし、[ エクスポート] をクリックします。

  2. ファイルを Customer_Order.xmlとして保存します。

次のステップ

ここで、SAP システムからデータを取得する SharePoint アプリケーションを作成する必要があります。 手順については、「 手順 3: SAP からデータを取得する SharePoint アプリケーションを作成 する」を参照してください。

こちらもご覧ください

チュートリアル 1: SharePoint サイト上の SAP システムからのデータの表示