Procesando Salesforce Outbound Messages con PHP en Heroku

of 26 /26
Procesando Salesforce Outbound Messages con PHP en Heroku Mensajes asincrónicos en las nubes Ago 8, 2015

Embed Size (px)

Transcript of Procesando Salesforce Outbound Messages con PHP en Heroku

  1. 1. Procesando Salesforce Outbound Messages con PHP en Heroku Mensajes asincrnicos en las nubes Ago 8, 2015
  2. 2. Aldo Fernandez Technical Consultant @aldoforce
  3. 3. Agenda Salesforce Heroku Ejemplo de integracin asincrnica Outbound Messages Consideraciones de diseo Esquema de implementacin Demo
  4. 4. Qu es Salesforce? CRM Guardar datos de los clientes Establecer procesos de venta Automatizacin de la gestin del negocio Movilidad Plataforma SaaS (Software as a Service) On-demand vs On-premise Multi-tenant (segmentacin vs virtualizacin) Basado en metadatos
  5. 5. Terminologa Objeto = Tabla (Account, Contact, Order, etc) Record = Fila de la tabla con identificador nico Campo = Campo de la tabla Org = Abreviacin de Organizacin 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. 6. Aprendiendo Salesforce de forma gratuita https://developers.salesforce.com/trailhead
  7. 7. Qu es Heroku? Plataforma Polglota (Ruby, Python, Java, Node.js, PHP, etc) Stack Ubuntu basado en Debian PaaS (Platform as a Service)
  8. 8. Aprendiendo Heroku de forma gratuita https://devcenter.heroku.com/start
  9. 9. Ejemplo de integracin asincrnica 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 facturacin externo (ERP)
  10. 10. Ejemplo de integracin asincrnica Salesforce org Opportunity (closed/won) ERP system Create Order
  11. 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. 12. Outbound Messages Permite de forma declarativa especificar qu cambios sobre determinados objetos deben generar mensajes de notificacin 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 notificacin es asincrnico (Fire and Forget)
  13. 13. Fire and Forget Una operacin de alta o modificacin sucede en un conjunto de records en Salesforce Dada una condicin lgica, el motor de workflow ejecuta una regla de negocio (Outbound Message) Esta regla enva 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 notificacin (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. 14. Consideraciones de diseo del servidor externo Debe implementar el contrato (WSDL) especificado por Salesforce de antemano Debe ser Idempotente (la misma notificacin aplicada n veces debe dar siempre el mismo resultado) Idealmente solo debe: Capturar el mensaje XML de la notificacin Serializar la notificacin en una cola para posterior procesamiento Enviar la respuesta a Salesforce (ACK)
  15. 15. Esquema de implementacin (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
  16. 16. DEMO http://github.com/aldoforce/uysdug-php-demo
  17. 17. Crear Workflow rule en Salesforce
  18. 18. Definir el Outbound Message
  19. 19. Ganando una oportunidad en Salesforce
  20. 20. Monitoreando Salesforce OM queue
  21. 21. Outbound message desde consola
  22. 22. Monitoreando Salesforce OM queue
  23. 23. App en Heroku
  24. 24. @uysdug #uysdug /Uruguay-Salesforce-Developer-User-Group/ www.uysdug.com Salesforce Uruguay
  25. 25. Muchas gracias! Procesando Salesforce Outbound messages con PHP en Heroku Mensajes asincrnicos en las nubes Aldo Fernandez @aldoforce #phpday #uysdug #salesforce #heroku #outboundMessages