4D-jp 4D Japan Technical Support Team

4D 20r8 修正リスト

2025-01-20

バージョン: 20r8
ビルド: 100114

  • ACI0105367 #DECLARE宣言が記述されたメソッドを編集中にFor Each構文のコード補完を使用した場合,アプリケーションがクラッシュしました。ACI0105312が修正されたことによる副作用のようです。

  • ACI0105347 ASTインタープリターモードでパラメーターを渡さずにQUERY QUERY SELECTION QUERY BY ATTRIBUTE QUERY SELECTION BY ATTRIBUTEを実行した場合,アプリケーションがクラッシュしました。

  • ACI0104339 コレクション型またはオブジェクト型のメンバーの直後にNullが存在するようなコレクションをFor each構文で処理した場合,NullValue typeIs null (255)ではなく,直前に代入されたメンバーと同じIs collection (42)またはIs object (38)を返しました。

注記: 問題は修正されましたが,インタープリターモードでValue typeが正しい値を返すためには,イテレーター変数を明示的に宣言する必要があります。インタープリターモードでFor each構文のイテレーター変数を明示的に宣言しなかった場合,その変数は未定義の状態から始まり,コレクション型が代入された時点でコレクション型になります。そのような変数にNullを代入した場合,コレクション型のまま値がNullになります。インタープリターモードで型が宣言されていない変数に値を代入した場合,すでに代入されている値の型をできるだけ変えないように代入が処理されるからです。

コンパイルモードでは,すべての変数が宣言されており,明示的に宣言されていないイテレーター変数はバリアント型になります。修正前のFor each構文では,バリアント型に対する代入であっても,すでに代入されている値の型をできるだけ変えないように代入が処理されていました。修正により,変数が明示的にバリアント型として宣言されていれば,NullNullのまま代入されるようになりました。

  • ACI0103409 設定>メソッドエディター>オプションの「変数とフィールドを強調」を「選択範囲上のみ」にした場合,メソッドエディターで変数をダブルクリックすれば,大文字と小文字を区別せずに同名の変数がハイライト表示されるはずですが,大文字と小文字が区別されました。

注記: 修正により,プロパティ名は大文字と小文字が区別され,変数名は大文字と小文字されないようになりました。

  • ACI0105310 Contents フォルダーが存在するバンドル形式のコンポーネントがLSPサーバーにロードされませんでした。

  • ACI0105343 ビルドキーのDatabaseToEmbedInClientWinFolderまたはDatabaseToEmbedInClientMacFolderを使用してクライアントアプリケーションをビルドした場合,クライアントアプリケーション起動時にライセンス入力を求められました。

注記: ビルドキーのDatabaseToEmbedInClientWinFolderまたはDatabaseToEmbedInClientMacFolderを使用してクライアントアプリケーションをビルドし,かつ,Default Data を組み込んだ場合,Unlimited Desktop ライセンスが必要です。データファイル無しでクライアントアプリケーションを起動した場合(コマンドラインインターフェースの--datalessを含む),Unlimited Desktop ライセンスは必要ありません。

  • ACI0105308 フランス語版のみ。ようこそ画面のフランス語が正しくありませんでした。Ouvrir ou Créer un projet d’application の”C”は小文字で表記するべきです。

  • ACI0105300 Windows版のみ。クライアント自動アップデート中にupdate.win.4darchive ファイルが書き換わりました。ACI0104623が修正されたことによる副作用のようです。

  • ACI0105141 Mac版のみ。QUICネットワークレイヤーのみ。クライアントをしばらく放置した場合,サーバーがクラッシュすることがありました。

  • ACI0104856 Write Proドキュメントにセルのマージされたテーブルが表示されている場合,水平ルーラーの左マーカーが間違った位置に表示されました。

  • ACI0104743 コンポーネントのクラス名をエクスプローラーで編集することができました。入力を確定すると,エラーメッセージが表示され,クラス名が復元されます。

  • ACI0105345 Windows版のみ。クライアント側でWebサーバーを運用した場合,ネットワークエラーによってアプリケーションがクラッシュすることがありました。

注記: ネットワークエラー自体を回避することはできませんが,クラッシュを回避するための対策が施されました。

  • ACI0105277 フォームをデザインモードで開いた場合,フォームオブジェクトの表示に時間がかかりました。

  • ACI0105343 ビルドキーのDatabaseToEmbedInClientWinFolderまたはDatabaseToEmbedInClientMacFolderを使用してクライアントアプリケーションをビルドした場合,クライアントアプリケーション起動時にライセンス入力を求められました。

