□ Service Endpoints
http://WC Address :80/Windchill/servlet/odata/v4/CADDocumentMgmt/CADDocuments?%24count=false
▷ URL 구성 요소
- http://WC Address :80: Windchill 시스템이 설치된 서버의 주소와 포트 번호를 나타냅니다. "WC Address " 부분은 실제 서버 주소로 대체되어야 합니다.
- *Windchill: Windchill 시스템의 루트 경로입니다.
- servlet:자바 서블릿 컨테이너를 통해 요청을 처리함을 의미합니다.
- odata: OData 프로토콜을 사용하여 데이터를 주고받음을 의미합니다.
- v4: OData의 버전을 나타냅니다. v4는 OData의 최신 버전 중 하나입니다.
- CADDocumentMgmt: CAD 문서를 관리하는 엔드포인트입니다.
- CADDocuments: CADDocument 엔티티의 컬렉션을 나타냅니다. 즉, 여러 개의 CAD 문서를 조회할 수 있습니다.
- $count=false:** OData 쿼리 옵션으로, 총 레코드 수를 반환하지 않도록 지정합니다. 일반적으로 OData는 기본적 으로 총 레코드 수를 반환하는데, 이 옵션을 사용하면 성능 향상을 위해 총 레코드 수를 생략할 수 있습니다.
Windchill 시스템에서 CAD 문서 목록을 조회하는 OData 요청이며, 총 레코드 수를 반환하지 않는다는 특징이 있습니다.
Windchill에서 레코드 수 . . . . 란?
Windchill에서 레코드 수의 의미
Windchill에서 레코드 수는 특정 쿼리나 검색 결과에서 나온 데이터 항목의 총 개수를 의미합니다.
- 데이터베이스 레코드: Windchill은 데이터베이스를 기반으로 운영되며, 각 데이터 항목(예: CAD 문서, 부품, 변경 요청 등)은 데이터베이스의 한 레코드로 저장됩니다.
- 쿼리 결과: 특정 조건으로 데이터를 검색할 때, 검색 결과로 나오는 모든 데이터 항목이 레코드에 해당합니다.
- 레코드 수: 즉, 레코드 수는 검색 결과에서 나온 데이터 항목의 총 개수를 의미하며, 이는 해당 쿼리에 대한 검색 결과의 크기를 나타내는 지표입니다.
Windchill에서 레코드 수가 중요한 이유
- 데이터 양 파악: 시스템에 얼마나 많은 데이터가 있는지, 쿼리 결과가 얼마나 큰지 파악하는 데 중요합니다.
- 성능 최적화: 레코드 수가 매우 많을 경우, 쿼리 성능에 영향을 미칠 수 있으므로 적절한 페이징이나 인덱싱을 통해 성능을 최적화해야 합니다.
- 사용자 인터페이스: 사용자에게 검색 결과의 총 개수를 보여줌으로써 사용자가 전체 데이터의 규모를 파악하고 필요한 데이터를 효율적으로 찾을 수 있도록 돕습니다.
□ Parameters
Windchill REST 서비스는 OData(Open Data Protocol) 쿼리 파라미터를 다음과 같은 상황에서 사용할 수 있습니다.
- 엔티티 집합에 접근할 때: 도메인 내에 정의된 엔티티 집합에 접근할 때 쿼리 파라미터를 사용하여 데이터를 필터링, 정렬, 페이지네이션 등을 할 수 있습니다.
- 엔티티에서 엔티티 집합으로 이동할 때: 특정 엔티티에서 관련된 엔티티들의 집합으로 이동할 때 쿼리 파라미터를 사용하여 데이터를 필터링할 수 있습니다. 예를 들어, 부품 엔티티에서 해당 부품을 사용하는 어셈블리 목록을 조회할 때 사용할 수 있습니다.
- 엔티티의 내비게이션 속성 확장할 때: 엔티티의 내비게이션 속성을 확장하여 관련된 엔티티 정보를 가져올 때 쿼리 파라미터를 사용하여 데이터를 필터링하거나 정렬할 수 있습니다.
예를 들어, 고객 엔티티의 주소 정보를 가져올 때 주소의 도시를 기준으로 필터링할 수 있습니다.
▷ 요약
OData 쿼리 파라미터는 Windchill REST 서비스에서 데이터를 조회하고 처리하는 데 강력한 도구로 사용되어 원하는 데이터를 효율적으로 얻을 수 있도록 합니다.
Name | Type | Description |
$select | string (query) | Name,CheckoutState |
$filter | string (query) | |
$top | integer (query) | 10 |
$skip | integer (query) | 10 |
$count | boolean (query) | |
$orderby | string (query) | |
$expand | string (query) |
1. $select
$select 쿼리 파라미터는 응답에 포함될 엔티티 속성을 쉼표로 구분하여 지정하는 데 사용됩니다.
- 목적: 필요한 데이터만 선택적으로 가져와 네트워크 트래픽을 줄이고 응답 속도를 향상시킵니다.
- 방법: URL에 $select 파라미터를 추가하고, 그 뒤에 가져오고 싶은 속성 이름을 쉼표로 구분하여 나열합니다.
▷예시:
- URL: http://WC 주소 :80/Windchill/servlet/odata/v4/CADDocumentMgmt/CADDocuments?$select=Name,CheckoutState
- 설명: CAD 문서의 이름(Name)과 체크아웃 상태(CheckoutState)만 응답에 포함됩니다. 나머지 속성은 제외됩니다.
▷ 요약
$select 쿼리 파라미터를 사용하면 원하는 엔티티 속성만 선택적으로 가져올 수 있어 데이터 전송 효율성을 높일 수 있습니다.
2. $filter
3. $top
$top 쿼리 파라미터는 엔티티 집합에서 처음 N개의 엔티티를 반환합니다.
- 목적: 데이터 양이 많은 경우, 처음 일부 데이터만 가져와 빠르게 결과를 확인하거나, 페이지네이션을 구현할 때 사용합니다.
- 방법: URL에 $top 파라미터를 추가하고, 그 뒤에 원하는 엔티티 개수를 지정합니다.
▷ 예시:
- URL: http://WC 주소 :80/Windchill/servlet/odata/v4/CADDocumentMgmt/CADDocuments?$top=10
- 설명: CAD 문서 중 처음 10개의 문서만 반환됩니다.
▷ 요약:
$top 쿼리 파라미터를 사용하면 엔티티 집합에서 원하는 개수만큼의 데이터를 효율적으로 가져올 수 있습니다.
4. $skip
$skip쿼리 파라미터는 엔티티 집합에서 처음 N개의 엔티티를 건너뛰고, 그 다음부터의 엔티티들을 반환합니다.
- 목적: 데이터 양이 많은 경우, 특정 위치부터 데이터를 가져오거나, 페이지네이션을 구현할 때 사용합니다.
- 방법: URL에 $skip 파라미터를 추가하고, 그 뒤에 건너뛸 엔티티 개수를 지정합니다.
▷ 예시:
- URL: http://WC 주소 :80/Windchill/servlet/odata/v4/CADDocumentMgmt/CADDocuments?$skip=10
- 설명: 이 경우, 처음 10개의 CAD 문서를 건너뛰고, 11번째 문서부터 나머지 문서들을 반환합니다.
▷ 요약:
$skip 쿼리 파라미터를 사용하면 엔티티 집합에서 특정 위치부터 데이터를 가져올 수 있어 데이터를 효율적으로 관리할 수 있습니다.
$top과 함께 사용하면 페이지네이션을 구현할 수 있습니다. 예를 들어, 처음 10개의 레코드를 가져오려면 $top=10을 사용하고, 다음 10개를 가져오려면 $top=10&$skip=10을 사용합니다.
5. $count
$count 쿼리 파라미터는 엔티티 집합 내의 총 항목 수를 반환합니다.
- 목적: 엔티티 집합의 전체 크기를 확인하거나, 페이지네이션을 구현할 때 사용됩니다.
- 방법: URL에 $count=true를 추가하면 총 항목 수가 반환됩니다.
▷ 응답 형식
총 항목 수는 응답 본문의 @odata.count 속성에 포함되어 있습니다.
▷ 예시:
URL: http://WC 주소 :80/Windchill/servlet/odata/v4/CADDocumentMgmt/CADDocuments?$count=true
응답:
{
"@odata.count": 100,
"value": [
// CAD 문서 목록
]
}
▷ 요약:
$count 쿼리 파라미터를 사용하면 엔티티 집합의 총 항목 수를 효율적으로 확인할 수 있습니다. 이 정보는 데이터의 규모를 파악하고, 페이지네이션 등의 작업을 수행하는 데 유용합니다.
6. $orderby
7. $expand
$expand 쿼리 파라미터는 관련된 엔티티를 포함하여 가져오는 데 사용됩니다.
- 목적: 하나의 요청으로 관련 데이터를 함께 가져와 네트워크 트래픽을 줄이고 데이터 조회를 간소화합니다.
- 방법: URL에 $expand 파라미터를 추가하고, 그 뒤에 확장하고 싶은 내비게이션 속성을 쉼표로 구분하여 나열합니다.
▷ 예시:
- URL:http://WC 주소 :80/Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:157919')/PTC.ProdMgmt.GetPartsList?$expand=Part,PartUses
- 설명: 부품 구조에 대한 구성 요소 목록을 가져오면서, 각 구성 요소의 상세 정보(Part)와 사용 위치(PartUses)도 함께 가져옵니다.
▷ $expand와 $filter의 조합
- $expand로 확장된 내비게이션 속성에도 $filter를 적용할 수 있습니다.
- 예를 들어, `UsedBy($filter=ObjectType eq 'Part')`는 UsedBy 내비게이션 속성에서 ObjectType이 'Part'인 엔티티만 필터링합니다.
▷ $levels 쿼리 파라미터
- 목적: $expand에서 확장되는 레벨을 제한하여 성능을 향상시킵니다.
- 방법: $expand와 함께 $levels 파라미터를 사용하고, 확장할 레벨 수를 지정합니다.
- 제한: 동일한 유형의 엔티티에 대해서만 다중 레벨 확장이 가능합니다.
▷ 요약:
$expand 쿼리 파라미터를 사용하면 관련 데이터를 효율적으로 가져올 수 있습니다. $levels 파라미터와 함께 사용하면 데이터 조회 성능을 최적화할 수 있습니다.
주의: 무분별한 $expand 사용은 성능 저하를 초래할 수 있으므로, 필요한 데이터만 확장하도록 주의해야 합니다.
메뉴 사이트
PTC Help Center
Your browser has DOM storage disabled. Make sure DOM storage is enabled and try again.
support.ptc.com
PTC Help Center
Your browser has DOM storage disabled. Make sure DOM storage is enabled and try again.
support.ptc.com
'VBA For Windchill' 카테고리의 다른 글
Windchill & VBA 10) Get CADDocuments #2 (0) | 2024.08.03 |
---|---|
Windchill & VBA 05) Get Folder Name (0) | 2024.08.02 |
OData(Open Data Protocol)? (0) | 2024.07.31 |
Windchill & VBA 01) VBA 환경 설정 (VBA Preferences) (0) | 2024.07.30 |
학습 07) Open API, 엑셀 VBA - PTC Data Administration domain #2 (0) | 2024.07.09 |