Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice
maxLevel4

01. VISÃO GERAL

A Conciliação de dados é uma técnica que realiza o cruzamento (match) de dados na origem e destino, realizando comparações e verificando divergências, permitindo assim, a diminuição de erros, falta ou redundância de dados, promove ganhos como aumento da precisão, facilidade nos fechamentos, evitar fraudes e possibilidade de correções.

Atualmente, os clientes que usam o Protheus fazem essas conciliações por meio de softwares terceiros ou manualmente. Dependendo do tamanho da empresa, essas conciliações podem durar horas, dias ou semanas para serem concluídas, além de estarem sujeitas ao erro humano, já que é feita no “olhômetro” ou planilhas avulsas.
A proposta da ferramenta é solucionar esses problemas para que as conciliações sejam feitas de maneira rápida e fácil, com uma grande redução de riscos de erros na hora da execução, além de expandir a solução Protheus para os clientes que usam outros softwares de conciliações.

Também tem por objetivo atender a demanda de todos os módulos através de um wizard configurável, onde as informações de origem e destino poderão ser inseridas e utilizas para cruzamento de informações, sendo elas, tabelas envolvidas, filtros utilizados, regras de matchs, campos apresentados e condicionais para consultas. Por exemplo, será possível conciliar Títulos a Receber x Contábil, Estoque x Contábil, Títulos a Pagar x Informações Operadora etc.

Informações
titleAtenção

Este conjunto de funcionalidades estará disponível apenas no release 12.1.33

02. ARQUITETURA

...

03. CONFIGURAÇÃO

O desenvolvimento da funcionalidade Conciliador Protheus será realizada na plataforma web, assim, será necessária a utilização de desenvolvimento client-side (Front-End) com a tecnologia Angular e a biblioteca PO-UI e server-side (Back-End) com a tecnologia TLPP.

Front-End:

Criando um novo projeto Angular com PO UI

Pré-requisitos:

Recomendado:

Após instalar os itens citados acima, é necessário procurar uma pasta onde você gostaria de deixar o seu projeto alocado.

Abra o caminho dessa pasta no seu terminal de preferencia (recomendo o uso do Git Bash) e digite o comando:

Bloco de código
themeDJango
ng new NOMEDOPROJETO --routing=true --style=scss

Obs: Os parâmetros --routing e --style respectivamente são para que o projeto seja criado com o sistema de rotas já implementado e para que o padrão de arquivos de estilo do projeto sejam no formato SCSS, dessa forma podemos utilizar o pré-processador SASS.

Após ter feito esse processo, precisamos incluir o PO UI no projeto. Para fazer isso, navegue até a pasta principal do seu projeto e rode o seguinte comando:

Bloco de código
themeDJango
ng add @po-ui/ng-components

No processo de instalação, o terminal irá perguntar se deseja incluir uma estrutura inicial em seu projeto com menu lateral, página e toolbar, utilizando componentes do PO (estrutura padrão dos aplicativos que utilizam PO UI na TOTVS) Basta informar a tecla Y.

Uma última configuração é necessária para que o seu projeto fique no padrão TOTVS. É necessário instalar o tema oficial da TOTVS no PO UI. Rode o seguinte comando na pasta principal do seu projeto:

Bloco de código
themeDJango
npm install @totvs/po-theme

Depois da instalação ser finalizada, vá até o arquivo angular.json, procure o parâmetro "styles" dentro de "projects" e insira o caminho abaixo:

Bloco de código
themeDJango
"styles": [
  "node_modules/@totvs/po-theme/css/po-theme-default.min.css"
]

Caso já exista algum caminho dentro de styles que não seja relativo ao tema do PO, não é necessário remover.

Pronto, agora use o comando abaixo na pasta principal do seu projeto para roda-lo:

Bloco de código
themeDJango
ng serve

Acessando o endereço http://localhost:4200 após o build, você deve ver a estrutura padrão do PO UI.

Fonte: PO UI - Primeiros passos

Menu

O desenvolvimento será On-Premises, ou seja, será necessário adicionar o item Conciliação Contábil no Menu Protheus para que esteja disponível, como trata-se de uma funcionalidade web, esses aplicativos devem se armazenados no RPO e possuir um controle de alterações:

Para gerar a compilação dos arquivos Angular (PO UI) que vão no repositório Protheus, basta abrir a pasta principal do projeto, abrir o seu console de preferência (cmd, gitbash, etc) e rodar o comando:

Bloco de código
themeDJango
ng build -c production

Os arquivos serão gerados dentro da pasta dist dentro da pasta principal do projeto.

Image Removed

Back-End:

A comunicação será realizada através das configurações disponíveis:

Configuração da Porta Multiprotocolo e Configuração Rest (AppServer.ini):

View file
nameappserver.ini
height250

