prepare¶
El comando prepare
corrige problemas de calidad en las entregas compiladas de OCDS.
Ejecute el comando help
para leer su descripción, formato de salida y opciones:
$ ocdscardinal help prepare
Correct quality issues within OCDS compiled releases in a line-delimited JSON file
Corrected data is written to standard output as line-delimited JSON.
Quality issues are written to standard error as CSV rows with the columns: line, ocid, path, array
indexes, incorrect value, error description.
Usage: ocdscardinal[EXE] prepare [OPTIONS] --output <OUTPUT> --errors <ERRORS> <FILE>
Arguments:
<FILE>
The path to the file (or "-" for standard input), in which each line is a contracting
process as JSON text
Options:
-s, --settings <SETTINGS>
The path to the settings file
-v, --verbose...
Increase verbosity
-o, --output <OUTPUT>
The file to which to write corrected data (or "-" for standard output)
-e, --errors <ERRORS>
The file to which to write quality issues (or "-" for standard output)
-h, --help
Print help (see a summary with '-h')
Flujo de trabajo¶
Atención
Antes de seguir el flujo de trabajo de este comando, siga los pasos anteriores en el Flujo de trabajo general.
Inicialice un archivo
settings.ini
, usando el comando init:$ ocdscardinal init settings.ini Settings written to "settings.ini".
Ejecute el comando
prepare
. Por ejemplo, si sus datos están eninput.jsonl
, este comando escribe los datos corregidos enprepared.jsonl
y los problemas de calidad enissues.csv
:ocdscardinal prepare --settings settings.ini --output prepared.jsonl --errors issues.csv input.jsonl
Revise los problemas de calidad en el archivo
issues.csv
. No se preocupe si se notifican muchos problemas: la mayoría son repetitivos y pueden solucionarse de una vez. Lea la demostración para aprender a interpretar los resultados.Ajuste la configuración en el archivo
settings.ini
para solucionar los problemas de calidad.
Repita los 3 últimos pasos hasta que esté satisfecho con los resultados.
Nota
Este comando está diseñado para advertir únicamente sobre problemas de calidad (1) que pueda solucionar y (2) que interfieran con el cálculo de indicators. Si desea comprobar otros problemas de calidad, póngase en contacto con el Equipo de soporte de datos de OCP para usar Pelican.
Demonstración¶
Ejemplo
El estado de la oferta (/bids/details[]/status
) es necesario para determinar si una oferta ha sido enviada, invitada o retirada.
Este archivo simplificado contiene una oferta sin estado:
{"ocid":"ocds-213czf-1","bids":{"details":[{"id":1}]}}
Para esta demostración, escriba los problemas de calidad en la consola:
$ ocdscardinal prepare --output prepared.jsonl --errors - docs/examples/prepare.jsonl
1,ocds-213czf-1,/bids/details[]/status,0,,not set
Los problemas de calidad se notifican como filas CSV. Si se añade un encabezado y se representa la fila como una tabla, se produce:
line |
ocid |
path |
array indexes |
incorrect value |
error description |
---|---|---|---|---|---|
1 |
ocds-213czf-1 |
/bids/details[]/status |
0 |
not set |
Si escribe los problemas de calidad en un archivo en lugar de en la consola, puede abrir el CSV como una hoja de cálculo.
Teniendo en cuenta el contexto de este ejemplo, las columnas pueden utilizarse del siguiente modo.
Columna |
Uso |
||||||
---|---|---|---|---|---|---|---|
line |
Busque la entrega compilada problemática en el archivo de entrada. |
||||||
ocid |
Busque la entrega compilada problemática en otro sistema, como la fuente de datos. |
||||||
path |
Consulte el campo que tiene un error. Esta columna puede utilizarse para ordenar y filtrar los errores. |
||||||
array indexes |
Encuentra el array problemático en la entrega compilada. Si la ruta contiene varios arrays ( |
||||||
incorrect value |
Consulte el valor que causó el problema. Si el problema es que el campo no está configurado, está en blanco. |
||||||
error description |
Determine la posible solución al problema. Los valores posibles son:
|
Configuración¶
Correct structural errors¶
If a value is an object where OCDS expects an array, then calculations fail.
The command replaces each such object with an array containing the object. The command supports replacing:
/bids/details[]/tenderers
/awards/suppliers
Nota
Este comportamiento no puede desactivarse. Si necesita desactivarlo, cree un issue en GitHub.
Normalizar campos de ID¶
Algunos campos ID admiten tanto cadenas ("1"
) como números enteros (1
): por ejemplo, el id
de una adjudicación y el awardID
de un contrato. Si los tipos son inconsistentes, las búsquedas fallan: por ejemplo, recuperar la adjudicación de un contrato o la dirección de un proveedor.
El comando convierte estos campos ID en cadenas, para evitar este problema:
/buyer/id
/tender/procuringEntity/id
/bids/details[]/tenderers[]/id
/awards[]/id
/awards[]/suppliers[]/id
/awards[]/items[]/classification/id
/contracts[]/awardID
A medida que se añadan nuevos indicadores, se convertirán los campos ID adicionales.
Nota
Este comportamiento no puede desactivarse. Si necesita desactivarlo, cree un issue en GitHub.
Llenar valores faltantes¶
El comando permite rellenar:
/bids/details[]/value/currency
/bids/details[]/items[]/classification/scheme
/bids/details[]/status
/awards[]/items[]/classification/scheme
/awards[]/status
Para rellenar uno o más de estos campos cuando el campo no está configurado, añada una sección [defaults]
con las propiedades relevantes a su Archivo de configuración. Por ejemplo:
[defaults]
currency = USD
item_classification_scheme = UNSPSC
bid_status = valid
award_status = active
A medida que se añadan nuevos indicadores, campos adicionales de moneda y esquema se rellenarán.
Truco
¿Necesita llenar otros valores? Cree un issue en GitHub, o escriba a James McKinney, Head of Technology de OCP.
Eliminar valores incorrectos¶
Truco
¿Necesita eliminar otros valores? Cree un issue en GitHub, o escriba a James McKinney, Head of Technology de OCP.
Montos monetatios¶
Los indicadores asumen que los valores de importe son exactos. Si a un campo de importe se le asigna un valor de marcador, esta suposición falla. Por ejemplo, si se utiliza 0 cuando el importe es confidencial o no se ha introducido, las ofertas más bajas podrían calcularse erróneamente.
Para eliminar un valor de cantidad, añada una sección [redactions]
con una propiedad amount
a su Archivo de configuración. Su valor es una lista separada por barras verticales («|»). Por ejemplo:
[redactions]
amount = 0|99999999
Esta configuración permite eliminar valores de:
/bids/details[]/value/amount
IDs de organizaciones¶
Los indicadores asumen que los valores de ID representan entidades distintas. Si a un campo ID se le asigna un valor de marcador, esta suposición falla. Por ejemplo, si el valor del marcador se utiliza con frecuencia, los proveedores principales podrían estar mal calculados.
Para eliminar un valor ID de una referencia de organización, añada una sección [redactions]
con una propiedad organization_id
a su Archivo de configuración. Su valor es una lista separada por barras verticales («|»). Por ejemplo:
[redactions]
organization_id = my-placeholder|dummy-value
Esta configuración permite eliminar valores de:
/buyer/id
/tender/procuringEntity/id
/bids/details[]/tenderers[]/id
/awards[]/suppliers[]/id
Re-mapear códigos inválidos¶
El comando permite sustituir códigos en estos campos de la lista de códigos:
/bids/details[]/status
, agregando una sección[codelists.bid_status]
/awards[]/status
, by adding a[codelists.award_status]
section
Para sustituir un código, añada una propiedad en la sección correspondiente, en la que el código a sustituir sea el nombre, y su sustitución sea el valor. Por ejemplo:
[codelists.bid_status]
Qualified = valid
Disqualified = disqualified
InTreatment = pending
Truco
¿Necesita mapear otros valores? Cree un issue en GitHub, o escriba a James McKinney, Head of Technology de OCP.
Standardize unconstrained values¶
Text fields with non-standardized values can be standardized to ease the configuration of indicators. For example, if a value is formatted as {mutual category} - {individual detail}
, you can split the value on the -
separator and keep the {mutual category}
prefix.
To standardize a value by splitting it on a separator and keeping the prefix, add a [modifications_split]
section with a procurement_method_details
property to your Archivo de configuración. For example:
[modifications_split]
procurement_method_details = -
This configuration supports standardizing values in:
/tender/procurementMethodDetails
Truco
Need to standardize other values? Create an issue on GitHub, or email James McKinney, OCP’s Head of Technology.
Reemplace valores incorrectos del estado de la adjudicación¶
En raras ocasiones, conviene cambiar el estatus de una adjudicación en función del estatus de sus contratos.
Ejemplo
El Gobierno de Ruritania agrupa muchas decisiones en un objeto de adjudicación y utiliza el objeto de contrato como sustituto de la decisión individual. Así, cada objeto de adjudicación está relacionado con uno o varios objetos de contrato. Si se anula la decisión individual (por ejemplo, la adjudicación se recurre ante un tribunal o el proveedor se niega a firmar el contrato), el estado del objeto de contrato cambia a anulado. El estado del objeto de adjudicación permanece activo.
Los indicadores asumen que las adjudicaciones, y no los contratos, representan decisiones individuales, de conformidad con OCDS. En el ejemplo, para cumplir mejor este supuesto, el estado de una adjudicación puede cambiarse a cancelado si el estado de cada contrato relacionado es cancelado.
Para sustituir el estado de una adjudicación de este modo, añada una sección [corrections]
con una propiedad award_status_by_contract_status
a su Archivo de configuración. Su valor es un booleano. Por ejemplo:
[corrections]
award_status_by_contract_status = true
Truco
¿Necesita corregir otros valores? Cree un issue en GitHub, o escriba a James McKinney, Head of Technology de OCP.