gpt4 book ai didi

Tridion 2009 SP1 Broker 未返回结果

转载 作者:行者123 更新时间:2023-12-04 10:41:47 25 4
gpt4 key购买 nike

我无法根据如下所示的相当简单的查询从 Broker 加载动态组件演示文稿,我正在尝试根据使用特定关键字标记的组件加载该组件:

    private string GetComponentPresentations()
{
Logger.Log.Info("Entered GetComponentPresentations");
var publicationCriteria = new PublicationCriteria(_publicationId);

int schemaId = int.Parse(SchemaId.Split('-')[1]);

// Is it the correct content type (Schema)
var isSpecifedSchema = new ItemSchemaCriteria(schemaId);

// Type of the item is 16 (Component).
var isComponent = new ItemTypeCriteria(16);

// All of the above conditions must be true
Criteria isCorrectComponent = CriteriaFactory.And(isSpecifedSchema, isComponent);

var publicationAndIsComponent = CriteriaFactory.And(publicationCriteria, isCorrectComponent);

//Only get components tagged with the specified keyword
var keywordCriteria = new KeywordCriteria(_productsCategoryTcmId, ProductFilter, Criteria.Equal);

//Only get Components of the correct type from the correct publication
Criteria fullCriteria = CriteriaFactory.And(publicationAndIsComponent, keywordCriteria);


using (var query = new Query(fullCriteria))
{
string[] results = query.ExecuteQuery();
using (var cpf = new ComponentPresentationFactory(_publicationId))
{
if(results != null)
{
var resultString = new StringBuilder();

foreach (string componentTcmId in results)
{
Logger.Log.Info("Looping over results");

int componentId = int.Parse(componentTcmId.Split('-')[1]);

int templateId = int.Parse(TemplateId.Split('-')[1]);

ComponentPresentation cp = cpf.GetComponentPresentation(componentId, templateId);

if (cp != null && !string.IsNullOrEmpty(cp.Content))
{
resultString.Append(cp.Content);
Logger.Log.InfoFormat("Appended Content {0}",cp.Content);
}
}

Logger.Log.Info("Returning");
return resultString.ToString();
}

Logger.Log.Info("Results was null.");
return string.Empty;
}
}

}

我可以使用我期望的关键字在 Broker 数据库的 ITEMS_CATEGORIES_AND_KEYWORDS 表中看到该项目,如果我注释掉查询并硬编码 TCM ID,我可以手动加载 CP。

我已经确保发布了类别并且所有变量的值都是正确的。

我已经确保 Keyword 有一个值和一个设置为适当值的键。

我还能检查什么?

最佳答案

我建议从查询中一一删除每个条件,并检查每个条件返回的结果。

要检查的另一件事是您正在使用您认为的 API。 Tridion 有两个非常相似的用于 Broker 查询的 API。仔细检查您是否链接到正确的程序集。

关于Tridion 2009 SP1 Broker 未返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10737993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com