1.2.14.0 の変更点
ソース基準日: 2021年10月31日(版のタグまたはソースコミットの日付)。 1.2.13.0 からの変更です。
機能追加・仕様変更
- API・拡張 — サーバスクリプトのデバッグ機能が加わった。
- API・拡張 — サーバスクリプトにextendedSql.ExecuteNonQueryメソッドを利用できるようになった。
- API・拡張 — スクリプトに$p.selectedIdsメソッドを利用できるようになった。
- 利用者・権限 — グループの作成許可を制御できるようになった。
- 画面・表示 — 複数選択を有効化した項目の前方一致検索機能が加わった。
- その他 — パスワードの履歴を強制できるようになった。
不具合修正
- 利用者・権限 — ログイン成功、失敗、ログアウトをログに記録できるようになった。
- 通知・メール — 一括更新時に変更を監視する項目に該当しない場合でも通知が行われる不具合を修正。
- API・拡張 — サーバスクリプトでnull参照違反が起きる不具合を修正。
実装を読む
デバッガーを待つスクリプトを指定する
本文が //debug// で始まるサーバスクリプトはデバッグ対象です。デバッグ時のエンジンには、デバッグ有効化、開始時の接続待ち、リモートデバッグのフラグが設定されます(ServerScript.cs、ScriptEngine.cs)。
一覧で選択したレコードIDを取得する
クライアントスクリプトの $p.selectedIds() はフォームのURLから SelectedIds のURLを作り、POSTで問い合わせます。この時点の実装は同期通信です。成功時の結果を返し、失敗時は -1 を返します(grid.js、grid.js、grid.js)。
javascript
var selectedIds = $p.selectedIds();結果を取得しない拡張SQLを実行する
extendedSql.ExecuteNonQuery(name, params) は指定した拡張SQLを実行し、結果を返しません。この時点の実装では ExecuteTable を呼び出して戻り値を破棄します(ServerScriptModelExtendedSql.cs)。
javascript
extendedSql.ExecuteNonQuery('UpdateStatus', {StatusCode: 100});パスワード履歴とログの既定値
Security.json の EnforcePasswordHistories は 0、SysLog.json の LoginSuccess、LoginFailure、SignOut はいずれも false です。機能の追加だけでは、出荷時の設定でこれらの記録・制限は有効になりません(Security.json、SysLog.json)。
グループ作成の許可を判定する
全体の DisableGroupCreation が無効、またはユーザに作成許可があることに加え、ユーザ設定の DisableGroupCreation が true ではないことを確認します(UserSettings.cs)。