E-book International
In recent years, the Internet of Things (IoT) has proved to be one of the most crucial technologies of the 21st century, making it possible to connect people and things seamlessly and automate processes. With continued technological advances, IoT has become more important now than ever before, reducing human effort for several activities and providing tons of data, for later on be processed and give place to meaningful information.
The benefits of IoT are endless: from providing users with a better life quality (through automation and automatic decision making) and automating menial processes, like turning the lights on automatically, to helping organizations make successful data-driven decisions. But all this would not be possible without excellent and seamless connectivity. That is a reliable and continuous connection between a host network and an IoT platform via a special SIM: the IoT SIM.
Download our latest ebook for free here: ebook

Written by
Júlio PinhoContact us
Do you have any questions about an article? Do you need help solving your IT issues?
Contact an expert







Our experts answer your questions
Do you have any questions about an article? Do you need help solving your IT issues?
Java method "com.sun.proxy.$Proxy113.getFriendlyURLLayout(long, boolean, String)" threw an exception when invoked on com.sun.proxy.$Proxy113 object "com.liferay.portal.service.impl.LayoutLocalServiceImpl@81fd493"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: authorPage = layoutLocalService.getFr... [in template "20102#20129#1088017" at line 29, column 41] ----
1<#assign
2layouts = themeDisplay.getLayouts()
3local = themeDisplay.getLocale()
4layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
5extendedSeq = []>
6<#-- set locale for freemarker date otherwise months are not translated in the current language -->
7<#setting locale= local>
8
9<#list layouts as mainpage>
10 <#if mainpage.getFriendlyURL(local) == '/business' &&
11 layout.getFriendlyURL(local)?starts_with('/business')>
12 <#list mainpage.getChildren() as homeSubPages>
13 <#if homeSubPages.getFriendlyURL(local) == '/business/blog'>
14 <#-- homeSubPages is blog homepage -->
15 <#list homeSubPages.getChildren() as articlesBlogPages>
16 <#if articlesBlogPages.getFriendlyURL(local) == '/business/blog/articles'>
17 <#list articlesBlogPages.getChildren() as categoriesBlogPages>
18 <#assign currentCategory = categoriesBlogPages
19 isArticleCategoryPage = false
20 isArticleSubcategoryPage = false>
21 <#list categoriesBlogPages.getChildren() as subCategoriesBlogPages>
22 <#assign currentSubCategory = subCategoriesBlogPages
23 listArticles = subCategoriesBlogPages.getChildren()>
24 <#if listArticles??>
25 <#list listArticles as articleElement>
26 <#assign dateArticle = articleElement.getExpandoBridge().getAttribute('Blog display date from')
27 authorPageUrl = articleElement.getExpandoBridge().getAttribute('Blog author page url')
28 authorTruncatedUrl = "/business" + authorPageUrl?keep_after("/business")
29 authorPage = layoutLocalService.getFriendlyURLLayout(groupId, false, authorTruncatedUrl)
30 authorImage = authorPage.getExpandoBridge().getAttribute('Blog image url')
31 articleImage = articleElement.getExpandoBridge().getAttribute('Blog image url')>
32 <#if authorPage.getFriendlyURL(local) == layout.getFriendlyURL(local)>
33 <#assign
34 <#-- insert the article required data inside the hash -->
35 articlePagesHash = {"date": dateArticle?datetime, "friendlyUrl": articleElement.getRegularURL(request),
36 "categoryName": currentCategory.getHTMLTitle(local), "categoryUrl": currentCategory.getRegularURL(request),
37 "subCategoryName": currentSubCategory.getHTMLTitle(local), "subCategoryUrl": currentSubCategory.getRegularURL(request),
38 "articleImage": articleImage, "articleTitle": articleElement.getHTMLTitle(local),
39 "articleDescription": articleElement.getDescription(local), "authorName": authorPage.getHTMLTitle(local),
40 "authorFriendlyUrl": authorPage.getRegularURL(request), "authorImage": authorImage}
41 extendedSeq += [articlePagesHash]>
42 </#if>
43 </#list>
44 </#if>
45 </#list>
46 </#list>
47 </#if>
48 </#list>
49 </#if>
50 </#list>
51 </#if>
52</#list>
53
54<#assign sortedListArticlePagesByDate = extendedSeq?sort_by("date")?reverse>
55
56<#if sortedListArticlePagesByDate?size != 0>
57 <section class="module module-cards-article" >
58 <div class="container">
59 <div class="row justify-content-center">
60 <div class="col-lg-12">
61
62 <div class="title-wrapper">
63 <h3 class="bottom-cut">${Title.getData()} ${layout.getHTMLTitle(local)}</h3>
64 </div>
65
66 <div class="content-list">
67 <div class="row">
68 <#list sortedListArticlePagesByDate as articles>
69 <div class="col-lg-4">
70 <div class="card card-article card-article-small">
71 <div class="card-wrapper">
72 <div>
73 <div class="card-img-wrapper">
74 <a data-senna-off="true" href="${articles.friendlyUrl}">
75 <img src="${articles.articleImage}" class="img-fluid object-fit" alt="">
76 </a>
77 </div>
78
79 <div class="card-text-wrapper">
80 <div class="badge-wrapper">
81 <a data-senna-off="true" href="${articles.categoryUrl}" class="badge badge-small badge-blue-business ">${articles.categoryName}</a>
82 <a data-senna-off="true" href="${articles.subCategoryUrl}" class="badge badge-small badge-blue-business ">${articles.subCategoryName}</a>
83 </div>
84
85 <h3><a data-senna-off="true" href="${articles.friendlyUrl}">${articles.articleTitle}</a></h3>
86 <p>${articles.articleDescription}</p>
87 </div>
88 </div>
89 <div>
90 <a data-senna-off="true" href="${articles.friendlyUrl}" class="btn btn-link"
91 <#if LinkLabel.LinkAriaLabel?? &&
92 LinkLabel.LinkAriaLabel?has_content &&
93 LinkLabel.LinkAriaLabel.getData()?has_content>
94 aria-label="${LinkLabel.LinkAriaLabel.getData()}"</#if>>
95 ${LinkLabel.getData()} <i class="icon-chevron-right"></i></a>
96 <div class="card-details-wrapper">
97 <div class="author">
98 <div class="author-img-wrapper">
99 <img src="${articles.authorImage}" class="img-fluid object-fit" alt="">
100 </div>
101 <div>
102 <p class="title">${AuthorLabel.getData()}</p>
103 <a data-senna-off="true" href="${articles.authorFriendlyUrl}"
104 class="value stretched-link"
105 <#if AuthorLabel.AuthorAriaLabel?? &&
106 AuthorLabel.AuthorAriaLabel?has_content &&
107 AuthorLabel.AuthorAriaLabel.getData()?has_content>
108 aria-label="${AuthorLabel.AuthorAriaLabel.getData()} ${articles.authorName}"</#if>>
109 ${articles.authorName}
110 </a>
111 </div>
112 </div>
113 <div class="date">
114 <p class="title">${PublicationLabel.getData()}</p>
115 <p class="value">${articles.date?string["dd MMMM yyyy"]}</p>
116 </div>
117 </div>
118 </div>
119 </div>
120 </div>
121 </div>
122 </#list>
123 </div>
124 </div>
125 </div>
126 </div>
127 </div>
128 </section>
129</#if>
Other articles in the category IoT & Connectivity
Internet access for professionals on the move
Where individual employees are regularly expected to travel or work from multiple sites, mobile data connectivity solutions are one possibility.

Author
Benjamin VasseurPublished on
18 July 2023
Why outsource your print management?
In the heart of an organisation, the management and monitoring of your printing can be a burden. What if, to meet your needs in this area, you opted for an outsourced service to monitor and manage your printing solutions, as POST offers? This approach allows you to save money, reduce your environmental footprint while contributing to the productivity of your teams and improving the security of your information
Author
Béatrice SeiwertPublished on
10 November 2022
5G: now a reality filled with opportunity
5G tackles the issue of increasing production and consumption of data through mobile devices. For smartphone users, the switch from 4G to 5G will not so much be an evolution as a revolution.

Author
Justin StephanyPublished on
04 October 2022