Processes

Support DQE
Support DQE
  • Actualización
Processes - DQE One Standalone API

Cree, actualice, ejecute y elimine processes de calidad de datos en su servidor DQE One Standalone autoalojado. Un process vincula una fuente de datos (un archivo CSV, una base de datos o un CRM) con una acción, como verificar emails, teléfonos, direcciones, nombres o empresas, o encontrar duplicados.

{DOMAIN} es el nombre de host de su propio servidor DQE One Standalone — es autoalojado, por lo que este valor depende de su implementación. {EMAIL} es su usuario de DQE One y {API_TOKEN} el token generado en My Account > API Token.
Orden habitual: cargar un archivo (Files) o crear un credential (Credentials) → createProcess → runProcess → consultar periódicamente el run (Runs) → descargar el resultado.
Documentación relacionada: DQE One Standalone API — Introduction, Files, Credentials, Runs & results, RuleSets.
Dos operaciones modifican datos con un GET: runProcess y deleteProcess son solicitudes GET aunque inician un run y eliminan un process. No incluya nunca estas URL en un rastreador, un prefetcher de enlaces ni nada que reproduzca solicitudes GET.
Listar processes - DQE One Standalone API

Enumera los processes de su propiedad, sin ningún orden concreto.

listProcesses

Solicitud

Envíe una solicitud GET con sus credentials Basic. No hay parámetros.

GEThttps://{DOMAIN}/api/Process/list

Ejemplos de código

Listar sus processes

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/Process/list"
fetch("https://{DOMAIN}/api/Process/list", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/Process/list", auth=("{EMAIL}", "{API_TOKEN}"), ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/list"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/Process/list", auth: { username: "{EMAIL}", password: "{API_TOKEN}" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/list")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Get, "https://{DOMAIN}/api/Process/list"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/Process/list", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Este endpoint no acepta parámetros.

Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

Respuesta

Array. Estado HTTP 200.

El cuerpo es un array JSON; cada elemento contiene estas claves.

Clave Descripción Tipo
id Integer
name String
type String
isDraft Boolean
lastRunId Integer

Ejemplo de respuesta

Respuesta de ejemplo
[ { "id": 42, "name": "Email check", "type": "check_email", "isDraft": false, "lastRunId": 101 } ]

Errores

HTTP Cuerpo / significado
401 Unauthorized
500 Unexpected error

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real.
Abrir consola
Obtener un process - DQE One Standalone API

Devuelve los detalles de un process. Un process que pertenece a otro usuario responde 404.

getProcess

Solicitud

Envíe una solicitud GET con el id del process.

Problema conocido: para un process que no tiene archivo vinculado (cualquier fuente que no sea CSV), este endpoint puede responder con un HTTP 500 sin formato en lugar de JSON.
GEThttps://{DOMAIN}/api/Process/get?id={id}

Ejemplos de código

Obtener un process

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/Process/get?id=42"
fetch("https://{DOMAIN}/api/Process/get?id=42", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/Process/get", auth=("{EMAIL}", "{API_TOKEN}"), params={"id": "42"}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/get?id=42"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/Process/get", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, params: { "id": "42" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/get?id=42")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Get, "https://{DOMAIN}/api/Process/get?id=42"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/Process/get?id=42", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Campo Descripción Tipo Obl / Opc
id Id del process. Integer Obligatorio
Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

Respuesta

Process. Estado HTTP 200.

Clave Descripción Tipo
id Integer
name String
type Tipo de process. String
source String
description String
file Integer
credentials Integer
ruleSet Integer
lastRunId Integer
createdBy String
updatedBy String
createdOn String
updatedOn String

Ejemplo de respuesta

La respuesta es un archivo adjunto, no JSON.

Errores

HTTP Cuerpo / significado
400 No id found.
401 Unauthorized
404 Process not found

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real.
Abrir consola
Crear un process - DQE One Standalone API

Crea un process que queda listo para ejecutarse de inmediato (no se guarda como borrador). La validación es estricta y comprueba la fuente en vivo, por lo que un credential, objeto o campo incorrecto se notifica en el momento de la creación.

