製品最新情報、技術記事
OvercastのAPIマネジメントについて
Summer 2022リリースにて、Overcast API Managementを導入しました。これは、SAPのBAPIやテーブル、またSAP以外のバックエンドシステムを、ウェブサービスとして容易に公開するための機能です。これにより、Overcastを利用する組織は、あらゆるバックエンドをSalesforceへ連携するだけでなく、他のプラットフォームへも連携させることが可能になります。 典型的なユースケースは、ショップやポータルなどのウェブアプリケーション、モバイルアプリケーション、その他のオンプレミスシステムとの連携です。Overcast API Managementは、パートナーやサードパーティにAPIへのアクセスを安全な方法で提供することもできます。 このブログでは、APIマネジメントの仕組みと簡単な設定方法をご紹介します。
Overcast連携シナリオとコンポーネント
Overcastには、連携シナリオとコンポーネントという概念があります。 どちらもAPIマネジメントを行う上で重要になります。
Overcast連携シナリオ
連携シナリオには、どのバックエンドソースと連携するかを記述します。(1)レコードタイプ(リアルタイムまたはデータ同期)、(2)接続文字列で定義されるバックエンドタイプ(BAPI、SAPテーブル、OData、SOAPなど)、(3)特定のオブジェクトまたはテーブルがあります。 その上に、(4)どのオブジェクトのどの項目を連携したいか記述されます。 連携シナリオの例。

取引先マスターデータのSAPテーブルであるKNA1を読み取るための連携シナリオ
Overcastコンポーネント
Overcast Componentsは、Salesforceのユーザーに対して、コードではなく設定を使用して外部システムやバックエンドシステムとの連携を構築する方法です。 リアルタイムのシナリオをベースに、それに対応するデータを表示するためのユーザインターフェースを提供します。 Overcastコンポーネントは、Overcast Component Builderを使用することで、コーディングなしで構築できます。
連携シナリオをREST Webサービスとして公開。
この例では、BAPI_SALESORDER_GETLIST を使用して、SAP Sales Orders のリストを REST ウェブサービスとして公開します。 Postman https://www.postman.com を使って、APIがどのように消費されるかを紹介します。
連携シナリオの作成
RESTfulウェブサービスのベースとして、まず連携シナリオを作成するか、既存のものを使用する必要があります。OvercastはSAP、Microsoft Business Central/Dynamics、Oracle NetSuiteの最も一般的なユースケースに対して150以上の定義済み連携を提供していますので、そこから選択することができます。独自のシナリオを作成する方法についてのステップバイステップガイドは Overcastヘルプへ。
APIアクセスを許可するためのカスタム権限
セキュリティ上の理由から、全てのOvercast連携シナリオがAPI管理で自動的に公開されるわけではありません。APIアクセスを許可するには、カスタム権限を作成する必要があります。権限の作成にあたっては、以下の命名規則に従ってください: これを許可するには、カスタム権限を作成しなければなりません。 カスタム権限は、次の命名規則に従わなければなりません。
Overcast_Rest_ < 連携シナリオ名 >
したがって、この例ではOvercast_Rest_sapSalesOrderListという名前になります。 この権限は、APIを呼び出したいすべてのユーザに追加する必要があります。

sapSalesOrderListシナリオを呼び出すためのカスタム権限
認証
認証にはSalesforce OAuth 2.0プロトコルを使用しています。 詳細はこちらをご覧ください。
サービスの呼出
URL:/services/apexrest/overcast/integration/v1/
ほとんどのシナリオでは、何らかの入力パラメータが必要です。 これらは、様々な方法でAPIに渡すことができます。
URLクエリパラメータ
パラメータは、キーと値のペアとしてURLに追加されます。 受注伝票のリストを取引先番号でフィルタリングする場合、次のようになります。
/services/apexrest/overcast/integration/vi/sapSalesOrderList?CUSTOMER_NUMBER=0000001001
URLの一部としてのパラメータ
また、パラメータを / で区切って URL に追加することもできます。 この場合、パラメータはシナリオと同じ順番で使用します。
/services/apexrest/overcast/integration/vi/sapSalesOrderList/0000001001
ボディ付きリクエスト
リクエストのボディは、より複雑な構造をサービスへ入力するために使用することができます。 1つまたは複数のレコードや構造体をJSONとして渡すことができます。 例えば、次のようにBAPIに入力し、受注明細を取得します。
{ "SALES_DOCUMENTS": [ { "VBELN": "0000020874" } ], "I_BAPI_VIEW": { "INCOMP_LOG": "", "CREDCARD": "", "CONFIGURE": "", "BILLPLAN": "", "FLOW": "", "TEXT": "", "CONTRACT": "", "SDCOND_ADD": "", "SDCOND": "", "STATUS_I": "", "STATUS_H": "", "ADDRESS": "X", "PARTNER": "X", "BUSINESS": "", "SDSCHEDULE": "", "ITEM": "X", "HEADER": "X" } }
Overcastからの回答
結果はJSON形式で返されます。

Postmanで表示されるAPI呼び出しの結果
JSONは、Amazon AWS、Microsoft Azure、Google Cloud、または独自のサービスなどのオンプレミスまたはクラウド上で動作するJ2EEや.Netなどの最新のプラットフォームで読み取り、変換することが可能です。
結論
Overcastについて API管理を使えば、コードを書く必要なく、あらゆるSAPおよび非SAPバックエンドデータソースをWebサービスに変えることができます。Overcastと弊社のREST APIが、お客様の組織でSAPとSAP以外のデータを公開するのにどのように役立つのか、詳細は弊社までお問い合わせください。
著者
Alexander Ilg