Saturday, 24 February 2018

NOT IN operator in Liferay DXP

NOT IN Operator in Liferay DXP

For Ex.

select userId from user_ where userId  NOT IN select userId from organization_


        List<User> us = UserLocalServiceUtil.getUsers(-1, -1);
System.out.println("total records " + us.size());
  
        Projection pr = ProjectionFactoryUtil.property("userId");

DynamicQuery dq = OrganizationLocalServiceUtil.dynamicQuery();
dq.setProjection(pr);
dq.setProjection(ProjectionFactoryUtil.distinct(pr));
        List<Long> orgUserId = OrganizationLocalServiceUtil.dynamicQuery(dq);
        System.out.println("Dinstinct UserId From  Organization Table : - " + orgUserId.size());

DynamicQuery dynamicQuery = UserLocalServiceUtil.dynamicQuery();
dynamicQuery.add(PropertyFactoryUtil.forName("userId").notIn(dq));
dynamicQuery.setProjection(pr);
dynamicQuery.setProjection(ProjectionFactoryUtil.distinct(pr));
List<Long> userIdlist = UserLocalServiceUtil.dynamicQuery(dynamicQuery);


System.out.println("Actual Result = total-from org table " + userIdlist.size());


Here column data type should be NOT NULL.

Tuesday, 13 February 2018

Embed Webcontent using Title using Freemarker template in liferay dxp

<#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") />
<#assign theme_groupID = htmlUtil.escape(theme_display.getCompanyGroupId()?string) />
<#assign VOID = freeMarkerPortletPreferences.setValue("groupId", '${group_id}') />
<#assign journalArticleLocalService =          serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
<#assign footercontentarticle = journalArticleLocalService.getArticleByUrlTitle(group_id,"footercontent")/>
<#assign VOID = freeMarkerPortletPreferences.setValue("articleId", footercontentarticle.getArticleId()) />

        <@liferay_portlet["runtime"]
        defaultPreferences="${freeMarkerPortletPreferences}"
        portletProviderAction=portletProviderAction.VIEW
        instanceId="footercontent"
        portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" />
        ${freeMarkerPortletPreferences.reset()}


Setting ===>
  For embedding WebContent in Liferay 7, first of all, you have to enable serviceLocator in Control Panel -> Configuration -> System Settings -> Foundation -> FreeMarker Engine -> Restricted Variables. There you can remove serviceLocator


References 
1> https://stackoverflow.com/questions/38227528/how-to-embed-webcontent-in-freemarker-liferay-7-theme

Sunday, 11 February 2018

Embed Web content using Article ID in Liferay DXP

<#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") />
<#assign theme_groupID = htmlUtil.escape(theme_display.getCompanyGroupId()?string) />
<#assign VOID = freeMarkerPortletPreferences.setValue("groupId", '${group_id}') />
<#assign VOID = freeMarkerPortletPreferences.setValue("articleId", "yourarticleid") />



        <@liferay_portlet["runtime"]
        defaultPreferences="${freeMarkerPortletPreferences}"
        portletProviderAction=portletProviderAction.VIEW
        instanceId="footercontent"
        portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" />
        ${freeMarkerPortletPreferences.reset()}
yourarticleid --> Create web content and mention web content ID