SlideShare a Scribd company logo
1 of 31
deep dive

Wednesday, September 8, 2010
Phillip Cave
Agenda

I. High-level technical overview
II. The what and why of Salesforce
III. Drupal modules
IV. Demo
High-level overview

I. History – from contrib to Springboard
II. Salesforce components
   –   Custom objects, triggers, and fields
   –   Workflow rules and field updates
   –   Reports
   –   Page layouts
III. Drupal components
   – 15 modules (and counting)
   – Very loosely coupled
   – Batch processing architecture
Salesforce

I. Development platform in the cloud
II. Objects
  – Core and custom

III. Apex – object oriented programming
     language
IV. Visual Force
V. Well documented API
VI. Upsert? WTF?
Fundraiser

I. Only module that doesn’t require SF
II. Smoke and mirrors with webform and
    ubercart
  – Genetically modified
    webform
demo
Fundraiser

I. Supports one-time and recurring
   donations
  – Tracks when future donations should be charged
  – Processing occurs during cron runs
  – One order id to rule them all
Salesforce Management API

I. Originally from contrib
II. Wrapper for the Salesforce PHP toolkit
  – SOAP based
  – Utilizes enterprise WSDL (also a partner WSDL)

III. Controls
  –   Fieldmaps (mostly)
  –   Business rules
  –   Connection settings
  –   Object mapping
Queue API

I. Not very robust at the moment
  – Currently has 1 function (sf_queue_insert)
  – Determines if the object:
      •   Is already in the queue
      •   Is in the retry queue
      •   Is a permanent failure
      •   Is on the heap

II. Defines the schema for the entire queue
    system
Queue API

I. Why queue
  – Accountability
      • Can get a peek into what is happening at any given time
      • Better control over when things get processed
  – Robust
      • Salesforce maintenance windows
      • Ability to take advantage of Batch API
  – Reporting
      • Batch history
      • Queues (current, retry, and permanent failures)

II. Downside
  – Upserts cannot take fieldmap rules into consideration
Queue Processor

I. Original vision
  Import Service


               User
                                                   Queue Processor
  Import Service                                           Start

               Node                                   Fieldmap assign

                                                       Pre-process
  Import Service         Global Queue
                                                           Send
            Donation
                                                       Post-process

  Import Service


            Webform


                                                              Fieldmaps

                       Salesforce Management API                   Rules
Queue Processor

I. Settings
  – Processing order: Specifies the order in which Drupal entities are
    processed
  – Maximum items per cron run: Specifies how many items should
    be processed per cron run (default 1,000)
  – Batch size: Maximum number of items to include in a batch
    (default 200)
  – Maximum retry attempt: The number of times an entity will be
    retried before being marked as a permanent failure (default 3)
  – Email summary: The email addresses that will receive a
    summary of batches processed after each cron run
Queue Processor

I. Available triggers
  –   A connection to Salesforce cannot be established
  –   An object fails to export to Salesforce
  –   An object is moved to the retry queue
  –   An object becomes a permanent failure
  –   A SOAP fault occurs
Queue Processor

                                                                yes
  Lock queue items   Get all locked items           EOF?               Process heap




                                                         no



  What                                      yes
                                                  Fieldmap
                                                                no
                                                                      Assign fieldmap
                                                  assigned?


  happens                                                yes


  when
                                                   In heap?

  cron
                                                         no

  runs                                            Add to heap
Queue Processor
       Heap                                    Batch 1
                                               Type: user
User       upsert   Batch 3                    Action: upsert
                    Type: node
Donation   upsert   Action upsert

Node       upsert                                   Sweet! 2
                                                     Batch
User       upsert                                    Type: donation
                                                     Action: upsert
Webformupsert
                              Batch 4
                              Type: webform
Node       update             Action: upsert

User       update

User       update                                     Batch 5
                                                      Type: node
Donation   upsert
                                                      Action: update
User       delete   Batch 6
                    Type: user
Donation   upsert   Action: update

Webformupsert                                         Batch 7
                                                      Type: user
Node       upsert                                     Action: delete
User       update

Node       update
Queue Processor

I. Hooks
  – hook_queue_fieldmap_assignment_alter()
     • Allows a module to assign a fieldmap to an item in the queue before it is
       placed in the heap
  – hook_queue_preprocess_batch_alter()
     • Alter the entire batch – object building happens here
  – hook_queue_batch_item_alter()
     • Alter an individual item in the batch (last ditch effort)
  – hook_queue_postprocess_batch()
     • Modules can further process the data after the calls to Salesforce
  – hook_queue_salesforce_info()
     • Allows a module to expose it’s own fieldmap and dedupe schema
