GetPropertyVTQCount 서비스 사용
GetPropertyVTQCount 서비스는 런타임에 ThingWorx 내에서 수집되거나 설정된 사물, 사물 템플릿 또는 사물 형태에 정의된 사물 속성의 개수를 반환합니다. 이 서비스는 ThingWorx Platform의 property_vtq 속성 지속성 공급자 데이터베이스 테이블에서 개수 선택을 질의합니다. 이 개수 결과는 런타임에 지정된 엔티티 이름 등에 대해 지정된 이름인 ThingWorx 기본 유형의 색인화된 속성 값의 총 수로 인해 질의 성능 또는 속성 값 수집을 최적화하는 방법을 결정하는 데 도움이 될 수 있습니다. 질의 및 수집은 이러한 property_vtq 값의 데이터베이스 색인화 영향을 받을 수 있습니다.
서비스 세부 정보
세부 정보
설명
질의 조건으로 지정된 속성의 개수를 반환합니다.
매개 변수
query
QUERY 기본 유형
허용 값은 지원되는 질의 필터 튜플 요소를 참조하십시오.
결과(잘못된 질의 매개 변수)
잘못된 질의를 나타내는 오류 메시지입니다.
결과(올바른 질의 매개 변수)
숫자
지원되는 질의 필터 튜플 요소
GetPropertyVTQCount 서비스는 해당 질의 필터 내에서 5개의 요소 유형인 entityNameMask, entityTypeMask, propertyNameMask, propertyBaseTypepropertyIsIndexed를 지원합니다.
* 
이러한 요소 유형은 대/소문자를 구분합니다.
5개의 요소 유형의 조합을 GetPropertyVTQCount 서비스에 전달할 수 있으며 이러한 조합을 필터 튜플이라고 합니다. 이러한 튜플은 다음과 같은 ThingWorx 필터 컬렉션으로 구현됩니다.
{ "filters": [ {...}, {...}], "type": "AND" }
여기서 { ... }는 하나의 요소 유형 필터입니다. 이 예에서는 필터 튜플 내에 AND ThingWorx 필터 컬렉션으로 정의해야 하는 두 개의 요소 유형 필터가 있습니다.
아래 표에서
다음 요소 유형 필터 각각은 필터 튜플당 0회 또는 1회만 존재할 수 있습니다.
하나의 요소 유형 필터 내에서 하나는 세 개의 필드(예: fieldName, type, value)를 정의합니다.
Mask 접미사가 있는 필드의 경우 값에 와일드카드 문자/별표가 포함될 수 있습니다.
필드 이름(요소 유형)
유형
값 유형
설명
값 예
JSON 예
entityNameMask
LIKE
STRING
선택적 필드입니다. entityNameMask는 암시적 필드의 이름입니다.
값 유형은 엔티티 이름을 지정된 value와 같은 property_vtq의 레코드만 선택하는 값으로 포함하는 STRING이어야 합니다.
*
Thing1
*hing1*
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "Thing1" }
{ "fieldName": "entityNameMask", "type": "LIKE", "value", "*hing1*" }
entityTypeMask
LIKE
STRING
선택적 필드입니다. entityTypeMask는 암시적 필드의 이름입니다.
값 유형은 엔티티 유형을 지정된 value와 같은 property_vtq의 레코드만 선택하는 값으로 포함하는 STRING이어야 합니다.
* 
많은 엔티티 유형이 하나의 유형만 지정할 수 있지만 사물 또는 해당 문자열의 와일드카드 버전은 개수 데이터를 반환합니다. 다른 엔티티 유형의 경우 일치하는 항목을 찾을 수 없으며 개수가 0일 가능성이 높습니다.
*
Thing
*hin*
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "Thing" }
{ "fieldName": "entityTypeMask", "type": "LIKE", "value", "*Thin*" }
propertyNameMask
LIKE
STRING
선택적 필드입니다. propertyNameMask는 암시적 필드의 이름입니다.
값 유형은 속성 이름을 지정된 value와 같은 property_vtq의 레코드만 선택하는 값으로 포함하는 STRING이어야 합니다.
*
prop1
*rop1*
*erialNumber
model*umbe*
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "prop1" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*rop1*" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "*erialNumber" }
{ "fieldName": "propertyNameMask", "type": "LIKE", "value", "model*umbe" }
propertyBaseType
LIKE
STRING
선택적 필드입니다. propertyBasetype은 암시적 필드의 이름입니다.
* 
이는 NameMask에서 허용 값이 아닙니다.
값 유형은 유효한 기본 유형 이름을 지정된 value와 같은 property_vtq의 레코드만 선택하는 값으로 포함하는 STRING이어야 합니다.
propertyIsIndexed가 true인 경우 propertyBaseType 값은 다음 중 하나의 유효한 색인 가능한 기본 유형의 표시 이름이어야 합니다.
STRING
NUMBER
INTEGER
LONG
BOOLEAN
DATETIME
THINGNAME
USERNAME
GROUPNAME
HYPERLINK
MASHUPNAME
MENUNAME
DASHBOARDNAME
TEXT
GUID
NOTIFICATIONCONTENTNAME
NOTIFICATIONDEFINITIONNAME
STYLETHEMENAME
THINGGROUPNAME
propertyIsIndexed가 false인 경우 다음 중 하나를 지정할 수 있습니다.
PASSWORD
INFOTABLE
LOCATION
IMAGE
XML
JSON
QUERY
HTML
BLOB
VEC2
VEC3
VEC4
THINGCODE
thingname
thingNaMe
THINGNAME
THINGNamE
String
STRING
BOOLean
Boolean
veC2
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "thingname" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "thingNaMe" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "THINGNAME" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "THINGNamE" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "String" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "STRING" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "BOOLean" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "Boolean" }
{ "fieldName": "propertyBaseType", "type": "LIKE", "value", "veC2" }
propertyIsIndexed
EQ
BOOLEAN
선택적 필드입니다. propertyIsIndexed는 암시적 필드의 이름입니다.
* 
이는 NameMask에서 허용 값이 아닙니다.
값 유형은 지정된 value와 동일한 property_vtq에서 색인화된 속성 및 색인화되지 않은 속성을 필터링하는 데 사용되는 유효한 BOOLEAN 값이어야 합니다.
유효한 값은 true 및 false입니다.
true
false
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", true}
{ "fieldName": "propertyIsIndexed", "type": "EQ", "value", false}
질의 사용 사례
작업
이유
GetPropertyVTQCount 질의 JSON 예
색인화된 ThingName 값을 포함하는 ThingWorx Platform 런타임의 속성 수를 결정합니다.
사물(Thing1)이 플랫폼 내 사용자 정의 응용 프로그램 모델 내에서 사용되는 횟수를 결정하기 위해 임의(*) 사물 속성에 지정된 횟수를 찾고 있습니다. 이는 QueryImplementingThingOptimized 서비스에 대한 질의 매개 변수 입력으로 제공될 수 있는 속성 기능에서의 보다 최적화된 사용 위치(Where Used) 질의에 대한 사례일 수 있습니다.
{
"filters": {
"fieldName": "*",
"type": "LIKE",
"value": "Thing1"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "ThingName"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "AND"
},
"type": "SELF"
}
색인화되지 않고 기본 유형이 STRING인 B-X42의 모델 번호를 포함하는 ThingWorx Platform 런타임에서 속성(Things 속성임)의 수를 결정합니다.
플랫폼에서 Things로 모델링된 배터리 중 모델 번호를 기반으로 하는 새 B-X42 배터리 유형인 배터리 수를 알고 싶습니다.
{
"filters": {
"fieldName": "modelNumber",
"type": "LIKE",
"value": "B-X42"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": false
},
{
"fieldName": "propertyNameMask",
"type": "LIKE",
"value": "B-X42"
}
],
"type": "AND"
},
"type": "SELF"
}
색인화되고 기본 유형이 STRING인 B-X*의 모델 번호를 포함하는 ThingWorx Platform 런타임에서 속성(Things 속성임)의 수를 결정합니다.
플랫폼에서 Things로 모델링된 배터리 중 배터리 유형인 배터리 수를 알고 싶지만 특정 모델 번호(예: 1, 2, 3, 41, 43 등)는 고려하지 않습니다.
{
"filters": {
"fieldName": "modelNumber",
"type": "LIKE",
"value": "B-X*"
}
}
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
},
{
"fieldName": "propertyNameMask",
"type": "LIKE",
"value": "B-X*"
}
],
"type": "AND"
},
"type": "SELF"
}
잘못된 필터 튜플
잘못된 질의 결과를 방지하려면 다음과 같은 잘못된 필터 튜플을 사용하지 마십시오.
잘못된 질의
오류 결과가 발생하는 예
OR 필터 컬렉션을 지정하는 필터 튜플 필드입니다.
* 
필터 튜플은 AND 필터 컬렉션으로 결합되어야 합니다.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "OR"
},
"type": "SELF"
}
필드 이름으로 5개의 요소 유형 중 하나가 두 번 이상 나타납니다.
* 
지원되는 각 필드 이름은 필터 튜플당 최대 한 번 발생해야 합니다.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "String"
},
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "Long"
}
],
"type": "AND"
},
"type": "SELF"
}
propertyBaseType에 대한 잘못된 값입니다.
* 
propertyIsIndexed가 true 또는 false로 설정되었는지 여부에 따라 propertyBaseType에 대해 위의 표에서 설명 열에 표시된 기본 유형 중 하나만 지정합니다.
{
"filters": {
"filters": [
{
"fieldName": "propertyBaseType",
"type": "LIKE",
"value": "InvalidType"
},
{
"fieldName": "propertyIsIndexed",
"type": "EQ",
"value": true
}
],
"type": "AND"
},
"type": "SELF"
}
fieldName에 대한 잘못된 값입니다.
* 
entityNameMask, entityTypeMask, propertyNameMask, propertyBaseType, propertyIsIndexed 중 하나만 지정합니다.
{
"filters": {
"filters": [
{
"fieldName": "invalidFieldName",
"type": "LIKE",
"value": "*"
}
],
"type": "AND"
},
"type": "SELF"
}
도움이 되셨나요?