生成されたコードの変更

生成される出力のコードのブロックは、BEGIN で始まり END で終了する EGL コメントで区切られます。例えば、次のようになります。
		/*
     * この関数は、指定されたレコードが有効である場合に true を返します。
     * 必要に応じてカスタマイズし、検査規則を指定します。
     * isValid() は、データベースの行を更新または挿入する前に呼び出されます。
     */
	//BEGIN IsValid
	// @generated - 変更されたコードを保持するために generated タグを削除
	Function IsValid(testRecord Employee) returns( boolean )
		return( true );
	end
	//END IsValid

BEGIN と END タグ間のコードを変更できます。ただし、既存の関数をカスタマイズする場合は、慎重に行ってください。

UML モデルを再変換する場合に、変更内容を保持するには、@generated タグを含むコメント行を削除します。既存の BEGIN および END タグによって区切られた領域外に追加されたコードは、変換中に失われます。 変更したコードに BEGIN および END タグを追加するだけでは、確実な保持を行う上で十分ではありません。

既存の関数を変更すると、関数が適切に機能しなくなる場合があります。 変換による生成物を変更するようにライブラリー関数および UML モデルまたは変換パラメーターを変更する場合、更新後の変換出力を使用して、変更したコードを調整する必要もあります。

また、以下の変更の影響を考慮する必要があります。

カスケード削除の考慮事項

生成される削除関数はカスケードを行いません。 関数がビジネス・ニーズを満たすようにするには、以下を行います。
  • サンプル DDL を検査し、DBMS により強制されるカスケード指示を追加します。
  • 生成される削除関数を検査し、必要に応じてカスケードを処理するコードを追加します。
  • 生成されるカスケードは存在しないため、UI のユーザーは、外部キー制約に違反する方法で削除が実行されないようにする必要があります。 これらの制約に違反する方法で削除を実行しようとすると、失敗します。
  • 行が削除される場合、多対多の関連により生成される関連表の行は削除されません。 作業基準に従って、この動作を行うコードを追加する必要があります。

データベース・キーの考慮事項

既存のデータベースと UML モデルでは、変換時のデータベー ス・キーの処理方法が異なります。

ユーザー・インターフェースの考慮事項

検索可能なデータベース要素、および検索の結果として表示される要素に関連するデータを、変換パラメーターの一部として指定できます。 検索および要約のフィールドを含むインターフェース・ページを作成する場合、以下を考慮する必要があります。
  • 検索フィールド
    • BLOB および CLOB EGL 型などのラージ・オブジェクトは検索可能と して指定できません。 データベース・フィールド属性がラージ・オブジェクト型である場合、検索可能属性は無視されます。
    • 検索可能パラメーターを指定しない場合、キー列が検索可能になります。
  • 要約フィールド

    要約に含める対象を指定しない場合、デフォルトでは、検索結果の要約にすべての列が表示されます。

コミット点の考慮事項

EGL コミット点は、操作中のどの時点でデータがデータベースに保存されるかを識別します。 生成されるデータ・アクセス・ルーチンには、明示的なコミット点は含まれません。実行単位に基づいて、暗黙的コミットおよびロールバックの一般的な EGL 動作が使用されます。 ビジネス・ニーズがデフォルトの内容と異なる場合、ビジネス・ニーズを満たす明示的なコミット点を追加する必要があります。

ページ付き検索結果の考慮事項

ページ制御関数は、生成されるデータ・アクセス・ライブラリーに組み込まれます。 これにより、生成される JSP は、効率的な方法 で、検索結果にページ付けできます。 ターゲット・データベース管理システム (DBMS) が以下の EGL ステートメントをサポートしない場合、リスト・ページ JSP を使用する前にこの関数を変更する必要があります。
  • OPEN <resultSet> SCROLL
  • GET ABSOLUTE
  • GET RELATIVE

また、一部の DBMS では、LONG VARCHAR または LOB 列を含む対象を選択する際にスクロール可能カーソルを使用できません。この場合、リスト・ページ JSP を使用する前に、ページング関数を変更する必要があります。


フィードバック