注記: ビルドキーのDatabaseToEmbedInClientWinFolderまたはDatabaseToEmbedInClientMacFolderを使用してクライアントアプリケーションをビルドし,かつ,Default Data を組み込んだ場合,Unlimited Desktop ライセンスが必要です。データファイル無しでクライアントアプリケーションを起動した場合(コマンドラインインターフェースの--datalessを含む),Unlimited Desktop ライセンスは必要ありません。

  • ACI0105251 コンポーネントから関連メニューバーの設定されたフォームを表示した場合,アプリケーションのメニューバーが切り替わりませんでした。

  • ACI0105135 計算属性のORDAクエリに名前付き引数を使用した場合,Function queryにパラメーター値が渡されませんでした。プレースホルダーを使用すれば問題ありません。

  • ACI0105325 トルコ語のシステムでコンパイラーが起動できませんでした。

  • ACI0104816 Write Proドキュメントのテーブルの後に改行コードが存在する場合,WP Get elementswk type tableで取得したテキストに余計な改行コードが含まれました。

注記: WP Get elementsではなくWP INSERT DOCUMENTが修正されました。

  • ACI0105320 Visual Studio Code で複数のプロセスをデバッグ中に「続行」アクションを実行した場合,そのプロセスは再開されますが,残りのプロセスは終了しました。

  • ACI0105319 ビルド版サーバーアプリケーションの「ウィンドウ」メニューに「プロジェクト依存関係」が表示されました。Info.plist ファイルにcom.4D.HidePackageManagerMenuItemを追加すれば,回避することができます。

  • ACI0105318 VP CREATE TABLEを実行した場合,cs.TableColumnsは未知のクラスであるというエラーが返されました。

注記: ドキュメントの例題も修正されました。20r8ではクラス名がTableColumnsではなくTableColumnとなります。20r7以前では,クラスを使わずにNew objectでオプションを渡してください。

  • ACI0105312 AST(抽象構文木)インタープリターのみ。パラメーターに互換性のないデータ型を渡して関数やメソッドを実行した場合,エラーメッセージが正しく表示されませんでした。

  • ACI0105309 スケーラブルWebセッションと強制ログインモードが有効化されたアプリケーションの/4DACTION/リクエストから呼び出されたWebセッションでSession.setPrivileges()を使用した場合,セッションの権限が設定されませんでした。

  • ACI0105295 クライアント/サーバー版のみ。サーバー側で特定のキーボードショートカットを設定することができませんでした。escape tab backspace return space および矢印キーが認識されません。

注記: リソースのXLIFFファイル(ToolBox__.xlf )に問題がありました。

  • ACI0103009 ピクチャ型フィールドのORDAクエリでキーワード演算子(%)とプレースホルダーを使用することができませんでした。

  • ACI0105329 VP PRINTに定数のvk workbookまたは-2を渡してスプレッドシートを印刷することができませんでした。SpreadJS のアップデートが影響しているようです。

  • ACI0105197 Windows版のみ。CEF版Webエリアに表示されたダウンロードリンクをクリックした場合,ファイルダウンロード画面が表示されますが,そのままフォームを閉じた場合,一緒にファイルダウンロード画面が閉じられませんでした。

注記: 問題を回避するためにCEFのダウンロードツールは無効化されました。CEFの設定はキャッシュされるため,過去バージョンのCEF版Webエリアにも反映されます。過去バージョンのファイルダウンロード画面を復活させるためには,CEF_Cache を削除する必要があります。

  • ACI0105324 Windows版のみ。controlボタンを押しながらマウスホイールを操作してCEF版Webエリアに表示されたページをズームしようとした場合,アプリケーションがクラッシュしました。CEFのアップデートが影響しているようです。

注記: 問題を回避するためにCEFのズームツールは無効化されました。

  • ACI0105344 Mac版のみ。アプリケーションを起動すると,システムキャッシュフォルダー(/private/var/folders/ )にcom.4D.4D.code_sign_clone またはcom.4D.4DServer.code_sign_clone という名称のコピーが作成されました。CEFのアップデートが影響しているようです。4DCEFParameters.json"disable-features" : "MacAppCodeSignClone"を追加することで回避できます。

  • ACI0105339 Windows版のみ。On Web Authentication データベースメソッドでデバッガを起動した場合,アプリケーションがフリーズしました。

  • ACI0105223 Mac版のみ。管理画面の「メンテナンス」タブのボタンタイトルがドイツ語とポルトガル語では正しく表示されませんでした。

  • ACI0104913 インタープリターモードのみ。Last errors()がエラーを返しました。Last errorsであれば問題ありません。

