【RAP】ABAP on Cloudトライアル環境の設定

##はじめに
10/19からopenSAPのコース: [Building Apps with the ABAP RESTful Application Programming Model](https://open.sap.com/courses/cp13/)が始まりました。ここでは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

##ステップ
1. ABAP Trialのインスタンスを作成する
2. サービスキーを登録する
3. ADTでABAP Cloud Projectを作成する
4. 自分用のパッケージを作成する
5. Hello Worldプログラムを作成してみる

###1. ABAP Trialのインスタンスを作成する
自分のトライアル用サブアカウントに入ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/b4de450d-8806-5e68-8981-0e7bb5eff2a5.png)
devスペースを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5e5fe618-aad7-f8c3-dbca-48e737dd2017.png)
Service MarketplaceでABAP Trialを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/25cb2e5a-39b6-91e3-324a-32c8a020a42b.png)
"Create Instanceをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/71a839ce-dbee-c305-192f-476f1c303293.png)
Instance Nameに自分がわかりやすい名前を入れて"Next"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/37917cb9-6ea2-a5d4-da7e-c03276aa3aae.png)
emailに自分のメールアドレスを入力します。Cloud Platformにログインするときのメールアドレスでよいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7b9c7d41-f9da-18d5-2388-b06092138807.png)
Create Instanceをクリックして完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/fab926e9-5815-1891-df12-1fa763a9e73c.png)
ポップアップが表示されたら"View Instance"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/c9e9b002-d672-4d5d-cc4b-fb8df3776e81.png)

###2. サービスキーを登録する
サービスキーはADTからABAP Trialのインスタンスに接続するために必要になります。
インスタンスの右上にあるアイコンをクリックし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/39b49710-f078-de02-7ee4-d98ba7e63763.png)
Create Service Keyを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/48c83d6d-e56f-a06d-9600-d23562d733c5.png)
サービスキーに任意の名前を指定して"Create"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/6f7164c4-e18a-3d7e-6acb-e7e2ee5cee16.png)
サービスキーを照会してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/8cc8b172-f22c-fec2-34c6-59ad08d6881a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/8d1958c7-df97-cec1-fc82-ac9c01623d7e.png)

###3. ADTでABAP Cloud Projectを作成する
ADTを開き、New>ABAP Cloud Projectを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/98450d9b-1306-abae-8748-c35a7b2fa7d0.png)
Service Keyを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/8edee210-a680-00a0-c6f2-659e4afcb3f7.png)
ステップ2で作成したサービスキーを丸ごとコピーして貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7fbd25cb-8863-43dc-3002-95309df37a05.png)
Cloud Platformのログイン情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/73642a15-3fcc-fa5d-5558-24e888dc8701.png)
以下の画面が表示されれば接続完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/9fa012bb-64b0-8cf5-4480-b65fa8810e1b.png)

###4. 自分用のパッケージを作成する
プロジェクトを追加すると、デフォルトでZLOCALというパッケージが見えます。ABAP Trialは共有の環境なので、この中に他の人のパッケージが入っていて開発物も見えます。ここに自分用の開発パッケージを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/8dc97e73-6a4b-d013-b81e-3d797083ff85.png)
プロジェクトを右クリックし、New>ABAP Packageを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/da5a07d6-9eea-0f8c-e244-d30d4310070b.png)
Name, Descriptionを入力してNext
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/b21e56ee-603c-70c5-1bc6-78153b52eb18.png)
新規移送依頼のDescriptionを入力します。（移送はしませんが）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/74fd276c-e26e-56cc-fa40-be0ba3718e31.png)
パッケージが作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/0d94340d-68da-9660-ed6e-87cd8a911dad.png)
パッケージをお気に入りに追加します。Favorite Packagesを右クリックしてAdd Packageを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/5ad20f72-359d-762a-589c-37061a3cb4fc.png)
自分で作ったパッケージを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/13299759-330e-46cd-498c-a9f42a03a9d2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/82ad079b-5c7e-e7ed-d792-9b7948153d4f.png)

###5. Hello Worldプログラムを作成してみる
自分のパッケージを右クリックしてNew>ABAP Classを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/7b0f7266-f031-c8e6-5524-330452a713df.png)
Name, Descriptionを入力してNext
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/807ad59d-ed64-ca9d-3d00-f46003b7a90d.png)
移送依頼を選択してFinish
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/824b085e-61bf-7775-956b-34247b75ca9c.png)
以下の画面が開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/f053a2a1-8cc4-b85d-e3f8-77bdc7184cd2.png)
以下のコードを入力します。

```abap
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を押して実行すると、以下の内容がコンソールに出力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276021/baa14c7b-adea-56bf-b870-2d93b24ca910.png)

##おわりに
ABAP on Cloudを使うと手軽にABAP環境を手に入れることができます。ただし、オンプレと比べて使える構文や機能には制限があります。詳しくは以下のブログをご参照ください。
https://blogs.sap.com/2020/06/03/restricted-abap-for-sap-cloud-platform-abap-environment/