Technology Blog Posts by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Umezuki
Product and Topic Expert
Product and Topic Expert
304

はじめに

この記事では、SAP Cloud Application Programming Model (CAP)において、SAP S/4HANA On-Premiseの実データにアクセスしながら開発を行うための「Hybrid Testing」について説明します。Hybrid Testing実行までに役立つ疎通テストに焦点を当て、具体的な環境構築方法については触れませんので、そちらの詳細を知りたい方は以下のリンクを参考にしてください。

Hybrid Testingとは?

CAPを用いたアプリ開発において、基本的にはモックデータを使用したローカル環境でテストを行いますが、クラウドやオンプレのサービスにアクセスしたい場合があります。そこで役立つ手法が「Hybrid Testing」です。このテスト方式を使うことで、開発者はローカル環境でアプリを実行しながらリモートサービスに接続できるため、開発効率の向上が見込めます。

SAP S/4HANA On-Premiseに対するHybrid Testingの課題

上記の利点がある一方で、オンプレにアクセスする際にはSAP Destination Service, SAP Connectivity Service, Cloud Connector といったサービスに依存するため、モックデータを使ったローカルテストと比較すると環境の整備が煩雑になります。そこで、環境構築をスムーズに進めるために使える疎通テストを紹介します。

疎通テスト一覧

紹介する疎通テストは下記の図の順番となっています。依存関係が少ないものから書き出していますので、順にテストすることをお勧めします。

Hybrid Testing Architecture.png

1. SAP Gateway Clientからの疎通テスト

T-codeが /IWFND/GW_CLIENT であるSAP Gateway Clientは、OData サービスをテストする HTTP (S)クライアントとして機能します。適切なHTTP メソッド、ODataクエリ(format, top...)、リクエストURI、Content Typeなどのリクエストヘッダー、ペイロードを入力した後、アプリ上の「Execute」をクリックして、S/4HANA内で対象のODataサービスの利用可否やレスポンス結果を確認します。

SAP Gateway Client.png

エラーが発生した際には、ODataサービスが有効化されているか、正しいpathを指定しているかどうかなどをチェックしてください。

2. Cloud Connector administration UIからの疎通テスト

Gateway Clientからのテストが成功した後は、SCCからオンプレへの疎通をテストします。具体的には、SCCで定義したVirtual hostからInternal hostであるオンプレへの接続を確認するために、Actionsの一番左のアイコンをクリックしてください。'Reachable'が表示されたら成功です。

Cloud Connector.png

3. BTP Cockpitからの疎通テスト

BTP Cockpit上でSCCに対する「Check Connection」を行うことでDestinationのURLへの到達が可能か確認できます。ただし、ここでのテストはDestination ServiceであるSCCのVirtual hostが稼働していることを保証するものではなく、到達可能かを確認するという点に注意してください。

'The check does not guarantee that the target system or service is operational. It only verifies if ...

BTP Cockpit.png

エラーが発生した場合、SCCの設定やバージョン、サーバーのアベイラビリティに問題がある可能性があります。

4. SAP Business Application Studio(BAS)からの疎通テスト

最後はHybrid Testingです。Cloud Foundry Runtimeにデプロイしたアプリに対してdestinationやauthサービスをバインドし、下記コマンドを実行した状態でHTTPファイルからHTTPリクエストを行います。

# JavaScriptの場合
cds watch --profile hybrid

# TypeScriptの場合
cds-ts watch --profile hybrid

BAS.png

注意点:

  1. ローカルマシンからSCCにHybrid Testingでアクセスする際には、BTP環境内からcallが必要となるため、VS CodeなどのIDEではなくBASを使用してください。参考リンク
  2. .envファイルには、destinationのnameとurl情報をBTP CockpitのDestinations画面から取得し、destinations変数を追記する必要があります。

destinations=[{"name":"demodestination","proxyHost":"http://127.0.0.1","proxyPort":"8887","url":"http://demodestination.dest"}]

おわりに

CAPを使用したアプリ開発のお役に立てれば幸いです。