【SAP】NW AS ABAP Developer Editionで開発環境を作る(2)Cloud Platformとの接続


はじめに

この記事では、DockerコンテナにインストールしたSAP NW AS ABAPをCloud Connectorを使いCloud Platformと接続します。

前回の記事:【SAP】NW AS ABAP Developer Editionで開発環境を作る(1)

構成

環境はAWSのEC2上のUbuntu(18.04)です。
Cloud ConnectorはNW AS ABAPとは別のコンテナにインストールします。

Cloud Connectorのインストール

概要

インストールの手順は以下のGitHubリポジトリで説明されている通りです。
https://github.com/SAP-samples/cloud-platform-workflow-virtual-event/blob/master/exercises/03/readme.md

ただし、リポジトリにあるDockerfileだとChromeで実行ができないので、プルリクエストにある修正を追加してからDockerイメージを作成してください。

つまづいたところ

今回はNW AS ABAPとCloud Connectorが別々のコンテナにあるので、Cloud Connectorの設定でちょっとつまづきました。

NW AS ABAPにはUbuntuのブラウザからlocalhost(127.0.0.1)でアクセスできていたので、Internal Hostを127.0.0.1:8000としたところNot Reachableとなってしまいました。

実際には、ここにはCloud Connectorのコンテナから見てアクセスできるIPアドレスを指定する必要がありました。2つのコンテナはデフォルトのネットワークである"bridge"につながっており、ネットワーク内でそれぞれのコンテナにIPが振られていました。Cloud ConnectorからNW AS ABAPのコンテナにアクセスするには172.17.0.2を指定すればよさそうです。

コンテナのIPは以下のコマンドで見ることができます。

docker inspect <コンテナ名> 

一番下に"Networs"というセクションがあり、そこのIPAddressを見ます。

Internal Hostに172.17.0.2を指定したところ、Reachableになりました。ただ、このIPはコンテナの起動順によって変わってしまいそうな気がします。対応として、NW AS ABAP → Cloud Connectorの順に起動するようにします。

起動・停止用のシェルを修正

Part1で作成した起動、停止用のシェルにCloud Connectorの起動・停止を追加します。

managesap
#!/bin/bash

start_sap(){
  #start container  
  sudo docker container start nwabap752
  #start sap
  sudo docker exec -it nwabap752 /usr/sbin/uuidd 
  sudo docker exec -it nwabap752 su - npladm -c "startsap ALL"
}   

stop_sap(){
  #stop sap 
  sudo docker exec -it nwabap752 su - npladm -c "stopsap ALL"
  #stop container
  sudo docker container stop nwabap752
}

start_scc(){
  #start scc
  sudo docker container start myscc
}   

stop_scc(){
  #stop scc
  sudo docker container stop myscc
}   

start_env(){
  start_sap
  start_scc
}   

stop_env(){
  stop_scc
  stop_sap
}   

これ以降、SAPとSCCを同時に起動するときはstart_env、停止するときはstop_envを実行します。

Cloud PlatformのDestination登録

Cloud Platform(CF)にDestinationを登録します。

Additional Propertiesの内容は以下の通りです。

パラメータ 設定値
HTML5.DynamicDestination true
HTML5.Timeout 60000
sap-client 001
WebIDEEnabled true
WebIDESystem NPL
WebIDEUsage odata_abap

Check Connectionを実行すると以下のようにエラーが出ますが、Business Application Studioから接続できていれば問題ありません。

ここまでできたこと

  • ローカルのNW AS ABAPとCloud Platformが接続できるようになりました。
  • Business Application StudioからNW AS ABAPのODataサービスを使用することができます。

次回は、Fioriアプリケーションの開発とデプロイをやってみたいと思います。

参考