SlideShare una empresa de Scribd logo
1 de 35
- Mayo 2019
Programación
enfocada a Web API
• David F. Martinez (Innovar
Tecnologías)
• Oriol Peñuela Ortega (Innovar
Tecnologías)
Ponentes!
• David Fernando Martinez.
• Consultor Senior de Innovar
• Conocimientos en Dynamic 365 CE
• Conocimientos en Dynamics F&O.
• Desarrollador
• Arquitecto y Scrum Master.
• Originario de la tierra más bella del mundo Colombia!!!
• Adicto a las motos.
• Fan de GoT
• LinkenId: https://www.linkedin.com/in/david-fernando-
martinez-bustos-6a159018/
Ponentes!
• Oriol Peñuela Ortega
• Desarrollador Senior.
• Actualmente esta detrás de los proyectos de Chat
Bots usando Bot Framework.
• Estudiante de informática UPC.
• Friki en tecnologías web.
• Defensor de Star wars los últimos Jedi.
• Fan de las cervezas artesanales .
LinkedIn: https://www.linkedin.com/in/oriolpenuela/
Y el menú de hoy!
1
2
3
4 Web API – Pruebas de rendimiento (SOAP Vs Web API)
Web API Dynamics 365
ODATA V2 y V4
Diferencias entre Organization Data Service, Web API y Organization
Service.
Llegando mas a fondo!
5
6
7
8
Xrm.WebApi y Postman.
Ejemplo de consumo desde Flows y Power Apps.
Limitaciones actuales de la Web API.
Funciones y Acciones
Programación asíncrona con js e integración con Typescript.
• La API web, para Microsoft Dynamics 365 (en línea y local), proporciona
una experiencia de desarrollo que puede usarse en una gran
variedad de lenguajes de programación, plataformas, y dispositivos.
• Web API en Dynamics 365 -> Release 2.0.
Web API Dynamics 365
¿Qué contiene la web Api?
• Implementa Odata (Open Data Protocol), V 4.0.
• Norma OASIS, para consumir API.
• Web api combina funcionalidad de SOAP y REST
endpoint.
• Mejoras del REST endpoint (Odata 2.0 – Estaba
limitado a operaciones CRUD).
Odata V2.0 / Odata v4.0
OData V2 in Dynamics CRM OData V4 in Dynamics 365/2016
Dynamics CRM Client URL +”
/XRMServices/2011/OrganizationData.svc” –
Dynamics CRM Client URL +” /api/data/v9.1″
Necesidad de agregar referencia de ensamblaje o utilidad
de JavaScript.
No necesita ninguna referencia de ensamblado de
JavaScript.
Sufijo adicional "Conjunto" con nombre de entidad
(ejemplo - ContactSet)
Solo sufijo "s" con nombre de entidad (ejemplo -
Contacts)
Diferencias
Organization Service Web API Organization Data Service
• Usa WCF to SOAP endpoint
• Implementa IorganizationService Interface
• XML
• Requiere el Assembly para autenticar Dynamics
CRM
• Assign Records , Retrieve Metadata, Execute
Message and Anything.
• Máximo de registros 5000
• Usa WCF to Rest Endpoint
• Implementa Odata V4
• JSON, TEXT,XML
• NO Requiere el Assembly para autenticar
Dynamics CRM
• Create, Retrieve, Update, Delete , Associate,
Diassociate, Assign, Retrieve metadata.
• Máximo de registros 5000
• Usa WCF to Rest Endpoint
• Implementa Odata V2
• JSON, ATOM
• NO Requiere el Assembly para autenticar
Dynamics CRM
• Create, Retrieve, Update, Delete ,
Associate, Disassociate
• Máximo de registros 50
Manos a la obra…
Web API pruebas de
rendimiento…
Xrm.WebApi en Dynamics
365 V 9.X
Xrm.WebApi - Creación de un registro
Xrm.WebApi - Busqueda
Parámetros de filtrado
• $select: Lista de campos que queremos recuperar de la WebApi
• $filter: Filtrado de registros
• $expand: Devuelve campos de entidades relacionadas (Ej:
$expand=customerid_contact($select=fullname))
• $orderby: Orden de los registros devueltos (Ej: $orderby=name desc,revenue asc)
• $top: Limita los resultados devueltos
• $apply: Permite agregar campos y agrupar registros (Ej:
$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue)
• $count: Devuelve un campo @odata.count que contiene el numero de registros
devueltos en la consulta
Xrm.WebApi – Busqueda con FetchXML
Nuestro amigo Postman…
Funciones
• Operaciones nativas que no producen efectos secundarios.
• Pueden ser globales (unbound) o ligadas a una entidad (bound)
• Si la función esta ligada a un entidad se deberá indicar el GUID del registro al que hace referencia y el
namespace de la función.
Funciones de query: Funciones que se usan en una búsqueda de registros, por ejemplo
la función contains() o startsWith()
Acciones
• Flujos de trabajo que permiten realizar operaciones aisladas y reutilizables.
• También pueden ser globales o ligadas a una entidad.
• Se ejecutan realizando una llamada POST a la WebApi con objeto que representa los parámetros de la función.
Ejemplo practico con
Postman
Promesas
• Una promesa representa el resultado (o fallo) de una operación asíncrona.
• Usando el método then() en una promesa podemos tratar el resultado/error de la operación asíncrona.
Fetch()
• Alternativa a XMLHttpRequest , devuelve una promesa.
• Ademas de la URL se le puede pasar como parámetro un objeto con el tipo de petición, headers, datos…
Async/await
Dynamics 365 y Typescript
Flow y Power Apps
• La actualización de los campos de búsqueda a NULL no se admite
actualmente, ya que no hay una forma eficiente de hacerlo cuando se
utiliza WebAPI.
• Existen dos limitaciones cuando se utiliza una Alternate Key como
criterio de coincidencia para la acción Upsert o Update en un
componente de destino de CRM.
• Primero, no informa ningún valor para las columnas de salida IsNew
y CrmRecordId en su Salida predeterminada, ya que el servidor
Dynamics 365 / CRM no CE devuelve dicha información cuando se usa
WebAPI. En segundo lugar, no funciona si alguno de los campos clave
tiene un valor NULL.  SOAP
Cosas por mejorar en Web API
• No se recomienda utilizar la Detección de duplicados
como criterios coincidentes para la acción Upsert o
Update, ya que la función RetrieveDuplicates en la
que confiamos no devuelve esos registros duplicados
existentes de manera confiable.  SOAP
• Cuando trabaje con la opción EntityChanges en el
componente de origen CRM, no debe seleccionar
ningún campo de búsqueda, ya que esto provoca un
error esperado en el servidor.
Cosas por mejorar en Web API
• La opción AuditLogs en el componente fuente de CRM
no se admite actualmente, ya que la función
RetrieveRecordChangeHistory en la que confiamos
está generando un error inesperado en el servidor.
• La acción de eliminación masiva no funciona, ya que la
función FetchXmlToQueryExpression informará un
error inesperado en el servidor.
• El uso de la acción Delete para la
campaignactivityitem no está funcionando
actualmente debido a la disparidad del mensaje de
solicitud de servicio utilizado
Cosas por mejorar en Web API
• La escritura en la entidad de campaignitem no está funcionando
actualmente debido a la disparidad del mensaje de solicitud de
servicio utilizado.
• El uso de la acción Delete para la entidad listmember no está
funcionando actualmente debido a la disparidad del mensaje de
solicitud de servicio utilizado.
• La acción de envío para la entidad de “email" no funciona, ya que
genera un error del lado del servidor cuando la solicitud se publica
en el servidor.
• Al realizar una actualización de los campos de la lista de partes en una
entidad de actividad (como los campos 'from', 'to', 'cc', 'bcc' fields of
'email' entity), debe asegurarse de escribir a todos campos de la lista
de partes en la misma entidad; de lo contrario, los campos de la lista
de partes que no tienen una entrada se borrarán, lo que podría
ocasionar pérdidas inesperadas de datos
Cosas por mejorar en Web API
Enlaces de interés
• Documentación Webapi: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-
api/about?view=dynamics-ce-odata-9
• Documentación Xrm.WebApi: https://docs.microsoft.com/en-us/dynamics365/customer-
engagement/developer/clientapi/reference/xrm-webapi
• Postman: https://www.getpostman.com/
• Promises: https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Promesa
• Fetch: https://developer.mozilla.org/es/docs/Web/API/Fetch_API/Utilizando_Fetch
• Async/await: https://javascript.info/async-await
• Polyfill fetch (para usar en internet explorer): https://github.com/github/fetch
• Typescript: https://www.typescriptlang.org/
• Tutorial Typescript + Dynamics 365 1:
https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/10/26/detailed-guide-on-how-to-use-typescript-
with-dynamics-365-part-1-setting-up-the-environment
• Tutorial Typescript + Dynamics 365 2:
https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/10/27/detailed-guide-on-how-to-use-typescript-
with-dynamics-365-part-1-deploying-typescript-into-dynamics-365
• Tutorial Typescript + Dynamics 365 3:
https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/11/05/detailed-guide-on-how-to-use-typescript-
with-dynamics-365-part-3-debugging-typescript-within-dynamics-365
• Spkl (Libreria para subir web resources desde visual): https://www.nuget.org/packages/spkl/
• Fiddler: https://www.telerik.com/fiddler
• Imposter(Plugin de fiddler para depurar WebResources): https://github.com/gotdibbs/Imposter.Fiddler
¡Muchas gracias!

