Исключение объектов из очереди импорта

Исключение объектов из очереди импорта#

Исключает из очереди импорта входящие сообщения, содержащие указанный XML-тег.

Скрипт используется, когда в очередь импорта попали лишние объекты и нужно временно отключить их обработку, чтобы пропустить нужные сообщения. В примере отключаются сообщения контура ImportSynchroCircuit, которые содержат тег <Eam_Work>.

Место применения: Сервис > Инструменты > Выполнить JEXL-скрипт

Внимание

В текущем виде скрипт содержит захардкоженные значения ImportSynchroCircuit и <Eam_Work>. Перед использованием замените их на актуальный контур и XML-тег.

Тип: JEXL-скрипт

var circuitName = 'ImportSynchroCircuit';

var idCircuit = Rpl_CircuitApi.findByMnemoCode(circuitName);
var result = sql(`
    SELECT r.id AS id
    FROM Rpl_IntXmlInMsg r
    WHERE r.idcircuitunassigned = ` + idCircuit + `
      AND r.idIntSession is NULL
      AND r.bIsDisabled = 0
      ORDER BY r.nOrder DESC
`).asList();

for (r : result) {
    @begin {
        var rop = Rpl_IntXmlInMsgApi.load(r.id.toLong());
        var msg = Rpl_IntXmlInMsgApi.getStringFromFileByUtf8(rop);

        if (msg.contains("<Eam_Work>")) {
            Rpl_IntXmlInMsgApi.setbIsDisabled(rop, 1B);
        }

        session.commit();
    } @exception function(exp) {

    };
}