Download as pdf or txt
Download as pdf or txt
You are on page 1of 285

Associate Integration Developer

Dell, EMC, Dell EMC, Dell Boomi, AtomSphere and other trademarks are trademarks of Dell Inc. or its subsidiaries. Other trademarks may be
trademarks of their respective owners.
Associate Integration Developer

Course Objectives and Overview


Objectives
By the end of this course, you should be able to:

Develop integrations using partially pre-


configured processes and resources

Test and troubleshoot integrations

Deploy integrations to the production


environment

Complete administrative tasks


Course Overview

01 Scenario/Recommended Practices 06 Administration Training for Developers


02 Configuring Connectors 07 Development Life Cycle
03 Configuring Maps 08 Properties
04 Configuring the Decision shape 09 Document Flow (Boomi Think)
05 SaaS Training Integration Scenario
HOW OUR CLASS WORKS

Lecture Activity
Associate Integration Developer

Prospect Tracking Scenario


Business Use Case: Prospect Tracking
Sales Team Operations Team
Prospect

Prospect
Info

Info
Developer
Integration Goal: Prospect Tracking
• Query the Salesforce Account object for modified Prospect records
• Insert main account information into the MySQL (orgtrack) database
• Add lookup logic to query the CUSTOMER table for existing records
• Route out existing records from the Process flow

DB
XML

Prospect?
XML
Application Connectors
HANDS ON ACTIVITY

Set up Folders

Download process
endpoints from the
Process Library
Configuring Connectors

Reviewing Start Shape Configurations


Objective
By the end of this lesson you should be able to:

Recall four start shape configuration options


Reviewing Start Shape Types

Types
Configuring Connectors

Configuring an Application Connector


Objectives
By the end of this lesson you should be able:

Configure an application connector.

Associate the training scenario with real-life scenarios.

Summarize Salesforce connector options.


Application Connectors

Provide connectivity protocols to specific


software applications
• Perform inbound or outbound operations
against a third-party system
• Data is formatted accordingly to connector
supported profiles like XML or JSON
Application Connectors

• Operations for application connectors can be


configured with filters to limit the
results returned.
• When you build endpoints into an
integration, your first choice should be to use
an application connector.
Using the Connector Shape

Actions include Get, Send or (with some Connectors) Listen


Using the Connector Shape

Can be used at the start of a process or throughout the process flow


Using the Connector Shape
• Actions include Get, Send
or (with some Connectors)
Listen GET
• Can be used at the start of or
a process or throughout the LISTEN
process flow
• When used as a start
shape, connector action
restricted to Get or Listen
Configuring an Application Connector Shape
The main shape that contains all information needed to connect to a single
third party system or application
Combination of two components:

1. Connection
Configuring an Application Connector Shape
The main shape that contains all information needed to connect to a single
third party system or application
Combination of two components:

2. Operation
Configuring a Connection Component
• URL: Production or Sandbox URL path to the Salesforce API
• User: Email for integration user with appropriate access rights
• Password: User password concatenated with the Salesforce Security Token
HANDS ON ACTIVITY
View the Salesforce
Read Connector
Configuring Connectors

Configuring a Connector Operation


Objectives
By the end of this lesson you should be able to

Test Salesforce Connectivity.

Configure Salesforce operation (query).


Configuring an Operation Component
Use the Salesforce connector components to ensure successful connectivity to your account

Click the
Import Button
Configuring an Operation Component
Use the Salesforce connector components to ensure successful connectivity to your account

Select the Salesforce


connection
Configuring an Operation Component
Use the Salesforce connector components to ensure successful connectivity to your account

Salesforce
authentication
Configuring an Operation Component
Use the Salesforce connector components to ensure successful connectivity to your account

Select objects to
integrate
Configuring an Operation Component

• Action: Query returns 0 to


many object records from a
single API request based on
input filters
• Response Profile: Identifies
full standard and custom
response field set along with
Salesforce data formats
Configuring an Operation Component
• Query Limit: Specifies max number
of records to return (Default -1 is
all results)
• Show SOQL: Displays read-only pop-
up of current fields and filters in query
language format
• Objects: Set different field rules per
highlighted object
• Fields: Select/Deselect specific
fields or the entire field set
• Filters: Narrows down the
response set
• Sorts: Orders results in an
ascending or descending order
HANDS ON ACTIVITY
Create a Salesforce
Query Operation
Configuring Connectors

Setting Parameters
Objectives
By the end of this lesson you should be able to:

Configure runtime inputs.


Parameters
Allow for dynamic configuration

Parameter values can represent data


from:
• document field
• the current system date/time
• a static value
• the result of a connector call or
database query
• variety of other values
Setting Parameters
Common interface for configuring runtime inputs

Reference
elements from
document(s)
Setting Parameters
Common interface for configuring runtime inputs

Reference
system date
Setting Parameters

Common interface for configuring runtime inputs

Define lookup
Setting Parameters
Common interface for configuring runtime inputs

Dynamic
messaging
and
notifications
Setting Parameters
HANDS ON ACTIVITY
Set the Salesforce
Runtime Parameter

Test the process


Configuring Connectors

Configuring a Technology Connector


Objectives
By the end of this lesson you should be able to:

Review connector types.

Summarize database connector options.

Test database connectivity.

