ORDA: エンティティセレクション関数のニュース

Deeplからの自動翻訳

ORDAに関して言えば、4D v18 R3は朗報に満ちています!新しいメンバーメソッドは、あなたのコーディング体験をさらに向上させるために、自由に使うことができます。

まず、エンティティセレクションからのデータ抽出が大幅に強化され、エンティティセレクションのデータで完全にカスタマイズされたコレクションを構築 することが可能になりました。

さらに、エンティティ選択に対して、そのデータを直ちにサーバーから リフレッシュする必要があることを示す方法を提供し、キャッシュされたデータを無効にします。

詳細について知りたいですか?読み進めてください。必要なことはすべて以下に書いてあります。

エンティティ選択からデータを抽出する

新しい extract()member メソッドは、エンティティセレクション時に利用できます。

エンティティ選択からカスタマイズされたコレクションを構築できるようになりました!

例 1

この extract()member メソッドでは、抽出したいデータ・クラス属性とその名前を結果のコレクションで指定できます。

このシンプルなデータベースがあるとします。

$mailing 特定のプロパティ名を持つオブジェクトのコレクションを構築します。受信者”、”都市”、”郵便番号”。

C_COLLECTION($mailing)
$mailing :=ds.Interns.all().extract("lastname"; "recipient";\
"employer.city"; "city";\
"employer.zipCode"; "zipCode")

そして、出来上がったのがこちら

$mailing コレクションです。

[
{recipient:Hodge,city:Blakeslee,zipCode:18610},
{recipient:Metzler,city:Medfield,zipCode:02052},
{recipient:Broyles,city:Madison,zipCode:13402}
]

例 2

関連するエンティティであるデータ・クラス属性は、エンティティの コレクションとして抽出できることに注意。

考えられるユースケースは、異なるデータクラスからのエンティティのコレクションを処理することです。

以下の例では、Company および School データクラスからのエンティティを含むForm.partners コレクションを構築しています。

blank

 

C_COLLECTION// $schools is a collection of entities of School dataclass ($companies;$schools)

// $companies is a collection of entities of Company dataclass
$companies :=ds.Interns.all().extract("employer")

$schools :=ds.Interns.all()extract ("school")

Form partners :=$companies.concat($schools) // Form.partners is a collection

 

これで、Form.partners のコレクションをリストボックスに表示する準備が整いました!blank

のドキュメントを確認してください。 refresh()および extract()メンバー・メソッドのドキュメントを参照してください。

エンティティセレクションをリフレッシュする

新しい refresh()メンバ・メソッドは、エンティティセレクションで使用できます。これは、ORDAキャッシュ内のエンティティ選択データを無効にして、次にそのデータを使用するときにサーバーからの更新をトリガーするようにします。

デフォルトでは、ORDAキャッシュは30秒後に失効します。 refresh()メンバーメソッドを使用してください。

Form.invoices のエンティティ選択のいくつかの属性をリストボックスに表示し、ある時間に、他のクライアントがそれらのエンティティ選択属性に対して行った更新を表示したいとします。簡単!ただ refresh()member メソッドを使うだけです。

Forminvoices. refresh() // The Form.invoices entity selection displayed data will be refreshed from the server

 

Avatar
- プロダクトオーナー - Marie-Sophie Landrieu-Yvertは、2017年にプロダクトオーナーとして4Dプロダクトチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。彼女は1995年にESIGELEC Engineering Schoolを卒業し、IBMでエンジニアとしてのキャリアをスタートさせました。様々なプロジェクト(保守や新規のプロジェクト)に参加し、Cobolのデベロッパーとして働きました。その後、UMLデザイナーおよびJavaデベロッパーとして勤務。最近は、機能要件の分析・記述、ビジネスチームと開発チームの調整などを主に担当しています。