Queue Processor

I. Reports
  –   Batch history
  –   Currently queued items
  –   Retry queue
  –   Permanent failures
Queue Processor

I. Batch history
  – Insight into an individual batch
Queue Processor

I. Currently queued items
  – Shows items that are currently in the queue
  – Will reset after every cron run
  – queue_report_item_title()
Queue Processor

I. Retry queue
  – Where the bad boys go
Queue Processor

I. Permanent failures
  – Where the really bad boys go
SF User

I. Drupal user integration module
SF Node

I. Node integration module
  – New!
SF Node Import

I. Complement to SF Node
II. Define criteria for selecting objects in
     Salesforce
III. Can update or create new nodes in
     Drupal
IV. Requires defined fieldmap
SF Donation

I. Donation integration module
SF Webform

I. Webform integration module
Webform User

I. Worst module name in history (thanks
     Tom)
II. Free beer to whoever comes up with a
     better name
III. Adds account and profile fields to
     webform
IV. Optionally relates the created object to a
     Salesforce account or contact
And the others

I. Market Source
  – Pure wizardry

II. Capwiz
  – More wizardry

III. Webform reorder?
  – Brock?
Demo

I. Arcade game high-score app
  – Salesforce objects
      • Contact
      • High-score
  – Drupal entities
      • User
      • High-score webform
Questions




  This is great! How can I get
             started?

More Related Content

Viewers also liked

Training Ericsson Acadamy
Training Ericsson Acadamy Training Ericsson Acadamy
Training Ericsson Acadamy Amdei Tessema
 
Springboard 3
Springboard 3Springboard 3
Springboard 3pcave
 
Shetkari restaurant
Shetkari restaurantShetkari restaurant
Shetkari restaurantNikhil Kadu
 
Project on leading laptop brands new
Project on leading laptop brands newProject on leading laptop brands new
Project on leading laptop brands newNikhil Kadu
 
Project on analysis of laptop brands
Project  on  analysis of  laptop  brandsProject  on  analysis of  laptop  brands
Project on analysis of laptop brandsNikhil Kadu
 
New the negotiable_instruments_act__1881_381011348
New the negotiable_instruments_act__1881_381011348New the negotiable_instruments_act__1881_381011348
New the negotiable_instruments_act__1881_381011348Nikhil Kadu
 
Scams in india 2012-2013
Scams in india 2012-2013Scams in india 2012-2013
Scams in india 2012-2013Nikhil Kadu
 
LKS PERTEMUAN I
LKS PERTEMUAN ILKS PERTEMUAN I
LKS PERTEMUAN IDiani M
 

Viewers also liked (12)

Training Ericsson Acadamy
Training Ericsson Acadamy Training Ericsson Acadamy
Training Ericsson Acadamy
 
Tjm 2
Tjm 2Tjm 2
Tjm 2
 
Agency Analysis
Agency AnalysisAgency Analysis
Agency Analysis
 
Springboard 3
Springboard 3Springboard 3
Springboard 3
 
Shetkari restaurant
Shetkari restaurantShetkari restaurant
Shetkari restaurant
 
Hard candy
Hard candyHard candy
Hard candy
 
Project on leading laptop brands new
Project on leading laptop brands newProject on leading laptop brands new
Project on leading laptop brands new
 
Project on analysis of laptop brands
Project  on  analysis of  laptop  brandsProject  on  analysis of  laptop  brands
Project on analysis of laptop brands
 
New the negotiable_instruments_act__1881_381011348
New the negotiable_instruments_act__1881_381011348New the negotiable_instruments_act__1881_381011348
New the negotiable_instruments_act__1881_381011348
 
Scams in india 2012-2013
Scams in india 2012-2013Scams in india 2012-2013
Scams in india 2012-2013
 
Pestle analysis
Pestle analysisPestle analysis
Pestle analysis
 
LKS PERTEMUAN I
LKS PERTEMUAN ILKS PERTEMUAN I
LKS PERTEMUAN I
 

Similar to Springboard deepdive

Tale of two streaming frameworks- Apace Storm & Apache Flink
Tale of two streaming frameworks- Apace Storm & Apache FlinkTale of two streaming frameworks- Apace Storm & Apache Flink
Tale of two streaming frameworks- Apace Storm & Apache FlinkKarthik Deivasigamani
 
Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)KafkaZone
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit fasterPatrick Bos
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Liang Chen
 
