4D-jp 4D Japan Technical Support Team

4D 20.3 修正リスト

2024-03-17

バージョン: 20.3
ビルド: 101192

  • ACI0104571 プラグインSDKのPA_GetVariableおよびPA_SetVariableの速度に問題がありました。過去バージョンとの比較で10から20倍程度パフォーマンスが低下しています。

注記: 本来,プラグインにテキストを渡すときには参照カウントをインクリメントするべきですが,過去バージョンのプラグインAPIはテキスト配列の各要素に対してこの操作をしていませんでした。4D 20でパフォーマンスが低下したのは,この問題が修正されたためです。さらに,今回の修正により,EX_GET_VARIABLE(19)エントリーポイントが改良されました。EngineBlock構造体のfLongintフィールドに値CNSTを渡すことにより,テキストがコピーされないようにできます。プラグイン側でテキスト配列の値を更新するのであれば,この新しいオプションは使用しないでください。

  • ACI0104618 .certificatesFolderプロパティに4D.Folderオブジェクトを設定して4D.HTTPRequestを使用した場合,アプリケーションがクラッシュしました。パス文字列を設定すれば問題ありません。

注記: 全般的なメモリーリークを解消するための修正(ACI0104402)が関係していました。

  • ACI0104631 Mac版のみ。フィールドに+=演算子でポインターの逆参照を加算した場合,Apple Siliconターゲットのコンパイラー(clang )がエラーを返しました。フィールドの代わりに変数を使用すれば問題ありません。また+=の代わりに:=および+演算子を使用すれば,問題ありません。
[Batch]Data1+=($varPtr->)
  • ACI0104619 クライアント/サーバー版のみ。EntitySelection.fromCollection()を実行した場合,既存のエンティティが更新される代わりに新規エンティティが作成されました。

  • ACI0104494 クライアント/サーバー版のみ。特定のコマンドをタイプアヘッド入力中にメソッドエディターがクラッシュしました。すべてのストラクチャで再現するわけではありません。

  • ACI0104616 Get table fragmentationから返される値が正しくありませんでした。MSCの情報も(内部的に同じコマンドを使用しているため)間違っています。

  • ACI0104439 クライアント/サーバー版のみ。プライマリーキー値にスラッシュ記号(/)が含まれているエンティティのリレーション属性に対してORDAのorderBy()関数を実行した場合,エラー1804および1500が返されました。リモートデータストアでも同じ現象が再現します。

  • ACI0104414 クライアント/サーバー版のみ。クライアント側でSET AUTOMATIC RELATIONSを実行した場合,サーバー側で実行したGET AUTOMATIC RELATIONSが変更前の値を返しました。

注記: クライアント側とサーバー側のツインプロセス自動リレーションモードは互いに独立しています。これは仕様ですが,クライアント側で設定を変更した場合,サーバー側の内部フラグが同期されてしまい,サーバー側で実行したSET AUTOMATIC RELATIONSおよびGET AUTOMATIC RELATIONSの振る舞いが信頼できないものになってしまうことが問題でした。修正により,クライアント側で設定を変更しても,サーバー側の自動リレーションモードは影響を受けません。クライアント/サーバー通信プロトコルが変更されたため,修正が反映されるためには,クライアントとサーバーの両方をアップデートする必要があります。サーバーだけをアップデートした場合,修正は反映されません。クライアント側だけをアップデートした場合,修正は反映されますが,テーブルとリレーションの数が多いと幾らかパフォーマンス低下するかもしれません。

  • ACI0104551 フランス語版のみ。スプレッドシートをView Proにインポートした場合,CNUM関数が小数点(フランス式はカンマ記号)を正しく処理しませんでした。セルに値を手入力すれば正しく表示されるようになります。

  • ACI0104599 Create deployment licenseにスタンドアロン版のライセンス(4UUDまたは4UOE)を渡した場合,エラーが返されました。ACI0104384が修正されたことによる副作用のようです。

  • ACI0104582 フィールドの「重複不可」属性が無効に設定されたストラクチャファイルでフィールドの「重複不可」属性が有効に設定されていたデータファイルとインデックスファイルを開いた場合,データファイルの設定でストラクチャファイルが上書きされ,既存のレコードと値が重複するフィールドを保存することができなくなりました。

  • ACI0104565 複数のページにわたって表示されるような分量のテキストをWrite Proドキュメントのテーブル(表)の行またはセルに設定した場合,最終ページのテキストが完全に表示あるいは印刷されないことがありました。テキスト全体のコピーはできるので,表示上の問題です。旧式プリントレイヤーで顕著ですが,標準プリントレイヤーでも再現します。

注記: 旧式プリントレイヤーで印刷ジョブを開始してからWP PRINTを実行した場合,Write Proは旧式プリントレイヤーでドキュメントをレンダリングを試みますが,Write Proは標準プリントレイヤー(WindowsであればDirect2D)専用であることに留意してください。

  • ACI0104561 Windows版のみ。Adobe Acrobat Pro をカレントプリンターに設定して印刷した場合,アプリケーションがクラッシュしました。