Application Server - Porta Multiprotocolo

Rest - ADVPL

Configuração para desenvolvimento TL++:

Visão Geral

Repositório

Configuração

Para que o aplicativo POUI seja utilizado no Protheus, o conteúdo gerado na pasta dist deverá ser zipado, após, sua extensão mudada para app. Deve-se criar um fonte com extensão prw,  este fará a chamada do app através da função FWCallApp, ambos devem ser compilados no repositório Protheus.

Observação:  O conteúdo da pasta dist deverá ser zipado dentro de uma pasta com o mesmo nome do prw responsável pela chamada, no exemplo abaixo foi utilizado PREXAMPLE:

Image Removed

Exemplo de fonte chamando a função FwCallApp para abertura de rotinas PO-UI no menu Protheus:

Image Removed

Adicionando rotina PREXAMPLE no Menu Protheus:

Image Removed

Tdn: Abrindo Aplicativos Web no Protheus

Deploy

Deploy de pipeline PO-UI usando Gitea + Drone

Os processos de desenvolvimento, testes, empacotamento e distribuição de software utilizando PO-UI devem ser realizados com Deploy de pipeline PO-UI usando Gitea + Drone, estas são as ferramenta adotadas pela Totvs para realização das tarefas de modo simples e automatizado.

Controle e versionamento
Todo controle e versionamento de repositórios deverá ser feita através do Gitea.

Gitea

Ferramenta de orquestração
A ferramenta de orquestração, ou seja, que organizará os scripts para execuções, deverá ser feita através do Drone CI.

Drone CI

Pipeline
Scripts (sequências de comandos) a serem criados e salvos com a extensão .sh (Shell script) e que serão utilizados pelo Drone CI para que seja capaz de realizar de forma automatizada testes e disponibilizar builds de desenvolvimentos para publicação.

Pipeline

Informações
titleConceitos Importantes

Fundamentos de Devops

POUI - Desenvolvimentos e expedições

04. Cadastros e APIs

Cadastro de Configurações

...

tabsImplementação,Imagens
idscadastro_configuracoes

Será necessário realizar os cadastros iniciais para utilização do conciliador, serão as configurações para utilização, as informações serão gravados na tabela QLB (Conciliador - Chaves) e devem conter:

...

defaultyes
referenciacampos

QLB_CODCFG - Código identificador da configuração a ser conciliada

QLB_DESCFG - Descrição da configuração a ser conciliada

QLB_TABORI - Tabela de Origem da conciliação

QLB_TABDES - Tabela de Destino da conciliação

QLB_FIELDS - Campos que serão apresentados no conciliador (origem e destino)

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_FIelds
linenumberstrue
collapsetrue
{ "data_ori": ["E1_FILIAL", "E1_PREFIXO", "E1_NUM", "E1_PARCELA", "E1_TIPO", "E1_CLIENTE", "E1_LOJA", "E1_EMISSAO", "E1_VALOR"], "data_des": [ "CT2_FILIAL", "CT2_DATA", "CT2_LOTE", "CT2_SBLOTE", "CT2_DOC", "CT2_LINHA", "CT2_VALOR", "CT2_HIST"] }

QLB_REGORI - Regras a serem utilizadas na query dos das de origem

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_REGORI
linenumberstrue
collapsetrue
[ { "table": "CV3", "typejoin": "left", "relation": [ "E1_FILIAL = SUBSTRING(CV3_KEY, 1, 8)", "E1_PREFIXO = SUBSTRING(CV3_KEY, 9, 2)", "E1_NUM = SUBSTRING(CV3_KEY, 11, 6)", "E1_PARCELA = SUBSTRING(CV3_KEY, 17, 1)", "E1_TIPO = SUBSTRING(CV3_KEY, 18, 1)" ] } ]

QLB_REGDES - Regras a serem utilizadas na query dos das de destino

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_REGDES
linenumberstrue
collapsetrue
[ { "table": "CV3", "typejoin": "left", "relation": [ "CT2_FILIAL = CV3_FILIAL", "CT2_LOTE = CV3_LOTKEY", "CT2_SBLOTE = CV3_SBLKEY", "CT2_DOC = CV3_DOCKEY", "CT2_LINHA = CV3_LINKEY", "CT2_TPSALD = CV3_TPSKEY", "CT2_EMPORI = CV3_EMPKEY", "CT2_FILORI = CV3_FLOKEY " ] } ]