Más contenido relacionado

Similar a Dynamics saturday madrid 2019 web api

Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Presentación html5
Presentación html5Presentación html5
Presentación html5aydimdagam
 
Integrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXIntegrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXA+ Steel, SRL
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoDeivinson Tejeda
 
Integrando Oracle BI, BPM y BAM 11g: El ciclo completo de la información
Integrando Oracle BI, BPM y BAM 11g:  El ciclo  completo de la informaciónIntegrando Oracle BI, BPM y BAM 11g:  El ciclo  completo de la información
Integrando Oracle BI, BPM y BAM 11g: El ciclo completo de la informaciónEdelweiss Kammermann
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineMario Cortés Flores
 
Curso SharePoint 2013 overview
Curso SharePoint 2013 overviewCurso SharePoint 2013 overview
Curso SharePoint 2013 overviewVladimir Medina
 
Capacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezCapacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezDaniel Bermudez
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...José Antonio Sandoval Acosta
 
Configurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceConfigurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceJoseph Lopez
 
Introduction to Machine Learning with Azure
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with AzureAlan Koo
 
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Amazon Web Services LATAM
 
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...IT-NOVA
 
Evaluación y prácticas para migrar a la nube
Evaluación y prácticas para migrar a la nubeEvaluación y prácticas para migrar a la nube
Evaluación y prácticas para migrar a la nubeAmazon Web Services LATAM
 
