Состояние завершения Touchpoint было автоматически удалено в HCL Connections 6.5.1

После включения HCL Touchpoint в соединениях HCL 6.5.1. Согласно конфигурации по умолчанию у нас есть setTimeDuration установить в /mnt/opt/IBM/WebSphere/AppServer/profiles/CnxNode01/installedApps/CnxCell/Touchpoint.ear/touchpoint.war/js/startup.js. Так что он должен появиться снова только через 6 месяцев. Но у моих тестовых пользователей он снова появляется примерно через 1 час.

Анализируем проблему: удалено completed штат

Чтобы отладить / проанализировать это, я обнаружил, что Touchpoint хранит свои данные в PEOPLEDB база данных, содержащая таблицу EMPINST.PROFILE_EXTENSIONS. Оно использует PROF_PROPERTY_ID = 'touchpointState'для сохранения отметки времени, когда точка касания завершена (= пользователь подтверждает все шаги). В этом случае, PROF_VALUE содержит JSON вроде {"state":"complete","timestamp":1599763075000} что означает, что пользователь завершил его 10 сентября 2020 г.

Я создал следующий запрос, чтобы получить имя, метку времени и дату в удобочитаемой форме от завершенных пользователей:

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

Пример результата:

Пример результата БД

Хотя это, казалось, сработало, я повторно запустил этот запрос через некоторое время (около часа), и все эти новые строки исчезли! Они были удалены из базы данных. В результате пользователи снова перенаправляются на Touchpoint и должны выполнить его второй раз.

Я не знаю, почему их удалили и как это остановить. При первом запуске они были удалены после того, как один пользователь-администратор завершил Touchpoint. Но позже и после того, как их запустили обычные пользователи.

1 ответ

Проблема заключалась в том, что эти атрибуты остались в ${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" />

Просто прокомментируйте их <!-- и -->. Также необходимо удалить их из ${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>
    -->

Даже эти атрибуты были установлены в конфигурации tdisol по умолчанию из HCL, это неверно, потому что это привело бы к перезаписи TDI ВСЕХ трех атрибутов Touchpoint из LDAP. Обычно этих полей не было в домене. В этом случае touchpoint УДАЛЯЕТ все атрибуты - при каждом запуске.

Поскольку наш TDI был запланирован на запуск каждые 30 минут, он удалял ВСЮ информацию, относящуюся к TP, при каждом запуске.

В качестве альтернативы вы также можете исключить все перечисленные выше свойства в map_dbrepos_from_source.properties как это:

extattr.privacyAndGuideLines=null
extattr.touchpointState=null
...
Другие вопросы по тегам