QLB_FILTER - Filtros utilizados para busca dos dados (origem e destino)

Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Configuração - QLB_FILTER
linenumberstrue
collapsetrue
{ "tabori": [ { "order": "10", "field": "E1_TIPO", "operation": "=" }, { "order": "11", "field": "E1_NATUREZ", "operation": "=" }, { "order": "12", "field": "E1_VALOR", "operation": ">=" }, { "order": "13", "field": "E1_VALOR", "operation": "=<" }, { "order": "01", "field": "E1_EMISSAO", "operation": ">=" }, { "order": "02", "field": "E1_EMISSAO", "operation": "<=" }, { "order": "03", "field": "E1_VENCREA", "operation": ">=" }, { "order": "04", "field": "E1_VENCREA", "operation": "<=" }, { "order": "05", "field": "E1_CLIENTE", "operation": "=" }, { "order": "06", "field": "E1_LOJA", "operation": "=" }, { "order": "07", "field": "E1_PREFIXO", "operation": "=" }, { "order": "08", "field": "E1_NUM", "operation": ">=" }, { "order": "09", "field": "E1_NUM", "operation": "=<" } ],  "tabdes": [ { "order": "01", "field": "CT2_DATA", "operation": ">=" }, { "order": "02", "field": "CT2_DATA", "operation": "<=" }, { "order": "03", "field": "CT2_LOTE", "operation": "=" }, { "order": "04", "field": "CT2_DEBITO", "operation": "=" }, { "order": "05", "field": "CT2_CCD", "operation": "=" }, { "order": "06", "field": "CT2_ITEMD", "operation": "=" }, { "order": "07", "field": "CT2_CLVLDB", "operation": "=" } ] }

QLB_CIDOR - Campo ID da tabela de origem

QLB_CIDDES - Campo ID da tabela de destino 

QLB_DESCOR - Descrição da tabela origem

QLB_DESCDE - Descrição da tabela destino

APIs

...

tabsImplementação,Imagens
idsapis_imagens

CONFIGURAÇÕES e FILTROS

Possibilitará ao usuário buscar as configurações cadastradas no conciliador e também os filtros para obter os dados de origem e destino.

Totvs custom tabs box items
defaultyes
referenciaconfiguracoes_filtros

API para recuperar as configurações adicionadas pelo usuário e os filtros a serem utilizados, deverá buscar essas informações nos campos QLB_CODCFG, QLB_DESCFG e QLB_FILTER.

  • matchsetting
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "items": [
        {
            "filter": {
                "tabdes": [
                    {
                        "order": "01",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "CT2_LOTE",
                        "title": "Numero Lote",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "04",
                        "field": "CT2_DEBITO",
                        "title": "Cta Debito",
                        "type": "C",
                        "size": 20,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "05",
                        "field": "CT2_CCD",
                        "title": "C Custo Deb",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "CT2_ITEMD",
                        "title": "Item Debito",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "CT2_CLVLDB",
                        "title": "Cl Vlr Deb",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    }
                ],
                "tabori": [
                    {
                        "order": "10",
                        "field": "E1_TIPO",
                        "title": "Tipo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "11",
                        "field": "E1_NATUREZ",
                        "title": "Natureza",
                        "type": "C",
                        "size": 10,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "12",
                        "field": "E1_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": ">="
                    },
                    {
                        "order": "13",
                        "field": "E1_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": "=<"
                    },
                    {
                        "order": "01",
                        "field": "E1_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "E1_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "E1_VENCREA",
                        "title": "Vencto real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "04",
                        "field": "E1_VENCREA",
                        "title": "Vencto real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "05",
                        "field": "E1_CLIENTE",
                        "title": "Cliente",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "E1_LOJA",
                        "title": "Loja",
                        "type": "C",
                        "size": 2,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "E1_PREFIXO",
                        "title": "Prefixo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "08",
                        "field": "E1_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "09",
                        "field": "E1_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "=<"
                    }
                ]
            },
            "tabdes": "LANCAMENTOS CONTABEIS(CT2)",
            "codcfg": "0101",
            "tabori": "CONTAS A RECEBER(SE1)",
            "value": "T1||0101",
            "branch": "",
            "label": "0101-CONTABIL X CONTAS A RECEBER"
        },
        {
            "filter": {
                "tabdes": [
                    {
                        "order": "01",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "CT2_DATA",
                        "title": "Data Lcto",
                        "type": "D",
                        "size": 8,
                        "picture": "99/99/9999",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "CT2_LOTE",
                        "title": "Numero Lote",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "04",
                        "field": "CT2_CREDIT",
                        "title": "Cta Credito",
                        "type": "C",
                        "size": 20,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "05",
                        "field": "CT2_CCC",
                        "title": "C Custo Crd",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "CT2_ITEMC",
                        "title": "Item Credito",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "CT2_CLVLCR",
                        "title": "Cl Vlr Cred",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    }
                ],
                "tabori": [
                    {
                        "order": "10",
                        "field": "E2_TIPO",
                        "title": "Tipo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "11",
                        "field": "E2_NATUREZ",
                        "title": "Natureza",
                        "type": "C",
                        "size": 10,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "12",
                        "field": "E2_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": ">="
                    },
                    {
                        "order": "13",
                        "field": "E2_VALOR",
                        "title": "Vlr.Titulo",
                        "type": "N",
                        "size": 16,
                        "picture": "@E 9,999,999,999,999.99",
                        "decimal": 2,
                        "operation": "=<"
                    },
                    {
                        "order": "01",
                        "field": "E2_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "02",
                        "field": "E2_EMISSAO",
                        "title": "DT Emissao",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "03",
                        "field": "E2_VENCREA",
                        "title": "Vencto Real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "04",
                        "field": "E2_VENCREA",
                        "title": "Vencto Real",
                        "type": "D",
                        "size": 8,
                        "picture": "",
                        "decimal": 0,
                        "operation": "<="
                    },
                    {
                        "order": "05",
                        "field": "E2_FORNECE",
                        "title": "Fornecedor",
                        "type": "C",
                        "size": 6,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "06",
                        "field": "E2_LOJA",
                        "title": "Loja",
                        "type": "C",
                        "size": 2,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "07",
                        "field": "E2_PREFIXO",
                        "title": "Prefixo",
                        "type": "C",
                        "size": 3,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "="
                    },
                    {
                        "order": "08",
                        "field": "E2_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": ">="
                    },
                    {
                        "order": "09",
                        "field": "E2_NUM",
                        "title": "No. Titulo",
                        "type": "C",
                        "size": 9,
                        "picture": "@!",
                        "decimal": 0,
                        "operation": "=<"
                    }
                ]
            },
            "tabdes": "LANCAMENTOS CONTABEIS(CT2)",
            "codcfg": "0102",
            "tabori": "CONTAS A PAGAR(SE2)",
            "value": "T1||0102",
            "branch": "",
            "label": "0102-CONTABIL X CONTAS A PAGAR"
        }
    ],
    "hasNext": false,
    "po_sync_date": "2021-08-25T17:19:20Z"
}          

