Loading

스키마 빌더를 사용해서 삭제 작업을 할 때 개체 관계 필드를 찾아내고 쿼리하기

게시 일자: May 9, 2024
상세 설명
다른 레코드와 관련하여 존재할 수 있는 하위 또는 세부 레코드를 찾아내려면 관계 필드에 대하여 Salesforce의 모든 개체를 직접 힘들게 검토해야 할 것 같지만, 스키마 빌더를 사용하면 그럴 필요가 없습니다.

스키마 빌더를 사용하면 특정 개체와의 모든 관계를 시각적으로 확인하고 식별하여 이를 문서화한 다음, 관련 레코드가 존재하는 위치를 찾아내는 쿼리를 작성할 수 있습니다.

이는 레코드 삭제 작업의 성능이 떨어지거나 '삭제 작업이 너무 큼' 메시지가 발생하는 원인을 찾아내야 할 때 특히 유용합니다.

스키마 빌더에 액세스하는 방법과 스키마 빌더로 작업하기에서 상세한 사용법을 확인하세요.

 
솔루션
경고
데이터 작업을 수행하기 전에 항상 데이터를 백업하세요. 자세한 내용은 Salesforce에서 백업 데이터 내보내기 또는 데이터 내보내기를 참조하세요. Salesforce에서 수동으로 열어 해당 레코드가 올바른지 확인하는 과정을 통해 작업의 성공 여부를 확인하려면 레코드의 작은 하위 집합으로 테스트를 실행하는 것이 좋습니다.


스키마 빌더에서 관련 개체 찾기

 
1. 스키마 빌더의 'Quick Find(빠른 찾기)..' 검색창에 문제의 레코드의 개체 이름을 입력합니다. 아래의 섹션에 반환된 결과가 표시되도록 선택되어 있는지 확인한 다음, 결과 항목 위로 마우스를 가져가면 캔버스에서 개체를 쉽게 찾을 수 있도록 돋보기가 나타납니다.

2. 원하는 개체를 찾았다면 'Quick Find(빠른 찾기)...'에서 그 이름을 지워 모든 개체의 전체 목록을 확인한 다음, 'Select All(모두 선택)' 링크를 클릭하여 모든 Salesforce 개체를 빌더에 표시합니다. 모든 개체 관계 선을 쉽게 확인할 수 있도록 개체를 클릭한 상태로 캔버스의 빈 공간에 끌어 옵니다.

참고: 관계선은 서로 겹칠 수 있으니, 문제의 개체에서 다른 개체로 이어지는 관계선을 모두 확인할 수 있도록 캔버스 위에서 개체를 적절하게 이동합니다.

3. 개체를 적절하게 배치한 후에는 각각의 선 위에 마우스 커서를 올리고 개체 관계 정보를 복사하여, 다른 개체로부터 문제의 레코드의 개체로 향하는 조회 및 마스터-세부 사항 관계를 모두 찾아냅니다.
 

관련 개체 및 참조 필드의 API 이름을 찾아 문서화하기

 
1. SOQL 쿼리를 작성하기 위해 설정에서 관련 개체를 찾고 아래의 세부 정보를 수집합니다.

A) 개체 API 이름(문제의 레코드 개체와 관련된 개체들):

- 표준 개체의 API 이름은 일반적으로 그 레이블과 일치합니다. 예를 들어 Account(계정) 개체의 API 이름은 Account입니다. 표준 개체 목록은 Standard Objects(표준 개체) | Salesforce 및 Lightning 플랫폼용 개체 참조 문서에서 확인하세요.

- 사용자 정의 개체의 API 이름은 설정으로 이동하여 찾을 수 있습니다.

Classic에서는 빠른 찾기 상자에 "Objects(개체)"를 입력한 다음 Create(만들기) 메뉴 트리 아래에서 Objects(개체)를 선택합니다. 목록에서 개체를 찾고 그 레이블을 클릭해 세부 사항 페이지를 열고 'API Name(API 이름)' 필드의 값을 복사합니다. 

Lightning에서는 Object Manager(개체 관리자)를 열고 빠른 찾기 검색을 통해 개체를 찾은 다음 API NAME(API 이름) 열에서 해당하는 값을 복사합니다.

2. 설정의 이전 단계에서 각 개체를 검토하여, 관계 필드 또는 영향을 받는 레코드의 개체를 '조회'하는 필드를 찾아 그 API 이름을 수집합니다.

필드의 API 이름 찾기에서 상세한 API 이름 식별 방법을 확인하세요.
 

SOQL 쿼리 만들기


아래의 예시를 템플릿으로 삼아, 문제의 레코드와 관련된 레코드(조회 필드의 하위 개체 측, 또는 마스터-세부 사항 필드의 세부 정보)의 ID를 반환하는 쿼리를 구성합니다.

SELECT Id FROM <ObjectAPINameHere> WHERE <RelationshipFieldAPINameHere> = '<AffectedRecordIdHere>'

수정할 부분:
<ObjectAPINameHere>에 1단계에서 관련 개체의 API 이름을 입력
<RelationshipFieldAPINameHere>에 2단계에서 관련 필드의 API 이름을 입력
<AffectedRecordIdHere>에 삭제 시 문제가 발생하는 레코드의 ID를 입력

구성한 쿼리와 Data Loader 등의 적당한 클라이언트 도구를 사용해서 데이터 내보내기 문서를 따라 내보내기 또는 쿼리를 수행합니다.

쿼리 및 내보내기에서 많은 수의 행이나 레코드(수천 ~ 일만 개 이상)가 반환될 경우, 해당 관련 데이터가 삭제 작업 및 데이터 불균형 성능 문제를 직간접적으로 유발하고 있을 가능성이 높습니다.

다량의 관계형 데이터가 발견될 경우, 확보한 내보내기 파일을 사용해 삭제 작업을 수행하여 하위 레코드를 대량으로 삭제합니다. Data Loader를 사용하여 데이터 삽입, 업데이트, 삭제하기에서 데이터 삭제와 관련된 상세 내용을 확인하세요.

관계형 데이터를 삭제한 다음, 레코드 삭제 시 '삭제 작업이 너무 큼' 오류가 발생하거나 속도가 너무 느림 문서의 '문제의 레코드의 관련 레코드를 삭제한 후' 섹션에 제시된 과정을 따라 조직의 휴지통을 비우고 관계형 데이터를 소거하기 위한 물리적 삭제를 요청하세요.

참고 자료 :
데이터 복구 사용 중지
Knowledge 기사 번호

000382594

 
로드 중
Salesforce Help | Article