Pular para o conteúdo principal
O mapeamento é um documento YAML. Ele diz de onde vem cada valor de um documento regulatório nos seus dados. Para enviá-lo, substitua o mapeamento de uma inscrição. O Reporter lê o documento, confere com o contrato da versão fixada e o armazena. O contrato de um documento e o template dele pertencem à Lerian. O contrato nomeia os conjuntos e os campos do documento. O template coloca cada valor no arquivo. Esta página descreve o mapeamento. Um mapeamento que o Reporter não consegue ler é recusado com HTTP 400 e RPT-0143. O detalhe nomeia o ponto a corrigir, por exemplo query 'saldos_cosif'. Veja a lista de erros.

Exemplo


Este mapeamento preenche dois conjuntos do CADOC 4010. A consulta saldos_cosif soma os lançamentos aprovados de cada route_code criados antes do fim do período do parâmetro dataBase. Um crédito soma o amount dele. Um débito o subtrai. O mapeamento de referência publicado para este documento também filtra pelo ativo BRL, pelos lançamentos que moveram um saldo e pelas linhas que não foram apagadas. Ele também corta o fim do período pelo calendário de dias úteis.

Como o Reporter lê o documento


  • O documento deve ser YAML. Um documento vazio é recusado. O nível superior deve ser um objeto de chaves e valores.
  • Cada bloco aceita as chaves da tabela dele nesta página. Um bloco com qualquer outra chave é recusado. A recusa lista as chaves que o bloco aceita.
  • Uma chave conhecida sem valor conta como não escrita.
  • Um texto obrigatório não pode ser vazio.
  • O Reporter lê um valor como o texto que você escreve. 7 e "7" são o mesmo valor.
  • O Reporter aceita âncoras e aliases do YAML. Ele recusa a chave de mesclagem <<.
  • Duas consultas não podem ter o mesmo nome. Dois conjuntos não podem ter o mesmo nome. Dois campos de um conjunto não podem ter o mesmo nome.
  • Estes nomes devem corresponder a uma consulta do mapeamento: o from de uma consulta, a query do from de um conjunto, a query de um join e a query de um campo de um conjunto. Uma consulta pode ser declarada depois do conjunto ou da consulta que se refere a ela.

Chaves de nível superior


Consultas


Uma consulta lê linhas dos seus dados. Conjuntos e outras consultas se referem a uma consulta pelo nome dela. Uma consulta é recusada quando:
  • ela não tem dataSource nem from;
  • ela tem from e também dataSource ou table;
  • ela tem dataSource e não tem table;
  • o from dela nomeia a própria consulta, nomeia uma consulta que o mapeamento não declara ou fecha um anel com outras consultas.

Filtros

Uma linha permanece quando passa em cada condição de filters. As condições sobre a mesma coluna se aplicam todas. Uma condição é um teste ou uma combinação: Uma condição precisa de field e operator, ou de anyOf ou allOf. Estes operadores são aceitos: Para excluir linhas por prefixo, use notStartsWith. Este filtro descarta as linhas cujo route_code começa com 7 ou 8:
Uma condição é recusada quando:
  • ela tem uma chave diferente de field, operator, values, anyOf e allOf;
  • ela tem field e também anyOf ou allOf;
  • ela não tem field nem anyOf nem allOf;
  • ela tem field e não tem operator;
  • o operator dela não está na tabela. A recusa lista os operadores aceitos;
  • ela tem isNull ou notNull com valores ou com um parâmetro;
  • ela tem between com um parâmetro, ou com um número de valores diferente de dois;
  • ela tem qualquer outro operador sem valor e sem parâmetro.
Duas condições de filters sobre uma coluna são recusadas quando usam o mesmo operador. Elas também são recusadas quando uma delas é isNull ou notNull. Dois operadores diferentes sobre uma coluna se combinam, e é assim que você escreve um período: gte para o início e lt para o fim. Uma geração recusa between junto de gte ou lte.

Valores lidos de um parâmetro

Um parâmetro é um valor que você envia na requisição de geração. Um item de values que é um objeto lê um parâmetro: Sem at, a condição compara com o valor do parâmetro como a requisição o traz. Com at, o parâmetro nomeia um período: AAAA-MM para um mês, AAAA-MM-DD para um dia. As bordas seguem o fuso horário do relatório. start é o primeiro instante dentro do período. end é o primeiro instante depois dele. Compare start com gte e end com lt. Assim, nenhum instante cai em dois períodos nem em nenhum. Com calendar: business, um período termina logo depois do último dia útil dele. Ele começa logo depois do último dia útil do período anterior. Esta consulta lê o mês do parâmetro, até o fim do período dele:
Um valor de parâmetro é recusado quando:
  • values lista dois parâmetros, ou lista um texto ao lado de um parâmetro;
  • o objeto do parâmetro tem uma chave diferente de parameter, at, of e calendar, ou não tem parameter;
  • at não é start nem end;
  • of não é day, month nem year;
  • calendar não é business;
  • ele tem of ou calendar e não tem at;
  • ele tem at: start com um operador diferente de gte, ou at: end com um operador diferente de lt.