Dynamics crm-es
Dynamics crm-esDynamics crm-es
Dynamics crm-esansonjonel
 
SharePoint 2013 como centro de sus datos de negocio
SharePoint 2013 como centro de sus datos de negocioSharePoint 2013 como centro de sus datos de negocio
SharePoint 2013 como centro de sus datos de negocioJuan Carlos Gonzalez
 
Diseña tu propio Office 365 con Azure IaaS y PaaS
Diseña tu propio Office 365 con Azure IaaS y PaaSDiseña tu propio Office 365 con Azure IaaS y PaaS
Diseña tu propio Office 365 con Azure IaaS y PaaSMiguel Tabera
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointHaaron Gonzalez
 

Similar a Dynamics saturday madrid 2019 web api (20)

Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Presentación html5
Presentación html5Presentación html5
Presentación html5
 
Integrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEXIntegrando los servicios REST a nuestras aplicaciones APEX
Integrando los servicios REST a nuestras aplicaciones APEX
 
Kumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y FuturoKumbia PHP Framework - Inicios, Presente y Futuro
Kumbia PHP Framework - Inicios, Presente y Futuro
 
Computación i 9101
Computación i 9101Computación i 9101
Computación i 9101
 
Integrando Oracle BI, BPM y BAM 11g: El ciclo completo de la información
Integrando Oracle BI, BPM y BAM 11g:  El ciclo  completo de la informaciónIntegrando Oracle BI, BPM y BAM 11g:  El ciclo  completo de la información
Integrando Oracle BI, BPM y BAM 11g: El ciclo completo de la información
 
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint onlineAplicaciones Autohosted, el nuevo modelo para extender SharePoint online
Aplicaciones Autohosted, el nuevo modelo para extender SharePoint online
 
Curso SharePoint 2013 overview
Curso SharePoint 2013 overviewCurso SharePoint 2013 overview
Curso SharePoint 2013 overview
 
Capacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel BermudezCapacitacion Apex 5 Oracle - Daniel Bermudez
Capacitacion Apex 5 Oracle - Daniel Bermudez
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Configurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business IntelligenceConfigurar su entorno SharePoint para Business Intelligence
Configurar su entorno SharePoint para Business Intelligence
 
Introduction to Machine Learning with Azure
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with Azure
 
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
 
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
 
Evaluación y prácticas para migrar a la nube
Evaluación y prácticas para migrar a la nubeEvaluación y prácticas para migrar a la nube
Evaluación y prácticas para migrar a la nube
 
Dynamics crm-es
Dynamics crm-esDynamics crm-es
Dynamics crm-es
 
SharePoint 2013 como centro de sus datos de negocio
SharePoint 2013 como centro de sus datos de negocioSharePoint 2013 como centro de sus datos de negocio
SharePoint 2013 como centro de sus datos de negocio
 
Diseña tu propio Office 365 con Azure IaaS y PaaS
Diseña tu propio Office 365 con Azure IaaS y PaaSDiseña tu propio Office 365 con Azure IaaS y PaaS
Diseña tu propio Office 365 con Azure IaaS y PaaS
 
Futuro de Desarrollo en SharePoint
Futuro de Desarrollo en SharePointFuturo de Desarrollo en SharePoint
Futuro de Desarrollo en SharePoint
 

Más de Demian Raschkovan

Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integracionesDemian Raschkovan
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0Demian Raschkovan
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Demian Raschkovan
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Demian Raschkovan
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platformDemian Raschkovan
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Demian Raschkovan
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDemian Raschkovan
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Demian Raschkovan
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automateDemian Raschkovan
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDemian Raschkovan
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroDemian Raschkovan
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Demian Raschkovan
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformDemian Raschkovan
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Demian Raschkovan
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSDemian Raschkovan
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsDemian Raschkovan
 

Más de Demian Raschkovan (20)

Que ha sido de wally
Que ha sido de wallyQue ha sido de wally
Que ha sido de wally
 
Power automate como solucion para integraciones
Power automate como solucion para integracionesPower automate como solucion para integraciones
Power automate como solucion para integraciones
 
Dynamics saturday online 2020 gestion de credito v1.0
Dynamics saturday online 2020   gestion de credito v1.0Dynamics saturday online 2020   gestion de credito v1.0
Dynamics saturday online 2020 gestion de credito v1.0
 
Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020Victor sanchez saturdaymadrid2020
Victor sanchez saturdaymadrid2020
 
