Soy bastante nuevo en Tridion y tengo que implementar una funcionalidad que permita a un editor de contenido crear un componente y asignarle varios intervalos de fechas (fechas disponibles). Estos deberán ser consultados por el agente para proporcionar una funcionalidad de búsqueda.Formato de almacenamiento de metadatos incrustado de Tridion 2009 en el corredor
Originalmente, esto solo requería una única fecha de inicio y finalización, por lo que se implementaron como campos de metadatos individuales.
Propongo utilizar un esquema incrustado dentro del campo de metadatos 'fechas disponibles' del esquema para permitir que se asignen múltiples fechas de inicio y finalización.
Sin embargo, como el campo ahora permite valores múltiples, los datos se almacenan en el intermediario como valores separados por comas en la columna 'KEY_STRING_VALUE' en lugar de como un valor de fecha en la columna 'KEY_DATE_VALUE' como solo permitía un único valor de inicio y final.
por ejemplo.
KEY_NAME | KEY_STRING_VALUE
end_date | 2012-04-30T13: 41: 00, 2012-06-30T13: 41: 00
fecha de inicio | 2012-04-21T13: 41: 00, 2012-06-01T13: 41: 00
Esto ahora está causando problemas con las consultas de mi broker ya que no puedo usar la lógica de consulta simple para recuperar los elementos que necesito para la búsqueda basado en las fechas.
Antes de comenzar a escribir la lógica C# para analizar estas fechas separadas por comas y buscarlas, me preguntaba si alguien había tenido requisitos/experiencias similares en el pasado y lo había implementado de una manera diferente para reducir la cantidad de requiere el análisis de código y para usar la consulta del agente para completar la búsqueda.
estoy desarrollando en este Tridion 2009, pero utilizando el 5,3 Broker (por razones de compatibilidad) lo que la consulta actualmente parece que esto (por las fechas individuales de inicio/final):
query.SetCustomMetaQuery((KEY_NAME='end_date' AND KEY_DATE_VALUE>'" + startDateStr + "') AND (ITEM_ID IN(SELECT ITEM_ID FROM CUSTOM_META WHERE KEY_NAME='start_date' AND KEY_DATE_VALUE<'" + endDateStr + "')))";
cualquier ayuda se apreciado enormemente.
Nunca he usado 5.3 Broker, ¿permite la palabra clave 'IN'? –
Sí, la consulta que he agregado arriba tiene ejemplos de la palabra clave 'IN' que se usa, que es excelente para valores únicos, pero los valores múltiples ya no se almacenan como fechas, sino como una cadena de fechas separadas por comas (como valor de cadena)) lo que significa que ya no puedo hacer consultas basadas en la fecha como lo hice anteriormente. –
Así es, lo siento, no lo vi y de todos modos no me ayudó, ¡lo siento! –