Árvore de páginas

Versões comparadas

Chave

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

Índice
4
maxLevel3


Informações
titleAtenção

Este conjunto de funcionalidades estará disponível a partir do release 12.1.33

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 adequação das estruturas das tabelas utilizadas nesse processo.

Além disso, esta ferramenta também possibilitará a carga inicial dos novos dados nos registros já gravados do sistema (registros legados), dessa forma, será possível utilizar a rotina de conciliação nos dados antigos do PROTHEUS.

Este WIZARD é uma ferramenta de implementação e configuração do ambiente para o Conciliador, não é necessário executa-lo previamente todas as vezes em que for utilizado o Conciliador Backoffice.


...

02. PRIMEIROS PASSOS

Para utilizar o wizard de configuração, são necessários alguns pré-requisitos:


02.01. FONTES COMPILADOS

Arquivos CTBA930.PRW, CTBA930a.PRW, CTBA930b.PRW, CTBA930c.PRW e CTBA930d.PRW compilados no repositório de objetos.


...

02.02. DICIONÁRIO DE DADOS


Baixar o pacote de atualização de dicionários necessários para implementação do Conciliador e executar o UPDDISTR. O pacote de dicionário deverá criar em seu banco de dados as tabelas QLB, QLC e QLC, além de incluír os campos CV3_IDORIG e CV3_IDDEST na tabela já existente CV3.


Image Added


Confira: Atualizador de dicionário e base de dados - UPDDISTR


Informações
titleAtenção

O compartilhamento de tabelas de conciliação (QLC - Cabeçalho de conciliação e QLD - Itens da conciliação) devem ser iguais e compatíveis com a maneira em que se deseja trabalhar as conciliações.

Para conciliar e consultar conciliações de mais de uma filial por vez, as tabelas QLC e QLD deverão estar em modo compartilhado, por padrão, serão criadas em modo exclusivo.


...

02.03. DBACCESS E LIB


O Conciliador irá utilizar campos do tipo "Unique Identifier" ou "UUID" para relacionar um registro conciliado a outro em diferentes tabelas, para lidar com esses tipos de campos, são necessárias versões de DBAccess e Lib possam lidar com este tipo de campo.

    • A versão mínima de DBAccess deve ser a versão 21.1.1.8.
      Para conferir a versão de seu DBAccess, acesse o DBMonitor. A versão fica na aba 'Informações'

Image Added

Para atualizar seu DBAccess confira: DBAccess - Como atualizar o DBAccess


    • A versão mínima de Lib deve ser a versão 20220725.
      Para conferir sua versão de Lib atual, abra o Protheus e acesse o menu Ajuda>Sobre.

Image Added



...

02.04. POSTGRESQL


Caso esteja utilizando banco de dados Postgres confira se sua fonte de dados ODBC está configurada corretamente conforme a documentação:


É necessário habilitar a chave chave MemoInQuery no DBAccess.ini


Essas configurações são essenciais para o correto funcionamento do Conciliador em ambientes que utilizam banco de dados PostgreSQL.


...

02.05. CARREGAR CONFIGURAÇÕES DE MATCH


Para carregar as configurações de match, basta acessar a rotina Conciliador Backoffice (CTBA940) em seu menu Protheus, ao acessar a rotina serão carregadas as Configurações de Match padrões do sistema na tabela QLB. Este carregamento também servirá para que os usuários recebam as atualizações nas configurações padrões.

Estas configurações padrões servirão de base para os usuários criem suas próprias configurações personalizadas.


...

03. EXECUÇÃO DA ROTINA

Antes de executar o Wizard, ative o parâmetro MV_PRJOVER preenchendo o seu conteúdo com '.T.' nos grupos de empresa que deseja utilizar, conforme o exemplo abaixo.


Image Added


Com este parâmetro ativado, será possível a inclusão de campos de identificação única nas tabelas que serão conciliadas

Para utilizar o Wizard de Configurações, nos parâmetros iniciais do sistema, deve ser informado o programa inicial: WIZARDUUID.

Image Added


...

04. APRESENTAÇÃO


Ao confirmar a tela anterior, será exibida a tela de apresentação do Wizard:

Por motivos de segurança do ambiente, apenas o usuário administrador pode acessa-lo. Após informar a senha, clique em 'Avançar'

Image Added


Selecione o grupos de empresas que deseja utilizar no processamento e clique em 'Avançar'

Image Added


...

05. OPÇÕES NO WIZARD

Após a tela de abertura serão exibidas as opções disponíveis para processamento.

Serão três opções para auxiliar a configuração inicial da base de dados para o uso do conciliador.

Dica
titleImportante*

*Foi implementada uma melhoria que realiza a importação de configurações de Match (QLB) automaticamente ao acessar o Conciliador. Por esta razão que a primeira opção do Wizard foi descontinuada e encontra-se desabilitada e não é necessário a sua execução, basta acessar a rotina CTBA940 no menu do Protheus que as configurações de match serão importadas para a tabela QLB.

Portanto, se este for o primeiro uso do Conciliador, lembre-se de acessar a rotina Conciliador Backoffice (CTBA940) no menu Protheus, conforme o tópico 02.05. para que as configurações de match sejam carregadas em seu ambiente, após isso, retorne ao WIZARDUUID para os passos seguintes.

Para mais detalhes sobre esta melhoria, confira:


Image Added


Siga todas as etapas disponíveis do Wizard de acordo com a sequência apresentada no momento de implantação, não pule etapas para que não ocorram erros no processo.

Após ter realizado seu primeiro acesso a rotina Conciliador Backoffice para o carregamento das configurações de match, siga a sequencia:

Informações
titleObservação

A opções 'Popular os campos de ID' e 'Popular Rastreamento Contábil' estão descritas como opcionais porque tem como objetivo, preparar os registros presentes no ambiente, antes da inclusão do campo MSUIDT para conciliação. Caso não queira conciliar os registros anteriores, não é necessário executar essas opções.



1º - Gerar SDF com os campos de ID
2º - Popular os campos de ID (opcional)
3º - Popular Rastreamento Contábil (opcional)


...

05.01. GERAR SDF COM CAMPOS DE ID

Incluir Página
Gerar SDF com campos de ID
Gerar SDF com campos de ID


...

05.02. POPULAR OS CAMPOS DE ID

Incluir Página
Popular os campos de ID
Popular os campos de ID


...

05.03. POPULAR RASTREAMENTO CONTABIL

Incluir Página
Popular Rastreamento Contábil
Popular Rastreamento Contábil


...


Após executar as 3 etapas do wizard de configuração inicial, seu ambiente esta preparado para a utilização do Conciliador. Confira a documentação:

Conciliador Backoffice - CTBA940 - P12 - Contabilidade Gerencial


06. INFORMAÇÕES RELACIONADAS

...

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>