
En mi post de hoy, me gustaría explorar el uso de la API basada en REST de Acumatica para crear una asignación de envíos, junto con la creación de los paquetes y sus detalles de partidas relacionadas.
Más concretamente, pienso centrarme en tres tareas discretas:
- Asignar asignaciones de transporte a líneas de transporte individuales;
- Crear paquetes para su envío; y
- Asignar el contenido del paquete a determinados paquetes
Comenzaremos con un envío abierto que espera asignaciones de líneas de envío. Veamos de qué dispone el punto final Predeterminado para realizar las tareas.
Al revisar por primera vez el punto final Predeterminado, vemos entidades específicas que nos ayudan con las dos primeras tareas:
- Detalles / Asignaciones
- Paquetes

Desafortunadamente, el endpoint Default no expone la entidad para el contenido del Paquete como puede ver a continuación.

Dado que el endpoint Default no expone esta entidad, debemos extenderlo. Vamos a realizar esa tarea de inmediato.
Utilice la opción para ampliar el punto final predeterminado. O cree su propio punto final personalizado si lo desea.
En nuestro caso, extenderemos la entidad Default. Desplácese hasta la entidad Envío. Usando la entidad detalle Paquetes como base, cree una nueva entidad detalle hija que nos permita incluir un array de tipo Paquetes.

Asegúrese de asignar los campos de entidad.

Utilice la opción Validar entidad para asegurarse de que no hay problemas con su nueva extensión de punto final.
Ahora tenemos un endpoint que realizará todas nuestras tareas.
Ahora estamos listos para la primera tarea: asignar las asignaciones a la línea de envío. A continuación se muestra un ejemplo de cómo crear asignaciones para un envío. Se crean dos asignaciones para una posición de envío.
Utilizamos la entidad «Shipment» y enviamos una carga útil que contiene la matriz «Details», así como la matriz «Allocation». Asegúrate de incluir el número de envío en tu carga útil JSON:
Ejecute la llamada a la API y observe los resultados en la pantalla de entrada de envíos. Cuando echamos un vistazo a la asignación para la posición de envío, vemos los resultados de asignación para la línea de envío.

De momento, todo va bien. A continuación, crearemos los paquetes de envío. A continuación se muestra un ejemplo de cómo crear dos paquetes de envío para el registro de envío.
Fíjate en que vamos a crear una nueva solicitud PUT para el recurso «Shipment». La URI incluye además dos parámetros: uno que indica el número de envío y otro para expandir la entidad «packages». Necesitamos los resultados de la entidad «packages» para poder especificar los paquetes concretos de los que queremos obtener los detalles. Por último, incluimos los detalles de los paquetes en nuestra carga útil. A continuación se muestra nuestra siguiente solicitud PUT.
Procesa con la llamada API y observa los resultados en la pantalla de entrada de envíos. Se crean nuestros dos paquetes.

Observe el cuerpo devuelto por el método PUT. Hay piezas clave de información en la matriz de paquetes, y los necesitará en un momento.

Al revisar el portal de ayuda de Acumatica, vemos la descripción de la entidad ID:
El ID de entidad es un GUID que se asigna a cada entidad con la que se trabaja durante una sesión de Acumatica ERP. El valor del ID de entidad se puede obtener a través de la propiedad «ID» de una entidad devuelta por Acumatica ERP. Los registros de las entidades de nivel superior que se recuperan a través de la API basada en contratos tienen ID persistentes, que son los valores de la columna «NoteID» de las tablas de base de datos correspondientes.
Es decir, puede utilizar el valor de la propiedad «ID» de una entidad de nivel superior devuelta por Acumatica ERP a lo largo de diferentes sesiones con Acumatica ERP. Sin embargo, si un registro no tiene un ID de entidad (lo cual podría ocurrir con entidades de detalle, entidades que corresponden a consultas genéricas o entidades personalizadas), a este registro se le asigna un ID de entidad nuevo en cada nueva sesión. Es decir, tras iniciar sesión de nuevo en Acumatica ERP, no se puede utilizar el ID de entidad que se recibió en la sesión anterior para trabajar con la entidad.
En este caso, la entidad ID nos ayuda a definir los paquetes individuales que se crearon. Utilizaremos esos valores ID dentro de un momento.
A continuación, estamos listos para añadir un elemento de asignación a un paquete determinado, ¿verdad? Falta un detalle importante. Cada registro de contenido de paquete de envío requiere el conocimiento previo del número de división de la línea de envío. Este campo constituye la clave principal de cada registro de la tabla de contenido del paquete.

A menos que conozca de memoria los números de línea de división, deberá consultarlos. ¡API basada en REST al rescate!
Creemos una simple petición GET e incluyamos el parámetro expand. Debemos ver los detalles de todos los registros de asignación, en el envío.
GET / entidad/ExtendedDefault/18.200.001/Envío/0000032?$expand=Detalles/Asignaciones HTTP/1.1
Host: YourERPInstance
Content-Type: application/json
Cuerpo de retorno (parcial)
Observe que hay dos datos en nuestro cuerpo que necesitamos para nuestra solicitud final de API.
ID: representa de forma unívoca el número de envío.
SplitLineNbr - representa el número de línea de asignación, para una línea de envío en particular.
Con esta información, podemos identificar todas las asignaciones. Esto nos permite crear un registro detallado del paquete y asignar la asignación a un paquete concreto. Construiremos la solicitud PUT final y asignaremos las asignaciones a un paquete. Veamos el siguiente ejemplo
En la carga útil, asegúrese de asignar la entidad ID de envío, la entidad paquete, así como un array de Paquetes. En su matriz de paquetes, pase los números de línea de asignación del envío, representados como entidad ShipmentSplitLineNbr.
Las asignaciones se añaden al paquete:

Resumen
Hoy vimos cómo usar la API basada en REST de Acumatica para crear asignaciones de envíos. También mostramos cómo se pueden crear los paquetes y los detalles de los paquetes. Nuestro objetivo principal era cómo íbamos a realizar las tres tareas siguientes:
- Asignar asignaciones de transporte a líneas de transporte individuales;
- Crear paquetes para el envío; y
- Asignar el contenido del paquete a determinados paquetes
Al añadir la entidad de contenido del paquete de envío a tu punto final de la API REST, podrás exponer los elementos necesarios para crear los detalles del paquete de envío. La API basada en contratos de Acumatica nos permite conectarnos con el punto final para asignar las líneas de envío. Además, te ofrece la posibilidad de crear los paquetes de envío.
Mediante llamadas adicionales a la API, puedes consultar los valores de identificación únicos (ID) de los detalles de asignación del envío. Con esos valores, podrás asignar los números de serie a los paquetes del envío.
Espero que este post le sea útil y le haya proporcionado las bases sobre cómo puede asignar asignaciones de envío a paquetes específicos.