【SAPUI5】WebIDEでデプロイできないとき、ローカルからABAPサーバにデプロイする方法
はじめに
この記事は chillSAP 夏の自由研究2020 の記事として執筆しています。
WebIDEで開発していると、クラウドプラットフォームの障害などでたまにABAPサーバにデプロイできなくなることがあります。すぐに復旧すればよいですが、1日くらいかかることもあります。スケジュールの都合で待っていられない!となったときに、ローカルからデプロイする方法をご紹介します。
UI5 Toolingを使えば完全にローカルで開発することも可能ですが、今回はそういったことは置いておいて「デプロイだけできるようにする」ことを目的とします。
前提
- VS Code、Node.js、Gitがインストール済
- VS Codeがインストールされた端末からABAPサーバにアクセスが可能であること
- WebIDEでアプリの動作を確認済で、「あとはデプロイするだけ」の状態になっていること
- ABAPサーバで移送依頼を登録済であること
実行環境
- @ui5/cli: 1.13.0
- nwabap-ui5uploader: 0.3.4
- バックエンド:S/4HANA 1909(FPS01) On-premise
ステップ
- ソースコードをGitからクローン
- デプロイ用の設定を追加
- デプロイ
1. ソースコードをGitからクローン
git clone <リポジトリURL>
クローンしたら、npm install
を実行してモジュールをローカルにインストールします。
2. デプロイ用の設定を追加
nwabap-ui5uploaderをインストールします。
npm install nwabap-ui5uploader --save-dev
.nwabaprcというファイルを作成して、プロジェクト直下に置きます。ここでサーバーやログイン情報などを設定します。(コメントは削除してください)
{
"base": "./dist", //ABAPサーバーに持っていくフォルダを指定
"conn_server": "http://myserver:8000", //サーバ
"conn_user": "upload", //ログインユーザ
"conn_password": "upl04d", //パスワード
"abap_package": "$TMP", //パッケージ
"abap_bsp": "ZMOB81TEST", //BSPアプリのID
"abap_bsp_text": "UI5 upload local objects", //BSPアプリのテキスト
"abap_transport": "S4DK901491" //移送依頼
}
3. デプロイ
①ビルド、②デプロイというステップで行います。
以下のコマンドでビルドします。
npm run build
このコマンドはpackage.jsonにある以下のスクリプトを実行します。WebIDEでビルドするのと同じです。
続いてデプロイです。
npx nwabap upload
動作確認
以下の観点で動作確認します。
①ローカルからデプロイしたアプリが動くか
②さらにWebIDEからのデプロイをしてもちゃんと動くか
①ローカルからデプロイしたアプリが動くか
カタログ、タイルの設定をしてラウンチパッドで開いてみます。
カタログの設定
タイルの設定
初回にタイルを開いたとき、Component.jsが見つからないというエラーになりました。
プログラム /UI5/APP_INDEX_CALCULATE
を実行したところ、開けるようになりました。
中身のないアプリですが、この状態で正常に開けています。
②さらにWebIDEからのデプロイをしてもちゃんと動くか
WebIDEからのデプロイができるようになったときに、デプロイ後のアプリがちゃんと動くか確認します。
"Update an existing application"を選択します。以降はウィザードに従ってデプロイするだけです。
WebIDEでの更新分が反映され、正常に動きました。
まとめ
WebIDEからデプロイできなくなっても、ローカルでデプロイできます。VS Codeなどの環境さえ整っていれば簡単なステップでデプロイが可能です。いざというときの保険に、ローカル環境は持っておきたいですね。
関連記事
Author And Source
この問題について(【SAPUI5】WebIDEでデプロイできないとき、ローカルからABAPサーバにデプロイする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/tami/items/b968726968cb34cab5a7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .