Explorando las Maravillas de las Conexiones API en Microsoft Business Centra

Exploraremos a fondo las conexiones a objetos de tipo API. Desde las peticiones GET para obtener datos precisos hasta la elegancia de los métodos POST y PUT para crear y modificar registros, este artículo te sumergirá en un universo de posibilidades.

¡Hola lectores de NaviWorld! 👋

Es un placer estar nuevamente aquí, compartiendo conocimientos sobre la fascinante programación en Business Central de Microsoft. En esta entrega, vamos a adentrarnos en las posibilidades y funcionalidades de las conexiones a objetos de tipo API.

¡Así que, sin más preámbulos, empecemos manos a la obra! 😎

Descubriendo las Maravillas de las Peticiones WebService

Antes de empezar para poder conectarte a Business Central se tiene que configurar en Azure una aplicación, esto lo explico en el siguiente articulo

Es importante que lo revises antes para poder continuar.

También vamos a utilizar por ahora el Postman para hacer las peticiones hacia la API. Así que si no sabes como usarlo, es esto otro articulo lo explique.

GET – ¡Obtén Datos a Tu Manera!

Cuando hablamos de extraer datos, el método GET es nuestro aliado. La lógica de extracción, filtros y demás maravillas se ejecuta a través de la URL. ¿Quieres verlo en acción? Echa un vistazo al siguiente ejemplo:

https://api.businesscentral.dynamics.com/v2.0/3eec59d0-b663-4b9a-86f0-02c976cd5276/Production/mycompany/sales/v2.0/companies(3104717a-5377-ee11-817e-6045bdacaca5)/mycustomers('10000')

Aquí, estamos obteniendo información sobre un cliente específico. Podemos aplicar filtros para refinar nuestros resultados, como buscar clientes por nombre o cualquier otro campo mostrado en la API.

Y hablando de filtros, aquí tienes algunos trucos comunes:

  • eq para un filtro exacto.
  • or para agregar múltiples parámetros de búsqueda.
  • ne para buscar valores diferentes.
  • Contains para filtrar lo que contiene algo en particular.
  • gt y lt para valores más grandes o más pequeños, respectivamente.

Más ejemplos y detalles sobre filtros los encontrarás aquí.

POST – ¡Crea Nuevos Registros con Estilo!

Cuando se trata de añadir nuevos registros, el método POST es tu mejor amigo. Utilizamos la misma URL base, pero esta vez, agregamos un JSON con los datos necesarios para la creación del nuevo registro. ¡Simple y poderoso!

PUT – ¡Modifica Datos con Precisión!

¿Necesitas realizar modificaciones en un registro específico? El método PUT es la respuesta. Al igual que con el método POST, se utiliza la misma URL base, pero esta vez, se deben agregar ciertos encabezados, como “If-Match” y “Content-Type”. ¡Y no olvides el JSON para la modificación!

DELETE – ¡Elimina con Seguridad!

Similar a las peticiones GET, el método DELETE se utiliza para eliminar un registro en particular. ¿Cómo? ¡Añadiendo la información en la URL!

Ejecutar Funciones de la Page – ¡Acciones Especiales!

Imagina poder ejecutar funciones específicas desde las pages de tipo API. ¡Es posible! Solo necesitas agregar el cliente y el nombre de la función al final de la URL. En el código, podrías tener algo como esto:

procedure editName(var ActionContext: WebServiceActionContext)
begin
    Rec.Name := 'NuevoNombre';
    Rec.Modify();
    ActionContext.SetObjectType(ObjectType::Page);
    ActionContext.SetObjectId(Page::"My Custom Customer API");
    ActionContext.AddEntityKey(Rec.FieldNo("No."), Rec."No.");
    ActionContext.SetResultCode(WebServiceActionResultCode::Updated);
end;

Esta función específica, en este caso, cambia el nombre de un cliente. ¡Y el nombre de la función es lo que aparece al final de la URL!

Conclusión – ¡Más Allá de la Creación de Objetos API!

En resumen, en nuestro primer articulo aprendimos a crear objetos de tipo API, y ahora nos sumergimos en cómo conectarnos a ellos, explorando las diversas y poderosas opciones que ofrece la API de Business Central.

No olvides revisar el ejemplo completo en GitHub

¡Hasta la próxima, programadores de NaviWorld! 🚀

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *