S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> customDDMTemplateUtil [in template "975784#975823#10092953" at line 25, column 88]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: @liferay_journal["journal-article"] a... [in template "975784#975823#10092953" at line 23, column 73]
----
1<#if entries?has_content>
2 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
3 <div class="mj-catalogo">
4 <#list entries as curEntry>
5 <#if curEntry.className == "com.liferay.journal.model.JournalArticle">
6 <#assign article = journalArticleLocalService.fetchLatestArticle(curEntry.classPK)>
7 <#assign ddmStructureKey = article.DDMStructureKey>
8 <#-- Se recuperan las structureKeys de cada tipo de catalogo, para evitar el uso de Ids numéricos -->
9 <#assign ddmStructureKeyServicio = getStructureKeyByStructureName("STC_SERVICIO")>
10 <#assign ddmStructureKeySolucion = getStructureKeyByStructureName("STC_SOLUCION")>
11
12 <#switch ddmStructureKey>
13 <#case ddmStructureKeyServicio>
14 <!-- Estructura de servicios -->
15 <@liferay_journal["journal-article"]
16 articleId=article.articleId
17 ddmTemplateKey=customDDMTemplateUtil.getDDMTemplateKeyByPatternArticleIdGroupId("TMP_SERVICIO_RESUMEN", article.articleId, scopeGroupId)
18 groupId=article.groupId?number
19 />
20 <#break>
21 <#case ddmStructureKeySolucion>
22 <!-- Estructura de soluciones -->
23 <@liferay_journal["journal-article"]
24 articleId=article.articleId
25 ddmTemplateKey=customDDMTemplateUtil.getDDMTemplateKeyByPatternArticleIdGroupId("TMP_SOLUCION_SEARCH_RESULT", article.articleId, scopeGroupId)
26 groupId=article.groupId?number
27 />
28 <#break>
29 </#switch>
30 </#if>
31 </#list>
32 </div>
33</#if>
34
35<#-- Función para recuperar el structureKey de una estructura por nombre -->
36<#function getStructureKeyByStructureName name>
37 <#assign ddmStructureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService") />
38 <#assign structures = ddmStructureLocalService.getStructures(groupId)>
39
40 <#list structures as structure>
41 <#if structure.getNameCurrentValue() == name>
42 <#return structure.structureKey>
43 </#if>
44 </#list>
45</#function>