Touchpoint in HCL Connections 6.5CR1

· by Christoph Stoettner · Read in about 3 min · (481 words)

HCL included some additional apps with HCL Connections 6.5CR1. One of them is Touchpoint, which can be used to present users the "Terms and Conditions" (or Privacy and Guidelines) of the environment and some help creating their profile, network and become member of their first communities.

Touchpoint writes some profile extension entries in the PEOPLEDB database in the table PROFILE_EXTENSIONS, most important:

  • touchpointState: stores the information if a user has completed Touchpoint and the timestamp of completion

  • privacyAndGuidelines: Version number of accepted Privacy Guidelines

Example

"PROF_KEY""PROF_PROPERTY_ID""PROF_VALUE"

"94caae68-8eb7-42fd-ac76-e04d4c0ab6bf"

touchpointState

"{""state"":""complete"",""timestamp"":1599817448000}"

"94caae68-8eb7-42fd-ac76-e04d4c0ab6bf"

privacyAndGuidelines

"2.1"

To activate touchpoint itself, you have to edit touchpoint-config.xml in the LotusConnections-config folder of your Websphere deployment.

Activate and Configure Touchpoint

<config id="touchpoint" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="touchpoint-config.xsd">
    <uiEnabled>true</uiEnabled>     (1)
    <steps>
        <paths>
            <defaultPath>welcome,editProfile,profileTags,findColleagues,followCommunities</defaultPath>
            <icExternalPath>welcome,editProfile,profileTags</icExternalPath>
            <pagStandalone>pagStandalone</pagStandalone>
        </paths>
        <order>welcome,editProfile,profileTags,findColleagues,followCommunities</order>
        <welcome>
            <templateFile>templates/welcome.html</templateFile>
        </welcome>
    </steps>
    <privacyAndGuidelines>
        <enabled>true</enabled>     (2)
        <version>2.1</version>      (3)
        <externalLink>https://stoeps.de</externalLink>
        <internalLink>https://stoeps.de</internalLink>
    </privacyAndGuidelines>
    <maxPromotedExperts>3</maxPromotedExperts>
    <promotedExperts/>
    <maxPromotedCommunities>3</maxPromotedCommunities>
    <promotedCommunities/>
    <welcomeVideoUrl/>
    <contentDirectory>/opt/nfs/touchpoint/</contentDirectory>
    <orientMe>
        <enabled>false</enabled>
        <socialCtxRoot>/social</socialCtxRoot>
        <itmCtxRoot>/itm</itmCtxRoot>
    </orientMe>
</config>
1Set to true to enable Touchpoint
2Set to true to enable Privacy and Guidelines
3Version number, increase to display the guidelines again

When you increase the PAG version and restart Touchpoint, the users get the PAG screen when they refresh or open a Connections page, or on the next login.

Touchpoint and Privacy and Guidelines (PAG) can be activated independently. So just Touchpoint, PAG standalone or both.

Within paths you can configure the shown pages for internal users, external users and PAG.

TDI caveats

The default TDI Assemblyline (tdisol-path/TDI/conf/LotusConnections-config/tdi-profiles-config.xml) has following entries since the touchpoint integration:

<simpleAttribute extensionId="privacyAndGuidelines" length="256" sourceKey="privacyAndGuidelines" />
<simpleAttribute extensionId="touchpointState" length="256" sourceKey="touchpointState" />
<richtextAttribute extensionId="touchpointSession" maxBytes="1000000" sourceKey="touchpointSession" />

What does this mean?

Everytime when you run sync_all_dns.sh|bat and a user profile is changed, the database extension entries (privacyAndGuidlines,touchpointState and touchpointSession) of all changed users will be overwritten and Touchpoint/PAG will be presented to these users over and over again, WHEN the LDAP doesn’t contain this attributes (and I bet it doesn’t).

As long as you just want to use PAG or Touchpoint, comment out these three lines to prevent getting Touchpoint over and over again.

Just comment out (all five lines of touchpoint extensions)
<!--
<simpleAttribute extensionId="recommendedTags" length="256" sourceKey="recommendedTags" />
<simpleAttribute extensionId="departmentKey" length="256" sourceKey="departmentKey" />
<simpleAttribute extensionId="privacyAndGuidelines" length="256" sourceKey="privacyAndGuidelines" />
<simpleAttribute extensionId="touchpointState" length="256" sourceKey="touchpointState" />
<richtextAttribute extensionId="touchpointSession" maxBytes="1000000" sourceKey="touchpointSession" />
-->

So these values are handled by Touchpoint and no longer set or overwritten by TDI.

Update

I forgot to mention, when you disable the fields in tdi-profiles-config.xml, you have to comment out the same fields in conf/LotusConnections-config/profiles-types.xml:

<!--
<property>
    <ref>recommendedTags</ref>
    <updatability>readwrite</updatability>
    <hidden>true</hidden>
    <fullTextIndexed>false</fullTextIndexed>
</property>
<property>
    <ref>departmentKey</ref>
    <updatability>read</updatability>
    <hidden>true</hidden>
    <fullTextIndexed>true</fullTextIndexed>
</property>
<property>
    <ref>privacyAndGuidelines</ref>
    <updatability>readwrite</updatability>
    <hidden>true</hidden>
    <fullTextIndexed>false</fullTextIndexed>
</property>
<property>
    <ref>touchpointState</ref>
    <updatability>readwrite</updatability>
    <hidden>true</hidden>
    <fullTextIndexed>false</fullTextIndexed>
/property>
<property>
    <ref>touchpointSession</ref>
    <updatability>readwrite</updatability>
    <hidden>true</hidden>
    <fullTextIndexed>false</fullTextIndexed>
</property>
-->

Thanks to Vincent Gicquel, for remembering me.

Update 2

Another possible workaround to prevent TDI from deleting the touchpoint state is described in this article.