Este documento presenta la agenda para una reunión de la comunidad Trailblazer en Madrid sobre Salesforce Non-Profit. Incluye presentaciones sobre el Non-Profit Cloud, demostraciones del modelo de filantropía integrada 1-1-1 y recursos para organizaciones sin fines de lucro, así como sobre la gestión de triggers mediante una tabla dirigida y el uso de grandes volúmenes de datos en Salesforce. Concluye invitando a los asistentes a compartir, hacer preguntas y establecer contactos.
3. Comparte todo sobre el Salesforce Non
Profit meetup con
#TrailblazerCommunity
#TBCMAD
4. Agenda
Be Release Ready
Logistics
Ines Garcia - Non Profit Cloud
Maidolys Rojas y Laura Penín Antón - Full-On Demo
Mode!
Carlos Villalpando - TDTM, LDV, DMLWrapper y más!
Nibbles & Networking
5. Say Hello to the Trailblazer Community
Community Programs
● 600+ Global Community Groups
● 200+ Salesforce MVPs
● 20+ Community-led Events
Community Platform
● Answers
● Collaboration Groups
● IdeaExchange
Join millions of Trailblazers to connect, learn, get inspired, and blaze trails together.
6. Developers
Be Release Ready
Salesforce Groups - Iberia
Users
Users
Madrid
Barcelona
Andalucia
Bilbao
Granada
Sevilla
Zaragoza
Malaga
Oviedo
Lisboa
Palma Mallorca
Portugal
Barcelona
Valencia
Madrid
Langreo
Madrid NonProfits
Madrid B2C MKT
7. Madrid Success Community
Compartir, preguntar, networking, últimas noticias, experts …
• Pedir ser del grupo & Actualiza tu perfil
• Estate al dia
Pon tus ‘digests’ a: Every Post o Daily
• Badge Quincenal
Preguntas, respuestas, adiciones etc
• Invita, the more the merrier!
Amigos, conocidos, customers…
Users, Devs & More!
8. Be Release Ready
1st June 2017 Madrid
27th April 2018 Barcelona
12th April 2019 Malaga !
www.dreamole.es
Past Events Sessions,
Photos & More!
9. Forward-Looking Statements
Statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any
of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking
statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or
service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for
future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer
contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth,
interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any
possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and
motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-
salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial
results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the
most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor
Information section of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not
be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
13. Salesforce.org?
1-1-1 Model of Integrated Philanthropy
A Non Profit social enterprise that resells Salesforce to Non Profits & Higher Ed
14.
15. Symptoms
Constituent data is
in different places
Donor info all over
the place
Lack of single
source of truth
Impact reporting
impossible
Employees leave so
does your dataImportant details go
missing
40% 47% 89%
16.
17. Industry Solution
- 22% increase in funds raised
- 17% increase in constituent retention
- 23% increase in constituent engagement
- 52% improvement in operational effectiveness
- 70% improvement in data quality
- That 91% would recommend Salesforce to other NonProfits
21. Join the group today!
Engage directly with salesforce
experts!
Hear from our MVP’s, other
customers and salesforce resources!
Access resources, webinars, people,
all designed to help you achieve
success!
The Power Of Us HUB
Trailblazer Community
28. Sabemos que el código sucede
● Permite que se cree un trigger en cada objeto (Mejor práctica)
● Los controladores se crean y almacenan en el objeto personalizado Trigger_Handler__c
○ a quién llamar, cuándo llamarlo, en qué orden llamarlo
● Se pueden crear múltiples controladores por objeto
Así que vamos a controlar esto y hacerlo escalable = TDTM
29. ¿Qué es la gestión de triggers por medio de Table-Driven?
Un Trigger por objeto, múltiples
controladores
Le permite controlar el orden de
cuando ocurren las cosas
Lógica almacenada en Apex
Classes en lugar de Apex Triggers
TDTM Resources: HEDA Overview | NPSP Overview
30. Escala - administra un gran número de controladores
Orden - controla el orden de la lógica
Flexibilidad: permite a los clientes desactivar la funcionalidad
Extensibilidad: permite a los clientes y SI integrar sus propios Triggers
Rendimiento - Optimizar (reduciendo) el uso de DML
One Trigger to Rule Them All
¿Entonces por qué TDTM?
31. Similitudes / diferencias entre HEDA y NPSP
● Ambos usan un objeto Trigger Handler
● La funcionalidad general es la misma entre NPSP y HEDA
● NPSP tiene una interfaz de usuario personalizada para mostrar los controladores
● NPSP tiene el doble de controladores
● HEDA incluye una pestaña estándar
● HEDA incluye filtros de valor de campo
● El método para extender TDTM es ligeramente diferente
Mismo origen pero ligeramente diferente
33. Trigger Handler Object
Almacena información sobre las clases Apex
NPSP:
NPSP tab de Configuración extrae datos del objeto Controlador de activador y muestra:
System Tools → Trigger Configuration
• Vista de solo lectura; para modificar, editar los registros del Objeto.
• Sin embargo, puede crear su propio Manejador desde esta pantalla.
• Por defecto, no hay pestaña para este objeto. (Cree uno si necesita modificar)
HEDA:
Los Manejadores se pueden ver a través de la pestaña Controlador.
34. ¿Qué constituye un controlador de triggers?
Object
• El objeto que el dispara el
Trigger(e.g. Contact)
Class
• La Clase Apex que controla la
logica (e.g.
AFFL_Affiliations_TDTM)
• Debe implementar la interface
TDTM_Runnable y tener un
método run() con los
parametros requeridos
Active
● si está marcado, el Trigger
va a disparar
Load Order
•Inicieo con 0 si usted necesita
que corra antes que otros
Trigger Handlers
Trigger Action
• Cuando dispara el trigger (i.e.
Before Insert, After Update)
Usernames to Exclude
•Lista de nombres de usuario
separados por puntos y coma
para los que no se ejecutará el
controlador
Asynchronous After Events
• ARRIESGADO. Indica que el
controlador debe ejecutarse
de forma asincrónica. Tu clase
debe admitir el procesamiento
asincrónico. No hay pruebas
completas sobre esto.
Necesita asegurarse de que
funciona como se espera sin
efectos secundarios en su
organización.
User Managed
• Marque si ha creado uno
propio o modificado. Esto evita
que nuestro instalador
sobrescriba sus cambios.
35. ¿Como funciona?
Apex Triggers inicia el proceso y después TDTM toma control.
TDTM
Find Trigger Handler records on Contact: After Insert, Sort by Load Order
Action 1: Create
Administrative
Account
ACCT_Individual
Accounts_TDTM
Action 2: Create
Primary Address
ADDR_Contact
_TDTM
Action 3: Create
Department
Affiliation
CON_PrimaryAffl
s_TDTM
39. ¿Qué es un gran volumen de datos?
Normalmente se usa para referirse a una implementación de:
• Miles de usuarios con acceso concurrente
• Más de 5 millones de registros en objetos como Opportunity, Lead, Contact y Account.
• Más de 10,000 objetos secundarios para un objeto principal
• Cientos de gigabytes de espacio de almacenamiento de datos
(tambien conocido como “LDV”)
41. Uso de Datos y de Pronóstico de uso
Encuentre su uso de datos actual
• Configuración -> Información de la empresa
• Haga clic en el link al lado de Used Data Space
Pronóstico:
• Cada registro tiene un tamaño de 2K
• Cada contacto tendrá una cuenta, dirección (es), afiliación (es), relación
(es),
NPSP:
• Plan (es) de participación, etc.
• Cada oportunidad puede tener pago (es), asignación de GAU (s), donación
recurrente, función (es) de contacto, crédito (s) parcial (es) suave (s), etc.
¿Necesita más espacio?
• Póngase en contacto con su
Ejecutivo de Cuenta de
Salesforce para obtener
más información. Hay un
costo adicional por esto.
42. Uso de Datos y de Pronóstico de uso
HEDA
Contact - 1
Account - 1
Addresses - 3
- Home
- Dormitorio
- Off Campus Housing
Affiliations - 5
- High School
- University
- Academic Program
- Department
Relationships - 5
Program Enrollments - 1
Course Enrollments - 12
1 Estudiante de tiempo
completo
HEDA (28 registros):
56K
SAL (35 registros):
70K
Total por estudiante:
126K
Carga inicial de estudiantes
50,000 Students:
6.1GB
(3.2 millones de registros)
Nuevos estudiantes anuales
Advisor Link
Advisee Case - 1
Success Team - 4
Alerts - 5
Events - 5
Tasks - 10
Notes - 10
Ejemplo de educación superior
43. Uso de Datos y de Pronóstico de uso
NPSP
Contact - 1
Account - 1
Addresses - 3
- Casa
- Trabajo
- Temporal
Affiliations - 2
- Empleador actual
- Empleador anterior
Relationships - 3
Opportunities - 10
Payments - 10
1 Donador
NPSP (30 registros):
60KB
Carga inicial de contactos
50,000 Contactos:
3GB
(1.5 millones de registros)
Nuevos contactos anuales
10,000 por año:
.6 GB
(300K registros)
Ejemplo de NPSP
45. Account “Bucketing”
Cada actualización de
contacto bloquea la misma
cuenta
Lookup/Parent-Child Skew
Data Skew
Más de 10,000 registros
secundarios o relacionados
= lentitud, pérdida de acceso
a los registros, bloqueo de
registro
Estudiante 1
Estudiante 2
Estudiante 3
10,001
10,002
...
...
Account: State
University
46. Todos los datos importados
vinculados a un usuario de
integración
La eliminación de los roles de
usuario ayuda
Mantenga a esos usuarios
fuera de los grupos públicos
utilizados como fuente para
reglas de compartir registros
Ownership Skew
Más de 10,000 registros con
propiedad del mismo usuario
= lentitud mientras se
vuelven a calcular las reglas
para compartir registros
Opp 1
Opp 2
Opp 3
10,001
10,002
...
...
Usuario de
Integración
Data Skew
47. Object Bloat
Demasiados campos +
demasiados registros =
lentitud/timeouts en los
reportes, listas de visitas,
páginas de Visualforce
Más <> Mejor
Demasiada información extraída al
navegador
Estados de página grande
Más memoria de sesión
48. Restrictive or Complex Sharing Models
La importación de gran
tamaño es lenta debido al
modelo Org-Wide privado esto
causa el recálculo de la tabla
compartida
Los cálculos de acceso de registro son
caros
49. API Limits
Las grandes cantidades de
datos o el diseño ineficiente
de lotes / fragmentos dan
como resultado demasiadas
solicitudes de API en un
período de 24 horas
Esto puede ser un SHOWSTOPPER
Cada lote es una llamada API
Llega al límite y ya terminaste el día
10,000 lotes por laminado 24 horas
50. Otros Problemas Potenciales
Las actualizaciones
incorrectamente secuenciadas
producen errores de bloqueo
de filas (las actualizaciones de
registros hijo bloquean el
registro principal)
Al eliminar registros, utilice
"hard deletes" para que los
datos no se almacenen en la
Papelera de reciclaje
Row Locking
Contention
Data Storage Limits