Reporting sobre una Arquitectura Híbrida: Amazon-Salesforce usando Salesforce Connect

Una de las limitaciones que existian en referencia al uso de External Objects, era su limitada capacidad de Reporting.

En un artículo de Mark Kovacevich, Salesforce Connect Reporting, explicaba un workaround mediante programación en APEX:

  • Mostrando una List View con un Controller básico
  • VisualForce que con un Custom Controller muestra los registros y pinta un par de diagramas.

Este workaround, no era una funcionalidad para un usuario final, y requiere de programación, despliegue, testing, etc.

Paralelamente surgió en la comunidad y se formalizó una Idea, demandando la funcionalidad de reporting sobre External Objects. Finalmente en la Winter 17, esta idea se materializó y actualmente está disponible el Reporting sobre External Objects.

Cómo crear Reports con un External y otros objetos de forma estándar

Veamos el proceso paso a paso con capturas de pantalla que son autoexplicativas:

Activación de Reporting en el External Object

Activar Opción para Reporting en el External Object
Activar Opción para Reporting en el External Object

Creación de una External Lookup Relationship

CreacionExternalRelationship

Creación de un Custom Report Type donde participa nuestro External ObjectDefinicionCustomReportTypeExternalCustomObject

Construcción de un Report (y/o de un Dashboard basado en un Report)

Ejecución del Report con External y Custom Objects
Ejecución del Report donde aparecen los datos de ambos objetos, del External y del Custom

Condicionantes a tener en cuenta

En este enlace, se listan un conjunto de condiciones para llevar a cabo el reporting, a tener en cuenta, de los cuales destaco los que creo más importantes y no obvios:

  • Cada llamada, y como es a un sistema externo, consume 1 Callout, excepto si usamos Heroku como oData Producer.
    • Esto nos oblida a validar el Límite, que tengamos en la ORG, con la previsión de llamadas que podamos llegar a tener
    • Además si el Report es de tipo Joined, se computa una llamada por cada bloque que llevemos a cabo.
  • Cuando la URL para ejecutar la llamada externa excede los 2KBs, por ejemplo, cuando se incluyen filtros o condiciones, el sistema trocerará la petición en llamadas cuya URL no exceda de los 2KBs.
  • En números globales, un report que involucra un External Object, no obtendrá más de 2000 registros. Si este objeto continee objetos hijos, este nuevo puede variar.
    • Este valor según explica el Product Manager de Salesforce Connect, en un video, es un magic number, establecido por Salesforce para asegurar un buen rendimiento, y no se basa en una litmitación de oData ni del adaptador que se haya seleccionado
  • La opción High Data Volume solo debe seleccionarse cuando el Consumer y el Producer sean instancias de Salesforce, no para escenarios de acceso a un adpatador o fuente externa fuera de Salesforce
  • Cross filters don’t support external lookup relationships. An external lookup relationship links a child standard, custom, or external object to a parent external object.
  • Las funcionalidades de Buckets e Historical Trend Reporting no estan disponibles para External Objects, dado que los datos estan almacenados fuera de Salesforce.

Enlaces interesantes

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.