
EML은 비즈니스 오브젝트의 데이터를 조작하는 데 사용할 수 있는 명령문으로 구성됩니다. READ ENTITIES 문을 사용하여 데이터를 읽습니다. 그 밖의 모든 연산에서는 UPDATE, CREATE 또는 DELETE 추가 요소와 함께 MODIFY ENTITIES 문을 사용합니다.
노트
비즈니스 오브젝트 인터페이스의 동작 정의에 해당 use create, use update 또는 use delete 지시가 포함된 경우에만 CREATE, UPDATE, DELETE 작업을 사용할 수 있습니다. 금지된 작업을 사용하려고 하면 구문 오류가 발생합니다.

비즈니스 오브젝트에서 데이터를 읽으려면 READ ENTITIES 문을 사용합니다. 명령문에는 두 가지 중요한 매개변수가 있습니다. 하나는 읽으려는 데이터 키가 포함된 내부 테이블이고 다른 하나는 쿼리 결과를 포함하고 있습니다.
이러한 내부 테이블에는 파생 동작 정의 유형이라고 하는 특수한 데이터 유형이 있습니다. 개발자가 동작 정의를 생성하고 비즈니스 오브젝트의 일부 또는 모든 필드와 함께 시스템에서 특정 요청을 처리하는 방법을 제어하는 추가 필드가 포함되면 시스템에서 자동으로 이를 생성합니다. DATA 문에서 새로운 추가 요소 TYPE TABLE FOR <operation>을(를) 사용하여 내부 테이블을 선언한다.

유형 TABLE FOR READ IMPORT에는 비즈니스 오브젝트의 키 필드 또는 필드가 포함되어 있다. %control 구조는 현재 작업에서 실제로 사용되는 비즈니스 오브젝트의 필드를 나타내는 생성된 구조입니다. 이 예에서는 구조가 자동으로 입력되므로 걱정할 필요가 없습니다.
유형TABLE FOR READ RESULT에는 비즈니스 오브젝트의 모든 필드가 포함됩니다. 이 테이블에는 Read 문이 실행된 후 결과 세트가 포함됩니다.

읽기 임포트 테이블에는 비즈니스 오브젝트의 각 키 필드(이 경우 agencyID)에 대한 열이 포함되어 있습니다. 특정 대행업체를 읽으려면 해당 키가 포함된 내부 테이블에 행을 추가합니다. 키 필드 또는 필드 외에 테이블에 %is_draft 열과 %control 열이 포함되어 있습니다. %is_draft를 사용하여 드래프트 데이터를 읽을지 아니면 활성 데이터를 읽을지 지정할 수 있습니다. %control 구조는 읽을 필드를 지정하는 데 사용됩니다.
노트
예시에서는 활성 데이터만 읽고 추가 요소 FIELDS 뒤의 필드 리스트를 기반으로 프레임워크에서 %control 구조를 채웁니다.

비즈니스 오브젝트를 처리할 때는 먼저 READ ENTITIES OF 또는 MODIFY ENTITIES OF 문을 사용하여 동작 정의의 이름을 지정해야 합니다. 이어서 키워드 ENTITY와 작업하려는 엔티티의 이름이 옵니다. 엔티티에 별칭 이름이 있는 경우 여기에서 사용해야 합니다.
노트
추가 요소 OF 뒤에 별칭 이름을 사용할 수 없습니다. 이는 기술적으로는 엔티티의 이름이 아니라 이 시점에 동작 정의 이름을 지정하기 때문입니다.

READ ENTITIES 문은 WITH 추가 요소에서 전달하는 키에 따라 비즈니스 오브젝트 데이터를 읽습니다. RESULT 추가 요소의 내부 테이블에 결과를 반환합니다. 명령문에서 필요한 비즈니스 오브젝트의 필드를 지정할 수도 있습니다. 이 예에서는 모든 필드를 반환하기 위해 ALL FIELDS 추가 요소를 사용했습니다. 그러나 필드의 하위 세트만 필요한 경우 FIELDS(field1field2 … ) 변형을 사용하여 읽는 데이터의 양을 제한할 수 있습니다.
노트
SELECT 문과 달리 필드 리스트는 쉼표로 구분되지 않습니다.

결과 테이블에는 제어 필드 %is_draft 와 함께 비즈니스 오브젝트의 모든 필드가 포함됩니다. READ ENTITIES 문에 ALL FIELDS 변형이 있으면 모든 필드의 값이 제공됩니다. FIELDS( f1 … fn ) 변형을 사용하면 요청한 필드만 채워집니다.
노트

데이터를 업데이트하려면 TYPE TABLE FOR UPDATE을 사용하여 내부 테이블을 선언한다. 여기에는 비즈니스 오브젝트의 모든 필드와 %control 구조가 포함됩니다. MODIFY ENTITIES 문의 변형에서는 %control 구조가 자동으로 입력됩니다.


MODIFY ENTITIES 문은 트랜잭션 버퍼의 데이터를 업데이트합니다. FIELDS 추가 요소에서 변경할 필드를 지정합니다. WITH 추가 요소에서 업데이트할 데이터가 포함된 내부 테이블을 전달합니다.
비즈니스 오브젝트 외부에서 EML을 사용하는 경우 COMMIT ENTITIES 문을 사용하여 저장 순서를 트리거하고 데이터베이스에 데이터를 유지해야 합니다.
노트
이 과정의 후반부에서는 비즈니스 오브젝트의 동작 구현에서 EML을 사용합니다. 동작 구현 내에서는 COMMIT ENTITIES로 커밋을 트리거할 필요가 없으며 트리거할 수도 없습니다.