Ich habe Probleme beim Laden einer dynamischen Komponentenpräsentation vom Broker basierend auf einer ziemlich einfachen Abfrage wie unten, wo ich versuche, die Komponente basierend auf einem bestimmten Keyword zu laden:Tridion 2009 SP1 Broker gibt keine Ergebnisse zurück
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;
}
}
}
kann ich den Artikel in der ITEMS_CATEGORIES_AND_KEYWORDS Tabelle in der Broker-Datenbank mit dem Stichwort sehe ich erwarte und ich kann die CP manuell laden, wenn ich die Abfrage kommentieren und codieren die TCM-ID in.
ich habe Stellen Sie sicher, dass die Kategorie veröffentlicht wurde und dass alle Werte der Variablen korrekt sind.
Ich habe sichergestellt, dass das Schlüsselwort einen Wert und einen Schlüssel auf den entsprechenden Wert hat.
Was kann ich noch überprüfen?
Abfrage scheint diese Methode nicht zu haben. Ich bin mir nicht sicher, was uns das sagt. –