Boa noite Senhores
Estou trabalhando num em que o processo com uma atividade de serviço que cria registros via serviço ECMCardService, sobre o corpo do formulário esta integrando sem problemas, mas não sei como inserir os dados da tabela pai filho. Fiz uma pesquisa no TDN mas não encontrei nenhum exemplo.
function createDocument() {
//empresa, usuario, senha, matricula, pastaPaiId, nomeCampo, valorCampo, dataset, campos, arrItens
log.info('function createDocument >> Entrou!');
try {
var serviceManager = ServiceManager.getService('ECMCardService');
var serviceInstance = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ECMCardServiceService');
var service = serviceInstance.getCardServicePort();
var attachment = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.Attachment');
var relatedDocument = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.RelatedDocumentDto');
var documentSecurity = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDto');
var approver = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ApproverDto');
var cardDtoArray = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDtoArray');
var cardDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDto');
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardDto.getAttachs().add(attachment);
cardDto.getReldocs().add(relatedDocument);
cardDto.getDocsecurity().add(documentSecurity);
cardDto.getDocapprovers().add(approver);
cardDto.setDocumentDescription(hAPI.getCardValue('nroProcesso')+' - '+hAPI.getCardValue('nomeProjeto')); //descricao do formulario
cardDto.setAdditionalComments('');
cardDto.setParentDocumentId(parseInt('982')); //pasta pai do formulario
cardDto.setColleagueId(hAPI.getCardValue('matriculaResponsavel')); //matricula
cardDto.setExpires(false);
cardDto.setUserNotify(false);
cardDto.setInheritSecurity(true);
cardDto.setVersionDescription('');
cardDto.setDocumentKeyWord('');
// Campos formulário - Projeto
var cardFieldDto0 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto0.setField("codProjeto");
cardFieldDto0.setValue(hAPI.getCardValue('nroProcesso')); // Nro processo do Fluig
cardDto.getCardData().add(cardFieldDto0);
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto1.setField("nomeProjeto");
cardFieldDto1.setValue(hAPI.getCardValue('nomeProjeto'));
cardDto.getCardData().add(cardFieldDto1);
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto2.setField("matriculaSolicitante");
cardFieldDto2.setValue(hAPI.getCardValue('matriculaSolicitante'));
cardDto.getCardData().add(cardFieldDto2);
var cardFieldDto3 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto3.setField("emailSolicitante");
cardFieldDto3.setValue(hAPI.getCardValue('emailSolicitante'));
cardDto.getCardData().add(cardFieldDto3);
var cardFieldDto4 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto4.setField("nomeSolicitante");
cardFieldDto4.setValue(hAPI.getCardValue('nomeSolicitante'));
cardDto.getCardData().add(cardFieldDto4);
var cardFieldDto5 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto5.setField("departamento");
cardFieldDto5.setValue(hAPI.getCardValue('departamento'));
cardDto.getCardData().add(cardFieldDto5);
var cardFieldDto6 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto6.setField("matriculaResponsavel");
cardFieldDto6.setValue(hAPI.getCardValue('matriculaResponsavel'));
cardDto.getCardData().add(cardFieldDto6);
var cardFieldDto7 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto7.setField("emailResponsavel");
cardFieldDto7.setValue(hAPI.getCardValue('emailResponsavel'));
cardDto.getCardData().add(cardFieldDto7);
var cardFieldDto8 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto8.setField("nomeResponsavel");
cardFieldDto8.setValue(hAPI.getCardValue('nomeResponsavel'));
cardDto.getCardData().add(cardFieldDto8);
var cardFieldDto9 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto9.setField("dataRegistro");
cardFieldDto9.setValue(hAPI.getCardValue('dataRegistro'));
cardDto.getCardData().add(cardFieldDto9);
var cardFieldDto10 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto10.setField("dataInicio");
cardFieldDto10.setValue(hAPI.getCardValue('dataInicio'));
cardDto.getCardData().add(cardFieldDto10);
var cardFieldDto11 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto11.setField("dataFim");
cardFieldDto11.setValue(hAPI.getCardValue('dataFim'));
cardDto.getCardData().add(cardFieldDto11);
var cardFieldDto12 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto12.setField("custoPrevisto");
cardFieldDto12.setValue(hAPI.getCardValue('custoPrevisto'));
cardDto.getCardData().add(cardFieldDto12);
var cardFieldDto13 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto13.setField("escopo");
cardFieldDto13.setValue(hAPI.getCardValue('escopo'));
cardDto.getCardData().add(cardFieldDto13);
var cardFieldDto14 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto14.setField("status");
cardFieldDto14.setValue('Backlog');
cardDto.getCardData().add(cardFieldDto14);
// Campos tabela Atividade
var indexes = hAPI.getChildrenIndexes("tableAtividade");
if ( indexes.length > 0 ) {
for ( var i = 0; i < indexes.length; i++ ) {
var codAtividade = i+1;
var dataRegistroAtividade = getData();
var dataInicioAtividade = (hAPI.getCardValue("dataInicioAtividade___" + indexes[i]));
var dataFimAtividade = (hAPI.getCardValue("dataFimAtividade___" + indexes[i]));
var matriculaResponsavelAtividade = (hAPI.getCardValue("matriculaResponsavelAtividade___" + indexes[i]));
var emailResponsavelAtividade = (hAPI.getCardValue("emailResponsavelAtividade___" + indexes[i]));
var nomeResponsavelAtividade = (hAPI.getCardValue("nomeResponsavelAtividade___" + indexes[i]));
var descricaoAtividade = (hAPI.getCardValue("descricaoAtividade___" + indexes[i]));
}
}
cardDtoArray.getItem().add(cardDto);
result = service.create('1', 'teste', 'teste', cardDtoArray);
log.info(' function createDocument >> result << ');
log.dir(result);
if (result.getItem().get(0).getWebServiceMessage().equals("ok")) {
log.info("Sincronização completada com sucesso!");
var documentoCriado = result.getItem().get(0).getDocumentId();
log.info(' function createDocument >> documentoCriado '+documentoCriado);
//Gravando retorno no formulário
hAPI.setCardValue('documentId_ECM', documentoCriado);
} else {
throw (result.getItem().get(0).getWebServiceMessage());
}
} catch (e) {
throw e.message;
}
}
Você precisa criar também criar e setar os valores de CardFieldDto para os campos de uma tabela pai e filho, mas neste caso com uma pequena alteração.
Veja se consegue entender o exemplo abaixo, neste exemplo estou supondo que exista em alguma tabela pai e filho do teu formulário com os campos dataInicioAtividade e dataFimAtividade
// Campos tabela Atividade
var indexes = hAPI.getChildrenIndexes("tableAtividade");
if ( indexes.length > 0 ) {
for ( var i = 0; i < indexes.length; i++ ) {
var row = i+1;
var dataRegistroAtividade = getData();
var dataInicioAtividade = (hAPI.getCardValue("dataInicioAtividade___" + indexes[i]));
var dataFimAtividade = (hAPI.getCardValue("dataFimAtividade___" + indexes[i]));
var matriculaResponsavelAtividade = (hAPI.getCardValue("matriculaResponsavelAtividade___" + indexes[i]));
var emailResponsavelAtividade = (hAPI.getCardValue("emailResponsavelAtividade___" + indexes[i]));
var nomeResponsavelAtividade = (hAPI.getCardValue("nomeResponsavelAtividade___" + indexes[i]));
var descricaoAtividade = (hAPI.getCardValue("descricaoAtividade___" + indexes[i]));
// Popula campos da tabela pai e filho
var dataInicioAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataInicioAtividadeDto.setField("dataInicioAtividade___"+row);
dataInicioAtividadeDto.setValue(dataRegistroAtividade);
var dataFimAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataFimAtividadeDto.setField("dataFimAtividade___"+row);
dataFimAtividadeDto.setValue(dataRegistroAtividade);
cardDto.getCardData().add(dataInicioAtividadeDto);
cardDto.getCardData().add(dataFimAtividadeDto);
}
}
Boa tarde Sergio
Obrigado pela ajuda, fiz assim mas não deu certo… não gravou pai x filho.
function createDocument() {
log.info('function createDocument >> Entrou!');
try {
var serviceManager = ServiceManager.getService('ECMCardService');
var serviceInstance = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ECMCardServiceService');
var service = serviceInstance.getCardServicePort();
var attachment = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.Attachment');
var relatedDocument = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.RelatedDocumentDto');
var documentSecurity = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDto');
var approver = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ApproverDto');
var cardDtoArray = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDtoArray');
var cardDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDto');
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardDto.getAttachs().add(attachment);
cardDto.getReldocs().add(relatedDocument);
cardDto.getDocsecurity().add(documentSecurity);
cardDto.getDocapprovers().add(approver);
cardDto.setDocumentDescription(hAPI.getCardValue('nroProcesso')+' - '+hAPI.getCardValue('nomeProjeto')); //descricao do formulario
cardDto.setAdditionalComments('');
cardDto.setParentDocumentId(parseInt('982')); //pasta pai do formulario
cardDto.setColleagueId(hAPI.getCardValue('matriculaResponsavel')); //matricula
cardDto.setExpires(false);
cardDto.setUserNotify(false);
cardDto.setInheritSecurity(true);
cardDto.setVersionDescription('');
cardDto.setDocumentKeyWord('');
// Campos formulário - Projeto
var cardFieldDto0 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto0.setField("codProjeto");
cardFieldDto0.setValue(hAPI.getCardValue('nroProcesso')); // Nro processo do Fluig
cardDto.getCardData().add(cardFieldDto0);
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto1.setField("nomeProjeto");
cardFieldDto1.setValue(hAPI.getCardValue('nomeProjeto'));
cardDto.getCardData().add(cardFieldDto1);
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto2.setField("matriculaSolicitante");
cardFieldDto2.setValue(hAPI.getCardValue('matriculaSolicitante'));
cardDto.getCardData().add(cardFieldDto2);
var cardFieldDto3 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto3.setField("emailSolicitante");
cardFieldDto3.setValue(hAPI.getCardValue('emailSolicitante'));
cardDto.getCardData().add(cardFieldDto3);
var cardFieldDto4 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto4.setField("nomeSolicitante");
cardFieldDto4.setValue(hAPI.getCardValue('nomeSolicitante'));
cardDto.getCardData().add(cardFieldDto4);
var cardFieldDto5 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto5.setField("departamento");
cardFieldDto5.setValue(hAPI.getCardValue('departamento'));
cardDto.getCardData().add(cardFieldDto5);
var cardFieldDto6 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto6.setField("matriculaResponsavel");
cardFieldDto6.setValue(hAPI.getCardValue('matriculaResponsavel'));
cardDto.getCardData().add(cardFieldDto6);
var cardFieldDto7 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto7.setField("emailResponsavel");
cardFieldDto7.setValue(hAPI.getCardValue('emailResponsavel'));
cardDto.getCardData().add(cardFieldDto7);
var cardFieldDto8 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto8.setField("nomeResponsavel");
cardFieldDto8.setValue(hAPI.getCardValue('nomeResponsavel'));
cardDto.getCardData().add(cardFieldDto8);
var cardFieldDto9 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto9.setField("dataRegistro");
cardFieldDto9.setValue(hAPI.getCardValue('dataRegistro'));
cardDto.getCardData().add(cardFieldDto9);
var cardFieldDto10 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto10.setField("dataInicio");
cardFieldDto10.setValue(hAPI.getCardValue('dataInicio'));
cardDto.getCardData().add(cardFieldDto10);
var cardFieldDto11 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto11.setField("dataFim");
cardFieldDto11.setValue(hAPI.getCardValue('dataFim'));
cardDto.getCardData().add(cardFieldDto11);
var cardFieldDto12 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto12.setField("custoPrevisto");
cardFieldDto12.setValue(hAPI.getCardValue('custoPrevisto'));
cardDto.getCardData().add(cardFieldDto12);
var cardFieldDto13 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto13.setField("escopo");
cardFieldDto13.setValue(hAPI.getCardValue('escopo'));
cardDto.getCardData().add(cardFieldDto13);
var cardFieldDto14 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto14.setField("status");
cardFieldDto14.setValue('Backlog');
cardDto.getCardData().add(cardFieldDto14);
// Campos tabela Atividade
var indexes = hAPI.getChildrenIndexes("tableAtividade");
if ( indexes.length > 0 ) {
for ( var i = 0; i < indexes.length; i++ ) {
var row = i+1;
var codAtividade = i+1;
var dataRegistroAtividade = getData();
var dataInicioAtividade = (hAPI.getCardValue("dataInicioAtividade___" + indexes[i]));
var dataFimAtividade = (hAPI.getCardValue("dataFimAtividade___" + indexes[i]));
var matriculaResponsavelAtividade = (hAPI.getCardValue("matriculaResponsavelAtividade___" + indexes[i]));
var emailResponsavelAtividade = (hAPI.getCardValue("emailResponsavelAtividade___" + indexes[i]));
var nomeResponsavelAtividade = (hAPI.getCardValue("nomeResponsavelAtividade___" + indexes[i]));
var descricaoAtividade = (hAPI.getCardValue("descricaoAtividade___" + indexes[i]));
// Popula campos da tabela pai e filho
var codAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
codAtividadeDto.setField("codAtividade___"+row);
codAtividadeDto.setValue(codAtividade);
cardDto.getCardData().add(codAtividadeDto);
var dataRegistroAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataRegistroAtividadeDto.setField("dataRegistroAtividade___"+row);
dataRegistroAtividadeDto.setValue(dataRegistroAtividade);
cardDto.getCardData().add(dataRegistroAtividadeDto);
var dataInicioAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataInicioAtividadeDto.setField("dataInicioAtividade___"+row);
dataInicioAtividadeDto.setValue(dataInicioAtividade);
cardDto.getCardData().add(dataInicioAtividadeDto);
var dataFimAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataFimAtividadeDto.setField("dataFimAtividade___"+row);
dataFimAtividadeDto.setValue(dataFimAtividade);
cardDto.getCardData().add(dataFimAtividadeDto);
var matriculaResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
matriculaResponsavelAtividadeDto.setField("matriculaResponsavelAtividade___"+row);
matriculaResponsavelAtividadeDto.setValue(matriculaResponsavelAtividade);
cardDto.getCardData().add(matriculaResponsavelAtividadeDto);
var emailResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
emailResponsavelAtividadeDto.setField("emailResponsavelAtividade___"+row);
emailResponsavelAtividadeDto.setValue(emailResponsavelAtividade);
cardDto.getCardData().add(emailResponsavelAtividadeDto);
var nomeResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
nomeResponsavelAtividadeDto.setField("nomeResponsavelAtividade___"+row);
nomeResponsavelAtividadeDto.setValue(nomeResponsavelAtividade);
cardDto.getCardData().add(nomeResponsavelAtividadeDto);
var descricaoAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
descricaoAtividadeDto.setField("descricaoAtividade___"+row);
descricaoAtividadeDto.setValue(descricaoAtividade);
cardDto.getCardData().add(descricaoAtividadeDto);
}
}
cardDtoArray.getItem().add(cardDto);
result = service.create('1', 'teste', 'teste', cardDtoArray);
log.info(' function createDocument >> result << ');
log.dir(result);
if (result.getItem().get(0).getWebServiceMessage().equals("ok")) {
log.info("Sincronização completada com sucesso!");
var documentoCriado = result.getItem().get(0).getDocumentId();
log.info(' function createDocument >> documentoCriado '+documentoCriado);
//Gravando retorno no formulário
hAPI.setCardValue('documentId_ECM', documentoCriado);
} else {
throw (result.getItem().get(0).getWebServiceMessage());
}
} catch (e) {
throw e.message;
}
}
Comparei com um código que eu já tenho e não consegui encontrar nenhum erro. O que você pode fazer é imprimir no log os valores das variáveis que estão dentro do loop. Estou achando que por algum motivo ele não está encontrando os valores da tabela pai e filho tableAtividade.
Uma outra coisa que você deve verificar é se existem esses campos no seu formulário que está tentando criar.
Abaixo postarei um trecho de um código meu, a única diferença é que estou criando apenas uma única linha na tabela pai e filho.
// Instancia as classe do serviço
var cardDtoArray = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardDtoArray");
var cardDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardDto");
// Dados principais do formulário
var solicitacaoDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto");
// Dados da tabela pai e filho
var eventoDataISODto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoDataDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoUsuarioCodDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoUsuarioDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoAtividadeDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoIsMobileDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoTaskCompleteDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
var eventoDataCriacaoDto = cardService.helper.instantiate("com.totvs.technology.ecm.dm.ws.CardFieldDto")
// Seta informações do registro
cardDto.setParentDocumentId(java.lang.Integer(parentDocumentId));
cardDto.setInheritSecurity(true);
// Grava valores dos campos do formulário
solicitacaoDto.setField("solicitacao");
solicitacaoDto.setValue(solicitacao);
eventoDataISODto.setField("eventoDataISO___1");
eventoDataISODto.setValue(dataCorrente("yyyy-MM-dd"));
eventoDataDto.setField("eventoData___1");
eventoDataDto.setValue(dataCorrente("dd/MM/yyyy HH:mm:ss"));
eventoUsuarioCodDto.setField("eventoUsuarioCod___1");
eventoUsuarioCodDto.setValue(eventoUsuarioCod);
eventoUsuarioDto.setField("eventoUsuario___1");
eventoUsuarioDto.setValue(eventoUsuario);
eventoAtividadeDto.setField("eventoAtividade___1");
eventoAtividadeDto.setValue(eventoAtividade);
eventoIsMobileDto.setField("eventoIsMobile___1");
eventoIsMobileDto.setValue(eventoIsMobile);
eventoTaskCompleteDto.setField("eventoTaskComplete___1");
eventoTaskCompleteDto.setValue(eventoTaskComplete);
eventoDataCriacaoDto.setField("eventoDataCriacao___1");
eventoDataCriacaoDto.setValue(eventoDataCriacao);
cardDto.getCardData().add(solicitacaoDto);
cardDto.getCardData().add(eventoDataISODto);
cardDto.getCardData().add(eventoDataDto);
cardDto.getCardData().add(eventoUsuarioCodDto);
cardDto.getCardData().add(eventoUsuarioDto);
cardDto.getCardData().add(eventoAtividadeDto);
cardDto.getCardData().add(eventoIsMobileDto);
cardDto.getCardData().add(eventoTaskCompleteDto);
cardDto.getCardData().add(eventoDataCriacaoDto);
cardDtoArray.getItem().add(cardDto);
// Chama o método create para criar o registro do formulário
var result = cardService.port.create(getValue("WKCompany"), webService.getLogin(), webService.getSenha(), cardDtoArray);
var webServiceMessage = result.getItem().get(0).getWebServiceMessage();
if(!webServiceMessage.equals("ok")){
throw webServiceMessage;
}
var documentId = java.lang.Integer(result.getItem().get(0).getDocumentId());
return documentId
Boa tarde Sérgio
Revisei todos os campos, faltava um… Após o ajuste deu certo.
Veja a versão final
function createDocument() {
log.info('function createDocument >> Entrou!');
try {
var serviceManager = ServiceManager.getService('ECMCardService');
var serviceInstance = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ECMCardServiceService');
var service = serviceInstance.getCardServicePort();
var attachment = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.Attachment');
var relatedDocument = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.RelatedDocumentDto');
var documentSecurity = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDto');
var approver = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.ApproverDto');
var cardDtoArray = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDtoArray');
var cardDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardDto');
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardDto.getAttachs().add(attachment);
cardDto.getReldocs().add(relatedDocument);
cardDto.getDocsecurity().add(documentSecurity);
cardDto.getDocapprovers().add(approver);
cardDto.setDocumentDescription(hAPI.getCardValue('nroProcesso')+' - '+hAPI.getCardValue('nomeProjeto')); //descricao do formulario
cardDto.setAdditionalComments('');
cardDto.setParentDocumentId(parseInt('982')); //pasta pai do formulario
cardDto.setColleagueId(hAPI.getCardValue('matriculaResponsavel')); //matricula
cardDto.setExpires(false);
cardDto.setUserNotify(false);
cardDto.setInheritSecurity(true);
cardDto.setVersionDescription('');
cardDto.setDocumentKeyWord('');
// Campos formulário - Projeto
var cardFieldDto0 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto0.setField("codProjeto");
cardFieldDto0.setValue(hAPI.getCardValue('nroProcesso')); // Nro processo do Fluig
cardDto.getCardData().add(cardFieldDto0);
var cardFieldDto1 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto1.setField("nomeProjeto");
cardFieldDto1.setValue(hAPI.getCardValue('nomeProjeto'));
cardDto.getCardData().add(cardFieldDto1);
var cardFieldDto2 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto2.setField("matriculaSolicitante");
cardFieldDto2.setValue(hAPI.getCardValue('matriculaSolicitante'));
cardDto.getCardData().add(cardFieldDto2);
var cardFieldDto3 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto3.setField("emailSolicitante");
cardFieldDto3.setValue(hAPI.getCardValue('emailSolicitante'));
cardDto.getCardData().add(cardFieldDto3);
var cardFieldDto4 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto4.setField("nomeSolicitante");
cardFieldDto4.setValue(hAPI.getCardValue('nomeSolicitante'));
cardDto.getCardData().add(cardFieldDto4);
var cardFieldDto5 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto5.setField("departamento");
cardFieldDto5.setValue(hAPI.getCardValue('departamento'));
cardDto.getCardData().add(cardFieldDto5);
var cardFieldDto6 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto6.setField("matriculaResponsavel");
cardFieldDto6.setValue(hAPI.getCardValue('matriculaResponsavel'));
cardDto.getCardData().add(cardFieldDto6);
var cardFieldDto7 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto7.setField("emailResponsavel");
cardFieldDto7.setValue(hAPI.getCardValue('emailResponsavel'));
cardDto.getCardData().add(cardFieldDto7);
var cardFieldDto8 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto8.setField("nomeResponsavel");
cardFieldDto8.setValue(hAPI.getCardValue('nomeResponsavel'));
cardDto.getCardData().add(cardFieldDto8);
var cardFieldDto9 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto9.setField("dataRegistro");
cardFieldDto9.setValue(hAPI.getCardValue('dataRegistro'));
cardDto.getCardData().add(cardFieldDto9);
var cardFieldDto10 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto10.setField("dataInicio");
cardFieldDto10.setValue(hAPI.getCardValue('dataInicio'));
cardDto.getCardData().add(cardFieldDto10);
var cardFieldDto11 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto11.setField("dataFim");
cardFieldDto11.setValue(hAPI.getCardValue('dataFim'));
cardDto.getCardData().add(cardFieldDto11);
var cardFieldDto12 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto12.setField("custoPrevisto");
cardFieldDto12.setValue(hAPI.getCardValue('custoPrevisto'));
cardDto.getCardData().add(cardFieldDto12);
var cardFieldDto13 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto13.setField("escopo");
cardFieldDto13.setValue(hAPI.getCardValue('escopo'));
cardDto.getCardData().add(cardFieldDto13);
var cardFieldDto14 = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
cardFieldDto14.setField("status");
cardFieldDto14.setValue('Backlog');
cardDto.getCardData().add(cardFieldDto14);
// Campos tabela Atividade
var indexes = hAPI.getChildrenIndexes("tableAtividade");
if ( indexes.length > 0 ) {
for ( var i = 0; i < indexes.length; i++ ) {
var row = i+1;
var codAtividade = i+1;
var nomeAtividade = (hAPI.getCardValue("nomeAtividade___" + indexes[i]));
var dataRegistroAtividade = getData();
var dataInicioAtividade = (hAPI.getCardValue("dataInicioAtividade___" + indexes[i]));
var dataFimAtividade = (hAPI.getCardValue("dataFimAtividade___" + indexes[i]));
var matriculaResponsavelAtividade = (hAPI.getCardValue("matriculaResponsavelAtividade___" + indexes[i]));
var emailResponsavelAtividade = (hAPI.getCardValue("emailResponsavelAtividade___" + indexes[i]));
var nomeResponsavelAtividade = (hAPI.getCardValue("nomeResponsavelAtividade___" + indexes[i]));
var descricaoAtividade = (hAPI.getCardValue("descricaoAtividade___" + indexes[i]));
// Popula campos da tabela pai e filho
var codAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
codAtividadeDto.setField("codAtividade___"+row);
codAtividadeDto.setValue(codAtividade);
cardDto.getCardData().add(codAtividadeDto);
var nomeAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
nomeAtividadeDto.setField("nomeAtividade___"+row);
nomeAtividadeDto.setValue(nomeAtividade);
cardDto.getCardData().add(nomeAtividadeDto);
var dataRegistroAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataRegistroAtividadeDto.setField("dataRegistroAtividade___"+row);
dataRegistroAtividadeDto.setValue(dataRegistroAtividade);
cardDto.getCardData().add(dataRegistroAtividadeDto);
var dataInicioAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataInicioAtividadeDto.setField("dataInicioAtividade___"+row);
dataInicioAtividadeDto.setValue(dataInicioAtividade);
cardDto.getCardData().add(dataInicioAtividadeDto);
var dataFimAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
dataFimAtividadeDto.setField("dataFimAtividade___"+row);
dataFimAtividadeDto.setValue(dataFimAtividade);
cardDto.getCardData().add(dataFimAtividadeDto);
var matriculaResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
matriculaResponsavelAtividadeDto.setField("matriculaResponsavelAtividade___"+row);
matriculaResponsavelAtividadeDto.setValue(matriculaResponsavelAtividade);
cardDto.getCardData().add(matriculaResponsavelAtividadeDto);
var emailResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
emailResponsavelAtividadeDto.setField("emailResponsavelAtividade___"+row);
emailResponsavelAtividadeDto.setValue(emailResponsavelAtividade);
cardDto.getCardData().add(emailResponsavelAtividadeDto);
var nomeResponsavelAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
nomeResponsavelAtividadeDto.setField("nomeResponsavelAtividade___"+row);
nomeResponsavelAtividadeDto.setValue(nomeResponsavelAtividade);
cardDto.getCardData().add(nomeResponsavelAtividadeDto);
var descricaoAtividadeDto = serviceManager.instantiate('com.totvs.technology.ecm.dm.ws.CardFieldDto');
descricaoAtividadeDto.setField("descricaoAtividade___"+row);
descricaoAtividadeDto.setValue(descricaoAtividade);
cardDto.getCardData().add(descricaoAtividadeDto);
}
}
cardDtoArray.getItem().add(cardDto);
result = service.create('1', 'teste', 'teste', cardDtoArray);
log.info(' function createDocument >> result << ');
log.dir(result);
if (result.getItem().get(0).getWebServiceMessage().equals("ok")) {
log.info("Sincronização completada com sucesso!");
var documentoCriado = result.getItem().get(0).getDocumentId();
log.info(' function createDocument >> documentoCriado '+documentoCriado);
//Gravando retorno no formulário
hAPI.setCardValue('documentId_ECM', documentoCriado);
} else {
throw (result.getItem().get(0).getWebServiceMessage());
}
} catch (e) {
throw e.message;
}
}
1 curtida