3

Tridion Core Service を使用して、特定のターゲットのパブリケーションから公開されたすべてのコンポーネントを取得しています。コードは以下のとおりです。多くのコンポーネントが存在する可能性があり、このコードを使用して取得した結果にはすべてのアイテムが含まれているため、結果を絞り込む方法はありますか (ItemType と recursive を false に指定するなど)。

var filter = new PublishTransactionsFilterData
            {
                PublicationTarget = new LinkToPublicationTargetData { IdRef = targetId },
                ForRepository = new LinkToRepositoryData { IdRef = GetPublication(publicationId)},
                BaseColumns = ListBaseColumns.IdAndTitle,
            };

XElement t= Instance.GetSystemWideListXml(filter);
var v = t.Elements().Where(k => k.Attribute("ItemType").Value == "16");
4

1 に答える 1

2

まず、属性ListBaseColumns.IdAndTitleがないため、コードは常に null を返します。ItemType結果を絞り込む唯一の方法はPublishTransactionsFilterData、 で見つけることができる次のプロパティです。

  • このタイムスタンプ内のみを検索する EndDate、StartDate

  • わかっていれば最優先

  • PublishedBy (発行者がわかっている場合)

残りはすべてポスト フィルタリングです。これも問題ありません。XML にあるすべてのものをフィルタリングできます。サンプル XML は次のようになります。

  <tcm:Item ID="tcm:0-241-66560" Title="page" Allow="24576" Deny="67108864" Icon="T64L0P0" ItemType="64" ItemID="tcm:2-72-64" State="4" StateChangeDate="2013-03-11T14:53:55" Publication="Test" PublicationTarget="Local" ItemPath="\Test\New Structure Group" Action="0" ScheduleDate="" UserId="tcm:0-11-65552" User="domain\user" Priority="4" Managed="0" />

任意の属性でポストフィルターできます

于 2013-03-11T14:00:45.200 に答える