createProcess

Solicitud

Envíe un cuerpo JSON. Obligatorios: name, kind, source, primaryKey y fields; el resto depende de la fuente y del tipo de process (tablas de abajo).

POSThttps://{DOMAIN}/api/Process/create

Ejemplos de código

Crear un process

curl -u "{EMAIL}:{API_TOKEN}" -X POST \ -H "Content-Type: application/json" \ -d '{ "name": "Email check", "kind": "check_email", "source": "csv", "file": 12, "primaryKey": "Id", "fields": { "FieldLabel": "Email" } }' \ "https://{DOMAIN}/api/Process/create"
fetch("https://{DOMAIN}/api/Process/create", { method: "POST", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}"), "Content-Type": "application/json" }, body: JSON.stringify({ "name": "Email check", "kind": "check_email", "source": "csv", "file": 12, "primaryKey": "Id", "fields": { "FieldLabel": "Email" } }) }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.post( "https://{DOMAIN}/api/Process/create", auth=("{EMAIL}", "{API_TOKEN}"), json={"name": "Email check", "kind": "check_email", "source": "csv", "file": 12, "primaryKey": "Id", "fields": {"FieldLabel": "Email"}}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/create"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); $data = ['name' => 'Email check', 'kind' => 'check_email', 'source' => 'csv', 'file' => 12, 'primaryKey' => 'Id', 'fields' => ['FieldLabel' => 'Email']]; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "post", url: "https://{DOMAIN}/api/Process/create", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, data: { "name": "Email check", "kind": "check_email", "source": "csv", "file": 12, "primaryKey": "Id", "fields": { "FieldLabel": "Email" } } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); String body = "{\"name\":\"Email check\",\"kind\":\"check_email\",\"source\":\"csv\",\"file\":12,\"primaryKey\":\"Id\",\"fields\":{\"FieldLabel\":\"Email\"}}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/create")) .header("Authorization", "Basic " + auth) .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString(body)) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Post, "https://{DOMAIN}/api/Process/create"); request.Content = new StringContent("{\"name\":\"Email check\",\"kind\":\"check_email\",\"source\":\"csv\",\"file\":12,\"primaryKey\":\"Id\",\"fields\":{\"FieldLabel\":\"Email\"}}", Encoding.UTF8, "application/json"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "bytes" "fmt" "io" "net/http" ) func main() { body := []byte(`{"name":"Email check","kind":"check_email","source":"csv","file":12,"primaryKey":"Id","fields":{"FieldLabel":"Email"}}`) req, _ := http.NewRequest("POST", "https://{DOMAIN}/api/Process/create", bytes.NewBuffer(body)) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") req.Header.Set("Content-Type", "application/json") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Campo Descripción Tipo Obl / Opc
name String Obligatorio
kind
Valores: find_and_replace, format, audit, check_address, check_b2b, check_email, check_phone, check_name, check_duplicate
String Obligatorio
source
Valores: salesforce, dynamics, postgres, snowflake, bigquery, sftp, csv
String Obligatorio
primaryKey Debe existir en los encabezados del archivo / en el objeto de origen. En Salesforce y Dynamics debe ser la clave primaria real del objeto. String Obligatorio
fields La estructura depende de 'kind' - véase el artículo Processes ('fields' según kind). Object Obligatorio
description String Opcional
file Solo csv: id obtenido de /api/File/add. El archivo se CLONA y se vincula al process. Integer Opcional
credential Todas las fuentes excepto csv. Su tipo debe coincidir con 'source'. Integer Opcional
object Tabla / sObject / entidad. Obligatorio para salesforce, dynamics, postgres, snowflake, bigquery. String Opcional
ruleSet Solo check_duplicate: el 'id' numérico de /api/Ruleset/list (NO el setId de tipo cadena). Integer Opcional
input_file_path String Opcional
output_dir_path String Opcional
reject_dir_path String Opcional
filters Lista de bloques, cada uno una lista de filas. [[]] significa sin filtro. Array Opcional
sync
Valor predeterminado: false
Boolean Opcional
allowEmpty
Valor predeterminado: false
Boolean Opcional
autoMerge
Valor predeterminado: false
Boolean Opcional
mergeThreshold
Valor predeterminado: 100
Integer Opcional
mergeB2BCode
Elementos permitidos: A+, A, B+, B, C+, C, D+, D
Array Opcional
mergeRNVPCode
Elementos permitidos: 10, 20, 21, 22, 23, 24, 25, 30, 31, 40, 41, 50, 51, 60, 61, 70, 71, 80, 81, 90
Array Opcional
updateChildToInactive
Valor predeterminado: false
Boolean Opcional
deleteSFTP
Valor predeterminado: false
Boolean Opcional
metaToReparent Object Opcional
next Id de un process que se encadenará después de este. Integer Opcional
Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

El objeto fields, según kind

Cada valor es el nombre de una columna (CSV) o de un campo (base de datos/CRM) que debe existir en la fuente; primaryKey también.

kind Claves en fields
check_email FieldLabel
check_phone CountryField, FieldLabel, Format
check_name Salutation, FirstName, LastName
check_address City, Country, DefaultCountry, FieldTag, PostalCode, Street; opcional State
check_b2b City, CompanyName, Country, PostalCode, Siret, Street; opcional State, además de las claves DQE_<field> para los campos adicionales de la notice B2B
check_duplicate Una clave = la cadena setId del RuleSet; su valor es la lista de etiquetas de reglas de coincidencia que se usarán, las cuales deben estar entre los matching.Labels[].value del RuleSet (léalos con /api/Ruleset/get). Ejemplo: {"RS_ABC": ["Email + Name"]}
find_and_replace, format, audit No se puede usar mediante la API actualmente — véase Limitaciones conocidas más abajo.

Claves obligatorias, según source

source Claves obligatorias además de name, kind, source, primaryKey, fields
salesforce, dynamics, postgres, bigquery object, credential (su tipo debe coincidir con la fuente)
snowflake Igual, pero actualmente los processes de Snowflake fallan en la validación (véanse las limitaciones)
sftp credential, input_file_path, output_dir_path, reject_dir_path (las tres rutas deben existir en el servidor SFTP)
csv file — el id devuelto por /api/File/add. El archivo se clona y el clon se vincula al process; el original sigue libre y se puede eliminar.
Cualquier origen, con kind = check_duplicate más ruleSet — el valor numérico de id en /api/Ruleset/list (no el setId de tipo cadena)

Filtros

filters es una lista de bloques, cada bloque una lista de filas {"field","operator","value"}. Cada fila posterior a la primera de un bloque necesita además "relation" (AND u OR). [[]] significa “sin filtro”.

{ "filters": [[ { "field": "Country", "operator": "equals", "value": "FR" }, { "relation": "AND", "field": "Email", "operator": "is empty", "value": "" } ]] }

Cómo se desarrolla la validación

El servidor comprueba primero los tipos JSON y después las claves obligatorias; luego busca el credential, el objeto y el archivo en la fuente en vivo y, por último, valida fields y filters. Como los tipos se comprueban primero, una clave obligatoria ausente se notifica como Key name must be a String.; el mensaje ... need to be set solo aparece cuando la clave está presente pero vacía. Valores por defecto cuando falta una clave: booleanos false, mergeThreshold 100. autoMerge: true activa a la vez las tres fusiones automáticas.

Respuesta

Creado. Estado HTTP 201.

Clave Descripción Tipo
status
Valores: success
String
id Integer

Ejemplo de respuesta

Respuesta de ejemplo
{ "status": "success", "id": 42 }

Errores

HTTP Cuerpo / significado
400 Key name must be a String.
401 Unauthorized
404 Credential not found.
500 Selected Credential seem to be Expired.

Limitaciones conocidas

  • Los processes find_and_replace y format fallan con un 500 cuando se crean mediante la API; audit se acepta, pero no se ha verificado. Cree estos processes en la interfaz web.
  • Los processes de Snowflake siempre fallan en la validación mediante la API (y un credential de Snowflake requiere además un inicio de sesión en el navegador).
  • maxRecords y backup se aceptan, pero no tienen ningún efecto.

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real. Crear un process valida contra su fuente de datos real.
Abrir consola
Actualizar un process - DQE One Standalone API

Modifica un process existente. Vuelve a ejecutar toda la validación de la creación.

updateProcess

Solicitud

Envíe un PUT con el mismo cuerpo JSON que en la creación, más el id del process. No se pueden modificar kind, source, object, las rutas SFTP ni file.

Lea esto antes de actualizar: (1) un valor vacío o false recupera el valor actual, por lo que un booleano como sync o autoMerge no se puede volver a establecer en false y una lista no se puede vaciar; (2) el process se reconstruye a partir de los valores que usted envía, de modo que los campos que no indique — incluido su vínculo con el último run — vuelven a sus valores por defecto, lo que también anula la protección “Process already running”; (3) el éxito se indica con HTTP 201, no 200.
PUThttps://{DOMAIN}/api/Process/update

Ejemplos de código

Actualizar un process

curl -u "{EMAIL}:{API_TOKEN}" -X PUT \ -H "Content-Type: application/json" \ -d '{ "id": 42, "name": "Email check (renamed)", "kind": "check_email", "source": "csv", "primaryKey": "Id", "fields": { "FieldLabel": "Email" } }' \ "https://{DOMAIN}/api/Process/update"
fetch("https://{DOMAIN}/api/Process/update", { method: "PUT", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}"), "Content-Type": "application/json" }, body: JSON.stringify({ "id": 42, "name": "Email check (renamed)", "kind": "check_email", "source": "csv", "primaryKey": "Id", "fields": { "FieldLabel": "Email" } }) }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.put( "https://{DOMAIN}/api/Process/update", auth=("{EMAIL}", "{API_TOKEN}"), json={"id": 42, "name": "Email check (renamed)", "kind": "check_email", "source": "csv", "primaryKey": "Id", "fields": {"FieldLabel": "Email"}}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/update"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); $data = ['id' => 42, 'name' => 'Email check (renamed)', 'kind' => 'check_email', 'source' => 'csv', 'primaryKey' => 'Id', 'fields' => ['FieldLabel' => 'Email']]; curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "put", url: "https://{DOMAIN}/api/Process/update", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, data: { "id": 42, "name": "Email check (renamed)", "kind": "check_email", "source": "csv", "primaryKey": "Id", "fields": { "FieldLabel": "Email" } } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); String body = "{\"id\":42,\"name\":\"Email check (renamed)\",\"kind\":\"check_email\",\"source\":\"csv\",\"primaryKey\":\"Id\",\"fields\":{\"FieldLabel\":\"Email\"}}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/update")) .header("Authorization", "Basic " + auth) .header("Content-Type", "application/json") .method("PUT", HttpRequest.BodyPublishers.ofString(body)) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Put, "https://{DOMAIN}/api/Process/update"); request.Content = new StringContent("{\"id\":42,\"name\":\"Email check (renamed)\",\"kind\":\"check_email\",\"source\":\"csv\",\"primaryKey\":\"Id\",\"fields\":{\"FieldLabel\":\"Email\"}}", Encoding.UTF8, "application/json"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "bytes" "fmt" "io" "net/http" ) func main() { body := []byte(`{"id":42,"name":"Email check (renamed)","kind":"check_email","source":"csv","primaryKey":"Id","fields":{"FieldLabel":"Email"}}`) req, _ := http.NewRequest("PUT", "https://{DOMAIN}/api/Process/update", bytes.NewBuffer(body)) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") req.Header.Set("Content-Type", "application/json") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Campo Descripción Tipo Obl / Opc
name String Obligatorio
kind
Valores: find_and_replace, format, audit, check_address, check_b2b, check_email, check_phone, check_name, check_duplicate
String Obligatorio
source
Valores: salesforce, dynamics, postgres, snowflake, bigquery, sftp, csv
String Obligatorio
primaryKey Debe existir en los encabezados del archivo / en el objeto de origen. En Salesforce y Dynamics debe ser la clave primaria real del objeto. String Obligatorio
fields La estructura depende de 'kind' - véase el artículo Processes ('fields' según kind). Object Obligatorio
description String Opcional
file Solo csv: id obtenido de /api/File/add. El archivo se CLONA y se vincula al process. Integer Opcional
credential Todas las fuentes excepto csv. Su tipo debe coincidir con 'source'. Integer Opcional
object Tabla / sObject / entidad. Obligatorio para salesforce, dynamics, postgres, snowflake, bigquery. String Opcional
ruleSet Solo check_duplicate: el 'id' numérico de /api/Ruleset/list (NO el setId de tipo cadena). Integer Opcional
input_file_path String Opcional
output_dir_path String Opcional
reject_dir_path String Opcional
filters Lista de bloques, cada uno una lista de filas. [[]] significa sin filtro. Array Opcional
sync
Valor predeterminado: false
Boolean Opcional
allowEmpty
Valor predeterminado: false
Boolean Opcional
autoMerge
Valor predeterminado: false
Boolean Opcional
mergeThreshold
Valor predeterminado: 100
Integer Opcional
mergeB2BCode
Elementos permitidos: A+, A, B+, B, C+, C, D+, D
Array Opcional
mergeRNVPCode
Elementos permitidos: 10, 20, 21, 22, 23, 24, 25, 30, 31, 40, 41, 50, 51, 60, 61, 70, 71, 80, 81, 90
Array Opcional
updateChildToInactive
Valor predeterminado: false
Boolean Opcional
deleteSFTP
Valor predeterminado: false
Boolean Opcional
metaToReparent Object Opcional
next Id de un process que se encadenará después de este. Integer Opcional
id Integer Obligatorio
Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

Respuesta

Actualizado (nota: 201, no 200). Estado HTTP 201.

Clave Descripción Tipo
status
Valores: success
String
id Integer

Ejemplo de respuesta

Respuesta de ejemplo
{ "status": "success", "id": 42 }

Errores

HTTP Cuerpo / significado
400 No id found.
401 Unauthorized
404 Process not found.

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real. Actualizar modifica su process real.
Abrir consola
Ejecutar un process - DQE One Standalone API

Pone en cola un run del process y responde de inmediato. El trabajo es asíncrono: siga su avance con el endpoint de Runs.

runProcess

Solicitud

Envíe una solicitud GET con el id del process.

Qué ocurre: se crea un run con el estado Started y se pone en cola. Los trabajos se ejecutan de uno en uno por usuario, por lo que un segundo run espera al primero. El RuleSet vinculado a un process de deduplicación queda bloqueado (no editable) desde el momento en que se pone en cola un run. No existe ningún endpoint para cancelar un run.
Lea siempre el cuerpo, no solo el estado HTTP. Algunos fallos — process en borrador, ningún archivo SFTP que procesar, fallo de la cola — se devuelven como HTTP 200 con {"status":"error","message":"..."}. run_id es una cadena.
GEThttps://{DOMAIN}/api/Process/run?id={id}

Ejemplos de código

Ejecutar un process

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/Process/run?id=42"
fetch("https://{DOMAIN}/api/Process/run?id=42", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/Process/run", auth=("{EMAIL}", "{API_TOKEN}"), params={"id": "42"}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/run?id=42"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/Process/run", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, params: { "id": "42" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/run?id=42")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Get, "https://{DOMAIN}/api/Process/run?id=42"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/Process/run?id=42", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Campo Descripción Tipo Obl / Opc
id Id del process. Integer Obligatorio
Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

Respuesta

Encolado (o error suave). Estado HTTP 200.

Clave Descripción Tipo
status Se devuelve HTTP 200 incluso cuando status es 'error' (process en borrador, sin archivo SFTP, fallo de la cola).
Valores: success, error
String
message String
run_id Id del run, como cadena. String

Ejemplo de respuesta

Respuesta de ejemplo
{ "status": "success", "message": "Process Enqueue", "run_id": "101" }

Errores

HTTP Cuerpo / significado
400 Process already running
401 Unauthorized
404 Process not found
500

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real. Esto inicia un run real sobre sus datos.
Abrir consola
Eliminar un process - DQE One Standalone API

Elimina un process. Se permite cuando el process es un borrador, nunca se ha ejecutado, o su último run está Finished o Failed.

deleteProcess

Solicitud

Envíe una solicitud GET con el id del process (sí, GET).

GEThttps://{DOMAIN}/api/Process/delete?id={id}

Ejemplos de código

Eliminar un process

curl -u "{EMAIL}:{API_TOKEN}" \ "https://{DOMAIN}/api/Process/delete?id=42"
fetch("https://{DOMAIN}/api/Process/delete?id=42", { method: "GET", headers: { "Authorization": "Basic " + btoa("{EMAIL}:{API_TOKEN}") } }) .then(r => r.text()) .then(data => console.log(data));
import requests response = requests.get( "https://{DOMAIN}/api/Process/delete", auth=("{EMAIL}", "{API_TOKEN}"), params={"id": "42"}, ) print(response.status_code, response.text)
<?php $ch = curl_init("https://{DOMAIN}/api/Process/delete?id=42"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_USERPWD, "{EMAIL}:{API_TOKEN}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status . " " . $response;
const axios = require('axios'); axios({ method: "get", url: "https://{DOMAIN}/api/Process/delete", auth: { username: "{EMAIL}", password: "{API_TOKEN}" }, params: { "id": "42" } }) .then(res => console.log(res.status, res.data)) .catch(err => console.log(err.response ? err.response.status : err.message, err.response && err.response.data));
import java.net.URI; import java.net.http.*; import java.util.Base64; String auth = Base64.getEncoder().encodeToString("{EMAIL}:{API_TOKEN}".getBytes()); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{DOMAIN}/api/Process/delete?id=42")) .header("Authorization", "Basic " + auth) .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.statusCode() + " " + response.body());
using System.Net.Http; using System.Net.Http.Headers; using System.Text; using var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("{EMAIL}:{API_TOKEN}"))); using var request = new HttpRequestMessage(HttpMethod.Get, "https://{DOMAIN}/api/Process/delete?id=42"); var response = await client.SendAsync(request); Console.WriteLine((int)response.StatusCode + " " + await response.Content.ReadAsStringAsync());
package main import ( "fmt" "io" "net/http" ) func main() { req, _ := http.NewRequest("GET", "https://{DOMAIN}/api/Process/delete?id=42", nil) req.SetBasicAuth("{EMAIL}", "{API_TOKEN}") resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() out, _ := io.ReadAll(resp.Body) fmt.Println(resp.StatusCode, string(out)) }

Parámetros

Campo Descripción Tipo Obl / Opc
id Id del process. Integer Obligatorio
Autenticación: HTTP Basic — su email de DQE One y su API token (My Account > API Token). Consulte el artículo de Introducción.

Respuesta

Eliminado. Estado HTTP 200.

Clave Descripción Tipo
status
Valores: success
String

Ejemplo de respuesta

Respuesta de ejemplo
{ "status": "success" }

Errores

HTTP Cuerpo / significado
400 No id found.
401 Unauthorized
404 Process not found
423 Process is not in a state that allows deletion
500 Failed to delete the Process

Probar la API

Haga clic en el botón de abajo para probar este endpoint en directo en su navegador.

Atención: esta consola envía una solicitud real a su propio servidor desde su navegador, con su API token real. Esto elimina de forma permanente el process.
Abrir consola

Véase también

Relacionada con

¿Fue útil este artículo?

Usuarios a los que les pareció útil: 0 de 0