1.3.50.0 の変更点
リリース日: 2023年12月13日。 1.3.49.0 からの変更です。
機能追加・仕様変更
- API・拡張 — 計算式に関数機能が加わった。
- 画面・表示 — ダッシュボードパーツにカレンダーを利用できるようになった。
- 画面・表示 — ダッシュボードパーツにリロードボタンを利用できるようになった。
- 画面・表示 — ダッシュボードパーツを非同期読み込みできるようになった。
- API・拡張 — サイトAPIで各種設定を機能単位で更新できるようになった。
- 運用・設定 — BackgroundServiceでサーバースクリプトを実行できるようになった。
- API・拡張 — サーバースクリプトのHttpClientにPATCHメソッドを利用できるようになった。
不具合修正
- 利用者・権限 — グループの編集画面でメンバー数が多い場合にレスポンスが悪化する不具合を修正。
- その他 — 書式を「年月日」にした完了項目がFullCalendarで1日ずれて表示される不具合を修正。
- 実行環境・DB — CodeDefinerをLinuxで実行した際にlogsフォルダが正しく作成できない不具合を修正。
- API・拡張 — サーバスクリプトのリモートデバッグ時に対象のスクリプトが選択されない不具合を修正。
- その他 — 参照コピー時に入力したコメントが保存されない不具合を修正。
実装を読む
計算式に関数を使う
計算式に拡張計算方式が加わりました。CalculationMethod と FormulaScript を保持し、拡張計算では関数を組み立ててスクリプトエンジンで評価します。日付、文字列、数値などの関数が用意されています(FormulaSet.cs、FormulaServerScriptUtilities.cs)。
例えば $ROUND(number, numDigits) は引数を二つ要求する関数です。関数名は大文字・小文字を吸収する置き換えも用意されています(FormulaServerScriptUtilities.cs、FormulaServerScriptUtilities.cs)。
ダッシュボードのカレンダーと非同期読み込み
カレンダーパーツに対象サイト、方式、グループ、期間、開始・終了の設定を保持します。非同期読み込みの全体設定は Dashboard.AsynchronousLoadingDefault で、配布値は false です。パーツごとには DisableAsynchronousLoading を持ち、全体設定と個別の抑止を分けます(DashboardPart.cs、Dashboard.json)。
サイト設定を機能単位で更新する
POST /api/items/{サイトID}/updatesitesettings が加わりました。対象の設定モデルは ServerScripts、Scripts、Styles、Htmls のリストを持ちます。指定がある機能のリストを読み、それぞれの保存処理へ渡してサイト設定を更新します(ItemsController.cs、SiteSettingsApiModel.cs、SiteUtilities.cs)。
スクリプトをバックグラウンドで実行する
Script.BackgroundServerScript が加わり、配布時は false です。バックグラウンドのスクリプト設定には実行ユーザ ID とスケジュールを保持し、スケジュールには方式、タイムゾーン、日次・週次・月次などの時刻を持ちます(Script.json、BackgroundServerScript.cs、BackgroundSchedule.cs)。
HttpClient の PATCH
httpClient.Patch() が加わりました。本文は Content、文字コードは Encoding、メディア種別は MediaType を使って送信します(ServerScriptModelHttpClient.cs)。
httpClient.RequestUri = 'https://api.example.invalid/items/123';
httpClient.MediaType = 'application/json';
httpClient.Content = JSON.stringify({Title: '更新した件名'});
var response = httpClient.Patch();
context.Log(response);