REDA One Centro de ajuda
PT
Idioma
English EN Español ES Português PT Italiano em breve Français FR Deutsch em breve العربية em breve
reda.one ↗
Início / REDA Financials AI / API e integração / Desenvolvimento personalizado / Integração de Fluxos do Salesforce

Integração de Fluxos do Salesforce

A maioria das automações da REDA Financials não exige código algum: os Fluxos leem e gravam os objetos contábeis como qualquer outro registro, a contabilização é uma atualização de campo, e o pacote contribui com uma ação pronta para geração de PDF. Aqui está o kit de ferramentas declarativo.

A ação empacotada: "Generate PDF Document"

No seletor de ações do Fluxo, na categoria REDA Financials: informe um Source Record ID e o Source Object API Name (por exemplo, refin__Sales_Invoice__c) e ela renderiza, anexa e retorna Success / Content Version ID / Content Document ID / Public URL / Error Message. Segura para operações em massa dentro de loops. Usos clássicos: gerar em uma programação, anexar aos seus próprios fluxos de e-mail, produzir o documento no instante em que uma condição disparada por registro é atendida.

O pacote entrega duas ações invocáveis — esta e Create E-Invoice Trail, na categoria E-Invoicing (veja Desenvolvimento em Apex). Uma superfície pequena, totalmente documentada. Sua autodescrição: "Generates a PDF for the given source transaction record and attaches it as a File."

EntradaObrigatórioDescrição empacotada (literal)
ID do registro de origemSim"The Id of the source transaction record (SI, CR, CD, CM, PO)."
Source Object API NameSim"Fully qualified API name of the source object (e.g. refin__Sales_Invoice__c)."
SaídaO que você recebe
SuccessVerdadeiro/falso por linha — verifique antes de usar as demais saídas
Content Version ID / Content Document IDO arquivo gerado, já anexado ao registro de origem como um Arquivo do Salesforce
Public URLPreenchido apenas "se a Entidade tiver o Auto Public URL ativado; nulo caso contrário" — o texto empacotado diz Entidade, mas o campo que o código lê é refin__Auto_Public_URL__c ("Generate Public URL for PDFs") no Território do documento, resolvido documento → Entidade → Território — monte seus links de e-mail de forma condicional
Mensagem de erroO motivo quando Success é falso; entradas ausentes retornam literalmente "sourceRecordId and sourceObjectApiName are required."

Objetos de origem suportados — exatamente quatro, mais um caso especial: refin__Sales_Invoice__c, refin__Cash_Receipt__c, refin__Cash_Disbursement__c, refin__Purchase_Order__c; as notas de crédito são tratadas como um tipo de Fatura de Venda (refin__Sales_Invoice_Type__c), então informe o nome do objeto SI para elas. Em loops, a ação é genuinamente segura para operações em massa: as solicitações são agrupadas por objeto, geradas em lote, e os resultados retornam na ordem de entrada — uma linha com problema falha sozinha, com sua própria Error Message.

Talvez você nem precise do Fluxo. Cada Entidade tem opções de geração automática por tipo de documento — refin__Auto_Gen_PDF_Sales_Invoice__c, refin__Auto_Gen_PDF_Cash_Receipt__c, refin__Auto_Gen_PDF_Cash_Disbursement__c, refin__Auto_Gen_PDF_Purchase_Order__c, refin__Auto_Gen_PDF_Credit_Memo__c. Se "toda fatura contabilizada recebe um PDF" for todo o requisito, basta ativar a opção; reserve a ação de Fluxo para geração condicional ou programada.
Pode ser necessário acesso à classe. Os dez conjuntos de permissões empacotados já concedem acesso de classe Apex a refin.PDFGeneratorAPI (e a refin.EInvoiceTrailCreator), então qualquer usuário com um conjunto de permissões da REDA Financials pode executar a ação. Um usuário em execução sem nenhum deles — um Fluxo que roda como conta de serviço, por exemplo — ainda precisa que a classe seja concedida explicitamente. Teste em um sandbox com o usuário real de execução antes de publicar o Fluxo.

Contabilização (e mais) a partir do Fluxo

Ação no FluxoO que acontece
Criar refin__Sales_Invoice__c + linhas (Rascunho)Rascunho real — numerado, com valores padrão aplicados, validado
Atualizar refin__Status__c → 'Posted'Motor de contabilização completo — impostos, retenção na fonte, taxas, todos os bloqueios (uma recusa gera fault no Fluxo com a mensagem literal: construa um caminho de fault)
Criar um registro de aplicaçãoAplica um recebimento/crédito com todas as regras de correspondência
Fluxo disparado por registro na mudança de statusSua lógica de notificação/integração no momento da contabilização (dispara tanto em alterações via interface quanto via API)
Definir refin__Auto_Apply_Receipt__c = true em um recebimento contabilizadoDispara a execução de aplicação automática para esse recebimento — campos de sinalização como este são pontos de contato projetados para o Fluxo

