SlideShare una empresa de Scribd logo
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
Procesando Salesforce Outbound Messages con PHP 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

PDF
IBM Connectivity and Integration
PPTX
02 Paquete de Integración Fast Track de Salesforce
PPTX
Kaldeera Workflow Desginer 2009
PPT
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
PPT
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
PPT
Lanzamiento Omni Chile
PDF
Php sevilla 014: Presentación de SymfonyZero
PPTX
Metadata api en apex
IBM Connectivity and Integration
02 Paquete de Integración Fast Track de Salesforce
Kaldeera Workflow Desginer 2009
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Lanzamiento Omni Chile
Php sevilla 014: Presentación de SymfonyZero
Metadata api en apex

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

PDF
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
PDF
Webinar Conceptos SOA & Oracle SOA Suite
PPTX
12 horas Visual Studio - TFS más ligero - en la nube
PPT
02 webinar gestion_expedientes_v0.6.1-intix
PPTX
Taller de Base de Datos - Unidad 6 SQL procedural
PDF
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
PPTX
Bootcamp Javascript Online
PDF
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
PPTX
Salesforce III developer day bbva innovation center Madrid by @almazanjl
PPTX
SOA multiplataforma con rabbitmq y websockets
PPTX
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
PDF
PPTX
Dynamics saturday madrid 2019 web api
PDF
¿Grails + DDD + Eventsourcing + CQRS?
PPTX
Como hacer de todo con PowerShell
PPTX
Cross development - React para desarrolladores de asp.net
PPTX
CrossDvlpu - REACT para desarrolladores de ASP.NET
PDF
11 Integracion Alfresco Y S A P Neurowork Why F L O S S
PDF
11 Integracion Alfresco Y Sap Neurowork Why Floss
PDF
11 Integracion Alfresco Y Sap Neurowork Why Floss
Charla evento TestingUY 2016 - Test Driven Development en la Plataforma Sales...
Webinar Conceptos SOA & Oracle SOA Suite
12 horas Visual Studio - TFS más ligero - en la nube
02 webinar gestion_expedientes_v0.6.1-intix
Taller de Base de Datos - Unidad 6 SQL procedural
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Bootcamp Javascript Online
Construyendo pruebas para un DWH usando un paradigma de modelado Data Vault
Salesforce III developer day bbva innovation center Madrid by @almazanjl
SOA multiplataforma con rabbitmq y websockets
Automatiza y aprovecha al máximo tu proceso de recepción de facturas electrón...
Dynamics saturday madrid 2019 web api
¿Grails + DDD + Eventsourcing + CQRS?
Como hacer de todo con PowerShell
Cross development - React para desarrolladores de asp.net
CrossDvlpu - REACT para desarrolladores de ASP.NET
11 Integracion Alfresco Y S A P Neurowork Why F L O S S
11 Integracion Alfresco Y Sap Neurowork Why Floss
11 Integracion Alfresco Y Sap Neurowork Why Floss
Publicidad

Más de Aldo Fernandez (9)

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

Último (20)

PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
PDF
Maste clas de estructura metálica y arquitectura
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
CyberOps Associate - Cisco Networking Academy
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PDF
clase auditoria informatica 2025.........
PDF
MANUAL de recursos humanos para ODOO.pdf
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Historia Inteligencia Artificial Ana Romero.pptx
Presentacion de Alba Curso Auditores Internos ISO 19011
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Presentación PASANTIAS AuditorioOO..pptx
introduccion a las_web en el 2025_mejoras.ppt
Tips de Seguridad para evitar clonar sus claves del portal bancario.pdf
Maste clas de estructura metálica y arquitectura
informe_fichas1y2_corregido.docx (2) (1).pdf
CyberOps Associate - Cisco Networking Academy
Zarate Quispe Alex aldayir aplicaciones de internet .docx
SAP Transportation Management para LSP, TM140 Col18
la-historia-de-la-medicina Edna Silva.pptx
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
clase auditoria informatica 2025.........
MANUAL de recursos humanos para ODOO.pdf
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...

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
  • 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