1.1.38.0 の変更点(.NET Core)
ソース基準日: 2021年7月17日(版を示すソースコミットの日付)。1.1.36.0 からの変更です。
機能追加・仕様変更
- API・拡張 — サーバスクリプトにTodayメソッドを利用できるようになった。
- API・拡張 — サーバスクリプトにUpdateOnExit機能が加わった。
- API・拡張 — サーバスクリプトに日付の範囲チェック機能が加わった。
- API・拡張 — サーバスクリプトにLabelRawプロパティを利用できるようになった。
- API・拡張 — サーバスクリプトに表示名を変更できるようになった。
- その他 — 拡張HTMLにラベルの前、ラベルとコントロールの間、コントロールの後を利用できるようになった。
- その他 — 拡張ナビゲーションメニュー機能が加わった。
- 通知・メール — メールAPIに添付ファイル機能が加わった。
- API・拡張 — サーバスクリプトにコードの共有とインクルード機能が加わった。
- API・拡張 — サーバスクリプトのviewにAlwaysGetColumnsを利用できるようになった。
不具合修正
- 画面・表示 — 新規作成画面の項目のアクセス制御が正しく動作しない不具合を修正した。
- 画面・表示 — リンク項目に複数選択を使用した場合、検索が正しく行えない不具合を修正した。
- データ入出力 — 添付ファイルの操作後に画面遷移時の警告が表示されない不具合を修正した。
- 画面・表示 — 一覧編集画面でレコードのコピー時に規定値がセットできない不具合を修正した。
- 画面・表示 — 一覧編集画面でデータ作成時にcontext.Error及びcontext.Logが機能しない不具合を修正した。
- API・拡張 — 一覧編集画面で新規作成時に行表示の前の条件でサーバスクリプトが動作しない不具合を修正した。
実装を読む
日付のユーティリティを使う
スクリプトモデルに Utilities が加わります。Today() はこの版では DateTime.Today を返し、InRange(DateTime) は渡された日付の InRange() 判定を返します。今日の取得は、1.1.39.0 でタイムゾーンに関する修正が入ります(ServerScriptModel.cs、ServerScriptModelUtilities.cs、ServerScriptModelUtilities.cs)。
スクリプト終了時に更新する
スクリプトのレコード値から UpdateOnExit を取得し、有効な場合はレコードの Update を notice: true で呼びます。期限付きテーブルと記録テーブルに同じ分岐があります。終了時にDB更新を行うフラグであり、モデルの値を変更するだけの場合とは動作が変わります(ServerScriptUtilities.cs)。
ラベルとHTMLの挿入位置を分ける
項目のスクリプト値に LabelText と LabelRaw を加え、拡張HTMLの挿入位置も細分化しています(ServerScriptModel.cs、Column.cs)。
| プロパティ | 挿入位置 |
|---|---|
ExtendedHtmlBeforeLabel | ラベルの前 |
ExtendedHtmlBetweenLabelAndControl | ラベルと入力コントロールの間 |
ExtendedHtmlAfterControl | 入力コントロールの後 |
従来の ExtendedHtmlBeforeField と ExtendedHtmlAfterField も保持しています。
共有スクリプトの設定を保持する
サーバースクリプト設定に Name と Shared を追加しています。保存用の設定にも名称と、有効な共有フラグを残します。Script.json の ServerScriptIncludeDepthLimit の初期値は 10 です(ServerScript.cs、ServerScript.cs、Script.json)。
ビューで必ず取得する列を指定する
スクリプトの view に AlwaysGetColumns を追加しています。初期状態は空の文字列リストです。画面の表示列とは別に、必ず取得する項目名を保持できます(ServerScriptModelView.cs)。
メールAPIに添付データを渡す
送信APIモデルに Attachments を追加し、送信処理へ data.Attachments を渡します。SMTPとSendGridの両方の処理に添付引数を渡す変更です(OutgoingMailApiModel.cs、OutgoingMailUtilities.cs、OutgoingMailModel.cs)。
ユーティリティの呼び出し名
日付のユーティリティをスクリプトへ登録する名前は utilities です(ServerScriptUtilities.cs)。
const today = utilities.Today();
context.Log(utilities.InRange(today));InRange は日付1つを受け取るメソッドで、開始日と終了日を引数に渡す形式ではありません。