R-リリースのサイクルの過程において、4D が使用する様々なライブラリーやコンポーネントはアップデートされ、既存の振る舞いは一部変更となり、既知の問題については記録が残されます。元々は"リリースノート"として発表されていたこれらの情報は、このページに要約されています。
警告: 4D v18 R6 ではICU ライブラリのアップデートが含まれており(以下参照)、これは強制的に文字列、テキスト、オブジェクト型のフィールドのインデックスの自動リビルド を発生させます。データファイルのサイズによってはこのオペレーションにかなり時間がかかるため、旧バージョンからのアップデートには注意が必要です。例えば開発用途にv18 R6とそれ以前のバージョンを行ったり来たりする場合には、バージョンを変えるごとに自動リビルドが発生するため、別途R6用のデータファイルを用意しておいてそれを使用する、または開発用の軽量なデータファイルを用意しておいてそれを使用する、などの方法が考えられます。
4D コンパイラは4D v19 においてアップデートされ、以下のような変更がもたらされました:
v18 Rx のプロジェクトのコンパイル版を4D v19 またはそれ以上のバージョンで使用したい場合、使用する前にプロジェクトを4D v19 で再コンパイルする必要があります。 ドット記法と、メソッドのUnicode での保存は今後はデータベースをコンパイルするためには必須となります。どちらかの設定が有効化されていないままデータベースをコンパイルしようとした場合、コンパイルエラーが生成されます。それぞれに対応するオプションがデータベース設定の互換性ページ で有効化されている必要があります。
Windows上で、macOS 用クライアントの自動アップデートをトリガーするクライアント/サーバーアプリケーションをビルドする場合、macOS 側であらかじめ生成された .4darchive ファイルを選択する必要があります。
macOS 用の4D Volume Desktop を選択するXML キーを使用してv19 クライアントアプリケーションをビルドした場合(v18.xと同様の方法)、エラーが生成されます。より詳細な情報については、developer.4d.com 上のプロジェクトパッケージのビルド の章を参照してください。
4D v19 は、macOS 版4D として最初のユニバーサルバイナリー 版のリリースとなります。ユニバーサルバイナリーとは、通常のアプリと見た目は何ら変わりませんが、その実行可能ファイルには2つのバージョンが含まれています: 一つのバージョンはApple silicon 上でネイティブに動作し、もう一つのバージョンはインテルベースのMac コンピューターでネイティブに動作します。
4D v19 以降、スカラーWeb セッションcookie のSameSite 属性はデフォルトで"Strict"に設定されています(最も安全な設定です)。以前のリリースでは、この属性はWeb サーバーでは設定されていませんでした。そのため、ブラウザはデフォルトでは"Lax" 設定を使用していました。詳細な情報については、 developer.4d.com を参照してください。
一貫性の理由から、複数の4D ログファイルが4D v19 において変更されました:
4DDebugLog.txt (タブ分け版)にはカラム名が含まれるようになり、一部のフィールドは並べ替えられました。 診断ログは4DDiagnosticLog.txt と名称が変更され、一部改善されました。 全てのログにおいて、時間値は常にISO 8601 フォーマット(YYYY-MM-DDThh:mm:ss.mmm) で表示されるようになりました。 サーバー側のログファイルには"Server" の文字がつけられるようになりました例: 4DDebugLogServer.txt 詳細な情報については、こちらの こちらのblog 記事 を参照してください。
4D v19 以降のバージョンでは暗号化機能に関する内部的な変更が含まれます。結果として、4D v19 以降のバージョンでEncrypt data file などのコマンドやMSC などで暗号化されたデータファイルは、それ以前のバージョンを使用して再度開くことはできなくなります (ただし4D v18.5 にはこの変更が含まれるので除く)。
注: 暗号化は圧縮や修復オペレーションなどによってもトリガーされます。
ただし、4D v19.x において暗号化を事前に解除しておけば、以前の4D のバージョンを使用してデータファイルを再度開くことは引き続き可能です。
これが関係するのは暗号化されたデータファイルのみです。暗号化を使用しない場合、データファイルは以前と同じように再度開くことができます。
一貫性のため、MailAttachment.path プロパティは添付ファイルのパスをPOSIX シンタックスで返すようになりました。プラットフォームシンタックスで添付ファイルのパスを取得するためには、新しいMailAttachment.platformPath プロパティを使用してください。
分かりやすさのためと、新規の開発でプロジェクトベースのアーキテクチャーを推し進めるため、4D での全体的な用語が更新され、インターフェースが単純化されました:
一般的な"データベース"という用語は4D アプリケーション全体において"プロジェクト"と置き換えられました。 ファイル メニュー/新規 ツールバーボタン内では、デフォルトで表示されているオプションは新規 > プロジェクト... オプションだけです。 ファイル メニュー/新規 ツールバーボタンを通してバイナリーデータベースを作成する機能は引き続きサポートされますが、これは4D環境設定を使用してバイナリーデータベース作成を有効化 オプションを明示的に有効化する必要があります。
コレクションのメンバーメソッドとの統一性のため、entitySelection.min( ) 、entitySelection.max( ) 、および entitySelection.average( ) ファンクションは空のエンティティセレクションに対して使用された場合にはUndefined を返すようになりました。v18 R6 以前のリリースにおいては、これらはこういった場合にはNull を返していました。
4D v18 R5 以降、既存のORDA データモデルクラス(4D v18 R4 からの新機能)は、デフォルトではREST リクエストに対してnon-exposed(非公開) になっています。REST リクエストに対して利用可能にしたいファンクションについては、それぞれを明示的にexposed(公開) と宣言する必要があります。詳細についてはdeveloper.4d.com のData Model Classes documentation を参照してください。
SET LIST ITEM PROPERTIES コマンドのicon 引数は、今後は任意の引数になります。コマンドのシンタックスは、以下のようになります:
SET LIST ITEM PROPERTIES ( {* ;} list ; itemRef | * ; enterable ; styles {; icon {; color}} )
4D v18 R5 以降、エンティティセレクションオブジェクトはプロセス間で共有できるようになり、これによってより柔軟かつスケーラブルに使用できるようになります。作成した方法によって、一部のエンティティセレクションはアプリケーション内において共有可能 になります(共有可能なエンティティセレクション/追加可能のエンティティセレクション を参照してください)。
共有可能 なエンティティセレクションには新しいエンティティを追加することはできません。結果として、既存のコードでのentitySelection.add( ) の呼び出しはエラーを生成する可能性があります。この場合、エラーのない実行に戻すためには、以下のようにしてください:
LOG FILE TO JSON コマンドは、今後はオブジェクト型のフィールドへの処理についての詳細を書き出すようになります。これまではBlobフィールドとして扱われていました。
バックアップファイルに対して手動での復元を実行した場合、データファイルに関連した全てのコンテンツ(ファイルと設定フォルダ)は今後は保存先のフォルダ内に作成されるData サブフォルダ内に自動的に保存されます。
Backup / DataBase XML キーは、"backup.4DSettings" ファイル内(DatabaseName , LastBackupPath , LastBackupLogPath , CurrentBackupSet , LastBackupDate , LastBackupTime )では利用できません。最後のバックアップ操作についての情報とレポートについては、今後は“backupHistory.json” ファイル内にて確認することができます。
サーバーのポート番号19815 は今後は、リモートデバッガが有効化された際に4D Server によって自動的に使用されます(デフォルトのポート番号)。詳細な情報については、4D Serverとポート番号 の章を参照してください。
4D v18 R6 以降、On Clicked および On Double Clicked イベントは、リストボックスのセルが編集中であっても テキスト入力セルでクリックが発生した場合には生成されるようになりました。この機能を使用することで例えばContextual click の後にポップアップメニューを表示することなどができるようになります。イベントはカラム内とリストボックスオブジェクト内にて(この順番で)生成されます。
今までのリリースでは、これらのイベントはテキスト入力セルが編集中でない場合にしか生成されていませんでした。既存のインターフェースでの予期せぬ副作用を避けるため、以下のコードをテスト用に追加することができます:
4D v18 R4 以降、リストボックスの上級者向け機能は全ての4D ユーザーに対して無料で利用可能です(これらの機能は以前は4D View Pro ライセンスが必要でした)。この機能には、以下のものが含まれます:
これらのコマンドは4D v18 R4 で更新されました。ドキュメントに記載のなかった振る舞いが変更され、その結果既存のアプリケーションにおいて互換性に関する問題を引き起こす可能性があります。
両コマンドともOK システム変数を変更していましたが、今後はこの変数を設定しなくなります。 無効なBase64 フォーマットだった場合、単一のBlob 引数に対して呼ばれたBASE64 DECODE はBlob の中身を変更していませんでした。今後は空のBlobを返すようになります。
Apple の推奨に従い、4D は今後は署名とノータリゼーションが施された4D Volume Desktop とプラグインを提供します。結果として、macOS では作成したアプリケーションに署名をすることが必須となりました。署名がない場合、ビルド処理をしても壊れた署名を持つパッケージが生成されます。ビルドアプリケーションダイアログボックス内のアプリケーションを署名 オプションはデフォルトでチェックされるようになりました。配布証明書を持たないデベロッパーは自己署名証明書を使用する必要がありす(これを行いやすくするために、ビルドアプリケーションダイアログボックスには自己署名証明書 ボタンが追加されています)。
これに加えて、Windows プラットフォーム上でmacOS クライアントアプリケーションをビルドすることはできなくなりました。今後はmacOS アーカイブをmac上で作成し、それを最終パッケージにコピーする必要があります。
注: 4D は署名ステップの際に、サードパーティプラグインとアプリケーションのストラクチャーが最新のApple の要件(2020年2月の基準)に合致しているかどうかをチェックします。そのため、以前署名した要素が4D によって拒否されることもあり得ます。これはあとで署名に失敗して時間を無駄にするより、先に署名をチェックしておくことでそれを回避するための処置です。4Dによって署名が拒否された場合、プラグインまたはアプリケーション製造者に連絡して最新バージョンを手に入れるようにしてください。
プロジェクトモードのアプリケーションにおいては、4D から同一マシンの4D Server に接続した場合、接続した方の4D は自身の内部コンポーネントとプラグインを使用し、4D Server のものは使用しません(つまり、このコンテキストにおいてはサーバー側のプラグインは4D アプリケーション側に"ダウンロード"されないということです)。ただし4D または4D Server レベルにプラグインやコンポーネントをインストールすることはすでに推奨されていないことにも注意してください。詳細な情報については、この章 を参照してください。
*** 新ドキュメンテーションWebサイト *** のページに記載のあるとおり、4D ドキュメンテーションはdeveloper.4d.com/docs のプラットフォームへと移動をしています。新ウェブサイトでは新しいコンテンツに加えて、doc.4d.com の内容をアップデートしたものがまとめられています。
混乱を避けるため、doc.4d.com のセクションのうちdeveloper.4d.com へと移動されてアップデートされたものについては、doc.4d.com から削除されていきます。削除されたセクションでは新ウェブサイトへのリダイレクトが表示されます。例:
テーマ: Design object access
定数名 以前の値 新しい値(v18 R3以降) Path all objects 31 -1
macOS では、が名前につけられたピクチャーは、その指定されたスケールファクター(2x、3x、など) に応じたピクチャーが描画されます。
旧式の4D Write プラグインドキュメントを読み込む場合、4D Write pro はデフォルトで(GET SYSTEM FORMAT によって返される)システムの小数点区切りを、小数点揃え用の区切り文字として使用します。この振る舞いは、WP SET ATTRIBUTES コマンドを使用して変更することができます。
4D v18 R2 以降の4D Write Pro では、フォーミュラ内にてメソッドやコマンドはフィルダリング(制限)されなくなりました。4D Write Pro ではフォーミュラを文字列ではなくオブジェクトとしてサポートします。作成されたフォーミュラは、たとえそれらが"許可"されていないメソッドを呼び出していたとしても、どれも挿入・計算可能です。以下のフィルタリング機能は、4D Write Pro フォーミュラ評価においては今後は無視されます:
データベース設定ダイアログボックス内部の"セキュリティ"ページ内のフォーミュラエディタと4D Write Pro ドキュメントで使用できるコマンドとプロジェクトメソッドの制限 オプション SET ALLOWED METHODS コマンド ただしフィルタリングは、EDIT FORMULA で呼び出されたフォーミュラエディターに対しては依然として適用されることに注意して下さい。
以前のバージョンでは、ST FREEZE EXPRESSIONS コマンドは、常に4D Write Pro ドキュメント内で実行される前に式の値を計算していました。4D v18 R2 以降、このコマンドは事前に計算されてない場合に限り式を計算するようになりました(ただし * 引数が使用された場合を除く)。
4D v18 R2 以降、Oracle のライブラリファイルは、の場所にインストールされなければなりません(他の箇所はサポートされません)。4D for OCI のページInstallation (Windows) も参照してください。
Get system info ではメジャーバージョン番号のみが返される : macOS Big Sur 上で Get system info コマンドを呼び出した場合、osVersion プロパティはバージョン番号としては"11" のみを格納します。マイナーバージョンやhotfix番号などのその他の情報は含まれません。 不正確なCPU 使用率 (Apple シリコンのみ) : Apple シリコンを搭載したmacOS Big Sur では、CPU 使用率は利用できません。結果として、Get application info コマンドが呼び出された場合、プロパティは必ず -1 を格納しています。4D Server のウィンドウでは、CPU 使用率グラフが正しく表示されません。
4D v18 R4 以降に必要な最低限のmacOS バージョンはmacOS Mojave (macOS 10.14) となります。以前のバージョンのmacOS はサポートされません。
より詳細な情報と、最低限のシステム要件については、4D Web サイトのプロダクトダウンロードページ を参照してください。
ライブラリ カレントのバージョン 4Dでアップデートされたバージョン 補足 webKit WKWebView 19 4D はモダンなシステムAPI を使用するようになりました。Webエリアにおいて小さな差異が生じる可能性があります。 CEF 4324 19 Chromium v88。Apple Silicon プラットフォームにおいてネイティブにコンパイルができるようになります。 ICU 68.1 18 R6 この大型アップデートの影響で、以前のリリースのデータベースを開く場合には、文字型/テキスト型/オブジェクト型のインデックスの強制的なリビルドが自動的に行われます。 OpenSSL 1.1.1k 18 R6 SpreadJS 14.1.1 19 4D View Pro エンジン PHP 7.3.27 18 R6 libldap 2.4.48 18 R2