Codeblöcke in der generierten Ausgabe werden von EGL-Kommentaren begrenzt, die bei BEGIN starten und bei END enden. Beispiel:
/*
* This function returns true if the supplied record is valid.
* Customize to supply validation rules as needed.
* isValid() is called prior to updating or inserting a row into the database.
*/
//BEGIN IsValid
// @generated - Delete generated tag to preserve modified code
Function IsValid(testRecord Employee) returns( boolean )
return(true);
end
//END IsValid
Sie können den Code zwischen den Tags BEGIN und END ändern. Gehen Sie jedoch vorsichtig vor, wenn Sie vorhandene Funktionen anpassen.
Um Ihre Änderungen bei beim erneuten Umwandeln des UML-Modells beizubehalten, löschen Sie die Kommentarzeile, die das Tag "@generated" enthält.
Code, der außerhalb des von den Tags BEGIN und END begrenzten Bereichs steht, ist nach der Umwandlung nicht mehr vorhanden. Ein Hinzufügen der Tags BEGIN und END zu einem geänderten Code reicht noch nicht aus, damit er beibehalten wird.
Wenn Sie eine vorhandene Funktion ändern, funktioniert sie später möglicherweise nicht mehr. Wenn Sie eine Bibliotheksfunktion und das UML-Modell oder die Umwandlungsparameter so ändern, dass das Ergebnis der Umwandlung geändert wird, müssen Sie auch den geänderten Code mit der aktualisierten Umwandlungsausgabe abstimmen.
Darüber hinaus müssen Sie die Verzweigungen der folgenden Änderungen berücksichtigen:
- Löschen von Code
- Schlüssel
- Benutzerschnittstellen
- Festschreibungspunkte
- Seitenweise abgerufene Suchergebnisse
Hinweise zu kaskadierende Löschoperationen
Die generierten Löschfunktionen kaskadieren nicht. Gehen Sie wie folgt vor, um sicherzustellen, dass die Funktionen Ihre Geschäftsanforderungen erfüllen:
- Überprüfen Sie die Beispiel-DDL und alle kaskadierenden Anweisungen, die durch das Datenbankmanagementsystem (DBMS) erzwungen werden.
- Überprüfen Sie die generierten Löschfunktionen und fügen Sie Code hinzu, um die Kaskadierungen wie gewünscht zu bearbeiten.
- Da es keine generierte Kaskadierung gibt, müssen Benutzer der Benutzerschnittstelle sicherstellen, dass Löschoperationen so ausgeführt werden, dass keine Integritätsbedingungen über Fremdschlüssel verletzt werden. Versuche, einen Löschvorgang durchzuführen, die diese Bedingungen verletzten, schlagen fehl.
- Zeilen von zugehörigen Tabellen, die von vielen Beziehungen generiert wurden, werden beim Löschen einer Zeile nicht gelöscht. Der Code muss hinzugefügt werden, um dieses Verhalten gemäß den Geschäftsstandards zu erzeugen.
Hinweise für Datenbankschlüssel
Datenbankschlüssel werden unterschiedlich bearbeitet, wenn eine vorhandene Datenbank oder ein UML-Modell vorhanden ist.
- Beim Umwandeln eines UML-Modells können Umwandlungsparameter zu Klassenattributen hinzugefügt werden, um anzugeben, ob das Attribut eine Schlüsselspalte darstellt. Da es beim Umwandeln eines UML-Modells keine Datenbankverbindung gibt, ist der Wert für die Schlüsselspalte nicht bekannt.
Wenn der Schlüssel nicht angegeben ist, wird die Schlüsselspalte mit dem Typ INTEGER in die generierten Tabellendefinitionen und entsprechenden SQLRecords eingeben. Eine Schlüsselspalte ist erforderlich.
- Beim Umwandeln eines Datenbankschemas wird die Schlüsselspalte mit den Werten des Datenbankschemas erstellt. Wenn die Datenbank keine Schlüsselspalte enthält, wird kein Standard erstellt. Wenn weder in der Tabellendefinition noch über den Assistenten ein Schlüssel angegeben wurde, funktionieren die generierten Bibliotheken nicht ordnungsgemäß. In diesem Fall müssen Sie Code für die EGL-Datenzugriffsfunktionen hinzufügen, damit diese Funktionen korrekt funktionieren.
Hinweise zur Benutzerschnittstelle
Sie können Datenbankelemente angeben, die durchsuchbar sind, und die Daten zum Element, das in den Suchergebnissen als Teil der Umwandlungsparameter angezeigt wird. Wenn Sie Schnittstellenseiten erstellen, die Such- und Zusammenfassungsfelder enthalten, müssen Sie Folgendes berücksichtigen:
Hinweise für Festschreibungspunkte
EGL-Festschreibungspunkte identifizieren, ab welchem Punkt die Daten während einer Operation in die Datenbank gespeichert werden. Die generierten Datenzugriffsroutinen enthalten keine expliziten Festschreibungspunkte. Es wird das allgemeine EGL-Verhalten für implizite Commit- und Rollback-Operationen auf der Basis der Ausführungseinheit verwendet. Wenn Ihre Geschäftsanforderungen von den Standardanforderungen abweichen, müssen Sie explizite Festschreibungspunkte hinzufügen, um Ihre Geschäftsanforderungen zu erfüllen.
Hinweise zu seitenweise abgerufene Suchergebnisse
Die generierten Datenzugriffsbibliotheken enthalten Seitensteuerungsfunktionen.
Dadurch können die generierten JSPs die Suchergebnisse seitenweise effizient durchblättern. Wenn das Zieldatenbankmanagementsystem (DBMS) die folgenden EGL-Anweisungen nicht unterstützt, müssen Sie diese Funktion bearbeiten, bevor Sie die Listenseiten-JSP verwenden können:
- OPEN <resultSet> SCROLL
- GET ABSOLUTE
- GET RELATIVE
Darüber hinaus unterstützen einige DBMS die Verwendung von verschiebbaren Cursors bei Auswahlen nicht, die LONG VARCHAR oder LOB-Spalten enthalten. Wenn dies der Fall ist, müssen Sie die Blätterfunktion vor der Verwendung der Listenseiten-JSP bearbeiten.