本記事は、OSSのノーコード・ローコード開発ツール「プリザンター」 Advent Calendar 2023 の3日目の記事です。
概要
プリザンター は サーバスクリプト によりサーバサイドでJavaScriptを実行することができます。これにより、データの加工や外部システムとの連携などが可能です。この記事では サーバスクリプト の良いところをまとめていきます。
内容
CSVインポート時やAPIによる登録時にも動作
クライアントサイドのスクリプトを使用して特定の項目の値を変更する処理を組み込んだ場合、CSVのインポートやAPIによるデータ登録時には動作させることができません。サーバスクリプト を使用した場合、データが登録される直前で実行することができるため、CSVインポート時やAPIによる登録時にも動作させることができます。
サンプルコード(サーバスクリプト、更新前にチェック)
// 分類A に 分類B と 分類C を結合した文字列を格納する
// 編集画面でもCSVインポートでもAPIによる登録時も動作する
model.ClassA = model.ClassB + model.ClassC;
外部システムとの連携時にAPIキーを隠蔽できる
サーバスクリプト を使用すると、管理者のみがアクセス可能な管理画面にコードを隠蔽することができます。そのため、外部のシステムへアクセスするためのAPIキーなどが一般利用者のブラウザに表出せずセキュアな連携を行うことができます。外部システムとの連携には、HTTP Client を使用します。
レコードの表示制御が行える
クライアントサイドのスクリプトでは行えないレコードの表示制御を行うことができます。特定の条件のレコードをユーザに見せたくない場合など view.Filters を使用して実現します。
サンプルコード(サーバスクリプト、ビュー処理時にチェック)
// チェックA がオンになっているレコード以外は表示しない
view.Filters.CheckA = true;
一覧画面のレコードの並び替えを動的に行える
前述のフィルタと同様にクライアントサイドのスクリプトでは行えないレコードの並び替えを行うことができます。view.Sorters を使用することで、特定のソート条件をスクリプトにより設定することができます。
サンプルコード(サーバスクリプト、ビュー処理時にチェック)
// 数値A で降順のソートを行う
view.Sorters.NumA = 'desc';
メールやチャットへの通知を行うことができる
notification を使用することで、メールやSlack、Teamsなどに任意の通知を行うことができます。
サンプルコード(サーバスクリプト、更新後にチェック)
let notification = notifications.New();
notification.Type = 6; //通知先Teamsの指定
notification.Address = 'https://***/***'; //通知先Teamsのwebhook urlを指定
notification.Title = '通知テスト';
notification.Body = 'サーバスクリプトから通知しています。';
notification.Send();
おわりに
プリザンターは今後も業務に役立つノーコード・ローコード開発ツールとして進化を続けてまいります。応援よろしくお願いします。皆さん良いクリスマスをお過ごしください。
https://pleasanter.org
GitHubにスターつけてもらえたら嬉しいです。
https://github.com/Implem/Implem.Pleasanter