【ローコードのSKE】SKEとは

SKEは、EFW Skeleton Engineの略称で、エスコ・ジャパン株式会社が開発したローコードツールです。エンドユーザではなく、業務と技術を両方把握する社内SE向けに設計されており、特にIT部門主導の社内WEBシステム開発に向いています。
 
## プラットフォーム非依存
SKEはtomcat上で動作するアプリであり、windowsとlinuxともに利用可能です。クラウドとローカルのどちらでも構築可能です。SKEは主要4種類のDB（PostgreSQL、MySQL、Oracle、SQLServer）と接続でき、社内のデータベース資産をそのまま利用可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/94a5af10-69b2-46c5-9d6d-b0b5eb89c047.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/c3941170-5d1d-4f54-802c-e71027497660.png)


## ノーコードのプロトタイプ作成
システム骨組みのCRUDプロトタイプは定義設定のみで実現できます。DB・SQLの知識と業務知識があれば、コーディング不要・定義のみでプロトタイプ開発を進めます。定義情報はリアルにシステムへ反映し、打合せ時にエンドユーザの意見を聞きながらプロトタイプを修正する作業スタイルを実現できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/c304aed6-dd25-4f6b-8ee7-5897892d34c9.png)

## ローコードのアドオン開発
アドオン開発により高度な操作性と機能性を実現可能で、WEB開発経験者は活躍できます。アドオン開発もリアルにシステムへ反映し、コンパイル不要でテストとデバッグをすることができ便利です。アドオン開発はEFWフレームワークのJavaScript言語で目的指向の関数とモジュールが備えられ、ローコードを実現されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/23fe2efb-c3fb-4063-b7f6-c1edc5866797.png)


### 取り扱い便利な定義ファイル
作成した定義資料は、JSON形式で保存されるため、閲覧と新旧比較が可能です。多人数での開発の資材管理、検証・本番のリリース管理などに、一般的な開発と同様な構成管理の仕組みを利用できます。
```diff_javascript
    "conds": [
        {
            "id": "cond名称",
-            "title": "名称",
+            "title": "リード名",
            "type": "text",
            "dataFormat": "",
            "max": null,
            "min": null,
            "maxLength": null,
            "source": null,
            "titleWidth": 80,
            "inputWidth": 200,
            "inputHeight": 0,
            "value": "",
        "sqlWhere": "(\r\n会社名 like '%' || :cond名称 ||'%'\r\nor\r\nv名前  like '%' || :cond名称 ||'%'\r\n)\r\n",
            "clearable": true,
            "disable": false,
-           "required": true,
+           "required": false,
            "titleEvent": null,
            "formEvent": null
        },

```
アドオンのソースコードも定義資料と同じくファイルで保存し、構成管理は一貫して行えます。また、SQLとアドオンソースのJSON表現をカスタマイズし、プログラムをそのまま閲覧できるように実現しました。
```js
ske.repositoryDefs.USER={
	"name": "ユーザマスタ",
	"tableName": "\"ユーザマスタ\"",
	"primaryKeys": [
		"\"ユーザID\""
	],
	"querySql": `SELECT "ユーザID", "パスワード", "ユーザ名", "メール", "ロール", "コメント", "初期化フラグ", "ロックフラグ", 
       "パスワード更新日", "作成日時", "作成者", "更新日時", "更新者"
  FROM "ユーザマスタ"`,
...
	"afterSelect": null,
	"beforeDelete": function(deleteCondition){
	if (deleteCondition.selectId=="[\"admin\"]"){
		return new Result().alert("{ske_User_msg_Delete}");
	}
},
	"afterDelete": null,
	"beforeSave": null,
	"afterSave": null,
...
```
そして、従来開発プロセスにソースという成果物をSKEの定義ファイルで置き換えられば、各種管理手法とツールをほぼ活用できる想定です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/0ce77c4c-e78f-4f63-b3c9-4f6a4040e9eb.png)
※基本設計書作成機能はTODOです。

## 多様なデバッグ手段
イベント実行のパラメータと実行結果はブラウザーのコンソールに自動的に出力します。イベントのアクセスログ、アドオン実行のパラメータ、SQL実行ログなどは、tomcatコンソール画面に自動的に出力します。アドオンプログラムにEFWのデバッグ関数を用いて確認したい変数の値をtomcatコンソール画面に出力できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/22bbfa48-6363-44f3-b0f7-1faf3b246f87.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/80a2c443-cd0d-491e-8a14-85c8fdd95f22.png)


また、定義情報によりテスト用ソースを作成して、そのソースにデバッグコードを組み込んでデバッグすることも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/216df88c-25a6-4b62-8584-ebf2d438ed59.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476221/dcd07024-b541-41e2-ab23-5c719039bc8f.png)

## まとめ
ローコードの速さ、コーディングの柔軟性と構成管理の保守性をまとめることをSKEの特徴にしたいです。

https://github.com/efwGrp/ske?tab=readme-ov-file