Interne Artikelen

Salesforce uitbreiden met Outsystems

Hoe de integratieverbinding met Salesforce tot stand te brengen

Nu Salesforce zich ontwikkelt tot 's werelds toonaangevende platform voor klantrelatiebeheer (CRM), is het moment aangebroken om onze op maat gemaakte Outsystems-applicaties te integreren. Zo kunnen we de functionaliteiten van Salesforce uitbreiden met nieuwe, dynamische applicaties die meer flexibiliteit en hulpmiddelen bieden om gebruikers dagelijks te ondersteunen. Dit biedt de mogelijkheid om Salesforce te gebruiken als masterdatabase en tegelijkertijd de volledige mogelijkheden van Outsystems-applicaties te benutten.

In dit artikel zullen we verschillende onderwerpen behandelen, zoals:

  • Integratie met Salesforce
  • Tabel- en veldselectie van Salesforce
  • Maak een verbinding voor de integratie
  • Massale synchronisatie
  • Wachtrij synchronisatie

 

Integratie met Salesforce

Om de integratieverbinding met Salesforce tot stand te brengen, moet u toegang krijgen tot Integratie Bouwer en maak verbinding met de Dev-omgeving met uw OutSystems-gebruiker.

Klik vervolgens op de Integratiepagina op 'Nieuw'. Integratie maken en selecteer Salesforce. Aangezien we zich in de ontwikkelingsfase bevinden en we de productiegegevens van Salesforce niet willen beïnvloeden, raden we aan om naast de productieomgeving minimaal één testomgeving te hebben.

Maak verbinding met Salesforce via Sandbox en dit zal u doorverwijzen naar de Salesforce-inlogpagina, zodat u kunt inloggen met de Serviceaccount die gegevens uit deze omgeving zal ophalen en schrijven.

Tabel- en veldselectie uit Salesforce

In voortzetting van het proces dat is gestart bij het eerste onderwerp, gaan we nu de Objects selecteren die we met Outsystems willen synchroniseren.

Voor een beter begrip kunt u hier de tabellen selecteren en in het gedeelte Velden heeft u toegang tot de gebruikelijke naamgeving van het veld en de interne naamgeving in Salesforce.

Ga door met de wizard, controleer alles en implementeer de integratie.

Maak een verbinding voor de integratie

Om een Verbinding voor de Integratie te maken, hebt u het volgende nodig:

  • Ga naar de Integratiemanagerhttps:///OSIntegrationManager/)
  • Op de pagina Verbindingen klik je op Verbinding maken.
  • Nadat u Salesforce-verbinding hebt geselecteerd, kiest u of het een Productie- of Sandbox-omgeving is en klikt u Autoriseer Integratiemanager om doorgestuurd te worden naar de Salesforce-inlogpagina.
  • Nadat u de verbinding hebt ingesteld, gaat u terug naar Integration Manager, klikt u op uw integratie en selecteert u de eerder gemaakte verbinding.

Massale Synchronisatie

Terugkerend naar Outsystems Service Studio zul je merken dat er een service-module is aangemaakt met de “_IS” suffix met alle services die door de Integratie worden geleverd: Count[Tabel], Get[Tabel], Search[Tabel], Sync[Tabel]PickLists, etc.

Om een data-uitrol naar uw eigen tabellen uit te voeren, zijn er een paar stappen te volgen:

  • Maak Actie om PickLists te synchroniseren.
  • Creëer de logica om gegevens op te halen en te normaliseren – maak een Server Action om [Tabel]-records uit Salesforce op te halen in batches en met de filters die u wilt. Als u bijvoorbeeld een uitrol per land wilt doen, wilt u dat het land dat eerder is geselecteerd, binnenkomt als invoerparameter voor de filters.
  • Integreer de eerste Logic op een hoger niveau van Logic, zodat je de actie van het ophalen van gegevens kunt hergebruiken en vervolgens de cyclus van het creëren van gegevens in je database kunt introduceren.
  • Voer de eerste twee stappen uit voor zoveel tabellen als je wilt synchroniseren.
  • Creëer het hogere niveau van Logica en verwijs naar de SyncPickLists Actie en de [Tabel]Sync Acties.
  • Maak een Timer zonder Planning om alleen te draaien wanneer een nieuwe implementatie moet worden uitgevoerd en gebruik de Actie die in het bovenstaande punt is gemaakt.
  • Pas Timer-best practices toe.
  • Stel de juiste site-eigenschappen in, bijvoorbeeld het land.
  • Start de timer.

Wachtrij synchronisatie

Om een bijna realtime synchronisatie te hebben en de server niet te overbelasten met gelijktijdige schrijfacties naar de database, moeten we een Queue Synchronization van Salesforce naar Outsystems implementeren. Om dit te doen, moeten we de volgende stappen volgen:

  • Maak een Queue Entiteit met de volgende structuur (Id, SalesforceRecordId, SalesforceTableId, OperationTypeId (Aanmaken/Bijwerken/Verwijderen))
  • Maak een POST REST API die door Salesforce wordt aangeroepen bij het aanmaken of wijzigen van elk record.
  • Hergebruik de logica die is gemaakt voor Massieve Synchronisatie, maar in plaats van een batch records op te halen, haal je één enkel record op met SalesforceRecordId.
  • Creëer de Actie om de wachtrij te verwerken, waar u de SalesforceRecordId, SalesforceTableId en OperationTypeId wilt ontvangen. De SalesforceTableId zal worden gebruikt om de actie te kiezen vanuit het punt hierboven die u wilt aanroepen. Na het ophalen met de SalesforceRecordId om het record op te halen, gebruikt u het OperationType om te kiezen welke actie u wilt uitvoeren (Aanmaken, Bijwerken of Verwijderen).
  • Maak een timer die elke paar minuten draait met een actie om de Queue Entity per batch te lezen en stuur de recordinformatie naar de actie die in het punt hierboven is genoemd.
  • Pas Timer-best practices toe.
  • Activeer Timer.

Zowel voor Queue Synchronisation als Massive Synchronisation is het erg belangrijk om een goed gedefinieerd logsysteem op te bouwen om eenvoudig te kunnen monitoren op mogelijke problemen die zich kunnen voordoen. Hiervoor raden we aan om:

  • Maak een specifieke logtafel.
  • Definieer alle uitzonderingen die in uw code kunnen optreden (bijv. Veld verplicht op OS maar niet verplicht op Salesforce).
  • Structureer het logbericht correct (ModuleName, ActionName, Message van de Raise Exception, JSON van het Record).
  • Maak een dagelijkse e-mailprocedure om de bevindingen van de dag te melden.
  • Maak Log Scherm.

Nu u een kopie van uw masterdata in Outsystems heeft, kunt u de Outsystems mogelijkheden benutten om betere en performantere applicaties te ontwikkelen, met behoud van de integriteit van de masterdata op Salesforce.

 

Gonçalo Condeça

OutSystems Technisch Leider

Teamleider bij AdvanceWorks, 6 jaar Outsystems-ervaring, gericht op het benutten van Outsystems-mogelijkheden bij het leveren van hoogwaardige oplossingen aan klanten.

Interne Artikelen

Gerelateerde artikelen