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/SaveSeqDataToken: your-tokenContent-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.
Valores
Sección titulada «Valores»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.
Respuesta
Sección titulada «Respuesta»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
Unchangedy 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.

