fluig/Ginseng_chamados/datasets/ds_reprocessaChamados.js
2026-03-01 17:27:48 -03:00

115 lines
3.6 KiB
JavaScript

function createDataset(fields, constraints, sortFields) {
var ds = DatasetBuilder.newDataset();
ds.addColumn("Solicitacao");
ds.addColumn("Status");
// CONFIGURAÇÕES
var PROCESSO = "FlowEssentials_AberturaDeChamado";
var URL = "https://comerciode188006.fluig.cloudtotvs.com.br";
var USER = "andrey.cunha";
var PASS = "88253332Wa@"; // <-- coloque aqui a senha do usuário
var LOTES = 200; // processa 200 solicitações por vez (pode aumentar)
try {
// BUSCA TODAS AS SOLICITAÇÕES
var dsProc = DatasetFactory.getDataset(
"workflowProcess",
["workflowProcessPK.processInstanceId"],
[
DatasetFactory.createConstraint("processId", PROCESSO, PROCESSO, ConstraintType.MUST)
],
null
);
log.info("### TOTAL DE PROCESSOS ENCONTRADOS: " + dsProc.rowsCount);
// IMPORTA CLASSES DO WEBSERVICE
var authService = ServiceManager.getService("ECMCardService");
var serviceInstance = authService.instantiate("com.totvs.technology.ecm.dm.ws.ECMCardServiceService");
var port = serviceInstance.getECMCardServicePort();
// Processar lote por lote
for (var i = 0; i < dsProc.rowsCount; i++) {
var idSolic = dsProc.getValue(i, "workflowProcessPK.processInstanceId");
try {
// PEGA O CARD DE ORIGEM
var cardData = port.getCardData(
USER,
PASS,
1, // companyId
idSolic
);
// REESCREVE OS CAMPOS
var newCard = [];
var CAMPOS = [
"requesterName",
"requesterMail",
"requesterId",
"currentUserName",
"currentUsermail",
"currentUserId",
"userSolicitante",
"emailSolicitante",
"nomeGestorArea",
"emailGestorArea",
"estabelecimentoFilial",
"complemento",
"tipoOcorrencia",
"tituloOcorrencia",
"detalheSolicitacao",
"analistaTecnico",
"dataAnaliseTecnica",
"consegueResolver",
"possuiInconsistencia",
"consideracoesTecnicas",
"userValidacao",
"dataUserValidacao",
"situacaoResolvida",
"ratingValue",
"consideracoes",
"dataAbertura"
];
// MONTA ARRAY DOS CAMPOS
for (var j = 0; j < CAMPOS.length; j++) {
var nomeCampo = CAMPOS[j];
var valorCampo = cardData.get(nomeCampo) ? cardData.get(nomeCampo).get(0) : "";
newCard.push({
item: {
key: nomeCampo,
value: valorCampo
}
});
}
// GRAVA O CARD ATUALIZADO
port.updateCardData(
USER,
PASS,
1, // tenant/companyId
idSolic,
newCard
);
ds.addRow([idSolic, "OK"]);
} catch (err1) {
ds.addRow([idSolic, "ERRO: " + err1]);
}
}
} catch (err2) {
ds.addRow(["GERAL", "ERRO: " + err2]);
}
return ds;
}