##はじめに
10/19からopenSAPのコース: Building Apps with the ABAP RESTful Application Programming Modelが始まりました。ここではCloud Platform上のABAP環境を使います。
環境設定の方法についてはWeek1のUnit5で説明されていますが、Cloud PlatformのUIが動画と少し変わっていたので、手順を残しておきます。
前提:
①Cloud Platformのトライアルアカウントを作成済であること
https://developers.sap.com/tutorials/hcp-create-trial-account.html
②ADTをインストール済であること
https://qiita.com/tami/items/c0c01cd7b6b950e3a1ab
##ステップ
- ABAP Trialのインスタンスを作成する
- サービスキーを登録する
- ADTでABAP Cloud Projectを作成する
- 自分用のパッケージを作成する
- Hello Worldプログラムを作成してみる
###1. ABAP Trialのインスタンスを作成する
自分のトライアル用サブアカウントに入ります。
devスペースを選択します。
Service MarketplaceでABAP Trialを選択します。
"Create Instanceをクリックします。
Instance Nameに自分がわかりやすい名前を入れて"Next"をクリックします。
emailに自分のメールアドレスを入力します。Cloud Platformにログインするときのメールアドレスでよいと思います。
Create Instanceをクリックして完了です。
ポップアップが表示されたら"View Instance"をクリックします。
###2. サービスキーを登録する
サービスキーはADTからABAP Trialのインスタンスに接続するために必要になります。
インスタンスの右上にあるアイコンをクリックし、
Create Service Keyを選択します。
サービスキーに任意の名前を指定して"Create"をクリックします。
サービスキーを照会してみます。
###3. ADTでABAP Cloud Projectを作成する
ADTを開き、New>ABAP Cloud Projectを選択します。
Service Keyを指定します。
ステップ2で作成したサービスキーを丸ごとコピーして貼り付けます。
Cloud Platformのログイン情報を入力します。
以下の画面が表示されれば接続完了です。
###4. 自分用のパッケージを作成する
プロジェクトを追加すると、デフォルトでZLOCALというパッケージが見えます。ABAP Trialは共有の環境なので、この中に他の人のパッケージが入っていて開発物も見えます。ここに自分用の開発パッケージを追加します。
プロジェクトを右クリックし、New>ABAP Packageを選択します。
Name, Descriptionを入力してNext
新規移送依頼のDescriptionを入力します。(移送はしませんが)
パッケージが作成されました。
パッケージをお気に入りに追加します。Favorite Packagesを右クリックしてAdd Packageを選択
自分で作ったパッケージを選択します。
###5. Hello Worldプログラムを作成してみる
自分のパッケージを右クリックしてNew>ABAP Classを選択します。
Name, Descriptionを入力してNext
移送依頼を選択してFinish
以下の画面が開きます。
以下のコードを入力します。
CLASS zcl_hello_world_yasu DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_hello_world_yasu IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
out->write( |Hello world! ({ cl_abap_context_info=>get_user_alias( ) })| ).
ENDMETHOD.
ENDCLASS.
if_oo_adt_classrun: mainメソッドではwrite文の代わりに任意のデータをADTのコンソールに出力することができる。
cl_abap_context_info: 実行ユーザやシステム時刻など、sy-xxxxで取得していたような項目を取得することができるクラス。get_user_aliasは実行ユーザを取得する。
F9を押して実行すると、以下の内容がコンソールに出力されます。
##おわりに
ABAP on Cloudを使うと手軽にABAP環境を手に入れることができます。ただし、オンプレと比べて使える構文や機能には制限があります。詳しくは以下のブログをご参照ください。
https://blogs.sap.com/2020/06/03/restricted-abap-for-sap-cloud-platform-abap-environment/