SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Procesando Salesforce Outbound
Messages con PHP en Heroku
Mensajes asincrónicos en las nubes
Ago 8, 2015
Aldo Fernandez
Technical Consultant
@aldoforce
Agenda
▪ Salesforce
▪ Heroku
▪ Ejemplo de integración asincrónica
▪ Outbound Messages
▪ Consideraciones de diseño
▪ Esquema de implementación
▪ Demo
Qué es Salesforce?
▪ CRM
▪ Guardar datos de los clientes
▪ Establecer procesos de venta
▪ Automatización de la gestión del negocio
▪ Movilidad
▪ Plataforma
▪ SaaS (Software as a Service)
▪ On-demand vs On-premise
▪ Multi-tenant (segmentación vs virtualización)
▪ Basado en metadatos
Terminología
▪ Objeto = Tabla (Account, Contact, Order, etc)
▪ Record = Fila de la tabla con identificador único
▪ Campo = Campo de la tabla
▪ Org = Abreviación de “Organización” es nuestra instancia
en salesforce
▪ App = Conjunto de campos, objetos, permisos y
funcionalidades para que se cumplan los procesos de
negocio
▪ Force.com = Plataforma donde suceden todas las orgs
Aprendiendo Salesforce de forma gratuita
https://developers.salesforce.com/trailhead
Qué es Heroku?
▪ Plataforma
▪ Políglota (Ruby, Python, Java, Node.js, PHP, etc)
▪ Stack Ubuntu basado en Debian
▪ PaaS (Platform as a Service)
Aprendiendo Heroku de forma gratuita
https://devcenter.heroku.com/start
Ejemplo de integración asincrónica
barkingtshirts.com
▪ Implementan los procesos de
marketing y ventas con Salesforce
▪ Requerimiento de negocio: para
cada oportunidad (venta) cerrada
se debe crear una orden en el
sistema de facturación externo
(ERP)
Ejemplo de integración asincrónica
Salesforce org
Opportunity
(closed/won)
ERP system
Create Order
Moviendo datos desde Salesforce a un sistema externo
▪ De forma manual /o (*oh, no!)
▪ Herramientas ETL
▪ Streaming API
▪ Apex HTTP Callouts (sync/async)
▪ Outbound Messages
Outbound Messages
▪ Permite de forma declarativa especificar qué cambios sobre
determinados objetos deben generar mensajes de notificación a un
servidor externo predefinido
▪ Es una funcionalidad integrada con el motor de Workflow de la
plataforma.
▪ Define un contrato (WSDL) para que un sistema externo lo implemente
▪ El proceso de notificación es asincrónico (Fire and Forget)
Fire and Forget
▪ Una operación de alta o modificación sucede en un
conjunto de records en Salesforce
▪ Dada una condición lógica, el motor de workflow ejecuta
una regla de negocio (Outbound Message)
▪ Esta regla envía un mensaje SOAP al servidor externo pre-
configurado.
▪ El servicio externo toma el mensaje, lo agrega a una cola y
retorna un resultado de ACK positivo.
▪ Salesforce recibe el ACK y finaliza la notificación (failover:
espera 10 segundos y vuelve a intentar hasta por 24hrs)
▪ En caso de ser necesario un callback, el mensaje SOAP
contiene un token (SessionId) para autenticarse contra
Salesforce
Consideraciones de diseño del servidor externo
▪ Debe implementar el contrato (WSDL) especificado por Salesforce de
antemano
▪ Debe ser Idempotente (la misma notificación aplicada n veces debe
dar siempre el mismo resultado)
▪ Idealmente solo debe:
▪ Capturar el mensaje XML de la notificación
▪ Serializar la notificación en una cola para posterior procesamiento
▪ Enviar la respuesta a Salesforce (ACK)
Esquema de implementación (PHP)
▪ Cargar el WSDL con SoapServer
▪ Idempotencia: descartar notificaciones duplicadas (NotificationId es
único)
▪ Captura el XML: crear una instancia de StdClass
▪ Serializar a una cola: SQS, MQ, JMS, RabbitMQ, etc
▪ Enviar respuesta a Salesforce: construir un mensaje SOAP especifico
DEMO
http://github.com/aldoforce/uysdug-php-demo
Crear Workflow rule en Salesforce
Definir el Outbound Message
Ganando una oportunidad en Salesforce
Monitoreando Salesforce OM queue
Outbound message desde consola
Monitoreando Salesforce OM queue
App en Heroku
@uysdug #uysdug
/Uruguay-Salesforce-Developer-User-Group/
www.uysdug.com
Salesforce Uruguay
Muchas gracias!
Procesando Salesforce
Outbound messages con PHP
en Heroku
Mensajes asincrónicos en las nubes
Aldo Fernandez
@aldoforce
#phpday
#uysdug
#salesforce
#heroku
#outboundMessages

Más contenido relacionado

Similar a Procesando Salesforce Outbound Messages con PHP en Heroku

Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...TestingUy
 
Webinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteWebinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteatSistemas
 
12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nubeJose Luis Soria
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intixRoger CARHUATOCTO
 
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayTips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayJuan Fabian
 
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultConstruyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultSoftware Guru
 