Summarize custom database connection options.


Application vs Technology Connector

Targeted at one specific application


Application vs Technology Connector

Implements a specific protocol


Database Connector

• The Database connector lets you connect to any database supporting a


JDBC driver.
• The goal for this section is to read/write records from an organization
tracking system.
• MySQL is the database that will be used for this training.
Configuring a Technology Connector Shape

• The main shape containing all information needed to connect to a single


technology endpoint (here a Database instance)
• Combination of two components:
1) Connection – Database type, location, and user log-in
2) Operation – Read or Write: Statement and record grouping definition
Database Connection Configuration

• Database URL: Read only field for JDBC URL


populated as other values are entered
• Driver Type: Dropdown for DB type definition
• User Name: Database user name
• Password: Database user password
• Host: The name or IP address of the database
(DB) server
• Port: The port on which to connect to the DB
server: Ex. MSSQL – 1433; MySQL – 3306
• Database Name: The name of your database
• Additional Options: Items to add at the end of
the DB URL; mostly name/value pairs
• Class Name: Read-only java class name of the
JDBC driver class
Custom Database Connection

Class Name
Java class name of the
JDBC driver

Connection URL
JDBC URL syntax
Database Connectivity Testing
Use the “Test Connection” button to ensure successful connectivity to your
database instance

1
2
HANDS ON ACTIVITY
View the database
Connection
Configuring Connectors

Configuring Operations
Objectives
By the end of this lesson, you should be able to:

Create a database write Operation and Profile.

Test connectivity (using the Operation component).


Configuring an Operation
Use the database connector components and the Atom to ensure successful
connectivity to your database instance

Enable and Click the import


Wizard Button
Configuring an Operation
Use the database connector components and the Atom to ensure successful
connectivity to your database instance

Select a Cloud or Atom


Configuring an Operation
Use the database connector components and the Atom to ensure successful
connectivity to your database instance

Authenticating the
database log-in
Configuring an Operation
Use the database connector components and the Atom to ensure successful
connectivity to your database instance

Available tables to
integrate
Configuring a Operation
Write Profile
• Statically or dynamically define Write statements
against a table or stored procedure inputs
• Use the Import Wizard to dynamically poll a table
and auto-list the columns with field types

Commit Options
• Option: Commit statement(s) based on number of
rows or statement sets defined in Profile
• Batch Count: Specify the commit interval or leave
as 0 to indicate no limit
• JDBC Batching: Sets the behavior for whether
batches of SQL statements are executed at the
JDBC operation level
HANDS ON ACTIVITY
Create a Database
Write Operation

Create a Database
Write Profile
Configuring Connectors

Creating a profile
Objective
By the end of this lesson you should be able to:

Identify different ways to create a profile.


What is a Profile?

• Profiles describe the layout or format of different


documents read into or sent out of AtomSphere
• Formats: Database, EDI, Flat File, XML, JSON
• Structure consists of data elements of a specific
document type
• Entire profiles are used in the Map component
• Individual profile elements are used in many shapes
Creating Profiles

Profiles are created in several ways:


• Manually

• Upload an example or schema file

• Import in the Connector Operation


Working in Test Mode

Test Mode
Objective
At the end of this lesson you will be able to

Navigate test mode


Test Mode

Remember test mode:


▪ Allows process testing within the within the Build tab without deploying
▪ Provides important and immediate feedback on your process
▪ Is accessible via the blue Test button at the top right of the process
canvas
Test Mode

Execution status of each shape

Executed
process
flow

Documents
List

Test
Results
Test Results
▪ Click on a specific shape to view test result information
▪ Each shape will display up to 3 tabs – Logs, Shape Source Data, Connection Data
Multi-browser tabs for Build and Test Mode

When troubleshooting or debugging a process, consider using multiple browser tabs


or windows
▪ Open your process in the build tab to view your configuration
▪ Run your process in test mode in a separate tab to view execution logs and data
Process log, retry, and exit test mode

• View or download the


process log
• Retry the previous test
• Run a new test
• Exit test mode
Working in Test Mode

Logs
Objective
At the end of this lesson you will be able to

View and understand test mode logs


Logs

▪ Logs tab provides a finer level of detail, not found in the View
logs
▪ Display log data for a document processed by a particular
shape

Test mode logs


and data files
are temporary
Working in Test Mode

Shape Source Data Tab


Objective
At the end of this lesson you will be able to

Review the information found within the shape


source data tab
Shape Source Data Tab
The Shape Source Data tab provides information about the document
flowing into the shape currently selected

You can click on icon under View Source to view or download the source
document
Working in Test Mode

Connection Data Tab


Objectives
By the end of this lesson you will be able to

Locate the information contained in the


connection data tab
Connection Data Tab
▪ The Connection Data tab is available for connector shapes
▪ It allows viewing of inbound/outbound documents
Configuring Maps

What is a Map?
Objective
By the end of this lesson you will

Review the map shape and components


What is a Map Shape?
▪ The component transforms data from one structured format to another
What is a Map Shape?
▪ The component transforms data from one structured format to another
▪ The Map shape can be dragged and dropped onto the Process Canvas
What is a Map Shape?
▪ The component transforms data from one structured format to another
▪ The Map shape can be dragged and dropped onto the Process Canvas
▪ The Map shape references a specific Map component
Map Source and Destination Fields
▪ Each Map component has a Source and Destination Profile

