Pular para o conteúdo

Lançar um lançamento de diário no NetSuite

Lance lançamentos de diário das tabelas de um projeto do PlaidCloud no NetSuite com o passo de fluxo de trabalho Post NetSuite Journal Entry. Este guia cria um lote a partir de uma tabela de cabeçalho e de uma tabela de linhas, pré-visualiza-o sem tocar no NetSuite, lança-o e, por fim, lê o resultado.

  • Uma ligação ao NetSuite funcional, com uma função que possa criar lançamentos de diário (acesso Create ao registo Journal Entry, além da configuração REST/OAuth abordada no guia de leitura).
  • Duas tabelas de origem no seu projeto:
    • Uma tabela de cabeçalho com uma linha por lançamento de diário.
    • Uma tabela de linhas com uma ou mais linhas de débito/crédito por lançamento de diário.
  1. Crie ou importe uma tabela de cabeçalho com uma linha por lançamento de diário. No mínimo, precisa de:

    Coluna Mapeia para Obrigatório
    Um identificador do diário Journal ID Sim
    A subsidiária do NetSuite Subsidiary Sim
    A data do lançamento Data de lançamento Sim
    A moeda do NetSuite Currency Não
    Uma nota ao nível do lançamento Memo Não
    Um ID externo fornecido pelo autor da chamada External ID Não
  2. Crie ou importe uma tabela de linhas com uma ou mais linhas por lançamento de diário, partilhando o mesmo identificador de diário da respetiva linha de cabeçalho:

    Coluna Mapeia para Obrigatório
    O identificador do diário Journal ID Sim
    A conta do razão geral Account Sim
    O montante de débito (0 se não existir) Debit Sim
    O montante de crédito (0 se não existir) Credit Sim
    Uma nota ao nível da linha Memo Não
    Departamento, classe, localização, entidade Department / Class / Location / Entity Não
  3. Agregue os montantes nestas duas tabelas ao nível a que pretende lançar — um lançamento por dia, por documento, por lote — com os passos de tabela habituais (uma tabela dinâmica, uma agregação com agrupamento ou uma junção). O Journal ID é o que associa um conjunto de linhas à respetiva linha de cabeçalho, pelo que deve construí-lo como uma chave única por lançamento de diário e partilhada por todas as linhas que lhe pertencem.

  1. Adicione um passo Post NetSuite Journal Entry ao seu fluxo de trabalho.

  2. No separador Connection, defina NetSuite Connection com a sua ligação ao NetSuite e escolha um Environment.

  3. No separador Data:

    • Defina Journal Entry Header Table e Journal Entry Lines Table com as tabelas que criou acima.
    • Deixe Test Only Mode assinalado por agora — consulte Pré-visualizar e validar.
    • Deixe Continue posting remaining entries if one entry fails assinalado, a menos que prefira que um lote pare logo no primeiro lançamento com erro.
    • Deixe Submit Asynchronously desativado, a menos que precise especificamente do caminho de aceitação assíncrona do NetSuite para um lote de grande volume — consulte Submissão assíncrona abaixo.
    • Defina Posting Result Table com uma tabela que o PlaidCloud possa criar ou substituir. Vai querer fazê-lo em todas as execuções, não apenas na primeira — consulte Ler a tabela de resultados.
  4. No separador Header Map, mapeie as colunas da tabela de cabeçalho para Journal ID, Subsidiary, Data de lançamento e (se existirem) Currency, Memo e External ID. Utilize Header Filters se pretender lançar apenas um subconjunto das linhas de cabeçalho.

  5. No separador Line Map, mapeie as colunas da tabela de linhas para Journal ID, Account, Debit, Credit e (se existirem) Memo, Department, Class, Location e Entity. Utilize Line Filters da mesma forma.

Com Test Only Mode assinalado, execute o passo. O PlaidCloud constrói cada lançamento de diário a partir dos dados mapeados e executa as mesmas verificações que faria antes de lançar — débitos e créditos equilibrados, campos obrigatórios presentes, data de lançamento válida — sem fazer uma única chamada ao NetSuite. Nada é lançado.

  1. Execute o passo (consulte Executar um único passo num fluxo de trabalho).

  2. Abra a tabela de resultados e confirme que todas as linhas que esperava lançar apresentam status = validated. Qualquer linha com error indica o Journal ID do lançamento e o problema — normalmente um lançamento desequilibrado, uma Account em falta ou uma Subsidiary ou Data de lançamento em branco.

  3. Corrija os dados de origem (ou os mapeamentos e filtros) de qualquer linha com error e execute novamente até o lote ser validado sem erros.

Quando um lote for validado sem erros, desassinale Test Only Mode e execute o passo novamente. Desta vez, o PlaidCloud lança efetivamente cada lançamento validado no NetSuite.

Submit Asynchronously envia cada lançamento com o cabeçalho de aceitação assíncrona do NetSuite, em vez de aguardar uma criação e leitura síncronas. O NetSuite coloca o lançamento em fila e responde de imediato; o PlaidCloud regista-o como pending, com uma referência de submissão, em vez de posted ou error.

A tabela de resultados contém uma linha por lançamento de diário tentado, qualquer que seja o modo em que o passo foi executado:

Coluna Descrição
journal_id O Journal ID da sua tabela de cabeçalho.
external_id O ID externo utilizado nesta tentativa de lançamento (ver abaixo).
internal_id O ID interno do NetSuite para o lançamento criado ou a referência de submissão assíncrona enquanto pending. Em branco em Test Only Mode e em caso de erro.
status validated, posted, pending (Submit Asynchronously aceitou o lançamento, mas o NetSuite ainda não o confirmou) ou error.
message Detalhe do erro em error. Em branco em posted/validated.

Construa os passos seguintes — uma notificação para qualquer linha error, uma junção à tabela de cabeçalho para registar o internal_id — a partir desta tabela e não a partir do estado de execução do próprio passo, uma vez que um lançamento com erro num lote grande não faz falhar o passo inteiro quando Continue posting remaining entries está ativo.

Cada lançamento é enviado com um ID externo determinístico, construído a partir do projeto, da ligação, do Journal ID, da Data de lançamento e dos montantes das linhas. Voltar a executar o passo sobre um lançamento inalterado reutiliza esse mesmo ID externo, e o tratamento de IDs externos do próprio NetSuite impede a criação de duplicados — por isso, voltar a executar um fluxo de trabalho após uma falha transitória é seguro para os lançamentos que não foram alterados.