documentazione_3di_riservata:docway4:script_utili_3
Questa è una vecchia versione del documento!
sanitizeMessageId (script lua per modificare l'attributo messageId)
Lo script è stato realizzato per intervenire sull'attributo messageId del documento modificandolo per fare in modo che MSA riprocessi i messaggi già inseriti in archivio ma privi di allegati (in questo modo infatti la verifica di univocità viene schivata e il messaggio di posta viene riprocessato).
Nel caso specifico lo script aggiunge la stringa _ERR in coda al messageId.
- sanitizeMessageId.lua
local dbg = require 'xw.dbg' ({active=false, key='acl'}) local xw = require('extraway') xw.addPackage("$.xwTools") ; --[[- --]] function sanitizeMessageId(query) -- deactivate triggers xw.triggersOff() ; local outputXML = xw.prepareRecord("<report></report>") ; local outputMainNode = outputXML:selectFirstNode("/report") ; local recordIsModified = false ; --local targetRecordSet = xw.executeQuery('([/doc/@nrecord/]=00116607)') ; local targetRecordSet = xw.executeQuery(query) ; xw.log.msg("Working on query: "..query.." records)") if ( targetRecordSet:isValid() and 0 < #targetRecordSet ) then local targetRecord = targetRecordSet:getFirst() ; while ( targetRecord:isValid() ) do recordIsModified = false ; targetRecord_LockResult = targetRecord:lock() ; if ( targetRecord_LockResult == true ) then local targetRecordRootNode = targetRecord:selectFirstNode("/doc", nil) ; local searchMessageIdandReplace = targetRecord:selectFirstNode("/doc", nil) ; if ( searchMessageIdandReplace:isValid() ) then local messageIdValue = searchMessageIdandReplace:getAttribute("messageId"); --if ( messageIdValue == "messageId, ERR") then searchMessageIdandReplace:setAttribute("messageId", messageIdValue .. "_ERR") ; recordIsModified = true ; --end end if ( recordIsModified ) then local outcome = targetRecord:save() ; if ( outcome <= 0 ) then targetRecord:unlock() ; xw.log.msg('save error') ; end else targetRecord:unlock() ; end else xw.log.msg('lock error') ; end targetRecord = targetRecordSet:getNext() ; end end -- activate triggers xw.triggersOn() ; return 'true' ; end sanitizerMessageId = { sanitizeMessageId = sanitizeMessageId, sanitizeMessageId_signature = { inParms = {"query"}, outParms = {"result"} } } ;
Per il suo utilizzo lo script va copiato nella directory /opt/3di.it/extraway/xwee/script e va eseguito tramite il seguente xmlcommand:
<?xml version="1.0" encoding="ISO-8859-1"?> <cmd stored="$.sanitizerMessageId.sanitizeMessageId"> <query>([/doc/storia/creazione/@data/]="20170725")</query> </cmd>
/data/attic/documentazione_3di_riservata/docway4/script_utili_3.1555321334.txt.gz · Ultima modifica: 2019/04/15 11:42 da ncandelora