ESワークプレイスを使ってみよう

http://sdn.sap.com:TITLE=SDNhttps://www.sdn.sap.com/irj/sdn/esworkplace:TITLE=ESワークプレイスがかなり充実してきた。SAP ERP6.0のEhP*11〜3で加えられたES*2が、シナリオや用途別に分類されて、いろいろな視点で検索できるようになっている。また、ESのWSDL定義やそのESのテストドライブ(試用)もできるようになっている。
ただ、社内の人間がいうのもなんだが、システムもドキュメントも英語ばかりで、ちょっと敷居が高い。今回は、ESワークプレイスとその使い方を簡単に記してみたい。
なお、この記事の内容は、本日2008/8/31現在のものであり、ESワークプレイスの見た目やコンテンツはこれまでも頻繁に更新されてきたので、その旨ご了解いただきたい。

ESワークプレイスとは

https://www.sdn.sap.com/irj/sdn/esworkplace:TITLE=ESワークプレイスは、正式にはEnterprise Services Workplaceといい、SAPがビジネススイート製品の一部として提供している最新のES定義が収められている。使えるESがSAPにあるのか、それはどういうサービスインタフェースを持つのか、WSDLのurlと内容は?など、あるビジネスシナリオをSOAで構成したい、といった場合に、「使えるES」をチェックするのに有効だ。

早速ESワークプレイスにアクセス

直接のリンク先はhttps://www.sdn.sap.com/irj/sdn/esworkplace:TITLE=ここ。もしリンク先が切れていたら、http://sdn.sap.com:TITLE=SDNSDNコミュニティから、Enterprise SOA > Explore Enterprise Servicesをたどってみる。

この図の右上に見える
Browse the ES Workplace to explore all enterprise services shipped by SAP today
がESワークプレイスへの入り口だ。またその使い方を記した英語のドキュメントが、中段下に見える。The ES Workplace Handbook だ。本記事も、このハンドブックを下敷きにしている。興味のあるかたは参照のこと。
なお、ESワークプレイスはMicrosoftIEでの利用を前提としている。自分で試したところFirefoxでも使えなくはないが、一部見た目や細かい機能での不都合がみられる。IEで使うのがよいと思う。
ESワークプレイスの画面が開いただろうか。

Tips1 左側のツリーを消すときには、この赤い楕円で囲ってある三角をクリックする。


ESワークプレイスの整理は、インデクスによる整理とソリューションマップによる整理とがある。



さらに、インデクスには、アルファベット順と、サービスをいくつかテーマに沿ってグループ化したエンタープライズサービスバンドルがある。後者の例として、たとえば顧客のマスタやその顧客を中心とした伝票類を一切合財サービスで使えるようにしよう、という視点で多数のESをグループ化したものがある。Customer Fact Sheet
ソリューションマップによる整理には、SAP ERPのような業種を問わず一般的に使われるサービスマップと、特定業種で使われる業種別サービスマップとが用意されている。
例として、SAP ERPのサービスマップを取り上げてみよう。

赤い楕円で囲ったところが、Sales Order Management。受注伝票に関連するサービスが収められている。右側のオレンジ色の円は、この領域にESがすでにリリースされていることを示している。*3

ESの整理は、以下の4レベルで行われている。

  • メインプロセス (例:Sales Order Management)
    • ビジネスプロセス (例:Sales Order Processing)
      • サービスインタフェース (例:Manage Sales Order In)
        • サービスオペレーション (例:Read Sales Order)

このサービスオペレーションというレベルが、ESの最小粒度となり、一つ一つにWSDLが割り当てられるようになっている。

このサービスオペレーションの定義はA query to and response from Sales Order Processing to provide order data.すなわち、Sales Orfer Processingというビジネスプロセスで生成された受注データに対するクエリと応答。少々回りくどい書き方ではあるが、SOAで扱うビジネスオブジェクトのひとつ、"Sales Order(受注)"を読み出すサービスオペレーションということだ。
このサービスオペレーションは、ユーザ向けには判りやすい名称Read Sales Orderだが、ERPでは、SalesOrderByIDQueryResponse_Inという内部名で登録されていることがわかる。
そして、このサービスの利用は、外部から(inbound)同期的に(synchronous)行われる。同一セッション内でクエリ結果を受け取ることができるということだ。
WSDLのところには3つのリンクが用意されている。

  1. インプットメッセージ/アウトプットメッセージ/フォルトメッセージそれぞれのフィールド仕様の確認画面
  2. ESRに格納されているWSDL
  3. バックエンドポイントであるERPに実装されているWSDL

WSDL定義を読む

前述の1.フィールド仕様の確認画面を開くと、次のようなそっけない画面が出てくるが、

赤楕円部分をそれぞれクリックすると、各フィールド項目の定義を見ることができる。

このSalesOrderByIDQueryResponse_InのInputMessageは実に簡潔で、SalesOrderIDをひとつ入れて、SalesOrderByIDQuery_syncというメッセージ名のXMLを仕立ててやればよいことがわかる。OutputMessageは該当する受注伝票データがログとともに返されることもわかる。
右のFaultMessageは、サービス呼び出しが失敗した場合のエラーメッセージだ。
3.バックエンドポイントであるERPに実装されているWSDLは、実際にサービスを呼び出すためのWSDLのリンク先urlが書いてある(例:http://erp.esworkplace.sap.com/sap/bc/srt/xip/sap/ecc_customeridqr/version3?sap-client=800&wsdl=1.1&mode=sap_wsdl)。後ほどESのテストドライブを行うときに、このurlが必要になる。記憶に留めておこう。

*1:Enhancement Packages

*2:Enterprise Services

*3:こうしてみると、Treasury、Product Development、Professional-Service Delivery、Global Trade Servicesなどがまだ全くESとしてリリースされていないことがわかる。