위치:
아카이브 해제 Apex
보관 앱에서 특정 필터를 기반으로 보관 취소 기능을 프로그래밍 방식으로 시작합니다. 그런 다음, 코드별로 검색을 시작하고 요청과 일치하는 결과를 가져옵니다.
레코드를 보관 취소하면 레코드와 관련된 루트 또는 하위 레코드의 전체 계층 트리를 보관 취소합니다.
전제 조건:
보관 취소 활성화 - 보관에서 또는 Apex 통해 레코드를 파악합니다.
보관 취소 권한이 하나만 필요한 경우 다음 사용자 정의 권한 중 하나를 활성화한 다음, 사용자 정의 권한 집합 또는 프로필에 수동으로 할당할 수 있습니다.
- 보관 취소 - 보관에서만 레코드를 보관 취소할 수 있는 권한입니다.
- 보관 취소 SDK 보관 - 보관 Apex 통해서만 레코드를 보관 취소할 수 있는 권한입니다.
아카이브화되지 않는 Apex 함수
보관되지 않은 요청당 하나의 개체를 검색하고 검색에 최대 6개의 필터를 적용할 수 있습니다.
1. performUnarchiveSdk(string sObjectName, list<SearchFilter> filters, DateRange dateRange)
2. performUnarchiveSdk(string sObjectName, list<SearchFilter> filters)Apex 매개 변수
sObjectName - Apex 쿼리한 개체입니다.
이 매개 변수는 필수입니다.
검색 필터 - 필드 조건을 기반으로 검색 결과의 범위를 좁힙니다.
- 필드 이름 -
Name또는CreatedDate등 필터링할 필드입니다. - 값 또는 값 목록 - 일치시킬 특정 값 또는 값입니다.
값 목록을 사용하는 경우 값 사이의
OR로 Apex 데이터 쿼리가 쿼리됩니다.
이 매개 변수는 필수입니다.
날짜 필터 - 날짜를 기반으로 검색하려면 DateRange 매개 변수와 필수 필터를 사용합니다. DateRange은 ArchiveDate, CreatedDate 및 ModifiedDate과 같은 필드로 레코드를 필터링합니다.
날짜 필터 권장 사항:
- 보관 날짜를 기반으로 검색하려면
archive_date날짜 필드를 추가합니다. - Apex 날짜 형식을 사용합니다. MM/DD/YYYY.
이 매개 변수는 선택적입니다.
반환된 값
- 수행된 보관 취소 작업의 요청 ID
- 검색을 통해 검색된 총 레코드 수
- 오류를 포함한 상태 코드입니다.
반품 값: ArchiverAccessorResponse
1. ArchiverAccessorResponse.getBody(); ⇒ string
2. ArchiverAccessorResponse.getStatusCode();⇒ string
a. 200 - if we accepted your request
b. 400 - if we did not accept your request
3. ArchiverAccessorResponse.getErrorMessage();⇒ string코드 문서
performUnarchiveSdk(string sObjectName, list<SearchFilter> filters, DateRange dateRange)performUnarchiveSdk(string sObjectName, list<SearchFilter> filters)반품 값: ArchiverAccessorResponse
1. ArchiverAccessorResponse.getBody(); ⇒ string
2. ArchiverAccessorResponse.getStatusCode();⇒ string
a. 200 - if we accepted your request
b. 400 - if we did not accept your request
3. ArchiverAccessorResponse.getErrorMessage();⇒ stringApex 아카이브 해제 코드 예제
예 1: 소유로 명명된 계정 보관 취소
list<SearchFilter> request = new list<SearchFilter>();
string sObjectName = 'Account';
SearchFilter filter1 = new SearchFilter('Name', 'Own');
request.add(filter1);
ArchiverAccessorResponse res = ArchiverAccessor.performUnarchiveSdk(sObjectName, request);
Map<String, Object> jsonMap = (Map<String, Object>) JSON.deserializeUntyped(res.getBody());
system.debug(jsonMap.get('request_id'));
system.debug(jsonMap.get('total_result_count'));예 2: 이름이 PersonAccount3이고 날짜 범위가 지난 150일 동안 생성된 레코드인 필터를 사용하여 계정을 보관 해제합니다.
// Initialize a list to hold search filters for the archive operation
list<SF_Archive.SearchFilter> request = new list<SF_Archive.SearchFilter>();
// Define the Salesforce object name to perform the operation on
string sObjectName = 'Account';
// Create a search filter based on the 'Name' field with a specific value
SF_Archive.SearchFilter filter1 = new SF_Archive.SearchFilter('Name', 'PersonAccount3');
// Add the created filter to the request list
request.add(filter1);
// Create a date range filter to select records created in the last 150 days
// It calculates the start date by subtracting 150 days from today's date
SF_Archive.dateRange range = new SF_Archive.dateRange('CreatedDate', system.today()-150, system.today());
// Perform the unarchive operation with the specified object name, filters, and date range
// This retrieves records from the archival that match the given criteria
SF_Archive.ArchiverAccessorResponse res = SF_Archive.ArchiverAccessor.performUnarchiveSdk(sObjectName, request, range);
// Deserialize the JSON response body to a Map object to easily access the data
Map<String, Object> jsonMap = (Map<String, Object>) JSON.deserializeUntyped(res.getBody());
// Debug print the request ID and total result count from the response for logging purposes
system.debug(jsonMap.get('request_id'));
system.debug(jsonMap.get('total_result_count'));- 아카이브 해제 Apex 시나리오
다음은 아카이브 앱에서 아카이브되지 않은 Apex 프로세스의 예입니다.
아카이브 해제 Apex 시나리오
다음은 아카이브 앱에서 아카이브되지 않은 Apex 프로세스의 예입니다.
시나리오 1: 1,000개 미만의 일치하는 레코드 검색, 요청 처리 - 성공!
새 비즈니스 요청에 따라 고객이 학사 학위를 보유한 모든 후보의 보관을 취소하려고 합니다.
-
필터
has BA=true에 Archive Apex Unarchive 함수를 사용합니다. - 검색된 후보 목록에 보관되지 않은 레코드가 1,000개 미만입니다.
-
새 활동이 추가되며 새 typeArchive Apex Unarchive 함수와 모든 unarchive 필드가 채워집니다.
반환 값 = 검색된 레코드 수입니다.
시나리오 2: 1,000개가 넘는 일치하는 레코드 검색, 요청 처리 안 됨 - 실패
새 비즈니스 요청에 따라 고객이 마스터 학위를 보유한 모든 후보의 보관을 취소하려고 합니다.
-
필터
has MA=true에 Archive Apex Unarchive 함수를 사용합니다. - 검색된 후보 목록에 보관되지 않은 레코드가 1,000개가 넘습니다.
-
아카이브 Apex 아카이브 해제 프로세스가 실패로 종료됩니다.
활동이 생성되지 않습니다.반환 값 =# 레코드 검색됨, 오류: 400, 범위가 너무 넓음
시나리오 3: 1,000개 미만의 레코드, 일치하는 레코드 없음, 처리된 요청 없음 - 실패
새 비즈니스 요청에 따라 고객이 마스터 학위를 보유한 모든 후보의 보관을 취소하려고 합니다.
-
필터
has MA=true에 Archive Apex Unarchive 함수를 사용합니다. -
검색된 후보 목록에 레코드가 1,000개 미만입니다. 일치하는 레코드가 없습니다.
활동이 생성되지 않습니다.반환 값 = 검색된 레코드 수

