【发布时间】:2012-08-25 12:09:06
【问题描述】:
我正在尝试使用 PublicationID 获取在给定出版物中发布的所有结构组。我期望通过传递根结构组 TCM ID 但获取页面 ID(我期待 SG)来获得带有 StructureGroupCriteria 的结构组。
现在我正在尝试遍历列表并获取每个结构组的详细信息。我没有找到任何 API (.net) 来获取这些详细信息,而且 API 仅返回页面。
到目前为止,我使用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);
}
Q#1:如何获取所有结构组和单个结构组的详细信息? (可能很简单,我找不到合适的 API)。
Q #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 方面,我也可以看到分类表上的信息。
【问题讨论】:
-
添加更多信息,我没有注意到 StructureGroup 的 storage conf 中的任何 itemtype 绑定,它只是部署程序 conf 中的模块映射。可能没有通过 CDA API 公开 StructureGroup 信息(按设计)?
标签: tridion tridion-2011