Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> product.productId [in template "34352066712900#33336#null" at line 10, column 22]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
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 productId = product.productId [in template "34352066712900#33336#null" at line 10, column 1]
----
1<#-- Variables -->
2<#assign isDebug = false>
3<#assign channelResponse = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?filter=name eq 'Aenor Tienda'")>
4<#assign channel = channelResponse.items[0]>
5<#assign channelId = channel.id>
6<#assign product = getProduct(channelId, CPDefinition_cProductId.getData()) />
7
8<#-- Product data -->
9<#assign displayDateProduct = CPDefinition_displayDate.getData() />
10<#assign productId = product.productId />
11<#assign cpDefinitionId = product.id />
12<#assign productERC = product.externalReferenceCode />
13
14<#assign categoriesProduct = getProductCategories(channelId, productId) />
15<#assign hasProductCategoriaTipoEntidadLibro = isVocabularyNameIntoCategories(categoriesProduct, 'entity type', 'libro') />
16<#assign hasProductCategoriaTipoEntidadNorma = isVocabularyNameIntoCategories(categoriesProduct, 'entity type', 'norma') />
17<#assign hasProductCategoriaTipoEntidadColeccionTematica = isVocabularyNameIntoCategories(categoriesProduct, 'entity type', 'coleccion tematica') />
18
19
20
21<#-- Functions -->
22<#function getProductCategories channelId productId>
23 <#return restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/${channelId}/products/${productId}/categories?sort=vocabulary").items>
24</#function>
25
26
27<#function isVocabularyNameIntoCategories categories vocabulary name>
28 <#assign found = false />
29
30 <#if categories?has_content && vocabulary?has_content && name?has_content>
31
32 <#assign vocabNorm = normalize(vocabulary) />
33 <#assign nameNorm = normalize(name) />
34
35 <#list categories as category>
36 <#if !found>
37 <#assign catVocabNorm = normalize(category.vocabulary) />
38 <#assign catNameNorm = normalize(category.name) />
39
40 <#if catVocabNorm == vocabNorm && catNameNorm == nameNorm>
41 <#assign found = true />
42 </#if>
43 </#if>
44 </#list>
45
46 </#if>
47
48 <#return found>
49</#function>
50
51
52<#function getProduct channelId productId>
53 <#return restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/${channelId}/products/${productId}")>
54</#function>
55
56
57<#function normalize text onlyAccents = false>
58 <#-- proteger null -->
59 <#if !text?has_content>
60 <#return "">
61 </#if>
62
63 <#assign t = text />
64
65 <#-- quitar acentos -->
66 <#assign t = t
67 ?replace("á","a")?replace("é","e")?replace("í","i")
68 ?replace("ó","o")?replace("ú","u")?replace("ü","u")
69 ?replace("ñ","n")
70 ?replace("Á","A")?replace("É","E")?replace("Í","I")
71 ?replace("Ó","O")?replace("Ú","U")?replace("Ü","U")
72 ?replace("Ñ","N")
73 />
74
75 <#-- si NO es solo acentos, normalización completa -->
76 <#if !onlyAccents>
77 <#assign t = t?lower_case />
78 <#assign t = t?trim />
79 <#assign t = t?replace("\\s+", " ", "r") />
80 </#if>
81
82 <#return t>
83</#function>
84
85
86
87<#-- Div with data -->
88<#-- Se incluye desde dxp-ecom-portal/misc/adt/tienda/Detalle producto/ECOM-Generic-Scripts.ftl -->
89<#--
90 <#if hasProductCategoriaTipoEntidadLibro>
91 <div id="ecom-scripts">
92 <div class="data-product-wrapper"
93 data-product-id="${productId}"
94 data-product-erc="${productERC}"
95 data-product-cpdefinition-id="${cpDefinitionId}"
96 data-channel-id="${channelId}"
97 data-product-islibro="${hasProductCategoriaTipoEntidadLibro?c}"
98 data-product-isnorma="${hasProductCategoriaTipoEntidadNorma?c}"
99 data-product-iscolecciontematica="${hasProductCategoriaTipoEntidadColeccionTematica?c}"
100 />
101 </div>
102 </#if>
103-->
104
105<#-- Script JS -->
106<#if hasProductCategoriaTipoEntidadColeccionTematica>
107
108
109 <script id="ecom-coleccion_tematica-scripts">
110
111 window.ecomColeccionTematicaScripts = window.ecomColeccionTematicaScripts || (function () {
112
113 /* =====================================
114 PROPIEDADES PRIVADAS
115 ===================================== */
116 const privateProps = window.ecomColeccionTematicaScripts?.privateProps || {
117 querySelectors: {}
118 };
119
120 /* =====================================
121 INICIALIZACIÓN DE PROPERTIES PRIVADAS
122 ===================================== */
123 (function initPrivateProps() {
124 /*privateProps.test1 = {
125 test11: "",
126 test111: {
127 test1112: "00,00",
128 test1113: "€",
129 test1114: "00",
130 test1115: "000-00-000",
131 test1116: "0000",
132 test1117: "000"
133 },
134 test2: ""
135 };
136 */
137 })();
138
139 /* =====================================
140 PROPIEDADES PÚBLICAS
141 ===================================== */
142
143 const publicProps = {
144 funcsEcomGlobalScripts: null,
145 propsEcomGlobalScripts: null,
146 isDebug: false
147 };
148
149 /* =====================================
150 INICIALIZACIÓN DE PROPERTIES PÚBLICAS
151 ===================================== */
152 (function initPublicProps() {
153
154 // Obtener referencias de ecomGlobalScripts
155 publicProps.funcsEcomGlobalScripts = window.ecomGlobalScripts?.functions || {};
156 publicProps.propsEcomGlobalScripts = window.ecomGlobalScripts?.properties || {};
157
158 // Configurar debug
159 publicProps.isDebug = (${isDebug?c} || publicProps.propsEcomGlobalScripts?.isDebug) ?? false;
160
161 })();
162
163 /* =====================================
164 FUNCIONES PÚBLICAS
165 ===================================== */
166
167 //En functions declaramos la functions publicas
168 const functions = {};
169
170 functions.init = async function () {
171 await _DOMContentLoaded();
172 };
173
174 /* =====================================
175 FUNCIONES PRIVADAS
176 ===================================== */
177
178 const _DOMContentLoaded = async function () {
179 //Se llama desde [dxp-ecom-portal/misc/adt/tienda/Detalle producto/ECOM-Global-Scripts.ftl] desde: document.addEventListener("DOMContentLoaded")
180
181 if (publicProps.isDebug) console.log("DOMContentLoaded ecom Coleccion tematica scripts");
182
183 window.ecomGlobalScripts?.functions?.pushViewItemEvent?.({
184 name: "${product.name?js_string}",
185 id: "${productERC?js_string}",
186 category: "Colecciones temáticas"
187 });
188 };
189
190 /* =====================================
191 FUNCIONES PRIVADAS
192 ===================================== */
193 //No hay funciones privadas
194
195 // ---- Execute Listener DOMContentLoaded ----
196 document.addEventListener("DOMContentLoaded", async function() {
197 //Se llama desde [dxp-ecom-portal/misc/adt/tienda/Detalle producto/ECOM-Global-Scripts.ftl] desde: document.addEventListener("DOMContentLoaded")
198 //await _DOMContentLoaded();
199 });
200
201 /* =====================================
202 API PÚBLICA
203 ===================================== */
204 return {
205 properties: publicProps, // properties public
206 functions: functions // functions public
207 };
208
209 })();
210
211 </script>
212
213</#if>
IEC 61008-2-1:1990
Residual current operated circuit-breakers without integral overcurrent protection for household and similar uses (RCCB's). Part 2-1: Applicability of the general rules to RCCB's functionally independent of line voltage
Se ha producido un error inesperado.
| Fecha edición: |
2024-11-21
Anulada
|
|---|---|
| Fecha de anulación: | 2024-11-21 |
| Idiomas disponibles: | Español, Inglés, Francés |
| ICS: | 29.120.50 - Fusibles y otros dispositivos de protección contra sobreintensidades |
| CTN: | TC 23/SC 23E - 1421 |
|
Anulaciones Normas |
Es anulada por IEC 61008-2-1:2024 |