Três Fluxos que vale a pena copiar

  • A ponte de aprovação: seu processo de aprovação personalizado termina definindo o Status de Aprovação como 'Approved' e o status como 'Posted' — o documento flui da solicitação até os livros, sem cliques.
  • O alarme de fatura grande: disparado por registro na Fatura de Venda, condição de entrada Status = Posted AND Total > 50.000, ação = notificar o canal do controller.
  • A caça ao papel: um Fluxo programado encontra faturas contabilizadas sem PDF (Generated At nulo) e as percorre em loop pela ação Generate PDF Document.
Um Fluxo externo que você deve conhecer: organizações multimoeda que usam o FX Rate Sync instalam um pequeno Fluxo complementar ("Create Dated Conversion Rate") que grava as taxas diárias — ele é distribuído separadamente porque as taxas datadas só existem quando o Advanced Currency Management está ativado. O card de Operações informa claramente se ele estiver ausente.

Um Fluxo aplicado na Meridian: o pacote de boas-vindas ao locatário

A Meridian Properties Group envia, com o PDF anexado, todas as primeiras faturas recém-contabilizadas de um cliente. Um único Fluxo disparado por registro em refin__Sales_Invoice__c: condição de entrada Status alterado para Posted; uma decisão verifica se é a primeira fatura contabilizada do cliente; a ação Generate PDF Document é executada com o Id do registro e refin__Sales_Invoice__c; uma decisão tolerante a falhas sobre Success se ramifica — verdadeiro segue para a ação de e-mail com o Content Document anexado, falso registra a Error Message em um caso para o time de contas a pagar. Tempo total de construção: uma tarde, sem Apex, seguro para atualizações por construção.

Erros comuns a evitar

ErroPor que prejudicaFaça isto em vez disso
Sem caminho de fault na atualização de contabilizaçãoUm período fechado gera fault em toda a execução do Fluxo — e em qualquer outra coisa que estivesse em andamentoTodo elemento de atualização de status recebe um conector de fault que encaminha a mensagem literal a alguém que a leia
Usar a saída Public URL incondicionalmenteÉ nula a menos que o Território do documento tenha Generate Public URL for PDFs ativado — seu modelo de e-mail sai com um link em brancoRamifique com base na saída, ou use o anexo do Content Document
Passar uma Fatura de Compra para Generate PDF DocumentFaturas de compra não estão no conjunto suportado (SI, CR, CD, PO, CM-via-SI) — a linha falhaConfira a lista de objetos suportados; contas de fornecedor não precisam de PDFs voltados ao cliente
Editar registros contabilizados a partir de um Fluxo before-saveDocumentos contabilizados ficam bloqueados para todos — o Fluxo gera fault em campos fora do conjunto de automação permitidoRestrinja edições no próprio registro a Rascunhos; reaja a registros contabilizados, não os reescreva
Duplicar a automação do pacote em seus próprios FluxosGeração recorrente, aplicação automática e instantâneos de aging já são executados na programação de Operações — um Fluxo paralelo compete com elesConfira os doze cards da guia Operações antes de construir; estenda, não duplique

O que vem a seguir

  1. Streaming API — as contrapartes orientadas a eventos.
  2. Desenvolvimento em Apex na REDA — para quando o Fluxo não é mais suficiente.
  3. Programador de operações — a automação que o pacote já executa para você.
Documentação oficial do Salesforce O Flow Builder é uma ferramenta de automação padrão do Salesforce — para tudo sobre a construção de fluxos, veja Automatizar tarefas com fluxos. Os links abrem em uma nova aba.

Perguntas frequentes

Está funcionando como projetado: um bloqueio de contabilização recusou a operação (período fechado, aprovação pendente, lançamento desbalanceado…). A mensagem de falha é exatamente o motivo; encaminhe-a a uma pessoa ou corrija o dado na origem. Nunca tente novamente às cegas — o bloqueio continuará impedindo.

Aplica-se a orientação padrão: before-save para ajustes de campo no próprio registro em rascunhos (registros contabilizados já ficam bloqueados de qualquer forma), after-save para reações (notificações, registros relacionados). Não brigue com a automação própria do pacote — reaja aos estados finais.

O serviço de cálculo é uma superfície Apex; a partir do Fluxo, o caminho prático é criar o documento em rascunho (os impostos aparecem em prévia no formulário; os valores são finalizados na contabilização). Se você realmente precisar do cálculo bruto no Fluxo, um wrapper invocável simples em torno do GlobalTaxService é uma classe Apex de dez linhas — veja Desenvolvimento em Apex.

Porque os objetos são a API: criar, atualizar e alternar o status dos registros cobre a contabilização, a aplicação e a reação sem precisar de ações sob medida. A geração de PDF e a criação de uma trilha de nota fiscal eletrônica são as duas tarefas que realmente exigiam empacotamento — todo o resto é Fluxo padrão sobre registros padrão.

Só se você usar o FX Rate Sync em uma organização multimoeda: o pacote grava as taxas diárias por meio desse Fluxo instalado separadamente, porque as taxas de conversão datadas só existem quando o Advanced Currency Management está ativado. Se ele estiver ausente, a sincronização informa literalmente: "The \"Create_Dated_Conversion_Rate\" Flow is not installed. FX Rate Sync requires this Flow to write DatedConversionRate records. Please install the REDA FX Rate Sync component."

Isso foi útil?