LoginSignup
1
0

SAP Build Code (Joule) で既存のCAPプロジェクトをサポートしてもらう方法

Last updated at Posted at 2024-04-19

はじめに

Jouleでは現状、SAP Buildのロビーまたはローコード用のテンプレートで作成したプロジェクトしかサポートされません。cds initで作成したプロジェクトでJouleのアイコンをクリックしても、"Not Available"と言われてしまいます。

image.png

Jouleのロジック生成やテストコード生成はかなり便利であり、既存のプロジェクトでも使いたいと思い、試してみました。

SAP Build Codeを使ってみた記事はこちら

結論

package.jsonに以下の設定を追加することで、既存のコードに対してもJouleが有効になります。なお、この方法はCAP Node.jsに対してのみ有効で、Javaはサポートされません。

  "lcap": true

実施したステップ

1. プロジェクトを作成

cds init <プロジェクト名>

image.png

この時点ではJouleは有効ではありません。
image.png

2. package.jsonに設定を追加

以下の設定を追加します。

  "lcap": true

全体は以下のようになります。
image.png

3. dependencyをインストール

@sap/low-code-event-handlerをインストールします。

npm install @sap/low-code-event-handler

テンプレートで生成したコードはこのモジュールを使用します。

/**
 * Code is auto-generated by Application Logic, DO NOT EDIT.
 * @version(2.0)
 */
const LCAPApplicationService = require('@sap/low-code-event-handler');
const books_Logic = require('./code/books-logic');

class CatalogService extends LCAPApplicationService {
    async init() {

        this.after('CREATE', 'Books', async (results, request) => {
            await books_Logic(results, request);
        });

        return super.init();
    }
}


module.exports = {
    CatalogService
};

4. Jouleが有効になったことを確認

ブラウザをリフレッシュしてからJouleを開きます。(リフレッシュしないと元の状態のままです)

image.png

このあと、cds add tiny-sampleによるデータモデルの追加、およびJouleによるアプリケーションロジックの生成を行い、Cloud Foundryにデプロイして正常に動くことを確認しました。

注意点

既存のソースファイルに対してはJouleは利用できません。試しにイベントハンドラがすでにある状態でJouleを有効化してみます。

image.png

Open Guideが表示されますが、このソースに対してはサポートが有効ではありません。
image.png

Graphical Modelerからロジックを追加すると、既存のソースは上書きされます。よって既存のソースがある場合は退避しておく必要があります。
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0