Ir al contenido

SaveSeqData

Guarda los valores y las observaciones de eventos y campos de datos en órdenes de trabajo: por ejemplo, la fecha y la hora de entrada al patio de un contenedor, o la referencia de un cliente. Cada elemento se comprueba como si un usuario lo guardara en la pestaña Events o Data de la orden de trabajo, y se guarda o se rechaza por separado. La respuesta indica el resultado de cada elemento.

Para leer los valores actuales, use GetSeqData. Para un lote grande, SaveSeqDataAsync acepta los mismos elementos, responde de inmediato y envía los resultados a su propia URL cuando termina.

Cómo iniciar sesión y leer la respuesta: Autenticación, Respuestas.

POST /api/v1/SaveSeqData
Token: your-token
Content-Type: application/json
[
{ "WOID": 48211, "Code": "GATEIN", "Value": "2026-10-20T09:30:00", "Remarks": "Gate 3" },
{ "WOID": 48211, "Code": "CUSTREF", "Value": "PO-77310" },
{ "WOID": 48212, "Code": "ETA", "Value": "TBA", "Remarks": "Vessel delayed" }
]

El cuerpo es una matriz JSON de 1 a 999 elementos. Cada elemento define un evento o un campo de datos de una orden de trabajo:

Campo Obligatorio Significado
WOID Sí El identificador de la orden de trabajo.
Code Sí El código del evento o del campo de datos, tal como lo muestra la orden de trabajo con Show Codes. No distingue entre mayúsculas y minúsculas.
Value Sí El nuevo valor, como texto: consulte Valores. Una cadena vacía borra el valor del campo. Para cambiar solo las observaciones, vuelva a enviar el valor actual.
Remarks No Las observaciones. Si lo omite, o envía una cadena vacía, se borran las observaciones que tenga el campo.
UpdatedBy No El token del usuario de TrakIT que hizo el cambio, tal como lo devolvió Login para ese usuario. El cambio queda entonces registrado a nombre de ese usuario, y se aplican sus permisos: consulte Reglas. Sin él, el cambio queda registrado a nombre del usuario de la API. Si lo usa, indíquelo en todos los elementos de la solicitud.

Los nombres de los campos no distinguen entre mayúsculas y minúsculas. Los demás campos que devuelve GetSeqData (Type, FullName, ValueID, UpdatedOn) se ignoran si los envía.

Envíe cada valor como texto, en la forma que requiere su tipo:

Tipo Envíe
Event, Date La fecha y la hora en UTC, como yyyy-MM-ddTHH:mm:ss o yyyy-MM-dd HH:mm, sin sufijo de zona horaria; yyyy-MM-dd solo significa medianoche. TrakIT conserva los minutos, no los segundos. O bien NA (no aplicable) o TBA (pendiente de confirmar), si el campo los admite. Consulte Fechas.
Number Un número, con . como separador decimal. TrakIT lo redondea a la precisión decimal del campo.
Currency Un importe, con . como separador decimal. TrakIT conserva dos decimales.
Text Cualquier texto; TrakIT conserva los primeros 800 caracteres. Para un campo con una lista de elementos, un elemento de la lista o, para varios elementos, los elementos separados por saltos de línea (\n). Se aplica la Data Option del campo, por ejemplo Force Upper Case.
Hyperlink Una dirección web, o una dirección de correo electrónico que empiece por mailto:. TrakIT añade http:// a una dirección sin esquema.
Phone Hasta 15 caracteres: dígitos, un + inicial opcional y un prefijo entre paréntesis si hace falta.
Geo Data El nombre o el código exacto de una ubicación del Geo Data Type del campo. Consulte Geo Data. TrakIT guarda el texto que envía, así que envíe el nombre de la ubicación.
Entity El nombre, el código o el número de registro exacto de una entidad del Entity Type del campo. Si ninguna entidad coincide exactamente, TrakIT busca entidades cuyo nombre o código lo contenga, así que envíe un valor que coincida exactamente con una sola entidad. TrakIT guarda el texto que envía: envíe el nombre de la entidad tal como lo muestra TrakIT.
Computed No lo envíe: TrakIT obtiene los valores calculados y los vuelve a calcular después de cada guardado.
Google Place No se puede definir con la API: el lugar debe elegirse entre las sugerencias de Google en TrakIT.

Los tipos de campo se describen en Definiciones de eventos y datos.

TrakIT comprueba primero la solicitud en su conjunto:

Regla Info si no se cumple
El cuerpo es una matriz JSON de elementos. No data supplied or json is malformed
Tiene como máximo 999 elementos. Count of data supplied must be less than 1000

Después comprueba y guarda cada elemento por separado, en el orden de envío. Un elemento que falla no detiene a los demás. Estas comprobaciones, en este orden, dan el Info del elemento en la respuesta:

