リリースノート
4D 20 R10
4D 20 R10の新機能 4D 20 R10 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- データ上のORDA イベント の管理。
- 4D.TCPConnection.new()関数の- options引数に新しい- connectionTimeoutオプションが追加されました。
- 新しい4D.Vectorクラス。これを使用して、一般的にAI で計算されたベクトルを処理して比較することができます。
- 4D 自動フィールド および Generate UUIDコマンドに対して、バージョン 7のUUID を生成するための新しいオプション。
- 新しいUDPSocketおよびUDPEventクラスを使用することでUDP ソケットを使用してデータを送信することができます。4DTCPUDPLog.txtログファイル(4DTCPLog.txtから改名)内でのUDP イベントの詳細なログのサポート。
- Session class 内の.promote()および.demote()関数を使用することでWeb プロセスの権限を動的に追加/削除することができます。
- ビルドアプリケーションのダイアログボックスで埋め込むライセンスの自動選択、 更新されたCreate deployment licenseコマンド、新しいAutomaticLicenseIntegrationビルドアプリケーションXML キー。
- 4D Write Pro および スタイル付きテキストエリアにおけるフォーミュラのコピー/ペースト時のセキュリティの改善: カレントの4D アプリケーションの外部からコピーされたフォーミュラは、今後は常に値のみがペーストされます。
- 4D AIKit コンポーネント: 新しい OpenAIEmbeddingsAPI class を使用することで、OpenAI のAPI を使用して埋め込みを作成できます。
- ストラクチャーエディターにおいて、オブジェクト型フィールドに対してクラスを割り当てる ことができます。
- 再起的な依存関係 の自動管理。
- 4Dランゲージ:
- 統一性のため、Create entity selectionコマンドおよびUSE ENTITY SELECTIONコマンドは、"4D 環境" テーマから "Selection" テーマへと移動しました。
- 新しい OBJECT SET DATA SOURCE FORMULAおよびOBJECT Get data source formulaコマンドを使用して、フォームオブジェクトに対してFormulaオブジェクトを割り当て、または読み出しができるようになります。
- LISTBOX SET PROPERTYおよび- LISTBOX Get propertyは3つの新しい定数をサポートするようになりました:- lk current item、- lk current item position、および- lk selected items expressionです。
 