SOA multiplataforma con rabbitmq y websockets
SOA multiplataforma con rabbitmq y websocketsSOA multiplataforma con rabbitmq y websockets
SOA multiplataforma con rabbitmq y websocketsbmegias
 
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
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web apiDemian Raschkovan
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?Jorge Franco Leza
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why FlossNeurowork
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why FlossNeurowork
 

Similar a Procesando Salesforce Outbound Messages con PHP en Heroku (20)

Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
 
Webinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA SuiteWebinar Conceptos SOA & Oracle SOA Suite
Webinar Conceptos SOA & Oracle SOA Suite
 
12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube12 horas Visual Studio - TFS más ligero - en la nube
12 horas Visual Studio - TFS más ligero - en la nube
 
02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix02 webinar gestion_expedientes_v0.6.1-intix
02 webinar gestion_expedientes_v0.6.1-intix
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayTips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
 
Bootcamp Javascript Online
Bootcamp Javascript OnlineBootcamp Javascript Online
Bootcamp Javascript Online
 
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data VaultConstruyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
 
Salesforce III developer day bbva innovation center Madrid by @almazanjl
Salesforce III developer day bbva innovation center Madrid by @almazanjlSalesforce III developer day bbva innovation center Madrid by @almazanjl
Salesforce III developer day bbva innovation center Madrid by @almazanjl
 
SOA multiplataforma con rabbitmq y websockets
SOA multiplataforma con rabbitmq y websocketsSOA multiplataforma con rabbitmq y websockets
SOA multiplataforma con rabbitmq y websockets
 
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...
 
Openerp
OpenerpOpenerp
Openerp
 
Dynamics saturday madrid 2019 web api
Dynamics saturday madrid 2019   web apiDynamics saturday madrid 2019   web api
Dynamics saturday madrid 2019 web api
 
¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?¿Grails + DDD + Eventsourcing + CQRS?
¿Grails + DDD + Eventsourcing + CQRS?
 
Como hacer de todo con PowerShell
Como hacer de todo con PowerShellComo hacer de todo con PowerShell
Como hacer de todo con PowerShell
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
 
11 Integracion Alfresco Y Sap Neurowork Why Floss
11   Integracion Alfresco Y Sap   Neurowork   Why Floss11   Integracion Alfresco Y Sap   Neurowork   Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
 
Integración y caso de éxito Alfresco y SAP
Integración y caso de éxito Alfresco y SAPIntegración y caso de éxito Alfresco y SAP
Integración y caso de éxito Alfresco y SAP
 

Más de Aldo Fernandez

Test Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projectsTest Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projectsAldo Fernandez
 
November meetup - Hello Winter'16
November meetup - Hello Winter'16November meetup - Hello Winter'16
November meetup - Hello Winter'16Aldo Fernandez
 
06 august meetup - enterprise integration architecture
06   august meetup - enterprise integration architecture06   august meetup - enterprise integration architecture
06 august meetup - enterprise integration architectureAldo Fernandez
 
04 june meetup - An overview of OAuth2 on Force.com projects
04   june meetup - An overview of OAuth2 on Force.com projects04   june meetup - An overview of OAuth2 on Force.com projects
04 june meetup - An overview of OAuth2 on Force.com projectsAldo Fernandez
 
Processing outbound messages with Node.js
Processing outbound messages with Node.jsProcessing outbound messages with Node.js
Processing outbound messages with Node.jsAldo Fernandez
 
Continuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projectsContinuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projectsAldo Fernandez
 
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkSalesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkAldo Fernandez
 
Salesforce1 lightning dev week UYSDUG 2015 - Lightning Connect
Salesforce1 lightning dev week UYSDUG 2015 - Lightning ConnectSalesforce1 lightning dev week UYSDUG 2015 - Lightning Connect
Salesforce1 lightning dev week UYSDUG 2015 - Lightning ConnectAldo Fernandez
 
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...Aldo Fernandez
 

Más de Aldo Fernandez (9)

Test Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projectsTest Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projects
 
November meetup - Hello Winter'16
November meetup - Hello Winter'16November meetup - Hello Winter'16
November meetup - Hello Winter'16
 
06 august meetup - enterprise integration architecture
06   august meetup - enterprise integration architecture06   august meetup - enterprise integration architecture
06 august meetup - enterprise integration architecture
 
04 june meetup - An overview of OAuth2 on Force.com projects
04   june meetup - An overview of OAuth2 on Force.com projects04   june meetup - An overview of OAuth2 on Force.com projects
04 june meetup - An overview of OAuth2 on Force.com projects
 
Processing outbound messages with Node.js
Processing outbound messages with Node.jsProcessing outbound messages with Node.js
Processing outbound messages with Node.js
 
Continuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projectsContinuous Integration - Software development lifecycle for Force.com projects
Continuous Integration - Software development lifecycle for Force.com projects
 
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas sparkSalesforce1 dev week UYSDUG 2014 - the force canvas spark
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
 
