R-リリースのサイクルの過程において、4D が使用する様々なライブラリーやコンポーネントはアップデートされ、既存の振る舞いは一部変更となり、既知の問題については記録が残されます。元々は"リリースノート"として発表されていたこれらの情報は、このページに要約されています。
- 4DRequestsLog ファイルフォーマットは4D v17R5 以降、変更となりました:
- 3つのフィールドが新しく追加になりました。
- 時間はミリ秒ではなくマイクロ秒単位になりました。
ログ解析ツールを使用している場合、それらをアップデートする必要があるかもしれません。
設定ファイルのアーキテクチャーの進化を尊重し、4D は一部のデフォルト設定ファイルを自動的に名称変更してその場所を移動させます:
- "BuildApp.xml" は"buildApp.4DSettings" と名称変更され、"Preferences" フォルダからデータベースの"Settings" フォルダへと移動されます。
- "Backup.xml" は"backup.4DSettings" と名称変更され、"Preferences" フォルダからデータベースの"Settings" フォルダへと移動されます。
- 上記の移動の結果Preferences フォルダが空になった場合、それは削除されます。
- Logs フォルダの位置が変更になりました:
- v18 以降のバージョンにおいて、"カレントの"Logsフォルダはデフォルトでデータファイルと同階層に作成されます。また、メンテナンスログ(圧縮、検証、修復)用の特定のLogs フォルダが、ユーザーのカレントシステムフォルダ(4D フォルダ)内に作成されます。
- 既存のLogs フォルダはデータベース変換の際、何も操作はされずにそのままにされます。
インライン・複数行コメント(/*...*/)をサポートするようになった結果、4D v18 以降においてピクチャーの垂直方向スケール演算子が変更になりました。
以前の演算子は、データベースが4D v18 以降に変換されたときに自動的に置き換えられます。
4D v17 R6 以降、4D では範囲チェックは常に有効化されています。その結果、データベース設定ダイアログボックスの"コンパイラ"のページから、範囲をチェックチェックボックスが削除されています。
範囲チェックの特殊コメントは引き続きサポートされます:
// %R* コメントは、今まではデータベース設定でチェックされていなければ"無効化された"状態を再現するのに使用できていたものが、今後は// %R+ と必ず同じ意味になる(オプションが有効化される)という点に注意してください。
現在ではサブフォームがリサイズされる際にはOn Resize イベントがトリガーされるため、On Timer フォームイベントは衝突を避けるためにトリガーされないようになりました。以前は、このイベントはトリガーされましたがその頻度が正確性を欠くことがありました。
以前のForm event コマンドはForm event code と名称変更され、新たにオブジェクトを返す新コマンドFORM Event が実装されました。
コンパイラーが改善され、BLOB 変数を使用する際のミスマッチをより正確に検知することができるようになりました。コンパイラーは、コマンドがBLOB を要求しているのにBLOB でない引数を受け取った場合に、エラーを表示します。
保存されているデータと、それがどう作成されたかによって、オブジェクトフィールドのインデックスが正しくない可能性があります。これは極めて稀な、再現不可能な状況です。一つの要因として見られているのが特殊文字(例 : . , "" [] 等) をプロパティ名に使用しているオブジェクトです。これが含まれていると、インデックスが壊れたものとなり、オブジェクトフィールドでのQUERY BY ATTRIBUTE に失敗する現象(ACI0098796) を引き起こす可能性が示唆されています。これらは4D v15 - 4D v17.0 で作成されたデータベースでインデックスのあるオブジェクトフィールドを持つものが対象となっています。v16.4 HF1 / v17.1 / v17R4 以降で作成またはインデックス付がなされたデータベースでは影響ありません。この問題を直すためには、オブジェクトフィールドを再インデックスすることが推奨されています。
4D v17 R5 以降、同じアプリケーションの複数のコピー(macOS またはWindows) またはインスタンス(Windows) を実行して同じサーバーへと接続することが可能になりました。これを可能にするため、キャッシュフォルダの命名規則が変わりました。以前のバージョンでの命名規則はサーバーのIPおよびサーバーのポート番号に基づいたものでしたが、これに追加のインスタンス番号が追加されることになります。古い方のキャッシュフォルダとそのデータは、今後は使用されません。削除したい場合には、恒久的に削除する必要があります。
新しいGet call chain コマンドを実装するため、4D コンパイラによって生成されるコードが改善されました。結果として、4D v17 R6 でコンパイルされたデータベースは4D v17 R6 以降のバージョンでしか開けなくなります。新コマンドの利点を引き出すためには、古いバージョンでコンパイルされたデータベースも再コンパイルする必要があります。
“New formula” および “New formula from string” コマンドは、それぞれFormula および Formula from string へと名称変更されました。
4D v18 以降、"On 4D Mobile Authentication" データベースメソッドは、以下のように変更になりました:
4D View Pro 内の4D イベントはリファクタリングされ、On Data Change イベントは今後はトリガーされないことになりました。
SpreadJS の日付との親和性を高めるため、4D は日付と時間の内部的な保存方法を変更しました。4D v17 R2 以降、4D View を 4D View Pro ドキュメントに変換する場合、日付と時間はC_TEXT としてキャストされてきました。4D v17 R4 以降、日付と時間は、次の二つのフィールドを持つC_OBJECT としてキャストされます: 一つは日付用のフィールド(C_DATE)、一つは時間用のフィールド(C_TIME) です。
4D v17 R5 以降、4D View Pro のデフォルトのローカライズ設定は、カレントの4D ホストデータベースとと同じ設定になります。そのため4D v17 R5 では、以前のバージョンと比べて4D View Pro のインターフェースでの日付、時間、そして数値の表示が変わっている可能性があります。
$wp_pageNumber および $wp_pageCount 式は常に計算され、ST FREEZE EXPRESSIONS コマンドで固定化することはできません(4D Write プラグインと同じ振る舞いとなりました)。
以前のバージョンでは、レンジが行またはカラムの内部にあったとき、あるいは改ページが表内に挿入されたとき、改ページが表の前に挿入されてきました。今後は改ページは該当の行の前に挿入され、表は二つに別れることになります。
wk tab stop offsets の振る舞いが更新されました。タブ引数の最後の要素は、今後はタブオフセットのデフォルト値を定義するためには使用されなくなりました。今後は、最後のタブのオフセット値を定義するようになります。4D v17 R5 以降、デフォルトタブ値はwk tab default 属性のwk offset 引数によって管理されるようになります。この属性はデフォルトのタブ値を管理するために作成されました。
macOS High Sierra において4D Developer Edition v18 以降を開こうとした場合、次のような警告メッセージが表示されます: "4D は開発元が未確認のため開けません。"
macOS Mojave または Catalina を使用することが推奨されます。ただし、macOS High Sierra を開発のために使用しなければならない場合、以下の2つの回避策があります:
- Apple からSwift をインストールし、4D Developer アプリケーションが正しく認識されるようにします。
- あるいは、"システム環境設定 > セキュリティ"ダイアログボックスを開き、"このまま開く"ボタンをクリックします(これは新しいビルドをダウンロードするたびに実行する必要があるという点に注意してください)。
注: 問題となるのは4D Developer アプリケーションのみです。他のエディション(4D Server、組み込みアプリケーションなど)は特に制約なく直接開くことができます。
Microsoft によるWindows 7 のサポートは2020年の1月で打ち切られます。そのため、4D はそのメンテナンスを4D v17 R5 で打ち切ります。並行して、Windows 8に対するサポートも打ち切りますので、今後はWindows 10 へのアップグレードをご検討ください。
Windows 7: 現在利用可能なMicrosoft アップデートを(システム設定の更新ダイアログを使用して)全てインストールすることが強く推奨されています。KB2999226 のアップデート(2015年9月にリリース)はapi-ms-win-crt-rumtime-1-1-0.dll.に関連したエラーを回避するためには必須です。Microsoft はすでにWindows 7 のサポートを停止しており、延長サポート(セキュリティ修正)も間も無く終了となります(2020年1月)。Windows 10 へのアップグレードをご検討ください。
macOS Mojave が4D に存在しないローカライズ設定を使用する場合、日付と時間はUS フォーマットで表示される可能性があります。例えば、Mac のクライアントがイタリア語のローカライズを使用していた場合、これに対応する"it.lproj" は存在しませんので、日付はUS フォーマットで表示されることになります。
- openSSL: 4D v18 ではopenSSL 1.1.1d にアップデート
- Xerces: v3.2.1 にアップデート
- CEF: v3626 にアップデート
- PHP: v7.3.1 にアップデート - これはPHP にとってのメジャーアップグレードとなり、追加の機能もありますが互換性の問題を引き起こす可能性もあります。詳細な情報についてはこちらをご覧ください。
- ICU: v63.1 にアップデート- この新しいUnicode バージョンへとメジャーアップグレードをしたため、文字、テキスト、オブジェクトのインデックスは強制的に自動リビルドが行われます。
- Hunspell: v1.7.0 にアップデート