Saltar al contenido principal
El mapeo es un documento YAML. Dice de dónde viene cada valor de un documento regulatorio en tus datos. Para enviarlo, reemplaza el mapeo de una suscripción. Reporter lee el documento, lo revisa contra el contrato de la versión fijada y lo almacena. El contrato de un documento y su plantilla pertenecen a Lerian. El contrato nombra los conjuntos y los campos del documento. La plantilla coloca cada valor en el archivo. Esta página describe el mapeo. Un mapeo que Reporter no puede leer se rechaza con HTTP 400 y RPT-0143. El detalle nombra el punto que debes corregir, por ejemplo query 'saldos_cosif'. Consulta la lista de errores.

Ejemplo


Este mapeo llena dos conjuntos de CADOC 4010. La consulta saldos_cosif suma los asientos aprobados de cada route_code creados antes del fin del período del parámetro dataBase. Un crédito suma su amount. Un débito lo resta. El mapeo de referencia publicado para este documento también filtra por el activo BRL, por los asientos que movieron un saldo y por las filas que no están borradas. También corta el fin del período con el calendario de días hábiles.

Cómo lee Reporter el documento


  • El documento debe ser YAML. Un documento vacío se rechaza. El nivel superior debe ser un objeto de claves y valores.
  • Cada bloque acepta las claves de su tabla en esta página. Un bloque con cualquier otra clave se rechaza. El rechazo enumera las claves que el bloque acepta.
  • Una clave conocida sin valor cuenta como no escrita.
  • Un texto obligatorio no puede estar vacío.
  • Reporter lee un valor como el texto que escribes. 7 y "7" son el mismo valor.
  • Reporter acepta anclas y alias de YAML. Rechaza la clave de combinación <<.
  • Dos consultas no pueden tener el mismo nombre. Dos conjuntos no pueden tener el mismo nombre. Dos campos de un conjunto no pueden tener el mismo nombre.
  • Estos nombres deben coincidir con una consulta del mapeo: el from de una consulta, la query del from de un conjunto, la query de un join y la query de un campo de un conjunto. Una consulta puede declararse después del conjunto o de la consulta que se refiere a ella.

Claves de nivel superior


Consultas


Una consulta lee filas de tus datos. Los conjuntos y otras consultas se refieren a una consulta por su nombre. Una consulta se rechaza cuando:
  • no tiene dataSource ni from;
  • tiene from y también dataSource o table;
  • tiene dataSource y no tiene table;
  • su from nombra la propia consulta, nombra una consulta que el mapeo no declara o cierra un anillo con otras consultas.

Filtros

Una fila permanece cuando pasa cada condición de filters. Las condiciones sobre la misma columna se aplican todas. Una condición es una prueba o una combinación: Una condición necesita field y operator, o anyOf o allOf. Se aceptan estos operadores: Para excluir filas por prefijo, usa notStartsWith. Este filtro descarta las filas cuyo route_code empieza con 7 o 8:
Una condición se rechaza cuando:
  • tiene una clave distinta de field, operator, values, anyOf y allOf;
  • tiene field y también anyOf o allOf;
  • no tiene field ni anyOf ni allOf;
  • tiene field y no tiene operator;
  • su operator no está en la tabla. El rechazo enumera los operadores aceptados;
  • tiene isNull o notNull con valores o con un parámetro;
  • tiene between con un parámetro, o con una cantidad de valores distinta de dos;
  • tiene cualquier otro operador sin valor y sin parámetro.
Dos condiciones de filters sobre una columna se rechazan cuando usan el mismo operador. También se rechazan cuando una de ellas es isNull o notNull. Dos operadores distintos sobre una columna se combinan, y así escribes un período: gte para su inicio y lt para su fin. Una generación rechaza between junto a gte o lte.

Valores leídos de un parámetro

Un parámetro es un valor que envías en la solicitud de generación. Un elemento de values que es un objeto lee un parámetro: Sin at, la condición compara con el valor del parámetro como lo trae la solicitud. Con at, el parámetro nombra un período: AAAA-MM para un mes, AAAA-MM-DD para un día. Los bordes siguen la zona horaria del informe. start es el primer instante dentro del período. end es el primer instante después de él. Compara start con gte y end con lt. Así, ningún instante cae en dos períodos ni en ninguno. Con calendar: business, un período termina justo después de su último día hábil. Empieza justo después del último día hábil del período anterior. Esta consulta lee el mes del parámetro, hasta el fin de su período:
Un valor de parámetro se rechaza cuando:
  • values enumera dos parámetros, o enumera un texto junto a un parámetro;
  • el objeto del parámetro tiene una clave distinta de parameter, at, of y calendar, o no tiene parameter;
  • at no es start ni end;
  • of no es day, month ni year;
  • calendar no es business;
  • tiene of o calendar y no tiene at;
  • tiene at: start con un operador distinto de gte, o at: end con un operador distinto de lt.
