【SAP】NW AS ABAP Developer Editionで開発環境を作る(1)


はじめに

個人でABAPを書いたりCDSビューを作ったりする環境、みなさんはどうしていますか?私は現在、とあるABAP環境をサブスクしています。当然ながら毎月料金がかかるので、自分だけの環境があればいいなと思っていました。

そんなとき、こんな動画に出会いました。
SAP ABAP Trial in Docker | Windows Setup Guide [Tutorial]
Docker環境があったのでやってみることにしました。動画も10分弱と短く、手軽に始められそうです。

NW AS ABAP Developer Editionとは?

ASEというデータベース(HANAではない!)で稼働するABAPアプリケーションサーバで、ABAP開発ツール、Fiori Launchpad、Cloud Connector、ロール、サンプルアプリケーションなどが使用できるということです。
参考:AS ABAP 752 SP04, developer edition: NOW AVAILABLE

やったこと

せっかくなので、トライアル環境でどこまでできるか色々と試してみました。

NW AS ABAP Developer Editionをインストール

環境

動画では、DockerがインストールされたWindows端末を使って説明していました。
私が使用した環境はAWSのEC2上のUbuntu(18.04)です。WindowsでもLinuxでも手順に変わりはありません。

<構成>

ハードウェア要件

こちらのブログにハードウェア要件が記載されています。100 GB free disk spaceというのが鬼門で、EC2のインスタンスにボリュームを追加せざるを得ませんでした。

  • x86_64 processor based hardware
  • at least 4 GB RAM and about 8 GB swap space
  • about 100 GB free disk space for the server installation
  • about 2 GB free disk space for the client installation

インストールの流れ

手順については動画GitHubを見れば大体わかります。ただ、動画になかった超ベーシックなところで迷ったので、そこを中心に記載します(ステップ1~2)。あとは動画を見ながら手を動かせばスムーズにいくと思います。(繰り返しですがディスク容量には余裕をもって!)

1. Gitリポジトリをクローン

任意のフォルダを作成し、Gitリポジトリをクローンします。リポジトリにはNW AS ABAPをインストールするためのDockerfileなどが入っています。

2. SAP NetWeaver AS ABAP Developer Editionのインストーラをダウンロード

こちらからSAP NetWeaver AS ABAP Developer Edition 7.52 SP04のrarファイルをダウンロードします。SAP ABAP AS Part1~Part11まで、全てです。結構時間がかかりますので、気長に待ちます。
ダウンロードしたら、7-zipなどを使ってPart1のファイルを解凍します。すると、すべてのファイルが格納され以下のような状態になります。

1.でクローンしたフォルダの中にsapdownloadsというフォルダを新たに作成し、解凍されたものを格納します。

3. Dockerイメージを作成する

カレントディレクトリを1. でクローンしたフォルダに移動し、以下のコマンドを入力します。

docker build -t nwabap:7.52 .

※ディスクの容量が足りないとイメージを作成しているときにエラーが出ます。

4. vm.max_map_countの値を増やす

このパラメータは大きなデータベースを扱うためのパラメータだそうです。

sysctl -w vm.max_map_count=1000000

以下のコマンドでvm.max_map_countが増えたことを確認します。

sysctl vm.max_map_count

4. Dockerコンテナを起動する

docker run -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash

上記のコマンドを実行すると、コンテナの中に入った状態になります。

ポートについて
NW AS ABAPは4つのポートを公開します。Dockerfileを見たところCloud Connector用のポート8443というのもあるらしく、もし公開していればCloud Connectorをそのまま使えたのかもしれません。(別の記事で書きますが、今回Cloud Connectorは別コンテナにインストールしました)

ポート 用途
8000 HTTP
44300 HTTPS
3300 ABAP in Eclipse
3200 SAP GUI

5. NetWeaver AS ABAPをインストール

以下のコマンドでインストールを開始します。

/usr/sbin/uuidd
./install.sh

ライセンス契約に同意するか聞かれるので、"yes"と入力します。

途中でパスワードを設定するよう求められるので、8桁以上のパスワードを入力します。ただ実際にログインに使うのはDown1oadというパスワードなので、ここで設定したパスワードが何に使われるのかは不明です。
インストールは結構時間がかかりますので、気長に待ちます。
インストールが完了すると以下のメッセージが出ます。

6. サーバを起動

以下のコマンドでサーバを起動します。

su npladm
startsap ALL


Instance on host vhcalnplci startedというメッセージが出ればOKです。

GUI、ADTと接続

GUIと接続

インストールが完了したら、GUIとつなぎます。GUIのインストーラはsapdownloads/client/SAPGUI4Windowsに入っています(Windowsの場合)。私はNetWeaverはUbuntuにインストールしましたが、WindowsPCのGUIから接続して使っています。

ログオンパッドの設定は以下のようになります。

ADTと接続

ADTの設定方法については、以下のブログに記載しています。
【ABAP】ABAP Development Tools (ADT) をインストールする方法

インストール後の作業

SAP NetWeaverのライセンスキーを取得してインポートする必要があります。この作業はGUIにログインして行います。手順については、GitHubImportant Post Installation Stepsをご参照ください。

サーバの停止と再起動

停止

stopsap ALL --サーバを停止
exit --npladmを抜ける
exit --Dockerコンテナを停止

再起動

docker container start nwabap752  --Dockerコンテナを起動
docker container attach nwabap752 --コンテナの中に入る
/usr/sbin/uuidd                   --何らかのシェル
su npladm                         --npladmにユーザを変更
startsap ALL                      --サーバを起動

起動・停止用のシェル

毎回上記のコマンドを打つのは大変なので、シェルを作りました。(エラーハンドリング等は考慮していません。あしからず)

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
}

動かすときはシェルを置いたディレクトリに移動して、以下のコマンドを実行します。

. managesap
start_sap  --sapを起動
stop_sap   --sapを停止

ここまででできたこと

  • 自分専用のNW AS ABAPサーバが手に入りました。
  • GUI、ADTからアクセスしてABAP開発などを行うことができます。

参考