반환 결과 데이터 구성
Mobile SDK내에서 REST 엔드포인트를 통해 인스턴스의 ServiceNow 데이터와 상호작용할 때 반환 결과에 다시 전달되는 데이터를 구성할 수 있습니다.
- 테이블에서 반환할 특정 기록입니다.
- 기록에서 반환할 특정 필드입니다.
- 반환할 기록 수입니다.
반환할 특정 기록 구성
FetchConfiguration 호출 내의 필터 구조를 사용하면 인스턴스에서 ServiceNow 가져와 REST 엔드포인트에서 반환 결과로 다시 전달되는 기록을 필터링하고 정렬할 수 있습니다. 이 필터는 REST API 엔드포인트의 sysparm_query 매개변수에 전달됩니다. 자세한 내용은 테이블 API를 참조하세요.
- 인코딩된 쿼리로 필터링합니다. 인코딩된 쿼리로 필터링합니다. 이 유형의 필터를 사용하면 지정된 테이블 내의 기록에 적용되는 인코딩된 쿼리를 전달할 수 있습니다.예를 들어, 다음 호출은 활성 상태이고 간단한 설명 필드에 "broken"이라는 단어가 포함된 기록만 반환합니다.
Filter(query: "active=true^short_descriptionLIKEbroken"이 유형의 필터링을 사용하려면 함수를 사용하여 필터 구조를 초기화합니다.필터 - init(query: String, queryCategory: String? = nil)
- 기준으로 필터링합니다. 이 필터를 사용하면 함께 "또는"로 결합된 하나 이상의 필터 기준을 기준으로 필터링할 수 있습니다.예를 들어 관리자에게 PTO를 소속 중인 직원 Abel Tuter가 있다고 가정해 보겠습니다. 담당자는 누구에게도 할당되지 않았거나 Abel Tuter에게 할당되지 않은 활성 인시던트가 있는지 파악하여 할당/재할당할 수 있기를 원합니다. 또한 동일한 목록에서 에스컬레이션이 높거나 지연된 모든 인시던트를 확인하여 이러한 인시던트도 해결하려고 합니다. 다음은 이 데이터를 얻는 데 필요한 필터를 생성하는 방법을 보여줍니다.
let activeIncidents = Condition.boolean(field: "active", .is(true)) let assignedToEmpty = Condition.string(field: "assigned_to", .isEmpty) let assignedToAbel = Condition.string(field: "assigned_to", .is("Abel Tuter")) let assignedToAbelOrEmpty = CompoundCondition.or([assignedToEmpty, assignedToAbel]) let needToReassign = Criteria(conditions: [activeIncidents, assignedToAbelOrEmpty]) let highEscelations = Condition.string(field: "escalation", .is("2")) let overdueEscelations = Condition.string(field: "escalation", .is("3")) let highORoverdueEscelations = CompoundCondition.or([highEscelations, overdueEscelations]) let needToHandleEscalation = Criteria(condition: highOrOverdueEscelations) let myPrioritiesForTodayFilter = Filter(criteria: [needToReassign, needToHandleEscalation])이 유형의 필터링을 사용하려면 함수를 사용하여 필터 구조를 초기화합니다.필터 - init(criteria criteriaList: [Criteria], sortBy: [Sort]? = nil, queryCategory: String? = nil)
- 키워드와 조건으로 필터링합니다. 이 필터를 사용하면 함께 사용되는 특정 키워드와 조건을 기반으로 기록을 필터링할 수 있습니다.
예를 들어, 키워드 "iOS13 또는 iOS 14"를 포함하고 testField로 정렬된 지정된 조건을 충족하는 모든 기록에 대한 다음 필터입니다.
testKeywordsAndConditionsAndSort() { let keywords = "iOS 13 | iOS 14" let conditionA = Condition.boolean(field: testField, .is(true)) let conditionB = Condition.boolean(field: testField2, .is(false)) let sortA = Sort.asc(testField) let filter = Filter(keywords: keywords, conditions: [conditionA, conditionB], sortBy: [sortA]) XCTAssertEqual(filter.query, "123TEXTQUERY321=\(keywords)^\(conditionA.query)^\(conditionB.query)^EQ^\(sortA.query)") }이 유형의 필터링을 사용하려면 함수를 사용하여 필터 구조를 초기화합니다.필터 - init(키워드: 문자열? = nil, 조건: [조건], sortBy: [정렬]? = nil)
- 조건으로 필터링합니다. 이 필터를 사용하면 지정된 모든 조건을 충족하는 기록을 필터링할 수 있습니다(및. 함께).
예를 들어, 활성 필드가 "예"이고 SLA 기한 필드의 날짜 값이 "오늘" 또는 오늘 이후의 날짜인 모든 기록에 대한 다음 필터입니다.
// Where the record is active let condition1 = Condition.boolean(field: "active", .is(true)) // AND the date value of the SLA due field is on "today" or any date after today. let condition2 = Condition.dateTime(field: "sla_due", .atOrAfter(0, .daysAgoStart)) let filter = Filter(conditions: [condition1, condition2])이 유형의 필터링을 사용하려면 함수를 사용하여 필터 구조를 초기화합니다.필터 - init(conditions: [QueryProviding], sorts: [Sort]? = nil)
반환할 특정 필드 구성
- 표시 값
- 실제 값
- 참조 링크 제외