Una generación rechaza un of más corto que el período del parámetro, por ejemplo of: day en un mes.

Joins

Un join trae una tabla junto a las filas de la consulta. Cada elemento de join tiene estas claves: Con left, cada fila de la consulta permanece, y las columnas traídas quedan vacías donde ninguna fila empareja. Con inner, las filas sin par salen. Una fila con varios pares se vuelve varias filas. Un join se rechaza cuando:
  • no nombra table ni query, o nombra las dos;
  • no tiene match, o match no tiene ningún par;
  • escribe on en lugar de match. Escribe match;
  • tiene una clave distinta de table, query, match, columns y type;
  • trae una tabla y no tiene columns, o columns no tiene ningún par;
  • trae una consulta y tiene columns;
  • dos joins de la consulta traen el mismo nombre, o un join trae un nombre que también empareja en match;
  • type no es left ni inner.

Columnas calculadas

compute agrega una columna a cada fila. Los pasos siguientes la leen como una columna de la tabla: filtros, agrupación y sumas. Un case tiene estas claves: Una respuesta es un objeto con exactamente una clave: Con otherwise: refuse, una fila cuyo valor when no enumera hace que la generación se rechace. Una columna calculada se rechaza cuando:
  • compute tiene dos elementos con el mismo as;
  • un elemento tiene una clave distinta de as y case, o no tiene as o case;
  • el case tiene una clave distinta de column, when y otherwise;
  • column u otherwise faltan, o when falta o está vacío;
  • otherwise es un texto distinto de refuse;
  • as es también un nombre que un join trae o que un derive nombra, o el case lee otra columna calculada;
  • una respuesta no tiene exactamente una entre column, negate y constant, o su valor está vacío.

Agrupación y medidas

aggregate reduce las filas a una fila por cada grupo. Una medida tiene estas claves. Las tres son obligatorias: Una consulta que agrupa devuelve las columnas de groupBy y una columna por cada medida. Un campo que lee otra columna se rechaza cuando guardas. Una generación se rechaza cuando una fila no tiene valor en una columna de groupBy. aggregate se rechaza cuando tiene una clave distinta de groupBy y measures, o cuando measures falta o está vacío. Una medida se rechaza cuando tiene una clave distinta de as, fn y of, o cuando le falta una de ellas. Una generación rechaza dos medidas con el mismo as.

Columnas que una consulta devuelve

select nombra las columnas que una consulta devuelve. Sin él, la consulta devuelve cada columna y los campos eligen. Con él, un campo que lee otra columna se rechaza cuando guardas. select se rechaza cuando la consulta también tiene aggregate, cuando está vacío, o cuando nombra una columna dos veces o nombra una columna vacía.

Listas dentro de documentos

expand nombra una lista dentro de cada documento, como una ruta con puntos de los campos de la tabla. Cada elemento de la lista se vuelve una fila. La consulta lee los campos del elemento bajo la ruta de la lista. En una fuente de datos PostgreSQL, la respuesta del guardado enumera expand en unexecuted, y una generación se rechaza. expand se rechaza cuando la ruta está vacía, empieza o termina con punto, tiene dos puntos seguidos, o tiene un espacio o un $. También se rechaza en una consulta que tiene from.

Construcciones que una generación rechaza

Reporter lee y almacena estas construcciones. La respuesta del guardado las enumera en unsupported. Una generación de un mapeo que contiene una de ellas se rechaza.

Conjuntos


