'dan daha fazla öğe döndürür Bir Blueprint öğesinin tüm alt öğelerini, Tridion Core Service ile GetListUsingItems yaklaşımını kullanarak almak istiyorum. Temel Hizmet ile farklı sonuçları (daha fazla) TOM'daki eski yoldan geri aldım. Görünüşe göre, bir Bileşen Bağlantısı yoluyla kaynak Bileşenime referans veren diğer Bileşenleri de geri aldım. Çekirdek Hizmette bir filtre seçeneği eksik miyim?Tridion Core Service ile GetListUsingItems, TOM
Tridion 5.3:
Function GetLocalizedItemNodes(itemUri)
Dim tridionItem : set tridionItem = tdse.GetObject(itemUri,1)
Dim rowFilter : set rowFilter = tdse.CreateListRowFilter()
call rowFilter.SetCondition("ItemType", GetItemType(itemUri))
call rowFilter.SetCondition("InclLocalCopies", true)
Dim usingItemsXml : usingItemsXml = tridionItem.Info.GetListUsingItems(1919, rowFilter)
Dim domDoc : set domDoc = GetNewDOMDocument()
domDoc.LoadXml(usingItemsXml)
Dim nodeList : set nodeList = domDoc.SelectNodes("/tcm:ListUsingItems/tcm:Item[@CommentToken='LocalCopy']")
set tridionItem = nothing
set domDoc = nothing
set GetLocalizedItemNodes = nodeList
End Function
Tridion 2011 SP1 Çekirdek Hizmeti:
private XElement GetLocalizedItems(string itemUri)
{
XElement usingXML = null;
try
{
CoreServiceClient client = new CoreServiceClient();
client.ClientCredentials.Windows.ClientCredential.UserName = ConfigurationManager.AppSettings["impersonationUser"].ToString(); // "administrator";
client.ClientCredentials.Windows.ClientCredential.Password = ConfigurationManager.AppSettings["impersonationPassword"].ToString();
client.ClientCredentials.Windows.ClientCredential.Domain = ConfigurationManager.AppSettings["impersonationDomain"].ToString();
// original code from http://www.tridiondeveloper.com/getting-used-items-using-the-core-service
// Create a filter
UsingItemsFilterData usingItemsFilterData = new UsingItemsFilterData
{
BaseColumns = ListBaseColumns.IdAndTitle, // to specify the detail in the XML
IncludeLocalCopies = true,
ItemTypes = new[] { ItemType.Component }
};
// Get the XML by calling .GetListXml on the client (assumes you have a 'client' object already)
usingXML = client.GetListXml(itemUri, usingItemsFilterData);
}
catch (Exception ex)
{
throw;
}
return usingXML;
}
Merhaba Robert BluePrintNodeData nesnelerin size dizi döndürür GetSystemWideList yöntemi kullanabilirsiniz olmasıdır. Geri aldığınız Bileşenlerin sayısını etkilememelidir (kaynak öğeniz bir Bileşen olduğu için), ancak R5.3 kodunuzun bir 'ItemType' satır filtresi belirlediğine dikkat etmelisiniz (yalnızca Bileşenleri alacağınız anlamına gelir) geri) ancak Temel Servis kodunuz yok. Bu, toplam sonuç sayınızı etkileyebilir, ancak Bileşenler (açıkladığınız gibi) miktarını etkilemez. –
ItemTypes koşulunu ekledim ancak yine de ilgili Bileşenleri ve çocukları da aldım. Başka fikirlerin var mı? – robrtc