- 統一性のため、
- 修正リスト: 4D 20 R10 で修正されたバグのリストです(日本語版はこちら)。
動作の変更
- Windows 上では、印刷しか想定していない(つまりスクリーン上で使用不可能な)カレントプリンターフォントは、4D の起動時にはロードされないようになりました。
- MeCab ライブラリーは削除されました。 この変更は、日本語テキストの処理のみに影響します。
- "cs" クラス タイプを使用して宣言されたオブジェクト型変数またはオブジェクト型引数に、異なるクラスのオブジェクトインスタンスを代入した場合にはシンタックスエラーを生成するようになりました。
- Timeコマンドは、timeValue 引数が負の値の場合には、負の時間式を返すようになりました。 例えば、- Time("-01:02:03")は -01:02:03 を返します。 過去のリリースにおいては、負の符号は無視されていました。
4D 20 R9
4D 20 R9 の新機能: 4D 20 R9 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- MeCab ライブラリー は今後廃止予定となり、次のリリースでは削除される予定です。
- Session.createOTP()および- Session.restore()の新関数を使用して管理することで、セッショントークン がサポートされるようになりました。
- ラベルウィザードは、ラベルデザインエリア においてフォーミュラを追加または編集する際にフォーミュラエディターを使用するようになりました。
- TCP サーバー接続を作成するための新しいTCPListenerクラス。関連クラスに新しいプロパティが追加されました。TCPConnectionクラスにaddress、listenerおよびport。TCPEventクラスにaddressおよびport。
- ライブチェッカーとコンパイラー.において、廃止予定のコマンドと定数は、特定の警告を生成するようになりました。 Command nameコマンドを使用することで、コマンドが廃止予定かどうかを知ることができます。
- 新しいコマンドWA SET CONTEXT および WA Get context を使用して、Web エリア内の$4d コンテンツを管理することができるようになります。
- 新しいRDP optimizationデータベースパラメーター を使用して、例えば4D をリモートデスクトッププロトコルを使用している場合の共有クリップボードを最適化することができます。
- インタープリタ版のコンポーネントはホストプロジェクトから編集する ことが可能になりました。
- ライセンス は起動時に自動的に更新されるようになりました。
- 新しい4D AIKit コンポーネント を使用することでサードパーティAI のAPI とやり取りをすることが可能になります。
- 以下のVP コマンドのコールバックは、4D カスタム関数がその計算を全て終えるのを待つようになりました: VP IMPORT DOCUMENT, VP IMPORT FORM BLOB、VP IMPORT FROM OBJECT、および VP FLUSH COMMANDS
- Google およびMicrosoft 365 カレンダーを管理するための新しい4D Netkit 機能。OAuth 2.0 認証のためのホストWeb サーバーを使用する機能。
- 4D Write Pro インターフェース: 新しい 統合されたAI を使用して、4D Write Pro ドキュメントからchatGTP とやり取りすることができます。
- 修正リスト: 4D 20 R9 で修正されたバグのリストです(日本語版は こちら)。
4D 20 R8
4D 20 R8 の新機能: 4D 20 R8 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- 4D.IncomingMessageclass を使用して独自のHTTP request handlers を実装することができます。
- フォームオブジェクトプロパティ は、プロパティリスト とコンパイラーにおいてシンタックスチェックの恩恵を受けることができるようになりました。
- フォームにクラスを割り当てる ことで、Formコマンドを使用しているときにタイプアヘッドとフォームデータの自動インスタンス化を有効化することができるようになります。
- スタンドアロンセッション のサポート。これによりクライアント/サーバーアプリケーションのローカルなコーディングが単純化されます。
- 4D デバッガ: 新デザイン、自動保存、表示モードなどの新機能
- Apple 公証ガイドラインにより合致する新しくビルトされたコンポーネントアーキテクチャ
- ビルドアプリケーションダイアログボックスから、簡単に評価版アプリケーションをビルド することができるようになりました。
- 依存関係: 依存関係マネージャーを使用して、GitHub 上のコンポーネントの新バージョンをチェック したり更新する ことができます。
- 新しい TCPConnectionおよびTCPEventクラスを使用してTCP クライアント接続を管理したり、イベントを管理したり、データ転送のコントロールを改善することができます。 追加された4DTCPLog.txtを使用することでTCP イベントの詳細なログを取ることができます。
- VP EXPORT DOCUMENT および VP IMPORT DOCUMENT の新しいオプションを使用して、スタイル、フォーミュラ、データ整合性、そしてパスワードによる保護などを管理することができます。
- 4D Write Pro:
- 以下のコマンドが、引数としてオブジェクトまたはコレクションを受け取れるようになりました: WP SET ATTRIBUTES、WP Get attributes、WP RESET ATTRIBUTES、WP Table append row、 WP Import document、 WP EXPORT DOCUMENT、 WP Add picture、および WP Insert picture
- WP Insert formula、 WP Insert document body、および WP Insert break はレンジを返す関数になりました(頭文字のみ大文字です)。
- ドキュメント属性に関連した新しい式: This.sectionIndex、 This.sectionName およびThis.pageIndex
 
- 4Dランゲージ:
- 変更されたコマンド: FORM EDIT
- 4D.CryptoKey class の.sign()および.verify()関数は message 引数においてBlob をサポートするようになりました。
 
- 変更されたコマンド: 
- 修正リスト: 4D 20 R8 で修正されたバグのリストです(日本語版は こちら)。
動作の変更
- SELECT LOG FILEコマンドあるいは バックアップ設定 を使用してログファイルを変更したあと、- New log fileコマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。
- 新アーキテクチャ 導入の影響により、4D 20 R8 以降でビルドされたコンポーネントはそれ以前の4D リリースへとインストールすることはできません。
4D 20 R7
4D 20 R7 の新機能: 4D 20 R7 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- 時間型のリストボックスの列とヘッダーは、"blankIfNull" オプション をサポートするようになりました。
- .getBoxInfo()and- .getBoxList()に新しいプロパティが追加されました。
- コンポーネントマネージャーのインターフェースを使用してコンポーネントを追加および削除 できるようになりました。
- コンパイラー設定の新しい 直接型指定モード: コード内のすべての変数および引数を varと#DECLARE/Functionキーワードで宣言します (新規プロジェクトではこのモードのみサポートされます)。 これに伴い、シンタックスチェック機能 が強化されました。 これに伴い、シンタックスチェック機能 が強化されました。
- セッションシングルトン と、新しい .isSessionSingletonクラスプロパティをサポート。
- 新しいonHTTPGet関数キーワード を使用してHTTP REST GET requests 経由で呼び出し可能なシングルトンまたはORDA 関数を定義できるようになりました。
- 新しい 4D.OutgoingMessageクラスを使用してREST サーバーがあらゆるWeb コンテンツを返すようになりました。
- Qodly Studio: Qodly Studio デバッガーを 4D Server で有効化 できるようになりました。
- 4Dクライアントアプリケーション用の新しいアプリケーションビルド XMLキー: 接続時にサーバーから送信される証明書について、認証局の 署名 や ドメイン を検証するためのキーが追加されました。
- 埋め込みライセンスなしでスタンドアロンアプリケーションをビルドすること が可能になりました。
- 4Dランゲージ:
- 新コマンド: Process info、 Session info、 SET WINDOW DOCUMENT ICON
- 変更されたコマンド: Process activity、 Process number
- Deprecated commands (replacement): GET LAST ERROR STACK(Last errors),GET SERIAL INFORMATION(License info),PROCESS PROPERTIES(Process info),SET SCREEN DEPTH,C_XXXcommands (var and #DECLARE/Function declarations). 廃止予定のコマンドには "*O*" の接頭辞がつけられます。
 
- 4D Write Pro:
- 新コマンド: WP DELETE SECTION
- 変更されたコマンド: WP DELETE SUBSECTION および WP RESET ATTRIBUTES
 
- 修正リスト: 4D 20 R7 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- 4Dランゲージ よび 4D Write Pro ランゲージ のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。
- Fileコマンド (および- 4D.File.new()コマンド) は、引数として与えられた path のシンタックスをより厳しくチェックする様になりました。
- permission の利用可能なアクションから、describe アクションが削除されました。 /rest/$catalogURL へのアクセスは制御されなくなりました。 Session の describe 権限は今後は無視されます。
4D 20 R6
4D 20 R6 の新機能: 4D 20 R6 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- オブジェクト参照 と コレクション参照 を対象とした比較演算子をサポート。  collection.query()は、オブジェクト参照やコレクション参照をクエリの値 としてサポートするようになりました。collection.query()は、オブジェクト参照やコレクション参照をクエリの値 としてサポートするようになりました。
- 宣言された名前空間 をコンポーネントが持つ場合、そのクラスは cs.<namespace>.
- コンポーネントマネージャー: GitHub に保存されたコンポーネント のサポート。
- 新しい entitySelection.clean()関数と$cleanREST API が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。
- セッションの権限を確認し、デバッグを容易にするための新しい session.getPrivileges()関数と$info/privilegesREST API が追加されました。
- 4DCEFParameters.jsonファイル が新しく追加されました。これにより、4D埋め込みWebエリアをカスタマイズすることができます。
- 新しい HTTPAgent クラスと、HTTPRequest クラスの新しい agentプロパティ。
- サーバーから Qodlyのページの状態を監視するための新しい enableState()とdisableState()関数。
- 公開されたシングルトン関数を REST で呼び出すための新しい $singletonAPI と、それに伴う新しい 権限 が追加されました。
- プロジェクトを "強制ログイン" RESTモードにアップグレードするための 新しい設定ボタン が追加されました (On REST Authenticationデータベースメソッドは非推奨となりました)。
- 新しい設定タブ を使用して、警告の生成をグローバルに定義できます。
- 主に"4D 環境"テーマからのコマンドを含めたいくつかのコマンドがスレッドセーフになったとともに、SET DATABASE PARAMETER/Get database parameterコマンドのいくつかもセレクターもスレッドセーフとなりました。
- PDF/A3 ドキュメントから添付ファイルを抽出する PDF Get attachmentsコマンドを提供する新しい 4D-QPDF コンポーネント。
- 修正リスト: 4D 20 R6 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- フォーム内のスクロールチェーンをサポート: 埋め込まれたスクロール可能なオブジェクト (縦スクロールバー・横スクロールバー) がスクロール境界に達しても、マウスやトラックパッドを使用してユーザーがスクロールを続ける場合、親サブフォームは自動的にスクロールします (オーバースクロール)。
- $catalogREST API は、シングルトンを返すようになりました (あれば)。
4D 20 R5
4D 20 R5 の新機能: 4D 20 R5 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- 新しい コンポーネントマネージャー は、dependencies.jsonファイルを介してコンポーネントを管理します。
- Try...Catch...End tryエラー処理構文のサポート。
- QUICネットワークレイヤーは ブロードキャスト、SSO、および IPv6 に対応しました。
- 制限付エンティティセレクション をサポート。
- 共有クラス と シングルトンクラス をサポート。 新しいクラスプロパティ: .isShared,.isSingleton,.me.
- クラスプロパティを宣言の行において初期化すること がサポートされるようになりました。
- RESTリクエスト用の新しい 強制ログインモード と、Qodly Studio for 4D での専用サポート。
- 新しい $format RESTパラメーター。
- Sessionオブジェクトはリモートユーザーセッションおよびすトアドプロシージャーセッションにおいても利用可能になりました。
- 修正リスト: 4D 20 R5 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- 4D Internet Commands および 4D for OCI プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、4D製品ダウンロードポータル に接続する必要があります。
- ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など)  に加えた変更は、catalog_editor.jsonという個別ファイルに保存されるようになりました。このファイルはプロジェクトのSourcesフォルダー に保存されます。
4D 20 R4
4D 20 R4 の新機能: 4D 20 R4 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- TLS証明書の ECDSA暗号化形式 をサポート。
- クライアント/サーバーおよび SQLサーバーの TLS接続は、動的に設定 されるようになりました (証明書ファイルは必要ありません)。
- HTML への直接の ストラクチャー定義の書き出し をサポート。
- 実行エラーを防ぐため、コード入力、シンタックスチェック、およびコンパイルステップにおけるコード管理を強化する新しい コードライブチェッカー。
- #DECLAREプロトタイプ内で宣言されたメソッド引数は"Compiler_" メソッドでは不要になりました。
- 日付・時間のカスタムフォーマット をサポート
- 新しい Try(expression)キーワード で単純なエラーケースを処理できます。
- 新しいHTTP Parse messageコマンド。
- 新しい ノンブロッキング印刷 互換性オプション。
- データエクスプローラーの新しい 編集モード。
- 修正リスト: 4D 20 R4 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- 引数を宣言するための従来のシンタックス (例: C_TEXT($1)やvar $1 : Text) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。
- セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました (このブログ記事 を参照ください)。
- 更新された OpenSSL ライブラリ では、デフォルトの SSL/TLS セキュリティレベルが 1 から 2 に変更されました。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。 1024ビット以上2048ビット未満のRSA、DSA、DH鍵、および 160ビット以上224ビット未満の ECC鍵は使用できなくなりました。 デフォルトでは、以前の OpenSSLバージョンですでに TLS圧縮が無効にされていました。 セキュリティレベル2では、これを有効化できません。
- 4D ユーザーがbcrypt アルゴリズムを使用できる ようにするため、Open datastoreコマンドのconnectionInfo 引数内の"password" の値はデフォルトでは平文で送信されるようになりました。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数はFalse となります)と、Open datastoreのconnectionInfo の"tls" オプションにTrue を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます (Open datastoreコマンド参照)。
4D 20 R3
4D 20 R3 の新機能: 4D 20 R3 の新機能と拡張機能をすべてリストアップしたブログ記事です。
ハイライト
- 新しい collection.multiSort()関数を追加しました。
- Support of context parameter in Formula from string.
- 4D.WebSocket.new の connectionHandler パラメーターで headersプロパティをサポート。
- データ同期モジュールの実装に役立つ グローバル変更スタンプ。 新しい ds.getGlobalStampとds.setGlobalStamp関数が追加されました。
- ピクチャー/BLOB 属性にファイル参照を代入することが、ORDA でサポートされるようになりました。
- 宣言と同時に変数のデータ型と値を初期化 できるようになりました。
- ログファイルの設定は、カレントデータファイル とともに保存されるようになりました。
- 可変長引数を宣言するための新しいシンタックス
- 4D View Pro:ドキュメントの インポート および エクスポート で Blob形式をサポート。
- 修正リスト: 4D 20 R3 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- いくつかのエラーは、エラー処理メソッド によってインタプリタモードのみでキャッチ可能でした。 この問題の修正後、以下のエラーがコンパイルモードでも検出されるようになりました: 範囲外のインデックス、互換性のない型、Null ポインターの逆参照。 ただし、Intelプロセッサーでは、このようなエラーによって以前と同様に処理が中断されますが、Apple Siliconプロセッサーでは、ABORTコマンドを呼び出さない限り、処理は中断されません。
- 4D は内部的な PHPインタプリターを実装しなくなりました。 PHPコマンドを使用するには、別途PHPインタプリターをセットアップして実行する 必要があります。
4D 20 R2
4D 20 R2 の新機能: 4D 20 R2 の新機能と拡張機能をすべてリストアップしたブログ記事です。
セキュリティに関する注記
ハイライト
- 4D から WebSocketクライアント接続を作成および管理するための、新しい WebSocket クラス。
- 新しい QUICネットワークレイヤー インタフェース設定。
- 4D View Pro:ドキュメントの インポート および エクスポート で .sjs ファイル形式をサポート。
- 4D Write Pro インターフェース: 新しい 表ウィザード。
- 修正リスト: 4D 20 R2 で修正されたバグのリストです (日本語版はこちら)。
動作の変更
- 警告: 4D.FileHandle オブジェクトの offsetの開始値が誤って 0 ではなく 1 に設定されていました。 20.1 HF1 および 20 R2 のバージョンで 4D が修正され、この値が 0 になりました。 20.1 HF1 および 20 R2 のバージョンで 4D が修正され、この値が 0 になりました。
4D 20.x LTS
ライブラリの一覧
| ライブラリ | 現在のバージョン | 更新された 4D バージョン | 説明 | 
|---|---|---|---|
| BoringSSL | 9295969 | 20 R10 | QUIC に使用 | 
| CEF | 6778 | 20 R8 | Chromium 131 | 
| Hunspell | 1.7.2 | 20 | 4D フォームと 4D Write Pro でスペルチェックに使用されます。 | 
| ICU | 73.2 | 20 | このアップグレードにより、英数字とテキスト、オブジェクトのインデックスが自動的に再構築されます。 | 
| libldap | 2.6.7 | 20 R6 | |
| libsasl | 2.1.28 | 20 | |
| Liblsquic | 4.2.0 | 20 R10 | QUIC に使用 | 
| Libuv | 11.51.0 | 20 R10 | QUIC に使用 | 
| libZip | 1.9.2 | 20 | Zip クラス、4D Write Pro、svg および serverNet コンポーネントによって使用。 | 
| LZMA | 5.4.1 | 20 | |
| ngtcp2 | 1.13 | 20 R10 | QUIC に使用 | 
| OpenSSL | 3.3.2 | 20 R7 | デフォルトの TLS/SSL セキュリティレベルがアップグレードされました。 リリース v20R4 の動作の変更参照。 リリース v20R4 の動作の変更参照。 リリース v20R4 の動作の変更参照。 | 
| PDFWriter | 4.5.11 | 20 R3 | |
| PHP | 8.2.4 | 20 | |
| SpreadJS | 17.1.0 | 20 R7 | 新機能の概要については、このブログ記事 を参照ください。 | 
| webKit | WKWebView | 19 | |
| Zlib | 1.2.13 | 20 |