Emilio Consonni


Product Marketing Manager, Gas Devices


<p class="paragraph" style="margin: 0in;"><span class="normaltextrun">Emilio Consonni&nbsp;has been involved in the metering industry for more than 30 years. He has held various positions at Itron, starting with R&amp;D, actively engaged in meter remote reading and electricity grid management projects, up to marketing and sales roles around electricity and gas metering.</span></p> <p><span>After graduating in electronic engineering at the University Politecnico of Milan, Emilio joined industry discussions about metering standards, legal metrology and communication protocols. Today, he sits in leading positions in national and international standardization boards, working closely with international regulatory bodies, from which he has been awarded for his contribution to the standardization work. Throughout his career, Emilio Consonni has led various European research projects on metering the energy of gas.<br /> <br /> In his current position, he&rsquo;s responsible for the marketing of gas devices, supporting the definition portfolio strategy, and facilitating market introduction</span></p>

Kesalahan terjadi ketika Memproses Template.
The following has evaluated to null or missing:
==> authorContentdata.items  [in template "44616#44647#183853" at line 20, 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: authorContentitems = authorContentdat...  [in template "44616#44647#183853" at line 20, column 1]
----
1<#-- 
2Add elements from the sidebar to define your template. Type "${" to use the 
3autocomplete feature. 
4--> 
5<#-- *Permission issue with guest user* 
6<#assign currentEntry = (request.getAttribute("LIFERAY_SHARED_LAYOUT_ASSET_ENTRY"))! /> 
7<#assign classPK = currentEntry.classPK /> 
8--> 
9 
10<#assign  
11currentURL = themeDisplay.getURLCurrent() 
12fullURLPath = currentURL?split("/") 
13urlData = fullURLPath[2] 
14removedParams = urlData?split("?") 
15friendlyURLPath = removedParams[0] 
16/> 
17 
18<#assign 
19authorContentdata = restClient.get("/headless-delivery/v1.0/structured-content-folders/148280/structured-contents?filter=friendlyUrlPath%20eq%20%27" + friendlyURLPath + "%27") 
20authorContentitems = authorContentdata.items 
21/> 
22<#if authorContentitems?has_content> 
23<#assign 
24authorContent = authorContentitems[0] 
25contentFields = authorContent.contentFields 
26categories=authorContent.taxonomyCategoryBriefs 
27authorContentData = jsonFactoryUtil.createJSONObject(authorContent) 
28friendlyURL = authorContentData.friendlyUrlPath 
29authorCategoryId = "0" 
30/> 
31 
32<#list categories as category > 
33				     <#assign authorCategoryId = category.taxonomyCategoryId /> 
34      </#list> 
35 
36 
37<span class="d-none" id="author-id">${authorCategoryId}</span> 
38</#if> 
39<script> 
40AUI().ready(function(){ 
41  const authorID = document.getElementById("author-id").innerHTML; 
42  if(authorID) { 
43	setTimeout(function(){ 
44    document.querySelector('[name="categoryId"][value="'+authorID+'"]').closest('label').click() 
45  }, 1000); 
46
47}); 
48</script>