2014-09-15 2 views
0

저는 VersionOne의 데이터 API를 실험 해왔고 스토리 또는 세부 정보에 대한 견적, 세부 추정, 완료 (실제), 할일 및 할일 값과 일치하는 쿼리를 만들었습니다. UI를 통해 보이는 결함 아래에서 볼 수 있듯이 (nl은 가독성을 위해 추가되었습니다) 집계 된 값에 필터를 추가했습니다. 내가 궁금해하는 것은 집계 필터가 그들을 커버하는 것 같아 where 절이 필요한지 여부입니다. 같은 값을 반환하기 때문에 where 절을 사용하거나 사용하지 않아도 제대로 작동하는 것 같습니다 (그러나 집계 필터를 제거하면 작동하지 않습니다). 누구도 where 절을 제거하면 예상치 못한 문제가 발생할 지 여부에 대해 의견을 말합니까?V1 data api where 절 및 집계 필터

Data/Story/oid-number-portion? 
sel=PrimaryWorkitem.Name, 
PrimaryWorkitem.Number, 
PrimaryWorkitem.AssetState, 
PrimaryWorkitem.Status.Name, 
PrimaryWorkitem.Number, 
PrimaryWorkitem.Scope.Name, 
PrimaryWorkitem.Timebox.Name, 
PrimaryWorkitem.Team.Name, 
PrimaryWorkitem.Priority.Name, 
PrimaryWorkitem.Owners.Name, 
PrimaryWorkitem.AssetType, 
PrimaryWorkitem.Parent.Name, 
PrimaryWorkitem.Super.Name, 
PrimaryWorkitem.Children, 
PrimaryWorkitem.SplitTo, 
PrimaryWorkitem.SplitFrom, 
PrimaryWorkitem.Estimate, 
PrimaryWorkitem.ChildrenMeAndDown, 
PrimaryWorkitem.ChildrenMeAndDown[AssetState!='Dead','Deleted'][email protected], 
PrimaryWorkitem.Children[AssetState!='Dead','Deleted'][email protected], 
PrimaryWorkitem.ChildrenMeAndDown[AssetState!='Dead','Deleted'][email protected], 
PrimaryWorkitem.Children[AssetState!='Dead','Deleted'][email protected], 
PrimaryWorkitem.ChildrenMeAndDown%[AssetState!='Dead','Deleted'][email protected], 
PrimaryWorkitem.CreateDateUTC, 
PrimaryWorkitem.CreatedBy.Name, 
PrimaryWorkitem.ChangeDateUTC, 
PrimaryWorkitem.ChangedBy.Name 
&where=(PrimaryWorkitem.AssetState!='Dead','Deleted'; 
     PrimaryWorkitem.ChildrenMeAndDown!='Dead','Deleted'; 
     PrimaryWorkitem.Children!='Dead','Deleted') 

제리

답변

0

짧은 대답은 '예는 where는 불필요합니다. Stories 집합 만 줄이고 속성 필터와 마찬가지로 관계 결과에 영향을주지 않습니다. 질의의 시작 부분에는 OID가 포함되어 있기 때문에 결과 세트에서 단 하나의 항목 만 얻게됩니다.

다른 개선 기회가 있습니다. 하나의 경우, AssetStateDead이고, DeletedTemplate입니다. 따라서 [AssetState!='Dead'] 수 있습니다.

계층 구조 탐색 사용을 조정할 수도 있습니다. 예를 들어, ChildrenChildrenMeAndDown을 속성으로 요청하고 있습니다. Story의 경우 ChildrenSecondaryWorkitems이며 그 자체는 Children입니다. 따라서 Story.ChildrenStory.ChildrenAndDown은 같은 결과를 반환합니다. Story.ChildrenMeAndDown의 유일한 차이점은 이미 쿼리중인 Story이 있다는 것입니다. 따라서, 귀하의 모든 용도에 대해 Children 관계가 충분하다고 판단됩니다.

VersionOne 만 읽고있는 경우 query.v1 엔드 포인트를 살펴보십시오. 쿼리 언어는 근본적으로 동일하며 HTTP POST 본문의 YAML 또는 JSON으로 표현됩니다. 쿼리를 외삽하면 query.v1의 하위 쿼리 기능을 편리하게 사용할 수 있습니다.