Состояние завершения 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
...