API para criar as tabelas e popular temporárias origem e destino, conterá os campos utilizados e as informações das tabelas, utilizará os campos QLB_TABORI, QLB_TABDES, QLB_FIELDS, QLB_REGORI e QLB_REGDES.

  • matchprocessing
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
{
   "codcfg": "0101",
   "date": "20210728",
   "time": "16:12",
   "user": "a.santos",
   "tabdes": [
      {
         "field": "CT2_DATA",
         "operation": ">=",
         "value": "20210701",
         "type": "D"
      },
      {
         "field": "CT2_DATA",
         "operation": "<=",
         "value": "20210731",
         "type": "D"
      },
      {
         "field": "CT2_LOTE",
         "operation": "=",
         "value": "008850",
         "type": "C"
      },
      {
         "field": "(CT2_DEBITO OR CT2_CREDIT)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_CCD OR CT2_CCC)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_ITEMD OR CT2_ITEMC)",
         "operation": "=",
         "value": "",
         "type": "C"
      },
      {
         "field": "(CT2_CLVLDB OR CT2_CLVLCR)",
         "operation": "=",
         "value": "",
         "type": "C"
      }
   ],
   "tabori": [
      {
          "field": "E1_TIPO",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_NATUREZ",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_VALOR",
          "operation": ">=",
          "value": 0.00,
          "type": "N"
      },
      {
          "field": "E1_VALOR",
          "operation": "<=",
          "value": 1000.00,
          "type": "N"
      },
      {
          "field": "E1_EMISSAO",
          "operation": ">=",
          "value": "20210701",
          "type": "D"
      },
      {
          "field": "E1_EMISSAO",
          "operation": "<=",
          "value": "20210731",
          "type": "D"
      },
      {
          "field": "E1_VENCREA",
          "operation": ">=",
          "value": "",
          "type": "D"
      },
      {
          "field": "E1_VENCREA",
          "operation": "<=",
          "value": "",
          "type": "D"
      },
      {
          "field": "E1_CLIENTE",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_LOJA",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
          "field": "E1_PREFIXO",
          "operation": "=",
          "value": "",
          "type": "C"
      },
      {
           "field": "E1_NUM",
           "operation": ">=",
           "value": "",
           "type": "C"
      },
      {
          "field": "E1_NUM",
          "operation": "=<",
          "value": "",
          "type": "C"
      }
   ]
}
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response
linenumberstrue
collapsetrue
{
    "tabori": "TC25144444",
    "tabdes": "TC25144448"
}

GRID

...

tabsImplementação,Grid, Modal de Confirmação, Alerta de Status
idsgrid_implementacao,grid_imagem,grid_modal,grid_alert

Os grids apresentarão as informações utilizadas na conciliação, serão separadas em Origem e Destino, os campos para apresentação dos dados serão configuráveis e devem ser adicionados na tabela QLB, campo QLB_FIELDS.

