이 페이지에서는 계정을 필터링하는 데 사용해야 하는 구문을 설명합니다.
구문
정수 이외의 모든 값은 큰따옴표(")로 묶어야 합니다. 받는사람 특정 필드에서 허용하는 값을 알아보려면 참조 문서를 참조하세요.
AND
를 사용하여 동일한 쿼리에서 여러 필드를 필터링할 수 있습니다. 그 외에
AND
를 사용하여 여러 relationship(...)
및 service(...)
필터를 결합합니다.
다음은 여러 relationship(...)
와 service(...)
를 결합하는 예입니다.
필터:
(relationship(service(type = "ACCOUNT_MANAGEMENT") AND service(handshakeState = "PENDING"))) OR (accountName = "store" AND relationship(...))
이 예시에서는 다음 계정을 반환합니다.
다른 계정과 계정 관리 관계가 있는 모든 계정 수락 대기 중인 추가 관계가 있습니다.
표시 이름이
"store"
인 모든 계정 중 다른 계정과 관계가 있습니다.
AND
를 사용하여 동일한 필드의 여러 값을 필터링할 수 없습니다. 대상
예를 들어 accountName = "*A*" AND accountName = "*B*"
는 사용할 수 없습니다.
OR
를 사용하여 동일한 쿼리에서 두 필드를 필터링할 수 있습니다. 필터 묶기
기준을 괄호로 묶어 OR
연산자 양쪽에 표시합니다. 예로 (accountName = "storeA") OR (accountName = "storeB")
를 들 수 있습니다.
OR
만 사용하여 두 필드를 결합할 수 있습니다. 예를 들어
(accountName = "storeA") OR (accountName = "storeB") OR (accountName =
"storeC")
괄호는 AND
및 OR
연산자와 함께 사용할 때와
함수 호출(예: relationship(...)
및 service(...)
)
accountName
및 accountIdAlias
와 같은 문자열 필드의 경우 다음을 필터링할 수 있습니다.
특정 단어 또는 일련의 문자를 포함하는 값을
(*
) 시퀀스 예를 들어 accountName = "*foo*"
는
'storeFoo'와 같은 foo
가 포함된 accountName
가 있는 계정
!=
를 사용하여 특정 시퀀스가 포함되지 않은 값을 필터링할 수 있습니다.
및 *
예를 들어 accountName != "*foo*"
는
foo
를 포함하지 않는 accountName
입니다.
추가 공백은 무시됩니다. 예를 들어 foo AND bar
는 foo
AND bar
와 동일합니다.
사양
필터는 AIP 필터의 하위 집합을 따릅니다. 공식 EBNF, 문법:
filter
: accountFilterDisj
| accountFilterConj
;
accountFilterDisj
: "(" accountFilterConj " OR " accountFilterConj ")"
;
accountFilterConj
: accountFilter {" AND " accountFilter}
;
accountFilter
: displayNameFilter | relationshipFn
;
displayNameFilter
: "displayName" comparator value
;
relationshipFn
: "relationship(" relationshipConj ")"
;
relationshipConj
: relationshipFilter {" AND " relationshipFilter}
;
relationshipFilter
: "providerId = " numValue
| "callerHasAccessToProviderFilter()"
| "externalAccountId" comparator value
| "accountIdAlias" comparator value
| serviceFn
;
serviceFn
: "service(" serviceConj ")"
;
serviceConj
: serviceFilter {" AND " serviceFilter}
;
serviceFilter
: handshakeStateFilter
| typeFilter
;
handshakeStateFilter
: "handshakeState = " value
;
typeFilter
: "type = " value
;
comparator
: " = " | " != "
;