SlideShare a Scribd company logo
INTEGRATION PEER-LED STUDY GROUP
MEETING 2: APRIL 23, 2018
FACILITATOR: NIKI VANKERK
AGENDA
• Quick round of intros – name/where you are/planned exam date
• Remote Process – Request and Reply (Susannah)
• Remote Process – Fire and Forget (Edith)
• Batch Data Synchronization (Niki)
• Remote Call-in (Nadina)
• UI Updates based on Data Changes (Niki)
• Choose next topics
INTROS
REMOTE PROCESS – REQUEST AND REPLY
• REQUEST generated from
Salesforce to external system
• Often kicked-off by user in
the UI
• Remote system provides
real-time REPLY to
Salesforce
• Synchronous process
REMOTE PROCESS – REQUEST AND REPLY
• Salesforce connects to remote
system using SOAP services or
HTTP callout (usings a
synchronous call)
• The response from the remote
system is returned to the Apex
controller
• The controller processes the
response and updates data in
Salesforce as required
REMOTE PROCESS – REQUEST AND REPLY
• If an error occurs, exceptions or error codes are returned to the caller (i.e. 201 =
Success 500 = Failure)
• Salesforce should programmatically handle this error so user knows what to do
• Changes aren’t committed to Salesforce until the caller (Salesforce) receives a
successful response
• Salesforce has a timeout of up to 60 seconds for calls from Apex
REMOTE PROCESS – REQUEST AND REPLY
• Since you can’t control that Salesforce only makes the request once (i.e.: a
user could repeatedly click on a button) the receiver must be idempotent.
• Design for the idempotent receiver by:
• Adding a unique message ID to your web service or REST call so the
receiver can recognize duplicate requests
• Passing a unique record Id as part of your request and perform upsert
instead of insert when your request creates records in the remote system
REMOTE PROCESS – REQUEST AND REPLY
• One-way SSL is enabled by default, but two-way SSL is supported
• Salesforce does not currently support WS-Security
• Where necessary, consider using one-way hashes or digital signatures using
the Apex Crypto Class methods to ensure request integrity
REMOTE PROCESS – REQUEST AND REPLY
• The Request and Reply pattern is primarily used for small volume, real-time
activities.
• Limitations include the small timeout values and the maximum size of the
request or response.
• Timeliness matters since the request is typically invoked from the UI— don’t
keep your users waiting!
• Next steps in my learning: parsing JSON responses, tracking state
management, handling integration keys
REMOTE PROCESS – FIRE AND FORGET
Initiate a process in a remote system (other than Salesforce)
Do not wait for a response
Asynchronous calls
Criteria to define the solution
Asynchronous messages
Is the integration based on a specific event?
Is guaranteed message delivery required? Quality-of-service requirements.
Contract, who specifies it?
Declarative / apex code
Options in Salesforce
Outbound messages (declarative) Apex callouts (code)
SOAP asynchronous SOAP / REST
Contract first - Salesforce defines it Open
Guaranteed delivery It’s recommended that the remote
endpoint implements JMS or MQ / custom
retry mechanism, positive ack
No complex system integrations Use of middleware or composite service
Idempotent, unique id per message Custom implementation required
Workflow driven outbound-messaging
Best
Insert / update event
Indirect solution for deletes
Outbound-messaging and callbacks
Best
Mitigate the impacts of out-of-sequence messaging
Idempotency, get up-to-date information
Retrieving more data
The outbound message provides a unique session id (authentication token)
Visualforce page and async callout
Good
User interface-based scenarios
Visualforce page and apex callouts
Triggers and async callout
Suboptimal
Automation based on record data changes
In the triggers the callouts must be asynchronous (@future - restrictions)
Using apex proxy call (SOAP) / REST
Batch Apex and async callout
Batch remote process execution
Remember the limits: 100 callouts in a transaction (execute)
Security
Callouts
One way SSL enabled, two way SSL supported
WS-Security not supported in proxy classes
Consider using hashes or digital signatures
Protect remote system using firewalls
Outbound messaging
One way SSL enabled, two way SSL supported, Whitelist, firewalls
BATCH DATA SYNCHRONIZATION
• Use for pushing SF data into external system (replication/backup) or refreshing
SF data from external system (customer orders from master ERP)
• data movement in either direction - usually done with ETL tool/Data Loader etc
• Change Data Capture:
• SF is master: SOAP API with query() or getUpdated() methods to find data to send
• Remote is master: ETL Tool uses Bulk API to upsert data in SF; use data
warehouse to aggregate/queue data to be sent
• Timing: schedule during low usage to avoid conflicts, synchronous updates to
be avoided as lots of traffic and locking potentials
BATCH DATA SYNCHRONIZATION
• Control tables: track last successful sync and errors
• Automation queries control table for last successful sync, apply filter to master, update
tables when sync is complete
• Keep tables in ETL tool to access in case SF access errors
• Chain jobs for logical processing, using primary keys between systems for matching
• Locking: child records should be grouped by parent
• if children are updated, M-D parent is updated and could be locked if subsequent
update of children from same parent (also lookups with ‘do not allow deletion’ cause
lock to parent)
• Error Handling:
• read from SF: retry if possible and log errors/send notification
• write to SF: saveResult sends back IDs, success/fail and list of errors per failed record,
parse and retry if possible.
BATCH DATA SYNCHRONIZATION
• Security: need a platform license to connect, use standard encryption to keep
password safe
• Bulk API
• loads records into temp storage
• server pulls batches for processing
• saves results against job
• progress/status viewable in SF
• retries after failure/time out
• allows serial/parallel processing
REMOTE CALL-IN
• Used to connect and authenticate remote(external) systems with Salesforce.
• Considerations
• Type of call Synchronous or Asynchronous
• Message size, small or large ?
• Message format (Soap/Rest/over HTTP)?
REMOTE CALL-IN
Solutions Communication
Type
Protocol Calling Mechanism Security
Considerations
Data Volumes Notes/Comment
s/ Special
COnsiderations
Soap API Synchronous Soap(WSDL) Enterprise WSDL
Partner WSDL
Data Format- XML
Supports SSL & TLS
Remote System must
log in to get session
ID
Cache SOAP API and
reuse the session ID
to maximize
performance.
Login request -
10KB or less.
Create/Update/
Delete
Processing -200
records at a
time
Query Result
Size- Maximum
2000 records
API requests
limits are ona
24 hour period
Session
Timeouts based
on the
organization’s
session timeout
setting
120 limit on
SOQL query
timeout
REMOTE CALL-IN
Solutions Communication
Type
Protocol Calling
Mechanism
Security
Considerations
Data Volumes Notes/Comme
nts/ Special
Consideration
s
Rest API Synchronous Rest Authenticate
using OAuth
2.0(Recommen
d) or Session ID
Data Format-
JSON, XML
If Session must
be used cache
the Rest API to
maximize
performance.
Same as
SOAP API
API requests
limits are ona
24 hour period
Apex Web
Services
Synchronous Rest Custom Apex
Web Service
WSDL
Data Format-
JSON, XML
Same
consideration as
SOAP API
Apex class has
to be exposed
Code needs to
be maintained
REMOTE CALL-IN
Solutions Communication
Type
Protocol Calling
Mechanism
Security
Considerations
Data Volumes Notes/Comment
s/ Special
COnsiderations
Apex Rest
Service
Synchronous Rest Data Format-
JSON, XML,
Custom
Same
consideration as
SOAP API
Apex class has to
be exposed
Code needs to be
maintained
Bulk API Asynchronous Rest Data Format-
JSON, XML,
CSV
Same
consideration as
Rest API
REMOTE CALL-IN
State Management
• Keys are important for tracking
• Salesforce
• In this scenario, the remote system should store either the Salesforce RecordId or
some other unique surrogate key from the record.
• Remote system
• In this scenario, Salesforce must store a reference to the unique identifier in the
remote system. Because the process is synchronous, the key can be provided as
part of the same transaction using external ID fields.
REMOTE CALL-IN
Middleware Considerations
• Time Constraints
• Resource Availability
REMOTE CALL-IN
Complex Integration Scenarios
• SOAP API or REST API
• Provide for simple transactions on objects.
• Integration scenarios, such as aggregation, orchestration, and transformation, can’t be performed in
Salesforce.
• These scenarios will need to be handled by the remote system or middleware, with middleware as the
preferred method.
• Apex Web service or Apex REST service
• Custom Web services can provide for cross-object functionality, custom logic, and more complex transaction
support.
• This solution should be used with care, and you should always consider the suitability of middleware for any
transformation, orchestration, and error handling logic
REMOTE CALL-IN
Reliable Messaging
• SOAP API and REST API are synchronous and don’t provide explicit support for any reliable messaging
protocols.
• Recommend that the remote system implement a reliable messaging system to ensure that error and timeout
scenarios are successfully managed.
REMOTE CALL-IN
Scenario
A printing supplies and services company uses Salesforce as a front-end to create and manage accounts and
opportunities. Opportunities on existing accounts are updated with printing usage statistics from the on-premises Printer
Management System (PMS), which regularly monitors printers on client sites. Upon creation of an opportunity, an
outbound message is sent to the PMS to register the new opportunity. The PMS stores the Salesforce ID (Salesforce is
the opportunity record master).
• The following constraints apply:
• The PMS is capable of participating in a contract-first integration, where Salesforce provides the contract
and the PMS acts as a client (consumer) of the Salesforce service (defined via the Enterprise or Partner
WSDL).
• There should be no custom development in Salesforce.
REMOTE CALL-IN
References
• Which API Do I Use?
UI Updates based on Data Changes
• Used when you need a real time update from external systems (ie payment
made by customer while on the phone, want to see resulting update to
outstanding balance) without needing to update page/lose edits on Case
• Streaming API to respond to push topics
• Visualforce page for display and polling mechanism
• Push Topic with query into SF data
• Javascript library/CometD implementation to maintain connection over long polling
period
• Can subscribe to updates in SF or external systems (oauth connection
recommended)
UI Updates based on Data Changes
• Pro:
• Automates update into open page (pub/sub model)
• Events stored for 24 hrs allowing replay (API 37 and later)
• Con: not guaranteed to receive notifications/order and none generated from
bulk API
• Should use HTTPS protocol, follows user profile/sharing
• Streaming API document provides sample applications:
https://resources.docs.salesforce.com/212/latest/en-
us/sfdc/pdf/api_streaming.pdf
BRAINSTORM
TOPICS
GREAT RESOURCES
• Integration Exam Resource Guide
• Integration Patterns Guide
• Trailmix for Integration Exam here
THANK YOU FOR COMING!
• Join our Trailblazer Community group – don’t forget to fill out your personal profile!
• Post your exam successes into the group
• If you tweet, use #LadiesBeArchitects
• Get Involved –
• Run a study group for us
• Speak at one of our Inspire meet-ups
• Blog / talk about us
Ad