Input Output
Map Source and Destination Fields
▪ Each Map component has a Source and Destination Profile
▪ Source fields can be mapped to one or more destination fields
Map Source and Destination Fields
▪ Each Map component has a Source and Destination Profile
▪ Source fields can be mapped to one or more destination fields
▪ Destination fields can be assigned a Default value
Map Functions

Maps can contain functions to apply transformations and other logic to


source data before it is mapped to a destination
There are two function types:
▪ Standard – perform a single task
▪ User-defined – multiple function steps, sophisticated transformations
HANDS ON ACTIVITY

Configure the Map


Configuring Maps

User-Defined Map Function


Objective
By the end of this lesson you will be able to

Create a user-defined map function


User-Defined Map Functions
▪ Applies multiple steps of conversion logic to source data before mapping to a destination
▪ Can save as a component and reuse in any map that requires the same conversion logic
HANDS ON ACTIVITY
User Defined Map
Function
Updating Query Operations
Objective
By the end of this lesson you will be able to

Add additional fields and remap, which is


updating a query operation
Updating the Query Operation

• Incomplete source data,


missing fields
• Two options:
• Add a connector call map function to
query the source system for the
missing data
• Update the original query operation to
include the missing fields/data
Updating the Query Operation

It is recommended to append any additional objects to the profile


by re-importing the profile from the connector operation
HANDS ON ACTIVITY
Updating the query for
missing data
Configuring the Decision Shape

What is the Decision Shape?


Objectives
In this lesson we will

Learn what the decision shape is and how it


works
What is a Decision Shape?

• Compares two values and routes a . . . . TRUE


document down a TRUE or FALSE path
based on the outcome of the comparison
OR

• All TRUE documents are processed to


completion BEFORE the FALSE . . . . FALSE
documents are processed
What is a Decision Shape?

The Compare Type can be


changed to manipulate the
outcome
Common Use of the Decision Shape

Check for the existence of a record in the


destination system to determine whether
to create or update it.

NOTE: Null values from a profile element or connector call are treated as empty
strings (‘ ’) for comparison. To compare against a null value in the inbound data, the
second value field’s static value setting in the decision shape should be left empty.
HANDS ON ACTIVITY
Add a Decision shape
to query the database
Integration Scenario Wrap Up

Prospect Tracking
How You Did It
Scenario:
Daily Customer Wins
Objective
In this lesson we will

Expand on the training scenario that will cover


how to manipulate data and update endpoints
of SF and DB.
Business Use Case
• Checks are made against the tracking database for recently closed opportunities
• The Salesforce record is updated to reflect new contract Service Level Agreement (from
current value to ‘Gold’)

• A team member is then notified via email


• The tracking DB is updated to reflect the team member was notified

Modified Notification
Recently? Sent
Closed
Won?
SaaS Training Integration Scenario
Integration Goal (Process 2 – Daily Customer Wins):
• Query the Organization Tracking System for modified Customer records
• Update Salesforce Account records to SLA ‘Gold’
• Email monitoring user dynamic content about new customer records
• Update Database System showing emails have been sent

XML
DB
Start the process:
Configure an Operation
Objective
By the end of this lesson you will be able to

Configure a database operation


Overview

Objective:
‘Daily Customer Wins’ Process to query the database to see if
there are any updated records

How:
Define the start shape as a database connector and configure
the database operation
Configure a Query Operation (DB)
Query Profile
• Statically or dynamically define a
SELECT statement against table(s) or a
stored procedure output
• Obtain list of available tables and auto-
list the columns with field types
Grouping Options
• Link Element: The common field in a
record group to batch document(s)
• Batch Count: Define an interval for the
grouping behavior
• Max Rows: The maximum number of
rows to return in a single read request
HANDS ON ACTIVITY
Create a database
read process

Set a database
runtime parameter
Branch 1:
Salesforce Connector
Objectives
By the end of this lesson you should be able to

Understand the Salesforce connecter

Configure the operation


Salesforce Write Actions
Create: Creates new records in a defined object
• Automatically creates an internal ID field for each document

Update: Overwrites existing records in a defined object


• Supply the internal ‘ID’ field in the request to update the existing
object record
Upsert: Creates new or updates existing records in a
defined object
• Identify a designated internal ‘ID’ field in the request for
Salesforce to determine the correct action

Delete: Removes existing records in a defined object


• Supply the internal 'ID' field in the request to delete the existing
object record
Configure an Operation (Salesforce)
• Request Profile: Standard and custom request field set along with data formats
• Return Application Error Responses: Returns XML responses indicating success or
failure of the Operation
• Use Bulk API: Applies Bulk API to execute send (Up to 10,000 records)
• Batch Count: Specify the number of documents to send in 1 request
HANDS ON ACTIVITY
Create a Salesforce
update action
Branch 1: Using the Connector Call
Objectives
By the end of this lesson you should be able to

Use the connector call

Configure the operation


Connector Call Usage

• Identify and configure all object query operations