注記: プリントドライバー側の問題です。印刷ジョブ名が設定されていないためにPSCRIPT5.DLLがスタックオーバーランを起こしています。OPEN PRINTING JOBで明示的にプリントジョブを管理すれば,印刷セッション名が設定されるので,クラッシュは発生しません。あるいは,SET PRINT OPTIONSpooler document name option でPDFファイル名を明示的に設定することもできます(ファイル名がデフォルトの印刷セッション名になるため)。不具合は修正されましたが,印刷コマンドでPDFファイルを出力する場合は常にスプーラードキュメント名を設定することが勧められています。

  • ACI0104517 コレクション型のリテラル記法に関数オブジェクトの呼び出しを記述した場合,シンタックスエラーになりました。
$obj:={attr1: [$class.myFunction()]}  
  • ACI0104507 Mac版のみ。MESSAGEコマンドがダークモードに対応していませんでした。

  • ACI0104389 オブジェクト型のリテラル記法にコレクション型のリテラル記法を記述した場合,シンタックスエラーになりました。


var $toto : Object:={id: 10}
$test:={addLabelIds: [$toto.id]}
  • ACI0104584 HTTPRequestで送信したリクエストのContent-Type ヘッダーには,常に; encoding=utf8 という情報が追加されるため,この形式のヘッダー情報に対応していないAPIをコールすることができませんでした(例: Claris FileMaker Server)。

  • ACI0104569 Mac版のみ。Write Proドキュメントのカスタム用紙サイズ設定が適用されませんでした。

  • ACI0104492 サーバーと通信中のプロセスをクライアント側で終了した場合,サーバーとの接続が切断されました。

  • ACI0104581 Windows版のみ。100%よりも高いスケールにディスプレイを設定した場合,タブコントロールがクリック操作に反応しませんでした。

注記: 高解像度ディスプレイを正しくサポートするためには,互換性オプション「フォームでのテキストレンダリングではDirectWrite を使用する」を有効にする必要があります。修正により,オプションが設定されていなくてもタブコントロールがクリックできるようになりましたが,その場合,テキストレンダリングのクオリティが低下することに留意してください。

  • ACI0104579 プロジェクトモードのみ。ブール型フィールドに対してOBJECT DUPLICATEを実行した場合,何も起きませんでした。

注記: プロジェクトモードにブール型フィールドというフォームオブジェクトは存在しません。ブール型フィールドをデータソースとするラジオボタンまたはチェックボックスがあるだけです。

  • ACI0104549 新ネットワークレイヤーで「ドメインサーバーによるユーザーの認証」を有効にした場合,メモリーリークが発生し,クライアントがフリーズすることがありました。ACI0103215が修正されたことによる副作用です。

  • ACI0104529 Write Proエリアで行末にソフトブレークが存在する行に日本語のスタイル付きテキストをIMEで入力した場合,1行に1文字ずつ文字が表示されました。たとえば,メソッドエディターのリッチテキストをWrite Proエリアにペーストするとそのような行ができます。あるいは,shift+return に続けてreturn を入力することにより,ソフトブレークだけの空行ができるので,そこにIMEで日本語を入力しても再現します。

  • ACI0104590 Mac版のみ。ラジオボタンまたはチェックボックスに対してBEST OBJECT SIZEを使用した場合,正しい値が返されないことがありました。オブジェクトの幅が数ピクセル不足しているため,ボタンタイトルが途切れて表示されます。フォームエディターの「自動サイズ」も同様です。

注記: Mac版のラジオボタンとチェックボックスには,Regular・Small・Miniというバリエーションがあり,オブジェクトの高さによって表示されるタイプが決まります。オブジェクトの最適サイズを計算するためには,表示されるラジオボタンまたはチェックボックスのサイズを特定する必要がありますが,タイトルのフォントではなく,オブジェクトの高さを判定基準にしていたために計算が合わないことがありました。仮にオブジェクトの高さが10ピクセル,タイトルのフォントの高さが24ピクセルだった場合,オブジェクトの高さを基準にすれば,タイプはMini(11x11)ですが,フォントを基準にすれば,タイプはSmall(14x14)になります。SmallであるべきところをMiniの幅で最適サイズを計算すると,タイトルを表示するエリアの幅が3ピクセル足りません。つまり,タイトルが完全に表示されるかどうかは,フォントの高さとオブジェクトの高さに左右されました。

  • ACI0104553 ラジオボタンとして表示されるように設定されたブール型フィールドを配置したフォームをプロジェクトに変換した場合,ボタンタイトルが途切れて表示されることがありました。

  • ACI0103757 ピボットテーブルを含むView Proスプレッドシートを.xlsx形式でエクスポートしてExcelで開いた場合,ナビゲーションバーが表示されませんでした。オフスクリーンエリアでVP EXPORT DOCUMENTを使用した場合に問題が再現します。ユーザーインタフェースからエクスポートした場合は問題ありません。

  • ACI0104558 フォームに2個の統合Webエリアを配置し,WA SET PAGE CONTENTで空のページを表示しようとした場合,アプリケーションがクラッシュしました。URLをabout:blankに設定すれば問題ありません。いずれかのWebエリアをシステム版に変更すれば問題ありません。