Cada clave de datasets es el nombre de un conjunto que el contrato declara. Su valor tiene estas claves: Un conjunto abierto tiene una fila por cada fila de su consulta. Reporter ordena las filas por los campos clave del conjunto, como texto en orden de bytes. Sin from, el conjunto no tiene filas de consulta. Si el contrato declara el conjunto como una fila, sus constantes y parámetros llenan esa fila. Cuando el contrato declara una jerarquía para el código del conjunto, Reporter también agrega una fila por cada código ancestro, con la suma de las filas que están debajo. Devuelve el valor registrado en cada código. No devuelvas un valor de padre que ya incluye a sus hijos, porque Reporter suma los hijos a él. Las filas de un conjunto que el catálogo publica son las filas publicadas, una por cada una. El mapeo da sus valores:
  • Las consultas del conjunto leen solo las filas cuya columna de rowKey contiene un código publicado. Cuando el contrato declara una jerarquía para el código, leen las filas cuyo código está bajo un código publicado. Reporter deja fuera una fila con otro código y no la rechaza. En un elemento de also, Reporter no deja fuera una fila con otro código: rechaza la generación.
  • Una fila de resultado llena la fila publicada de su código. Cuando el contrato declara una jerarquía, también llena cada fila publicada por encima de ese código. Esa fila publicada lee la suma de las medidas de las filas de resultado de su código y de los códigos debajo de él.
  • Con una jerarquía, devuelve el valor registrado en cada código. No devuelvas un valor de padre que ya incluye a sus hijos, porque Reporter suma los hijos a él.
  • Una fila publicada sin fila de resultado lee 0 en una medida que una consulta llena. Sus otras columnas de consulta quedan sin valor. Un campo obligatorio que lee una de ellas hace que la generación se rechace.
  • Dos filas de resultado con el mismo código hacen que la generación se rechace.
  • Una generación en la que ninguna fila de resultado coincide con una fila publicada se rechaza.
Un conjunto se rechaza cuando:
  • su from no es un objeto con la clave query;
  • tiene una clave distinta de from, rowKey, parentMatch, fields y also;
  • rowKey o parentMatch no tiene ningún par;
  • no tiene fields, o fields está vacío;
  • su from nombra una consulta que el mapeo no declara.

Campos

Un campo dice de dónde viene su valor. Escribe un origen, o escribe byRowClass. Cada origen necesita una cosa: Un campo del contrato que el mapeo no nombra queda en blanco, y la respuesta lo enumera como una brecha. Reporter rechaza aprobar un borrador mientras un campo obligatorio esté en blanco. Un origen de campo se rechaza cuando:
  • from falta, o no es uno de los cinco orígenes;
  • nombra una query y su origen no es query;
  • el origen es query o rowSet y no hay column;
  • el origen es constant y no hay value;
  • el origen es parameter y no hay parameter;
  • el origen es manual y no hay value ni pendingReason;
  • el campo tiene una clave distinta de las claves de la tabla anterior;
  • la query que nombra no está declarada por el mapeo.

Orígenes que dependen de la fila

byRowClass sirve para un conjunto cuyas filas publica el catálogo. Cada caso tiene when y las claves de un origen. El primer caso cuyo when coincide con la fila publicada da el valor. Una fila que ningún caso atiende no recibe valor de este campo. La generación se rechaza cuando el contrato exige el campo. when tiene dos claves obligatorias: rowSet, la columna de la fila publicada, y equals, el valor que debe tener. Este campo lee un saldo para una clase de fila y un total mensual para la otra. Cada clase lee su propia consulta:
Un byRowClass se rechaza cuando el campo también tiene un from propio. Un caso se rechaza cuando no tiene when, cuando when tiene una clave distinta de rowSet y equals, cuando rowSet o equals falta, o cuando tiene una clave distinta de when y de las claves de un origen.

Consolidación

also agrega orígenes a un conjunto. Cada elemento mapea el mismo conjunto sobre otra consulta, por ejemplo otra base de datos de la institución de la presentación. Reporter no limita la consulta de un elemento a la institución de la presentación. Los filtros de esa consulta deben elegir las filas de la institución de la presentación. El contrato del documento dice cómo Reporter une las filas de los orígenes, y cuáles conjuntos aceptan also. Un elemento tiene las claves from, rowKey y fields. No tiene parentMatch ni also. Su from es obligatorio. Su fields usa las claves de los campos de un conjunto. Un elemento sin fields, o con fields vacío, no mapea nada, y cada campo que no mapea es una brecha. Reporter rechaza un elemento cuyo from también es el from del conjunto o de otro elemento. Rechaza un elemento que lee una consulta que el mapeo de cualquier conjunto lee. También rechaza un elemento que mapea un campo que el mapeo propio del conjunto no mapea. Da a cada elemento sus propias consultas.

Sobrescrituras manuales y declaraciones


Reporter revisa estas claves cuando guardas el mapeo, y las almacena con él. Cada elemento de manualOverrides tiene estas claves: Un elemento se rechaza cuando tiene una clave distinta de estas tres, o cuando field o value está vacío. generatable, incompleteReason y incompleteFields guardan tu declaración sobre el documento:
  • generatable debe ser true o false.
  • generatable: false se rechaza cuando incompleteReason falta.
  • incompleteFields se rechaza cuando enumera un campo y generatable no es false.

Revisiones contra el contrato


Después de leer el documento, Reporter lo compara con el contrato de la versión fijada. El guardado se rechaza cuando: