ORDAデータモデルクラス
関数のスコープと実行コンテキスト
クライアント/サーバモードでは、デフォルトでは、関数はサーバ上で実行されます。新しいキーワードであるlocalのおかげで、いくつかの関数をクライアントで実行することを選択できるようになりました。また、新しいキーワードであるexposed によって、どの関数を REST クライアントの API として公開するか (または公開しないか) を選択することができます。
共有可能なエンティティ選択
時には、エンティティセレクションを他のプロセスと共有したり、全てのプロセスで利用できるようにしたい場合があります。たとえば、期限切れの請求書をすべて検索し、エンドユーザーがその一部(またはすべて)を選択できるようにし、支払いの督促メールを送信するという複雑なクエリを実行する場合を考えてみましょう。メールの送信は、ユーザーをブロックしないようにするために、別のプロセスで行うのが最適です。他のプロセスに渡す主キーのリストを作成する代わりに、共有エンティティの選択を直接他のプロセスに渡すことができます。共有エンティティセレクションは、ストレージオブジェクトにアタッチして、全プロセスで共有することもできます。
一言で言えば、エンティティセレクションは共有可能か非共有可能かです。
- 共有可能なエンティティセレクションは、共有オブジェクトまたは共有コレクションに格納でき、複数のプロセスまたはワーカー間で共有できます。この場合、新しいエンティティを追加することはできません。共有可能なエンティティセレクションにエンティティを追加しようとすると、エラーが発生します。
- 非共有型エンティティセレクションは、プロセス間で共有したり、共有オブジェクトやコレクションに保存したりすることはできません。共有可能でないエンティティセレクションを共有オブジェクトやコレクションに格納しようとすると、エラーが発生します。ただし、非共有型エンティティセレクションは、新しいエンティティの追加を受け付けます。
フォームエディタ
フォームエディタでのCSSプレビュー
フォームエディタで、最終的な CSS レンダリングをプレビューできるようになりました。ツールバーに新しいアイコンが追加され、CSS レンダリングの有無や、Mac や Windows での特定の CSS レンダリングでの見え方を確認することができるようになりました。CSS モードでのプロパティの上書きについては、新しいシールドタイプ (Object Method や Entry Order のシールドに類似) が Form エディタに表示されます。これにより、どのオブジェクトが CSS によって影響を受けるかを簡単に確認することができます。
マクロ
フォームエディターでマクロが使えるようになりました。フォームマクロを使うと、以下のことができます。
- 1つまたは複数のオブジェクトのプロパティを変更、削除、追加する。
- 1つまたは複数のフォームオブジェクトとそれに関連するメソッドを追加または削除します。
- エディタでのフォームオブジェクトの選択と非選択
- モーダルダイアログを表示し、その場でパラメータを入力する
- フォームオブジェクトの理想的な位置を計算し、移動する
- フォームオブジェクトからCSSクラスを作成し、テンプレートとして使用する
- フォーム内の画像パスが有効であることを確認する
- ディスク上のファイルを検索する代わりに、CSSエディタでCSSファイルを開くことができる
- XLIFFの参照先がXLIFFファイル内で対応しているかどうかを確認する
- などなど、盛りだくさんです。
フォームマクロは、コンテクストメニューから利用できます。ホストデータベースマクロが最初に表示され、その後にコンポーネントマクロが表示されます。マクロを実行するには、メニュー項目をクリックするだけです。フォームマクロを作成するには、プロジェクトのSourcesフォルダの最初の階層にあるformMacros.jsonファイルにマクロを宣言するだけでよいのです。
フォームエディタを開く新しいコマンド
フォームエディタでフォームを開く新しい4Dコマンドが利用可能になりました。これは、特に解析やイントロスペクションのツールに便利です。新しいコマンドの名称はFORM EDITです。
iOS版4D
ディープリンク
ディープリンクは、URLを共有することができます。URLをクリックすると、4D for iOSアプリの特定のレコードを直接開くことができます。プッシュ通知と組み合わせて、営業担当者に新しい見積もりを知らせたり、保険代理店に新しい案件を知らせたりすることができます。ワンクリックでアプリが開き、該当するレコードが表示されます。
最適化されたデータ同期
4D for iOSのデータ同期プロセスが最適化され、データ同期が最大25倍速くなりました。
プログラミング関連機能
関数やメソッドのパラメータの命名
中間変数を経由する必要がなく、関数やメソッドを宣言する際に、パラメータや結果に名前を付けることができるようになりました。
- プロジェクトメソッドを宣言する際に、パラメータと結果に名前を付けることができます。
- トリガー
- データベースメソッド
- フォームメソッド。
- クラスのコンストラクタ
- クラス関数。
リモートデバッガ
この機能により、サーバーコードをデバッグする場所を決めることができます(クライアントサイドまたはサーバーサイド)。
デバッガのアタッチメントを管理するために、2つの新しいメニュー項目が追加されました(両側とも)。
- デバッガーをアタッチ / デタッチ。クライアントまたはサーバーにデバッガーを即座にアタッチまたはデタッチします。
- 起動時にデバッガーをアタッチする。クライアントまたはサーバーの起動時にデバッガーをアタッチします。
デバッガは、一度に1つの4Dインスタンスにしかアタッチできないことに注意してください。例えば、デバッガーをクライアントからデタッチせずに、サーバにアタッチしようとすると、デバッガーの所有者に関する情報を含むエラーメッセージが表示されます。
また、デバッガーやエラーウィンドウがサーバーからのものかクライアントからのものかを区別しやすくするために、これらのウィンドウの外観を変更しました。
デプロイメント関連機能
マージされた4Dサーバーの4Dキャッシュフォルダをカスタマイズする
異なる4Dバージョンで構築されたマージサーバーアプリケーションをホストするマシンの場合、共有された4D構造フォルダーに起因する問題が発生する可能性があります。異なる4Dバージョンでビルドされたマージサーバーアプリケーション間で、このシステムフォルダーを共有しないようにするために、新しいbuildAppキーでビルドアプリケーションプロセス中にフォルダー名を定義して、独自の構造フォルダーを設定することができるようになりました。
マージされた4Dクライアントの4Dキャッシュフォルダをカスタマイズする
リモートアプリケーションを複数のサーバーに接続すると、システム内に大きなローカルリソースフォルダを取得することになり、時間、容量、ネットワークを消費することがあります。ローカルリソースフォルダを共有するための新しいbuildAppキーで、全ての同一サーバー間で同じローカルリソースフォルダを共有することができるようになりました。
最初のエラーで中断することなくジャーナルを統合する
4D Serverを実稼働させる場合、管理者を必要とせず、すべてが完全に自動化される必要があります。特に、自動更新やヘッドレスモードでの運用は重要です。停電やクラッシュの後、ジャーナルに小さなエラーがあると、自動的に再起動する4D Serverが停止することがあります。新しいオプションにより、重要でないエラーメッセージを抑制することができ、システムのダウンタイムを低減することができます。
メール(IMAP)
メールの検索とダウンロード
検索では、未読のメールや過去4週間以内の特定の人からのメールなど、条件に基づいてメッセージのリストを取得することができます。このコマンドは、メール ID のコレクションを返し、新しいgetMailsメソッドで直接使用して、それらをダウンロードすることができます。
メールのコピー、移動、削除
IMAPトランスポーターに、copy()、move()、delete()の3つの新しい関数が追加されました。
リストボックス
型先行処理の改善
通常、リストボックスは、編集モードのキーストローク・イベントのみを受け取ります。しかし、これでは、ユーザーがキーボードを使用していて、入力不可能なリストボックスを使用しているときに、自動的にリストをフィルタリングしたり、エントリを選択するために使用することができません。
現在、リストボックスにフォーカスがあり、キーが入力されると、たとえセルにデータが入力されていなくても、On before Keystrokeイベントが生成されます。これにより、4Dはどのキーが押されたかを知ることができ、新しい検索を開始したり、現在の選択範囲を変更するなどの決定を(プログラミングによって)行うことが可能になります。
新しいIs editing textコマンドは、On before keystrokeイベントが発生したときに、進行中の入力があるかどうかを判断するのに役立つように追加されました。例えば、リストボックスを編集可能な状態にし、タイプアヘッド機能をサポートします。On before keystrokeおよびOn after keystrokeイベントは、é、ä、アジア文字などのダイアクリティカルを選択するためのシステムヘルプダイアログをサポートするようになりました。このイベントは、エンドユーザーが最後の文字を選択するまで遅延されます。このイベントを自分で処理する必要はありません。
4Dライトプロ
小数点以下のタブの文字選択
様々なソースからのドキュメントがある場合、数字があなたのニーズに合わせて正しくフォーマットされていない可能性があります。4D Write Proでは、この設定をドキュメントごとに指定することができます。数字の配置は、次のいずれかを選択できます。
- ポイント
- カンマ
- ポイント、カンマ、最初に見つかったセパレータ(ポイントまたはカンマ)。
- または、オペレーティングシステムで定義されたセパレータです。
特にMS Wordとの互換性を高めるため、新規作成時にはデフォルトで3番のオプションが使用されます。4D Writeドキュメントを4D Write Proに移行する場合、システムで定義されたセパレータがデフォルトで使用されます。
ソフトハイフンの管理
ソフトハイフンの挿入は、新しい標準アクションと4D Write Proインターフェイスウィジェットの新しいボタンによって、簡単になりました。
2つの新しい標準アクションが利用可能です。
- insertSoftHyphen
- removeSoftHyphens
この機能は、4D Write Proインターフェイスウィジェットのツールバーウィジェットとサイドバーウィジェットにも追加されました。
表示するページを選択する
4Dは、コレクションで言及されたページのみを、コレクションの順番で表示します。これにより、エンドユーザーにとってよりシンプルになるように、機能セットを減らすことができます。スタイルオプションだけが必要な場合は、他の機能を全て表示しない方が良いのです。4D Write Proウィジェットでは、新しいWP ShowTabPagesコンポーネントメソッドにより、表示するページを選択することができます。メソッドを呼び出すときに、ウィジェット名と表示するページのコレクションを渡すだけです。
4Dビュープロ
スプレッドシートの4Dフォーミュラ
VP SET CUSTOM FUNCTIONSコマンドを使えば、4D View Proでカスタム関数を作成し、4D計算式を実行することができます。4D View Proで単純な変数を使用するためのメソッドを作成する必要はなく、数式にパラメータとして渡すだけです。さらに、このコマンドは、ヘルプテキストとパラメータ名を提供することで、エンドユーザーのタイプアヘッドを簡素化します。大きな構造物では、このコマンドは、一般的なSET FIELD TITLESコマンドを使用するよりもはるかに高速になります。