注記: 4D 19 R3以降,directory.json の仕様が変わり,bcryptハッシュが使用されるようになったことが関係しています。修正により,Open datastoreの接続パラメーターでpasswordAlgorithmプロパティが設定できるようになりました。4d-rest-digestを指定すれば,以前と同じようにMD5系のハッシュが送信され,On REST Authentication データベースメソッドでValidate passwordを使用できるようになります。このプロパティはOn REST Authentication でパスワードを検証するためのものです。RESTでサーバーにアクセスできるユーザー&グループをストラクチャ設定で管理する場合,On REST Authentication は作成せず,passwordAlgorithmプロパティも省略してください。

  • ACI0104341 ORDAのentity.clone()を実行した場合,エンティティがロックされました。

  • ACI0104550 MIME-VersionDateなど,既定のヘッダーをメールオブジェクトで設定してSMTP New transporterで送信した場合,両方のヘッダーがMIMEに含まれました。一部のメールクライアントはヘッダーの重複に対応していないため,表示に問題がありました。いずれにしても,カスタムヘッダー値だけが送信されるべきです。

  • ACI0104537 デザインモードで未使用のローカル変数を検索した場合,宣言と同時に初期化をしている行(したがって未使用ではない)がヒットしました。

  • ACI0104533 Client Web Application Expansion ライセンスがインストールされていないクライアントでNetKit を使用することができませんでした。4D 20 LTSでは問題ありません。

  • ACI0104267 インタープリターモードのみ。SET DATABASE PARAMETERMax concurrent Web processes などのオプションを設定した場合,インタープリターモードであってもWebプロセスがプリエンプティブスレッドで実行されるようになりました。Webサーバーを再起動すれば元の動作に戻ります。WEB SET OPTIONまたはデータベース設定でオプションを設定すれば問題ありません。

  • ACI0104258 メンテナンス&セキュリティセンターでロールバックを実行し,その後,データファイルを破損した場合,再起動後の自動ジャーナル統合が失敗しました。MSCでロールバックではなく復元とジャーナル統合を実行した場合は問題ありません。

注記: 「データベースが完全でない場合,最新のログを統合する」機能は,カレントログフォルダーに存在するすべての.journal ファイルを統合するものです。MSCのロールバックを実行すると,カレントログフォルダーに追加のジャーナル(YYYY-MM-DD hh’h’mm’m’ss.journal )が作成されるため,自動統合ができなくなります。修正により,自動統合処理では,このファイルが無視されるようになりました。

  • ACI0104539 Windows版のみ。Plugin APIのPA_GetMainWindowsHWNDをプリエンプティブスレッドから実行した場合,アプリケーションがクラッシュすることがありました。

注記: 修正により,クラッシュは回避されるようになりましたが,プリエンプティブスレッドから当該APIを使用してはいけないことには変わりません。

  • ACI0104528 Windows版のみ。統合Webエリアが配置されたフォームを最前面に移動するためには,ウィンドウのタイトルバーを2回クリックする必要がありました。

  • ACI0104525 何らかの理由でリストボックスのヘッダーまたはフッターのオブジェクト名が空に設定されている場合,METHOD GET PATHSを実行するとアプリケーションがクラッシュしました。

  • ACI0104463 リストボックスセルのスタイル付きテキストの先頭文字を選択し,コンテキストメニューからスタイルを適用した後,command+Aでテキスト全体を選択した場合,スタイルがテキスト全体に適用されました。

  • ACI0104427 4Dが最小化された状態でモーダルダイアログを表示した場合,ウィンドウがオフスクリーンに表示されました。

  • ACI0104521webAdmin 権限がなくてもREST APIの/rest/$call/methodをPOSTで呼び出すことができました。

  • ACI0104483 Windows版のみ。配列型リストボックスの列に設定された関連リストのポップアップメニューがフォームウィンドウの外に表示された場合,選択したメニュー項目の値が正しく代入されませんでした。

  • ACI0104462 * /RESOURCES/en.lproj* に syntaxEN.json が存在する場合,「コンパイル時にコード補完用のシンタックスファイルを生成する」を無効にして再コンパイルしてもファイルが削除されませんでした。

  • ACI0104543 期限を過ぎたライセンスが存在する場合,ライセンスマネージャーの更新ボタンがクリックできませんでした。

  • ACI0104503 WebAdmin のポートからリクエストを受信した場合でもOn REST Authentication データベースメソッドが実行されました。

注記: 修正により,ホストではなくコンポーネントのOn REST Authentication データベースメソッドが実行されるようになりました。

  • ACI0103777 Windows版のみ。View ProスプレッドシートをPDFまたはXPSプリンターで出力しようとした場合,システムエラーが表示され,アプリケーションがクラッシュしました。ACI0103757が修正されたことによる副作用のようです。

関連記事

リンク