Estados financieros


Revisa los Estados Financieros trimestrales de Transbank.

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> utilLocator  [in template "20101#20131#9486116" at line 27, column 60]

----
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: #assign dLFileEntryMetadataLocalServi...  [in template "20101#20131#9486116" at line 27, column 17]
----
1<#assign layout = themeDisplay['plid'] /> 
2<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
3<#assign layoutObject = layoutService.getLayout(layout?number) /> 
4<#assign portalNameGTM = layoutObject.getGroup().getExpandoBridge().getAttribute('categoria-portal-gtm')!"Portal público" > 
5<#assign eventoGTM = layoutObject.getGroup().getExpandoBridge().getAttribute('evento-portal-gtm')!"evento-interactivo" > 
6<#assign accionDownloadGTM = layoutObject.getGroup().getExpandoBridge().getAttribute('accion-download-portal-gtm')!"download" > 
7<div class="container p-0 mt-5" id="docEstado"> 
8    <#if entries?has_content> 
9        <div class="row sherd-row-mx-0" id="myTabContent"> 
10            <#list entries as curEntry> 
11    		    <#assign assetRenderer = curEntry.getAssetRenderer() /> 
12 
13    		    <#assign getURL = ''/> 
14    		    <#if assetRenderer.getURLDownload(themeDisplay)?has_content> 
15    		        <#assign getURL = assetRenderer.getURLDownload(themeDisplay)/> 
16    		    </#if> 
17    		     
18    		    <#assign getIMG = ''/> 
19    		    <#if assetRenderer.getThumbnailPath(renderRequest)?has_content> 
20    		        <#assign getIMG = assetRenderer.getThumbnailPath(renderRequest) /> 
21    		    </#if> 
22 
23                <#assign dlFileEntryService = serviceLocator.findService('com.liferay.document.library.kernel.service.DLFileEntryService') />  
24                 
25                <#assign file = dlFileEntryService.getFileEntry(curEntry.getClassPK())/> 
26 
27                <#assign dLFileEntryMetadataLocalService = utilLocator.findUtil("com.liferay.document.library.kernel.service.DLFileEntryMetadataLocalService") /> 
28                 
29                <#assign dLFileEntryTypeLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryTypeLocalService") /> 
30                 
31                <#assign dlFileEntryType = dLFileEntryTypeLocalService.getFileEntryType(file.getFileEntryTypeId()) /> 
32                 
33                <#assign 
34                  storageEngine = serviceLocator.findService("com.liferay.dynamic.data.mapping.storage.StorageEngine") 
35                  ddmStructures = dlFileEntryType.getDDMStructures() 
36                  ddmStructure = ddmStructures?first 
37                  dlFileEntryMetadata = dLFileEntryMetadataLocalService.getFileEntryMetadata(ddmStructure.getStructureId(), file.getFileVersion().getFileVersionId()) 
38                  ddmFormValues = storageEngine.getDDMFormValues(dlFileEntryMetadata.getDDMStorageId()) 
39                  ddmFormFieldValuesMap = ddmFormValues.getDDMFormFieldValuesMap() 
40                /> 
41                <#assign  
42                  titulo = ddmFormFieldValuesMap['Titulo'][0].getValue().getString(locale)  
43                  TextoBotonDescargar = ddmFormFieldValuesMap['TextoBotonDescargar'][0].getValue().getString(locale)  
44                /> 
45                <div class="col-md-6 col-xl-4"> 
46                    <div class="sherd-card card--default no-border p-1 mb-4"> 
47                        <div class="d-flex align-items-center"> 
48                     
49                            <img class="rounded-left" src="${getIMG}" width="85" height="143" alt="Descarga Estado Financiero - ${getIMG}" loading="lazy"/> 
50 
51                            <div class="card__body--document d-flex flex-column justify-content-between px-3 pl-lg-4 pr-lg-3 py-2"> 
52                                <div> 
53                                    <p class="mb-2 c-grey-200 fs-3 text-break"> 
54                                        ${titulo} 
55                                    </p>    
56                                    <h2 class="card__title c-grey-300 fs-4 text-break"> 
57                                        ${curEntry.getTitle(locale)} 
58                                    </h2> 
59                                </div> 
60                                 
61                                <a class="fs-3 c-info-200 d-flex align-items-center a-estados-financieros" href="${getURL}" download target="_blank" data-title="${curEntry.getTitle(locale)}"> 
62                                    ${TextoBotonDescargar} 
63                                    <i class="eva fs-4 ml-2 eva-download"></i> 
64                                </a> 
65                            </div> 
66                        </div> 
67                    </div> 
68                </div>         
69            </#list> 
70        </div> 
71    <script> 
72        $( ".a-estados-financieros" ).click(function() { 
73            tagEventoInteractivo('${eventoGTM}', '${portalNameGTM} - Estados financieros', '${accionDownloadGTM}', $(this).attr("data-title")); 
74        }); 
75    </script> 
76    </#if> 
77</div>