はじめに
ビジネスアプリケーションの開発現場では、開発者たちはさまざまなツールを共有して開発を進めます。これによって開発者たちはプロジェクトのひな形作成やLinterなどのツール群を統一し、開発を安全に進めるためのコーディング規約確認などを自動化することが多くあります。
SAP Business Application Studio(BAS)はそれぞれの開発者のための開発環境をOSおよびそれにマウントしているストレージレベルで独立させているため、開発者たちはこれらのツールを共有する手段を必要とします。この共有手段にはいくつかの方法がありますが、本ブログはこのうち最も簡便な手段の一つであるを用いた方法を紹介します。この方法はに登録されたExtension、およびnpmのパッケージを含めたカスタムのを作成し、サブアカウント単位で他の開発者に対してこのExtensionを共有します。
Additional SAP Extensionの開発および確認手順
1. ロールの割り当て
Extension DeployerロールをAdditional SAP Extension開発者に割り当てます。このロールはBusiness_Application_Studio_Extension_Deployerロールコレクションの中に含まれています。これによって用意したAdditional SAP Extensionを操作中のサブアカウントに対して開発者がデプロイできるようになります。
2. Additional SAP Extension開発用のAdditional SAP Extensionの選択
Dev SpaceにSAP Business Application Studio Extension Developmentを含めます。このAdditional SAP ExtensionがをDev Spaceに対してインストールします。
3. カスタムのAdditional SAP Extensionの開発
下記のような内容を記述したextension.jsonファイルを用意します。サムネイル画像はsvgで表現したものをbase64でエンコードし、”data:image/svg+xml;base64,“を接頭辞として付与した文字列を記述できます。ここに記述する内容がそのままブラウザで呼び出し時に使用されます。
{
"apiVersion": "1",
"name": "extension-rasai-sample",
"namespace": "ext-<サブアカウントのサブドメイン>",
"version": "0.0.1",
"about": {
"description": "Sample Extension prepared by rasai",
"author": "ryo.asai@sap.com",
"tagline": "Rainbow Indent Extension",
"thumbnail": "data:image/svg+xml;base64,<base64でエンコードされたsvg>"
},
"vscodeExtensions": [
{
"name": "indent-rainbow",
"source": "url",
"uri": "https://open-vsx.org/api/oderwat/indent-rainbow/8.3.1/file/oderwat.indent-rainbow-8.3.1.vsix"
}
]
}
4. カスタムのAdditional SAP Extensionのデプロイ
wex deploy
でデプロイします。
5. デプロイされたカスタムのAdditional SAP Extensionの確認
Dev Space Managerで新規Dev Spaceの作成を試みると、デプロイしたカスタムのAdditional SAP Extensionが確認できます。
参考:デプロイしたAdditional SAP Extensionの削除
wex delete -x <namespace>/<ext-name>
で削除します。
おわりに
BAS上でVSX RegistryのExtensionを共有する他の方法には”を作成しGitなどで共有する“がありますが、こちらの方法ではそれぞれの開発者にExtensionをインストールする手間を求めてしまいます。また、この方法では同じツールセットを広く多数の開発物間で共有したい場合にも、それぞれの開発物本体を管理するGitプロジェクトなどに同じextensions.jsonを重複させて含める必要があります。一方で本ブログで紹介するを用いた方法では、extension.jsonを開発物本体から独立して管理し、実際の広いプロジェクト単位であるサブアカウント単位でその導入を試みることが可能です。開発者はDev Space作成時に用意したAdditional SAP Extensionを選択しておくだけで、用意されたExtensionがセットアップされた環境を触り始めることができます。