1.1.13.0 の変更点(.NET Core)
ソース基準日: 2021年2月16日(版を示すソースコミットの日付)。1.1.12.2 からの変更です。
機能追加・仕様変更
- API・拡張 — サーバスクリプトでセクションを非表示にできるようになった。
- API・拡張 — サーバスクリプトで選択肢一覧を制御できるようになった。
- API・拡張 — サーバスクリプトにdepts/groups/usersオブジェクトを利用できるようになった。
- 運用・設定 — メール通知の宛先を動的に設定できるようになった。
- API・拡張 — サーバースクリプトのContextにデータ受け渡し用のプロパティを利用できるようになった。
- 運用・設定 — General.jsonのパラメータに一覧・変更履歴一覧に表示するコメント件数を利用できるようになった。
- 運用・設定 — ServiceクラスにRestrictNewFeaturesパラメータを追加し、ContractSettingsにAllowNewFeaturesを利用できるようになった。
- その他 — 拡張SQLのサンプルの初期値を改めた。
- API・拡張 — サーバスクリプトにSum, Average, Count, Max, Minメソッドを利用できるようになった。
- その他 — 自動ポストバック機能が加わった。
- 運用・設定 — DisableAutoCompleteパラメータを利用できるようになった。
不具合修正
- 実行環境・DB — リンクテーブルの項目でフィルタを行った状態で一括更新および一括削除が失敗する不具合を修正した。
- 画面・表示 — saffari で検索ダイアログを表示する際にドロップダウンが開いてしまう不具合を修正した。
- 運用・設定 — GridData取得時にビューの設定によりエラーが発生すると画面の再表示ができない不具合を修正した。
- 画面・表示 — 特定の環境でセッション切れのメッセージが正しく表示できない不具合を修正した。
- その他 — セクションの折りたたみ機能が更新後に正常に動かない事象を修正した。
- その他 — サーバから送られてくる円マークも空文字に置き換えられるよう修正に関する動作を修正した。
- その他 — FirstMonth変更時に下半期/上半期の判定が正しく行えない不具合を修正した。
- 画面・表示 — 選択肢[[Users]]の分類項目で検索機能を有効化した場合にFullTextが構成されない不具合を修正した。
- 画面・表示 — 分類項目で選択肢のスタイルが適用されない不具合を修正した。
- その他 — Wikiで作成した選択肢のスタイルシートのクラス名が適用されない不具合を修正した。
- その他 — 半期および四半期の判定が正しく行えない不具合を修正した。
- API・拡張 — サーバスクリプトによる項目のReadOnly指定が新規作成画面で有効にならない不具合を修正した。
- データ入出力 — エクスポート項目が正しく抽出されない不具合を修正した。
実装を読む
組織・グループ・ユーザを参照する
depts、groups、users がスクリプトに登録されます。それぞれの Get にIDを渡すと、実行コンテキストのテナントを使って対象を参照します(ServerScriptUtilities.cs、ServerScriptModel.cs)。
選択肢とセクションの表示を制御する
項目の AddChoiceHash(key, value) は、選択肢の辞書を必要に応じて作り、キーと値を追加します。セクションには Hide が追加され、siteSettings.Sections に保持されます(ServerScriptModel.cs、Section.cs、ServerScriptModel.cs)。
columns.ClassA.AddChoiceHash('open', '受付中');
columns.ClassA.AddChoiceHash('closed', '完了');辞書への追加なので、同じキーを重複して追加する用途には使いません。
複数の処理でデータを受け渡す
context.UserData は ExpandoObject として保持します。これとは別に、hidden の GetAll() と Get(key) は文字列の辞書から値を取り出すメソッドです(ServerScriptModel.cs、ServerScriptModel.cs)。
集計メソッドの引数を使い分ける
items.Sum、Average、Max、Min はサイトID・項目名・省略可能なビュー文字列を受け取り、decimal を返します。Count は項目名を受け取らず、サイトIDとビュー文字列から long を返します(ServerScriptModel.cs、ServerScriptModel.cs)。
const total = items.Sum(12345, 'NumA');
const count = items.Count(12345);
context.UserData.total = total;
context.UserData.count = count;12345 は集計対象サイトIDの例です。
コメント件数と入力補完の初期値
General.json の CommentDisplayLimit は 3、CommentDisplayLimitHistories は 1、DisableAutoComplete は false です。一覧と変更履歴のコメント件数を別々に保持します(General.json、General.json)。
通知と拡張SQLの公開名
通知オブジェクトの登録名は複数形の notifications です。extendedSql とともにスクリプトへ渡し、通知には New()、拡張SQLには ExecuteDataSet(name, _params) などを用意しています(ServerScriptUtilities.cs、ServerScriptModel.cs、ServerScriptModel.cs)。
ソース上の版番号
Web アプリのパッケージ用 Version は 1.1.6.0 です。AssemblyVersion と FileVersion は 1.1.13.0 なので、この記事は後者と対象コミットを基準にしています(Implem.Pleasanter.NetCore.csproj、Implem.Pleasanter.csproj)。