Storm distributed processing
Storm distributed processingStorm distributed processing
Storm distributed processingducquoc_vn
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Fabien Potencier
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task QueueRichard Leland
 
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...Amit Gupta
 
How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?VMware Tanzu
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Vishnu Kannan
 
Parallel programming
Parallel programmingParallel programming
Parallel programmingSwain Loda
 
Kubernetes intro public - kubernetes meetup 4-21-2015
Kubernetes intro   public - kubernetes meetup 4-21-2015Kubernetes intro   public - kubernetes meetup 4-21-2015
Kubernetes intro public - kubernetes meetup 4-21-2015Rohit Jnagal
 
Kubernetes intro public - kubernetes user group 4-21-2015
Kubernetes intro   public - kubernetes user group 4-21-2015Kubernetes intro   public - kubernetes user group 4-21-2015
Kubernetes intro public - kubernetes user group 4-21-2015reallavalamp
 
A science-gateway workload archive application to the self-healing of workflo...
A science-gateway workload archive application to the self-healing of workflo...A science-gateway workload archive application to the self-healing of workflo...
A science-gateway workload archive application to the self-healing of workflo...Rafael Ferreira da Silva
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyAkihiro Motoki
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyAkihiro Motoki
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Hao H. Zhang
 

Similar to Springboard deepdive (20)

Tale of two streaming frameworks- Apace Storm & Apache Flink
Tale of two streaming frameworks- Apace Storm & Apache FlinkTale of two streaming frameworks- Apace Storm & Apache Flink
Tale of two streaming frameworks- Apace Storm & Apache Flink
 
Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)Tale of two streaming frameworks (Karthik D - Walmart)
Tale of two streaming frameworks (Karthik D - Walmart)
 
Making fitting in RooFit faster
Making fitting in RooFit fasterMaking fitting in RooFit faster
Making fitting in RooFit faster
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
 
Optimized Hive replication
Optimized Hive replicationOptimized Hive replication
Optimized Hive replication
 
Storm distributed processing
Storm distributed processingStorm distributed processing
Storm distributed processing
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009
 
Celery: The Distributed Task Queue
Celery: The Distributed Task QueueCelery: The Distributed Task Queue
Celery: The Distributed Task Queue
 
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
How does the Cloud Foundry Diego Project Run at Scale, and Updates on .NET Su...
 
How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?How does the Cloud Foundry Diego Project Run at Scale?
How does the Cloud Foundry Diego Project Run at Scale?
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
 
Open GeoSocial API
Open GeoSocial APIOpen GeoSocial API
Open GeoSocial API
 
Parallel programming
Parallel programmingParallel programming
Parallel programming
 
Pfm technical-inside
Pfm technical-insidePfm technical-inside
Pfm technical-inside
 
Kubernetes intro public - kubernetes meetup 4-21-2015
Kubernetes intro   public - kubernetes meetup 4-21-2015Kubernetes intro   public - kubernetes meetup 4-21-2015
Kubernetes intro public - kubernetes meetup 4-21-2015
 
Kubernetes intro public - kubernetes user group 4-21-2015
Kubernetes intro   public - kubernetes user group 4-21-2015Kubernetes intro   public - kubernetes user group 4-21-2015
Kubernetes intro public - kubernetes user group 4-21-2015
 
A science-gateway workload archive application to the self-healing of workflo...
A science-gateway workload archive application to the self-healing of workflo...A science-gateway workload archive application to the self-healing of workflo...
A science-gateway workload archive application to the self-healing of workflo...
 
Horizon quantum-integration-grizzly
Horizon quantum-integration-grizzlyHorizon quantum-integration-grizzly
Horizon quantum-integration-grizzly
 
Horizon Quantum Integration grizzly
Horizon Quantum Integration grizzlyHorizon Quantum Integration grizzly
Horizon Quantum Integration grizzly
 
Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2Kubernetes Architecture - beyond a black box - Part 2
Kubernetes Architecture - beyond a black box - Part 2
 

Recently uploaded

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

