생성된 코드 수정

생성된 출력의 코드 블록은 BEGIN으로 시작하고 END로 끝나는 EGL 주석으로 구분됩니다. 예:
		/*
     * 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

BEGIN 및 END 태그 사이의 코드를 수정할 수 있습니다. 하지만 기존 함수를 사용자 정의할 때 주의하십시오.

UML 모델을 다시 변환하는 경우에 대비하여 수정사항을 유지하려면 @generated 태그가 포함된 주석 행을 삭제하십시오. 기존 BEGIN 및 END 태그로 구분되는 영역 외부에 추가된 코드는 변환 중에 유실됩니다. 수정된 코드에 BEGIN 및 END 태그를 추가하는 것만으로는 확실히 유지하기에 부족합니다.

기존 함수를 수정하면 함수가 올바르게 작동되지 않을 수 있습니다. 변환으로 생성된 사항을 변경하도록 라이브러리 함수 및 UML 모델 또는 변환 매개변수를 수정하는 경우 수정된 코드와 업데이트된 변환 출력도 일치시켜야 합니다.

또한 다음 변경의 영향을 고려해야 합니다.
  • 코드 삭제
  • 사용자 인터페이스
  • 커미트 시점
  • 페이지된 검색 결과

계단식 삭제에 대한 고려사항

생성된 삭제 함수는 계단식으로 수행되지 않습니다. 함수가 비즈니스 요구사항을 충족하는지 확인하려면 다음을 수행하십시오.
  • 샘플 DDL을 검사하고 DBMS로 강제 실행되는 계단식 지시사항을 추가하십시오.
  • 생성된 삭제 함수를 검사하고 필요한 대로 코드를 추가하여 계단식 조건을 처리하십시오.
  • 생성된 계단식 조건이 없으므로 UI 사용자는 외부 키 제한사항을 위반하는 방식으로 삭제가 수행되지 않는지 확인해야 합니다. 이러한 제한사항을 위반하여 삭제를 수행하려는 시도는 실패합니다.
  • 행이 삭제될 때 다대다 연관으로 생성된 연관 테이블의 행은 삭제되지 않습니다. 매장 표준에 일치하도록 이 동작을 생성하는 코드가 추가되어야 합니다.

데이터베이스 키에 대한 고려사항

기존 데이터베이스 또는 UML 모델을 변환할 때 데이터베이스 키는 다르게 처리됩니다.

  • UML 모델에서 변환하는 경우 클래스 속성에 변환 매개변수를 추가하여 속성이 키 열을 나타내는지 여부를 표시할 수 있습니다. UML 모델을 변환할 때 데이터베이스 연결이 없으므로 키 열의 값이 인식되지 않습니다. 키가 지정되지 않으면 INTEGER 유형의 키 열이 생성된 테이블 정의 및 해당 SqlRecord에 삽입됩니다. 키 열은 필수입니다.
  • 데이터베이스 스키마에서 변환하는 경우 데이터베이스 스키마 값을 사용하여 키 열이 작성됩니다. 데이터베이스에 키 열이 없는 경우 기본값이 작성되지 않습니다. 테이블 정의에서, 또는 마법사를 통해 키가 지정되지 않으면 생성되는 라이브러리는 올바르게 기능하지 않습니다. 이 경우 EGL 데이터 액세스 함수가 올바르게 작동하려면 코드를 추가해야 합니다.

사용자 인터페이스에 대한 고려사항

검색 가능한 데이터베이스 요소 및 변환 매개변수의 일부로 검색 결과에 표시되는 요소와 관련된 데이터를 지정할 수 있습니다. 검색 및 요약 필드가 포함된 인터페이스 페이지를 작성하는 경우 다음 사항을 고려해야 합니다.
  • 검색 필드
    • 대형 오브젝트 유형(예: BLOB 및 CLOB EGL)을 검색 가능으로 지정할 수 없습니다. 데이터베이스 필드 속성이 대형 오브젝트 유형인 경우 검색 가능 속성이 무시됩니다.
    • 검색 가능한 매개변수가 지정되지 않으면 키 열을 검색할 수 있게 됩니다.
  • 요약 필드

    요약에 포함되는 사항이 지정되지 않으면 검색 결과 요약의 모든 열에 대해 기본값이 표시됩니다.

커미트 시점에 대한 고려사항

EGL 커미트 시점은 조작 중에 데이터가 데이터베이스에 저장되는 시점을 식별합니다. 생성된 데이터 액세스 루틴에는 명시적 커미트 시점이 없습니다. 실행 단위를 기반으로 하는 암시적 커미트 및 롤백에 대한 일반적인 EGL 동작이 사용됩니다. 비즈니스 요구사항이 기본값과 다른 경우 비즈니스 요구사항을 충족하는 명시적 커미트 시점을 추가해야 합니다.

페이지된 검색 결과에 대한 고려사항

생성된 데이터베이스 액세스 라이브러리에는 페이지 제어 함수가 있습니다. 생성된 JSP는 이 함수를 사용하여 효율적인 방식으로 검색 결과 전체에 페이지를 지정할 수 있습니다. 대상 DBMS(Database Management System)이 다음 EGL 명령문을 지원하지 않는 경우 목록 페이지 JSP를 사용하기 전에 이 함수를 수정해야 합니다.
  • OPEN <resultSet> SCROLL
  • GET ABSOLUTE
  • GET RELATIVE

또한 일부 DBMS는 LONG VARCHAR 또는 LOB 열이 포함된 선택에서 스크롤 가능한 커서 사용을 지원하지 않습니다. 이 경우에 해당하면 목록 페이지 JSP를 사용하기 전에 페이징 함수를 수정해야 합니다.


피드백