Uma geração recusa um of mais curto que o período do parâmetro, por exemplo of: day em um mês.

Joins

Um join traz uma tabela ao lado das linhas da consulta. Cada item de join tem estas chaves: Com left, cada linha da consulta permanece, e as colunas trazidas ficam vazias onde nenhuma linha emparelha. Com inner, as linhas sem par saem. Uma linha com vários pares vira várias linhas. Um join é recusado quando:
  • ele não nomeia table nem query, ou nomeia as duas;
  • ele não tem match, ou match não tem nenhum par;
  • ele escreve on no lugar de match. Escreva match;
  • ele tem uma chave diferente de table, query, match, columns e type;
  • ele traz uma tabela e não tem columns, ou columns não tem nenhum par;
  • ele traz uma consulta e tem columns;
  • dois joins da consulta trazem o mesmo nome, ou um join traz um nome que ele também emparelha em match;
  • type não é left nem inner.

Colunas calculadas

compute adiciona uma coluna a cada linha. As etapas seguintes a leem como uma coluna da tabela: filtros, agrupamento e somas. Um case tem estas chaves: Uma resposta é um objeto com exatamente uma chave: Com otherwise: refuse, uma linha cujo valor when não lista faz a geração ser recusada. Uma coluna calculada é recusada quando:
  • compute tem dois itens com o mesmo as;
  • um item tem uma chave diferente de as e case, ou não tem as ou case;
  • o case tem uma chave diferente de column, when e otherwise;
  • column ou otherwise faltam, ou when falta ou está vazio;
  • otherwise é um texto diferente de refuse;
  • as é também um nome que um join traz ou que um derive nomeia, ou o case lê outra coluna calculada;
  • uma resposta não tem exatamente uma entre column, negate e constant, ou o valor dela está vazio.

Agrupamento e medidas

aggregate reduz as linhas a uma linha para cada grupo. Uma medida tem estas chaves. As três são obrigatórias: Uma consulta que agrupa retorna as colunas de groupBy e uma coluna para cada medida. Um campo que lê outra coluna é recusado quando você salva. Uma geração é recusada quando uma linha não tem valor em uma coluna de groupBy. aggregate é recusado quando tem uma chave diferente de groupBy e measures, ou quando measures falta ou está vazio. Uma medida é recusada quando tem uma chave diferente de as, fn e of, ou quando falta uma delas. Uma geração recusa duas medidas com o mesmo as.

Colunas que uma consulta retorna

select nomeia as colunas que uma consulta retorna. Sem ele, a consulta retorna cada coluna e os campos escolhem. Com ele, um campo que lê outra coluna é recusado quando você salva. select é recusado quando a consulta também tem aggregate, quando ele está vazio, ou quando nomeia uma coluna duas vezes ou nomeia uma coluna vazia.

Listas dentro de documentos

expand nomeia uma lista dentro de cada documento, como um caminho com pontos dos campos da tabela. Cada item da lista vira uma linha. A consulta lê os campos do item sob o caminho da lista. Em uma fonte de dados PostgreSQL, a resposta do salvamento lista expand em unexecuted, e uma geração é recusada. expand é recusado quando o caminho está vazio, começa ou termina com ponto, tem dois pontos seguidos, ou tem um espaço ou um $. Ele também é recusado em uma consulta que tem from.

Construções que uma geração recusa

O Reporter lê e armazena estas construções. A resposta do salvamento as lista em unsupported. Uma geração de um mapeamento que contém uma delas é recusada.

Conjuntos


