現在の選択項目とORDAを往復する

Deeplからの自動翻訳

ORDAは 4D v17の大きなイノベーションです。このため、私たちはブログ記事のシリーズ全体をORDAに捧げています。ORDAには、古典的なアプローチとは全く異なる独自のコンセプトがありますが、既存のコードにORDAを混ぜることは可能です。

簡単に言うと、このブログ記事では、エンティティ選択からテーブルの現在の選択を更新 する方法と、テーブルの現在の選択からエンティティ選択を取得 する方法を紹介します。これにより、既存の4DコードにORDAの 概念を段階的にスムーズに取り入れる ことができます。

例: エンティティ選択からカレント選択へ、またはその逆

はじめに

ORDAでは、データはデータストアという抽象化されたレイヤーを通してアクセスされます。データストアは、オブジェクトを通してデータベースとそのデータへのインターフェイスを提供するオブジェクトです。また、ORDAでは各テーブルはデータクラスとマッピングされていることに留意してください。

データクラスに関連するエンティティセレクションを作成したら、対応する[テーブル]の現在のセレクションを USE ENTITY SELECTION コマンドで更新できます。また、[Table]に現在の選択範囲があれば、対応するデータクラスに関連するエンティティ選択範囲を Create entity selectionコマンドで取得できます。

ORDAの 機能を理解するために、様々な用語や概念、そしてその定義をまとめた用語集を用意しました。

コード例

エンティティ選択からの現在の選択

以下のコードでは、$entitySelection エンティティの選択は、実際に対応する Employeeこのデータクラスは、実際には同じ名前の [Employee] テーブルに対応しています。コマンドは、テーブルの現在の選択を更新します。 USE ENTITY SELECTIONコマンドは、それに応じてテーブルの現在の選択を更新します。

C_OBJECT($entitySelection)
$entitySelection :=ds.Employee.query("lastName=:1"; "R@")
// The current selection of the [Employee] table is replaced according to the content of $entitySelection
USE ENTITY SELECTION ($entitySelection)
//... Go on with your classic 4D code ...
PRINT SELECTION ([Employee])
//...

現在の選択範囲からエンティティを選択

ここでは、[Employee] テーブルに対してクエリを実行した後、現在の選択範囲が更新されています。コマンドは Create entity selection() コマンドは、$entitySelection エンティティセレクションを作成します。作成されたエンティティ選択は、[Employee] テーブルに関連しています。 Employee dataclass.

C_OBJECT($entitySelection)
// The current selection of the [Employee] table is updated after the query
QUERY ([Employee])
// $entitySelection is created from the current selection of the [Employee] table
$entitySelection :=Create entity selection([Employee])

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