Metadata는 왜 쓰이는 것인가
Metadata API는 customization 정보(Ex. Custom object 정의, Page Layout)를 retrieve, deploy, create, delete하기 위해 사용한다. Metadata API는 데이터 그 자체가 아니라 metadata 모델을 관리하기 위한 tool을 관리하기 위해 쓰여진다. 만약, account나 lead와 같은 레코드를 create, retrieve, update, delete하고 싶으면 SOAP API나 REST API를 사용해라.
어떻게 쓰이나?
Multi org를 가지고 있다고 가정해보자. 그리고 커스텀 필드를 만들었다고 가정해보자. 모든 오그에 페이지 레이아웃에 새로운 필드를 추가하기를 원한다. 이 구성 정보의 유형은 메타데이터 유형과 컴포넌트에서 저장된다. Apex로부터 바로 모든 오그에 있는 페이지 레이아웃에 새로운 필드를 추가하기 위하여 Apex 메타데이터 API를 사용하는 스크립트를 만들 수 있다. 각 오그에서 어드민이 수동으로 변화하지 않게 해도 되게끔, 오그에 있는 메타데이터는 백단에서 업데이트 된다.
Custom Metadata Type이란?
커스텀 메타데이터 유형의 레코드는 다른 나라를 위해 각각 다르게 구성되어져야 한다. Apex 메타데이터 API를 사용하여 관리자가 레코드를 구성하는 일련의 단계를 안내하는 설정 마법사를 작성할 수 있다. 이 자동화를 통해 관리자는 설치 UI를 수동으로 변경하지 않아도 된다.
Metadata Limit
- 지원하는 Metadata 유형: 페이지 레이아웃, 커스텀 메타데이터 유형의 레코드
- Reading, creating, updating은 지원하지만 deleting은 지원하지 않는다.
- 배포 상태를 추적하는 API를 가질 수 없다. 하지만, 배포가 완료될때마다 callback을 설정한다면 호출된다.