Salesforce1 lightning dev week UYSDUG 2015 - Lightning Connect
Salesforce1 lightning dev week UYSDUG 2015 - Lightning ConnectSalesforce1 lightning dev week UYSDUG 2015 - Lightning Connect
Salesforce1 lightning dev week UYSDUG 2015 - Lightning Connect
 
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...
Salesforce mobile dev weel UYSDUG 2013 - Enabling restful services for mobile...
 

Último

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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
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
 
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
 
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
 
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
 
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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
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
 
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
 

Último (16)

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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 
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
 
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...
 
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
 
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
 
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)
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
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
 
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
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
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
 
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
 

Procesando Salesforce Outbound Messages con PHP en Heroku

  • 1. Procesando Salesforce Outbound Messages con PHP en Heroku Mensajes asincrónicos en las nubes Ago 8, 2015
  • 3. Agenda ▪ Salesforce ▪ Heroku ▪ Ejemplo de integración asincrónica ▪ Outbound Messages ▪ Consideraciones de diseño ▪ Esquema de implementación ▪ Demo
  • 4. Qué es Salesforce? ▪ CRM ▪ Guardar datos de los clientes ▪ Establecer procesos de venta ▪ Automatización de la gestión del negocio ▪ Movilidad ▪ Plataforma ▪ SaaS (Software as a Service) ▪ On-demand vs On-premise ▪ Multi-tenant (segmentación vs virtualización) ▪ Basado en metadatos
  • 5. Terminología ▪ Objeto = Tabla (Account, Contact, Order, etc) ▪ Record = Fila de la tabla con identificador único ▪ Campo = Campo de la tabla ▪ Org = Abreviación de “Organización” es nuestra instancia en salesforce ▪ App = Conjunto de campos, objetos, permisos y funcionalidades para que se cumplan los procesos de negocio ▪ Force.com = Plataforma donde suceden todas las orgs
  • 6. Aprendiendo Salesforce de forma gratuita https://developers.salesforce.com/trailhead
  • 7. Qué es Heroku? ▪ Plataforma ▪ Políglota (Ruby, Python, Java, Node.js, PHP, etc) ▪ Stack Ubuntu basado en Debian ▪ PaaS (Platform as a Service)
  • 8. Aprendiendo Heroku de forma gratuita https://devcenter.heroku.com/start
  • 9. Ejemplo de integración asincrónica barkingtshirts.com ▪ Implementan los procesos de marketing y ventas con Salesforce ▪ Requerimiento de negocio: para cada oportunidad (venta) cerrada se debe crear una orden en el sistema de facturación externo (ERP)
  • 10. Ejemplo de integración asincrónica Salesforce org Opportunity (closed/won) ERP system Create Order
  • 11. Moviendo datos desde Salesforce a un sistema externo ▪ De forma manual /o (*oh, no!) ▪ Herramientas ETL ▪ Streaming API ▪ Apex HTTP Callouts (sync/async) ▪ Outbound Messages
  • 12. Outbound Messages ▪ Permite de forma declarativa especificar qué cambios sobre determinados objetos deben generar mensajes de notificación a un servidor externo predefinido ▪ Es una funcionalidad integrada con el motor de Workflow de la plataforma. ▪ Define un contrato (WSDL) para que un sistema externo lo implemente ▪ El proceso de notificación es asincrónico (Fire and Forget)
  • 13. Fire and Forget ▪ Una operación de alta o modificación sucede en un conjunto de records en Salesforce ▪ Dada una condición lógica, el motor de workflow ejecuta una regla de negocio (Outbound Message) ▪ Esta regla envía un mensaje SOAP al servidor externo pre- configurado. ▪ El servicio externo toma el mensaje, lo agrega a una cola y retorna un resultado de ACK positivo. ▪ Salesforce recibe el ACK y finaliza la notificación (failover: espera 10 segundos y vuelve a intentar hasta por 24hrs) ▪ En caso de ser necesario un callback, el mensaje SOAP contiene un token (SessionId) para autenticarse contra Salesforce
  • 14. Consideraciones de diseño del servidor externo ▪ Debe implementar el contrato (WSDL) especificado por Salesforce de antemano ▪ Debe ser Idempotente (la misma notificación aplicada n veces debe dar siempre el mismo resultado) ▪ Idealmente solo debe: ▪ Capturar el mensaje XML de la notificación ▪ Serializar la notificación en una cola para posterior procesamiento ▪ Enviar la respuesta a Salesforce (ACK)
  • 15. Esquema de implementación (PHP) ▪ Cargar el WSDL con SoapServer ▪ Idempotencia: descartar notificaciones duplicadas (NotificationId es único) ▪ Captura el XML: crear una instancia de StdClass ▪ Serializar a una cola: SQS, MQ, JMS, RabbitMQ, etc ▪ Enviar respuesta a Salesforce: construir un mensaje SOAP especifico
  • 17. Crear Workflow rule en Salesforce
  • 19. Ganando una oportunidad en Salesforce
  • 24.
  • 26. Muchas gracias! Procesando Salesforce Outbound messages con PHP en Heroku Mensajes asincrónicos en las nubes Aldo Fernandez @aldoforce #phpday #uysdug #salesforce #heroku #outboundMessages