Teremos essas opções no combobox citado acima: 

  • Registros conciliados
  • Registros não conciliados

Os registros serão apresentados conforme os filtros adicionados pelo usuário, as informações que tiverem match automático aparecerão marcados na origem e destino e estão prontos para conciliação, não poderão ser desmarcados pois atenderam a regra automática. Já os registros que não tiverem match automático, poderão ser selecionados na origem e destino para conciliação manual.

Após clicar no botão "Conciliar", um modal (aba 3) será exibido para que o usuário confirme sua ação. O modal será construído com o componente Modal do PO UI. Depois da confirmação do usuário, o sistema irá exibir um alerta para o usuário informando o usuário sobre o resultado da ação (aba 4). O alerta será construído com o Interceptor do PO UI, em conjunto com o back-end.

Será possível realizar a exportação das tabelas via excel. Ao exportar o arquivo, os matches precisam estar alinhados para facilitar a visualização. No arquivo também terá a informação dos filtros que foram selecionados.

...

defaultyes
referenciagrid_implementacao

Api responsável por realizar a consulta nas tabelas temporárias de origem e destino e apresentar as informações para apresentação no front-end.

  • conciliateitems:
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Request
linenumberstrue
collapsetrue
[]
Bloco de código
languagecoldfusion
themeDJango
firstline1
titleJson Response: Get
linenumberstrue
collapsetrue
{
    "items": [
        {
            "a1tpcamp": "",
            "a1loja": "01",
            "a1prior": "",
            "a1pais": "",
            "a1rimamt": "",
            "a1regpb": "",
            "a1dtfimv": "",
            "a1condpag": "",
            "a1diaspag": 0,
            "a1tribfav": "",
            "a1pessoa": "J",
            "a1endcob": "TESTEMACARIO, 1977",
            "a1dest2": "",
            "a1endent": "",
            "a1subcod": "",
            "a1tpissrs": "",
            "a1dest1": "",
            "a1dest3": "",
            "a1prfcod": "",
            "a1clicnv": "",
            "a1pricom": "1987-8-31",
            "a1ultcom": "2021-8-6",
            "a1nrocom": 254,
            "a1bco1": "",
            "a1bco2": "",
            "a1bco3": "",
            "a1bco4": "",
            "a1bco5": "",
            "a1lc": 1000000,
            "a1iencont": "",
            "a1hrtrans": "",
            "a1compent": "",
            "a1percatm": 0,
            "a1abatimp": "",
            "a1contab": "",
            "a1nome": "CLIENTE PADRAO",
            "a1codmune": "",
            "a1nropag": 64,
            "a1unidven": "",
            "a1outrmun": "",
            "a1aliqir": 15,
            "a1munc": "",
            "a1end": "R...",
            "a1vend": "",
            "a1mune": "",
            "a1cond": "",
            "a1codmemb": "",
            "a1simples": "",
            "a1naturez": "IRGCT",
            "a1tipprfl": "",
            "a1inovaut": "",
            "a1userlga": "0#  3@  20 30c",
            "a1cod": "000001",
            "a1userlgi": "",
            "a1tabela": "",
            "a1cargo1": "",
            "a1cargo2": "",
            "a1comis": 0,
            "a1cepe": "",
            "a1venclc": "",
            "a1cargo3": "",
            "a1tipcli": "",
            "a1cepc": "",
            "a1tipo": "F",
            "a1tpmemb": "",
            "a1codpais": "",
            "a1incult": "",
            "a1cnae": "",
            "a1grptrib": "",
            "a1tipper": "",
            "a1tpfret": "",
            "a1recfet": "",
            "a1cdrdes": "",
            "a1rg": "",
            "a1fax": "",
            "a1mundfc": "",
            "a1indret": "",
            "a1contrib": "",
            "a1msexp": "",
            "a1alifixa": "",
            "a1desc": 0,
            "a1entid": "",
            "a1codter": "",
            "a1lcfin": 0,
            "a1tda": "",
            "a1super": "",
            "a1moedalc": 0,
            "a1est": "SP",
            "a1ddd": "",
            "a1estc": "",
            "a1telex": "",
            "a1ddi": "",
            "a1tipocli": "",
            "a1este": "",
            "a1reccsll": "",
            "a1issrslc": "",
            "a1vinculo": "",
            "a1tpdp": "",
            "a1suframa": "",
            "a1metr": 89.66,
            "a1atr": 0,
            "a1rtec": "",
            "a1matr": 0,
            "a1codfid": "",
            "a1fomezer": "",
            "a1tel": "",
            "a1perfil": 0,
            "a1mun": "SAO PAULO",
            "a1chqdevo": 0,
            "a1salfin": 0,
            "a1clifat": "",
            "a1resfat": "",
            "a1calcsuf": "",
            "a1minirf": "",
            "a1entori": "",
            "a1rfasemt": "",
            "a1m996": "",
            "a1inscrm": "",
            "a1clasven": "",
            "a1salfinm": 0,
            "a1cxposta": "",
            "a1sativ2": "",
            "a1dtnasc": "",
            "a1sativ4": "",
            "a1ibge": "",
            "a1classe": "",
            "a1observ": "",
            "a1sativ8": "",
            "a1sativ6": "",
            "a1sativ7": "",
            "a1sativ1": "",
            "a1complem": "",
            "a1vacum": 110083.67,
            "a1codhist": "",
            "a1contato": "",
            "a1tpessoa": "",
            "a1agreg": "",
            "a1sativ3": "",
            "a1reciss": "",
            "a1tmpstd": "00:00",
            "a1ctare": "",
            "a1inciss": "",
            "a1numra": "",
            "a1loccons": "",
            "a1irbax": "",
            "a1sativ5": "",
            "a1usadda": "",
            "a1maidupl": 103835.32,
            "a1saldupm": 57365.05,
            "a1idhist": "",
            "a1msaldo": 119276.7,
            "a1imgumov": "",
            "a1idestn": "",
            "a1pagatr": 190479.97,
            "a1endrec": "",
            "a1salped": 94.74,
            "a1fildeb": "",
            "a1codmarc": "",
            "a1fretiss": "",
            "a1dscreg": "",
            "a1simpnac": "",
            "a1tpreg": "",
            "a1nif": "",
            "a1nvestn": 0,
            "a1codmun": "",
            "a1grpven": "",
            "a1mcompra": 152889,
            "a1codmusu": "",
            "a1codsiaf": "",
            "a1recirrf": "1",
            "a1ec06db": "",
            "a1pfisica": "",
            "a1codloc": "",
            "a1hrcad": "",
            "a1dtcad": "",
            "a1ec06cr": "",
            "a1perfecp": 0,
            "a1salpedb": 0,
            "a1bairroc": "",
            "a1recinss": "",
            "a1bairroe": "",
            "a1rfabov": "",
            "a1endnot": "",
            "a1codfor": "",
            "a1salpedl": -111.450000000000003,
            "a1hrexpo": "",
            "a1ec08db": "",
            "a1timekee": "",
            "a1filial": "D MG",
            "a1msblql": "",
            "a1chvcam": "",
            "a1regiao": "",
            "a1inscrur": "",
            "a1temvis": 0,
            "a1ultvis": "",
            "a1prstser": "",
            "a1tmpvis": "",
            "a1dtiniv": "",
            "a1reserve": "",
            "a1reccofi": "",
            "a1ec08cr": "",
            "a1recpis": "",
            "a1crdma": "",
            "a1mensage": "",
            "a1prfvld": "",
            "a1tpj": "",
            "a1formvis": "",
            "a1dtultit": "",
            "a1recfmd": "",
            "a1regesim": "",
            "a1saldup": 724493.56,
            "a1dtulchq": "",
            "a1b2b": "",
            "a1nreduz": "CLIENTE PADRAO",
            "a1blemail": "",
            "a1cbo": "",
            "a1obs": "",
            "a1codage": "",
            "a1comage": 0,
            "a1email": "",
            "a1hpage": "",
            "a1incltmg": "",
            "a1cep": "",
            "a1conta": "",
            "a1inscr": "",
            "a1abics": "",
            "a1rfacs": "",
            "a1filtrf": "",
            "a1clipri": "",
            "a1lojpri": "",
            "a1bairro": "",
            "a1ativida": "",
            "a1situa": "",
            "a1cgc": "",
            "a1prfobs": "",
            "a1ipweb": "",
            "a1transf": "",
            "a1tpnfse": "",
            "a1transp": "",
            "a1ec09db": "",
            "a1ec09cr": "",
            "a1ceinss": "",
            "a1ec05db": "",
            "a1titprot": -1,
            "a1ec05cr": "",
            "a1origct": "",
            "a1ec07db": "",
            "a1estado": "",
            "a1ec07cr": "",
            "a1cbairre": "",
            "a1codseg": "",
            "a1origem": "",
            "a1matfun": "",
            "a1risco": ""
        },
        {
            "a1tpcamp": "",
            "a1loja": "01",
            "a1prior": "",
            "a1pais": "",
            "a1rimamt": "",
            "a1regpb": "",
            "a1dtfimv": "",
            "a1condpag": "",
            "a1diaspag": 0,
            "a1tribfav": "",
            "a1pessoa": "J",
            "a1endcob": "",
            "a1dest2": "",
            "a1endent": "",
            "a1subcod": "",
            "a1tpissrs": "",
            "a1dest1": "",
            "a1dest3": "",
            "a1prfcod": "",
            "a1clicnv": "",
            "a1pricom": "1998-1-12",
            "a1ultcom": "2021-5-14",
            "a1nrocom": 50,
            "a1bco1": "",
            "a1bco2": "",
            "a1bco3": "",
            "a1bco4": "",
            "a1bco5": "",
            "a1lc": 0,
            "a1iencont": "",
            "a1hrtrans": "",
            "a1compent": "",
            "a1percatm": 0,
            "a1abatimp": "1",
            "a1contab": "",
            "a1nome": "CLIENTE ANDREA",
            "a1codmune": "",
            "a1nropag": 18,
            "a1unidven": "",
            "a1outrmun": "",
            "a1aliqir": 0,
            "a1munc": "",
            "a1end": "RUA DAS ESTRELAS,100",
            "a1vend": "",
            "a1mune": "",
            "a1cond": "",
            "a1codmemb": "",
            "a1simples": "",
            "a1naturez": "000001",
            "a1tipprfl": "",
            "a1inovaut": "2",
            "a1userlga": "0#  6@  50Ž 40€",
            "a1cod": "000002",
            "a1userlgi": "0#  0@  50z 40h",
            "a1tabela": "",
            "a1cargo1": "",
            "a1cargo2": "",
            "a1comis": 0,
            "a1cepe": "",
            "a1venclc": "",
            "a1cargo3": "",
            "a1tipcli": "1",
            "a1cepc": "",
            "a1tipo": "F",
            "a1tpmemb": "",
            "a1codpais": "",
            "a1incult": "",
            "a1cnae": "",
            "a1grptrib": "",
            "a1tipper": "",
            "a1tpfret": "",
            "a1recfet": "",
            "a1cdrdes": "",
            "a1rg": "",
            "a1fax": "",
            "a1mundfc": "",
            "a1indret": "",
            "a1contrib": "",
            "a1msexp": "",
            "a1alifixa": "",
            "a1desc": 0,
            "a1entid": "",
            "a1codter": "",
            "a1lcfin": 0,
            "a1tda": "",
            "a1super": "",
            "a1moedalc": 2,
            "a1est": "SP",
            "a1ddd": "",
            "a1estc": "",
            "a1telex": "",
            "a1ddi": "",
            "a1tipocli": "",
            "a1este": "",
            "a1reccsll": "S",
            "a1issrslc": "",
            "a1vinculo": "",
            "a1tpdp": "2",
            "a1suframa": "",
            "a1metr": -9.970000000000001,
            "a1atr": 0,
            "a1rtec": "",
            "a1matr": 4,
            "a1codfid": "",
            "a1fomezer": "",
            "a1tel": "",
            "a1perfil": 0,
            "a1mun": "SAO PAULO",
            "a1chqdevo": 0,
            "a1salfin": 0,
            "a1clifat": "",
            "a1resfat": "",
            "a1calcsuf": "",
            "a1minirf": "2",
            "a1entori": "",
            "a1rfasemt": "",
            "a1m996": "",
            "a1inscrm": "",
            "a1clasven": "",
            "a1salfinm": 0,
            "a1cxposta": "",
            "a1sativ2": "",
            "a1dtnasc": "",
            "a1sativ4": "",
            "a1ibge": "",
            "a1classe": "",
            "a1observ": "",
            "a1sativ8": "",
            "a1sativ6": "",
            "a1sativ7": "",
            "a1sativ1": "",
            "a1complem": "",
            "a1vacum": 62768.3,
            "a1codhist": "",
            "a1contato": "",
            "a1tpessoa": "",
            "a1agreg": "",
            "a1sativ3": "",
            "a1reciss": "",
            "a1tmpstd": "00:00",
            "a1ctare": "",
            "a1inciss": "",
            "a1numra": "",
            "a1loccons": "",
            "a1irbax": "2",
            "a1sativ5": "",
            "a1usadda": "2",
            "a1maidupl": 25063.91,
            "a1saldupm": 23812.1,
            "a1idhist": "",
            "a1msaldo": 31290.38,
            "a1imgumov": "",
            "a1idestn": "",
            "a1pagatr": 3000,
            "a1endrec": "",
            "a1salped": 0,
            "a1fildeb": "",
            "a1codmarc": "",
            "a1fretiss": "",
            "a1dscreg": "",
            "a1simpnac": "",
            "a1tpreg": "",
            "a1nif": "",
            "a1nvestn": 0,
            "a1codmun": "",
            "a1grpven": "",
            "a1mcompra": 25063.91,
            "a1codmusu": "",
            "a1codsiaf": "",
            "a1recirrf": "",
            "a1ec06db": "",
            "a1pfisica": "",
            "a1codloc": "",
            "a1hrcad": "",
            "a1dtcad": "",
            "a1ec06cr": "",
            "a1perfecp": 0,
            "a1salpedb": 0,
            "a1bairroc": "",
            "a1recinss": "",
            "a1bairroe": "",
            "a1rfabov": "",
            "a1endnot": "",
            "a1codfor": "",
            "a1salpedl": 0,
            "a1hrexpo": "",
            "a1ec08db": "",
            "a1timekee": "",
            "a1filial": "D MG",
            "a1msblql": "2",
            "a1chvcam": "",
            "a1regiao": "",
            "a1inscrur": "",
            "a1temvis": 0,
            "a1ultvis": "",
            "a1prstser": "",
            "a1tmpvis": "00:00",
            "a1dtiniv": "",
            "a1reserve": "",
            "a1reccofi": "S",
            "a1ec08cr": "",
            "a1recpis": "S",
            "a1crdma": "",
            "a1mensage": "",
            "a1prfvld": "",
            "a1tpj": "",
            "a1formvis": "",
            "a1dtultit": "",
            "a1recfmd": "",
            "a1regesim": "2",
            "a1saldup": 80936.3,
            "a1dtulchq": "",
            "a1b2b": "2",
            "a1nreduz": "CLIENTE ANDREA",
            "a1blemail": "",
            "a1cbo": "",
            "a1obs": "",
            "a1codage": "",
            "a1comage": 0,
            "a1email": "",
            "a1hpage": "",
            "a1incltmg": "",
            "a1cep": "",
            "a1conta": "",
            "a1inscr": "",
            "a1abics": "",
            "a1rfacs": "",
            "a1filtrf": "",
            "a1clipri": "",
            "a1lojpri": "",
            "a1bairro": "",
            "a1ativida": "",
            "a1situa": "",
            "a1cgc": "56061652416451",
            "a1prfobs": "",
            "a1ipweb": "",
            "a1transf": "",
            "a1tpnfse": "",
            "a1transp": "",
            "a1ec09db": "",
            "a1ec09cr": "",
            "a1ceinss": "",
            "a1ec05db": "",
            "a1titprot": 0,
            "a1ec05cr": "",
            "a1origct": "",
            "a1ec07db": "",
            "a1estado": "",
            "a1ec07cr": "",
            "a1cbairre": "",
            "a1codseg": "",
            "a1origem": "",
            "a1matfun": "",
            "a1risco": ""
        }
    ],
    "hasNext": true,
    "po_sync_date": "2021-08-25T18:13:18Z"
}