More Related Content

What's hot (20)

Data Management and Migration in Salesforce
Data Management and Migration in SalesforceData Management and Migration in Salesforce
Data Management and Migration in Salesforce
Sunil kumar
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
Alexander Meijers
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
Alexander Meijers
 
More Best Practices With Share Point Solutions
More Best Practices With Share Point SolutionsMore Best Practices With Share Point Solutions
More Best Practices With Share Point Solutions
Alexander Meijers
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
Kashif Imran
 
Share point 2013 and sql server 2012 what to choose
Share point 2013 and sql server 2012   what to chooseShare point 2013 and sql server 2012   what to choose
Share point 2013 and sql server 2012 what to choose
Alexander Meijers
 
Electronic patients records system based on oracle apex
Electronic patients records system based on oracle apexElectronic patients records system based on oracle apex
Electronic patients records system based on oracle apex
Jan Karremans
 
Importing data to salesforce
Importing data to salesforceImporting data to salesforce
Importing data to salesforce
NetStronghold
 
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
 
Develop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANADevelop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANA
Virtual Forge
 
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Dragan Panjkov
 
(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013
Dragan Panjkov
 
Outsourcing your share point hosting the cloud's fine print magnified
Outsourcing your share point hosting   the cloud's fine print magnifiedOutsourcing your share point hosting   the cloud's fine print magnified
Outsourcing your share point hosting the cloud's fine print magnified
SherWeb
 
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays
 
Universal digital - Vedran's slides for mock review board
Universal digital - Vedran's slides for mock review boardUniversal digital - Vedran's slides for mock review board
Universal digital - Vedran's slides for mock review board
gemziebeth
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
SPC Adriatics
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
HBoone
 
Oracle APEX Social Login
Oracle APEX Social LoginOracle APEX Social Login
Oracle APEX Social Login
msewtz
 
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All TogetherKathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
SharePoint Saturday NY
 
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform EventsDreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
andyinthecloud
 
Data Management and Migration in Salesforce
Data Management and Migration in SalesforceData Management and Migration in Salesforce
Data Management and Migration in Salesforce
Sunil kumar
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
Alexander Meijers
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
Alexander Meijers
 
More Best Practices With Share Point Solutions
More Best Practices With Share Point SolutionsMore Best Practices With Share Point Solutions
More Best Practices With Share Point Solutions
Alexander Meijers
 
Securing SharePoint Apps with OAuth
Securing SharePoint Apps with OAuthSecuring SharePoint Apps with OAuth
Securing SharePoint Apps with OAuth
Kashif Imran
 
Share point 2013 and sql server 2012 what to choose
Share point 2013 and sql server 2012   what to chooseShare point 2013 and sql server 2012   what to choose
Share point 2013 and sql server 2012 what to choose
Alexander Meijers
 
Electronic patients records system based on oracle apex
Electronic patients records system based on oracle apexElectronic patients records system based on oracle apex
Electronic patients records system based on oracle apex
Jan Karremans
 
Importing data to salesforce
Importing data to salesforceImporting data to salesforce
Importing data to salesforce
NetStronghold
 
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
 
Develop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANADevelop Stable, High-Performance Applications for SAP HANA
Develop Stable, High-Performance Applications for SAP HANA
Virtual Forge
 
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Kako pravilno konfigurisati SharePoint on-premises za SharePoint Add-ins (Sha...
Dragan Panjkov
 
(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013
Dragan Panjkov
 
Outsourcing your share point hosting the cloud's fine print magnified
Outsourcing your share point hosting   the cloud's fine print magnifiedOutsourcing your share point hosting   the cloud's fine print magnified
Outsourcing your share point hosting the cloud's fine print magnified
SherWeb
 
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays LIVE India - REST the Events - REST APIs for Event-Driven Architectur...
apidays
 
Universal digital - Vedran's slides for mock review board
Universal digital - Vedran's slides for mock review boardUniversal digital - Vedran's slides for mock review board
Universal digital - Vedran's slides for mock review board
gemziebeth
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
SPC Adriatics
 
Oracle Application Express
Oracle Application ExpressOracle Application Express
Oracle Application Express
HBoone
 
Oracle APEX Social Login
Oracle APEX Social LoginOracle APEX Social Login
Oracle APEX Social Login
msewtz
 
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All TogetherKathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
Kathryn Birstein: SharePoint 2010 Business Intelligence-Brining It All Together
SharePoint Saturday NY
 
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform EventsDreamforce 2017 - Advanced Logging Patterns with Platform Events
Dreamforce 2017 - Advanced Logging Patterns with Platform Events
andyinthecloud
 

Similar to Integration study group 2: Patterns (20)

Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern Overview
Dhanik Sahni
 
Sumo Logic QuickStart Webinar July 2016
Sumo Logic QuickStart Webinar July 2016Sumo Logic QuickStart Webinar July 2016
Sumo Logic QuickStart Webinar July 2016
Sumo Logic
 
Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic QuickStart Webinar - Jan 2016Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic
 
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Cyber Group
 
Sumo Logic quickStart Webinar June 2016
Sumo Logic quickStart Webinar June 2016Sumo Logic quickStart Webinar June 2016
Sumo Logic quickStart Webinar June 2016
Sumo Logic
 
Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017
Sumo Logic
 
Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic QuickStart Webinar Sep 2016Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic
 
Sumo Logic Quickstart - Nv 2016
Sumo Logic Quickstart - Nv 2016Sumo Logic Quickstart - Nv 2016
Sumo Logic Quickstart - Nv 2016
Sumo Logic
 
PMIx Updated Overview
PMIx Updated OverviewPMIx Updated Overview
PMIx Updated Overview
Ralph Castain
 
Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic QuickStart Webinar - Dec 2016Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic
 
Adobe Flash Platform for the Enterprise
Adobe Flash Platform for the EnterpriseAdobe Flash Platform for the Enterprise
Adobe Flash Platform for the Enterprise
Mike Slinn
 
Azure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesAzure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challenges
Ivo Andreev
 
Amazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use CasesAmazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use Cases
CloudHesive
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Techcello
 
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Meghan Weinreich
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Techcello
 
Sumo Logic Quick Start - Feb 2016
Sumo Logic Quick Start - Feb 2016Sumo Logic Quick Start - Feb 2016
Sumo Logic Quick Start - Feb 2016
Sumo Logic
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud
Intuit Inc.
 
Spca2014 harbar workflow
Spca2014 harbar workflowSpca2014 harbar workflow
Spca2014 harbar workflow
NCCOMMS
 
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern Overview
Dhanik Sahni
 
Sumo Logic QuickStart Webinar July 2016
Sumo Logic QuickStart Webinar July 2016Sumo Logic QuickStart Webinar July 2016
Sumo Logic QuickStart Webinar July 2016
Sumo Logic
 
Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic QuickStart Webinar - Jan 2016Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic QuickStart Webinar - Jan 2016
Sumo Logic
 
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Choosing the Right Salesforce Integration: The Questions You Should Ask - A C...
Cyber Group
 
Sumo Logic quickStart Webinar June 2016
Sumo Logic quickStart Webinar June 2016Sumo Logic quickStart Webinar June 2016
Sumo Logic quickStart Webinar June 2016
Sumo Logic
 
Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017Sumo Logic Quickstart - Jan 2017
Sumo Logic Quickstart - Jan 2017
Sumo Logic
 
Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic QuickStart Webinar Sep 2016Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic QuickStart Webinar Sep 2016
Sumo Logic
 
Sumo Logic Quickstart - Nv 2016
Sumo Logic Quickstart - Nv 2016Sumo Logic Quickstart - Nv 2016
Sumo Logic Quickstart - Nv 2016
Sumo Logic
 
PMIx Updated Overview
PMIx Updated OverviewPMIx Updated Overview
PMIx Updated Overview
Ralph Castain
 
Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic QuickStart Webinar - Dec 2016Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic QuickStart Webinar - Dec 2016
Sumo Logic
 
Adobe Flash Platform for the Enterprise
Adobe Flash Platform for the EnterpriseAdobe Flash Platform for the Enterprise
Adobe Flash Platform for the Enterprise
Mike Slinn
 
Azure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesAzure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challenges
Ivo Andreev
 
Amazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use CasesAmazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use Cases
CloudHesive
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Techcello
 
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Don't Get Schooled: Performance and Security Tips from a Leading Education Sa...
Meghan Weinreich
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Techcello
 
Sumo Logic Quick Start - Feb 2016
Sumo Logic Quick Start - Feb 2016Sumo Logic Quick Start - Feb 2016
Sumo Logic Quick Start - Feb 2016
Sumo Logic
 
10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud10 Tips for Your Journey to the Public Cloud
10 Tips for Your Journey to the Public Cloud
Intuit Inc.
 
Spca2014 harbar workflow
Spca2014 harbar workflowSpca2014 harbar workflow
Spca2014 harbar workflow
NCCOMMS
 
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays New York 2023 - Why Finance needs Asychronous APIs, Nicholas Goodman,...
apidays
 
Ad

More from gemziebeth (8)

Salesforce Sharing Architecture
Salesforce Sharing ArchitectureSalesforce Sharing Architecture
Salesforce Sharing Architecture
gemziebeth
 
Ladies Be Architects - Salesforce Community Cloud Security
Ladies Be Architects - Salesforce Community Cloud SecurityLadies Be Architects - Salesforce Community Cloud Security
Ladies Be Architects - Salesforce Community Cloud Security
gemziebeth
 
Ladies Be Architects - Apex Basics
Ladies Be Architects - Apex BasicsLadies Be Architects - Apex Basics
Ladies Be Architects - Apex Basics
gemziebeth
 
Equality - Salesforce Certified Technical Architect
Equality - Salesforce Certified Technical ArchitectEquality - Salesforce Certified Technical Architect
Equality - Salesforce Certified Technical Architect
gemziebeth
 
Ladies Be Architects: Integration Study Group: Kick Off Slides
Ladies Be Architects: Integration Study Group: Kick Off SlidesLadies Be Architects: Integration Study Group: Kick Off Slides
Ladies Be Architects: Integration Study Group: Kick Off Slides
gemziebeth
 
Certifiably Insane: The Inspiration Behind 14 Certs in 5 months
Certifiably Insane: The Inspiration Behind 14 Certs in 5 monthsCertifiably Insane: The Inspiration Behind 14 Certs in 5 months
Certifiably Insane: The Inspiration Behind 14 Certs in 5 months
gemziebeth
 
Ladies Be Architects - Study Group II: Data Governance
Ladies Be Architects - Study Group II: Data GovernanceLadies Be Architects - Study Group II: Data Governance
Ladies Be Architects - Study Group II: Data Governance
gemziebeth
 
Ladies Be Architects - Study Group I: Territory Management
Ladies Be Architects - Study Group I: Territory ManagementLadies Be Architects - Study Group I: Territory Management
Ladies Be Architects - Study Group I: Territory Management
gemziebeth
 
Salesforce Sharing Architecture
Salesforce Sharing ArchitectureSalesforce Sharing Architecture
Salesforce Sharing Architecture
gemziebeth
 
Ladies Be Architects - Salesforce Community Cloud Security
Ladies Be Architects - Salesforce Community Cloud SecurityLadies Be Architects - Salesforce Community Cloud Security
Ladies Be Architects - Salesforce Community Cloud Security
gemziebeth
 
Ladies Be Architects - Apex Basics
Ladies Be Architects - Apex BasicsLadies Be Architects - Apex Basics
Ladies Be Architects - Apex Basics
gemziebeth
 
Equality - Salesforce Certified Technical Architect
Equality - Salesforce Certified Technical ArchitectEquality - Salesforce Certified Technical Architect
Equality - Salesforce Certified Technical Architect
gemziebeth
 
Ladies Be Architects: Integration Study Group: Kick Off Slides
Ladies Be Architects: Integration Study Group: Kick Off SlidesLadies Be Architects: Integration Study Group: Kick Off Slides
Ladies Be Architects: Integration Study Group: Kick Off Slides
gemziebeth
 
Certifiably Insane: The Inspiration Behind 14 Certs in 5 months
Certifiably Insane: The Inspiration Behind 14 Certs in 5 monthsCertifiably Insane: The Inspiration Behind 14 Certs in 5 months
Certifiably Insane: The Inspiration Behind 14 Certs in 5 months
gemziebeth
 
Ladies Be Architects - Study Group II: Data Governance
Ladies Be Architects - Study Group II: Data GovernanceLadies Be Architects - Study Group II: Data Governance
Ladies Be Architects - Study Group II: Data Governance
gemziebeth
 
Ladies Be Architects - Study Group I: Territory Management
Ladies Be Architects - Study Group I: Territory ManagementLadies Be Architects - Study Group I: Territory Management
Ladies Be Architects - Study Group I: Territory Management
gemziebeth
 
Ad

Recently uploaded (20)

Operations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdfOperations Management (Dr. Abdulfatah Salem).pdf
Operations Management (Dr. Abdulfatah Salem).pdf
Arab Academy for Science, Technology and Maritime Transport
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdfBiophysics Chapter 3 Methods of Studying Macromolecules.pdf
Biophysics Chapter 3 Methods of Studying Macromolecules.pdf
PKLI-Institute of Nursing and Allied Health Sciences Lahore , Pakistan.
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
Political History of Pala dynasty Pala Rulers NEP.pptx
Political History of Pala dynasty Pala Rulers NEP.pptxPolitical History of Pala dynasty Pala Rulers NEP.pptx
Political History of Pala dynasty Pala Rulers NEP.pptx
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
One Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learningOne Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learning
momer9505
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
SPRING FESTIVITIES - UK AND USA -
SPRING FESTIVITIES - UK AND USA            -SPRING FESTIVITIES - UK AND USA            -
SPRING FESTIVITIES - UK AND USA -
Colégio Santa Teresinha
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 AccountingHow to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
How to Customize Your Financial Reports & Tax Reports With Odoo 17 Accounting
Celine George
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...The ever evoilving world of science /7th class science curiosity /samyans aca...
The ever evoilving world of science /7th class science curiosity /samyans aca...
Sandeep Swamy
 
Presentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem KayaPresentation of the MIPLM subject matter expert Erdem Kaya
Presentation of the MIPLM subject matter expert Erdem Kaya
MIPLM
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Phoenix – A Collaborative Renewal of Children’s and Young People’s Services C...
Library Association of Ireland
 
How to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odooHow to Set warnings for invoicing specific customers in odoo
How to Set warnings for invoicing specific customers in odoo
Celine George
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
One Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learningOne Hot encoding a revolution in Machine learning
One Hot encoding a revolution in Machine learning
momer9505
 
Handling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptxHandling Multiple Choice Responses: Fortune Effiong.pptx
Handling Multiple Choice Responses: Fortune Effiong.pptx
AuthorAIDNationalRes
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 

Integration study group 2: Patterns

  • 1. INTEGRATION PEER-LED STUDY GROUP MEETING 2: APRIL 23, 2018 FACILITATOR: NIKI VANKERK
  • 2. AGENDA • Quick round of intros – name/where you are/planned exam date • Remote Process – Request and Reply (Susannah) • Remote Process – Fire and Forget (Edith) • Batch Data Synchronization (Niki) • Remote Call-in (Nadina) • UI Updates based on Data Changes (Niki) • Choose next topics
  • 4. REMOTE PROCESS – REQUEST AND REPLY • REQUEST generated from Salesforce to external system • Often kicked-off by user in the UI • Remote system provides real-time REPLY to Salesforce • Synchronous process
  • 5. REMOTE PROCESS – REQUEST AND REPLY • Salesforce connects to remote system using SOAP services or HTTP callout (usings a synchronous call) • The response from the remote system is returned to the Apex controller • The controller processes the response and updates data in Salesforce as required
  • 6. REMOTE PROCESS – REQUEST AND REPLY • If an error occurs, exceptions or error codes are returned to the caller (i.e. 201 = Success 500 = Failure) • Salesforce should programmatically handle this error so user knows what to do • Changes aren’t committed to Salesforce until the caller (Salesforce) receives a successful response • Salesforce has a timeout of up to 60 seconds for calls from Apex
  • 7. REMOTE PROCESS – REQUEST AND REPLY • Since you can’t control that Salesforce only makes the request once (i.e.: a user could repeatedly click on a button) the receiver must be idempotent. • Design for the idempotent receiver by: • Adding a unique message ID to your web service or REST call so the receiver can recognize duplicate requests • Passing a unique record Id as part of your request and perform upsert instead of insert when your request creates records in the remote system
  • 8. REMOTE PROCESS – REQUEST AND REPLY • One-way SSL is enabled by default, but two-way SSL is supported • Salesforce does not currently support WS-Security • Where necessary, consider using one-way hashes or digital signatures using the Apex Crypto Class methods to ensure request integrity
  • 9. REMOTE PROCESS – REQUEST AND REPLY • The Request and Reply pattern is primarily used for small volume, real-time activities. • Limitations include the small timeout values and the maximum size of the request or response. • Timeliness matters since the request is typically invoked from the UI— don’t keep your users waiting! • Next steps in my learning: parsing JSON responses, tracking state management, handling integration keys
  • 10. REMOTE PROCESS – FIRE AND FORGET Initiate a process in a remote system (other than Salesforce) Do not wait for a response Asynchronous calls
  • 11. Criteria to define the solution Asynchronous messages Is the integration based on a specific event? Is guaranteed message delivery required? Quality-of-service requirements. Contract, who specifies it? Declarative / apex code
  • 12. Options in Salesforce Outbound messages (declarative) Apex callouts (code) SOAP asynchronous SOAP / REST Contract first - Salesforce defines it Open Guaranteed delivery It’s recommended that the remote endpoint implements JMS or MQ / custom retry mechanism, positive ack No complex system integrations Use of middleware or composite service Idempotent, unique id per message Custom implementation required
  • 13. Workflow driven outbound-messaging Best Insert / update event Indirect solution for deletes
  • 14. Outbound-messaging and callbacks Best Mitigate the impacts of out-of-sequence messaging Idempotency, get up-to-date information Retrieving more data The outbound message provides a unique session id (authentication token)
  • 15. Visualforce page and async callout Good User interface-based scenarios Visualforce page and apex callouts
  • 16. Triggers and async callout Suboptimal Automation based on record data changes In the triggers the callouts must be asynchronous (@future - restrictions) Using apex proxy call (SOAP) / REST
  • 17. Batch Apex and async callout Batch remote process execution Remember the limits: 100 callouts in a transaction (execute)
  • 18. Security Callouts One way SSL enabled, two way SSL supported WS-Security not supported in proxy classes Consider using hashes or digital signatures Protect remote system using firewalls Outbound messaging One way SSL enabled, two way SSL supported, Whitelist, firewalls
  • 19. BATCH DATA SYNCHRONIZATION • Use for pushing SF data into external system (replication/backup) or refreshing SF data from external system (customer orders from master ERP) • data movement in either direction - usually done with ETL tool/Data Loader etc • Change Data Capture: • SF is master: SOAP API with query() or getUpdated() methods to find data to send • Remote is master: ETL Tool uses Bulk API to upsert data in SF; use data warehouse to aggregate/queue data to be sent • Timing: schedule during low usage to avoid conflicts, synchronous updates to be avoided as lots of traffic and locking potentials
  • 20. BATCH DATA SYNCHRONIZATION • Control tables: track last successful sync and errors • Automation queries control table for last successful sync, apply filter to master, update tables when sync is complete • Keep tables in ETL tool to access in case SF access errors • Chain jobs for logical processing, using primary keys between systems for matching • Locking: child records should be grouped by parent • if children are updated, M-D parent is updated and could be locked if subsequent update of children from same parent (also lookups with ‘do not allow deletion’ cause lock to parent) • Error Handling: • read from SF: retry if possible and log errors/send notification • write to SF: saveResult sends back IDs, success/fail and list of errors per failed record, parse and retry if possible.
  • 21. BATCH DATA SYNCHRONIZATION • Security: need a platform license to connect, use standard encryption to keep password safe • Bulk API • loads records into temp storage • server pulls batches for processing • saves results against job • progress/status viewable in SF • retries after failure/time out • allows serial/parallel processing
  • 22. REMOTE CALL-IN • Used to connect and authenticate remote(external) systems with Salesforce. • Considerations • Type of call Synchronous or Asynchronous • Message size, small or large ? • Message format (Soap/Rest/over HTTP)?
  • 23. REMOTE CALL-IN Solutions Communication Type Protocol Calling Mechanism Security Considerations Data Volumes Notes/Comment s/ Special COnsiderations Soap API Synchronous Soap(WSDL) Enterprise WSDL Partner WSDL Data Format- XML Supports SSL & TLS Remote System must log in to get session ID Cache SOAP API and reuse the session ID to maximize performance. Login request - 10KB or less. Create/Update/ Delete Processing -200 records at a time Query Result Size- Maximum 2000 records API requests limits are ona 24 hour period Session Timeouts based on the organization’s session timeout setting 120 limit on SOQL query timeout
  • 24. REMOTE CALL-IN Solutions Communication Type Protocol Calling Mechanism Security Considerations Data Volumes Notes/Comme nts/ Special Consideration s Rest API Synchronous Rest Authenticate using OAuth 2.0(Recommen d) or Session ID Data Format- JSON, XML If Session must be used cache the Rest API to maximize performance. Same as SOAP API API requests limits are ona 24 hour period Apex Web Services Synchronous Rest Custom Apex Web Service WSDL Data Format- JSON, XML Same consideration as SOAP API Apex class has to be exposed Code needs to be maintained
  • 25. REMOTE CALL-IN Solutions Communication Type Protocol Calling Mechanism Security Considerations Data Volumes Notes/Comment s/ Special COnsiderations Apex Rest Service Synchronous Rest Data Format- JSON, XML, Custom Same consideration as SOAP API Apex class has to be exposed Code needs to be maintained Bulk API Asynchronous Rest Data Format- JSON, XML, CSV Same consideration as Rest API
  • 26. REMOTE CALL-IN State Management • Keys are important for tracking • Salesforce • In this scenario, the remote system should store either the Salesforce RecordId or some other unique surrogate key from the record. • Remote system • In this scenario, Salesforce must store a reference to the unique identifier in the remote system. Because the process is synchronous, the key can be provided as part of the same transaction using external ID fields.
  • 27. REMOTE CALL-IN Middleware Considerations • Time Constraints • Resource Availability
  • 28. REMOTE CALL-IN Complex Integration Scenarios • SOAP API or REST API • Provide for simple transactions on objects. • Integration scenarios, such as aggregation, orchestration, and transformation, can’t be performed in Salesforce. • These scenarios will need to be handled by the remote system or middleware, with middleware as the preferred method. • Apex Web service or Apex REST service • Custom Web services can provide for cross-object functionality, custom logic, and more complex transaction support. • This solution should be used with care, and you should always consider the suitability of middleware for any transformation, orchestration, and error handling logic
  • 29. REMOTE CALL-IN Reliable Messaging • SOAP API and REST API are synchronous and don’t provide explicit support for any reliable messaging protocols. • Recommend that the remote system implement a reliable messaging system to ensure that error and timeout scenarios are successfully managed.
  • 30. REMOTE CALL-IN Scenario A printing supplies and services company uses Salesforce as a front-end to create and manage accounts and opportunities. Opportunities on existing accounts are updated with printing usage statistics from the on-premises Printer Management System (PMS), which regularly monitors printers on client sites. Upon creation of an opportunity, an outbound message is sent to the PMS to register the new opportunity. The PMS stores the Salesforce ID (Salesforce is the opportunity record master). • The following constraints apply: • The PMS is capable of participating in a contract-first integration, where Salesforce provides the contract and the PMS acts as a client (consumer) of the Salesforce service (defined via the Enterprise or Partner WSDL). • There should be no custom development in Salesforce.
  • 32. UI Updates based on Data Changes • Used when you need a real time update from external systems (ie payment made by customer while on the phone, want to see resulting update to outstanding balance) without needing to update page/lose edits on Case • Streaming API to respond to push topics • Visualforce page for display and polling mechanism • Push Topic with query into SF data • Javascript library/CometD implementation to maintain connection over long polling period • Can subscribe to updates in SF or external systems (oauth connection recommended)
  • 33. UI Updates based on Data Changes • Pro: • Automates update into open page (pub/sub model) • Events stored for 24 hrs allowing replay (API 37 and later) • Con: not guaranteed to receive notifications/order and none generated from bulk API • Should use HTTPS protocol, follows user profile/sharing • Streaming API document provides sample applications: https://resources.docs.salesforce.com/212/latest/en- us/sfdc/pdf/api_streaming.pdf
  • 35. GREAT RESOURCES • Integration Exam Resource Guide • Integration Patterns Guide • Trailmix for Integration Exam here
  • 36. THANK YOU FOR COMING! • Join our Trailblazer Community group – don’t forget to fill out your personal profile! • Post your exam successes into the group • If you tweet, use #LadiesBeArchitects • Get Involved – • Run a study group for us • Speak at one of our Inspire meet-ups • Blog / talk about us