1

在 HCL Connections 6.5.1 上启用 HCL 接触点后。根据默认配置,我们setTimeDuration/mnt/opt/IBM/WebSphere/AppServer/profiles/CnxNode01/installedApps/CnxCell/Touchpoint.ear/touchpoint.war/js/startup.js. 所以它应该只在 6 个月后重新出现。但在我的测试用户中,它会在大约 1 小时后重新出现。

分析问题:已删除completed状态

为了调试/分析这一点,我发现接触点将其数据存储在PEOPLEDB数据库中,其中包含一个表EMPINST.PROFILE_EXTENSIONS。它用于PROF_PROPERTY_ID = 'touchpointState'存储接触点完成时的时间戳(= 用户确认所有步骤)。在这种情况下,PROF_VALUE包含类似 JSON {"state":"complete","timestamp":1599763075000},这意味着用户在 2020 年 9 月 10 日完成了它。

我创建了以下查询,以从已完成的用户那里以人类可读的形式获取名称、时间戳和日期:

SELECT e.PROF_DISPLAY_NAME,  ext.PROF_VALUE, replace(REPLACE(ext.PROF_VALUE, '}', ''), '{"state":"complete","timestamp":', '') AS timestamp,
date((((replace(REPLACE(ext.PROF_VALUE, '}', ''), '{"state":"complete","timestamp":', '') / 1000)-5*3600)/86400)+719163) AS date
/*SELECT count(*)*/
FROM EMPINST.PROFILE_EXTENSIONS ext
LEFT JOIN EMPINST.EMPLOYEE e ON (e.PROF_KEY=ext.PROF_KEY)
WHERE PROF_PROPERTY_ID = 'touchpointState'
ORDER BY replace(REPLACE(ext.PROF_VALUE, '}', ''), '{"state":"complete","timestamp":', '') desc

示例结果:

示例数据库结果

虽然这似乎可行,但我在一段时间后(大约 1 小时)重新运行了这个查询,所有这些新行都消失了!他们已从数据库中删除。结果,用户再次被重定向到接触点,并且必须再次完成它。

我不知道他们为什么被删除以及我们如何阻止它。在第一次运行时,他们在一个管理员用户完成接触点后被删除。但后来也在普通用户运行它们之后。

4

1 回答 1

0

问题是,这些属性留在${tdisol}/TDI/conf/LotusConnections-config/tdi-profiles-config.xml

<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" />

<!--只需用and将它们注释掉-->。还需要${tdisol}/TDI/conf/LotusConnections-config/profile-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>
    -->

即使这些属性是在 HCL 的默认 tdisol 配置中设置的,也是错误的,因为这会导致 TDI 覆盖 LDAP 中的所有三个接触点属性。通常这些字段不存在于域中。在这种情况下,接触点会在每次运行时删除所有属性。

由于我们的 TDI 计划每 30 分钟运行一次,因此它会在每次运行时删除所有 TP 相关信息。

作为替代方案,您也可以像这样排除上面列出的所有属性map_dbrepos_from_source.properties

extattr.privacyAndGuideLines=null
extattr.touchpointState=null
...
于 2020-11-03T10:13:01.603 回答