사전 파트

사전 파트에는 키를 통해 액세스할 수 있는 데이터의 목록이 포함되어 있습니다. 예를 들어, 데이터베이스에서 읽어온 키 및 메시지로 채워진 사전을 포함하는 메시지 처리 기능을 작성할 수 있습니다.

사전 파트는 항상 사용할 수 있으므로 정의하지 않습니다. 사전 파트를 기반으로 하는 변수에는 키 세트와 해당 관련된 값이 포함됩니다. 런타임 시 키/값 항목을 추가하고 제거할 수 있습니다. 레코드의 필드 이름과 마찬가지로 프로그램에서 키 이름을 사용하십시오. 사전 변수는 항목을 입력한 순서대로 항목을 보관합니다.

다음 예제에서는 사전 변수 선언을 보여줍니다.
  myRef Dictionary 
    {
      ID        = 5,
      lastName  = "Twain",
      firstName = "Mark"
    };

선언에 항목을 포함하는 경우 각각의 키 이름은 EGL 이름 지정 규칙과 일치해야 하는 EGL ID입니다. 런타임 시 항목을 추가하면 유연성이 높아집니다. "동적 유형 및 동적 액세스"를 참조하십시오.

새 키/값 쌍을 사전에 추가하는 일부 예제 지정은 다음과 같습니다.
  myRef.age = 30;
  myRef["Credit"] = 700;
이미 존재하는 키를 지정하면 기존 키/값 항목이 대체됩니다. 다음 지정은 유효하며 "Twain"을 "Clemens"로 바꿉니다.
  myRef.lastname = "Clemens";
지정을 사용하여 데이터를 검색할 수도 있습니다.
  lastname STRING
  age, credit INT;

  lastname = myRef.lastname; 
  age = myRef["age"];
  credit = myRef.credit;
키/값 항목에 있는 값은 ANY 유형이므로 다른 유형의 정보를 단일 사전에 넣을 수 있습니다. 다음과 같은 값을 사전 항목에 넣을 수 있습니다.
  • 사전 선언된 레코드 또는 기타 변수
  • 상수 또는 리터럴
사전에 변수를 추가하면 변수의 사본이 지정됩니다. 다음 레코드 파트를 생각해 보십시오.
  Record ExampleRecord
	   x int;
	 end

다음 예제에서는 ExampleRecord 변수를 사전에 배치한 후 원래 변수의 값을 변경합니다.

  testValue int;

  myRecord ExampleRecord;

  // sets a variable value and places
  // a copy of the variable into the dictionary.
  myRecord.x = 4; 
  myRef Dictionary
  {
    theRecord = myRecord
  };
	
  // Places a new value in the original record.
  myRecord.x = 700;

  // Accesses the dictionary's copy of the record, 
  // assigning 4 to testValue.
  testValue = myRef.theRecord.x;
한 사전을 다른 사전에 지정하면 대상 컨텐츠가 소스 컨텐츠로 바뀌며 대상 사전의 특성이 대체됩니다(사전 특성 참조). 예를 들어, 다음 코드에 있는 조건문은 true입니다.
  myRef Dictionary { age = 30 };

  newRef Dictionary { age = 50 };
  newRef = myRef;

  // resolves to true
  if (newRef.age == 30)
    ;
  end

선언에서 지정할 수 있는 특성은 사전의 처리 방식에 영향을 미칩니다. "사전 특성"을 참조하십시오. 사전 특정 함수는 코드에 데이터 및 서비스를 제공합니다. "사전 함수"를 참조하십시오.

호환성

표 1. 사전 파트에 대한 호환성 고려사항
플랫폼 문제
COBOL 생성 사전 파트가 지원되지 않습니다.