ブログ

2021/01/26
【プリザンター】 第80回)サーバスクリプト#1

サーバスクリプトについて

こんにちは、CCSの田中です。

昨年後半に新規に追加されたサーバスクリプト機能について、試していこうと思っています。
1回では書ききれないため、何回かに分けて投稿していきますので、お付き合いください。

サーバスクリプトは、今までのスクリプトとは違って処理するタイミングを指定(選択)することができます。またクライアント側では処置ができないかったものなども対応しています。こう聞くと良いことばかりのように思えますが、デメリットもありますので理解してください。

デメリットとしては、サーバスクリプトという名前の通りサーバ側で処理が行われるため、処理にサーバのリソースを使います。そのためスクリプトがサーバのパフォーマンスに影響してきます。プログラムの作りが悪いときに永久ループなどに陥った場合などを考慮してタイムアウト設定もありますが、単に処理に時間がかかっているのか、永久ループ処理なのかの判断は時間で処理されるため、タイムアウト時間の設定については考慮が必要になってきます。

処理のタイミング

サーバスクリプトは、「管理」→「テーブルの管理」から、[サーバスクリプト]のところで設定可能です。

条件として、処理するタイミングを選択できます。

「サイト設定の読み込み時」は、詳細画面が読み込まれる前にサイト設定をするときなどに使用します。
2021年1月時点では、既定のビューを設定することができます。(おそらく今はこれだけかと思います)
以前はテーブルに1つの既定のビューしか持てませんでしたが、ログインユーザのID等で判断して既定のビューを指定することができたりします。
この場合、siteSettings.DefaultViewID を指定します。

次に「ビュー処理時」です。これは、一覧画面を表示するときに、条件を付けて表示を変更する場合に使用します。以前は拡張SQLで指定する必要があったものですが、今回サーバスクリプトで対応ができるようになりました。
view.Filters.カラム名 というように指定することで、カラム名で指定した内容で判別して処理を分けたりすることができます。

たとえば、状況(Status)の場合は、view.Filters.Status = 900 などにすると、完了したステータスだけを表示することができます。
このフィルタは強制的なフィルタになるため、設定すると画面上のフィルタを変更しても、サーバスクリプト側で設定したフィルタが強く、ユーザ側での設定はきかなくなります。(見た目上は外せているように見えたりはするのですが、実際はできません)
ということで、ユーザ条件などを入れて、必要なもののみ表示させるようにできます。
また、view.Sorters.カラム名 で上記同様でソートが強制的にかけることもできます。

これ以外に、「計算式の前」、「計算式の後」、「作成前」、「作成後」、「更新前」、「更新後」、「削除前」、「削除後」などが設定できます。

まとめ

さて、いかがでしたか?

今回はサーバスクリプトの第1回目としてサーバスクリプトの基本的なことを説明しました。
まだ私自身、詳しく設定ができていないため、今後はいくつか試しながらスクリプト自体も掲載していきたいと思っています。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP