Очистка Spaces Gds Lotos#
Используется для создания, обновления или нормализации справочных данных. Требует проверки исходных условий, идентификаторов и используемых справочников.
Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт
Внимание
Требует адаптации под конкретную базу и версию системы. Перед запуском проверьте идентификаторы, SQL-запросы, API-классы и условия обработки.
Тип: JEXL-скрипт
sql(`
with changed as (
select
gds.id as id
,gds.sArticle as sArticle
,regexp_replace(trim(gds.sArticle), '[\s]{2,}', ' ', 'g') as sArticleNew
,gds.sDesignation as sDesignation
,regexp_replace(trim(gds.sDesignation), '[\s]{2,}', ' ', 'g') as sDesignationNew
,gds.sDesignationOld as sDesignationOld
,regexp_replace(trim(gds.sDesignationOld), '[\s]{2,}', ' ', 'g') as sDesignationOldNew
,gds.sName as sName
,regexp_replace(trim(gds.sName), '[\s]{2,}', ' ', 'g') as sNameNew
from Bs_Goods gds )
select
ch.id as "id"
,ch.sArticle as "sArticle"
,ch.sArticleNew as "sArticleNew"
,ch.sDesignation as "sDesignation"
,ch.sDesignationNew as "sDesignationNew"
,ch.sDesignationOld as "sDesignationOld"
,ch.sDesignationOldNew as "sDesignationOldNew"
,ch.sName as "sName"
,ch.sNameNew as "sNameNew"
from changed ch
where (ch.sArticle != ch.sArticleNew
or ch.sDesignation != ch.sDesignationNew
or ch.sDesignationOld != ch.sDesignationOldNew
or ch.sName != ch.sNameNew)
`).foreach(function(r){
@begin{
var rop = Bs_GoodsApi.load(r.id);
//правим код
if(r.sArticle != r.sArticleNew){
Bs_GoodsApi.setsArticle(rop, r.sArticleNew);
}
//правим Обозначение
if(r.sDesignation != r.sDesignationNew){
Bs_GoodsApi.setsDesignation(rop, r.sDesignationNew);
}
//правим Старое обозначение
if(r.sDesignationOld != r.sDesignationOldNew){
Bs_GoodsApi.setsDesignationOld(rop, r.sDesignationOldNew);
}
//правим наименование
if(r.sName != r.sNameNew){
Bs_GoodsApi.setsName(rop, r.sNameNew);
}
commit();
}
@exception
function(exp){
println("[JEXL Exception] " + exp.getCause());
}end;
}) ;