Springboard deepdive

  • 1. deep dive Wednesday, September 8, 2010 Phillip Cave
  • 2. Agenda I. High-level technical overview II. The what and why of Salesforce III. Drupal modules IV. Demo
  • 3. High-level overview I. History – from contrib to Springboard II. Salesforce components – Custom objects, triggers, and fields – Workflow rules and field updates – Reports – Page layouts III. Drupal components – 15 modules (and counting) – Very loosely coupled – Batch processing architecture
  • 4. Salesforce I. Development platform in the cloud II. Objects – Core and custom III. Apex – object oriented programming language IV. Visual Force V. Well documented API VI. Upsert? WTF?
  • 5.
  • 6. Fundraiser I. Only module that doesn’t require SF II. Smoke and mirrors with webform and ubercart – Genetically modified webform
  • 8. Fundraiser I. Supports one-time and recurring donations – Tracks when future donations should be charged – Processing occurs during cron runs – One order id to rule them all
  • 9. Salesforce Management API I. Originally from contrib II. Wrapper for the Salesforce PHP toolkit – SOAP based – Utilizes enterprise WSDL (also a partner WSDL) III. Controls – Fieldmaps (mostly) – Business rules – Connection settings – Object mapping
  • 10. Queue API I. Not very robust at the moment – Currently has 1 function (sf_queue_insert) – Determines if the object: • Is already in the queue • Is in the retry queue • Is a permanent failure • Is on the heap II. Defines the schema for the entire queue system
  • 11. Queue API I. Why queue – Accountability • Can get a peek into what is happening at any given time • Better control over when things get processed – Robust • Salesforce maintenance windows • Ability to take advantage of Batch API – Reporting • Batch history • Queues (current, retry, and permanent failures) II. Downside – Upserts cannot take fieldmap rules into consideration
  • 12. Queue Processor I. Original vision Import Service User Queue Processor Import Service Start Node Fieldmap assign Pre-process Import Service Global Queue Send Donation Post-process Import Service Webform Fieldmaps Salesforce Management API Rules
  • 13. Queue Processor I. Settings – Processing order: Specifies the order in which Drupal entities are processed – Maximum items per cron run: Specifies how many items should be processed per cron run (default 1,000) – Batch size: Maximum number of items to include in a batch (default 200) – Maximum retry attempt: The number of times an entity will be retried before being marked as a permanent failure (default 3) – Email summary: The email addresses that will receive a summary of batches processed after each cron run
  • 14. Queue Processor I. Available triggers – A connection to Salesforce cannot be established – An object fails to export to Salesforce – An object is moved to the retry queue – An object becomes a permanent failure – A SOAP fault occurs
  • 15. Queue Processor yes Lock queue items Get all locked items EOF? Process heap no What yes Fieldmap no Assign fieldmap assigned? happens yes when In heap? cron no runs Add to heap
  • 16. Queue Processor Heap Batch 1 Type: user User upsert Batch 3 Action: upsert Type: node Donation upsert Action upsert Node upsert Sweet! 2 Batch User upsert Type: donation Action: upsert Webformupsert Batch 4 Type: webform Node update Action: upsert User update User update Batch 5 Type: node Donation upsert Action: update User delete Batch 6 Type: user Donation upsert Action: update Webformupsert Batch 7 Type: user Node upsert Action: delete User update Node update
  • 17. Queue Processor I. Hooks – hook_queue_fieldmap_assignment_alter() • Allows a module to assign a fieldmap to an item in the queue before it is placed in the heap – hook_queue_preprocess_batch_alter() • Alter the entire batch – object building happens here – hook_queue_batch_item_alter() • Alter an individual item in the batch (last ditch effort) – hook_queue_postprocess_batch() • Modules can further process the data after the calls to Salesforce – hook_queue_salesforce_info() • Allows a module to expose it’s own fieldmap and dedupe schema
  • 18. Queue Processor I. Reports – Batch history – Currently queued items – Retry queue – Permanent failures
  • 19. Queue Processor I. Batch history – Insight into an individual batch
  • 20. Queue Processor I. Currently queued items – Shows items that are currently in the queue – Will reset after every cron run – queue_report_item_title()
  • 21. Queue Processor I. Retry queue – Where the bad boys go
  • 22. Queue Processor I. Permanent failures – Where the really bad boys go
  • 23. SF User I. Drupal user integration module
  • 24. SF Node I. Node integration module – New!
  • 25. SF Node Import I. Complement to SF Node II. Define criteria for selecting objects in Salesforce III. Can update or create new nodes in Drupal IV. Requires defined fieldmap
  • 26. SF Donation I. Donation integration module
  • 27. SF Webform I. Webform integration module
  • 28. Webform User I. Worst module name in history (thanks Tom) II. Free beer to whoever comes up with a better name III. Adds account and profile fields to webform IV. Optionally relates the created object to a Salesforce account or contact
  • 29. And the others I. Market Source – Pure wizardry II. Capwiz – More wizardry III. Webform reorder? – Brock?
  • 30. Demo I. Arcade game high-score app – Salesforce objects • Contact • High-score – Drupal entities • User • High-score webform
  • 31. Questions This is great! How can I get started?