使用Content Delivery/Broker API的StructureGroup详细信息

Ram*_*m G 8 tridion tridion-2011

我试图使用PublicationID获取在给定出版物中发布的所有结构组.我期望StructureGroupCriteria通过传递根结构组TCM ID获取结构组,但获取页面ID(我期待SG).

现在我试图遍历列表并获取每个结构组的详细信息.我没有找到任何API(.net)来获取这些细节,而且API也只返回Pages.

我到目前为止所做的工作和返工工作StructureGroupCriteria,返回页面ID列表而不是SG ID

  PublicationCriteria pubCriteria = new PublicationCriteria(pubID);
  // Root StructureGroup TCM ID -- tcm:45-3-4
  StructureGroupCriteria sgCriteria = new StructureGroupCriteria("tcm:45-3-4", true); 
  Criteria allSGsInPub = CriteriaFactory.And(pubCriteria, sgCriteria);
  Query allSGs = new Query(allSGsInPub);
  string[] sgInfo = allSGs.ExecuteQuery();
  Response.Write("Total : " + sgInfo.Length);
  foreach (string sgid in sgInfo ) {
    // HOW DO I get the Structure Group Details here
     //TCMURI sgURI = new TCMURI(sgid);
  }
Run Code Online (Sandbox Code Playgroud)

问题1:如何获得所有结构组和单个结构组的详细信息?(可能是简单的,我无法找到正确的API).

问题2:如何使用所有结构组ItemTypeCriteria sgCriteria = new ItemTypeCriteria(4); // 4 is SG Item Type.

当我尝试此选项时,查询成功运行但未返回任何结果.这是预期的行为,我们应该总是使用StructureGroupCriteria而不是ItemTypeCriteria?

这种方法的原因,我想避免使用上述代码所需的Root StructureGroup ID.但目前,没有一种方法返回StructureGroup信息,我总是得到页面信息.

Tridion版本:2011 SP1,.net API.

注意:当我发布时,我正在检查发布SG信息复选框并成功发布.在Broker DB方面,我也可以看到taxnonomy表上的信息.

Ram*_*m G 3

我正在使用 Odata 服务,偶然发现我可以从 Odata Web 服务获取所有结构组信息。

/cd_webservice/odata.svc/StructureGroups?$filter=PublicationId%20eq%2045
Run Code Online (Sandbox Code Playgroud)

此外,结果返回带有depth参数的子结构组。

只是为了澄清,使用 Broker API 获取结构组是不可行的(我原来的问题)。但是,解决方案是使用 OData 服务来获取结构组。