before building your full integration solution
• Add Connector Call in logic shapes or map
functions to perform document-level queries on-
the-fly (NOTE: this has negative performance
implications and should not be a first resort)
• Enable caching in map functions to limit API
requests for common input records
• If multiple mappings or logic require the same
Connector Call, consider using Dynamic Document
Properties or Document Caching at the front-end of
the Process
Configure a Map: Connector Call (Salesforce)
HANDS ON ACTIVITY
Create a Salesforce
update map
Branch 2:
Configure a Mail Connector
What is a Mail Connector?

• Can read email from a POP server


or send email to an SMTP server
• Consists of two reusable
components: a mail connection
and operation
Mail Connection Configuration
• Host: IP Address or the Domain Name of the Mail
Server
• Port: The command port the server will listen for
incoming connections from a mail client
• Use TLS?: Encrypts all data with a digital security
certificate
• Use SSL?: Encrypts all data exchanged between
the server with a certificate
• User/Password Auth?: Check to provide login
credentials to authorize the user with the mail
server.
• User: User Name of the account on the mail
server
• Password: Password of the account on the mail
server
Mail Operation Configuration (Write/Send)

Note: All Mail options listed here can be static or dynamically defined in a Set Properties Shape positioned
before the Mail connector.
HANDS ON ACTIVITY

Create a mail operation


Branch 2:
Using the Message Shape
What is a Message shape?

• Creates a free-flow text message


from dynamic or static inputs
• Converts documents passing
through it into new data
• Paired with a Mail connector to create
advanced communications
• Can produce a new document sent
through the process
HANDS ON ACTIVITY
Configure a message
shape

Format output to email


Branch 3:
Updating the Database with a Program Command
Shape
What is a Program Command Shape?

• Performs database and system-level commands in


