8

PublicationIDを使用して、特定のパブリケーションで公開されているすべての構造グループを取得しようとしています。ルート構造グループのTCMIDを渡すことで構造グループを取得することを期待していStructureGroupCriteriaますが、ページIDを取得することを期待しています(SGを期待しています)。

今、私はリストをループして、各構造グループの詳細を取得しようとしています。これらの詳細を取得するためのAPI(.net)が見つかりませんでした。また、APIはページのみを返します。

私がこれまでに行って作業してきたことはStructureGroupCriteria、SGIDの代わりにページ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ますか?

このアプローチの理由は、上記のコードで必要なルート構造グループIDの使用を避けたいためです。しかし、現時点では、StructureGroup情報を返すアプローチはなく、常にページ情報を取得します。

Tridionバージョン:2011 SP1、.netAPI。

注:公開するときは、[SG情報を公開する]チェックボックスをオンにして、正常に公開します。ブローカーDB側では、taxnonomyテーブルの情報も見ることができます。

4

2 に答える 2

3

Odataサービスで遊んでいたのですが、誤ってOdataWebサービスからすべての構造グループ情報を取得できることに気付きました。

/cd_webservice/odata.svc/StructureGroups?$filter=PublicationId%20eq%2045

また、結果はdepthパラメーターを持つ子構造グループを返します。

明確にするために、Broker APIを使用すると、構造グループを取得することはできません(私の最初の質問)。ただし、回避策は、ODataサービスを使用して構造グループを取得することです。

于 2012-09-22T13:20:18.780 に答える
0

QueryオブジェクトからStructureGroupsが返されるとは思いません。

ドキュメントによると、構造グループ情報を公開すると、構造グループ階層がコンテンツ配信側に公開され、分類法として保存されます。

Taxonomy APIを使用して、必要な情報を取得しようとしましたか?

于 2012-09-11T11:31:31.383 に答える