/**
 * afterSaveNew.js — Exemplo: Solicitacao de Compras
 * 
 * Executa NO SERVIDOR apos o primeiro save do formulario.
 * Uso: inserir dados em sistema externo (ERP), disparar integracao.
 * 
 * @param {number} documentId - ID do documento no Fluig
 * @param {number} version - Versao do documento
 * @param {number} cardId - ID do card (registro)
 */
function afterSaveNew(documentId, version, cardId) {
    try {
        log.info("afterSaveNew - documentId: " + documentId + ", cardId: " + cardId);

        // Exemplo: buscar dados do formulario e enviar para sistema externo
        var c1 = DatasetFactory.createConstraint("metadata#id", cardId, cardId, ConstraintType.MUST);
        var dsForm = DatasetFactory.getDataset("SolicitacaoCompra", new Array("descricao_solicitacao", "valor_total"), new Array(c1), null);

        if (dsForm != null && dsForm.rowsCount > 0) {
            var descricao = dsForm.getValue(0, "descricao_solicitacao");
            var valorTotal = dsForm.getValue(0, "valor_total");

            log.info("afterSaveNew - Descricao: " + descricao + ", Valor: " + valorTotal);

            // Exemplo: chamar dataset de INSERT no ERP
            // var ci1 = DatasetFactory.createConstraint("descricao", descricao, descricao, ConstraintType.MUST);
            // var ci2 = DatasetFactory.createConstraint("valor", valorTotal, valorTotal, ConstraintType.MUST);
            // var dsInsert = DatasetFactory.getDataset("ds_insert_compra_erp", null, new Array(ci1, ci2), null);
        }

    } catch (e) {
        log.error("afterSaveNew ERRO: " + e.message);
        // Em producao, avaliar se deve bloquear (throw) ou apenas logar
        throw "Erro ao integrar com sistema externo: " + e.message;
    }
}