Regla Info del elemento si no se cumple
La orden de trabajo tiene un evento o un campo de datos con este código. No Data Found
La orden de trabajo está activa o abandonada, no cerrada ni cancelada. Cannot modify closed or cancelled Work Order
UpdatedBy, si se indica, es un token de un usuario existente que no está bloqueado. Impersonated user token is not valid, No such user, Impersonated user ... is locked
El valor o las observaciones difieren de lo guardado. Unchanged
El usuario puede actualizar eventos y datos. Con UpdatedBy, el rol de ese usuario necesita Update Events & Data y, salvo que el usuario sea administrador del sistema, acceso de actualización al campo. Permission Denied
El valor de un campo único no se utiliza en otra orden de trabajo. Value is not unique
El valor coincide con el patrón del campo, si el soporte de TrakIT ha definido uno. El mensaje propio del patrón
El valor no empieza por =, + ni @ (un número de teléfono puede empezar por +), y no contiene < seguido de una letra. Value contains possible html tag
Un número o un importe es un número de 18 caracteres como máximo. Value must be numeric, Value too big
Un evento o una fecha es una fecha y una hora, NA o TBA, según lo que admita el campo. Un evento no es anterior a 2018, ni una fecha anterior a 1900. Invalid Date/Time, 'NA' not allowed, 'TBA' not allowed, Invalid Date
Un evento está dentro del Allowed Offset del campo respecto a la hora actual. Allowed Offset: ... mins
Un evento está como máximo 5 minutos en el futuro, salvo que sea meramente informativo. Future Time/Date
Con Enforce Chronological Order en el flujo de trabajo, el evento no es anterior a un evento previo ni a la creación de la orden de trabajo. Los eventos meramente informativos no se comprueban. Chronological order
Salvo que el flujo de trabajo tenga Ignore Event Sequence, los eventos anteriores de la orden de trabajo tienen un valor. Los eventos meramente informativos no se comprueban. Out of sequence
Un hipervínculo es una dirección http, https, ftp o mailto válida. Not a hyperlink
Se encuentra la ubicación o la entidad. ID is missing
Un número de teléfono tiene como máximo 15 caracteres, con la forma indicada antes. Phone number is too long, Not a phone number
Un campo con una lista de elementos recibe elementos de la lista, no más de los que admite el campo. Value not from list, Value '...' not from list, Max ... items only
Salvo que el flujo de trabajo tenga Ignore Event Sequence, un evento solo se vacía si ningún evento posterior tiene un valor. Empty not accepted
Un campo obligatorio no se vacía. Field is mandatory
Se indican observaciones si el campo las requiere. Remarks are required
Las observaciones no empiezan por =, + ni @, y no contienen < seguido de una letra. Remarks contains possible html tags or disallowed text
Lo que el campo indica en Requires tiene en la orden de trabajo un valor distinto de TBA. Missing ..., Required field '...' missing.
El valor supera la expresión de validación del campo, si el soporte de TrakIT ha definido una. El mensaje propio de la expresión, o Validation Expression Error

Las comprobaciones son las de la aplicación: consulte Cuando un valor no se guarda, los ajustes del campo en Definiciones de eventos y datos y los ajustes de Operations del flujo de trabajo. Las validaciones personalizadas que el soporte de TrakIT puede definir para Save WO Events/Data en Validaciones y acciones no se ejecutan para este punto de conexión.

Code es 1 si se ha guardado al menos un elemento, y 0 si no se ha guardado ninguno. RowsAffected es el número de elementos guardados, y RetInfo contiene un resultado por elemento, en el orden de envío. Info, Identity y Scalar no se utilizan.

{
"Code": 1,
"Info": null,
"RetInfo": [
{ "WOID": 48211, "Code": "GATEIN", "Result": 1, "Info": "Success" },
{ "WOID": 48211, "Code": "CUSTREF", "Result": 0, "Info": "Unchanged" },
{ "WOID": 48212, "Code": "ETA", "Result": 0, "Info": "'TBA' not allowed" }
],
"RowsAffected": 1,
"Scalar": null,
"Identity": 0
}
Campo Significado
WOID, Code La orden de trabajo y el código del elemento, tal como se enviaron.
Result 1: guardado. 0: no guardado. -1: no guardado por un error inesperado.
Info Success si se ha guardado; si no, el motivo, según las reglas. Unchanged significa que el valor y las observaciones ya estaban guardados.
  • Una orden de trabajo por elemento. Un valor se guarda en la orden de trabajo que indique, incluso para un campo que se aplica a todo el expediente: para definirlo en cada orden de trabajo del expediente, envíe un elemento para cada una.
  • Lo que sigue a un guardado. Justo después de la solicitud, TrakIT vuelve a calcular los campos calculados de la orden de trabajo y actualiza su estado: cuando todos sus eventos y datos obligatorios tienen un valor distinto de TBA, la orden de trabajo se cierra, como en la aplicación. Si el evento es el evento de reconocimiento de ingresos y gastos del flujo de trabajo, se actualiza la fecha de reconocimiento del expediente.
  • Acciones. Las acciones de los eventos y datos que cambia, como correos electrónicos, mensajes o actualizaciones de otros campos, no se ejecutan durante la solicitud. TrakIT las ejecuta con su comprobación periódica, cada 30 minutos, por lo que pueden producirse hasta unos 30 minutos después. Las notificaciones a los usuarios suscritos, las instrucciones del flujo de trabajo y el seguimiento de retrasos llegan unos minutos después, como para un cambio hecho en la aplicación.
  • Registro de auditoría. Cada cambio queda registrado en el registro de auditoría de la orden de trabajo, a nombre del usuario de la API o del usuario de UpdatedBy.
  • Reintentos. Volver a enviar un elemento con el mismo valor y las mismas observaciones devuelve Unchanged y no cambia nada, así que puede volver a enviar un lote sin riesgo después de que se agote el tiempo de espera.
  • Lotes grandes. La respuesta llega cuando se han procesado todos los elementos. Si un lote es demasiado lento para su tiempo de espera, envíe lotes más pequeños o use SaveSeqDataAsync.