the process flow
• Types of commands
• SQL statements
• Stored procedures
• System commands
• Commands can use dynamic runtime parameters
• SQL statements: ?
• Stored procedures or system commands: {#}
• Does not return results into process flow
• Source documents are passed unchanged to the
next shape
Update Database with Program
Command Shape
Email Notification Sent Reflect Change in DB

Change ‘NOTIFY_STATUS’ to ‘1’


HANDS ON ACTIVITY

Add a SQL statement in


a program command
shape
Integration Scenario Wrap-Up:
Daily Customer Wins
How You Did It
How You Did It (Cont’d)
Administration Training for Developers

Overview
Objective
By the end of this lesson you should have an

Overview of the administration tasks used by


developers.
Steps to Run a Process

Build Packaged Deploy Manage


Components Components
Design and build This unique
integrations using a Deploy packaged architecture enables
visual tool which Package the
components to centralized
includes access to a component from the
environments from the management of all
library of prebuilt Build page or
Deploy menu integrations from
connectors. Deploy menu
the platform
Administration Goals

Prospect Tracking
• Automate the process to query newly modified accounts
• Package the Components and Deploy to an environment
• Manage live transactions
• Develop and release Process updates for advanced logging

Build Packaged Deploy Manage


Components Components
Administration Scenario
• Sales team enters prospect information into salesforce.com.
• Operations team wants to query Salesforce Accounts (Prospects) and
send responses to an Organization Tracking System for lead
management.
• Support wants to monitor the integration to ensure strategic IT success.
Summarize Process Deployment

Deploy a Process
Objectives
By the end of this lesson you should be to

Summarize process deployment


Test Mode vs. Production

Build Deploy

Test Mode (Build Tab) Deployed Processes support


supports unit testing of a limited strategic monitoring and unlimited
set of documents data
Connectors only support retrieval of: • External Alerting (Email & RSS)
• 100 - Max Document Count • Execution and Document History
searching
• 10 MB - Total Data Size
Environments
They are accessible via
Manage→Atom Management

There is no limit to the number


of Environments

An Atom can only be assigned


to one Environment

An Environment can contain


more than one Atom
Process Deployment
HANDS ON ACTIVITY
Check the Production
and Test Environments

Deploy the process


Configure a Process Schedule

Schedule a Process
Deploy vs Execute
• Deploying a process does not execute the process into an
active production state
• Once a Process is Deployed, it needs to be executed either
by:
• Manual execution or
• Scheduled execution
Deployed Executed
(Manual or Schedule)
Process Automation
One Minute Intervals
Process Automation
Internal Scheduling External Scheduling Event Driven Integration
• Schedule indicates when • Request process • Process executions are
process is set to run execution via triggered by external
AtomSphere API from events
• Create schedules to customer-preferred
intervals of 1-minute external scheduler • Supports event-driven
integration
• Create advanced
schedules to execute on • Choice of:
specific minutes
• Web Service Publishing
• Retry schedule indicates • Subscribing to event
when failed documents queues.
are retried
INSTRUCTOR TO DEMONSTRATE

Schedule the Process


License Management
Objectives
By the end of this lesson you should be able to

Explain connection licensing.


License Management
• Under Setup > Licensing
• Identifies connector deployments across processes and atoms
• Limits process deployments per account
Connection Licensing
• Prospect Tracking has a Salesforce and Database Connector
• An AtomSphere user deploys the process to 2 different atoms:

Connection
Licenses
Connection Licensing: Best Practices

• Avoid using duplicate Connection components in a single process


• Create a shared connections folder to house common integration components
• Re-use common components throughout all integration projects
• Work with a Dell Boomi Representative to define strategic license count
INSTRUCTOR TO DEMONSTRATE

License Management
Process Reporting
Objective
By the end of this lesson you should be able to

Navigate the process reporting page.


Process Reporting Key Features
• Defaults to executions launched in past hour, across all atoms
• Set search filters and refresh search
• Highlight execution records to display document activity
• Manually execute deployed processes in specific atoms
Process Execution Statistics
• Click on filter links to sort by Execution Status
• Page through sets of 25 execution records
• View high-level Process log
• Double-click to view details of the first Error Message returned
Process Execution Actions

View Process
• Open the Process on the Build Tab

View Deployment Components


• View and open component versions on
the Build Tab

View Process State


• View real-time information about step
execution and duration

View Extended Information


• View IDs and Download Execution
Artifacts (Admin Only)
Document Statistics
Document Statistics
HANDS ON ACTIVITY

Track executions in
process reporting

Review the View Detail


Exception Shape
Objectives
By the end of this lesson you should be able to

Explain the exception shape.


What is the Exception Shape?

• Terminates document(s) in a Process flow


• If stop a single document is checked, it flags the Process
Execution as ‘Failed’

• Can generate process or document exception


• Logs custom error(s) in the Process and Document logs
User Alert Example: PROCESS.EXECUTION
HANDS ON ACTIVITY
Configure Exception
Shape
Alerts
Objectives
By the end of this lesson you should be able to

Recognize User Alerts


AtomSphere User Alerts

Every 5 minutes
AtomSphere Email Alerts
Revision History
Objectives
By the end of this lesson you should be able to

Locate and review revision history


Revision History
• Available feature for all components
• Each component has an independent revision history
• View/Edit versions of a component
• Overwrite invalid revisions (Undo)

Located below
the Process
Canvas
Deploy Latest Revision of Process
HANDS ON ACTIVITY
Review Revision
History
HANDS ON ACTIVITY

View Alerts
Notify Shape
Objective
By the end of this lesson you will be able to

Explain the notify shape


Notify Shape

• Creates custom log entries that can be incorporated into


alert messaging
• Can create one unique log per document
• Does not affect document data
Notify Shape
If Selected:
• Enable Events: Makes the
notification visible in the account
event log
• Enable User Log: Enables User
Logs writes to the local atom
• Once per Execution: All
notifications are summarized into a
single entry
User Alert Example - USER.NOTIFICATION
HANDS ON ACTIVITY

Configure a Notify
shape
Process Deactivation
Objective
By the end of this lesson you should be able to

Deactivate a process
Process Deactivation
Stop the Process Schedule Undeploy the Process
Manage > Atom Management > Atom > Deployed Processes > Stop Schedules
Deploy > Deployments > Actions > Undeploy
HANDS ON ACTIVITY

Process Deactivation
Development Life Cycle:
Overview
Objectives
By the end of this section you should be able to

Provide an overview of the Development Life


cycle

Summarize the importance of the


Development Life Cycle

Compare Boomi to other integration tools


AtomSphere Development Life Cycle

1. Gather
Requirements

5. Release 2. Design

4. Test 3. Development
Importance of the Development Life Cycle

• Make sure integration processes meet


business requirements
• Supports the continuing growth of
deployed processes
• Provides a structure to design, develop,
test and release business solutions
• Continuing and adjustable as the
business needs change
How Is AtomSphere Different?

Some shapes and


A document processing
properties are part of the
pipeline made up of
process and versioned
shapes and properties
with the process

To configure an
Some shapes are integration, drag and drop
components, versioned shapes from the pallet and
separately and reused connect them
How is AtomSphere Different?
AtomSphere is graphical in nature:
▪ Code techniques do not work
▪ Source control is “built-in”
▪ Development is linear
▪ Everyone works on the latest version, no “check-in/check-out”
Build Components
Objectives
By the end of this lesson you should be able to

Recall build components


What are Components?

• Building blocks of integrations


• Support reusability: connections,
“utility” functions and process flows
• Referenced in processes or
components
• Exist and supported independently
Components Configured by Reference
Configuration is “by reference”
• If two processes reference the same map and you change that map
within one process, the other process is affected

• If you remove a component from a process, it still exists in the


Component Explorer. It is not deleted
Versioned Components

Process: Executable component that references other sub-processes and components

Connector: Gets data into and sends data out of processes

Profile: defines the processed data structure or layout

Map: changes data from one format to another (from one profile to another)

User-defined function: Reusable set of scripts or functions linked together to perform


complex logic
Process Hierarchy
• A Process contains a hierarchy of objects, separately edited and
versioned
• Test mode uses the latest version of the process, attributes, and
sub-objects
• Sub-objects include:
• Maps
• Profiles
• Connections
• Connector Operations
• Functions
• Non-dynamic Process Properties
• Sub-processes
Reusable Components
Objective
By the end of this lesson you will be able to

Identify reusable components


Why Is Reuse Important?
• Reduces duplication of effort, shares useful functions, and
manages common functions in one place
• Helps you to efficiently use licensed connections
• Common Components for reuse:
• Connections
• User-defined functions
• Sub-Processes
• Cross Reference components
• Process Properties
Reusable Component Considerations

Licensing per connection

Essential to control connection components and


enforce reuse by all deployed processes

Boomi recommendation to enforce folder permissions on


folders containing shared components
Reusable Component Guidelines
Have one copy of each deployed Connection object
Keep in a common folder, for example: #Connections
• Have ALL processes reference
Do not store login information in the connection
• Use extension values at the environment level
• Set login information to dummy values
Delete duplicates created by any Deep Copy operations
Show Where Used

Show Where Used feature shows all references of a component


using a filter in the component explorer panel

Results

For any component,


click on the dropdown
arrow and chose the
“Show Where Used”
action.
Folder Management
Objective
By the end of this lesson, you should be able to

Determine how to manage folders


Folder Structure

Except for top-


Key development level folder, Viewed
step folders can be alphabetically
moved or deleted

Use numbers or
Create common
special characters
component
to force folders to
folders
the top or bottom
Folder Structure Example

Company
Company ABC

Region AMER EMEA

CodeMark CodeMark
Project US
Tradelist
EMEA
Folder Structure Example

Company
Company ABC

Department Accounting Finance

SalesForce FTP to Disk to


Project to NetSuite Disk FTP
Folder Name Convention

Be consistent

Concise and descriptive names

Identify sub processes (i.e. [sub] process name)

Identify the source and target


Change Management
Objective
By the end of this lesson you will

Understand Boomi's recommendations on


change management
How Does Component Versioning Work?
• When component changes are saved, a
Revision number and who changed it is added
to the revision history
• Each component has its own revision history
• You can roll back to an earlier revision, but be
careful!
• Make sure other processes/components are not
depending on the newer configuration
• Rolling back will not delete components referenced by
the newer configuration
• Show Where Used displays all references of
a component
How is Component Source Control Managed?

AtomSphere is Single copy of All users work


the last revision
the source of processes and
with the latest
control engine components revision

No automated
No individual
No trunk vs. way to merge
copies of
branch concept revision
process
differences
Development Considerations
• Build tab is a shared development environment
• Enterprise Editions - component locking prevents concurrent editing
(similar to check-out/check-in)

• Communication and coordination across the team is important


• Create sandbox folders developers to explore functionality
Environments and Change Management

Supports dedicated and separate deployment setups for different phases of


the development life cycle

Logical deployment containers reflecting phases of your development life


cycle.
Production - Live production
Dev - Development team testing Test – QA/User testing
processes

Enables change management


Process Deployment and Change Management

Create a Packaged Component - “snapshot” of process and sub-components

Processes in Packaged Component are deployed to a specific Environment

Deployed version is isolated from subsequent changes in the Build tab

Create new Packaged Component to redeploy process changes to Environment

Must deploy to schedule or to listen for real-time requests

Can Rollback if an production bug occurs


Component Dependencies and Deployment

• Only the Main process component itself is packaged and


deployed

• When deployed, the process and all components referenced


by the process or other components are “bundled” together

• Processes are deployed independently


Component Dependencies, Deployment, and
Change Management Implications

Common Components
Process 1 and Process 2 both reference Map A and are deployed
• Change Map A but only re-deploy Process 1. Process 1 is using Map A version 2,
while Process 2 is still using Map A version 1

Sub Processes
Sub processes are included in the deployment of the main process
• If a sub process is deployed (e.g. to retry docs) or a change is made to the sub
process, deploy both main and sub processes to avoid version mismatch
Change Management in Action
Development Packaged Components QA Production

Initial Deploy to QA
development for testing
Create
Process Rev 4 PC Ver 1, Process Deploy
Rev 4 PC Ver1
Found
issue

Deploy fix
Testing OK, deploy to
Fix issue production
Create Deploy
Deploy
Process Rev 6 PC Ver 2, Process PC Ver2 PC Ver2
Rev 6

2=2
Properties Overview
Objective
By the end of this lesson we will

Provide an overview of properties


What are Properties?
Properties consist of name/value pairs or variables used to store specific information to
assist with the integration.
Two Types:
• Document-level
• Process-level
Dynamic Process Properties
Objective
By the end of this lesson you will be able to

Explain dynamic process properties


Dynamic Process Properties

• Set a property value in the beginning of the process


and retrieve it later in a different part of the process
• Available across other processes initiated via the
Process Call shape, as is common in main/sub
process designs
• Property set in the Main is available to the Sub
• Property set in the Sub is available to Main (after execution)

• A process property value can be “persisted” or


remembered for future process executions (using the
same process/Atom)
Setting Dynamic Process Properties
Can be SET in:
• Set Properties shape

NOTE: Remember the assigned Property


Name (spelling, case sensitivity, etc.).
You will need to reference it later when
attempting to retrieve it.
Setting Dynamic Process Properties
Can be SET in:
• Set Properties shape
• Set Dynamic Process Property map function
Dynamic Process Properties
Can be SET in:
• Set Properties shape
• Set Dynamic Process Property map function
• Groovy script
Retrieving Dynamic Process Properties
Can be RETRIEVED from:
• Parameter Type list from most process shapes
Retrieving Dynamic Process Properties
Can be RETRIEVED from:
• Parameter Type list from most process shapes
• Get Dynamic Process Property map function

Reference the Property Name exactly as


originally named.
Retrieving Dynamic Process Properties
Can be RETRIEVED from:
• Parameter Type list from most process shapes
• Get Dynamic Process Property map function
• Groovy script
Persisting Dynamic Process Properties
Persisted Process Properties of Deployed Processes can be edited or deleted within:
Manage > Atom Management
Persisting Dynamic Process Properties
Persisted Process Properties of Deployed Processes are stored in the
execution directory of the attached Atom.
Business Use Case
• Each week, a company recognizes the sales rep who closes the largest deal that week
• A process continually checks for newly created invoice records in the company’s data
store to track the highest producing deal
• The data store contains processed invoices containing basic account information,
including the sales rep and the closed-won opportunity’s Total Contract Value (TCV)
Dynamic Process Property Activity
• Process each invoice containing account information
• Compare invoice’s Total Contract Value (TCV) to highest TCV stored in memory (add a
Dynamic Process Property)
• Store new TCV in memory if it is greater than highest TCV currently stored as Dynamic
Process Property (DPP)
• Configure notification details using a Notify Shape in preparation for advanced logging
and reporting
HANDS ON ACTIVITY
Dynamic Process
Properties Activity
Dynamic Document
Properties
Objective
By the end of this lesson you will be able to

Explain dynamic document properties


Dynamic Document Properties
Define and temporarily store additional pieces of information
about a given document
• Specific name/value pairs follow the document through its execution
• Unlike a process property, you cannot persist a document property value
and “remember” its value for future process executions
Setting Dynamic Document Properties
Can be set in:
• Set Properties shape
Setting Dynamic Document Properties
Can be set in:
• Set Properties shape
• Set Document Property map function
Setting Dynamic Document Properties
Can be set in:
• Set Properties shape
• Set Document Property map function
• Groovy script
Retrieving Dynamic Document Properties
Can be retrieved from:
• Parameter Type list from most process shapes
Retrieving Dynamic Document Properties
Can be retrieved from:
• Parameter Type list from most process shapes
• Get Document Property map function
Retrieving Dynamic Document Properties
Can be retrieved from:
• Parameter Type list from most process shapes
• Get Document Property map function
• Groovy script
Differences Between…
Dynamic Process Properties Dynamic Document Properties
Value can persist across process Value cannot persist
executions

Value is assigned on the process level – Value is assigned on the document level and
the value remains the same unless can be different per document
changed by a process step

Once set, available anywhere in the Once set, only available as long as the
process including child processes document exists – will continue across
branches (if set before the Branch shape), but
does not continue across Message shapes or
outbound Connectors
Business Use Case
• A process continually checks if a given Account record exists in a company’s
data storage system to determine whether to perform a Create or Update call
• The process retrieves an Account’s internal system ID using a Connector Call
output parameter as a Dynamic Document Property and then creates a new
Account or updates an existing Account
Dynamic Document Property Activity
• Add a Connector Call in the Set Properties shape
• Configure the Decision shape
• Configure the Create and Update Maps
• Run a Test and observe the results
HANDS ON ACTIVITY
Dynamic Document
Properties Activity
Process Property Component
Objective
By the end of this lesson you will be able to

Explain process properties component


Process Property Component

• Group the various settings, default


values, and/or persisted properties
for a process
• Convenient to use with environment
extensions
• Define a collection of properties to
reference throughout your process
• A Process Property is a component,
therefore it has its own revision
history
Document Flow

Overview
Objective
By the end of this lesson you will be able to

Understand what makes up Boomi documents


Review: What is a Boomi Document?
• It is the main unit that powers the execution of a process flow.
• Dell Boomi supports five raw document types:
XML JSON Flat File Database EDI
1,Contact1,Address1 S5*1*CL~
<Account> { |^|ColumnA|^|ColumnB
"values": [ |^|ColumnA|^|ColumnB
{ 2,Contact2,Address1 L11*0003187*BM~
<activeBillingAddress/> "_key": "~",
|^|ColumnA|^|ColumnB
"connections": {"_total": 3,Contact3,Address1 |^|ColumnA|^|ColumnB L11*122*PO~
<activeResAddress/> 129}, |^|ColumnA|^|ColumnB
"firstName": "Adam“ 4,Contact4,Address1 |^|ColumnA|^|ColumnB L11*ZOR*SO~
}, |^|ColumnA|^|ColumnB
<addressComplement/> { G62*10*20110809*Y*0*CD~
"_key": "hks0NPUMZF", 5,Contact6,Address1 |^|ColumnA|^|ColumnB
"connections": {"_total": |^|ColumnA|^|ColumnB
<addressTypeCode/> G62*79*20110809*Y*9*CD~
500}, 6,Contact6,Address1 |^|ColumnA|^|ColumnB
"firstName": "Brandon“ |^|ColumnA|^|ColumnB
</Account> }
AT8*G*L*48*41**E*2154.1~
7,Contact7,Address1 |^|ColumnA|^|ColumnB
],
"_total": 2
|^|ColumnA|^|ColumnB NTE*GEN*A S~
}

• A document is not necessarily a logical or physical record


• Document definition depends on the data source and profile
What is a Document?
Documents are presented in four different formats:
• Records
• Transactions
• File Instances
• Empty

8888888888888888888888888888888888888888888888
8888888888888888888888888888888888888888888888
888888888888888888888888
888888888888888888888888888888888888
88888888888888888888888888888
8888888888888888888888888
888888888888888888888888888888888888
8888888888888888888888888
888888888888888888888888888888888
888888888888888888888888888888888
8888888888888888888888
88888888888888888888
8888888888888888888888888888888888
888888888888888888888888888
8888888888888888888888888
888888888888888888888888888888888888
888888888888888888888888
8888888888888888888888888888
8888888888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888

8888888888 8888888888
8888888 8888888
888888888 888888888
88888888 88888888
8888888888 8888888888
888888 888888
8888888888 8888888888

8888888888 8888888888
8888888 8888888
888888888 888888888
88888888 88888888
8888888888 8888888888
888888 888888
8888888888 8888888888
Document Flow: Concepts
Objectives
By the end of this lesson you will be able to

Explain more advanced aspects of document


flow

Begin to understand how Boomi “thinks”


Document Flow: Concepts
• Shape Execution
• Execution Path
• Documents with Multiple Records
• Original Document ID
• Document Failures
• Altering Document Flow
Shape Execution
• Documents move as a group from shape to shape
• Each document in a group is executed by a shape before any move on
to the next shape.
• A shape executes only if at least one document reaches it
• If a start shape does not return any documents (e.g., nothing matches query), no
subsequent shapes are executed
• A No Data start shape generates a single, empty document

• Processing as a group is more efficient because the shape logic is


loaded into memory once
• Default behavior of document flow can be overridden
Execution Path
• Documents move through a process beginning
at the start shape and follow a specific execution
path

• All documents do not have to take the same path


(Decision, Route, and Business Rule)

• Paths execute sequentially, not in parallel


• A path completes before the next path starts

• Branch shape path independence:


• Branches cannot communicate document changes (data
or properties)
• Must use other techniques to pass data to next path
Branch Execution Path
Documents finish
DB branch 1 before any
XML branch 2 processing
XML

DB

Branch creates a
duplicate set of
documents for each
path XML XML

Duplicate documents
in original state are
processed in Branch 2
Documents with Multiple Records
A document may contain a single record or a batch of multiple logical records
• Shapes configured to reference individual profile elements
(e.g., Decision) will use the value from the first record in the
document only
• Shapes that reference the entire profile (e.g., Map) will
iterate through all logical records
• Any type of data can be a “batch” document
• Records within a single document can be aggregated in
Maps
Original Document ID

• Each document read into a process is assigned an


original document ID
• Splitting a document propagates the original ID to
the resulting documents
• Combining documents consolidates the original
IDs
• Connector calls within the process that return new
documents will also create a new set of document
IDs
• In deployed process logs, the “view linked
documents” command can be used to associate
different sets of documents with common IDs
Document Failure
When an error occurs, the affected document stops immediately and does not continue to
subsequent shapes

• Errors can occur per-document or for an entire process


• “Document-level” errors stop the individual document, other documents continue processing.
• “Process-level” errors stop all documents immediately

• Documents are identified by their original ID. When an error occurs the document ID is
marked as a failure
• Split documents: each shares the same original Document ID. If one split document fails, the
original document ID is marked as failed. All split documents fail and stop processing
• Combine documents: If a combined document encounters an error, all the original
documents are marked as failed and stop processing
Document Error Example
One document errors
in connector, the other
document continues.

Branch shape
Documents duplicates inbound
loaded from documents. Only failed documents stop
database query. processing. Other documents
complete normally.
Document Error Example with Split
One document errors, causing
all documents that began as part
of the original FTP file to fail
Original document
splits into multiple
documents

All documents that started


Branch creates a as part of the same original
Single FTP file is duplicate set of document fail if any single
read as 1 original documents for document fails
document each path
Altering Document Flow: Try/Catch

• Can alter how a split batch document


flows through a process
• Try/Catch automatically resets a
document’s Original Document ID so it
can fail individually
• All documents are sent down the Try path
• Only documents failing the Try path will
be sent down the Catch path
Try/Catch Example with Document Split
After a Try/Catch, each document
Try/Catch “resets” the succeeds or fails individually even if
document IDs so each it is part of the same original
Original document document can fail document.
splits into multiple individually.
documents

After successful documents complete


Single FTP file is read processing, all failed documents flow
as 1 original document. down the Catch path.
Altering Document Flow: Flow Control
The Flow Control shape can alter how documents flow through a process

• Process documents individually or in an arbitrary group size instead of as a single group.


• Process documents simultaneously in multiple threads vs. a single thread.
• Each document executes to completion before next document starts.

Consideration
• Notable performance decrease as every shape’s logic is initialized multiple times vs. once per
group so only use if appropriate for scenario.

Use Cases
• Cases where one record post impacts the next.
• Incremental inventory counts.
• Detecting duplicates across documents with the group.
Document Flow Summary
▪ Documents flow together (shape execution): all documents are processed by a
shape then continue on as a group to the next shape
• Documents flow down a specific execution path but can have different paths
• Documents can flow as a batch of logical records or as a single logical record
• Shapes act differently on batch documents. Documents can be modified and
grouped into batches or split out of batches
• Branch-type shapes impact document flow
▪ Branches are independent and process sequentially to completion
▪ Decision shape paths have precedence.

• Document failure changes execution path. Batching impacts path.


HANDS ON ACTIVITY

Document Flow Activity


QUESTIONS
THANK YOU.

You might also like