Hjp saturday 2020_v2
Hjp saturday 2020_v2Hjp saturday 2020_v2
Hjp saturday 2020_v2
 
Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365Despliegue continuo en dev ops para multiples entornos de dync 365
Despliegue continuo en dev ops para multiples entornos de dync 365
 
Chateando con power apps
Chateando con power appsChateando con power apps
Chateando con power apps
 
Alm orientado a power platform
Alm orientado a power platformAlm orientado a power platform
Alm orientado a power platform
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
 
Dynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdfDynamics 365 human resources and business continuity pdf
Dynamics 365 human resources and business continuity pdf
 
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
Dynamics for marketing 365 desde cero y como extender nuestro customer journe...
 
Automatizando flujos con teams y power automate
Automatizando flujos con teams y power automateAutomatizando flujos con teams y power automate
Automatizando flujos con teams y power automate
 
Power bi fromzeroto bi hero
Power bi fromzeroto bi heroPower bi fromzeroto bi hero
Power bi fromzeroto bi hero
 
Definir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo controlDefinir un Gobierno en Power Platform: todo bajo control
Definir un Gobierno en Power Platform: todo bajo control
 
Todo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique RomeroTodo lo que te gustaría saber de Field Services - Enrique Romero
Todo lo que te gustaría saber de Field Services - Enrique Romero
 
Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!Real CI/CD para MSDyn365FO… Be a hero!
Real CI/CD para MSDyn365FO… Be a hero!
 
Empower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platformEmpower digital transformation in your organization with the power platform
Empower digital transformation in your organization with the power platform
 
Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)Solución estándar: ¿Amigo o enemigo? PAC(K)
Solución estándar: ¿Amigo o enemigo? PAC(K)
 
Máquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDSMáquinas de estado con Logic App & Automate sobre CDS
Máquinas de estado con Logic App & Automate sobre CDS
 
Mejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive CardsMejora tus procesos de negocio con Adaptive Cards
Mejora tus procesos de negocio con Adaptive Cards
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (19)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Dynamics saturday madrid 2019 web api

  • 1. - Mayo 2019 Programación enfocada a Web API • David F. Martinez (Innovar Tecnologías) • Oriol Peñuela Ortega (Innovar Tecnologías)
  • 2.
  • 3. Ponentes! • David Fernando Martinez. • Consultor Senior de Innovar • Conocimientos en Dynamic 365 CE • Conocimientos en Dynamics F&O. • Desarrollador • Arquitecto y Scrum Master. • Originario de la tierra más bella del mundo Colombia!!! • Adicto a las motos. • Fan de GoT • LinkenId: https://www.linkedin.com/in/david-fernando- martinez-bustos-6a159018/
  • 4. Ponentes! • Oriol Peñuela Ortega • Desarrollador Senior. • Actualmente esta detrás de los proyectos de Chat Bots usando Bot Framework. • Estudiante de informática UPC. • Friki en tecnologías web. • Defensor de Star wars los últimos Jedi. • Fan de las cervezas artesanales . LinkedIn: https://www.linkedin.com/in/oriolpenuela/
  • 5. Y el menú de hoy! 1 2 3 4 Web API – Pruebas de rendimiento (SOAP Vs Web API) Web API Dynamics 365 ODATA V2 y V4 Diferencias entre Organization Data Service, Web API y Organization Service.
  • 6. Llegando mas a fondo! 5 6 7 8 Xrm.WebApi y Postman. Ejemplo de consumo desde Flows y Power Apps. Limitaciones actuales de la Web API. Funciones y Acciones Programación asíncrona con js e integración con Typescript.
  • 7. • La API web, para Microsoft Dynamics 365 (en línea y local), proporciona una experiencia de desarrollo que puede usarse en una gran variedad de lenguajes de programación, plataformas, y dispositivos. • Web API en Dynamics 365 -> Release 2.0. Web API Dynamics 365
  • 8. ¿Qué contiene la web Api? • Implementa Odata (Open Data Protocol), V 4.0. • Norma OASIS, para consumir API. • Web api combina funcionalidad de SOAP y REST endpoint. • Mejoras del REST endpoint (Odata 2.0 – Estaba limitado a operaciones CRUD).
  • 9. Odata V2.0 / Odata v4.0 OData V2 in Dynamics CRM OData V4 in Dynamics 365/2016 Dynamics CRM Client URL +” /XRMServices/2011/OrganizationData.svc” – Dynamics CRM Client URL +” /api/data/v9.1″ Necesidad de agregar referencia de ensamblaje o utilidad de JavaScript. No necesita ninguna referencia de ensamblado de JavaScript. Sufijo adicional "Conjunto" con nombre de entidad (ejemplo - ContactSet) Solo sufijo "s" con nombre de entidad (ejemplo - Contacts)
  • 10. Diferencias Organization Service Web API Organization Data Service • Usa WCF to SOAP endpoint • Implementa IorganizationService Interface • XML • Requiere el Assembly para autenticar Dynamics CRM • Assign Records , Retrieve Metadata, Execute Message and Anything. • Máximo de registros 5000 • Usa WCF to Rest Endpoint • Implementa Odata V4 • JSON, TEXT,XML • NO Requiere el Assembly para autenticar Dynamics CRM • Create, Retrieve, Update, Delete , Associate, Diassociate, Assign, Retrieve metadata. • Máximo de registros 5000 • Usa WCF to Rest Endpoint • Implementa Odata V2 • JSON, ATOM • NO Requiere el Assembly para autenticar Dynamics CRM • Create, Retrieve, Update, Delete , Associate, Disassociate • Máximo de registros 50
  • 11. Manos a la obra…
  • 12. Web API pruebas de rendimiento…
  • 13.
  • 15. Xrm.WebApi - Creación de un registro
  • 17. Parámetros de filtrado • $select: Lista de campos que queremos recuperar de la WebApi • $filter: Filtrado de registros • $expand: Devuelve campos de entidades relacionadas (Ej: $expand=customerid_contact($select=fullname)) • $orderby: Orden de los registros devueltos (Ej: $orderby=name desc,revenue asc) • $top: Limita los resultados devueltos • $apply: Permite agregar campos y agrupar registros (Ej: $apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) • $count: Devuelve un campo @odata.count que contiene el numero de registros devueltos en la consulta
  • 18. Xrm.WebApi – Busqueda con FetchXML
  • 20. Funciones • Operaciones nativas que no producen efectos secundarios. • Pueden ser globales (unbound) o ligadas a una entidad (bound) • Si la función esta ligada a un entidad se deberá indicar el GUID del registro al que hace referencia y el namespace de la función. Funciones de query: Funciones que se usan en una búsqueda de registros, por ejemplo la función contains() o startsWith()
  • 21. Acciones • Flujos de trabajo que permiten realizar operaciones aisladas y reutilizables. • También pueden ser globales o ligadas a una entidad. • Se ejecutan realizando una llamada POST a la WebApi con objeto que representa los parámetros de la función.
  • 23. Promesas • Una promesa representa el resultado (o fallo) de una operación asíncrona. • Usando el método then() en una promesa podemos tratar el resultado/error de la operación asíncrona.
  • 24. Fetch() • Alternativa a XMLHttpRequest , devuelve una promesa. • Ademas de la URL se le puede pasar como parámetro un objeto con el tipo de petición, headers, datos…
  • 26. Dynamics 365 y Typescript
  • 27. Flow y Power Apps
  • 28. • La actualización de los campos de búsqueda a NULL no se admite actualmente, ya que no hay una forma eficiente de hacerlo cuando se utiliza WebAPI. • Existen dos limitaciones cuando se utiliza una Alternate Key como criterio de coincidencia para la acción Upsert o Update en un componente de destino de CRM. • Primero, no informa ningún valor para las columnas de salida IsNew y CrmRecordId en su Salida predeterminada, ya que el servidor Dynamics 365 / CRM no CE devuelve dicha información cuando se usa WebAPI. En segundo lugar, no funciona si alguno de los campos clave tiene un valor NULL.  SOAP Cosas por mejorar en Web API
  • 29. • No se recomienda utilizar la Detección de duplicados como criterios coincidentes para la acción Upsert o Update, ya que la función RetrieveDuplicates en la que confiamos no devuelve esos registros duplicados existentes de manera confiable.  SOAP • Cuando trabaje con la opción EntityChanges en el componente de origen CRM, no debe seleccionar ningún campo de búsqueda, ya que esto provoca un error esperado en el servidor. Cosas por mejorar en Web API
  • 30. • La opción AuditLogs en el componente fuente de CRM no se admite actualmente, ya que la función RetrieveRecordChangeHistory en la que confiamos está generando un error inesperado en el servidor. • La acción de eliminación masiva no funciona, ya que la función FetchXmlToQueryExpression informará un error inesperado en el servidor. • El uso de la acción Delete para la campaignactivityitem no está funcionando actualmente debido a la disparidad del mensaje de solicitud de servicio utilizado Cosas por mejorar en Web API
  • 31. • La escritura en la entidad de campaignitem no está funcionando actualmente debido a la disparidad del mensaje de solicitud de servicio utilizado. • El uso de la acción Delete para la entidad listmember no está funcionando actualmente debido a la disparidad del mensaje de solicitud de servicio utilizado. • La acción de envío para la entidad de “email" no funciona, ya que genera un error del lado del servidor cuando la solicitud se publica en el servidor. • Al realizar una actualización de los campos de la lista de partes en una entidad de actividad (como los campos 'from', 'to', 'cc', 'bcc' fields of 'email' entity), debe asegurarse de escribir a todos campos de la lista de partes en la misma entidad; de lo contrario, los campos de la lista de partes que no tienen una entrada se borrarán, lo que podría ocasionar pérdidas inesperadas de datos Cosas por mejorar en Web API
  • 33. • Documentación Webapi: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web- api/about?view=dynamics-ce-odata-9 • Documentación Xrm.WebApi: https://docs.microsoft.com/en-us/dynamics365/customer- engagement/developer/clientapi/reference/xrm-webapi • Postman: https://www.getpostman.com/ • Promises: https://developer.mozilla.org/ca/docs/Web/JavaScript/Referencia/Objectes_globals/Promesa • Fetch: https://developer.mozilla.org/es/docs/Web/API/Fetch_API/Utilizando_Fetch • Async/await: https://javascript.info/async-await • Polyfill fetch (para usar en internet explorer): https://github.com/github/fetch
  • 34. • Typescript: https://www.typescriptlang.org/ • Tutorial Typescript + Dynamics 365 1: https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/10/26/detailed-guide-on-how-to-use-typescript- with-dynamics-365-part-1-setting-up-the-environment • Tutorial Typescript + Dynamics 365 2: https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/10/27/detailed-guide-on-how-to-use-typescript- with-dynamics-365-part-1-deploying-typescript-into-dynamics-365 • Tutorial Typescript + Dynamics 365 3: https://community.dynamics.com/365/b/arsenaghajanyansblog/archive/2018/11/05/detailed-guide-on-how-to-use-typescript- with-dynamics-365-part-3-debugging-typescript-within-dynamics-365 • Spkl (Libreria para subir web resources desde visual): https://www.nuget.org/packages/spkl/ • Fiddler: https://www.telerik.com/fiddler • Imposter(Plugin de fiddler para depurar WebResources): https://github.com/gotdibbs/Imposter.Fiddler

Notas del editor

  1. Colors can be inverted by formatting background
  2. Colors can be inverted by formatting background
  3. Colors can be inverted by formatting background