/o//commerce-media/accounts/-1/images/18755109?download=true

Voice Actions
Data Modeling, Process & Business Logic
18755061
Voice Actions Portlet is developed by Surekha Technologies which gives you the control over your portal using your voice. Voice Actions Portlet will perform different action according to given voice command. Portlet will work with predefined voice commands. Users are able to extend the portlet capabilities by adding their own voice commands.Voice Actions Portlet allows you to navigate through portal * Voice Actions will only work within the page where you have added the portlet. If you want to get it worked within the whole portal then you need to embed this portlet in your theme.>------------------------------------------------------------------------------------------------------------Do you have any queries? Please contact us at lrapps@surekhatech.com.
------------------------------------------------------------------------------------------------------------
DEVELOPER
DEVELOPER
24/10/14 5:05
Published date
24/10/14 5:05
Published Date
24/10/14 5:05
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> channel.items  [in template "3192443#3192485#null" at line 18, column 30]

----
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 channelId = channel.items[0].id  [in template "3192443#3192485#null" at line 18, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications&productSpecifications.pageSize=-1") 
27	specifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if specifications?has_content> 
32		<#assign 
33			liferayVersionSpecification = specifications?filter(item -> stringUtil.equals(item.specificationKey, "liferay-version")) 
34		/> 
35 
36		<#if liferayVersionSpecification?has_content> 
37		 	<#list liferayVersionSpecification as liferayVersion> 
38				<#assign liferayVersionValue = liferayVersion.value /> 
39 
40				<#if liferayVersionValue?has_content> 
41					${liferayVersionValue}<#if liferayVersion?has_next>,</#if> 
42				</#if> 
43		  </#list> 
44		</#if> 
45	</#if> 
46</div> 
Resource Requirements
Edition
CE
PRICE
Paid
help & support
SHARE LINK
Copy & Share

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.