Cada chave de datasets é o nome de um conjunto que o contrato declara. O valor dela tem estas chaves: Um conjunto aberto tem uma linha para cada linha da consulta dele. O Reporter ordena as linhas pelos campos-chave do conjunto, como texto em ordem de bytes. Sem from, o conjunto não tem linhas de consulta. Se o contrato declara o conjunto como uma linha, as constantes e os parâmetros dele preenchem essa linha. Quando o contrato declara uma hierarquia para o código do conjunto, o Reporter também adiciona uma linha para cada código ancestral, com a soma das linhas abaixo dele. Retorne o valor lançado em cada código. Não retorne um valor de pai que já inclui os filhos, porque o Reporter soma os filhos a ele. As linhas de um conjunto que o catálogo publica são as linhas publicadas, uma para cada. O mapeamento dá os valores delas:
  • As consultas do conjunto leem só as linhas cuja coluna de rowKey contém um código publicado. Quando o contrato declara uma hierarquia para o código, elas leem as linhas cujo código está sob um código publicado. O Reporter deixa de fora uma linha com outro código e não a recusa. Em um item de also, o Reporter não deixa de fora uma linha com outro código: ele recusa a geração.
  • Uma linha de resultado preenche a linha publicada do código dela. Quando o contrato declara uma hierarquia, ela também preenche cada linha publicada acima desse código. Essa linha publicada lê a soma das medidas das linhas de resultado do código dela e dos códigos abaixo dele.
  • Com uma hierarquia, retorne o valor lançado em cada código. Não retorne um valor de pai que já inclui os filhos, porque o Reporter soma os filhos a ele.
  • Uma linha publicada sem linha de resultado lê 0 em uma medida que uma consulta preenche. As outras colunas de consulta dela ficam sem valor. Um campo obrigatório que lê uma delas faz a geração ser recusada.
  • Duas linhas de resultado com o mesmo código fazem a geração ser recusada.
  • Uma geração em que nenhuma linha de resultado corresponde a uma linha publicada é recusada.
Um conjunto é recusado quando:
  • o from dele não é um objeto com a chave query;
  • ele tem uma chave diferente de from, rowKey, parentMatch, fields e also;
  • rowKey ou parentMatch não tem nenhum par;
  • ele não tem fields, ou fields está vazio;
  • o from dele nomeia uma consulta que o mapeamento não declara.

Campos

Um campo diz de onde vem o valor dele. Escreva uma origem, ou escreva byRowClass. Cada origem precisa de uma coisa: Um campo do contrato que o mapeamento não nomeia fica em branco, e a resposta o lista como uma lacuna. O Reporter recusa aprovar um rascunho enquanto um campo obrigatório estiver em branco. Uma origem de campo é recusada quando:
  • from falta, ou não é uma das cinco origens;
  • ela nomeia uma query e a origem dela não é query;
  • a origem é query ou rowSet e não há column;
  • a origem é constant e não há value;
  • a origem é parameter e não há parameter;
  • a origem é manual e não há value nem pendingReason;
  • o campo tem uma chave diferente das chaves da tabela acima;
  • a query que ela nomeia não é declarada pelo mapeamento.

Origens que dependem da linha

byRowClass serve a um conjunto cujas linhas o catálogo publica. Cada caso tem when e as chaves de uma origem. O primeiro caso cujo when corresponde à linha publicada dá o valor. Uma linha que nenhum caso atende não recebe valor deste campo. A geração é recusada quando o contrato exige o campo. when tem duas chaves obrigatórias: rowSet, a coluna da linha publicada, e equals, o valor que ela deve ter. Este campo lê um saldo para uma classe de linha e um total mensal para a outra. Cada classe lê a própria consulta:
Um byRowClass é recusado quando o campo também tem um from próprio. Um caso é recusado quando não tem when, quando when tem uma chave diferente de rowSet e equals, quando rowSet ou equals falta, ou quando tem uma chave diferente de when e das chaves de uma origem.

Consolidação

also adiciona origens a um conjunto. Cada item mapeia o mesmo conjunto sobre outra consulta, por exemplo outro banco de dados da instituição do envio. O Reporter não limita a consulta de um item à instituição do envio. Os filtros dessa consulta devem escolher as linhas da instituição do envio. O contrato do documento diz como o Reporter junta as linhas das origens, e quais conjuntos aceitam also. Um item tem as chaves from, rowKey e fields. Ele não tem parentMatch nem also. O from dele é obrigatório. O fields dele usa as chaves dos campos de um conjunto. Um item sem fields, ou com fields vazio, não mapeia nada, e cada campo que ele não mapeia é uma lacuna. O Reporter recusa um item cujo from também é o from do conjunto ou de outro item. Ele recusa um item que lê uma consulta que o mapeamento de qualquer conjunto lê. Ele também recusa um item que mapeia um campo que o mapeamento do próprio conjunto não mapeia. Dê a cada item as próprias consultas.

Sobrescritas manuais e declarações


O Reporter confere estas chaves quando você salva o mapeamento, e as armazena com ele. Cada item de manualOverrides tem estas chaves: Um item é recusado quando tem uma chave diferente destas três, ou quando field ou value está vazio. generatable, incompleteReason e incompleteFields guardam sua declaração sobre o documento:
  • generatable deve ser true ou false.
  • generatable: false é recusado quando incompleteReason falta.
  • incompleteFields é recusado quando lista um campo e generatable não é false.

Conferências com o contrato


Depois que o documento é lido, o Reporter o compara com o contrato da versão fixada. O salvamento é recusado quando: