コアサービスを使用してSDLTridionの子パブリケーションで共有またはローカライズされたコンポーネントのURIに基づいて親コンポーネントのURIを見つける方法を知っている人はいますか?
質問する
746 次
2 に答える
6
ComponentData.BluePrintInfo.OwningRepository.IdRef
そのコンポーネントを「所有する」パブリケーションのTcmUriを取得するために使用できます。これは、コンポーネントが作成またはローカライズされた最初の出版物です。
次に、次のようなものを使用して、適切なコンテキストでコンポーネントUriを取得できます。
internal string GetUriInBlueprintContext(string itemId, string publicationId)
{
if (TcmUri.UriNull == itemId)
return null;
TcmUri itemUri = new TcmUri(itemId);
TcmUri publicationUri = new TcmUri(publicationId);
TcmUri inContext = new TcmUri(itemUri.ItemId, itemUri.ItemType, publicationUri.ItemId);
return inContext.ToString();
}
このTcmUri
クラスは、プロジェクトからも参照できるTridion.Common.dllの一部です。
于 2013-02-07T14:18:17.287 に答える
5
これは、Nunoが提案しているアプローチよりも単純なアプローチであり、dllを参照する必要はありません。
var parentComponentid = ClientAdmin.GetTcmUri(component.Id, component.BluePrintInfo.OwningRepository.IdRef, null);
GetTcmUri
この方法は、TcmUrisを取得するのに適しています。アイテムを含めるパブリケーションIDと、現在のパブリケーションのアイテムのIDを渡すだけです。このようにして、特定の子の出版物で特定のアイテムのIDを見つけることもできます
于 2013-02-07T14:54:00.240 に答える