function beforeStateEntry(sequenceId) { appendDebugPublicacao("beforeStateEntry sequenceId=" + sequenceId); if (sequenceId == 7) { anexarDocumentoDoCardSeNecessario(); publicarDocumento(); } if (sequenceId == 7) { var attachments = hAPI.listAttachments(); var hasAttachment = attachments && attachments.size() > 0; appendDebugPublicacao("validacao anexos: total=" + (attachments ? attachments.size() : 0)); if (!hasAttachment) { appendDebugPublicacao("validacao anexos: nenhum anexo encontrado apos processamento."); throw "\n\nNao identificamos nenhum documento anexado, volte ao formulario e anexe pelo menos um documento para avancar a solicitacao.\n\n"; } } } function anexarDocumentoDoCardSeNecessario() { try { var attachments = hAPI.listAttachments(); if (attachments && attachments.size() > 0) { appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: solicitacao ja possui " + attachments.size() + " anexo(s)."); return; } var anexoIdStr = (hAPI.getCardValue("anexo_documento_id") || "") + ""; anexoIdStr = anexoIdStr.replace(/^\s+|\s+$/g, ""); if (!anexoIdStr) { appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: campo anexo_documento_id vazio."); return; } var anexoId = parseInt(anexoIdStr, 10); if (isNaN(anexoId) || anexoId <= 0) { appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: anexo_documento_id invalido: " + anexoIdStr); return; } hAPI.attachDocument(anexoId); appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: hAPI.attachDocument OK documentId=" + anexoId); var attachmentsDepois = hAPI.listAttachments(); appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: total anexos apos attachDocument = " + (attachmentsDepois ? attachmentsDepois.size() : 0)); } catch (e) { appendDebugPublicacao("anexarDocumentoDoCardSeNecessario: ERRO " + e); } } function appendDebugPublicacao(msg) { try { var atual = (hAPI.getCardValue("debug_publicacao") || "") + ""; var prefix = atual ? atual + "\n" : ""; hAPI.setCardValue("debug_publicacao", prefix + msg); } catch (e) { log.warn("appendDebugPublicacao falhou: " + e); } }