注記: 以下のコマンドは()をつけて呼び出すことができます。

* `Current process name`
* `Call chain`
* `WEB Server list`
* `Get group access`
* `Form Get color scheme`
* `Web progress`
* `Last errors`
* `Web event`
* `Web form`

以下のコマンドは`()`をつけて呼び出すことができません。

* `True`
* `False`
  • ACI0104592 コンパイラーパスを「すべて定義させる」に設定し,三項演算の三項に文字列同士の比較演算(< <= > >= = #)を記述した場合,コンパイルエラーになりました。
$b:=False ? False : "cat"#"cat"`
  • ACI0105293 サーバーに接続した場合,ツールバーの「MSC」ボタンが「管理画面」ボタンに変化しますが,ボタンタイトルが途切れて表示されました。ACI0105245が修正されたことによる副作用です。

  • ACI0105307 AST(抽象構文木)インタープリターのみ。 Character code Substring Lengthなどのパラメーターを省略した場合,アプリケーションがクラッシュしました。

  • ACI0105259 AST(抽象構文木)インタープリターのみ。Time関数に時間型を渡した場合,エラーが返されました。

注記: ドキュメントに記載されているとおり,Timeに渡すことができるのは,文字列と整数だけです。加えてTimeはタイプキャスト関数(String Num Date Time Bool)のひとつでもあるので,undefined を渡すこともできます。しかしながら,他のタイプキャスト関数とは違い,Timeだけは,キャストするデータ型をそのまま返すNOOP実装がありませんでした。修正により,Timeのパラメーターリストに時間型が追加され,NOOPのタイプキャストが実装されました。なお,過去バージョンのコンパイラーは,暗黙的に時間型を整数型にキャストしていたため,Timeに時間型を渡すことができました。ただし,歴史的な仕様として,時間型はドキュメント参照でもあるため,コマンドやコンパイラーによる時間型から整数型(そしてその逆の)暗黙的なキャストは安全ではありません。ランゲージの仕様として,時間型↔︎整数の暗黙的なキャストは変数の初期化および代入時に限られることになりました。

  • ACI0105322 Windows版のみ。CEF版Webエリアのコンテキストメニューから「要素の検査」を実行した場合,別ウィンドウではなく,Webエリアの内部にインスペクターが表示され,F12 キーを使用しない限り,インスペクターを閉じることができませんでした。

  • ACI0105321 Windows版のみ。CEF版Webエリアのコンテキストメニューに「更新」「要素の検査」が二重に表示され,上に表示される項目を選択するとフォーム終了時にアプリケーションがクラッシュしました。

  • ACI0105317 Visual Studio Code のデバッグコンソールにフォーミュラを記述した場合,2回コードが実行されました。

  • ACI0104972 クラス関数のコンストラクターまたはメンバー関数に#DECLAREを記述した場合,メソッドエディターには警告が表示されず,エクスプローラーのプレビューエリアにだけ警告が表示されました。

注記: 修正により,クラス関数に#DECLARE構文を記述した場合,シンタックスチェックおよびコンパイル時にエラーが返されるようになりました。

  • ACI0105230 目的の値よりも前にnullが出現する場合,コレクション型プロパティに対するクエリがエンティティを返しませんでした。つまり,コレクション型プロパティの値が["Value";Null]であれば,attr.col[] in :1クエリでエンティティをクエリできますが,[Null;"Value"]では,クエリできませんでした。

注記: 修正に伴い,ブール型フィールドに対するシーケンシャルクエリの不具合も是正されました。ブール型フィールドの値がNullの場合,NOT(boolField IS NOT True)がヒットするようになりました。

  • ACI0104609 クライアント/サーバー版のみ。プロジェクトメソッドまたはクラス関数を文字列で渡した場合,entitySelection.orderByFormula()がエラーを返しました。Formula from stringで文字列をフォーミュラに変換すれば問題ありません。

  • ACI0104489 メソッドエディターでクラス名をダブルクリックしてハイライト選択した場合,メニューの「定義に移動」が動作しませんでした。マウスやキーボードを使用してクラス名をハイライト選択した場合,あるいはクラス名をハイライト選択せずにキャレットをクラス名に置いた場合は問題ありません。


リンク