05. Campos e Parâmetros

...

Campo

...

Titulo

...

Descrição

...

Com o objetivo de facilitar a configuração inicial da rotina de conciliação, foi desenvolvido um wizard que auxiliará na preparação, tanto da estrutura das tabelas, quanto da carga inicial do legado do sistema. 

Informações
titleAtenção

Este conjunto de funcionalidades estará disponível apenas no release 12.1.33


02. PRÉ-REQUISITOS

Os pré-requisitos para utilização do wizard de configuração é ter o arquivo CTBA930.PRW compilado no repositório de objetos.

E a versão da Lib igual ou superior a 20211004.


03. Opções disponíveis no Wizard

Foram implementadas três funcionalidades no Wizard de Configuração do Conciliador:

Image Added


1. Gerar SDF com campos de ID

Nessa opção o Wizard auxiliará na criação dos campos de ID utilizados para identificar os registros na rotina de conciliação.

Os campos serão criados com a estrutura XXX_TCUUID (Totvs Conciliador UUID), onde XXX é a tabela utilizada pelo conciliador.

Os campos TCUUID devem ser alimentados com um id único formado por 32 posições (UUID) obtidos pela função FWUUIDV4.

Somente serão apresentados no Wizard, campos das tabelas que possuem alguma configuração de match na rotina de conciliação (Tabela QLB).

O Wizard não fará a inclusão dos arquivos diretamente nas tabelas, mas sim, fará a geração de um arquivo SDFBRA.txt que será utilizado posteriormente pela rotina de atualização de dicionários UPDDISTR.


2. Popular os campos de ID

Nessa opção o Wizard fará a inclusão dos códigos UUID nos campos criados no passo anterior.

Isso se faz necessário para que o usuário possa utilizar o conciliador nos registros anteriores à criação dos campos de ID (XXX_TCUUID). Ou seja, essa opção serve para popular o legado.


3. Popular Rastreamento Contábil

Desenvolver documentação neste ponto após desenvolver a rotina

04. Gerar SDF com campos de ID


05. Popular os campos de ID

06. Popular Rastreamento Contábil

...

Campo

...

Titulo

...

Descrição

...

Campo

...

Titulo

...

Descrição

...

06. Tabelas Utilizadas

...


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>