Geschäftsobjekte
Es ist unstrittig, dass die benötigten Geschäftsobjekte (Entitäten) in allen oben skizzierten Bereichen zur Verfügung stehen müssen.

Zu erwarten ist auch, dass die Anforderungen an ein Geschäftsobjekt am Client andere sind als auf dem Server. Darüber hinaus besteht die Anforderung, jedes Geschäftsobjekt in der Datenbank ablegen zu können.

Erste Implementierungen zeigten, dass pro Entität ca. 2500 Zeilen Quellcode zu schreiben sind. Hinzu kommt die Definition von Meta-Informationen pro Entität. Da pro zu entwickelnder Applikation mit mindestens 30 Entitäten zu rechnen ist, würde dies bedeuten, dass pro Applikation ca. 75.000 Zeilen Quellcode alleine für die Entitäten geschrieben werden müsste. Daher musste ein Weg gefunden werden, um diesen Schritt zu automatisieren.
Diesen Weg stellt der Entitäten-Generator des x4:frameworks dar. Dieser sorgt für die Generierung aller benötigten Klassen und Dateien. Grundlage für den Generationsprozess ist einzig die Definition der Entitäten in Form einer so genannten x4e-Datei.
<entity id="CrmAddress">
<nature>
<name>KeepDeleted</name>
</nature>
<property type="String" name="street" length="100" init="" />
<property type="String" name="streetNumber" length="10" init="" />
<property type="String" name="zipCode" length="10" init="" />
<property type="String" name="city" length="100" init="" />
<property type="String" name="federalState" length="100" init="" />
<property type="String" name="state" length="100" init="" />
<property type="String" name="additional" length="250" init="" />
<property type="String" name="type" length="100" init="" />
</entity>
<entity id="CrmAddressType">
<nature>
<name>KeepDeleted</name>
</nature>
<property type="String" name="name" length="100" init="" />
</entity>
Das Beispiel zeigt die Definition zweier Entitäten und deren Beziehung untereinander. Wird diese Definition an den Generator übergeben, so erzeugt dieser daraus die oben genannten benötigten Quellcode-Dateien und die Meta-Informationen.