1.4.12.0 の変更点
リリース日: 2025年1月14日。1.4.11.0 からの変更です。機能追加・仕様変更と不具合修正を分けて記載します。
機能追加・仕様変更
- API・拡張 — サーバスクリプトで特定ディレクトリのファイル読み書きができる機能が加わった。
- API・拡張 — スクリプトに項目の値を取得する関数($p.getValue)を利用できるようになった。
- 画面・表示 — 複数選択可能な検索ダイアログに「全て有効」「全て無効」ボタンを利用できるようになった。
- 画面・表示 — サイト一覧のパネルにサイト種別を識別できるアイコンを利用できるようになった。
- API・拡張 — サーバスクリプトをtry-catchブロック内で実行できるようになった。
- API・拡張 — サーバスクリプトを無名関数化して実行できるようになった。
- API・拡張 — サーバスクリプトにシステムログへログを出力できるようになった。
- API・拡張 — サーバスクリプトを無効にできるようになった。
- 画面・表示 — 一覧の選択肢に「リンクの経路が異なる同一サイトを含める」機能が加わった。
不具合修正
- データ入出力 — 一つのテーブルに対しCSVインポートや一括更新などの重い処理中は再投入できない機能を利用できるようになった。
- データ入出力 — 添付ファイル項目のファイル数と容量制限のエラー表示の文言を修正。
- 画面・表示 — 選択肢一覧に選択項目を設定する際に、カンマを含む項目名が正しく識別されない不具合を修正。
- API・拡張 — 「行表示の前」のサーバスクリプトでUpdateOnExit=trueとするとレコードのバージョン番号に不整合が起きる不具合を修正。
- 画面・表示 — リンクの選択肢一覧で特定のフィルタに選択肢が表示されない状態を修正。
- API・拡張 — APIで0バイトの添付ファイルが不正に登録される不具合を修正。
- その他 — エディタにリンクを個別で配置した場合にNotReturnParentRecordが動作しない不具合を修正。
実装を読む
サーバスクリプトからファイルを読み書きする
$ps.file にファイルとディレクトリの操作が追加されました。既定では Script.json の DisableServerScriptFile が true で、ファイル操作のオブジェクトは登録されません。有効にする場合はこの値を false にし、ServerScriptFilePath に操作の基準となるディレクトリを指定します(Script.json、ServerScriptUtilities.cs)。
| API | 操作 |
|---|---|
$ps.file.readAllText(section, path, encode) | ファイルの文字列を読む |
$ps.file.writeAllText(section, path, data, encode) | 文字列を書き込む |
$ps.file.getFileList(section, path) | ファイル名の一覧を取得する |
$ps.file.getDirectoryList(section, path) | ディレクトリ名の一覧を取得する |
$ps.file.createSection(section) | 操作対象の区画を作る |
パスは NormalizePath() で基準ディレクトリと組み合わせて検証します。基準ディレクトリには絶対パスを要求し、ルートそのものは拒否します。読み込み時のサイズ上限 ServerScriptFileSizeMax の既定は 1 MB で、ファイルサイズがこの値以上の場合にエラーにします(ServerScriptFile.cs、ServerScriptFile.cs)。
画面上の値を型に応じて取得する
$p.getValue(name) は、対象のコントロールがない場合は undefined、data-raw がある場合はその値を返します。それ以外はチェックボックスなら真偽値、入力欄・選択欄・テキストエリアなら値、他の要素なら文字列を返します(_elements.js)。
const value = $p.getValue('CheckA');
if (value === true) {
console.log('チェックされています');
}サーバスクリプトの実行方法を指定する
Functionalize、TryCatch、Disabled が追加されました。関数化は本文を無名関数で包んで実行し、TryCatch は例外を処理するブロックを付けます。個々のスクリプトを残したまま無効にする指定も保存できます(ServerScript.cs、ServerScriptUtilities.cs)。
全スクリプトを種類ごとに止める設定は 1.4.14.0、拡張サーバスクリプトへの関数化・TryCatch の対応は 1.4.16.0 です。