Inicio Blog Una mirada a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

Chris Hardgrove | 21 de agosto de 2022

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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:

  1. Asignar asignaciones de transporte a líneas de transporte individuales;
  2. Crear paquetes para su envío; y
  3. 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

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

Asegúrese de asignar los campos de entidad.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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. He aquí un ejemplo de cómo crear asignaciones para un envío. Crea dos asignaciones para una partida de envío. Utilizamos la entidad Envío, y enviamos una carga útil que contiene la matriz Detalles, así como la matriz Asignación. Asegúrese de incluir el número de envío en su carga 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.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

Hasta aquí todo correcto. 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íos. Observe que crearemos una nueva petición PUT para el recurso Envío. También incluye en el URI dos parámetros, indicando el número de envío y para expandir la entidad paquetes. Necesitamos los resultados de la entidad packages, para especificar paquetes concretos que recibirán los detalles del paquete. Por último, incluimos los detalles del paquete en nuestra carga útil. A continuación se muestra nuestro siguiente PUT.

Procesa con la llamada API y observa los resultados en la pantalla de entrada de envíos. Se crean nuestros dos paquetes.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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. Puede obtener el valor del ID de entidad de la propiedad ID de una entidad devuelta desde Acumatica ERP. Los registros de entidades de nivel superior que recupera 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 desde Acumatica ERP a lo largo de diferentes sesiones con Acumatica ERP. Sin embargo, si un registro no tiene un ID de nota (que podría ser el caso de entidades de detalle, entidades que corresponden a consultas genéricas o entidades personalizadas), a este registro se le asigna el ID de entidad que es nuevo para cada nueva sesión. Es decir, después de un nuevo inicio de sesión en Acumatica ERP, no podrá utilizar el ID de entidad que 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.

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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:

Un vistazo a la API basada en REST en las actividades de desarrollo relacionadas con los envíos

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:

  1. Asignar asignaciones de transporte a líneas de transporte individuales;
  2. Crear paquetes para el envío; y
  3. Asignar el contenido del paquete a determinados paquetes

Al agregar la entidad de contenido del paquete de envío a su punto final de API REST, podrá exponer los elementos necesarios para crear los detalles del paquete de envío. La API basada en contratos de Acumatica nos permite conectar con el endpoint asignar las líneas de envío. Además, le proporciona la capacidad de crear los paquetes de envío. Con llamadas adicionales a la API, puede consultar los valores de ID del identificador único para los detalles de asignación del envío. Con esos valores, puede asignar los números de serie a los paquetes de 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.

Autor del blog

Chris lleva desarrollando soluciones en la plataforma xRP de Acumatica desde 2012. En esos primeros años para Acumatica, recibió "innumerables" instrucciones individuales de "el" Mikhail Chtchelkonogov a través de Skype, aprendiendo todo sobre Acumatica y el marco de desarrollo xRP. En 2018, Chris se unió a NexTech como consultor desarrollador.

Reciba las actualizaciones del blog en su bandeja de entrada.