Описание
При установке коробочного пакета ITSM для Protected конфигурации изменённой клиентом не возникают коллизии.
Например, в апреле была создана коробочная версия Protected бизнес правила в приложении ITSM.
В мае версия была импортирована на целевой экземпляр. После импорта бизнес правило было скопировано и деактивировано.
В августе коробочная версия бизнес правила была изменена и собрана в очередной релиз ITSM. При импорте релиза на экземпляр, майские изменения будут проигнорированы т.к. у актуальной версии по прежнему Policy = Protected и поставляемая версия более новая.
Обходное решение
Для решения проблемы при установке коробочного релиза, после загрузки пакета (перед выполнением импорта) необходимо запустить скрипт, для поиска изменений коробочной функциональности:
На форме импортируемого пакета вызвать пункт бургер меню Open in script и дополнить скрипт следующими строками:
let initMessage = 'Конфликтов с изменениями Protected версий нет\n\n';
const conflictMessages = [];
const previewLog = new SimpleRecord('sys_vcs_preview_log');
previewLog.addQuery('retrieved_pack_id', current.sys_id);
previewLog.addQuery('record_policy', 'Protected');
previewLog.selectAttributes(['record_document_id']);
previewLog.query();
let instanceUrl = ss.getProperty('simple.instance.uri');
instanceUrl = (!instanceUrl.includes("https://")) ? `https://${instanceUrl}` : instanceUrl;
while (previewLog.next()) {
const currentVersion = new SimpleRecord('sys_vcs_record');
currentVersion.addQuery('is_current', true);
currentVersion.addQuery('record_document_id', previewLog.record_document_id);
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.4.0');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.5');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.4');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.3');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.2');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.3.1');
currentVersion.addQuery('local_pack_id.name', '!=', '[ITSM] 1.2 [full version]');
currentVersion.addQuery('local_pack_id.name', 'notlike', 'Simple Application build');
currentVersion.selectAttributes(['sys_id', 'table_name', 'record_id', 'local_pack_id']);
currentVersion.setLimit(1);
currentVersion.query();
if (currentVersion.getRowCount() === 1) {
currentVersion.next();
initMessage = 'Поставляемые версии конфликтуют с изменениями:\n\n';
conflictMessages.push(`${instanceUrl}/record/${currentVersion.table_name}/${currentVersion.record_id}\n`);
}
}
print(initMessage);
conflictMessages.forEach(message => print(message));
и запустить выполнение скрипта по кнопке Run.