Professional Documents
Culture Documents
Table of Contents
Welcome to Jitterbit.................................................................................................... 1
What's in the Online Help ......................................................................................... 1
Conventions Used in this Guide ................................................................................. 1
Overview................................................................................................................... 3
Overview ................................................................................................................ 3
Jitterbit System Requirements .................................................................................. 6
System Requirements ........................................................................................... 6
Jitterbit Supports..................................................................................................... 7
Transport Protocols ............................................................................................... 7
Databases ........................................................................................................... 7
File Formats ......................................................................................................... 7
Plugins ................................................................................................................ 7
SSL Certificates .................................................................................................... 7
Working with Jitterbit ............................................................................................... 8
Opening Screen....................................................................................................... 8
User Interface Overview ......................................................................................... 10
User Interface Navigation ....................................................................................... 10
Main Toolbar ......................................................................................................... 25
Project Tree .......................................................................................................... 27
Tab Screens.......................................................................................................... 28
Login to Server ..................................................................................................... 32
Transformation Toolbar Objects............................................................................... 33
Related topics: ................................................................................................... 35
The Jitterbit System Console ................................................................................... 35
Checking System Status ...................................................................................... 35
Starting and Stopping the Engine ......................................................................... 35
iii
About................................................................................................................... 35
About Jitterbit Connectivity .................................................................................. 35
About File Share Support in Jitterbit ...................................................................... 36
About FTP Support in Jitterbit ............................................................................... 36
About XML Support in Jitterbit .............................................................................. 37
About Database Support ...................................................................................... 37
About HTTP Support in Jitterbit............................................................................. 40
About SSL Certificates ......................................................................................... 41
Administration ......................................................................................................... 43
Jitterbit Utilities ..................................................................................................... 43
Changing an Admin Password ................................................................................. 44
How To Modify a Definition's Permissions.................................................................. 44
Controlling the Scheduler ....................................................................................... 45
Checking Scheduler Status................................................................................... 45
Starting and Stopping the Scheduler ..................................................................... 45
The Jitterbit System Console ................................................................................... 46
Checking System Status ...................................................................................... 46
Starting and Stopping the Engine ......................................................................... 46
Managing Users and Groups.................................................................................... 46
Working with Users ............................................................................................. 47
Working with Groups ........................................................................................... 47
Known Servers ...................................................................................................... 47
Modifying a Definition's Permissions ......................................................................... 48
Monitoring System Processes and Errors .................................................................. 49
Reviewing System Processes ................................................................................ 49
Reviewing System Errors ..................................................................................... 49
Debug Logging in Jitterbit ....................................................................................... 49
iv
Table of Contents
vi
Table of Contents
vii
viii
Table of Contents
ix
Table of Contents
xi
xii
Table of Contents
xiii
xiv
Table of Contents
xv
xvi
Welcome to Jitterbit
Click here for an overview of the Jitterbit application.
Click here for information on system requirements.
Click here for information on Jitterbit connectivity.
Click here for Jitterbit Tips and Tricks.
Notes provide information that is relevant to the subject matter but needs to be specifically
highlighted.
Caution! messages advise you of any potential problems stemming from a particular
action.
Warning! messages advise you of any serious potential problems stemming from a
particular action.
Overview
Overview
Jitterbit delivers powerful, flexible, and easy-to-use data and application integration
software. Designed for the technical business analyst, Jitterbit allows companies of all sizes
to solve the challenges of application, data, and business process integration between onpremise and Cloud systems. Jitterbit's graphical "No-Coding" approach accelerates and
simplifies the configuration and management of on-premise and cloud integration projects.
Jitterbit provides an easy, effective, and inexpensive way of integrating data, applications,
and even devices across the three technologies that make up modern enterprise IT
architectures:
Traditional on-premise systems including traditional databases, packaged enterprise
applications from industry vendors SAP, Microsoft and Oracle, and custom-built
applications.
Cloud services including Salesforce.com, Workday and Amazon.
Social and Mobile services including Twitter, Facebook, LinkedIn, Android and Apple.
Jitterbit is designed to allow these integrations to be created and managed not just by the
system developers, but also by the analysts who understand the business processes that
use data.
Thanks to Jitterbit's wizard-driven, "click, not code" approach, our customers are generally
able to integrate data in from one to ten days. We support the needs of companies in North
America and around the world.
Jitterbit helps you meet the three biggest challenges of data management today:
Data integration replication, bidirectional movement, synchronization.
Business Process Integration applying logic to orchestrated business processes
as they're executed.
Mash-ups complex processes, real-time integration at the user interface.
It's all done in three easy stages Design, Deploy and Manage:
Design: You design your data-integration processes in a graphical interface created
for business users. Because the design steps are wizard-driven implemented with
mouse clicks, not code programming your company's administrators should be able
to design an integration and run with it little or no help from professional developers.
The wizards walk you through the steps of building designs, mappings, connectivity
and transformations.
In the Design phase, you can test a query or other operation to make sure all
components are valid. Or you can actually run the operation, which brings up an
operations monitor at the bottom of your screen to report start/end times and
progress, number of records processed, and success or failure.
Deploy: Deploy onsite, to a server behind a firewall, or to the Cloud.
Every element you create in Jitterbit is defined in metadata. You can then deploy the
metadata as a Jitterpak to traditional on-premises installations in Linux or Windows
and/or one of the increasingly popular Cloud options.
Jitterbit offers parallel processing and the ability to chunk out your data and to
support high-volume APIs, moving millions of records in a matter of minutes.
Jitterbit features a real-time process monitor with proactive alerts when there is a
problem.
Manage: You manage your operation with real-time process monitoring tools. With
Jitterbit's process monitor, user console and project manager tools, you can quickly
determine whether your operations have run successfully and, if not, you can
pinpoint the source of problems for easy correction. Outside of the wizards, you can
also enhance your operations in several ways, for example through scripting.
And you can also open the administration console's operation history log to view
processes that have run, start and end times, and any objects created during the
process.
Finally, you can open a summary of your operation and click to edit any component of
it.
Initial and incremental implementations have saved many of our customers as much as
90% of ongoing operation costs for data integration.
Jitterbit supports both real-time and batch integration.
About the Jitterbit Studio
The Jitterbit Studio is entirely wizard-driven, taking you step by step through the creation of
data mappings, connectivity and transformations. Salesforce.com, SAP connector, Microsoft
CRM connector, and others that will be rolled out in the near future.
Jitterbit features automatic data mapping and enterprise connectors to make connectivity as
easy as possible.
The studio supports complex data models including Salesforce.com and dynamic schemas,
connecting to the SOAP API, REST API and large data volume, and Cloud-based APIs such
as the Salesforce Bulk API.
Defining Processes
Beyond the wizard capabilities, Jitterbit offers several tools for easy definition of complex
business processes such as "lead to cash" or customer/product synchronization across
multiple systems. Thus you can orchestrate the handling of data throughout a process or
chain of operations.
Overview
Formula Builder. This feature allows you to pinpoint the addition of logic to your
transformations with a user-friendly graphical interface that you can switch between
Analyst and Developer modes.
Comprehensive logic library. Well over 100 predefined Formula Builder functions are
available in Jitterbit Enterprise.
Enhanced scripting. You don't have to code logic in the tool; but if you do insert a
script, Jitterbit provides tools to validate it.
Operation chains. In Jitterbit Enterprise, you can chain your operations to be
sequentially triggered by events in a prior operation. Graphical representation in the
History Log shows you how elements in a chain are subordinated, and lets you easily
pinpoint the source of any problems in operation.
Local variables. You can create local variables (as opposed to global variables) that
run only in real-time operation of a specific process and are not visible to other
operations.
Types of Definitions
The following modular definitions are referenced within an operation:
Sources: Identifies where the source data is stored (e.g., on an FTP server, in a File
Share directory, in a database).
Targets: Identifies where the transformed data will be sent (e.g., to a different FTP
location, in a File Share directory, to a database).
Transformations: Describes the source and target structures and how the data is to
be transformed. Supported structures include text documents, XML defined by a
Schema/DTD, SOAP requests/responses, database relations and LDAP.
Web Service Methods: Lets you transform your data before sending it to a Web
Service request, then also transform the Web Service response data into another
format.
Scripts: Allows you to run and re-use Jitterbit scripts at many positions in the
operation chain.
Text Structures: Defines text document structures. Currently delimited and fixed
field flat and hierarchical text structures are supported.
HTTP Endpoints: Allows you to define URLs that serve as an entry point to one or
more operations. This allows you to handle requests in real-time through HTTP
requests.
Schedules: Defines the date, time and frequency when the operation should
activate.
Overview
Jitterbit Supports...
Transport Protocols
Web Services (SOAP)
HTTP/S
FTP
SFTP
ODBC
LDAP
Windows File Share (SMB)
Linux File Share (Samba)
Databases
PostgreSQL
MySQL
SQL Server
Oracle 8.x -10.x
Microsoft Access
Visual Fox Pro
Any ODBC Compliant Databases*
File Formats
XML - Schema (.xsd), Document Type Definition (.dtd),
Web Service Definition Language (.wsdl)
Simple Flat Files
Hierarchical Flat Files
Plugins
Plugin manifests using wild cards for data elements. Version of Jitterbit Server is
required to use plugins that use this feature.
SSL Certificates
For details, see About SSL Certificates.
-------
* Databases not listed have not been officially tested by Jitterbit. You're welcome to post
any success with unlisted databases at our forum (help.jitterbit.com)
Opening Screen
When you launch the Jitterbit Integration Environment, the startup screen presents you with the
following three options:
Overview
3. Selecting the project name in the list and clicking the Open button below the list.
By selecting a project in the list, the location of the project and the date the project was last
modified is displayed in the status bar at the bottom of the window.
If you want to open an existing project that is not included in the displayed list, click on the
Browse... button below the project list. Browse to the location of the project you wish to open,
and select the corresponding project file (having a .jip extension). Project files are decorated
with the Jitterbit project icon in the file browser:
You can also use the Search... button to search for integration projects on your local disk.
You remove a project from the list by right-clicking on the project and selecting Remove project
from list. The selected project will be removed from the list of recent projects, but it will not be
deleted from disk.
Right-clicking on a project in the list and selecting Delete From Disk will delete that project from
disk. This action cannot be undone, and you will be prompted for confirmation before the project
is actually deleted.
If you are running an Enterprise version you can also open an older version of a project. Rightclick on the project you want to open, and select Restore Project From Backup. You will be
taken to a screen where you select the backup you want to restore, based on the date it was
created.
4. Import Jitterpak
This option allows you to import a Jitterpak into the client. Doing this automatically opens the
project contained in the Jitterpak. Clicking on the Import... button brings you to the Import
Jitterpak screen.
Cancelling the Import Jitterpak screen will bring you back to the opening screen.
Note: You can also import a Jitterpak by double-clicking on it (in Windows Explorer), or by
dragging it and dropping it on the Jitterbit Integration Environment window.
The opening screen also provides a short-cut to the client's Administration view: clicking on the
Administration button located at the top of the screen will bring you directly to the administration
console, without opening a project.
10
Overview
11
Find - search for items in the current project. You can search based on names or
field values. You can also search for text in Scripts and Transformation
mappings.
Trash Can - view the deleted items currently in the Trash Can
Preferences - view and modify your client preferences
12
Overview
Operation Log - view the status of all instances of an operation that have
been executed
Operation History - view all files processed by an operation
Operation Queue - view and modify any pending or active instances of an
operation
Project Validation - open the project validation view, to see if the project has
any items that will fail deployment due to incomplete or invalid definition
Project Data Elements - view a list of all the data elements that have been
defined in the project
Required Plugins - view a list of all the plug-ins that are used by the project.
This is available only in the Enterprise edition.
Script Pad - experiment with the Jitterbit scripting language without having to
create a new Script in your project.
Project Deploy History - view a log of all the times the current project have been
deployed to a Jitterbit server
13
Resume Current Test - Resume the current test session when stopped at a
break-point
14
Overview
Item
1 Jitterbit Window Banner
Function
This banner displays
the Jitterbit
Integration
Environment version.
2 Application Menu
15
Jitterbit Connect
Wizard; deploy the
current project; save
the active page log
These arrow icons display
into a Jitterbit
server).
5 Left Pane
Note: Connecting in
Administration mode
will only display the
16
Overview
Administration tab.
6 Right Pane
17
Item
Function
Left Pane
5.1
Design Tab
18
Overview
5.1.2Validation Dropdown
Menu
5.1.3Tree Expand/Collapse
+/- Icon
19
5.2
Administration
Tab
5.2.1Consoles Subtab
5.2.2Actions Sub-tab Selecting this sub-tab allows you to delete all queue
entries from the server.
20
Overview
Item
Function
Right Pane
This pane
contains the
Transformations
and Operations
tabs.
21
6.1
This menu is
opened by
clicking the black
triangle on the
Workspace
component icon
ribbon.
This ribbon
displays the main
icons (e.g., list of
dependent
objects; save
active page;
deploy item;
context help).
22
Overview
Clicking on one
of these icons
expands or
collapses the
trees of
mapping.
10
23
Item
Function
Right Pane
24
Overview
ribbon.
Main Toolbar
The main toolbar provides access to common functionality used within the system. This
functionality is available in the Main Menu. The main toolbar buttons provide access to:
25
Create a New Script - open a screen to create a script to run separately from
transformations or to store logic for reuse in various mapping transformations.
Select a Jitterbit Connect Wizard - start a Jitterbit Connect wizard. Select a
wizard for creating a standard integration, for example DB to Text or XML to DB, or
for creating a Salesforce integration.
When you click the icon, a list of standard and Salesforce integrations appears.
When you click the black triangle next to the icon, this dropdown list appears:
26
Overview
Project Tree
The project tree enables you to access and manipulate any component in the project. You
can right-click on an item to view a menu of actions available for that item
27
The project tree also enables you to highlight invalid items, or items not deployed by
clicking the
. Click the
or
, to expand or collapse the tree.
The tree has a simple search functionality, which makes it easier to find items in a large
project. Select Filter from the dropdown menu accessed through the
button to open the
search field. Typing in the field hides all project items except the ones whose names
contains the text searched for. Click the close button to the right of the field to close the
field and remove the filter. The search field can also be opened from anywhere in the UI by
pressing CTRL-SHIFT-F. (Pressing CTRL-W while inside the search field closes the field.)
Tab Screens
There are two types of Tab Screens:
Tab Utility Screens give users access to tools for testing, deploying, managing and downloading
integration projects, managing Jitterbit servers and managing users and groups.
Tab Definition Screens that give users access to the properties of a particular integration item,
including: Operations, Transformations, Sources, Targets, Web Services, Text Structures,
Schedules, Email Messages, and Scripts. Each item's Tab Definition screen includes a toolbar
that includes common as well as item specific functionality. Common toolbar functions are:
28
Overview
Displays if this item is referenced by other items. Items that are referenced are
termed "Active" items.
29
9. Import - Loads mapping information from an external XML file (see Export
Mappings). You are offered two sub-options:
10. Import Mappings.
11. Import Renamed Mappings Folders.
30
Overview
12. Export - Save the current mapping information in an external XML file (see
Import Mappings). You are offered two sub-options:
13. Export Mappings.
14. Export Renamed Mappings Folders.
15. Hide Unmapped Nodes - Hide any nodes that are unmapped. You are
offered sub-tions for hiding nodes in the source tree and the target tree.
16. Simple Node Display - Display nodes in the source and/or target tree
without data or attributes.
17. Simple XML Element Display - Display XML containing elements only,
that is, with all attributes converted into elements and with no other
elements such as the XML declaration / DTDs. This allows rapid and
simple parsing. This option is activated for whichever tree (source or
target) contains XML data.
18. Map Area Settings - Turn on on or off area settings, including attributes,
generators and errors. You also have the option to hide or show all area
settings.
19. Create Operation - Create a new Jitterbit operation.
20. Convert to Text Document - Create a new Text Document structure from
the source and/or target structure currently displayed in the mapping tree.
The current version supports only a limited set of structure conversions.
21. XML Node Expansion Mode - Determine how the mapping structures for
XML sources or targets are loaded into the tree. Because XML structures
can be highly complex, loading a complete structure into the mapping tree
can slow performance. When you choose "Minimal" (the default) as the
setting, the tree is created one level at a time when you expand a folder
node for the first time, which results in better performance.
22. Display Mode - This option is not currently active.
Find nodes in the mapping tree, or search and replace items in the mappnig
scripts.
Invoke help for the active screen of the application.
31
Login to Server
See also: Accessing a Server
The name of the server that the client is currently connected to, and the username that was used to login
are displayed in the upper right corner of the Jitterbit Integration Environment window. The Login button
also reflects the current connection status:
The Login button when the client is disconnected.
The Login button when the client is connected.
Every time you login to a server, the client downloads server-specific information which is
then cached on the client and can be accessed when the client is disconnected. Examples of
such information are the names and IDs of the current users and groups, and information
about the database drivers that are installed on the server. This allows you to work with
permissions, and to create new database sources and targets when disconnected from the
server.
Note: This dialog also appears automatically whenever the client needs to contact the server and
it is not already connected.
2. In the Jitterbit Server field, enter the name of the server, or the IP address, of the
server you wish to connect to.
3. In the Name field, enter the username used to connect to the server.
4. In the Password field, enter the password associated with the username.
Note: The dialog remembers the last 10 servers you have been connected to, and
also remembers the user name that was used the last time a successful connection
was made to each server.
5. To use the Advanced options, click the
6. Use HTTPS when communicating with the server This requires that a certificate
be installed on the server. If the certificate is untrusted, you must manually add the
corresponding key to the client key store. See the following link for more details:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/keytool.html
7. Port: By default, Use default port is checked. The port that is specified in the
jitterbit.conf file will be used. To choose another port, uncheck the checkbox.
32
Overview
Name
Description
Load Sample
Source Data
Test the
Test and validate the transformation currently open.
Transformation
Test Operation
Zoom In
Zoom Out
Map Elements
33
Context Menus
In addition to the icons on the Transformation screen, some items in the transformation
have context menus displayed when you right-click on the item.
Item
Top-Level
Target
Folder
Target
Subfolder
Target
34
Overview
Node
Related topics:
Transformation Mapping
Using the Formula Builder
The Jitterbit System Console
The System Console has two functions:
It provides a summary view of the state of the server.
It lets you remotely stop and/or start the server engine.
Follow these steps to access the System Console:
1. There are two ways you can access the System Console:
o
Select Administration Console from the View menu, then choose System
Console from the sub-menu.
2. The console appears in its own System Console: tab in the right pane of the
window.
Checking System Status
1. The radio button list at the right indicates the current state of the server.
2. Click the Short, Normal, or Full button to display the latest status information from
the server in abbreviated, normal, or complete detail.
Starting and Stopping the Engine
Warning! Shutting down the system will delete all active operations in the queue.
1. (Optional) Click the Stop Engine button to shut the system down.
2. (Optional) Click the Start Engine button to activate the system again.
About...
About Jitterbit Connectivity
Jitterbit supports the following connectivity types:
JSON
35
REST
SFDC to SFDC
MSCRM
SAP
IDOC/RFC/BAPI
SFDC Bulk API
About File Share Support in Jitterbit
In a network, File Shares are a way to identify a shared file in a computer without having to
specify (or know) the storage device it is on. File Shares are available for Windows, Linux
and Novell Netware operating systems. The format or name space for specifying a file share
are as follows:
36
Overview
Select the Passive Mode checkbox in your source or target FTP definition if you want to
use the FTP server's "PASV" method to retrieve files from an FTP site.
Doing so means that your browser will open a control connection to the FTP server, tells the
FTP server to expect a control connection to the FTP server, tells the FTP server to expect a
second connection, and then opens the data connection to the FTP server itself on a
randomly chosen high-numbered port.
This works with most firewalls, unless your firewall restricts outgoing connections on highnumbered ports too.
The User Defined Functions (UDF) tag is found in the Formula Builder's Database Function
folder. This function lets you use any database function supported by the target database,
such as the ToDate() function in Oracle, or the Convert() function in SQL Server.
Update Field Value
The Update Field Value updates a field from a source database to a given value after an
operation is complete. It is used when performing routine database batch operations to
ensure that data processed the previous time an operation ran is not processed again. It is
also useful if the operation is part of a workflow and needs to set the status of a field to the
next value indicating that it has completed successfully or a failure occurred.
Primary Keys
Primary keys are defined within your database environment. A field that is defined as a
primary key is used in indexing the database's information.
Jitterbit automatically identifies your databases key fields. They are displayed in the
Transformation Wizard's Select Keys to Update screen as key fields (their checkboxes are
selected, as shown above).
Note: Because these key fields are defined within the database environment, you cannot
change their setting in the Transformation Wizard--to do so requires changing your
database structure.
Working with Oracle Databases
Using TNSNames.ora
If you are working with an Oracle database, it is recommended that you use the Oracle
ODBC drivers that come with the version of the database you are accessing. You will need
to install the Oracle Client and ODBC driver on the same server that runs Jitterbit. In using
the Oracle Client, you must upload a valid TNSNames.ora file into the appropriate directory
which references the database that you wish to access. To reference the database in
Jitterbit, enter its TNSNames.ora reference into the Server field, together with the
appropriate user id and password.
Working with Microsoft SQL Server Databases
Microsoft SQL Server should be access from a Jitterbit server running on Windows and not
Linux. Jitterbit uses database-level authentication, not an OS specific authentication like
Windows NT user authentication. Therefore, all your database authentication must be SQL
Server-based.
Working with File-Based Databases
In order to use file-based databases such as Microsoft Access, the database file must reside
on Windows file share. Therefore, you will need to provide NT access credentials--including
domain info where appropriate--in order to use this file share-based database file.
38
Overview
The file share and authentication information for file databases is found in either the source
or target database definition. To access the database, you do not need to define a Server,
only a Database Name.
The following table provides examples on how to access file databases together with any
Additional Connection String Parameters where required.
Database
Driver
Type
Database Name
Access
Microsoft
Access \\solar\saturn\demo\acce
N/A*
Driver
ss\demo.mdb
(*.mdb)
Access
(File
DSN)
Microsoft
Access \\solar\saturn\demo\acce
FileDSN=Access.dsn;
Driver
ss\demo.mdb
(*.mdb)
DBASE
Microsoft
dBase
\\solar\saturn\demo\dbas
N/A
Driver
e
(*.dbf)
DBASE
(File
DSN)
Microsoft
dBase
\\solar\saturn\demo\dbas
FileDSN=dbase.dsn;
Driver
e
(*.dbf)
Excel
Microsoft
Excel
\\solar\saturn\demo\excel
N/A
Driver
\demo.xls
(*.xls)
Excel
(File
DSN)
Microsoft
Excel
\\solar\saturn\demo\excel
FileDSN=Excel.dsn;
Driver
\demo.xls
(*.xls)
Microsoft \\solar\saturn\demo\foxpr
FoxPro Visual
SourceType=DBC;
o\demo.dbc
FoxPro
39
Driver
Microsoft
FoxPro
Visual
\\solar\saturn\demo\foxpr
(File
FileDSN=FoxPro.dsn;SourceType=DBC;
FoxPro o\demo.dbc
DSN)
Driver
Microsoft
Paradox
Paradox
\\solar\saturn\Paradox
Driver
(*.db)
ParadoxNetPath=\\solar\saturn\Paradox;Default
Dir=\\solar\saturn\Paradox;
Microsoft
Paradox
Paradox
(File
\\solar\saturn\Paradox
Driver
DSN)
(*.db)
FileDSN=Paradox.dsn;
40
Overview
The user supplies the header information for the post action in the target definition. An
ASCII text message is then formed by using this header information, a blank line, and the
transformed information from the source. For example, lets say that there is a
transformation from a database query to an XML document. The transformation name is
TRAN1. The data is retrieved from the source, and transformed to the XML document
format defined in the transformation. Next, the Target header information (defined by the
user in the target definition) is added to the beginning of the XML document, along with a
blank line, and then the XML content.
The final document in the first step is then passed to the target URL using an HTTP POST
command.
Similar to HTTP as a Source, a response is returned from the HTTP request and is parsed by
the software. If the message indicates success, nothing more is done. When an error
message is received, it is used as part of the error logging process for the operation.
X.509 Certificate (HTTPS)
If a valid X.509 client certificate has been made available to Jitterbit it is to used for user
authentication to the source or target URL - the certificate name can be entered into the
certificate field.
Related topics:
HTTP Source Definition
HTTP Target Definition
About SSL Certificates
About SSL Certificates
Jitterbit supports SSL client certificates for https source/target and web service calls.
A default client certificate that is always to be used can be configured, or multiple sets can
be specified.
Configuration is done in Administration > System Console > jitterbit.conf with the following
entry for a global default:
[SSL]
CertificateFile='C:/Certs/default.crt'
PrivateKeyFile='C:/Certs/default.key'
PrivateKeyPassphrase=defaultsecret
To use a specific set of values, set the appropriate global variable in a script:
$jitterbit.source.http.ssl_cert_id = "Me";
$jitterbit.target.http.ssl_cert_id = "Me";
41
$jitterbit.web_service_call.ssl_cert_id = "Me";
Also, in the [SSL] section of jitterbit.conf, make the applicable entry from among the
following:
CertificateFileMe='C:/Certs/me.crt'
PrivateKeyFileMe='C:/Certs/me.key'
PrivateKeyPassphraseMe=mysecret
If no default client certificates should be used, do not specify them in jitterbit.conf.
About Regular Expressions in Jitterbit
Jitterbit supports regular expressions as means of specifying and recognizing strings of text,
including particular characters, words or character patterns. Jitterbit supports the regular
expression syntax from the Perl 5 programming language.
You can read about the Perl 5 regular expression syntax at
http://www.boost.org/doc/libs/1_49_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax
.html.
42
Administration
Jitterbit Utilities
The Jitterbit Integration Environment includes several utilities that help users test and
manage Integration Projects as well as manage Jitterbit servers. These utilities are:
1. Administration Console - lets a user manage a server. The Administration Console
can be accessed when launching the application or from the View menu in the
Integration Environment. The Administration Console includes:
o
Scheduler Console - for starting and stopping a server scheduler and checking
its status. See Scheduler Console for more information.
User Console - for creating and assigning users and groups on the server. See
Managing Users & Groups for more information.
2.
Activities Performed - lets a users view all the activities they have performed in the
Integration Environment since they launched the application.
3.
4.
Transformation Utilities - there are several utilities accessible in the mapping tool to
let users quickly and easily build and test their transformation mappings. These are:
o
Load Source Data - lets users load sample data from a sample source into the
source data structure to validate that data can be read into the structure
correctly and it assists users with what certain data elements represent if
they are using large complex data structures.
Test Transformation - once source data is loaded into the source tree and
mappings have been established between the source and target structures,
this utilities lets users view the end result of their mappings. See Test
Transformation for more information.
43
then the new structure can inherit the mappings of the old structure. This tool
is useful when there is a complex mapping between two structure and remapping would be cumbersome and too time consuming.
5.
Error Log - If an unexpected error occurs in the user interface, the error log will
provide details of the issue.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
44
Administration
1. There are two ways you can access the Scheduler Console:
In the Administration environment's Console pane, click the Scheduler Console
button.
Select Administration Console from the View menu, then choose Scheduler Console
from the sub-menu.
2. The console appears in its own Scheduler Console: tab in the right pane of the window.
Checking Scheduler Status
1. The radio button list at the right indicates the current state of the scheduler.
2. Click the Short, Normal, or Full button to display the latest status information from the
scheduler in abbreviated, normal, or complete detail.
Starting and Stopping the Scheduler
Caution! If the Scheduler is stopped, any operation scheduled to activate in the future will not
function: operations are automatically activated only when the Scheduler is running. However,
you can bypass the Scheduler and manually activate an operation at any time by clicking the
operation's lightning bolt button to send the operation directly to the queue.
1. (Optional) Click the Stop Scheduler button to shut the scheduler down.
2. (Optional) Click the Start Scheduler button to activate the scheduler again.
45
The radio button list at the right indicates the current state of the server.
Click the Short, Normal, or Full button to display the latest status information from the
server in abbreviated, normal, or complete detail.
Starting and Stopping the Engine
Warning! Shutting down the system will delete all active operations in the queue.
(Optional) Click the Stop Engine button to shut the system down.
(Optional) Click the Start Engine button to activate the system again.
46
Administration
3. If you want to access the current set of users and groups that are on the server,
click the Download button in the Users & Groups toolbar. The Users and Groups
fields will load their respective members from the server.
Working with Users
Follow these steps to modify an existing user or to create a new user:
1. Select any existing user ID to modify it, or click the Add New button in the Users
section to create a new user.
2. Enter/modify the user's details in the Details area.
3. (Optional) If you have one or more groups defined to which this user should belong,
click the Add button under the Member of: list, then select which group(s) to which
the user should belong.
4. Click the Upload button in the toolbar to upload your changes to the server.
Known Servers
To find out which servers the client connected to previously, you can use the View >
Known Servers command in the main menu bar. The list of all the servers the client is
aware of is displayed.
Every time you connect to a Jitterbit server, the client caches server specific information
locally. The information is stored under the Application directory you specified the first time
you started the client, however, you should always access this information through the
Jitterbit client.
The following information is displayed:
Server Name: The name of the Jitterbit Server.
47
Version: The Jitterbit version that was installed on the server the last time you
connected.
Operating System: The operating system the server is running on.
Latest Login: The date and time of the last time you logged into this server.
Latest User: The Username that was used for the most recent login to the server.
Additional details, such as the unique server GUID, can be viewed by double-clicking on a
displayed server, or by clicking on the View Details... button in the toolbar.
Once you select a server name from the list, you can either Login or Remove the server
from the list. Choosing Login will launch the Login dialog box, which will be pre-populated
with the Server and Username. Choosing Remove will remove the server from the list
immediately.
Warning! Removing a server cannot be undone, so be sure that you really want to delete
the information before you do this.
Right-click to popup a menu with Login, View Details..., and Remove.
Click the Login or Remove buttons in the toolbar.
Double-click the server name to open the Server Details dialog
1. There are several ways you can access the permissions screen:
o
Select any object in the Integration hierarchical tree, click the down arrow
next to the file icon in the toolbar, then choose Permissions from the submenu; or
2. The definition's permissions appear in its own Permissions tab in the lower part of
the window.
48
Administration
3. Click the Refresh button to retrieve the available uses from the Jitterbit server you
are logged in to.
4. Select the user or group whose permissions you want to modify for this definition,
then use the checkboxes to configure the appropriate set of permissions.
5. Click the Apply button to save your changes.
49
Administration
51
Creating a Salesforce.Org
This procedure creates a new connection to Salesforce.org from within Jitterbit 5. It
assumes you've already created a Salesforce account. You just need to make the connection
between this Salesforce account and our Jitterbit application.
Open Jitterbit.
Click the icon at the top of the screen to bring up the Jitterbit Connect menu.
53
54
55
Open Jitterbit and click the wizard icon at the top of the screen.
The Jitterbit Connect Wizard menu appears.
Start the wizard by clicking the Database to Database button in the Standard
column in the Jitterbit Connect Wizard menu, which displays the Database Source
Selection screen.
Begin creating your project with the wizard.
Enter Your Salesforce Login Information
If you have already created a Salesforce.com login, connection details will appear in the
Query wizard. You may wish to click the Test Salesforce Login button.
If you have not yet created a Salesforce login, click here for details.
56
To use an existing Source database, select from the dropdown and click Edit.
To create a new Source database, select the Create New button from the
dropdown.
If you wish to write your own SQL statement for the Source, check the "Write SQL
statement instead of using the Wizard checkbox.
57
Type
Server Name
Database Name
Login
Option link
58
Test Connection: You may wish to test your connections before clicking Next.
Clicking this button makes sure all your connections work. A dialog box appears
confirming that the connection was successful.
If the connection test is unsuccessful, go back and check your parameters. You may also
contact the Jitterbit Help Desk.
After you have completed your fields:
Click Next to display the Source Table Selection screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.
Click the Download List of Tables button to download the list of available tables.
Optional: You may enter a search string as a filter. Check the Table or View checkboxes to
limit the objects to select.
Optional:You may select the checkbox for including the schema/owner.
Note: If you have not logged in to the servder at the beginning of your project, you will be
prompted to do so when you click the Download List of Tables button.
59
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
Highlight the tables to be copied in the Available Tables column, and click the
right arrow.
The selections are then copied to the Selected Tables column.
After completing your tables:
Click Next to display the Source Hierarchical Relationships screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.
Click the Select Parent Table dropdown and make a selection. In this example, we
have selected OrderHeader from the list.
Click the Select Child Table dropdown and make a selection. In this example, we
have selected OrderDetail from the list.
Then click the Join Tables button. The Join Properties dialogue appears.
60
In the Link Keys section, drag and drop an item in the parent column (OrderHeader
in this example) to the child column (OrderDetail in this example) to link them. As an
alternative, you may select an item in the child column on the right to activate the
Link button, then click this button to link the columns as shown below.
61
You may select an item in the child column on the right to activate the Remove Link
button, then click that button to remove the link.
Click the Column display order button to select "Database" (the default) or
"Alphabetical."
After completing the parent and child joining, select a radio button to identify the
join type. The default is 1 to N. In this example, we have left the default at 1 to N.
Click OK to return to the Source Hierarchical Relationships screen, which displays
your table tree showing the currently defined relationships.
Click Cancel to return to the Source Hierarchical Relationships screen without saving
your entries. To return to the previous screen, click the Back button.
After completing your tables:
Click Next to display the SQL Where Clause screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.
62
63
To edit an existing Target database, select from the dropdown and click Edit.
To create a new Target database, select the Create New button from the
dropdown.
Complete the fields as follows:
Name
Type
Server Name
Database Name
Login
64
Option link
Click the Download List of Tables button to download the list of available
tables.
Optional: You may enter a search string as a filter. Check the Table or View
checkboxes to limit the objects to select.
Optional:You may select the checkbox for including the schema/owner.
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
Highlight the tables to be copied in the Available Tables column, and click the
right arrow.
The selections are then copied to the Selected Tables column.
After completing your tables:
65
Click the Select Parent Table dropdown and make a selection. In this eample, we
have selected OrderHeader from the list.
Click the Select Child Table dropdown and make a selection. In this example, we
have selected OrderDetail from the list.
Then click the Join Tables button. The Join Properties dialogue appears.
66
In the Link Keys section, drag and drop an item in the parent column (OrderHeader
in this example) to a child column (OrderDetail in this example) to link them. As an
alternative, you may select an item in the child column on the right to activate the
Link button, then click this button to link the columns as shown below.
67
You may select an item in the child column on the right to activate the Remove Link
button, then click that button to remove the link.
Click the Column display order button to select "Database" (the default) or
"Alphabetical."
After completing the parent and child joining, select a radio button to identify the
join type. The default is 1 to N. In this example, we have left the default at 1 to N.
Click OK to return to the Source Hierarchical Relationships screen, which displays
your table tree showing the currently defined relationships.
Click Cancel to return to the Source Hierarchical Relationships screen without saving
your entries. To return to the previous screen, click the Back button.
After completing your tables:
Click Next to display the SQL Where Clause screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.
68
Select one of the radio buttons to create an Insert or Update mode. In this example,
we have selected the Insert/Update radio button.
You may optionally select and edit a table on this screen. First select the table to edit
(parent or child) and then click the Edit Selected Table button to display Select the
Primary Keys dialogue.
69
The dialogue will display items from the table you selected. Make your entries and
click OK to save them and return to the Select an Insert/Update Mode screen.
Click Next to display the Summary screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
If you need to make adjustments to your Database, click the Back button to return
to the previous screen and make the necessary changes.
After reviewing your Database, click Finish. The Transformations tab is displayed,
and the Design pane populates with the name of your new project.
In addition, you may view the operation by clicking the Operations tab to the left of
the Transformations tab.
70
Note: If you have not already logged in to your local server, you will be prompted to do so
now.
When you click Finish on the Summary screen, the Transformations tab opens in the
workspace. (You can also open it at any time by selecting the name of your project under
Jitterbit Connect / Database to Database in the Design pane and double-clicking.)
The screen conventions in this document are: Source is on the left, Target is on the right.
Procedures:
Creating a Database to Text Standard Transformation
Log in to Salesforce via Jitterbit.
To use the Jitterbit Connect Wizard, from the main menu click Help > Getting
Started. The Getting Started tab appears in the right pane of your screen.
OR
At the top of the screen, click the Select a Jitterbit Connect wizard icon.
Start the wizard by clicking the Database to Text button in the Standard column in
the Jitterbit Connect Wizard menu, which displays the Table Source Selection screen.
72
Click the Download List of Tables button to download the list of available tables.
Optional: You may enter a search string in the Filter Search window. Check the Table or
View checkboxes to limit the objects to select.
Optional:You may select the checkbox for including the schema/owner.
Note: If you have not logged in at the beginning project, you will be prompted to do so
when you click the Download List of Tables button.
73
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
Highlight the tables to be copied in the Available Tables column, and click the right
arrow.
The selections are then copied to the Selected Tables column.
To remove tables from the Selected Tables column, highlight the tables to be copied
in the Selected Tables column, and click the left arrow.
The selections are then moved back to the Available Tables column.
After completing your tables:
Test Connection: You may wish to test your connections before clicking Next. Clicking this
button makes sure all your connections work. A dialog box appears confirming that the
connection was successful.
If the connection test is unsuccessful, go back and check your parameters. You may also
contact the Jitterbit Help Desk.
Next: Clicking this button displays the optional SQL Where Clause screen.
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
74
Enter any SQL Where Clause desired to filter the source data.
Next: Clicking this button displays the optional Primary Key Selection screen.
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
75
76
Click the Unselect All button to remove your selections. You may then make new
selections.
Click OK to save your selections and return to the Insert/Update screen, which now
displays your selections.
Click Cancel to discard your selections and return to the Insert/Update screen.
To edit an existing Text Document: Select from the dropdown and click Edit and
complete the fields. The screen expands to display the name, type and format of the
Text Document.
To create a new Text Document: Click the Create New button and complete the
fields. The screen expands to display the fields for the name, type and format of the
Text Document.
77
Make sure the local file target option is enabled on the Jitterbit server.
Browse to a file from which to create a new target, or type the name of a
folder and a file name.
To auto-create a Text Document: Click the Create Structure button and complete
the fields. The screen expands to display the fields for the Delimiter & Qualifier, and
for defining Segment properties.
78
Delimiter & Qualifier: Select the Delimiter & Qualifier. The "Only When
Needed" radio button is selected by default.
Define Segment Properties:
To add a field to the list:
Click New and type a name in the Field Name Column.
Then move to Type column to activate a dropdown list from which you may select a
field type.
The Default and Format columns become editable text windows when you click them,
allowing you to add constraints to the field.
To modify treatment of a field: Select its name and click the Move Up, Move Down or
Delete Field buttons.
If your target is a flat text structure, you may optionally add a field-validation step. Click
here for details.
After completing your fields:
Click OK to return to the Target screen.
Next: Clicking this button displays the File Target screen.
79
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
To edit an existing File Target: Select from the dropdown and click Edit and
complete the fields. The screen expands to display the name, type and connection
parameters of the File Target.
To create a new Text Document: Click the Create New button and complete the
fields. The screen expands to display the name, type and connection parameters of
the File Target.
After completing your fields:
Click OK to return to the Target screen.
Next: Clicking this button displays the Summary screen.
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
80
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
If you need to make adjustments to your Database, click the Back button to return
to the previous screen and make the necessary changes.
After reviewing your Database, click Finish. Both tabs open with the
Transformations tab fully displayed, and the Design pane populates.
Note: If you have not already logged in to your local server, you will be prompted to do so
now.
81
If you have left the Use Automapper checkbox checked, most or all of the fields are mapped
for you.
Valid mapping is indicated by green lines between items in the Source and Target
columns and, in addition, by the presence of a blue square next to each validly
mapped item name.
A red line indicates invalid mapping.
A yellow line indicates that Jitterbit isn't sure if the mapping is valid, but will attempt
the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
The SFDC Wizards tab also opens when you click Finish.
Click the SFDC Wizards tab to display the Create Account screen. Here you can
change configurations such as Chunking and Truncate Fields. The latter configuration
82
will truncate fields as needed if the target field is smaller than the source field. From
the SFDC Wizards tab, you can also run or test the operation.
To view a graphic summary of the entire project, click the Operations tab, or rightclick the project name in the Design pane.
This concludes the Create process. If you wish to export this project as a Jitterpak, click
here.
This section of Help covers the creation of a standard Database to XML transformation. The
screen conventions in this document are: Source is on the left, Target is on the right.
Note: Before running this Wizard, you may wish to manually create a Target for your new
operation. For details on creating a new Target, click here.
83
Procedures:
Creating a Database to XML Standard Transformation
Log in to your Jitterbit server.
To use the Jitterbit Connect Wizard, from the main menu click Help > Getting
Started. The Getting Started tab appears in the right pane of your screen.
Now click the button labeled "Start the ConnectTM Wizard."
OR
At the top of the screen, click the Select a Jitterbit Connect wizard icon.
84
Start the wizard by clicking theDatabase to XML button in the Standard column in
the Jitterbit Connect Wizard menu, which displays the Database Source Selection
screen.
OR
Right-click on the desired Jitterbit sub-branch in the Design pane and select "New
Database to XML."
Begin creating your project with the wizard.
85
To edit an existing Source database, select from the dropdown and click Edit.
To create a new Source database, click the Create New button. The New Source
fields display.
Note: The type of source database selected will determine the connection parameters
to enter.
If you want to write a SQL statement instead of using the Wizard, check the box with
that label.
86
Note that manual SQL statements are supportable for JDBC only.
Complete the fields as follows. Fields with a red dot indicates required fields:
New Source fields:
87
Type
Click the Select button and highlight the driver name where the
database resides.
Server Name
Database Name
Login
Enter your login and click the Password button. A dialog appears
to enter your password.
Option link
88
Before clicking Next, click this button to make sure that all your
connections work. A dialog box appears confirming that the connection
was successful.
89
Cancel
Click this button to close the wizard without saving your entries.
Click the Download List of Tables button to download the list of available tables.
90
Optional: You may enter a search string in the Filter Search window.
Optional: Check the Table or View checkbox to limit the objects to search.
Optional: You may select the checkbox for including the schema/owner.
Note: If you have not logged in at the beginning of the project, you will be prompted to do
so when you click the Download List of Tables button.
User
Password
Remember Password
checkbox
Advanced link
Selection of a port.
For details, click the Help button in the lower right corner of
this dialogue.
91
Click this button to log in to the Jitterbit server and display the Table
Selection screen.
Cancel
Click this button to close the wizard without saving your entries.
Question
mark
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
92
Highlight the tables to be copied in the Available Tables column, and click the right
arrow.
The selections are then copied to the Selected Tables column, as in the example
below.
Cancel Click this button to close the wizard without saving your entries.
93
Click the Select Parent Table dropdown and make a selection. In this eample, we
have selected OrderHeader from the list.
Click the Select Child Table dropdown and make a selection. In this example, we
have selected OrderDetail from the list.
Then click the Join Tables button. The Join Properties dialogue appears.
94
In the Link Keys section, drag and drop a parent column (OrderHeader in this
example) to a child column (OrderDetail in this example) to link them. As an
alternative, you may select a column in each table to activate the Link button, then
click this button to link the columns.
You may select a link between two columns to activate the Remove Link button,
then click that button to remove the link.
Click the Column display order button to select "Database" (the default) or
"Alphabetical."
After completing the parent and child joining, select a radio button to identify the
join type. The default is 1 to N. In this example, we have left the default at 1 to N.
95
96
Next
Cancel Click this button to close the wizard without saving your entries.
97
Cancel Click this button to close the wizard without saving your entries.
98
This screen prompts you to generate an XSD (an XML schma) based on the Source table.
99
Enter an XSD file name and click the Generate XSD button. The screen expands to
display the XML schema document.
You may click the Options button to specify options for root name, target
namespace, and inclusion of default values.
100
Next
Cancel
Click this button to close the wizard without saving your entries.
101
The "Validates XML instances against the selected XSD or DTD" checkbox is checked by
default. In this example, we are leaving the checkbox checked.
Note: If you wish the option of generating an xsi:schemaLocation attribute in the target
XML, enter a Schema Location in the text field. In this example, we are not selecting this
option.
Next
Click this button to display the Target Select a File Target screen.
Cancel Click this button to close the wizard without saving your entries.
102
In this example, the MyXML Target was previously created outside the Wizard operation and
appears here. For details on Target creation, click here.
To select an existing File Target, click the dropdown and make your selection.
To edit an existing File Target, select from the dropdown and click Edit.
To create a new File Target, click the Create New button and complete the fields.
Next
Cancel Click this button to close the wizard without saving your entries.
103
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
104
If you need to make adjustments to your project, click the Back button to return to
the previous screen and make the necessary changes.
After reviewing your project, click Finish to display the Transformation tab. The
Design pane populates.
Note: If you have not already logged in to your local server, you will be prompted to do so
now.
Tip
You may wish to use Automapper, a powerful feature that can automatically
map like names and types. This can save you time if there are many
mappings.
By default, the Use Automapper checkbox is selected. Click Finish to begin
Automapper. To unselect, click the checkbox.
When you click Finish on the Summary screen, the Transformations tab opens in the
workspace. (You can also open it at any time by selecting the name of your project in the
Design pane and double-clicking.) The Mappings message is also displayed above the tab.
If you have received this message, click Close. Before closing, you may also select
the "Do not show me again" checkbox.
105
If you have left the Use Automapper checkbox checked, most or all of the fields
could be mapped for you already. Valid mapping is indicated by green lines between
items in the Source and Target columns and, in addition, by the presence of a blue
square next to each validly mapped item name.
A red line indicates invalid mapping.
A yellow line indicates that Jitterbit isn't sure if the mapping is valid for all data
possibilities, but will attempt the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
106
of both Source item and Target item. See <link to Transformations> for more
transformation details.
The SFDC Wizards tab also opens when you click Finish.
Click the SFDC Wizards tab to display the Create Account screen. Here you can
change configurations such as Chunking and Truncate Fields. The latter configuration
will truncate fields as needed if the target field is smaller than the source field. From
the SFDC Wizards tab, you can also run or test the operation.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
To view the graphic summary of the entire project, click the Operations tab, or right-click
the project name under Jitterbit Connect / Database to XML in the Design pane.
107
On the Design pane under Transformations, right-click on the project just created to
highlight it, and then left-click Deploy on the resulting dropdown.
OR
Right-click "Operations" at the top of the Design pane and then left-click Deploy.
The Deploy process begins sending the data to the server, and a progress message
appears.
To run this progress message in the background, click the Run in Background button.
To cancel the Deploy process, click the Cancel button, which returns you to the previous
screen.
108
This concludes the Database to XML creation process. If you wish to export this project as a
Jitterpak, click here.
See also:
HTTP Endpoints
Scripts
Email
Schedules
109
Start the wizard by clicking the Text to Database button in the Standard column in
the Jitterbit Connect Wizard menu, which displays the Database Source Selection
screen.
Begin creating your project with the wizard.
110
To edit an existing Source, select from the dropdown and click Edit and complete the
fields. The screen expands to display the name and type of Text Source, and the
Connection Parameters to be completed.
To create a new Source, click the Create New button and complete the New Source
fields.
For details on creating a text definition, click here.
After completing your entries:
Test Connection: You may wish to test your connections before clicking Next.
Clicking this button makes sure all your connections work. A dialog box appears
confirming that the connection was successful.
If the connection test is unsuccessful, go back and check your parameters. You may
also contact the Jitterbit Help Desk.
Click OK to return to the Source screen.
111
Next: Click this button to display the Source File Selection screen.
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
To edit an existing File Source, select from the dropdown (e.g., XML Source, Text
Source, Complex Text) and click Edit. The screen expands to display the name and
type of XML Source, and the Connection Parameters to be completed.
To create a new File Source, click the Create New button and complete the New
Source fields.
Make sure local file sources are enabled.
If your source is a flat text structure, you may optionally add a field-validation step.
Click here for details.
After completing your field entries:
112
To edit an existing Database Target, select from the dropdown and click Edit. The
screen expands to display the name and type of Database Target, and the
Connection Parameters to be completed.
To create a new Database Target, click the Create New button and complete the
New Target fields.
Click OK to return to the Target screen.
Next: Click this button to display the Target Table Selection screen.
113
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
Click the Download List of Tables button to download the list of available tables.
Optional: You may enter a search string in the Filter Search window. Check the Table
or View checkboxes to limit the objects to select.
Optional:You may select the checkbox for including the schema/owner.
Note: If you have not logged in at the beginning project, you will be prompted to do
so when you click the Download List of Tables button.
114
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
Highlight the tables to be copied in the Available Tables column, and click the right
arrow.
The selections are then copied to the Selected Tables column.
To remove tables from the Selected Tables column, highlight the tables to be copied
in the Selected Tables column, and click the left arrow.
The selections are then moved back to the Available Tables column.
After completing your tables:
Click OK to return to the Target screen.
Next: Click this button to display the Source Hierarchical Relationships screen.
Cancel: Clicking this button closes the Wizard and returns you to the "Getting
Started" tab without saving your entries.
To return to the previous screen, click the Back button.
115
Then click the Join Tables button. The Join Properties dialogue appears.
116
In the Link Keys section, drag and drop a selected item from parent column
(OrderHeader in this example) to a child column (OrderDetail in this example) to link
them. As an alternative, you may select an item in each column to activate the Link
button, then click this button to link the items.
You may select a link between two columns to activate the Remove Link button,
then click that button to remove the link.
Click the down arrow labeled "Column display order" to select "Database" (the
default) or "Alphabetical."
After completing the parent and child joining, select a radio button to identify the
join type. The default is 1 to N.
117
118
3
Select a radio button for the Insert/Update Mode. Depending on your selection,
Insert and/or Update keys will display in the box below.
Auto-truncate char fields checkbox: This selection will automatically truncate
fields as needed if the Target field is smaller than the Source field.
Optional: Selecting the Edit Selected Table button displays the Select the Primary Keys
screen.
119
Select a primary key by clicking the checkbox in the Select column to the left of the
Name.
The Nullable checkbox is checked by default. Leave selected if you want a column to
contain null data elements.
Click the Unselect All button to remove your selections. You may then make new
selections.
Click OK to save your selections and return to the Insert/Update screen, which now
displays your selections.
Click Cancel to discard your selections and return to the Insert/Update screen.
120
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
If you need to make adjustments to your Database, click the Back button to return
to the previous screen and make the necessary changes.
After reviewing your Database, click Finish. Both tabs open with the
Transformations tab fully displayed, and the Design pane populates.
Note: If you have not already logged in to your local server, you will be prompted to do so
now.
121
For manual mapping, select an item in the left column and drag it to the appropriate
item in the right column.
If you have left the Use Automapper checkbox checked, most or all of the fields are mapped
for you.
Valid mapping is indicated by green lines between items in the Source and Target
columns and, in addition, by the presence of a blue square next to each validly
mapped item name.
A red line indicates invalid mapping.
A yellow line indicates that Jitterbit isn't sure if the mapping is valid, but will attempt
the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
122
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
The SFDC Wizards tab also opens when you click Finish.
Click the SFDC Wizards tab to display the Create Account screen. Here you can
change configurations such as <link to Chunking> [TOM insert link] and Truncate
Fields [TOM insert link]. The latter configuration will truncate fields as needed if the
target field is smaller than the source field. From the SFDC Wizards tab, you can also
run or test the operation.
To view a graphic summary of the entire project, click the Operations tab, or right-click the
project name in the Design pane.
123
The Deploy process begins sending the data to the server, and a progress message
appears.
To run this progress message in the background, click the Run in Background
button.
To cancel the Deploy process, click the Cancel button, which returns you to the
previous screen.
This concludes the Create process. If you wish to export this project as a Jitterpak, click
here.
124
Start the wizard by clicking the XML to Database button in the Standard column in
the Jitterbit Connect Wizard menu, which displays the Database Source Selection
screen.
OR
Right-click on the desired Jitterbit Connect sub-branch in the Design pane and select
"New XML to Database."
Begin creating your project with the wizard.
Note: If you have not logged in at the beginning of the project, you will be prompted to do
so when you click XML to Database.
125
User
Password
Remember Password
checkbox
Advanced link
Click this button to login to the Jitterbit server and display the
Source screen.
Cancel
Question Mark
126
Cancel
127
Cancel
128
The "Validates XML instances against the selected XSD or DTD" checkbox is checked
by default. In this example, we are leaving the checkbox checked.
Next
Cancel
129
To edit an existing File Source, select from the dropdown (e.g., XML Source, Text
Source, Complex Text) and click Edit. The screen expands to display the name and
type of XML Source, and the Connection Parameters.
To create a new File Source, click the Create New button and complete the fields.
In this example, we chose an XML source from the dropdown and clicked Edit to update the
Source connection parameters.
Note: The type of File Source selected will determine the connection parameters to
enter.
For details on enabling local file sources, click here.
130
Type
Login
Get Files
Enter the name of the data source file. You may include wild
cards to get multiple files.
Filter Options
Options link
131
Before clicking Next, click this button to make sure that all
your connections work. A dialog box appears confirming that
the connection was successful.
If the connection test is unsuccessful, go back and check your
parameters and correct if necessary.
Click OK to return to the Source screen.
Next
Cancel
132
To edit an existing Database Target, select from the dropdown and click Edit. The
screen expands to display the name and type of Database Target, and the
Connection Parameters.
To create a new Database Target, click the Create New button and complete the
fields.
In this example, we chose PostgreSQL from the dropdown and clicked Edit to update the
connection parameters.
Note: The type of Database Target selected will determine the connection parameters to
enter.
PostgreSQL fields:
Name
Type
133
Driver
Click the Select button and highlight the driver name where
the database resides.
Server Name
Database Name
Login
Before clicking Next, click this button to make sure that all
your connections work. A dialog box appears confirming that
the connection was successful.
If the connection test is unsuccessful, go back and check your
parameters and correct them if necessary.
Click OK to return to the Source screen.
Next
Cancel
134
Click the Download List of Tables button to download the list of available tables.
Optional: You may enter a search string as a filter. Check the Table or View
checkboxes to limit the objects to select.
Optional: You may select the checkbox for including the schema/owner.
Note: If you have not logged in at the beginning project, you will be prompted to do
so when you click the Download List of Tables button.
135
User
Password
Remember Password
checkbox
Advanced link
Click this button to login to the Jitterbit server and display the
Table Selection screen.
Cancel
Question Mark
136
Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.
Highlight the tables to be copied in the Available Tables column, and click the right
arrow.
The selections are then copied to the Selected Tables column, as in the example
below.
137
Cancel
138
Click the Select Parent Table dropdown and make a selection. In this example, we
have selected OrderHeader [TOM - replace with correct selection once
screenshot available] from the list.
Click the Select Child Table dropdown and make a selection. In this example, we
have selected OrderDetail [TOM - replace with correct selection once
screenshot available] from the list.
Then click the Join Tables button. The Join Properties dialogue appears.
In the Link Keys section, drag and drop a parent column (OrderHeader [TOM replace with correct selection once screenshot available] in this example) to a
139
child column (OrderDetail [TOM -replace with correct selection once screenshot
available] in this example) to link them. As an alternative, you may select a column
in each table to activate the Link button, then click this button to link the columns.
You may select a link between two columns to activate the Remove Link button,
then click that button to remove the link.
Click the Column display order button to select "Database" (the default) or
"Alphabetical."
After completing the parent and child joining, select a radio button to identify the
join type. The default is 1 to N. In this example, we have left the default at 1 to N
140
Next
Cancel
141
Cancel
142
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
If you need to make adjustments to the project, click the Back button to return to
the previous screen and make the necessary changes.
After reviewing your project, click Finish to display the Transformations tab. The Design
pane populates.
143
When you click Finish on the Summary screen, the Transformations tab opens in the
workspace. (You can also open it at any time by selecting the name of your project in the
Design pane and double-clicking.) The Mappings message is also displayed above the tab.
If you have left the Use Automapper checkbox checked, most or all of the fields
could be mapped for you already. Valid mapping is indicated by green lines between
items in the Source and Target columns and, in addition, by the presence of a blue
square next to each validly mapped item name.
A red line indicates invalid mapping.
144
A yellow line indicates that Jitterbit isn't sure if the mapping is valid for all data
possibilities, but will attempt the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item. See <link to Transformations> [TOM insert
link] for more transformation details.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
The SFDC Wizards tab also opens when you click Finish.
Click the SFDC Wizards tab to display the Create Account screen. Here you can
change configurations such as <link to Chunking> [TOM insert link] and Truncate
Fields [TOM insert link]. The latter configuration will truncate fields as needed if the
target field is smaller than the source field. From the SFDC Wizards tab, you can also
run or test the operation.
To view the graphic summary of the entire project, click the Operations tab, or right-click
the project name in the Design pane.
145
To cancel the Deploy process, click the Cancel button, which returns you to the
previous screen.
This concludes the XML to Database process. If you wish to export this project has a
Jitterpak, click here.
See also:
HTTP Endpoints
Scripts
Email
Schedules
146
Start the wizard by clicking the Salesforce Query button in the Jitterbit Connect
Wizard menu, which opens the wizard. You may log in to the Jitterbit server at this
point.
Begin creating your project with the wizard.
147
Simplify your view by typing the first few letters of an object's name in your Filter
window. Or click the Objects to show dropdown and select Standard Common
Objects (or, if applicable, All Custom Objects).
148
In the Simple Query pane on the left, check the items to be included in your query.
As you do so, they will be added to the query string on the right pane. Using the
Filter window can help you quickly get to each field.
If you wish to build a relationship query, click the Relationship Query tab on the left.
149
Windows for Parent and Child relationships appear at the bottom of the left
pane. Select an onject from Child relationships and double-click to view fields
in the object.
150
Check your selections in the child table to add them to your query string. Again, you
can use the Filter window to quickly find the desired items.
You can add conditions to the query using the Field, Operator and Value fields under
Conditions; for example, "Account Number equals 01." When you have completed
entries in these fields, click Add Condition and the condition will be added to the
query string.
You can click the Test Query button on the lower right to validate the query.
After completing your entries, click Next.
Define a Target, where the data from the Salesforce Query will end up
Select an existing Target type from the dropdown, such as Database, Text, XML, or
LDAP.
151
Or create a new one by clicking the Create New button For details on Targets, click
here.
Note: If you are creating a local file target for the first time, you must enable local file
targets in Jitterbit. Click here to view the steps.
When you have completed your entries for the target, click Next.
Select a Target File Format
Note: If you have selected a database target instead of a file target, click here for
details.
152
Select a radio button to create a file format from the fields in your query, create a
new file format, or select an existing one.
Click Next.
153
Set the occurrence, frequency and duration of the operation. With Jitterbit, you can
schedule frequency down to seconds; or, with Salesforce queries, you can schedule a
real-time, event-based kickoff of an operation.
Note: When setting Duration, be aware that Start and End dates in a schedule are
inclusive.
Now click Finish. The design items for your query are created, becoming visible in
the Design pane on the left side of our screen. The transformation appears in your
work area.
154
155
You can modify any of the design items in your project by clicking the adjacent Edit button.
See also:
Jitterpaks
Exporting Your Project as a Jitterpak
156
Start the wizard by clicking the Salesforce Update button in the Jitterbit Connect
Wizard menu, which returns you to the Login screen.
Begin creating your project with the wizard.
Jitterbit Connect for Salesforce supports bi-directional data, including both queries and
upserts. This section of Help covers the creation of a Query.
The screen conventions in this document are: Source is on the left, Target is on the right.
At the top of the screen, click the Select a Jitterbit Connect Wizard icon.
157
Start the wizard by clicking the Salesforce Update button in the Jitterbit Connect
Wizard menu, which opens the wizard. You may log in to the Jitterbit server at this
point.
Begin creating your project with the wizard.
158
Highlight your Salesforce Object and click Next at the bottom of this screen. The
Source screen appears.
159
The applicable radio button should be selected by default. Click Next at the bottom
of this screen.
In this example, the file type XML was chosen. The next screen prompts you to
select an XML structure.
JSON
SAP Schemas
MSCRM Schemas
Select an option for creating a file structure from one of the radio buttons.
When finished, click Next to display the next Source screen to select a root element.
160
Select a root node and click Next. The next Source screen (not illustrated) presents
an option to validate XML instances against the selected XSD or DTD. Check the
option or leave it unchecked as appropriate. Click Next.
161
When you have completed entries on the Schedule screen, click Next. The Summary
screen appears.
Review the summary; then click Map & Finish. A Transformation mapping screen
appears.
162
Review Mapping
You can review mapping on this screen. If you selected the Use Automapper checkbox, most
or all of your mapping is completed by Jitterbit. Complete manual mapping as appropriate.
If you have left the Use Automapper checkbox selected, most or all of the fields are
mapped for you. Valid mapping is indicated by green lines between items in the
Source and Target columns and, in addition, by the presence of a blue square next to
each validly mapped item name.
A red line indicates invalid mapping.
A yellow line indicates that Jitterbit isn't sure if the mapping is valid, but will attempt
the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
163
164
Start the wizard by clicking the Salesforce Upsert button in the Jitterbit Connect
Wizard menu, which brings up the Login screen for the new project.
Begin creating your project with the wizard.
User name:
Password:
Show password
checkbox
165
Cancel
Click this button to return to the Login screen without saving your entries.
Use the dropdown to select an external ID field. In this example, AccountNumber was
selected.
Next
Cancel
Click this button to close the wizard without saving your entries.
166
Select the type of source to read from the dropdown, such as Database, Text, XML or
LDAP. Choose None if you intend to provide explicit values that do not come from other
Sources. You have the option of adding a Source later in your development of the
project.
To edit an existing Source from where the input data is read, select from the dropdown
and click Edit.
To create a new Source from where the input data is read, click the Create New button.
The New Source fields display.
In this example, we are creating the type of source to read by selecting Text from the
dropdown and clicking Edit, and creating a new Source from where the input data is
read by clicking Create New.
Note: The type of source to read selected will determine the connection parameters to
enter.
167
168
This field automatically populates when you select your type in the previous step.
In this example, the type selected is FileShare. When you select a type, the
screen expands to display the connection parameters.
Complete the connection parameters fields as follows. A red dot indicates a required field:
Path
Login
Enter your login and click the Password button. A dialog appears to
enter your password.
Get Files
Enter the name of the data source file.You may include wild cards to get
multiple files.
Filter
Options
Click this button to open a dialogue allowing you to ignore case or use a
regular expression.
Options link Click this link to perform refinements on the operation, i.e., deleting or renaming a file after processing.
Before clicking Next, click this button to make sure that all your
connections work. A dialog box appears confirming that the connection
was successful.
If the connection test is unsuccessful, go back and check your parameters
and correct them if necessary.
Click OK to return to the Source screen.
169
Next
Cancel
Click this button to close the wizard without saving your entries.
To select an existing Document Definition, select the name from the dropdown and
click Edit.
To create a new one, click the Create New button, which expands the screen to
display the New Document fields. In the example below, we are creating the Text
Document Definition by clicking the Create New button.
170
Select Document
Type
Select Document
Format
Create Manually
171
Delimiter box
Select a
template file
Select a template file from the dropdown. Or you can click the
Browse button to navigate to a template.
File content
Click this button to save your entries and return to the Source screen.
Cancel
Click this button to close the wizard without saving your entries.
Help
When you click OK, the Source screen expands to show the Delimiter and Qualifier as well
as the Segment Properties section.
172
The default is the Only when needed radio button. Leave this button
selected.
Segment
Properties
173
If all elements are correct, click OK, which returns you to the Source screen.
If the structure needs correction, click the OK button on this dialogue and edit the
structure on the Define Segment Properties tab.
Next
Cancel Click this button to close the wizard without saving your entries. You will receive
the prompt Are you sure you want to abort the wizard? Click Yes to abort the
wizard, which takes you back to the Getting Started screen; or No to remain in
the wizard.
174
This step allows you to review the elements of your project before having Jitterbit
automatically create all project definitions including operations, transformations, and web
service calls.
Take a few moments to browse through all elements of the project.
If you need to make adjustments to your Upsert, click the Back button to return to
the previous screen and make the necessary changes.
After reviewing your Upsert, click Finish. Both tabs open with the Transformations
tab fully displayed, and the Design pane populates.
Note: If you have not already logged in to your local server, you will be prompted to do so
now.
175
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item. Click here for more transformation details.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
Click the SFDC Wizards tab to display the Upsert Account Request screen.
Here you can change configurations such as Chunking and Truncate Fields. The latter
configuration will truncate fields as needed if the target field is smaller than the
source field. From the SFDC Wizards tab, you can also run or test the operation.
To exit the screen, click the X on the far right side of the tab.
176
177
Schedules
178
The applicable radio button should be selected by default. Click Next at the bottom
of this screen.
179
In this example, the file type XML was chosen. The next screen prompts you to
select an XML structure.
JSON
SAP Schemas
MSCRM Schemas
Select an option for creating a file structure from one of the radio buttons.
When finished, click Next to display the next Source screen to select a root element.
(To return to the previous screen, click the Back button.)
180
Select a root node and click Next. The next Source screen (not illustrated) presents
an option to validate XML instances against the selected XSD or DTD. Check the
option or leave it unchecked as appropriate. Click Next.
Schedule & Options
You can edit an existing schedule by opening it in the Schedules folder of the Design
pane and making the desired adjustments.
Use the wizard screen provided here to add scheduling to an unscheduled operation;
or open the operation under Design pane and making the appropriate adjustments.
In the wizard, You may click the Schedule Response Option if you want to map
information directly from the Salesforce response.
181
When you have completed entries on the Schedule screen, click Next. The Summary
screen appears.
Review the summary; then click Map & Finish. A Transformation mapping screen
appears.
182
Review Mapping
You can review mapping on this screen. If you selected the Use Automapper checkbox, most
or all of your mapping is completed by Jitterbit. Complete manual mapping as appropriate.
If you have left the Use Automapper checkbox selected, most or all of the fields are
mapped for you. Valid mapping is indicated by green lines between items in the
Source and Target columns and, in addition, by the presence of a blue square next to
each validly mapped item name.
A red line indicates invalid mapping.
A yellow line indicates that Jitterbit isn't sure if the mapping is valid, but will attempt
the transformation with this mapping.
You can complete the mapping on the Transformations tab by dragging and dropping
from Source on the left to Target on the right. When you do so, the Target item will
take on the same name as the Source item, and a blue square will appear to the left
of both Source item and Target item.
To save your transformation, click the down arrow on the Status ribbon and select
Save.
To exit this screen, click the X on the far right of the tab.
183
184
The applicable radio button should be selected by default. Click Next at the bottom
of this screen.
185
In this example, the file type XML was chosen. The next screen prompts you to
select an XML structure.
JSON
SAP Schemas
MSCRM Schemas
Select an option for creating a file structure from one of the radio buttons.
When finished, click Next to display the next Source screen to select a root element.
To return to the previous screen, click the Back button.
186
Select a root node and click Next. The next Source screen (not illustrated) presents
an option to validate XML instances against the selected XSD or DTD. Check the
option or leave it unchecked as appropriate. Click Next.
Schedule & Options
You can edit an existing schedule by opening it in the Schedules folder of the Design
pane and making the desired adjustments.
Use the wizard screen provided here to add scheduling to an unscheduled operation;
or open the operation under Design pane and making the appropriate adjustments.
In the wizard, You may click the Schedule Response Option if you want to map
information directly from the Salesforce response.
Review the summary; then click Map & Finish. A Transformation mapping
screen appears.
188
189
This concludes the Delete wizard process. If you wish to export this project as a Jitterpak,
click here.
See also:
HTTP Endpoints
Scripts
Email
Schedules
Field Validation
190
191
Select the Bulk Process action from the radio buttons: Upsert, Insert, Update,
Delete, Hard Delete or Query.
Note: Only one of these actions may be selected for a single Bulk Process wizard.
You may create additional Bulk Process wizards for other actions.
192
193
194
Temporary Storage
Local File
195
Click Continue to continue with your selection. The Select File Type screen displays.
OR
Click Select another file to change your selection.
Advanced Options
Note: These options may be adjusted outside of the wizard. Once you have completed the
wizard, access the new operation and select Advanced Options.
196
Read as UTF-8: Check this box to read the data file as utf-8 character encoding.
197
Date Options: When you click the Edit button, the Date Conversion Settings screen
appears:
198
Records per file: Enter the limited number of records per file. Use zero or leave the
field blank if there is no limitation on the value.
Characters per file: Enter the limited number of characters per file. Use zero or leave
the field blank if there is no limitation on the value.
Click OK to save your input and return to the Operation Options screen. Or click
Cancel to return to the Operation Options screen without saving your input.
Serial mode/Compress data: Select one of these checkboxes to either compress your
data or activate serial mode.
Compress is selected by default.
Serial mode helps to minimize failures during a write to the database by waiting until
one write is completed before initiating another write.
Mappings
Note: Aside from the headers, Bulk Process does not involve any other mappings.
Map headers in the Source File Headers to the corresponding Salesforce
fields.
You can map:
- By dragging and dropping a Source header to a Target field.
- By selecting Source and Target fields together and clicking Map.
Use the Remove button to remove a specific mapping.
199
Use the Start Over button to delete your mapping selections and start over.
Click Next to display the Options screen with the word "Options" at the top of
the screen highlighted in white.
You can use the Import Mappings button to import a previously saved mapping from
another file.
Or click the Save Mappings to File button to save your selected mappings to a systemnamed file for future use.
Note on External IDs
Jitterbit enables you to keep track of an external ID from your data source. Via the Bulk
Process wizard, you have the option of upserting, inserting or updating an existing record
without choosing a primary key, but using an external ID, or foreign key. The wizard itself
does not ask for this information, but the available relationships appear in the mapping tree.
You can map to the corresponding external ID fields just as you map other fields.
For operations that you have already created in earlier Jitterbit versions, the relationships
will appear in the mapping tree if you refresh the tree. For new operations they appear
automatically when you've completed the wizard.
Scheduling
The Schedule function is optional. You can edit an existing schedule by opening it in the
Schedules folder of the Project Management pane and making the desired adjustments.
Add scheduling to an unscheduled operation by opening the operation under
Operations in the Design pane and dragging a previously created scheduled to the
Operations screen. Or you may create the schedule from the Schedule and Options
screen.
200
201
202
To edit any component of your Bulk Process, click the Edit button next to the
component to be edited.
If you haven't deployed the project, clicking "Run Bulk Upsert" displays the following
prompt:
203
To view success or failure details, click the View success file or View failure file
button.
This concludes the Salesforce Bulk Process wizard. For help on exporting this project as a
Jitterpak, click here.
204
Jitterpaks
Jitterpaks
Jitterpaks are pre-defined, reusable integration solutions for Jitterbit. Jitterpaks include all
the details required for a specific integration (i.e. a CRM app to a Web Service.), including
the document definitions, transformation rules, and source and target systems.
While each integration is unique, Jitterpaks can eliminate much of the time and effort spent
initially setting up a common integration. Users can download and import Jitterpaks, and
then customize the project to meet the requirements of their specific set up.
Jitterpaks can be created by any user. Jitterbit will continue to release Jitterpaks that
we?ve created in-house. We strongly encourage all our users to publish their integrations to
the Jitterbit community. To learn more about how to publish a Jitterpak please read our
documentation.
To assure the security of sensitive information, Jitterbit automatically removes all sensitive
information such as your passwords from the exported Jitterpak.
Note: Although plugins are not included with Jitterpaks, many of the plugins you need for a
given project may be found on the Jitterbit server. If not, you may install a plugin. Click
here to review the installation steps.
Click here for steps to to find out if a plugin is required and installed.
For a current list of Jitterbit plugins, go to http://help.jitterbit.com/forums/20387311plugins.
Related topics:
Export as Jitterpak
Import Jitterpak
Export as Jitterpak
1. To export your Integration Project as a Jitterpak, do the following:
2. Choose Export as Jitterpak from the File menu, or right-click on the project node
in the tree and select "Export as Jitterpak..." from the popup menu. This opens the
Jitterpak export dialog.
3. Enter the location to save the Jitterpak to, and the name of the Jitterpak in the Save
Jitterpak as field. The default name is the name of your project, with the extension
".jpk" appended and the first time you create a Jitterpak, the default location is your
system user's home directory. The location you choose is remembered by the client
for later exports but can can be changed at any time.
205
Import Jitterpak
1. To import a Jitterpak into the client, choose the Import Jitterpak option in the
startup screen, or, if the client is already running, choose Import Jitterpak from
the File menu. This opens the Jitterpak import page.
2. Select the Jitterpak to import: Enter the path to the location of the Jitterpak you
want to import in the text field or click the Browse button to browse to the location
of the Jitterpak. You can also drag and drop the jitterpak from Windows Explorer (if
running on Windows) into the path field.
3. Optional) If you want to review the contents of the Jitterpak, click the Examine
button. A popup window will show: the location of the Jitterpak, the name of the
project from which the Jitterpak was created, the date it was created, and the client
version you must use to open the Jitterpak. Also shown are any additional
comments that were specified when the Jitterpak was created.
206
Jitterpaks
4. (Optional) If the Jitterpak is password protected, you must specify the correct
password in order to open it or examine it. Check the Security checkbox to enable
the password field.
5. (Optional) Create new GUIDs: Selecting this option results in all project items in
the Jitterpak, including the project itself, getting new GUIDs when you open the
Jitterpak. This means that the unpacked project can be changed and deployed to the
same server as the original project, without affecting the original project. With this
option selected you can also rename the project. Leave the name field blank to keep
the original name.
6. Select the folder in which to unpack the Jitterpak: Enter the location in the text field,
or click the Browse button to browse to the location for the unpacked Jitterpak.
7. If you wish to Search for existing Jitterpaks, click the
fields
In the Select folder to search field, specify the path to the folder to be
searched or click the Browse button to browse to the location to search.
Check the Search only for files ending with ".jpk" to limit the search results.
Click Search to recursively search through the file structure under the root.
The Jitterpaks that are found are listed in the Found Jitterpaks table. Doubleclick on a Jitterpak to open it.
Note: If you specified a password in the Security section, only those
Jitterpaks that are protected by that password will be found.
207
Operations
Operations
Operations are used to define what your integration process should do and when it should
be done. Operations can call one another based on events such as On Success or On
Failure, or based on conditions. Operations can be as simple as archiving a file from one
location to another to a complex sequence of operations that connect to various systems,
transform data between them, invoke web services or expose themselves as web services
for invocation by external systems. The following topics are covered in this chapter:
Creating an Operation
Operation Log
Operation History
Testing an Operation
Operation Queue
Chained Operations
See also:
Jitterbit Tips and Tricks
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Creating an Operation
Use operations to collect all the information needed to define exactly what particular
integration process does and when it should start.
Note: Operations reside within a project. You will need to create a project before you can
create an operation. See Create a Project for more information.
Follow these steps to create a new operation.
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the project in which you want to create the operation.
3. There are several ways you can start to create a new operation:
Select New in the File menu, then choose New Operation from the submenu; or
209
Click the down arrow next to the file icon in the toolbar, then choose New
Operation from the sub-menu; or
Right-click on Operations in the hierarchical tree in the Integration tab in the
left pane of the screen, then choose New Operation from the popup menu.
4.
Your new empty operation appears in its own New Operation tab in the right pane
of the window.
Configure the Operation
1. Type a name into the Name field in the operation image.
2. To enter operation properties, click the inverted arrow.
1.
(Optional) You can enter a description of the operation in the Description field.
3. Specify the operation's Activity by selecting one of the following from the Activity
selection list:
Archive - is used to move files from one location to another. No
transformation or manipulation of the file occurs between the source and
target systems. You only need to select a file Source and a file Target.
Transformation - this is the default operation type that is used to
manipulate or change data as it passes from a source to a target system. See
Data Transformation How Tos for steps to create different kinds of
transformations.
Web Service Call - consists of two transformation: the first transforms data
into a web service request and the second transforms data from a web
service response to a target system. See Setting up a Web Service Call in an
Operation for more information.
Hosted Web Service - consists of two transformations: the first
transformation has a web service request structure as source and the
second has web service response as target. See Setting up a Hosted Web
Service in an Operation for more information.
Script - is used to run a sequence of scripts without sources, targets or
transformations.
4. (Optional) If you want to run another operation once this operation has successfully
completed, OnSuccess select a pre-defined operation from the list, or Create New.
5. (Optional) If you want to run another operation if this operation fails to completed,
OnFailure select a pre-defined operation from the list, or Create New.
6. (Optional) To run this operation on a Schedule select an existing schedule or
Create New.
210
Operations
(Optional) All other operation properties are available in the Options section. These
include:
Log warnings and errors check if you want to log warnings and errors generated
during a transformation to a log file that can be viewed on the Error screen.
Run In Debug Mode check if you want to log debug messages to files on the
server. This is mostly for debugging problems during testing and should not be
turned on in production. For more details, click here.
Do not use processed files check if you don't want to record this operation's
source file transfer history.
Enable chunking check if you want Jitterbit to process data to the target system in
chunks. The Chunk Size tells Jitterbit how many source records to process per
thread, and Max Number of Threads tells Jitterbit how many concurrent threads to
process. This allows for faster processing of large data sets and is also used to
address record limits that various web service based systems impose when making a
request. The Source Chunk Node and Target Chunk Node enable the user to
define what constitutes a transaction and should be set for hierarchical data
structures and XML.
Validate and Save Your Operation
After configuring your operation, you can run a quick check to validate that all
components of the operation have been configured correctly:
Select Validate Project from the Actions menu. The Validation tab will appear below
your operation screen.
If any problems are found, the Validation View will display each component where a
problem was discovered. Click on any component to get more details on the nature
of the problem.
Click the Save button in either the main toolbar or in the operation screen's toolbar.
The name of your newly saved operation will appear in the Operations part of the
project tree.
211
Testing an Operation
The Test Operations tool performs both the Source Data test and the Transformation test at
once. There are a few circumstances when you must perform this test as an alternative to the
Source Data-Transformation test sequence:
Note: Running the Test Operation is similar to pressing the operation's Do Now button, except
that both the Source and Target's data are loaded into the Transformation map window.
212
Operations
1. Your Source is file-based and you don't have a local copy of the data file.
2. You have multiple operations with different sources, but with the same transformation.
For example, you may have an East coast and a West coast FTP server, both of which
hold a catalog data file. You can use the Test Operation tool to compare the
transformation results from the different locations.
1. Click the wrench button in the Transformation toolbar, select Test, then choose
Operation from the sub-menu.
2. If there is more than one operation using the transformation, an Input Data dialog
appears listing all the operations that currently use this transformation. Select the
appropriate operation in the list, then click the Select button to continue. If there is only
one, the transformation will run immediately.
3. The software immediately performs the transformation, using data from the specified
Source. Both the Source and Target data are loaded into the Transformation map
window.
Click the Refresh button to download the latest logged information from the server. The
complete log summary will be loaded into the upper pane.
3. Click on any entry to load more information in the lower pane. Details may include
whether there were any problems associated with the process, the probable cause, and
the location in the operation where the problem occurred.
213
Activating Operations
Check File Transfer History
Operation Monitor in Chained Operations
214
Operations
Jitterbit ensures that documents are only transferred once. When an operation starts, but
before it moves any file, it will check the transfer history list of source files (listed in the
screen's lower pane) to see if this same source information has already been used. Three
criteria are used to ensure unique file transfers:
1. File name
2. Modification date
3. Operation ID
If all of these criteria for any given source text file are the same, the system assumes the
file has been processed and skips transferring this particular file. If you need to repeat any
transfer, delete the operation entry by selecting its checkbox, then clicking the Delete
button.
215
If you are viewing the operation, click the server button in the operation's
toolbar.
2. The queue appears in its own Queue: tab in the right pane of the window.
3. Click the Refresh button to download the latest queue information from the server.
216
Operations
4. (Optional) To delete a pending process, select the checkbox next to the appropriate
entry, then click the Delete button; or if you want to delete all the pending
operations, click the Delete All button.
Warning! There is no undo for deleting a pending operation. Operations are held in
the queue until they have completed. If you delete an active operation that is
already being processed by the software, it will be removed from this list and the
system will stop processing it. If the target for this "interrupted" operation is a file,
you can delete or overwrite this partially created file. But if the operation's target is a
database, you may need to manually clean up your database tables because some of
the transformed information may already have been written to your target database
before the operation was interrupted.
Related topics:
Chained Operations
You can "chain" multiple operations within a project so that a successful outcome or failure
of that operation will trigger another operation.
Here's an example of a chain triggered by success of the first operation:
217
Select an existing operation (e.g., Upsert Accounts) to run on success of the first
operation.
Click OK.
Now you have a chained operation which you can extend further using the same
method.
218
Operations
To run the chained operation, click on the black triangle in the first operation; then
click Run Operation.
An Operation Monitor opens at the bottom of your screen, showing the name, start
and end times, and success or failure status of the chained operation.
You can also view the job in the Operation Log, which shows you the hierarchy of the
operations in the chain.
Or, view the job in Operation History. After you start the chain, you can switch to
Operation History and view it in real time.
Simple rules for chained operations:
All operations that will be chained together must reside in the same project.
Only the first operation that starts the chain may have a schedule; all
subsequent operations should not reference any schedule unless you intend
for them to run at specific times even though they are initiated by another
operation.
An operation can reference only a single success operation and/or a single
failure operation.
219
220
Operations
Chunking
Jitterbit's multi-use "chunking" feature splits the source data into multiple chunks based on
the configured chunk size. The chunk size setting used is the number of source records
(nodes) per chunk. The transformation is then performed on each chunk separately, with
each source chunk producing one target chunk. The resulting target chunks combine to
produce the final target. Note that chunking cannot be used unless records are independent.
Also, LDAP sources cannot be chunked.
API Limitations
Many web service APIs (SOAP/REST) have size limitations, e.g. a SalesForce.com upsert
only accepts 200 records per call. In this case you would configure the operation to use a
chunk size of 200. The source will be split into chunks of 200 records each and each
transformation calls the web service once with 200 records. This is repeated until all the
records have been processed. Then the resulting target files are combined.
Parallel Processing
If you have a large source and you have a multi-CPU computer, chunking can be used to
split up the source for parallel processing. Since each chunk is processed in isolation, you
can use this option to process several chunks in parallel. This only applies if the source
records don't depend on each other at the chunk node level. Web services can also be called
in parallel using this option, improving performance.
Limiting Memory Use
In cases when streaming/batch transformation can't be used, you can use chunking to make
the transformation use less memory. For more information about streaming and batch
transformation, click here. Streaming/batch transformation is preferred when the only issue
is memory use. Use as large a chunk size as possible in this case, but make sure the data
for one chunk fits well into available RAM.
To Enable Chunking:
Chunking is configured on the operation level, so you can use the same transformation in
both chunked and non-chunked mode.
Create an operation and assign a transformation to it.
Right-click on the operation and select "Options..." Check the Enable Chunking
checkbox and enter the chunk size.
221
Example 1: When you import a Jitterpak, all passwords for fileshares, databases, etc,
are blanked out for security purposes. If you have several database sources/targets
using the same password, you can enter the password into one of those
sources/targets, and then export the password settings to all applicable
sources/targets.
Example 2: You switch to a new fileshare server. Update the new path and login
information in one of your existing sources/targets, and export the new settings to
all applicable sources/targets.
222
Operations
You can only export settings between sources and targets of the same type: the
settings from a fileshare source can be exported to other fileshare sources and
targets, but not to database sources or targets.
All settings are not available for export. The following list shows what settings are
exportable for each source and target type:
Database: Driver, Server, Database, Login, Password, Additional Paramters,
Manual Connection String
Fileshare: Path, Login, Password
FTP: Host, Port, Path, Login, Password
HTTP: URL, Login, Password
LDAP: Server, Login, Password, Base Name, Port, Security Level
1. To export settings, right-click on the source or target from which you want to export
the settings, and choose Export Settings from the context menu. This launches a
dialog that displays the settings that can be exported, and the available sources and
targets to which the settings can be exported.
2. Choose what settings to include in the export by checking the corresponding
checkboxes. Some of the settings are pre-selected by default.
3. In the list, select the sources and targets which are to receive the settings. CTRL-A
will select all entries in the list.
4. Press OK to export the settings. Note that the OK button is only enabled if at least
one setting has been checked, and at least one source or target has been selected.
5. All items to which the settings were exported are saved automatically.
223
Advanced Options > Operation Options > Chunking Settings > Max Number of
Threads window.
Salesforce Query wizard allows you to build a complex relationship query.
Jitterbit enables the use of data validation rules that can be configured during the
design phase of a project.
Jitterbit has a new operation log view.
The search UI (Edit > Find) now opens up inside the main workspace, not in a popup
dialog.
The View Dependencies UI now opens up inside the main workspace, not in a popup
dialog.
Local variables. You can create local variables (as opposed to global variables) that
run only in real-time operation of a specific process and are not visible to other
operations.
New shortcuts CTRL-W and CTRL-SHIFT-W for closing the active tab and all tabs,
respectively. The older shortcuts, CTRL-F4 and CTRL-SHIFT-F4, still work as well.
When setting the Duration of a schedule, be aware that Start and End dates in a
schedule are inclusive.
New increment/decrement operators += and -=:
a += b as a shortcut for a = a + b.
a -= b as a shortcut for a = a - b.
224
Operations
225
Sources
Working with Sources
Sources define properties of the system that the Jitterbit server needs to connect and to
retrieve data. The system properties vary depending on the type of source you choose. The
following provide properties for the various sources that Jitterbit support:
1. File Type Sources and Targets
2. FTP Sources
3. File Share (SMB) Sources
4. Database Sources
5. HTTP Sources
6. LDAP Sources
7. Temporary Storage
8. XML as a Source and Target
9. Testing Source Data
Once the properties of a source have been entered and save, test connectivity to the source
system using the
button in the source toolbar. If connectivity succeeds then the source is
defined.
Note: Before using a local file source in Jitterbit for the first time, you must enable local file
sources. Click here to view the necessary steps.
See also:
Field Validation
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit
Support forum and Ticket Portal: help.jitterbit.com
227
Temporary Storage
Note: Before using a local file source in Jitterbit for the first time, you must enable local file
sources. Click here to view the necessary steps.
228
Sources
FTP
Specify the host name, which can be either the DNS name or the IP address. Port 21 is the
default for FTP, but this could vary, so check with your system administrator. The path is
the subdirectory where your files are located, e.g. "/pub/outgoing/po". The path can be
specified with or without leading/trailing slashes. Backslashes are changed to forward
slashes before connecting.
Transfer the file(s) using either Binary or Ascii mode. Binary mode is the default and is
usually the correct choice. Ascii mode can be used if the source file needs to be fetched with
the default line breaks for the operating system where the Jitterbit server is running.
FTP passive mode is the default and usually correct. In passive mode, the FTP server will tell
the client (in this case the Jitterbit server) to send data on a high numbered unprivileged
port to get around the client firewall, if any. If you have a problem connecting when using
passive mode, try disabling it and telling the FTP client to use active mode.
For a more detailed discussion regarding passive vs. active mode, please see
http://slacksite.com/other/ftp.html.
229
HTTP
An http source is simply defined by the URL of the resource, e.g.
http://dropserver/po/po.xml". To use SSL encryption, simply specify "https" instead of
"http". The http methods GET and POST are supported. For a POST, an empty request is
posted to the URL and the response is used as the source. File filters and rename are
currently not supported for http sources.
Targets
A target is a collection of properties that uniquely specify where to put a target file created
by the Jitterbit system. The definition depends on the protocol but a target basically needs a
locator, authentication information and a name for the target file.
230
Sources
Sources and targets are quite similar in many respects. The following represent the
differences:
FTP
FTP targets have the same options as sources. The only difference is the "Name File" field,
which takes the name of the target file. The target name supports the same substitutions as
the "Rename File After Processing To" field. For sources, see above.
File Share
See File Share Source and FTP target above.
HTTP
Http target supports POST and PUT. Use the PUT method if you just want to copy the file to
a URL. If the http server that you are putting the target to is currently processing using
your file, use the POST method. In this case the file might not be copied to the URL. It is up
to the http server to determine how to handle your input. The result of a transformation will
be used as the POST request. The response is ignored.
Other Transfer Protocols
There are many other potential file transfer protocols that Jitterbit could support, but these
are the most common. If you have special needs, please drop us a line at
customersupport@jitterbit.com or post a message on the forum for specific transfer
protocols that you would like to see supported by Jitterbit. Please be specific, and if you
know of an open source library that implements your transfer protocol, please include that
information.
231
Click the down arrow next to the file icon in the toolbar, then choose New Source
from the sub-menu; or
Right-click on Sources in the hierarchical tree in the Integration tab in the left pane
of the screen, then choose New Source from the popup menu.
Your new source appears in its own New Source tab in the right pane of the window.
Enter an appropriate name for your new source in the Name field.
Choose FTP/SFTP/FTPS from the Type dropdown menu.
Enter a valid FTP server location in the Host field.
(Optional) If you don't want to use the default port, uncheck the Use default port
check-box and enter the port to use in the Port field. The default port is 21 for
FTP/FTPS and 22 for SFTP/SCP.
Enter a valid path in the Path field. The path should point to an existing directory on
the ftp server.
Enter a valid username that will allow access to your ftp server into the Login field,
then click the Password button and enter the appropriate password.
Enter the file name(s) using a file filter (such as BillOfSale.txt, or *.*) in the Get
Files field. Filter options include ignore case and using regular expressions when
matching file names.
(Optional) If you are connecting to a legacy mainframe you can choose to list only
file names (FTP command NLST instead of LIST). Try this if Jitterbit cannot parse the
FTP directory listing sent back by the FTP server. When this option is used you
cannot use the "do not use processed files" operation option since Jitterbit does not
know the modified date of the files.
(Optional) Select the Delete File After Processing check-box if you want files that
have been successfully processed to be deleted.
(Optional) If you want to , enter the new name into the Rename File After Processing
To field.
(Optional) If you have headers and/or footers in your file, enter the number of lines
into the Ignore First and/or Ignore Last fields. The system will ignore these lines in
the source.
If your files are ASCII-based, choose the Ascii transfer type radio button. For all
other file types, choose Binary transfer type. Binary is the default and usually works
best.
(Optional) If the FTP server uses select the Passive Mode checkbox. The default is to
use passive mode.
232
Sources
.
Creating a FileShare Source
If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
Make sure you have opened the appropriate project in which you want to create the
new source.
233
There are several ways you can start to create a new source:
o
Select New in the File menu, then choose New Source from the sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Source from the sub-menu; or
Right-click on Sources in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Source from the popup menu.
Your new source appears in its own New Source tab in the right pane of the window.
Enter an appropriate name for your new source in the Name field.
Choose FileShare from the Type dropdown menu.
Enter the fileshare UNC path in the Path field. For example, \\demo\ directs the
system to look for a shared network drive called "demo". The Path in this case is the
UNC name of the share (excluding the file name(s)!), e.g.
"\\dropserver\incoming\po". The UNC name has to start with "\\" but the final
backslash is optional.
(Optional) If you need to enter a login (in the form of DomainName\UserName) and
password to access the shared network drive, enter a valid username into the Login
field, then click the Password button and enter the appropriate password.
Enter the file name(s) (such as BillOfSale.txt, or *.*) that contain your source
information in the Get Files field. Filter options include ignore case and using regular
expressions when matching file names.
(Optional) Check the Delete File After Processing check-box if you want files that
have been successfully processed to be deleted.
(Optional) If you want to , enter the new name into the Rename File After Processing
To field.
(Optional) If you have headers and/or footers in your file, enter the number of lines
into the Ignore First and/or Ignore Last fields that you want the system to ignore.
Click the Save button in either the main toolbar or the target's toolbar.
(Optional) If you want to test whether the Jitterbit server can connect to the
specified fileshare, click the green double-arrow button in the source's toolbar. A list
of files matching the pattern specified in the Get Files will be returned.
Related topics:
Setting Permissions for this Source
Using this Source in an Operation
234
Sources
235
14. (Optional) If you are using a JDBC driver you can set the Fetch Size property. This
property gives the driver a hint as to the number of rows that should be fetched from
the database when more rows are needed. This setting can be used for more
efficient processing for large data sets.
15. (Optional) If there are any additional parameters that you want to add to your
database connection string, enter them in the Additional Connection String
Parameters field.
16. (Optional) The Construct Connection String manually checkbox is unchecked by
default. If you would like to define it yourself, check this check box. You must then
enter the connection string in the corresponding text field. For more information,
see Manual connection string.
17. Click the Save button in either the main toolbar or the source's toolbar.
18. (Optional) If you want to test whether your new source can connect with the
specified database, click the green double-arrow button in the source's toolbar.
Related topics:
Select New in the File menu, then choose New Source from the sub-menu;
or
Click the down arrow next to the file icon in the toolbar, then choose New
Source from the sub-menu; or
4. Your new source appears in its own New Source tab in the right pane of the
window.
5. Enter an appropriate name for your new source in the Name field.
236
Sources
Request Headers: Any text entered in this box will be sent as HTTP headers.
Specify one header per line unless the header is wrapped according to the
HTTP standard. Global data elements in square brackets will be replaced with
values as usual.
12. Click the Save button in either the main toolbar or the source's toolbar.
13. (Optional) If you want to test whether Jitterbit can connect to the specified URL, click
the green double-arrow button in the source's toolbar. Jitterbit will do a http HEAD
request and return an error if it is not successful. Note that HEAD may not be
permitted by the http server that you are connecting to even if GET/POST is.
237
Related topics:
Setting Permissions for this Source
Using this Source in an Operation
Export Source And Target Settings
About SSL Certificates
238
Sources
secure
0 -- non-secure connection. Default port: 389
1 -- secure connection. Default port: 389
2 -- secure connection using LDAP over SSL. Default port: 636
Code: Select all
bool LdapAdd(string type, string value)
bool LdapRemove(string type, string value)
bool LdapReplace(string type, string value)
bool LdapExecute(string path)
string LdapSearch(string path, string filter, int iDetail, string attribute1, string
attribute2, ...)
Path -- The distinct name used as the base of the search.
Filter -- The query string as defined by RFC 4515.
iDetail:
pass 0 -- Returns a simple string that is the first attribute found that matches your
filter.
pass 1 -- Returns an XML representation of the search results. This can be set to a
data element using the Set() function and then accessed in this or later scripts using
Get() and an XPath query.
attribute1 -- An attribute that you wish to be included in the search result, i.e., the
attribute you are searching for. You can specify as many attributes as you like,
separated by commas. See example below.
To Search a Directory
Code: Select all
LdapConnect()
LdapSearch()
Example:
Code: Select all
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
239
Set( "mySearchResults",
LdapSearch("CN=Users,DC=finland,DC=company,DC=com",
"(&(objectCategory=person)(objectClass=user))", 1, "name",
"whenCreated", "description", "telephoneNumber") )
To Modify a Directory
Code: Select all
LdapConnect()
one or more of:
Code: Select all
LdapAdd()
LdapRemove()
LdapReplace()
followed by:
Code: Select all
LdapExecute()
Example:
Code: Select all
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
LdapAdd("description","Thinks a lot."); LdapReplace("telephoneNumber","(510)
555 1000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
Using Data From Source Tree in Calls
As with all other functions, you can use data from the source tree in the calls. To do so, put
the cursor where you want the source data to appear and double click on a node of the
source tree in the lower right pane of the Formula Builder. A path that Jitterbit understands
will be inserted at the cursor location.
240
Sources
Make sure you have opened the appropriate project in which you want to create the
new source.
There are several ways you can start to create a new source:
o
Select New in the File menu, then choose New Source from the sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Source from the sub-menu; or
Right-click on Sources in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Source from the popup menu.
Your new source appears in its own New Source tab in the right pane of the window.
Enter an appropriate name for your new source in the Name field.
Choose LDAP from the Type dropdown menu.
Enter the name of the LDAP server you want to get data from.
(Optional) If your LDAP server uses a port other than the default (389), uncheck the
Use default port checkbox and enter the port number in the Port field.
Enter a valid username that will allow access to your LDAP server into the Login field,
then click the Password button and enter the appropriate password.
(Optional) If you only wish to access the LDAP source stating from a particular path,
you can also supply a Base Distinguished Name. This will be the starting point when
querying the LDAP source for data when this source definition is used in an LDAP
transformation.
(Optional) Choose the appropriate connection security mode.
Click the Save button in either the main toolbar or the source's toolbar.
Related topics:
Setting Permissions for This Source
Using This Source in an Operation
Export Source And Target Settings
241
Select New in the File menu, then choose New Source from the sub-menu;
or
Click the down arrow next to the file icon in the toolbar, then choose New
Source from the sub-menu; or
4. Your new source appears in its own New Source tab in the right pane of the
window.
5. Enter an appropriate name for your new source in the Name field.
6. Choose Temporary Storage from the Type dropdown menu.
7. Enter a string in the Path field. Characters that can not be used in a file name (such
as *, ?, < etc.) are not allowed. Both '/' and '\' can be used as path separators. This
field is optional.
8. Enter the file search filter in the Get Files field. Filter options include ignore case
and using regular expressions when matching file names. The default file search filter
can be a file name (such as BillOfSale.txt) or a simple file filter using * to match
any number of characters and ? to match exactly one character, such as *.* or
file?.txt.
9. (Optional) Check the Delete File After Processing check-box if you want files that
have been successfully processed to be deleted.
10. (Optional) If you want to rename your source files, enter the new name into the
Rename File After Processing To field.
242
Sources
11. (Optional) If you have headers and/or footers in your file, enter the number of lines
into the Ignore First and/or Ignore Last fields that you want the system to ignore.
12. Click the Save button in either the main toolbar or the target's toolbar.
13. (Optional) To see a list of files that match the given file filter in the configured path
click the green double-arrow button in the source's toolbar. A list of files matching
the pattern specified in the Get Files will be returned.
Related Topics:
243
Tell Jitterbit to update the database once the transformation is complete. Jitterbit is
often used for batch jobs that fetch data, transform it to a target and update the
source database (if the operation succeeded) so that the source data is not
processed again. To use this feature:
o
Select an update field value to set fields of that record to a particular value.
An example for the use of this feature is transforming all orders with status
"shipping unconfirmed" to a shipping interface target and then updating order
status to "shipping confirmed" using Order ID as the key.
If you selected multiple objects, then you'll need to create the relationships/SQL joins
between objects.
Define the parent/child (one or more) relationships by selecting parent tables and
columns and child tables and columns to join.
Define the type of relationship between these objects.
This is similar to defining regular joins or outer joins, but allows you to define more
constraints if required:
1 to N tells Jitterbit that every parent record must have 1 or more child records.
1 tells Jitterbit that every parent record only has one child record and Jitterbit will
only process the first child record it selects
0 to N tells Jitterbit that every parent record can have 0 or more child records
Inserting Additional Where Clause and Order By
This feature allows for filtering and sorting of data. Using Order By within a child structure
will cause it to occur also within the parent structure.
Once you have completed defining your database source, a tree data structure should
appear in the source transformation tree to depict what you have created.
244
Sources
To transform data from XML, select XML as the source type when creating a transformation.
You will then be prompted for the following:
Selecting the Schema
Select an XML Schema (XSD) or Data Type Definition (DTD) that describes the structure of
the XML document you wish to format the target data to.
The system displays all previously used XSD and DTD structures on your server.
Select the structure you need if you have already uploaded it to your server.
If you have not used this schema before, you will need to upload the XSD or DTD to
your server before it can be loaded.
Many XML schema files reference other schema files to derive information about data types
and schema rules. As Jitterbit loads a schema file to the server, if it finds references
(imports) to other files it will prompt you to load those to the server.
Selecting the root node
All XML structures must have only one root node, which can contain other nodes and
elements. Jitterbit will depict the XML structure starting from the root node you select.
To transform data to XML, select XML as the target type when creating a transformation.
You will then be prompted for the following:
The system displays all previously used XSD and DTD structures on your server.
Select the structure you need if you have already uploaded it to your server.
If you have not used this schema before, you will need to upload the XSD or DTD to
your server before it can be loaded.
245
Many XML schema files reference other schema files to derive information about data types
and schema rules. As Jitterbit loads a schema file to the server, if it finds references
(imports) to other files, it will prompt you to load those to the server.
Values
XML schemas can also tell you what values are valid for a particular element. For example,
element A is Boolean and must have the values True, False, 1, 0, Yes, or No. Element B can
only have the values Red, White or Blue. The Jitterbit server can enforce XML validation
before generating the target document.
246
Sources
be deployed first, so if any item has changed after the last time it was deployed, you
will be asked to deploy it.
2. Depending on the Source's data type, you will either need to specify the location of
the file (for file-based sources), or provide the appropriate query filter (for database
sources).
Note: If the Source's data type is file-based and you don't have a local copy of the
Source data to test, you can alternatively select the Test > Operation tool.
File-Based Sources
If your Source is file-based (e.g., Text or XML), then a dialog will appear, asking for the
location of the source data file.
By default, the Jitterbit client will remember the source files you have tested for each
transformation, and the dialog gives immediate access to previously tested files. With this
option turned on, a copy of the tested source file is saved within the project data, so the file
will be available even if the original file is deleted. If you do not want the project to store a
copy of your file, please uncheck the "Include the new file in the project" checkbox. Your
preference will be remembered in subsequent Load Source Data tests.
When you export your project as a Jitterpak, you also have the option to exclude any test
data that might be saved in your project.
Database Sources
If your Source is a database, then a filter dialog will appear, letting you specify the
appropriate WHERE clause for filtering your source data. If your source data has many
columns, it often makes sense to filter out a subset to load into the tree.
Reviewing Data
Once you have provided details about your Source data, the content is loaded into the
Transformation map's Source tree. The values are placed to the right of their corresponding
data elements.
As shown in the figure below, you can toggle through a multi-entry element's values by
clicking the appropriate folder's 1 of N control. You can shift-click to go to a previous
instance or right click to go to an arbitrary instance.
247
248
Targets
Defining Targets
Targets define properties of the system that the Jitterbit server needs to connect to post
data. The system properties vary depending on the type of target you choose. The following
provide properties for the various sources that Jitterbit support:
1. FTP Targets
2. File Share (SMB) Targets
3. Database Targets
4. HTTP Targets
5. LDAP Targets
6. Temporary Storage
Once the properties of a target have been entered and save, test connectivity to the target
system using the
button in the target toolbar. If connectivity succeeds then the target is
defined.
Note: Before using a local file target in Jitterbit for the first time, you must enable local file
targets. Click here to view the necessary steps.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Defining Targets
Targets define properties of the system that the Jitterbit server needs to connect to post
data. The system properties vary depending on the type of target you choose. The following
provide properties for the various sources that Jitterbit support:
1. FTP Targets
2. File Share (SMB) Targets
3. Database Targets
4. HTTP Targets
5. LDAP Targets
6. Temporary Storage
Once the properties of a target have been entered and save, test connectivity to the target
system using the
button in the target toolbar. If connectivity succeeds then the target is
defined.
249
Note: Before using a local file target in Jitterbit for the first time, you must enable local file
targets. Click here to view the necessary steps.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
250
Targets
2. Click the down arrow next to the file icon in the toolbar, then choose New Target from
the sub-menu; or
3. Right-click on Targets in the hierarchical tree in the Integration tab in the left pane of the
screen, then choose New Target from the popup menu.
4. Your new target appears in its own New Target tab in the right pane of the window.
5. Enter an appropriate name for your new target in the Name field.
6. Choose FTP/SFTP/FTPS from the Type dropdown menu.
7. Enter a valid FTP server location in the Host field.
8. (Optional) If you don't want to use the default port, uncheck the Use default port
check-box and enter the port to use in the Port field. The default port is 21 for
FTP and 22 for SFTP.
9. Enter a valid path in the Path field. The path should point to an existing directory
on the ftp server and the specified user needs to have write permission to the
specified directory.
10. Enter a valid username that will allow access to your ftp server into the Login field, then
click the Password button and enter the appropriate password.
11. Specify how to by entering the new name/format into the Name File(s) field.
12. The default is to upload a file with a different name and then rename it to the final name.
Uncheck Use FTP Rename if this option causes problems.
13. If your files are ASCII-based, choose the Ascii transfer type radio button. For all
other file types, choose Binary transfer type. Binary is the default and usually
works best.
14. (Optional) If the FTP server uses , select the Passive Mode checkbox.
Try SSL: Try to initiate an SSL encrypted transfer, if that fails fall back to
using non-encypted FTP.
Require SSL for control connection: SSL encrypts the initial FTP control
connection. This makes sure that the password exchange is encrypted. The
transfer itself will not be encrypted but at least the password is not sent in
clear text. If the data itself is not sensitive or already encrypted you can use
this option. If the server does not support FTPS the transfer will fail.
Require SSL for all data transfer: Requires both the control connection and
the data connection to be SSL encrypted. If the server does not support SSL
the transfer will fail.
SFTP: Use the SFTP(SCP) protocol instead of FTP. This option can only be
used if you are connecting to an SFTP server. Public and private key files for
SFTP can be configured in the server configuration file. Note that SFTP and
FTP(S) are completely different protocols and use different default ports.
16. Click the Save button in either the main toolbar or the target's toolbar.
17. (Optional) If you want to test whether the Jitterbit server can connect to the specified
FTP server, click the green double-arrow button in the target's toolbar. The server will
only check that the specified directory exists and not that the specified user has write
permission to the directory.
Related topics:
252
Targets
Select New in the File menu, then choose New Target from the sub-menu;
or
Click the down arrow next to the file icon in the toolbar, then choose New
Target from the sub-menu; or
Right-click on Targets in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Target from the popup menu.
4. Your new target appears in its own New Target tab in the right pane of the window.
5. Enter an appropriate name for your new target in the Name field.
6. Choose FileShare from the Type dropdown menu.
7. Enter the UNC path in the Path field. For example, \\demo\ directs the system to
look for a shared network drive called demo.
8. (Optional) If you need to enter a login (in the form of DomainName\UserName) and
password to access the shared network drive, enter a valid username into the Login
field, then click the Password button and enter the appropriate password.
9. Enter the file name variable into the Name File(s) field.
10. Click the Save button in either the main toolbar or the target's toolbar.
11. (Optional) If you want to test whether your new target can connect with the specified
fileshare, click the green double-arrow button in the target's toolbar.
Related topics:
253
3. Right-click on Targets in the hierarchical tree in the Integration tab in the left pane of the
screen, then choose New Target from the popup menu.
4. Your new target appears in its own New Target tab in the right pane of the window.
5. Enter an appropriate name for your new target in the Name field.
6. Choose FileShare from the Type dropdown menu.
7. Enter the UNC path in the Path field. For example, \\demo\ directs the system to look for
a shared network drive called "demo".
8. (Optional) If you need to enter a login (in the form of DomainName\UserName) and
password to access the shared network drive, enter a valid username into the
Login field, then click the Password button and enter the appropriate password.
9. Enter the into the Name File(s) field.
10. Click the Save button in either the main toolbar or the target's toolbar.
11. (Optional) If you want to test whether your new target can connect with the specified
fileshare, click the green double-arrow button in the target's toolbar.
Related topics:
Your new target appears in its own New Target tab in the right pane of the window.
254
Targets
Enter an appropriate name for your new target in the Name field.
Choose Database from the Type dropdown menu.
Select the appropriate database driver by clicking the Select... button next to the
Driver field. Depending upon the driver you select, different fields may become
enabled or disabled.
Enter the database server name (either name or IP address) you want to access into
the Server Name field.
Enter the name of the database you want to access into the Database Name field.
Enter a valid username that will allow access to your database into the Login field,
then click the Password button and enter the appropriate password.
(Optional) If the database server is listening to a non-default port you can unselect
Use default port and specify a custom port. The default port differs depending on
the selected driver.
(Optional) Select the Transaction Isolation Level from the dropdown. The options
are the standard Transact-SQL ones. Driver specific transaction isolation levels are
not supported. The default is to use the driver or database server default transaction
isolation level.
(Optional) If you want to set a limit for how long to wait for a successful connection
to the database, enter the number of seconds in the Timeout field.
(Optional) If there are any additional parameters that you want to add to your
database connection string, enter them in the Additional Connect String
Parameters field.
(Optional) The Construct Connection String manually checkbox is unchecked by
default. If you would like to define this string yourself, check this check box. You
must then enter the string in the corresponding text field. For more information, see
Manual connection string.
Click the Save button in either the main toolbar or the target's toolbar.
(Optional) If you want to test whether your new target can connect with the specified
database, click the the green double-arrow button in the target's toolbar.
Related topics:
Setting Permissions for this Target
Using this Target in an Operation
Export Source And Target Settings
Manual connection string
255
Select parent tables and columns and child tables and columns to join by. This is
256
Targets
1 to N tells Jitterbit that every parent record must have 1 or more child records.
1 tells Jitterbit that every parent record only has one child record and Jitterbit will
only process the first child record it selects
0 to N tells Jitterbit that every parent record can have 0 or more child records
Select the mode of operation. An operation can have one of the following modes:
1. Insert that will instruct Jitterbit to perform inserts only to the target table
2. Update that will instruct Jitterbit to perform updates only to the target table
using the identified key to identify the record that requires updating.
3. Insert/Update that will first check to see if the record with the identify key
exists. If it does, the system will update, otherwise it will insert.
Once you have completed defining your database target, a tree data structure should
appear in the target transformation tree to depict what you have defined.
In mapping to your database target, if you have a multi-table target with parent child
relationships and you are inserting data, you should become familiar with using the
transformation functions <SQLIDENTITY> and <SEQUENCE>.
<SQLIDENTITY> is used for all target databases that support identity or automatic number
generating keys. Once the parent is inserted then the child can inherit the generated
number from the parent by mapping this function to the foreign key in the child table.
<SEQUENCE> performs a similar action and should be used for Oracle.
257
258
Targets
259
export TNS_ADMIN=/usr/local/oracle/10.2.0/network/admin
export TWO_TASK=//dbdpmr:1555/pmrd1
Connecting to MSSQL
JDBC can be used to connect to SQL Server. This is the recommended way on non-Windows
platforms.
If you want to integrate with a Microsoft SQL Server database with ODBC, we recommend
that you install the Jitterbit server on a Windows server, as Windows includes ODBC drivers
for MS SQL Server. Linux ODBC drivers for SQL Server have not been tested by Jitterbit.
260
Targets
Connecting to MySQL
When connecting to a MySQL database, the server that Jitterbit Server runs on needs to
have the MySQL ODBC driver installed. If you do not have it available, it can be downloaded
from http://www.mysql.com/downloads/connecto ... #downloads.
Use the 3.51 driver and *not* the 5.1 version, as the 5.1 driver is unsuitable for use with
Jitterbit. It is best to use the JDBC driver for MySql that ships with Jitterbit.
261
you are unable to see the driver, double check that you are connecting to the correct
machine (i.e., stop the Jitterbit Apache service on that machine and make sure you
no longer can connect using the client).
Permission Errors
If you get permission errors, such as "Access denied for user 'root'@'%' to database 'test',"
and you are sure the credentials are correct, it may be a MySql configuration problem. You
can configure MySql to accept different credentials for different IP-addresses or a group of
addresses. See the MySql documentation or contact your MySql administrator.
Ports
The port to open to allow the Jitterbit Server to communicate with a remote MySQL
database depends on the port that MySQL has been configured to listen to. Open that port
(the default is 3306) on the machine where the MySQL database server is running.
262
Targets
Connecting to postgreSQL
The PostgreSQL ODBC driver should already be available on your Jitterbit Server as the
Jitterbit Server currently uses PostgreSQL to store internal data.
The definition of PostgreSQL database sources and targets in the Jitterbit Integration
Environment is as follows:
Select the Driver (typically called PostgreSQL)
263
Client Encoding
If you get the error 'client encoding mismatch' when you test the connection to a
PostgreSQL database, it means the encoding that the PostgreSQL server you are connecting
to is using a different encoding than the default one assumed by the PostgreSQL driver.
Either use a different driver or add the following to the "Additional Connection String
Parameters": ConnSettings=SET CLIENT_ENCODING to 'LATIN1'
On Windows, set the client encoding to WIN1251.
Linux Users
When running the Jitterbit server on Linux, always use the PostgreSQL driver installed by
Jitterbit. The PostgreSQL driver installed with many distributions as part of unixODBC does
not work well with Jitterbit and produces many errors.
Targets
Directory, Netscape Directory Server). A directory usually contains information about users
and network resources, but can contain any kind of data.
Using LDAP with Jitterbit
To use LDAP with Jitterbit, create a transformation and open the Formula Builder:
Select a node in the target tree.
Click the Formula button under the tree.
In the Formula Builder's function tree (lower left pane), scroll down to the LDAP section to
find the functions you can use with LDAP:
Code: Select all
bool LdapConnect(string host, string user, string password, int secure)
Host -- The host name of the directory server. If you receive the error message
"Server Down," you may need to specify a fully qualified domain name (e.g.,
"directory.finland.philo.fi").
This error message may also appear if:
firewall is preventing access.
The directory is configured to respond to a different port from the one you are using.
You can specify a port in the host parameter:
Example:
"directory.finland.philo.fi:10389")
User -- The user name (see examples below).
Password -- The user's password.
secure
0 -- non-secure connection. Default port: 389
1 -- secure connection. Default port: 389
2 -- secure connection using LDAP over SSL. Default port: 636
Code: Select all
bool LdapAdd(string type, string value)
bool LdapRemove(string type, string value)
bool LdapReplace(string type, string value)
265
266
Targets
LdapRemove()
LdapReplace()
followed by:
Code: Select all
LdapExecute()
Example:
Code: Select all
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
LdapAdd("description","Thinks a lot."); LdapReplace("telephoneNumber","(510)
555 1000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
Using Data From Source Tree in Calls
As with all other functions, you can use data from the source tree in the calls. To do so, put
the cursor where you want the source data to appear and double click on a node of the
source tree in the lower right pane of the Formula Builder. A path that Jitterbit understands
will be inserted at the cursor location.
267
Select New in the File menu, then choose New Target from the sub-menu;
or
Click the down arrow next to the file icon in the toolbar, then choose New
Target from the sub-menu; or
Right-click on Targets in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Target from the popup menu.
4. Your new target appears in its own New Target tab in the right pane of the window.
5. Enter an appropriate name for your new target in the Name field.
6. Choose HTTP from the Type dropdown menu.
268
Targets
7. Enter a valid URL address in the URL field. An HTTP target is simply defined by the
URL of the resource, e.g. "http://dropserver/po/po.php". To use SSL encryption
simply specify "https://" instead of "http://" in the URL.
8. (Optional) Enter a valid username that will allow access to your HTTP server into the
Login field, then click the Password button and enter the appropriate password.
9. (Optional) If you want to save the response from the http server you can choose
another target to write it to in the Write response to (optional) drop down, or
choose the browse button to create a new target or edit the current selection.
10. You can switch between POST and PUT by clicking on the corresponding radio button.
11. (Optional) The default Content-Type is application/x-www-form-urlencoded. This can
be changed by un-checking the Use default Content-Type checkbox and specifying
what is required.
12. (Optional) Advanced options modify the HTTP headers that are being sent with the
request:
Enable content encoding: If checked, the Accept-Encoding header will be
sent with the encodings supported by Jitterbit. Currently gzip and compress
are supported. This option is off by default.
Enable chunked transfer encoding: If checked, the "Transfer-Encoding:
chunked" header will be sent. Use this option if you are transfering large data
sets. This option is off by default.
Send Expect: 100-continue: If checked, the "Expect: 100-continue" header
will be sent. With this option no data will be sent until the http server has
validated the headers. Use this option if you are sending large amounts of
data but don't want to use chunked transfer encoding. This option is off by
default.
Request Headers: Any text entered in this box will be sent as HTTP headers.
Specify one header per line unless the header is wrapped according to the
HTTP standard. Global data elements in square brackets will be replaced with
values as usual.
Click the Save button in either the main toolbar or the target's toolbar.
(Optional) If you want to test whether Jitterbit can connect to the specified
URL, click the green double-arrow button in the source's toolbar. Jitterbit will
do a http HEAD request and return an error if it is not successful. Note that
HEAD may not be permitted by the http server that you are connecting to
even if PUT/POST is.
Global data elements that affect the way http posts are performed
269
270
Targets
3. There are several ways you can start to create a new target:
o
Select New in the File menu, then choose New Target from the sub-menu;
or
Click the down arrow next to the file icon in the toolbar, then choose New
Target from the sub-menu; or
Right-click on Targets in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Target from the popup menu.
4. Your new target appears in its own New Target tab in the right pane of the window.
5. Enter an appropriate name for your new target in the Name field.
6. Choose Temporary Storage from the Type dropdown menu.
7. Enter a string in the Path field. Characters that can not be used in a file name (such
as *, ?, < etc.) are not allowed. Both '/' and '\' can be used as path separators. This
field is optional but it is recommended to use a path that is globally unique since any
user of the same server can write files to temporary storage.
8. Enter the name of the target file(s) in the Name File(s) field.
9. Click the Save button in either the main toolbar or the target's toolbar.
10. (Optional) A Temporary Storage target can be tested but it will only fail if the path is
not a valid file name on the operating system where the Jitterbit server is running.
Click the green double-arrow button in the target's toolbar to test the target.
Related topics:
271
The system displays all previously used XSD and DTD structures on your server.
Select the structure you need if you have already uploaded it to your server.
If you have not used this schema before, you will need to upload the XSD or DTD to
your server before it can be loaded.
Many XML schema files reference other schema files to derive information about data types
and schema rules. As Jitterbit loads a schema file to the server, if it finds references
(imports) to other files it will prompt you to load those to the server.
Selecting the Root Node
All XML structures must have only one root node, which can contain other nodes and
elements. Jitterbit will depict the XML structure starting from the root node you select.
Using XML as a Target
To transform data to XML, select XML as the target type when creating a transformation.
You will then be prompted for the following:
Selecting the Schema
Select an XML Schema (XSD) or Data Type Definition (DTD) that describes the structure of
the XML document to which you wish to format the target data.
The system displays all previously used XSD and DTD structures on your server.
Select the structure you need if you have already uploaded it to your server.
If you have not used this schema before, you will need to upload the XSD or DTD to
your server before it can be loaded.
Many XML schema files reference other schema files to derive information about data types
and schema rules. As Jitterbit loads a schema file to the server, if it finds references
(imports) to other files, it will prompt you to load those to the server.
Selecting the Root Node
All XML structures must have only one root node, which can contain other nodes and
elements. Jitterbit will depict the XML structure starting from the root node you select.
Transforming XML structures
Transforming to XML structures is similar to transforming to other data structures. If XML is
used as a target, then XML schemas can provide rules and more information about their
structure than standard database table interfaces. Jitterbit will highlight those rules to help
you in mapping. Examples of these include:
Mandatory fields highlighted in red in the Target tree.
Mandatory fields may highlight once you map to certain elements, as they may be
conditional. For example, if element A has a value, then element B must have a value;
otherwise element B is optional.
272
Targets
Values
XML schemas can also tell you what values are valid for a particular element. For example,
element A is Boolean and must have the values True, False, 1, 0, Yes, or No. Element B can
only have the values Red, White or Blue. The Jitterbit server can enforce XML validation
before generating the target document.
3. In the list, select the sources and targets which are to receive the settings. CTRL-A
will select all entries in the list.
4. Press OK to export the settings. Note that the OK button is only enabled if at least
one setting has been checked, and at least one source or target has been selected.
5. All items to which the settings were exported are saved automatically.
274
Transformations
Transforming Data Overview
Data can be transformed between a source and target system using any of the systems and
data formats that Jitterbit supports. Depending on the source and target system selected,
the transformation wizards takes you through a set of steps to define the information
required to perform the transformation. Data structures representing both source and target
systems are presented in graphical tree structures.
The following table describes the different journeys that the transformation wizard takes a
user through depending on the type of source and target used:
Target
Source
Target
Databases
XML
Databases
Source
Database
Text
LDAP
Text
Text
XML
XML
Databases
Text
Text
XML
XML
Creating LDAP
Transformations
EDI
275
None
Once you have select your source and target systems and have provided the information
required by the transformation wizard you are ready for transformation mapping.
Click to view a directory of data-transformation types.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Source
Target
Databases
XML
Databases
Source
Database
Text
Text
Text
XML
XML
Databases
Text
276
Transformations
LDAP
XML
XML
Creating LDAP
Transformations
EDI
None
Once you have select your source and target systems and have provided the information
required by the transformation wizard you are ready for transformation mapping.
Click to view a directory of data-transformation types.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
277
278
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New.
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
Transformations
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
279
Transformations
Initialize the "diff session". Here we define the type of diff-algorithm to use.
Currently "chunked" and "ordered" are supported. Chunked will always work but
ordered may be faster if the order of the source data rows is guaranteed.
Handle inserted/updated/deleted rows. The order that they are handled is arbitrary
and depends on the order of the operations that implement the synchronization.
Complete the diff session.
Initialize
Initializing is done by calling the InitializeDiff function with a unique "diff id" and the
DiffKeyList function to define the primary keys of the source table.
Example:
InitializeDiff("diff id has to be unique for each diff process");
DiffKeyList("pk1", "pk2");
Handle inserts/updates/deletes
Before each transformation the methods DiffAdd(), DiffUpdate() and DiffDelete() are called.
Any transformation running after that will be passed the added, updated or deleted rows
respectively. The source of the transformations has to be the same database table, but the
target can be different in the three cases.
Finalize
DiffComplete() must be called when the three cases have been handled successfully.
In a typical Jitterpak, we use three operations: The first to initialize and handle adds, the
second to handle updates and the last to handle deletes and finalize. The operations use the
same transformation that simply dumps records to a CSV file. A parameter is used to write
the records to files with different names. This example "sorts" the records into inserted,
updated and deleted ones.
Other functions that affect the diff functionality:
SetDiffChunkSize Sets a parameter for the "chunked" diff algorithm. A larger value is faster
but uses more memory.
OrderedDiffKeyList Specifies the sort order of the source if the "ordered" diff algorithm is
used.
ResetDiff Resets or purges the diff session. Can be used in error handling to reset the diff
session on failures.
281
See the documentation of the diff functions in the built-in client help for more information
on the functions.
282
Transformations
Source
Target
Warehousecode inventory.warehouse.warehouseinfo.warehousecode
Warehousestate inventory.warehouse.warehouseinfo.warehousestate
ItemNumber
inventory.warehouse.instockitem.itemnumber
ItemQuantity
inventory.warehouse.instockitem.itemquantity
2. Once you've mapped these first four elements, compare your work to the figure
below.
283
3. The Mapping Options dialog will appear (see the figure below). Since you have
three data elements you want to map separately, select the Create... Additional
Folder(s) radio button and enter the number 3.
4. Click OK to dismiss the dialog.
284
Transformations
You will now have three extra copies of the instockitem folder, indicated by the #1, #2,
and #3 at the end of their folder names.
Map Source to New Target Data Elements
Now you need to map your source data elements to these new target folders.
1. Select Color in the Source pane.
2. Toggle open instockitem#1, then open the attribute folder, and finally select the
attributevalue folders value data element ([V]).
3. Click the Map button to map this relationship.
Repeat these steps for the source Weight and Cost data elements, mapping them to the
instockitem#2s and instockitem#3s respective attributevalues [V]. Compare your
work to the figure below.
285
3. Type in the appropriate value for the field in the expression field at the top of the
window. In this example, enter COLOR (but dont use any quotes).
Note: Make sure you use all capitals, as the XML target could be case-sensitive.
4. This simple code is all this data element requires, so click OK to dismiss it.
5. Repeat these steps for the other two folders that were created, so that each of the
attribute fields in the source is mapped to their appropriate values (WEIGHT and
COST) in the target.
Youve completed your Transformation mapping. To test it, create an operation that
references the appropriate source, target, and this transformation that you just made.
286
Transformations
Mapping Hierarchical to Flat Structures (Instance Mapping)
See also: Instance Mapping
An "Instance" can be a row in a database table, or an XML element which might have a
value or attributes or subelements. When the mapping of a target instance depends on
possibly more than one instance of source, we call it "Instance Mapping". A good example is
the mapping of a source represented by line items specifing the cost and quantity mapped
to a target field which represents total cost. Another example is the mapping of a source
that contains multiple instances of name value pairs to a target field that represents
a username. "Instance Mapping" allows the user to define a mapping to reduce multiinstance source to a single target instance. It essentially allows the user to move roworiented data into column-oriented data, with the number of records generated dictated by
the level of the data being mapped. This can be demonstrated by Hierarchical to Flat
Structures mappings, where you will need to resolve some information from one or more
previous or higher level records.
Two sample situations are provided below to illustrate how to achieve hierarchical-to-flat
transformations.
Sample Situation 1
Consider the following situation, where a source XML document contains a looping structure
with many levels, with a de-normalized (flat) target document. This could occur in other
types of transformations, such as complex text-to-database, etc.
Document Structures and Data
Source Document Structure: The source document is an XML document with
many levels, some of which loop. Click here to review its DTD file.
Source Document Data: This file contains sample data that mirrors the DTD file's
structure Click here to review the source data.
Target Document Structure: The target document is a text file. Click here to
review the target file's structure.
Scenario
The challenge in mapping the source and target documents is to correctly map the levels of
the source with the levels of the target, making sure the correct data is placed into the
target.
In this mapping scenario, a record for each of the item numbers needs to be created. To do
so, an itemnumber in the source XML document must be mapped to the target's itemnumber
column. When we do this, we are creating one (target) record for each (source)
instockitem entry.
287
Note: Items that are listed more than once will create additional records. In this simple
example, this will equate to 4 records (ABC-123, ABC-456, ABC-123, DEF-456).
Next, the quantity of each source itemnumber must be mapped to the quantity field of the
target. Once complete, the target would look like:
Itemnumber Quantity Color Weight Cost Warehousecode Warehousestate
ABC-123
450
ABC-456
210
ABC-123
65
DEF-456
75
288
Transformations
5. The Formula Builder should appear. Open the Instance folder in the left pane, and
select the FindValue() function.
6. Click the Insert button to add this function to your expression.
7. The new expression appears in the pane at the top of the dialog.
289
c. The last parameter returns the source data elements value. Making sure the
expressions last <arg> is highlighted, replace it by double-clicking the
attributevalues [V] data element.
9. Compare your expression with the figure below, then click OK to close the window when
you are finished.
Cost
ABC-123
450
BLUE
13
450.00 WH123
WA
ABC-456
210
GREEN
525.00 WH123
WA
ABC-123
65
BLUE
13
450.00 WH456
TX
290
Warehousecode Warehousestate
Transformations
DEF-456
75
23
1250.00 WH456
TX
You have completed the Sample 1 exercise. Compare your work to the figure below.
Sample Situation 2
This sample is similar to that of Sample Situation 1, except the structure of the source
document is a bit different. Also, instead of mapping the item information, we will be
assembling records-based warehouse codes.
Document Structures and Data
Source Document Structure: The source document is an XML document with
many levels, some of which loop. Note that this DTD is different from the one in
Sample Situation 1: In this DTD, the warehouse information is separated from the
instock items. Click here to review the DTD file.
Source Document Data: This file contains sample data that mirrors the DTD file's
structure Click here to review the source data.
Target Document Structure: The target document is a text file. This target
structure differs from the Sample 1 target because it uses a separate column to
identify each warehouse. Click here to review the target file's structure.
Scenario
Similar to Sample 1, we want to create a record for each of the item numbers, but we want
to have each of the warehouses be listed by columns in the target. To do so, we need to
create one record for each instockitem entry in the source XML file. In this example, this
will equate to 3 records (ABC-123, ABC-456, DEF-456).
We have attributes of instockitem, which contains the warehouses where the item is
stocked (instockat). Within this attribute, there can be 0 or more entries to identify all of
the warehouses where the item may be found, as well as the quantity in the warehouse.
What we need to do is get all the ones for WH123, etc. into the proper column.
291
4. The Formula Builder should appear. Open the Instance folder in the left pane, and
select the FindValue() function.
5. Click the Insert button to add this function to your expression.
6. The new expression appears in the pane at the top of the dialog.
292
Transformations
293
294
Transformations
295
<warehousestate>TX</warehousestate>
</warehouse>
<warehouse>
<warehousecode>WH789</warehousecode>
<warehousestate>CA</warehousestate>
</warehouse>
<instockitem>
<itemnumber>ABC-123</itemnumber>
<attribute>
<attributecode>COLOR</attributecode>
<attributevalue>BLUE</attributevalue>
</attribute>
<attribute>
<attributecode>WEIGHT</attributecode>
<attributevalue>13</attributevalue>
</attribute>
<attribute>
<attributecode>COST</attributecode>
<attributevalue>450.00</attributevalue>
</attribute>
<instockat>
<whcode>WH123</whcode>
<quantity>450</quantity>
</instockat>
<instockat>
<whcode>WH456</whcode>
<quantity>210</quantity>
296
Transformations
</instockat>
</instockitem>
<instockitem>
<itemnumber>ABC-456</itemnumber>
<itemquantity>210</itemquantity>
<attribute>
<attributecode>COLOR</attributecode>
<attributevalue>GREEN</attributevalue>
</attribute>
<attribute>
<attributecode>WEIGHT</attributecode>
<attributevalue>5</attributevalue>
</attribute>
<attribute>
<attributecode>COST</attributecode>
<attributevalue>525.00</attributevalue>
</attribute>
<instockat>
<whcode>WH123</whcode>
<quantity>75</quantity>
</instockat>
<instockat>
<whcode>WH789</whcode>
<quantity>250</quantity>
</instockat>
</instockitem>
<instockitem>
297
<itemnumber>DEF-456</itemnumber>
<itemquantity>75</itemquantity>
<attribute>
<attributecode>LENGTH</attributecode>
<attributevalue>72</attributevalue>
</attribute>
<attribute>
<attributecode>WEIGHT</attributecode>
<attributevalue>23</attributevalue>
</attribute>
<attribute>
<attributecode>COST</attributecode>
<attributevalue>1250.00</attributevalue>
</attribute>
<instockat>
<whcode>WH123</whcode>
<quantity>60</quantity>
</instockat>
<instockat>
<whcode>WH456</whcode>
<quantity>50</quantity>
</instockat>
<instockat>
<whcode>WH789</whcode>
<quantity>40</quantity>
</instockat>
</instockitem>
298
Transformations
</inventory>
Data Transformation Types
This section of the online help walks you through all the different combinations of
transformations you can process using the Jitterbit Integration Environment.
Mapping Flat to Hierarchical Structures
Mapping Hierarchical to Flat Structures
Creating LDAP Transformations
Transforming Text File to a Web Service Request
Transforming Text File to XML
Transforming Text File to Text File
Transforming Text File to Database
Transforming Database to a Web Service Request
Transforming Database to XML
Transforming Database to Text File
Transforming Database to Database
Transforming XML to Text File
Transforming XML to a Web Service Request
Transforming XML to Database
Transforming XML to XML
Transforming a Web Service Response to Database
Transforming a Web Service Response to Text File
Transforming a Web Service Response to XML
299
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
300
Transformations
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
Create a Web Service Method
How To Transform from a Text File to an XML Document
Data can be transformed from any Jitterbit supported format to XML and vice versa. Before
attempting to use an XML as a source or target you need to have a DTD or XSD definition
file that represents the XML structure you wish to use uploaded to the Jitterbit server.
Transforming to XML structures is similar to transforming to other data structures. If XML is
used as a target then XML schemas can provide rules and more information about their
structure than say standard database table interfaces. Jitterbit will highlight those rules to
help you in mapping. Examples of these include:
Mandatory fields which are highlighted in red in the target tree. Please note that
mandatory fields may highlight once you map to certain elements, as they may be
conditional e.g. if element A has a values then element B must have a value,
otherwise element B is optional.
XML schemas can also tell you what values are valid for a particular element e.g.
element A is Boolean and must have the values: True, False, 1, 0, Yes, No. Or
element B can only have the values: Red, White or Blue. The Jitterbit server can
enforce XML validation before generating the target document.
Create a New Transformation
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
301
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
302
Transformations
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
How To Transform from a Text File to a Text File
Create a New Transformation
1. If you have not already done so, open the Integration environment by selecting
Integration from the View menu.
2. Make sure you have opened the appropriate project in which you want to store the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
303
(Back to top)
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
304
Transformations
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
305
3. The next steps you follow depend upon whether you want to use only a single table
in your target database, or whether you need to access more than one database
table. Select how you will write information to your target database:
Only a single table in the target database will be accessed
More than one table in the target database will be accessed
(Back to top)
What's Next?
Once you have completed defining your database target, a tree data structure should
appear in the target transformation tree to depict what you have defined.
In mapping to your database target, if you have a multi-table target with parent child
relationships and you are inserting data, you should become familiar with using the
transformation functions <SQLIDENTITY> and <SEQUENCE>.
<SQLIDENTITY> is used for all target databases that support identity or automatic
number generating keys. Once the parent is inserted then the child can inherit the
generated number from the parent by mapping this function to the foreign key in the
child table.
<SEQUENCE> performs a similar action and should be used for Oracle.
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
306
Transformations
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
Specify Source and Target Types
1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "Database" from the Source dropdown list and "Web Service Request" from
the Target dropdown list.
3. Click the Next button in the toolbar to continue.
(Back to top)
307
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
Create a Web Service Method
308
Transformations
Create a New Transformation
1. If you have not already done so, open the Integration environment by selecting
Integration from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
Specify Source and Target Types
1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "Database" from the Source dropdown list and "XML" from the Target
dropdown list.
3. Click the Next button in the toolbar to continue.
(Back to top)
309
3. The next steps you follow depend upon whether you want to use only a single table
in your source database, or whether you need to access more than one database
table. Select how you will get information from your source database:
Only a single table in the source database will be accessed
More than one table in the source database will be accessed
(Back to top)
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using This Transformation in an Operation
How to Transform from a Database to a Text File
Click to view Note on Flat-to-Flat Transformations.
Create a New Transformation
1. If you have not already done so, open the Integration environment by selecting
Integration from the View menu.
2. Make sure you have opened the appropriate project in which you want to store the
new transformation.
3. There are several ways you can start to create a new transformation:
310
Transformations
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
Specify Source and Target Types
1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "Database" from the Source dropdown list and "Text" from the Target
dropdown list.
3. Click the Next button in the toolbar to continue.
(Back to top)
311
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
How to Transform from a Database to a Database
Click to view Note on Flat-to-Flat Transformations.
Create a New Transformation
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to store the
new transformation.
3. There are several ways you can start to create a new transformation:
o
312
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Transformations
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
313
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New.
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
314
Transformations
Select Source Information (XML)
You have two options for loading your XML document. Click on the scenario that describes
where your XML document's DTD/XSD file is located:
You are using an XML document whose definition is already loaded into the server
You need to use an XML document whose definition has not yet been loaded into the
software
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
315
2. Make sure you have opened the appropriate project in which you want to create the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
316
Transformations
Select Target Web Service Information
1. In the next screen of the Transformation Wizard, select the name of the Web Service
that you want to use as the target from the Web Service Definition dropdown list,
or click the control button to the right of the field to create a new Web service call.
2. Click Save in the toolbar to save your transformation.
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
Create a Web Service Method
How To Transform from an XML Document to a Database
Data can be transformed from any Jitterbit supported format to XML and vice versa. Before
attempting to use an XML as a source or target you need to have a DTD or XSD definition
file that represents the XML structure you wish to use uploaded to the Jitterbit server.
Create a New Transformation
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
317
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
Specify Source and Target Types
1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "XML" from the Source and "Database" from the Target dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)
318
Transformations
What's Next?
Once you have completed defining your database target, a tree data structure should
appear in the target transformation tree to depict what you have defined.
In mapping to your database target, if you have a multi-table target with parent child
relationships and you are inserting data, you should become familiar with using the
transformation functions <SQLIDENTITY> and <SEQUENCE>.
<SQLIDENTITY> is used for all target databases that support identity or automatic
number generating keys. Once the parent is inserted then the child can inherit the
generated number from the parent by mapping this function to the foreign key in the
child table.
<SEQUENCE> performs a similar action and should be used for Oracle.
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
How To Transform from an XML Document to an XML Document
Data can be transformed from any Jitterbit supported format to XML and vice versa. Before
attempting to use an XML as a source or target you need to have a DTD or XSD definition
file that represents the XML structure you wish to use uploaded to the Jitterbit server.
Transforming to XML structures is similar to transforming to other data structures. If XML is
used as a target then XML schemas can provide rules and more information about their
structure than say standard database table interfaces. Jitterbit will highlight those rules to
help you in mapping. Examples of these include:
Mandatory fields which are highlighted in red in the target tree. Please note that
mandatory fields may highlight once you map to certain elements, as they may be
conditional e.g. if element A has a values then element B must have a value,
otherwise element B is optional.
XML schemas can also tell you what values are valid for a particular element e.g.
element A is Boolean and must have the values: True, False, 1, 0, Yes, No. Or
element B can only have the values: Red, White or Blue. The Jitterbit server can
enforce XML validation before generating the target document.
319
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
320
Transformations
Select XML Target Information
You have two options for loading your XML document. Click on the scenario that describes
where your XML document's DTD/XSD file is located:
You are using an XML document whose definition is already loaded into the software
You need to use an XML document whose definition has not yet been loaded into the
software
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
321
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
322
Transformations
In mapping to your database target, if you have a multi-table target with parent child
relationships and you are inserting data, you should become familiar with using the
transformation functions <SQLIDENTITY> and <SEQUENCE>.
<SQLIDENTITY> is used for all target databases that support identity or automatic
number generating keys. Once the parent is inserted then the child can inherit the
generated number from the parent by mapping this function to the foreign key in the
child table.
<SEQUENCE> performs a similar action and should be used for Oracle.
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
Create a Web Service Method
Transforming from a Web Service Response to a Text File
Create a New Transformation
1. If you have not already done so, open the Integration environment by selecting
Integration from the View menu.
2. Make sure you have opened the appropriate project in which you want to store the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
323
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
Create a Web Service Method
324
Transformations
Transforming from a Web Service Response to an XML Document
Data can be transformed from any Jitterbit supported format to XML and vice versa. Before
attempting to use an XML as a source or target you need to have a DTD or XSD definition
file that represents the XML structure you wish to use uploaded to the Jitterbit server.
Transforming to XML structures is similar to transforming to other data structures. If XML is
used as a target then XML schemas can provide rules and more information about their
structure than say standard database table interfaces. Jitterbit will highlight those rules to
help you in mapping. Examples of these include:
Mandatory fields which are highlighted in red in the target tree. Please note that
mandatory fields may highlight once you map to certain elements, as they may be
conditional e.g. if element A has a values then element B must have a value,
otherwise element B is optional.
XML schemas can also tell you what values are valid for a particular element e.g.
element A is Boolean and must have the values: True, False, 1, 0, Yes, No. Or
element B can only have the values: Red, White or Blue. The Jitterbit server can
enforce XML validation before generating the target document.
Create a New Transformation
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new transformation.
3. There are several ways you can start to create a new transformation:
o
If you are working in an operation, you can click the control button to the
right of the Transformation field and select Create New; or
Select New in the File menu, then choose New Transformation from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Transformation from the sub-menu; or
4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.
325
You need to use an XML document whose definition has not yet been loaded into the
software
What's Next?
Now that you have defined the nature of the source and your desired target, you are ready
to map the relationship between your source and target at the field, or element, level. Click
here for instructions on mapping your new transformation.
Related topics:
Transformation Mapping
Using the Formula Builder
Setting Permissions for this Transformation
Using this Transformation in an Operation
326
Transformations
327
Advanced Options
Dynamic XML Schema Generation
You can create an XML schema from an existing XML data file.
Open a new Transformation wizard:
328
Transformations
Select the radio button labeled "Create a new XML structure from a sample file (next
page)."
Click Next. The second Source screen appears.
Select a sample file by clicking one of the radio buttons under step 1.
329
(Optional) Type a file name for the new XSD in the window under step 2. If you
leave this window empty, Jitterbit automatically generates a file name.
Click the Generate button. The newly created XSD, with file path, appears in the
window under step 3 and the Open Folder button is activated.
To open the folder where the new XSD is located, click Open Folder. The folder
opens on your computer screen.
Click Next and continue creating the transformation as you would in any wizard.
Advanced Transformation Overview
This chapter provides descriptions of how to work with Jitterbit's more advanced
transformation mapping features.
Use the Table of Contents tab on the left or click on any link below for more details.
330
Transformations
To delete an optional node (E.g., E? or E*), create a condition on the node and configure it
as false.
331
An "Instance" can be a row in a database table, or an XML element which might have a value or
attributes or subelements. When the mapping of a target instance depends on possibly more
than one instance of source, we call it "Instance Mapping". A good example is the mapping of a
source represented by line items specifing the cost and quantity mapped to a target field which
represents total cost. Another example is the mapping of a source that contains multiple
instances of name value pairs to a target field that represents a username. "Instance Mapping"
allows the user to define a mapping to reduce multi-instance source to a single target instance.
It essentially allows the user to move row-oriented data into column-oriented data, with the
number of records generated dictated by the level of the data being mapped. This can be
demonstrated by Hierarchical to Flat Structures mappings, where you will need to resolve some
information from one or more previous or "higher level" records.
Two sample situations are provided below to illustrate how to achieve hierarchical-to-flat
transformations.
332
Transformations
Sample Situation 1
Consider the following situation, where a source XML document contains a looping structure
with many levels, with a de-normalized (flat) target document. This could occur in other types of
transformations, such as complex text-to-database, etc.
Document Structures and Data
1. Source Document Structure: The source document is an XML document with many
levels, some of which loop. Click here to review its DTD file.
2. Source Document Data: This file contains sample data that mirrors the DTD file's
structure Click here to review the source data.
3. Target Document Structure: The target document is a text file. Click here to review the
target file's structure.
Scenario
The challenge in mapping the source and target documents is to correctly map the levels of the
source with the levels of the target, making sure the correct data is placed into the target.
In this mapping scenario, a record for each of the item numbers needs to be created. To do so,
an itemnumber in the source XML document must be mapped to the target's itemnumber
column. When we do this, we are creating one (target) record for each (source) instockitem
entry.
Note: Items that are listed more than once will create additional records. In this simple example,
this will equate to 4 records (ABC-123, ABC-456, ABC-123, DEF-456).
Next, the quantity of each source itemnumber must be mapped to the quantity field of the target.
Once complete, the target would look like:
ItemnumberQuantityColorWeightCostWarehousecodeWarehousestate
ABC-123
450
ABC-456
210
ABC-123
65
333
DEF-456
75
334
Transformations
9. Compare your expression with the figure below, then click OK to close the window when
you are finished.
Complete the Sample
Repeat the steps listed above to map the WEIGHT and COLOR attributes in the source to their
target counterparts.
The final data output would look as follows:
ItemnumberQuantityColor
WeightCost
WarehousecodeWarehousestate
ABC-123
450
BLUE 13
450.00 WH123
WA
ABC-456
210
GREEN5
525.00 WH123
WA
ABC-123
65
BLUE 13
450.00 WH456
TX
DEF-456
75
1250.00WH456
TX
23
You have completed the Sample 1 exercise. Compare your work to the figure below.
Sample Situation 2
This sample is similar to that of Sample Situation 1, except the structure of the source document
is a bit different. Also, instead of mapping the item information, we will be assembling recordsbased warehouse codes.
Document Structures and Data
Scenario
Similar to Sample 1, we want to create a record for each of the item numbers, but we want to
have each of the warehouses be listed by columns in the target. To do so, we need to create
one record for each instockitem entry in the source XML file. In this example, this will equate to
3 records (ABC-123, ABC-456, DEF-456).
We have attributes of instockitem, which contains the warehouses where the item is stocked
(instockat). Within this attribute, there can be 0 or more entries to identify all of the warehouses
where the item may be found, as well as the quantity in the warehouse. What we need to do is
get all the ones for WH123, etc. into the proper column.
The logic for item number ABC-123 and warehouse WH123 would be:
Get the value of the attribute quantity of the ABC-123 item where the attribute whcode is equal
to WH123.
For example, the answer to be supplied for WH123 for item number ABC-123 would be 450.
Follow these steps to correctly map and configure itemnumber:
1. Map the source's itemnumber data element to the target's itemnumber.
2. Map the source's itemquantity data element to the target's WH123 data element.
3. WH123's data needs to be qualified. Select the target's WH123 data element and click
the Formula button to launch the Formula Builder.
4. The Formula Builder should appear. Open the Instance folder in the left pane, and select
the FindValue() function.
5. Click the Insert button to add this function to your expression.
6. The new expression appears in the pane at the top of the dialog.
7. You now need to correctly configure the function's parameters:
Carefully highlight the first <arg> in your expression at the top of the window. This
parameter should be the name of the attribute, so type WH123, replacing the <arg>
in the expression.
This parameter provides the code used in the source data element. Making sure the
expression's second <arg> is highlighted, replace it by double-clicking the
attributecode's [V] data element.
The last parameter returns the source data element's value. Making sure the
expression's last <arg> is highlighted, replace it by double-clicking the
attributevalue's [V] data element.
336
Transformations
8. Compare your expression with the figure below, then click OK to close the window when
you are finished.
Complete the Sample
Repeat the steps you did above for the remaining two warehouses, WH456 and WH789, setting
their values accordingly. You will then have completed the Sample 2 exercise. Compare your
work to the figure below.
Multiple Mapping
The concept of multiple mapping is the idea that you need to map a single, flat structure to a
structure that is hierarchical in nature, with lower segments containing multiple sets of values,
such as name/value pairs. In this circumstance, copies of a particular folder may occur many
times, each folder copy must be mapped with appropriate rules.
A sample situation is provided below to illustrate how to achieve flat-to-hierarchical
transformations.
Sample Situation 3
Consider the situation where the source of data is a flat (de-normalized) data structure, and the
target definition is hierarchical in nature. In the following example, the source data is depicted in
structure that is de-normalized, such as a flat file.
Document Structures and Data
1. Source Document Structure: The source document is a text file. Click here to review its
structure.
2. Source Document Data: This file contains sample data that mirrors the DTD file's
structure Click here to review the source data.
3. Target Document Structure: The data structure of the target document is hierarchical in
nature, with at least one header row and multiple detail rows that are assigned to the
header row. Click here to review the target's structure.
4. Target Output: The desired end result of this transformation is output into a specific
format. Click here to review the desired output.
Mapping to Single folders
The first set of mappings is for items that are the same for each record (keep in mind that there
may be multiple records created at the target).
1. Map each of the following source entries to its respective target:
337
Source
Target
Warehousecode
inventory.warehouse.warehouseinfo.warehouse
code
Warehousestate
inventory.warehouse.warehouseinfo.warehouse
state
ItemNumber
inventory.warehouse.instockitem.itemnumber
ItemQuantity
inventory.warehouse.instockitem.itemquantity
2. Once you've mapped these first four elements, compare your work to the figure below.
Add Extra Folders
The remaining source data elements, Color, Weight, and Cost, will each require their own copy
of the target folder.
3. Select the name of the folder you want to duplicate (in this case, instockitem).
4. Click the Multiple button. In this example, it is the attribute folder under the instockitem
folder.
5. The Mapping Options dialog will appear (see the figure below). Since you have three
data elements you want to map separately, select the Create... Additional Folder(s) radio
button and enter the number 3.
6. Click OK to dismiss the dialog.
You will now have three extra copies of the instockitem folder, indicated by the #1, #2, and #3 at
the end of their folder names.
Map Source to New Target Data Elements
Now you need to map your source data elements to these new target folders.
338
Transformations
10. Select the attributecode folder's value data element ([V]) in attributecodes attribute
folder within instockitem#1.
11. Click the Formula button to launch the Formula Builder.
12. Type in the appropriate value for the field in the expression field at the top of the window.
In this example, enter COLOR (but don't use any quotes).
Note: Make sure you use all capitals, as the XML target could be case-sensitive.
13. This simple code is all this data element requires, so click OK to dismiss it.
14. Repeat these steps for the other two folders that were created, so that each of the
attribute fields in the source is mapped to their appropriate values (WEIGHT and COST)
in the target.
You've completed your Transformation mapping. To test it, create an operation that references
the appropriate source, target, and this transformation that you just made.
Conditional Mapping
This section provides descriptions of how to work with conditional mapping. Conditional
mapping is a special data element added to a particular target folder that specifies a condition
for generating the node. An example could be to create an approval node only when a
requestedItem field's value is less than $1,000.
Note: This option only applies to optional or loop target folders (also known as Target Loop
folders, or TLNs).
Create Conditional Output
Follow these steps to define a condition:
339
Click on the Multiple button in the toolbar to bring up the Mapping Options dialog.
340
Transformations
Streaming has not been disabled by setting the global data element
$jitterbit.transformation.auto_streaming to 0 or false.
341
342
Transformations
Handle inserts/updates/deletes
Before each transformation the methods DiffAdd(), DiffUpdate() and DiffDelete() are called.
Any transformation running after that will be passed the added, updated or deleted rows
respectively. The source of the transformations has to be the same database table, but the
target can be different in the three cases.
Finalize
DiffComplete() must be called when the three cases have been handled successfully.
In a typical Jitterpak, we use three operations: The first to initialize and handle adds, the
second to handle updates and the last to handle deletes and finalize. The operations use the
same transformation that simply dumps records to a CSV file. A parameter is used to write
the records to files with different names. This example "sorts" the records into inserted,
updated and deleted ones.
Other functions that affect the diff functionality:
SetDiffChunkSize Sets a parameter for the "chunked" diff algorithm. A larger value is faster
but uses more memory.
OrderedDiffKeyList Specifies the sort order of the source if the "ordered" diff algorithm is
used.
ResetDiff Resets or purges the diff session. Can be used in error handling to reset the diff
session on failures.
See the documentation of the diff functions in the built-in client help for more information
on the functions.
343
You can load source data from your LDAP server if you are not sure what certain attributes
represent. When testing a transformation and LDAP is the target, Jitterbit does not actually
write to the LDAP server. It only displays what data would be sent to the LDAP Server. To
affect data in LDAP you will need to test operation or run the operation.
LDAP as a Target
There are some unique characteristics to using LDAP as a target.
To explain these, it is useful to understand the methods that Jitterbit uses to access LDAP:
LdapAdd: to add objects, attributes and values to the LDAP Server.
LdapDeleteEntry: to delete entries from the directory. E.g. a user or a computer..
LdapRemove: to remove an attribute
LdapRename: to rename an entry. This is the same as the Mod RDN command.
LdapReplace: to replace / update an attribute value
344
Transformations
These are the methods provided by the standards-based LDAP protocol. So with that, when
you map to an LDAP target the following will be performed:
Every LDAP object has a unique Distriguished Name (DN). By mapping a value to the object
class DN, if the object exists, Jitterbit will execute a series of LDAP Replace statements. It
will perform an LDAP Add for any attributes that did not exist on the object even if the
object already existed.
If the DN does not exist then Jitterbit adds the object and its mapped attributes.
You can also explicitly set the Entry Command. This will instruct Jitterbit to execute the
command you specify either statically or dynamically through a formula. Entry Command
include:
Add: to add an entry
Update: to replace attribute values within an entry. This is analogous to a database
update, so if the DN does not exist nothing will happen.
Remove: to delete an entry from LDAP.
345
LDAP has attributes that can include multiple values. In the above example,
DepartmentNumber is a multi-value attribute. For multi-valued attributes, Jitterbit let's you
perform the following operations:
Remove Attribute: If you map a value to the "Old Value" attribute only the value
with this attribute will be deleted. If you don't map anything to "Old Value" all the
instances of the attribute will be removed.
Update Attribute: Update a particular attribute. You need to specify the old value
to remove.
Attribute Replace All: Removes all the existing attributes and replaces them with
the values that have been mapped to this attribute.
If Replace All is selected, Jitterbit will not remove the old values unless there are new values
to replace them. If you really want to remove all the old values and replace them with new
ones - even if you are not creating any new values - you need to create a copy of the node
and select Remove Attribute on the copy and Replace All on the original (or the other way
around, it does not matter).
Single valued attributes, such as displayName in the above example, are more
straightforward. Jitterbit only lets you perform the following operations:
Remove Attribute: Removes this attribute. No old value needs to be specified for
single instance attributes.
Update Attribute: Updates the attribute and discards the old value.
When Jitterbit runs LDAP as a target, Jitterbit will execute the required LDAP commands to
create/update the target. If the LDAP API reports errors these will be reported together with
the modifications that were attempted.
Multiple Occurrence of Source Loop Node
A loop node is a multi-instance node and plays a vital role in defining the transformation.
Each target loop node has a corresponding source loop node, i.e., generating the target loop
node depends on the multiplicity of the source loop node.
346
Transformations
Example:
Source tree with multiple segments.
<Root> (Occurs - once only)
<Segment 1> (Occurs - 0 or more)
|
<Segment 2> (Occurs - 0 or more)
|
<Segment 3> (Occurs - 0 or more)
|
</Root>
Field Validation
You can optionally create a field-validation step while designing a new operation. Field
validation may be applied to a flat text structure used in a source or target.
In the Sources > Select File Type screen, check the box for Review File Format.
When you click Next, a Review File Format screen appears.
347
You may select a field name and use the Validation window on the upper right to set
the number of columns expected for that row.
This activates the dropdown on the right side of Validation (Optional). From the
dropdown, you may choose either Skip Row or Raise Error.
To further validate a field, click the "..." button on the far right of the Validation
column for that field. This opens a Field Validation dialogue.
348
Transformations
Length
You may optionally specify a length (number of characters) for the field.
Ignore
case
Date
Format
For date fields, you may specify a format such as mm/dd/yyyy. This
window is not activated unless the field type is Date.
349
Less than
Validation
>
Greater than
Equal to
!=
Not equal to
Transformation Mapping
After you use the Transformation Wizard to define and configure a transformation's source
and target, the Transformation screen appears. It is in this screen where you establish a
relationship between the appropriate fields and/or records (also known as data elements or
elements) of your source and target. Mapping is the process of selecting which source data
element relates to which target data element.
Jitterbit provides very robust mapping capabilities, including the ability to resolve
hierarchical-to-flat ("instance") mapping, flat-to-hierarchical ("multiple") mapping, preconditions, and more.
How To Map Source and Target Fields
350
Transformations
Select the mapping to which you want to apply a formula, then double-click on the
angle in the line showing the mapping relationship:
351
Select an existing mapped relationship to activate the Create Formula button; then
click on the button.
2. The value of the mapped source data element that you selected is loaded into the
Formula Builder's upper pane.
Note: The source tree appears in the right pane only when you are mapping, not
when you are scripting an operation.
Caution: In order to be transformed correctly, the software must wrap the final
expression with a <trans> ... </trans> tag. Make sure that this tag is preserved as
you manipulate your expression.
3. (Optional) If you need to use a logical operator in your expression, select the
location in the expression where the operator should be placed, then click the
appropriate operator button.
4. Select the function you want to use from the Functions tree in the left pane.
5. Add the selected function to your expression by clicking the Insert button.
6. (Optional) Click the Test button to open the Formula Tester dialog. The Formula
Tester is where you can test the results of your formulas by entering the values you
would like to supply as input to the formula. The resulting output will be displayed at
the bottom of the dialog.
7. When you have finished your expression, click OK.
352
Transformations
(Back to Top)
Modifying Expressions with Source Elements
You can use a source element's value to modify the expression you are creating in the
Formula Builder. For example, you may need to convert one currency to another format.
You may have a source element called "CurrentConversionRate" that contains the most
recent exchange rate between US dollars and Euros.
To use another source data element in your expression, select where the expression should
be placed, select the desired source element (e.g., "CurrentConversionRate") in the Source
pane, then click the Insert button. (Alternatively, you can double-click the desired source
element as a shortcut to load it into your expression.)
(Back to Top)
Related topics:
Formula Builder Overview
Fomula Builder Functions
Transformation Mapping
Advanced Transformation Overview
Transformation Toolbar Objects
Test Transformation
After reviewing your Source data elements' contents you can test the transformation.
Note: Test Transformation cannot be performed unless you have first tested the Source
data. See Test Source Data for details.
353
1. Click the wrench button in the Transformation toolbar, select Test, then choose
Transformation from the submenu.
2. The Source content is transformed according to your Transformation mappings, and
the subsequent Target values are loaded into the Target tree. The Target data
elements values are placed to the right of their corresponding data elements (see
the figure below).
3. As with the Source pane, you can toggle through a multi-entry Target elements
values by clicking the appropriate folders 1 of N control. shift-click to see the
previous instance and right-click to jump to an arbitrary instance. In the example
shown below, the folder was clicked once to display the second of four sets of values.
354
Web Services
Creating a Web Service Method
Jitterbit lets you access web services as part of your transformation process. To call a web
service using Jitterbit you need to define a web service method, transformations to deal
with the input and output of the web service, and an operation to hold everything together.
If you have not already done so, open the Interchange environment by selecting
Interchange from the View menu.
Make sure you have opened the appropriate project where you want to store the new
web service method.
Create a new web service method using one of the following:
o
Select New in the File menu, then choose New Web Service Method from the
sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Web Service Method from the sub-menu; or
Your new web service method appears in its own New Web Service Method tab in the
right pane of the window.
Enter an appropriate name for your new web service method in the Name field.
Specifying Web Service WSDL
In the WSDL area, enter either the URL or a directory path that points to the WSDL
of the web service you want to call.
Click the Next button in the toolbar to continue.
Selecting Method and Binding
In the next screen of the Web Services Wizard, choose the desired web service from
the Select Method and Binding dropdown list.
The web service's Request and Response structures are then loaded into their
respective hierarchical trees for you to review. You may optionally add any notes to
the Documentation field
Click the Next button in the toolbar to continue.
355
356
Web Services
transform the data from the web service request. However, only one transformation can be
used to transform the return values as the response to the request, and that transformation
must either be placed in the Hosted Web Service Operation or in the first triggered
Operation from the Hosted Web Service.
Creating the Transformations
You can choose how many transformations you want to use to fulfill the requirements of the
Hosted Web Service:
The simplest implementation has just one transformation from a web service request
to a web service response. This transformation can use script functions (e.g.,
DBLookup(), LdapSearch()) to return data based on the input parameters of the web
service.
You can also have two transformations. The first one must take a web service
request as source, and the last one must have a web service response as target.
If you need to perform multiple operations with the Hosted Web Service Request, all
triggered operations must also use the same source structure in their
transformations. To process the Hosted Web Service Response, the second
transformation of a Hosted Web Service operation must have a target structure
derived from the Hosted Web Service Response using the Web Service Method for
that Hosted Web Service. If you trigger other operations, then the first triggered
operation must include a transformation that includes the response.
Setting up a Hosted Web Service in an Operation
Choose Hosted Web Service from the Activity dropdown list.
Select a predefined Web Service from the Web Service dropdown menu, or click the
control button to the right of the field to create a new Web Service.
Select a predefined request transformation (which transforms data from the web
service request) from the First Transformation dropdown menu, or click the control
button to the right of the field to create a new request transformation.
URL for the Hosted Web Service
Right-click on the icon for the operation that implements the hosted web service.
Select the option "View Hosted Web Service URL."
In the "Server:" box, type in the external name or IP address of your Jitterbit server. If
Jitterbit runs on a non-standard port you must also change the port.
The URL for the hosted web service automatically appears in the URL field.
Click "Copy To Clipboard" or select and copy the URL from the URL field.
358
Web Services
359
Text Structures
Creating a Text Document Definition
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to
create/change the new text document definition.
3. There are several ways you can start to create a new text document definition:
o
Select New in the File menu, then choose New Text Structure from the submenu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Text Structure from the sub-menu; or
4.
Your new text document definition appears in its own New Text Structure tab in the
right pane of the window.
5. There are two ways of specifying the structure of the new text document:
o
From a sample file - this is further described here. Note: This option is
currently available only when creating a simple (flat) text structure.
Manually - the names and types of the fields are entered by hand. The rest of
this help page deals with this second option.
What you do next depends on the type of text structure you need to create. Follow the
instructions in the appropriate section below.
Working with Simple Text Documents
Simple text documents contain a single segment. They can either be based upon a
delimited structure (such as commas or tabs), or they can use fixed-length fields. Choose
the option that is appropriate for your text document:
Your simple text document is character-delimited
Follow these steps to define a character-delimited simple text document:
Define the Document Type
1. Enter an appropriate name for your new document definition in the Name
field.
361
2. Choose the Simple Text Document radio button in the Select Document Type
region.
3. Choose the Character Delimited radio button in the Select Document Format
region.
4. Click the Create button to continue.
field.
2. Choose the Simple Text Document radio button in the Select Document Type
region.
3. Choose the Fixed Field Widths radio button in the Select Document Format
region.
4. Click the Create button to continue.
362
Text Structures
beginning of the file) within the Begin field. (The default value will always be
the next character after the previous field's ending position.)
Note: Fixed-length text files always specify a certain number of characters that
are reserved for each field. For example, you may identify a field called
LastName that always has 30 characters reserved for it. (If the actual value is
Smith, only 5 characters are used; the remaining characters have nothing in
them.)
5. Enter the number of characters that are reserved for this field into the Length
field.
5. (Optional) If you want this field to have a default value, enter the value into
the Default field.
6. (Optional) If you want this field to have a , enter the format into the Format
field.
7. (Optional) Repeat the previous steps for each additional data field you need
to define.
8. (Optional) If you have changed any field's character length value, press the
Calculate button to recalculate all the fields' starting positions.
Warning! The Calculate button resets all the document definition's Begin and
End field values, based on the Length values you specified. Do not use this
button if your file's field positions have gaps or overlaps, as they will be deleted.
363
364
Text Structures
Note: Each segment must include one and only one Identifier field. Make sure that
you have one field whose data type is set to this.
4. (Optional) If you want this field to have a default value, enter the value into
the Default field.
5. (Optional) If you want this field to have a specific format, enter the format
into the Format field.
6. (Optional) Repeat the previous steps for each additional data field you need
to define.
7. Click the OK button once you have finished creating all the fields you need for
this segment.
You have completed definition of your complex, delimited text document. Make sure
to click the Save button in the toolbar to save your work.
Your complex text document uses fixed-length fields
Follow these steps to define a fixed-length complex text document:
365
1. Enter an appropriate name for your new document definition in the Name
field.
2. Choose the Complex Text Document radio button in the Select Document
Type region.
3. Choose the Fixed Field Widths radio button in the Select Document
Format region.
4. Click the Create button.
Choose Only Once if this segment must occur once but only once in the document.
Choose One or More if this segment must occur at least once, but can also be
repeated.
Choose Zero or One if this segment may not occur, but if it does, it can only occur
once.
Choose Zero or More if this segment may not occur, but if it does, it can occur one or
more times.
(Optional) Repeat the previous steps for each additional segment you need to define.
366
Text Structures
4. (Optional) If you want this field to have a default value, enter the value into
the Default field.
5. (Optional) If you want this field to have a , enter the format into the Format
field.
6. Enter the starting character position (such as 1 for the beginning of the file)
within the Begin field. (The default value will always be the next character
after the previous field's ending position.)
Note: Fixed-length text files always specify a certain number of characters that are
reserved for each field. For example, you may identify a field called LastName that
always has 30 characters reserved for it. (If the actual value is Smith, only 5
characters are used; the remaining characters have nothing in them.)
7. Enter the number of characters that are reserved for this field into the Length
field.
8. (Optional) Repeat the previous steps for each additional data field you need
to define.
9. (Optional) If you have changed any field's character length value, press the
Calculate button to recalculate all the fields' starting positions.
Warning! The Calculate button resets all the document definition's Begin and End
field values, based on the Length values you specified. Do not use this button if your
file's field positions have gaps or overlaps, as they will be deleted.
10. Click the OK button once you have finished creating all the fields you need for
this segment.
You have completed defining your complex, delimited text document. Make sure to click
the Save button in the toolbar to save your work.
367
3.
Click Move Down to move the selected item further down one line.
4.
(Optional) If you want to delete any entry, click the Delete button.
5.
Click on the number of the entry you want to move, then use the Move Up and/or
Move Down buttons to adjust the fields' order.
6.
Related topics:
Setting Permissions for This Text Structure Definition
Creating a Text Structure from a Template File
Select New in the File menu, then choose New Text Structure from the submenu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Text Structure from the sub-menu; or
4. Your new text document definition appears in its own New Text Structure tab in the
right pane of the window.
368
Text Structures
5. Click on the "Create From File..." button. Things brings up the "Create text structure
from template file" dialog.
6. In the dialog, select the type of template file you want to use. There are three
supported template formats:
o
Sample flat file with column names - A sample input file with the first row
containing the column names. This is available only when creating a
character delimited file structure. The delimiter character is specified in a
separate box. If any field name is not supplied, the default name "F" +
[Column number] will be used. For example, if the second column does not
have a name in the sample file, it will be given the name "F2". The data in the
sample file will be parsed to best determine the data type for each column.
Sample flat file w/o column names - As above, only the column names are
not included in the template file (i.e. the first row contains data).
Simple text definition - A definition file containing rows for field information.
Each row has the field name in the first column, the data type in the second
column, and, if it is a fixed field document, the length of the field in the third
column. The columns can be separated by comma, tab or semicolon. This
delimiter character is not the same as the document delimiter, which is
defined in the UI. To specify the data type, you can use the beginning of the
data type name as long as it uniquely identifies the data type. For example, a
date can be represented by "da", and a string by "str".
7. Select the sample file, either by browsing to it in a file browser by pressing the
"Browse..." button, or by typing or pasting the path to the file directly into the field.
(Another way is to drag the file from Explorer (on Windows) and drop it into the field.)
The first few lines of the file will be displayed in the text area below the file field. This
allows you to review the file, making sure it is correct, before creating the structure.
8. Press the OK button. This will bring you to a screen that displays the properties of
the new text structure, as created from the template file. In this screen you can make
additional adjustments to the created structure, if necessary. Note: The OK button is
disabled if the current input in the dialog is invalid or incomplete.
9. Press the Save button to save the new text structure in your project.
369
370
Schedules
How To Create a Schedule
Schedules contain information about when an operation will automatically be activated.
Jitterbit lets you define virtually any type of schedule you need, such as every Friday at
5pm, the last Friday of each quarter, or every hour for one day.
Follow these instructions to create a new schedule:
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new schedule.
3. There are several ways you can start to create a new schedule:
a.
Select New in the File menu, then choose New Schedule from the sub-menu; or
b.
Click the down arrow next to the file icon in the toolbar, then choose New Schedule
371
This schedule will repeatedly re-activate for a specified period of time throughout the
day
Set the Duration
The last section to configure is the schedule's duration.
1. Click the calendar button next to the Starting at field to select the desired start date.
2. (Optional) If you want the schedule to end on a particular date, select the checkbox
next to Ending at, then click the calendar button to select the desired end date.
Note: Start and End dates in a schedule are inclusive.
Related topics:
2. The console appears in its own Scheduler Console: tab in the right pane of the
window.
Checking Scheduler Status
1. The radio button list at the right indicates the current state of the scheduler.
2. Click the Short, Normal, or Full button to display the latest status information from
the scheduler in abbreviated, normal, or complete detail.
Starting and Stopping the Scheduler
Caution! If the Scheduler is stopped, any operation scheduled to activate in the future will
not function: operations are automatically activated only when the Scheduler is running.
However, you can bypass the Scheduler and manually activate an operation at any time by
clicking the operations lightning bolt button to send the operation directly to the queue.
372
Schedules
1. (Optional) Click the Stop Scheduler button to shut the scheduler down.
2. (Optional) Click the Start Scheduler button to activate the scheduler again.
373
Email Messages
How to Create an Email Message
Email messages can be automatically sent upon the completion of an operation. You
can create success or failure notifications. Email Messages can also be used as an
argument to the SendEmail method. Follow these steps to create notifications:
1. If you have not already done so, open the Integration tab by selecting Integration
from the View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new email message.
3. Create and test an operation.
4. Right-click on the Email Messages node in the Project Tree and choose New Email
Message or select New from the File Menu and choose New Email Message from
the sub-menu. A new tab entitled "New Email Message" will appear in the right pane.
5. Fill in the properties of your message:
1. Message Name: The name of your message, which must be unique within
your project.
2. SMTP Mail Servers (optional): Comma separated list of SMTP servers that
you want to use to send your email. The servers will be tried in the order that
they are specified until one is found to accept the message.
3. To: Comma separated list of recipients.
4. From: The email address that you want to appear in the "From" field when
the recipient(s) read the email.
5. Authentication (optional): If your SMTP server requires authentication you
must expand the Authentication fields and check the "Use Authentication"
check box. You can then enter an Account and Account password.
6. Optional: If you expand the Optional fields you can add CC, BCC and Reply
To addresses. The addresses in the CC field will receive a copy of the
message, the ones in the BCC field will get a blind copy of your message.
The Reply To address is the one you want replies to be sent to by default (i.e.
when the recipient presses reply). This can be used if you send the email
from a common account but you want replies to go to your personal email
inbox.
7. Subject: The subject of the email.
8. Text: The body of your email
Note All of these fields recognize global data element substitutions. E.g. if
you don't know who the recipient will be until you have run your operation you
can set a global data element called "notify_email" during the transformation
(e.g. using a DBLookup or input data) and then enter [notify_email] in the Tofield. .
6. Once you specify the properties for your email message, you must associate the
Email Message with one or more operations.
375
7. In the Project Tree, click on the operation that you want to add a notification
message to; its properties will be displayed in the right-hand pane.
8. Expand the On Success and/or On Failure fields by clicking the .
9. Select the Email Message you just created from the Send an Email drop-down list.
10. Deploy your project.
Related topics:
376
Scripts
How To Create a Script
Scripts can run separately from transformations. You can, for example, create a script that
truncates a database table before you run a transformation to fill it again. You can also
create scripts with logic you will use in several mappings in transformations. You can run
scripts using the RunScript() function, or by inserting them into an operation.
Follow these instructions to create a new script:
1. If you have not already done so, open the Design tab by selecting Design from the
View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new script.
3. You can create a new script with any of the following methods:
Select New in the File menu, then choose New Script from the sub-menu; or
Click the down arrow next to the file icon in the toolbar, then choose New
Script from the sub-menu; or
Right-click on Scripts in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Script from the popup menu.
4. Your new script appears in its own New Script tab in the right pane of the window.
5. Enter an appropriate name for your new script in the Script Name field.
6. Enter the script in the large text area under the Script Name field.
Related topics:
Formula Builder Features
Setting Permissions for this Script
Using this Script in an Operation
Debug Logging Config Modification
377
HTTP Endpoints
How to Create an HTTP Endpoint
An HTTP Endpoint represents a URL with one or more operations associated with it. When
the URL is accessed the configured operations are triggered with the request data as input
(if any). The end-point can be configured to return a target file or the contents of a data
element as response.
Follow these steps to create an HTTP Endpoint:
1. If you have not already done so, open the Design tab by selecting Design from the
View menu.
2. Make sure you have opened the appropriate project in which you want to create the
new HTTP Endpoint.
3. Create and test the operations you want to trigger with the HTTP Endpoint.
4. Right-click on the HTTP Endpoints node in the Project Tree and choose New HTTP
Endpoint or select New from the File Menu and choose New HTTP Endpoint from
the sub-menu. A new tab entitled "New HTTP Endpoint" will appear in the right pane.
5. Fill in the properties of your HTTP Endpoint:
Name: The name of your end-point, which must be unique within your project.
Endpoint URL: The URL you want this end-point to listen to. E.g. if you enter
"company/po_import" the end-point will be triggered when the URL "http://[server
name]:[server port]/company/po_import" is requested.
Operations To Trigger: This is a list of the operations you want to trigger with this
end-point. At least one operation has to be selected. Add an operation by clicking the
Add Operation button. A list of available operations will be presented. Select one or
more operations and click OK. If you select an operation and click Edit Operation
the selected operation will appeare in a new window or tab. To remove one or
several operations from the list of operations to trigger you select the operation(s)
and click Remove Operations....
Mode: Each operation can be triggered either synchronously or asynchronously. For
each operation, select the appropriate Mode from the drop-down. If you want to use
the result of an operation as the response it has to run synchronously. Asynchronous
operations will just be added to the operation queue for future processing.
Final Target As Response: If you want the final target of an operation to be
returned as the response, check the Final Target As Response check-box for the
operation you wish to use. Only one operation can have this box checked.
379
Request Settings: In this section you can optionally choose to have the request
data written to a global variable. If you don't need this just keep this field empty.
E.g. if you enter the string "request" in this field the request data will be accessible
in scripts and mappings as $request or Get("request").
Response Settings: In this section the response behaviour is configured. The
default is No Response. If you need to return some data as part of the response
you can either use the final target of an operation as the response or use data
written to a global data element as the response. Check the corresponding radio
button and enter the information. Either you select an operation or you enter the
name of a global data element.
6. By default the HTTP Endpoint requires an authenticated user. The user authenticates
using HTTP authentication and all the triggered operations have to have the execute
permission flag set for the authenticated user. If you want anyone to be able to
trigger the end-point or if you want to implement the authentication yourself, the
Anonymous user has to have execute permission on the operation. The operations
will always run as the owner of the operation.
7. Deploy your project. As soon as the HTTP Endpoint is deployed it will listen for
incoming requests on the configured URL.
The following global data elements are populated when an HTTP Endpoint is accessed:
1. jitterbit.networking.http.request.header.HeaderName: Contains the HTTP
headers included in the request. E.g. the Content-Type header is written to the
global data element $jitterbit.networking.http.request.header.Content-Type.
2. jitterbit.networking.http.query.ParameterName: Contains the URL query
parameters, if any. If the accessed URL is
http://server:port/company/po_import?po_id=dlsho394&uid=arcade, then
$jitterbit.networking.http.query.po_id will have the value "dlsho394" and
$jitterbit.networking.http.query.uid the value "arcade".
3. jitterbit.networking.peer.ip: Contains the ip-number of the callers machine.
The following global data elements can be set to modify the behavior of an HTTP Endpoint:
1. jitterbit.networking.http.response.content_type: Overrides the default
Content-Type response header. This is how the default Content-Type is set: If an
operation target is the response, Jitterbit will set the Content-Type header to "text"
for a text target and "text/xml" for an XML target. If the Endpoint returns the
contents of a data element as response the Content-Type header is set to
"text/html". If the Endpoint is not configured to return response data the ContentType header is not set. Set this global data element to override the default.
Related topics:
Setting Permissions for this HTTP End-Point
380
HTTP Endpoints
Social Networking
Social Networking
By supporting all of the REST APIs, Jitterbit makes it as easy to connect with the newer
types of endpoints such as enterprise social networking and consumer social networking,
where customers spend significant time online. You can use enterprise social networks such
as Chatter and Yammer to collaborate with your colleagues and share strategic business
information. You can use consumer social networks such as Facebook, Twitter, forums,
blogs and other media to listen to what customers are saying, to help keep track of contacts
and accounts, and to capture leads that come in from across the Internet.
Back to HTTP Endpoints
381
ERP Connectors
ERP Connectors Overview
As integral functions of Jitterbit 5, ERP Connectors allow you to create and connect with
enterprise endpoints to bring back functions and data for use in Jitterbit integrations. You
can use native ERP query languages (such as BAPI and IDOCs in SAP) to retrieve
information and processes. Like other Jitterbit operations, creation of ERP functions is
wizard-driven once you create the endpoints.
The following features of Jitterbit 5.0 and above ensure enterprise readiness:
Security
Smallest footprint (<200 MB)
Linux/Windows/Cloud security
Multi-threading and chunking
Performance
Parallel processing
Multi-threading and chunking
High availability
Complex Processes
Enterprise connectors
Visual process design
Script enabled
SOA Enabled
SOA compliant
SOAP/REST APIs
Real-time/Event-based
SAP Connector Installation
As an integral function of Jitterbit 5, SAP Connector allows you to create and connect with
SAP endpoints to use SAP functions and data for use in Jitterbit integrations. You can use
native SAP communication technology to interact with BAPI's and Function Modules as well
as IDOCs to retrieve information and launch processes. Like other Jitterbit operations,
creation of SAP functions is wizard-driven once you create the endpoints.
383
This topic presents information on installed components of SAP Connector. You may use this
section as a troubleshooting reference.
Adapter Libraries
The table below lists components of the SAP Connector that enable you to create SAP
endpoints and functions. Their locations in the Jitterbit Integration Server folder are given in
the right column.
Component
sapidoc.jar
sapidoc3.jar
sapjco3.jar
saprfc.jar
sapjco3.dll
JITTERBIT_HOME\bin
Notes
The .dll must be version 720.94 or above.
The sapjco3.dll file must be compatible with IA32
architecture (Intel 32-bit). This is true even on a 64-bit
Windows OS, since Jitterbit currently requires a 32-bit Java
Runtime Environment on Windows.
384
ERP Connectors
In case of errors
If you receive an error message when testing a newly created SAP endpoint connection,
read the details carefully. Check the folder on your computer where Jitterbit Integration
Server is installed to make sure the SAP components are in place.
See also:
Creating an SAP Endpoint
Creating an SAP Function
385
Connection Parameters
Host
Use default
port
Port
Unchecking the default port box activates the Port window to the right,
where you may specify an alternate port.
Login
Password
System
Number
386
ERP Connectors
Client
Language
The language in which SAP messages will be sent. The default language is
English.
After completing your connection parameters, click the Test Connection button. You will
receive a progress report, which should be followed by a success message.
In case of errors:
If you receive an error message when testing the SAP endpoint connection, read the details
carefully. Check the folder on your computer where Jitterbit Integration Server is installed
to make sure the following SAP components are in place:
Component
In
sapidoc.jar
sapidoc3.jar
sapjco3.jar
saprfc.jar
sapjco3.dll
387
The Endpoint screen appears. If you have not previously created an SAP endpoint, you can
do so now on the Endpoint screen. If you have created one or more SAP endpoints, select
one now from the Available SAP Endpoints dropdown.
388
ERP Connectors
BAPI Example
When you select the BAPI radio button and click Next, the Function screen appears,
displaying a list of BAPI functions.
389
You can filter the display by typing a few letters in the Filter window. For example, if you
type "ACC" in the window, only functions containing the letters "ACC" will display.
You can also filter the function display by making a selection from the dropdown: Name,
Description, or both. The screen will then display function names, descriptions, or both, that
contain the letters you typed in the Filter window.
Click on a function to select it. A selection activates the Finish button. This triggers a
download of request and response structures.
If you have not already logged in to a Jitterbit server, you will be prompted to do so
now.
Following the download, response and request structures are displayed.
390
ERP Connectors
This completes the BAPI type SAP function. You can now use this function in a Jitterbit
integration. As appropriate, click one of the buttons in the upper right corner. A Jitterbit
wizard steps you through the creation process:
Create Operation
Create Request
Create Response
RFC Example
When you click the RFC radio button on the SAP Function wizard Type screen and click
Next, the Function screen appears, displaying a list of RFC functions. Follow the same steps
for completion as for BAPI functions. On completion, you will have request and response
structures available for use in a Jitterbit integration. As appropriate, click one of the buttons
in the upper right corner of the display for request and response structures. A Jitterbit
wizard steps you through the creation process.
391
IDOC Example
When you click the IDOC radio button on the SAP Function wizard Type screen and click
Next, the Category screen appears.
Note that you can view a document category description by hovering your mouse over the
category name.
You can filter the display by typing a few letters in the Filter window. For example, if you
type "MO_" in the window, only functions containing the letters "MO_" will display.
You can also filter the category display by making a selection from the dropdown: Name,
Description, or both. The screen will then display category names, descriptions, or both,
that contain the letters you typed in the Filter window.
Click on a category to select it. A selection activates the Next button. This triggers a
download of the selected category, which displays on the Function screen.
If you have not already logged in to a Jitterbit server, you will be prompted to do so
now.
On the Function screen, select the downloaded category. This activates the Finish button.
Click this button to trigger a download of request and response structures.
Following the download, request and response structures are displayed.
392
ERP Connectors
This completes the IDOC type SAP function. You can now use this function in a Jitterbit
integration. As appropriate, click one of the buttons in the upper right corner. A Jitterbit
wizard steps you through the creation process.
See also:
Transforming Data Overview
Working with Sources
Defining Targets
393
Jitterbit Plugins
Extending Jitterbit with Plugins
Click to view:
Required Plugins
Applying Pipeline Plugins
Creating Plugins
Note: Jitterbit supports plugin manifests using wild cards for data elements. Version of
Jitterbit Server is required to use plugins that use this feature.
Plugins are available to act on sources, targets and web service calls and can be called from
scripts using the RunPlugin method. This means you can easily add encryption,
compression, and much more to files moving through the Jitterbit transformation pipeline.
Use plugins to add the functionality your projects require. Plugins are very flexible and can
do just about anything to your data and to the transformation logic. Jitterbit provides a
range of plugins, and invites its users to publish their own.
Installing a Plugin
For a current list of Jitterbit plugins, go to http://help.jitterbit.com/forums/20387311plugins.
Plugins are usually distributed as a zip archive. Extract the files and move or copy the
extracted root folder to JITTERBIT_HOME/Plugins/Pipeline/User/. Then restart the Jitterbit
Process Engine service.
On Windows, restart Jitterbit Process Engine service from the Services Admin
console.
On Linux, run the command /etc/init.d/jitterbit restart.
The plugin directory contains a file called plugin.xml. Documentation for the plugin is
provided. This information is also accessible through the client.
Right-click on the source/target/web service call to which you want to assign the
plugin; then select Plugin....
The bottom half of the page lists the plugins available on the server where you are logged
in. (If you are not logged in to a server, plugins are not visible.) Only plugins applicable to
the particular item are visible. For example, if a plugin is written specifically for sources, you
can't apply it to a target, and it will not appear in the list for targets.
395
Select a plugin and click View details... for a description of the plugin's actions and
parameters you can configure.
To assign a plugin, click Assign. The plugin will appear in the list at the top of the
window. You can assign any number of plugins to a source or target.
To remove the plugin from the list, select the plugin and click Remove. Changes will
not be applied until you have deployed the item.
Creating Plugins
Jitterbit provides an SDK to make creating plugins simple. If you are using C++ or Java,
you can take advantage of classes that reduce the amount of code you need to write. The
work to create a plugin is to act on a list of input files and data elements and provide a list
of output files and data elements. If you are using another language - and you can use any
language capable of generating executable files on the platform you are using - you can
lobby in the Jitterbit forums for helper classes to be added in that language.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Required Plugins
This topic covers procedures to determine whether your operation requires a plugin and, if
so, whether the plugin is installed on the server.
With the operation open in your workspace, click View > Required plugins.
A new pane will appear on the right side of your workspace.
With operations that do not require a plugin, the message will be, "No plugins are
used."
396
Jitterbit Plugins
To determine whether a required plugin is installed on the server, click the green
checkmark near the top right corner of the pane.
If the required plugin is not installed on the server, you will receive a message like
this:
This section describes how to use existing plugins in your integration project.
Plugins can be applied to the following components:
1. Sources
397
2. Targets
3. Web Service Calls
To unassign a previously applied plugin, select the plugin in the Currently assigned section, and
press the Remove button, then Apply or OK. Redeploy the entity to the server for the change to
get in effect.
Note 1: A plugin can be defined to be Required for a certain entity type. This means that the
plugin will always be applied to every entity of that type. A required plugin cannot be removed
from the Currently assigned section.
Note 2: Multiple plugins can be applied to a single entity. In this case, the order in which the
plugins will be applied is defined by the ExecutionOrder attribute in the plugin XML. The plugins
appear in the Currently assigned section in the same order as they will be executed.
Creating Plugins
398
Jitterbit Plugins
Jitterbit provides an SDK to make creating plugins simple. If you are using C++ or Java you
can take advantage of classes that reduce the amount of code you need to write. The work
to create a plugin then is to act on a list of input files and data elements and provide a list
of output files and data elements. If you are using another language -- and you can use any
language capable of generating executable files on the platform you are using -- you can
lobby in the Jitterbit forums for helper classes to be added in that language.
399
Formula Builder
Formula Builder Overview
You can enhance and refine your wizard-created data processes by using the Jitterbit
Formula Builder to enter Jitterbit scripts. A script has several uses. For example:
It can be used in a transformation mapping to create a target data element from
source data.
It can serve as a free-standing script to perform a given calculation or to set
variables.
The Formula Builder includes a drop-down allowing you to view the tool's interface in
Business Analyst mode or Developer mode.
Jitterbit Script Features
Built-in Functions
Formula Builder Features
Debugging Scripts
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Syntax highlighting
Different colors are used to distinguish the different parts of an expression, such as
function names, strings, and data elements.
Parentheses matching
Placing the cursor in front of an opening parenthesis will highlight the corresponding
closing parenthesis with a green color. If no matching closing parenthesis is found,
the opening parenthesis is highlighted with a red color. Similarly, placing the cursor
after a closing parenthesis will highlight the corresponding opening parenthesis
green, if one is found. Otherwise the closing parenthesis is highlighted with red.
Also, with the cursor standing next to an opening (closing) parenthesis, pressing
CTRL-SHIFT-P will automatically move the cursor to the matching closing (opening)
parenthesis, if one exists.
401
Auto-completion
Pressing CTRL-SPACE in the expression area will bring up a list of available function
names or global data variables matching what has already been written.
Example: start typing "Da" and press CTRL-SPACE. This brings up a popup with the
following matching functions: "Date", "DayOfMonth", and "DayOfWeek". You can
navigate through the list using the arrow keys on your keyboard. The documentation
for the selected function in the list is also displayed (with a short delay) next to the
popup. Pressing ENTER or TAB will automatically insert the selected function or data
element into the expression area.
Example 2: Type "RunOperation(", and, with the cursor placed after the opening
bracket, hit CTRL-SPACE. You will get a list of all Operations in the current project
that can be used as input argument to the RunOperation call. This works on all
functions that take a project item as input, e.g. WriteFile and RunScript.
Hover-help
Hovering with the mouse over a function name in the expression area will bring up
the documentation for that function in a popup window. The window disappears
when the mouse is moved away from the function name.
The function tree also has hover help, but it only displays the first sentence of the
function's description. To see the complete documentation for a function in the tree
you need to select the function and press F1, or click the Help button located above
the function tree.
Another type of hover functionality is available for data elements in the script.
Hovering with the mouse over the name of a data element in the script will display
the type and current value of the data element in a popup. Note that the client does
not always know the type or value of a data element; this functionality is intended
for use mainly in the case where you have stopped a script or mapping executing at
a breakpoint.
402
Formula Builder
Block indentation
When a complete line, or more than one line, is selected, hitting TAB will indent the
selected lines one tab stop to the right. Similarly, SHIFT-TAB moves out the
selected lines one tab-stop to the left. (SHIFT-TAB works this way even if nothing is
selected; it will then move the line where the cursor is.)
Toggle comments
Pressing CTRL-/ in the expression area comments or uncomments the line where
the cursor is positioned, by adding or removing a leading "//". If more than one line
is selected, and at least one of the selected lines is not commented, "//" will be
added to each of the selected lines. If all the selected lines are commented, the "//"
part will be removed from each line.
Font-size control
Pressing CTRL NUMPAD+ in the expression area will increase the font size.
Similarly, CTRL NUMPAD will decrease the font size. The font size is remembered
the next time the formula builder is opened.
Search functionality
Pressing CTRL-F in the expression area will bring up a search dialog that allows you
to search for text in the expression area.
Line numbering
Pressing CTRL-SHIFT-L in the expression area toggles display of line numbers in
the left-hand side margin on and off.
Jump to line
Pressing CTRL-L in the expression area opens an input dialog for entering a line
number. Pressing OK will automatically position the cursor at the beginning of the
line entered.
403
Select the mapping to which you want to apply a formula, then double-click on the
angle in the line showing the mapping relationship:
Select an existing mapped relationship to activate the Create Formula button; then
click on the button.
2. The value of the mapped source data element that you selected is loaded into the
Formula Builder's upper pane.
Note: The source tree appears in the right pane only when you are mapping, not
when you are scripting an operation.
Caution: In order to be transformed correctly, the software must wrap the final
expression with a <trans> ... </trans> tag. Make sure that this tag is preserved as
you manipulate your expression.
3. (Optional) If you need to use a logical operator in your expression, select the
location in the expression where the operator should be placed, then click the
appropriate operator button.
4. Select the function you want to use from the Functions tree in the left pane.
5. Add the selected function to your expression by clicking the Insert button.
6. (Optional) Click the Test button to open the Formula Tester dialog. The Formula
Tester is where you can test the results of your formulas by entering the values you
would like to supply as input to the formula. The resulting output will be displayed at
the bottom of the dialog.
7. When you have finished your expression, click OK.
404
Formula Builder
(Back to Top)
Modifying Expressions with Source Elements
You can use a source element's value to modify the expression you are creating in the
Formula Builder. For example, you may need to convert one currency to another format.
You may have a source element called "CurrentConversionRate" that contains the most
recent exchange rate between US dollars and Euros.
To use another source data element in your expression, select where the expression should
be placed, select the desired source element (e.g., "CurrentConversionRate") in the Source
pane, then click the Insert button. (Alternatively, you can double-click the desired source
element as a shortcut to load it into your expression.)
(Back to Top)
Related topics:
Formula Builder Overview
Fomula Builder Functions
Transformation Mapping
Advanced Transformation Overview
Transformation Toolbar Objects
This section describes the functions that are available in the Jitterbit Formula Builder.
The functions are organized into the following categories:
1. Conversion
405
2. Cryptography
3. Database
4. Dictionary and Array
5. Date-Time
6. Debugging
7. Diff
8. Email
9. File
10. General
11. Instance
12. LDAP
13. Logging and Error
14. Logical
15. Math
16. Salesforce
17. String
18. Text Validation
19. XML
Jitterbit Script Features
A Jitterbit script consists of built in functions to execute, separated by semi-colon (;). The
Jitteribt script language has few control structures but has many functions specifically designed
for data manipulation. The result of a Jitterbit script/formula is the last statement. All the built-in
Jitterbit functions and global data elements are available in the formula builder and can be
dropped on to the formula as needed so little typing is necessary.
Formulas are always surrounded by a <trans> tag. Everything outside of the trans tag is left asis.
this will be left as-is
<trans>DbLookup(...)</trans>
so will this
406
Formula Builder
These are some of the main features of the Jitterbit script language:
Comments
Within the <trans>...</trans> tags, "//" marks the start of a comment, and affects the text
to the end of that line. Comments will not be part of the transformed result.
<trans>
// This is a comment
DbLookup(...)
</trans>
You can also use a block-style comment:
<trans>
/* This is a comment
This line is now also a comment DbLookup(...)
This ends the comment */
DbExecute(...)
</trans>
Data elements
There are two types of data elements: source data elements and global data elements.
Source data elements are used to reference source data and is referred to by its path in
the source tree. Global data elements are either accessed using the Get and Set
functions or by putting a $ sign in front of the name.
// Assign a source data element to a global data element:
$op1=root$transaction.request$body$Calculate$input.Operand1$;
// Assign it to another global data element using the Set and Get methods:
Set("op2", Get("op"));
The Set and Get methods are useful when the name of the data element is not know,
such as when creating a lookup map.
// Create a lookup map:
Set(root$transaction.request$body$Calculate$input.Operand1$,
root$transaction.request$body$Calculate$input.Operand2$)
407
Data types
All source data elements and global data elements that are not null has a type associated
with it. Jitterbit supports the following data types: Integer, Long, Float, Double, Date,
String, Boolean, Timespan, Bit, Binary and Array. Data element types can be changed
using the methods in the Conversion category.
Arrays
An array is a collection of data elements. Each member in the collection can be of any
supported type, including arrays. The members of an array can be accessed using the
Get and Set methods or using the [] array syntax.
// DbExecute returns a record set as a two-dimensional array: Rows first, then columns
$resultSet = DbExecute("Project Name/Sources/Database Name", "select Result from
SimpleCalculatorResults");
$firstRow = Get($resultSet, 0);
$thirdColumnOfSecondRow = $resultSet[2][3];
$secondColumnOfThirdRow = Get($resultSet, 3, 2);
Operators
Below is a summary of the operators supported by Jitterbit. Jitterbit will try to convert the
arguments to enable the operation. If this is not possible an error will be reported.
= Assignment. The right-hand argument will be assigned to the left-hand argument.
+ Add two numbers or concatenate strings. If a string is added to anything else both
arguments are converted to strings. If both arguments are numbers the result will be of
type double.
- Subtract two numbers. The result will be of type double.
/ Divide two numbers. The result will be of type double.
* Multiply two numbers. The result will be of type double.
& Logical AND operator. The result will be of type boolean. && can also be used. This is
always a short-circuit operator, meaning that if the left-hand argument evaluates to false,
the right-hand argument will not be evaluated.
| Logical OR operator. The result will be of type boolean. || can also be used. This is
always a short-circuit operator, meaning that if the left-hand argument evaluates to true,
the right-hand argument will not be evaluated.
408
Formula Builder
Escape sequences
Jitterbit recognizes the following escape sequences when used in literal strings: \t (tab),
\r (carriage return), \n (new line). Literal strings have to be surrounded by double quotes
(") or single quotes ('). The "other" quote has to be escaped if used in the string:
$str="String with line break.\nThat's the last line."
$str='Tony "The Gun" Marcello'
$str="Tony \"The Gun\" Marcello"
Control structures
The Jitterbit script does not have control structures as such, but the functions Case, If and
While can be used to mimic them. See the documentation of the individual functions.
409
410
Formula Builder
Function: Date
411
412
Formula Builder
Function: String
413
// Read a file called "requirements.doc" from the FTP directory defined by the source "Word
Documents FTP".
$file_contents = Base64EncodeFile("<TAG>Project Name/Sources/Word Documents
FTP</TAG>", "requirements.doc")
Back to List of Functions
Function: MD5
414
Formula Builder
Function: MD5AsTwoNumbers
(The ID is constructed by wrapping the project path of the selected database source or target
within <TAG>...</TAG> tags.)
The sql_str argument is the string used to perform the lookup. If there are no rows returned for
the query specified in sql_str the function returns NULL.
The global data element $jitterbit.scripting.db.rows_affected is not set by this method.
Example:
CacheLookup("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT ORDER_TYPE
FROM PO_HEADER WHERE PO_NUMBER = 1")
Back to List of Functions
Function: CallStoredProcedure
416
Formula Builder
417
Examples
Example 1
$rows = DbExecute("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT ORDER_TYPE,
ORDER_AMMOUNT FROM PO_HEADER WHERE PO_NUMBER = 1")
The value of the database column ORDER_TYPE can then be accessed with Get($rows, $i,
0) where $i is the 0-based count of the row you want to get.
Example 2
DbExecute("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT CustomerName,
CustomerAddress FROM Customers WHERE CustomerId = " + $cust_id, $cust_name,
$cust_addr)
The value of the database column CustomerName can then be accessed with
Get("cust_name") or just $cust_name.
Example 3
DbExecute("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT ORDER_TYPE,
ORDER_AMMOUNT FROM PO_HEADER WHERE PO_NUMBER = 1", "OrderType",
"OrderAmmount")
The value of the database column ORDER_TYPE can then be accessed with
Get("OrderType") or just $OrderType.
Back to List of Functions
Function: DBLookup
418
Formula Builder
transaction. The transaction will be committed at the end of a successful transformation. Setting
auto commit to true and transaction to true will result in an error.
The result is always returned as a string. If the result of the SQL statement is a binary value its
hex-string representation is returned.
Example:
DBLookup("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT ORDER_TYPE FROM
PO_HEADER WHERE PO_NUMBER = 1")
Back to List of Functions
Function: DbRollbackTransaction
419
Example:
DBLookup("<TAG>MyProject/Targets/myDbTarget</TAG>", "SELECT ORDER_TYPE FROM
PO_HEADER WHERE PO_ID = " + Quote(SqlEscape(GUID)))
Back to List of Functions
Function: Unmap
Syntax: <SEQUENCE>
This is similar to <SQLIDENTITY> except it is for Oracle database.
Example:
<SEQUENCE>
Back to List of Functions
Function: <SQLIDENTITY>
Syntax: <SQLIDENTITY>
This is used in mappings where the target contains tables that are linked with a primary key /
foreign key relationship. In that case, map this to primary keys that are generated by the
database, such as Identity in SQL Server or Serial in PostgreSQL. For Oracle, use
<SEQUENCE> instead.
Example:
<SQLIDENTITY>
Back to List of Functions
Function: <UDF>
Syntax: <UDF>
Adds user defined database function to the beginning of the formula.
420
Formula Builder
Example:
<UDF>ISNULL(NULL,NULL)
Back to List of Functions
Function Category: Date-Time
Formula
Input
Output
19940619
6/19/94
CVTDate(Now(),
"GeneralDate", "dd-mmm-yy,
HH:MM AP")
19-Jun-94, 10:37 AM
061994
421
The format of both the input date string and the output date string are specified in the same way
by using either characters for place holders or one of the four pre-defined date formats
(GeneralDate, LongDate, MediumDate, or ShortDate).
For input, year, month, day, hour, minute, second and AM/PM are read from the date string at
the position where y, m, d, H, M, S and AP appear in the input format string.
For output, the format string is copied to the data string with the year, month, day, hour, minute,
and second replacing the characters of y, m, d, H, M, S and AP.
Alternatively, the substitutions used in the ANSI C method strftime can be used, e.g. the string
"%Y-%m-%d" would result in the ISO 8601 date format (yyyy-mm-dd). See the unix manual
page for strftime for a detailed description (http://www.penguinsoft.com/penguin/man?q=strftimeion=ALL&action=man).
The following can appear anywhere in the format string to specify how to read the input or write
the output:
Format
Input/Output
yyyy
4-digit year
yy
(last)2-digit year
??yy
2- or 4-digit year
mmm
mm
?m
ddd
dd
?d
HH
MM
Minutes (00-59)
SS
Second (00-59)
AP
AM or PM
GeneralDate
6/19/94 5:34:23 PM
LongDate
MediumDate
19-Jun-1994
ShortDate
6/19/94
422
Formula Builder
Function: DayOfMonth
Function: LastDayOfMonth
LastDayOfMonth(Now()) returns the date object of February 29, if today is in February of a leap
year.
423
At 11:59:23 am on September 16, 2000, the LongDate(Now()) function would return "Saturday,
September 16, 2000".
Back to List of Functions
Function: LongTime
At 11:59:23 am on September 16, 2000, the LongTime(Now()) function would return "11:59:23
AM".
At 11:59:23 am on September 16, 2000, the MediumDate(Now()) function would return "16-Sep00".
Back to List of Functions
Function: MediumTime
At 11:59:23 am on September 16, 2000, the MediumTime(Now()) function would return "11:59
AM".
Back to List of Functions
Function: MonthOfYear
424
Formula Builder
Function: Now
At 11:59:23 am on September 16, 2000, the Now() function would return 09/16/2000 11:59:23
AM.
Back to List of Functions
Function: Now_
At 11:59:23.123456 am on September 16, 2000, the Now_() function would return 09/16/2000
11:59:23.123456 AM.
Back to List of Functions
Function: ShortDate
At 11:59:23 am on September 16, 2000, the ShortDate(Now()) function would return "9/16/00".
Back to List of Functions
Function: ShortTime
At 11:59:23 am on September 16, 2000, the ShortTime(Now()) function would return "11:59".
Back to List of Functions
Function Category: Debugging
425
426
Formula Builder
$d["key"]="value"
Back to List of Functions
Function: Array
Syntax: array Array() Creates an empty array. Arrays don't need to be initialized before use but
this method can be used to be explicit or to reset an already existing array.
Example:
$arr = Array(); // Create an empty array
$arr[0] = "value1";
$arr[1] = "value2";
$arr2[0] = "value"; // Create an array and set the first value
Back to List of Functions
Function: Collection
Function: CollectValues
427
Function: Dict
Syntax:dictionary Dict()
Creates an empty dictionary. Dictionaries must be initialized before being used.
Example:
$d = Dict();
$d["key"] = "value";
Back to List of Functions
Function: GetSourceAttrNames
Syntax:GetSourceAttrNames(...)
Returns an array containting the names of the attributes for a node in the order that the
attributes appear in the node.
Compare GetSourceInstanceMap. This function returns the keys for the map returned by
GetSourceInstanceMap on the same node.
Example:
// Appends all the attributes together without having to explicitly reference their source data
elements.
map = GetSourceInstanceMap([Values$Value.]);
names = GetSourceAttrNames([Values$Value.]);
n = Length(names);
i = 0;
str = "";
while(i <; n,
str = str + map[names[i]];
i=i+1
);
Back to List of Functions
428
Formula Builder
Function: GetSourceInstanceMap
Syntax:GetSourceInstanceMap(...)
Returns a dictionary (map) containing the attribute name and its value from an element node.
Example:
map = GetSourceInstanceMap([Values$Value.]);
map["Attr1"]; // Returns the value of the "Attr1" attribute.
Back to List of Functions
Function: HasKey
Function: Map
Syntax:dictionary Map()
Alias for Dict()
Back to List of Functions
Function: RemoveKey
430
Formula Builder
Function: DiffKeyList
Syntax: void OrderedDiffKeyList(string k1, bool isAscending1 [, string k2, bool isAscending2 ...,
string kn, bool IsAscendingN])
431
Use this method instead of DiffKeyList in cases where the source records are guaranteed to be
in a certain order. Set the list of keys to use for uniquely identifying a record in the source and if
the record order is ascending or descending for that key. The diff processing is a lot more
efficient if the source fields are ordered the same way each time. In this case no chunk size will
be used and memory use is not an issue.
This method is typically called in conjunction with InitializeDiff.
Back to List of Functions
Function: ResetDiff
Syntax: string SendEmail(string from, string to, string subject, string message[, string
smtpServers, string account, string accountPassword, string cc, string bcc, string reply-to])
Since version: 1.2.0
432
Formula Builder
Sends an email using the supplied information. Only the four first arguments are required, the
rest are optional. If some information is not specified it will be read from the server configuration
file. If it is not available in the configuration file the email will not be sent. The method returns a
string with an error message if the email could not be sent, on success an empty string is
returned.
Example:
433
DefaultFromEmail=some.user@yourdomain.com
# If your smtp server needs authentication the account and password can be added here.
DefaultAccount=
DefaultAccountPassword=
Back to List of Functions
Function Category: File
434
Formula Builder
Function: FlushFile
435
Writes file_contents to the file-type target specified by target_id. If file_contents is of type binary,
the binary data is written to the file. In all other cases a string representation of the data is
written.
Writes the string file_contents to the file-type target specified by target_id. The file-type target
used in this function call must be defined as a target in the current integration project. The
available file-type targets are shown in the "Project Items" tab in the lower section of the
Formula Builder, under the node called "File Locations".
The third argument, file_name is optional and can be used to override the file name used in the
target. Alternatively, a global data element can be used to override the file name in the target
definition. Global data elements are referenced as "[de_name]" in the target definition.
The file contents is buffered locally until FlushFile() is called on the target or the transformation
finishes successfully, so calling WriteFile several times without calling FlushFile() will just
append data to the current buffer and everything is written to the actual file-type target at the
end of the transformation. A file buffer is uniquely identified by the target and the file_name so
you can use the same target to write to different files in the same directory and the file buffers
will be separate.
Files are not actually written to the target in a test transformation, unless FlushFile() is called. If
a transformation is run in an operation or as part of a test operation, the file will be written when
the transformation finishes successfully, or FlushFile is called in the script.
This method can also be used to write/post data to an http target.
Example:
436
Formula Builder
Guid
IfEmpty
IfNull
InitCounter
InList
IsInteger
IsNull
IsValid
Length
Null
ReadArrayString
RecordCount
ReRunOperation
RunOperation
RunPlugin
RunScript
Set
Sleep
SourceInstanceCount
TargetInstanceCount
WaitForOperation
Back to List of Categories
Function: AutoNumber
Syntax: int AutoNumber()
Returns the number of a line within a particular hierarchy.
NOTE: This method has been deprecated and may be removed in a future version. Use
437
438
Formula Builder
Attempting to get an element beyond the end of the array will result in an array out of range
error.
Example:
// Return the value of a global variable
Get("Count")
// Return the third array element
Get($arr, 2)
// Same as the above
Get("arr", 2)
// Get the n:th element of the m:th array in arr
Get($arr, m-1, n-1)
Back to List of Functions
Function: GetHostByIp
The operation tag argument is optional and, if present, only queue entries for that particular
operation will be returned. The available operations are shown in the "Project Items" tab in the
lower section of the Formula Builder, under the node called "Operations". By double clicking on
an operation node, the corresponding operation ID will be inserted into the formula expression.
The ID is constructed by wrapping the project path of the selected operation within
<TAG>...</TAG> tags.
Example:
GetServerName()
Back to List of Functions
Function: Guid
Syntax: string Guid()
Returns a GUID string. The format of the guid is "c056f89d-1f45-458e-8b25-9ecf2ed10842".
Example:
Formula Builder
Function: IfEmpty
Syntax: type IfEmpty(type arg, type default)
Returns default if arg is NULL or if the string representation of the argument is an empty string, else
returns arg. This is a short-cut for If(IsNull(arg) || Length(arg)==0, default, arg)
Back to List of Functions
Function: IfNull
Syntax: type IfNull(type arg, type default)
Returns default if arg is NULL, else returns arg. This is a short-cut for If(IsNull(arg), default, arg)
Back to List of Functions
Function: InitCounter
Syntax: long InitCounter(type counter, long initial_value)
Initializes a thread-safe counter. Optionally pass the initial value. If no initial value is set it's
initialized to 0. The first argument is either the name of a data element or a reference to a data
element, see the examples. This method needs to be called in single-threaded contexts only.
Calling this method in a multi-threaded context will result in an error
Example:
441
Function: IsInteger
Syntax: bool IsInteger(type x)
Returns true if the argument is of type integer or long or can be converted to an integer or long
without loss of information.
Example:
$s="1";
IsInteger($s); // Returns true
$s="1a";
IsInteger($s); // Returns false
$s=12.12;
IsInteger($s); // Returns false
$s=12.00;
IsInteger($s); // Returns true
Back to List of Functions
Function: IsNull
Syntax: bool IsNull(type arg)
Returns true if arg is NULL. Applies to database fields and functions that can return NULLs.
Example:
If(IsNull(POHeader.Vendor_Code),Null(),"VC")
Back to List of Functions
Function: IsValid
Syntax: bool IsValid(type x)
Returns true if the evaluation of x results without error.
Example:
IsValid(Date("abc")) returns a value of false, since the string "abc" cannot be converted to a
Date.
IsValid(3/0) returns a value of false, since division by 0 is not allowed.
IsValid(0/3) returns a value of true, since 0/3 is a legal expression, evaluating to 0.
Back to List of Functions
Function: Length
Syntax: int Length(type arg)
Returns the length of the input argument. The following list summarizes the behavior of this
method for different input types:
string: The length of the string is returned;
442
Formula Builder
Example:
// String length:
Length("Mississippi") // returns 11.
// Array length:
// Count the number of email address nodes.
$nodes = SelectNodesFromXmlAny("cust:EmailAddress",Customer$Any#.,
"cust=urn:xmlns:25hoursaday-com:customer");
Length($nodes)
// Binary arguments:
Length(HexToBinary("b2082fee")) // returns 4, because the input is a 4-byte binary data element
// Numeric arguments:
Length(1234567) // returns 7
Length(123.45678) // returns 9
// Misc:
Length(true) // returns 1
Length(Now()) // returns 19 since the default date format is yyyy-MM-DD hh:mm:ss
Length(Null()) // returns 0
Back to List of Functions
Function: Null
Syntax: null Null()
Always returns NULL.
Example:
This function can be used to insert a NULL value into specific columns of a database.
Back to List of Functions
Function: ReadArrayString
Syntax: array ReadArrayString(string arrayString[, string type])
443
Reads a string which represents a one or more dimensional array. The array is represented by
enclosing array elements with a pair of curly brackets ('{' and '}'). Each array element can be an
array or a scalar element separated by comma (','). But the array elements in an array must be
all scalars or all arrays.
The scalar data element can be represent by a CSV string.
Double quotes to enclose the string is optional, unless the string contains some special
characters such as ",{}\n". Inside the double quoted string each double quote must be escaped
by two double quotes. The optional 2nd argument is to specify the data type of the scalar data
element. The data type is assume to be string if it is not specified.
Example:
RecordCount() returns a value of 5 while generating the 5th line in a target loop node.
Back to List of Functions
Function: ReRunOperation
Syntax: bool ReRunOperation([bool run_synchronously])
Re-runs the current operation. Takes an optional boolean argument that determines if the
operation should run synchronously (the default) or asynchronously.
Warning: Since this ends up being a recursive call, make sure you have some sort of stop-
444
Formula Builder
RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>")
Back to List of Functions
Function: RunPlugin
Syntax: bool RunPlugin(string plugin_tag)
Runs the specified plugin and then continues execution of the current script. The available
plugins are shown in the "Plugins" tab in the lower section of the Formula Builder. When the
client is connected to a Jitterbit server, the plugins that are installed on that server are displayed
here. Only those plugins that can be run inside a script are displayed; plugins that run on
Sources, Targets, and Web Service Calls are hidden.
445
Returns true if the plugin completes without errors. Returns false if the plugin could not be run or
the plugin implementation itself returned an error. Call GetLastError() to get the error message.
Back to List of Functions
Function: RunScript
Syntax: type RunScript(string script_tag)
Runs the specified script and then continues execution of the current script. The available
scripts are shown in the "Project Items" tab in the lower section of the Formula Builder, under
the node called "Scripts". By double clicking on a script node, the corresponding script tag will
be inserted into the formula expression. (The tag is constructed by wrapping the project path of
the selected script within <TAG>...</TAG> tags.) This method returns the return value of the
called script on success.
Example:
$result = RunScript("<TAG>MyProject/Scripts/CalculateSomething</TAG>")
Back to List of Functions
Function: Set
Syntax: type Set(string name, type value [, int index1, int index2, ...])
Sets the value of the global variable with the given name to value, and returns the value. If the
first argument is an array or the name of an array data element you can set the value of an
array element by specifying its index (or indices for multi-dimensional arrays) as the third
argument.
Arrays are zero indexed, i.e. the first element is at index 0 and the last element is at index size1. To append data to an array, pass a negative index value or the size of the array. Setting an
element with index larger than the size of the array results in an index out of range error. Setting
non-array data elements can also be done using the $de_name syntax, see examples below.
Example:
// Increases the variable Count by 1, and then returns the value of Count
Set("Count",Get("Count")+1)
// This does the same thing
$Count = $Count + 1
// Set the n:th entry in an array to the string "value"
Set($arr, "value", n-1)
// Set the n:th entry of the m:th array
Set($record_set, "value", m-1, n-1)
// Append a value to the array.
446
Formula Builder
Sleep(60);
Back to List of Functions
Function: SourceInstanceCount
Syntax: int SourceInstanceCount()
Returns the instance count of the most recent generator. The value is independent of whether
the target instance has been generated or not, i.e. the same value is returned when called in a
condition script and a mapping script. When the first source instance is used as the generator, 1
is returned, then 2 etc. Also see TargetInstanceCount().
Back to List of Functions
Function: TargetInstanceCount
Syntax: int TargetInstanceCount()
Returns the instance count of the generated target loop node. The number returned by this
method will be one less if it is called in a condition since in a condition it is not known yet if the
current target instance will be generated or not. When called in a condition it returns the number
of target instances that have been generated so far for the current loop node. When the first
target instance is generated, 1 is returned, then 2 etc. If called in a condition the sequence will
be 0, 1, .... Also see SourceInstanceCount().
Back to List of Functions
Function: WaitForOperation
447
for several operations you have to call this method several times. The available operations are
shown in the "Project Items" tab in the lower section of the Formula Builder, under the node
called "Operations". By double clicking on an operation node, the corresponding operation ID
will be inserted into the formula expression. The ID is constructed by wrapping the project path
of the selected operation within <TAG>...</TAG> tags.
The second (optional) argument is the time-out in seconds. The default time-out is 1 hour (3600
seconds) and if the operations have not finished within this time an error will be thrown. If you
expect your operations to run for a longer time during normal conditions you have to increase
the time-out. You can handle this error by using the Eval function.
The third (optional) argument is the poll-interval in seconds. The default poll-interval is 10
seconds and this is the time between operation queue checks. The default will not be a
significant performance hit but if you expect your operations to run for a very long time you may
want to increase the poll-interval.
Example:
// Add ten operation instances to the queue and wait for all of them to finish
$i = 0;
while($i < 10,
RunOperation("<TAG>MyProject/Operations/Process One Message</TAG>", false)
$i = $i + 1;
);
WaitForOperation("<TAG>MyProject/Operations/Process One Message</TAG>");
448
Formula Builder
Function Category: Instance
Assume your database contains a field called quantity in a table called Items that is a child of
POHeader (there are many items within one POHeader).
Count(POHeader.Items#.Quantity) will return the number of item rows for a particular
POHeader (purchase order) that have values in the quantity column (not null).
Back to List of Functions
Function: Exist
Exist(c0,de) returns true if one of the de is equal to c0, otherwise returns false.
Back to List of Functions
449
Assume your database has a child-parent relationship, where for each parent the child occurs 5
times. To get the second child you would use
FindByPos(2, ParentTab.ChildTab#.Value$)
To get the last child you would use
FindByPos(-1, ParentTab.ChildTab#.Value$)
Back to List of Functions
Function: FindValue
450
Formula Builder
Example:
Assume your database contains a field called quantity in a table called Items that is a child of
POHeader (there are many items within one POHeader).
Min(POHeader.Items#.Quantity) will return the minimum quantity for any item for a particular
POHeader (purchase order).
Back to List of Functions
Function: ResolveOneOf
Syntax:type ResolveOneOf(type de) Returns the first non-null value of an array data element.
This function is mostly used for retrieving the value of one-of source data element.
Back to List of Functions
Function: Sum
Assume your database contains a field called quantity in a table called Items that is a child of
POHeader (there are many items within one POHeader).
Sum(POHeader.Items#.Quantity) will return the sum of the quantity for all items for a particular
POHeader (purchase order).
Back to List of Functions
Function: SumCsv
451
452
Formula Builder
LdapAdd("objectClass","user");
LdapAdd("cn","wright");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
Adding attributes to a user:
LdapAdd("description","Thinks a lot.");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
LdapConnect("<TAG>Project Name/Targets/LdapTarget</TAG>")
Back to List of Functions
Function: LdapDeleteEntry
Syntax: bool LdapDeleteEntry(string DistinguishedName)
Removes an entry specified with a distinguished name.
Example:
LdapDeleteEntry("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
453
Function: LdapRemove
Syntax: bool LdapRename(string DN, string newRDN [, string newParent, bool deleteOldRDN])
Changes the distinguished name of an entry in a directory.
DN -- The path of the directory entry to be renamed.
newRDN -- The new relative distinguished name.
newParent -- The distinguished name of the new parent of this entry. (Optional, default: empty)
deleteOldRDN -- If true the old RDN will be deleted. (Optional, default: false)
Back to List of Functions
Function: LdapReplace
454
Formula Builder
1. pass 0 to return a simple string that is the first attribute found that matches
your filter
2. pass 1 to return an XML representation of the search results. This can be set to
a data element using the Set() function and then accessed in this or later
scripts using Get() and an XPath query using SelectSingleNode().
3. pass 2 to return a 2 dimensional array, where each row represents an LDAP
entry, where the elements of the row are the values of the attributes. You can
access the elements using the Get() function.
attribute1 -- an attribute that you wish to be included in the search result. I.e., the attribute
you are searching for. You can specify as many as you like, separated by commas. See
example below.
You can control the scope of the query by setting the data element
$jitterbit.scripting.ldap.scope to one of the following values:
1. 0 -- Search the base-entry only.
2. 1 -- Search all entries in the first level below the base-entry, excluding the
base-entry..
3. 2 -- Search the base-entry and all entries in the tree below the base.
Set $jitterbit.scripting.ldap.include_dn_in_results = true to include the distinguished name
in the search result.
Set $jitterbit.scripting.ldap.use_paged_search = true to use a paged search. This option is
useful for retrieving large result sets.
Set $jitterbit.scripting.ldap.max_search_results to limit the number of search results. A
default is usually set by the LDAP server.
Set $jitterbit.scripting.ldap.return_null_if_no_results = true to make LdapSearch() return
null if the search did not return any results.
Example:
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
$DirectorySearchResults = LdapSearch("CN=Users,DC=finland,DC=company,DC=com",
"(&(objectCategory=person)(objectClass=user))", 1, "name", "whenCreated",
"description", "telephoneNumber")
Back to List of Functions
Function Category: Logging and Error
455
Function: GetLastError
Formula Builder
Syntax: typeN Case(bool b1, type1 de_1, bool b2, type2 de_2,...)
This function checks a pair of arguments: if the first argument in the pair is true it stops checking
and returns the 2nd argument with the type preserved. Otherwise it will check the next pair, and
so on.
Example:
Case(price < 10, "Cheap", price < 100, "Not Cheap", price < 1000, "Expensive", true, "Very
Expensive")
This expression returns "Very Expensive" if the price is 1000. true in the last argument pair
serves as the default for all cases not explicitly listed.
Back to List of Functions
Function: If
457
Example:
$jitterbit.scripting.while.max_iterations = 2000;
$i=0;
// Concatenates the elements of the array $arr.
While($i<Length($arr),$s = $s + "," + Get($arr,$i); $i=$i+1)
Back to List of Functions
Function Category: Math
Formula Builder
Generate the mathematical result x^y, or x to the power of y, given x and y. If x and y are not
data type double, they are converted to type double before the result is generated.
Example:
pow(2,3) returns a value of 8.
Back to List of Functions
Function Category: Salesforce
459
Function: FromDataLoaderDateTime
Logs in to Salesforce and retrieves the current system time from Salesforce.
The login call is made using the credentials in the specified Salesforce Org. The timestamp is
returned in the format yyyy-mm-dd HH:MM:SS, using your org's timezone setting by default.
Null is returned if either login or the call to the getServerTimestamp API fails. Use
GetLastError() to get the error message in this case.
An optional second argument can be used to set the timezone to use. The timezone of your
Salesforce org is used by default if a timezone is not provided.
Example:
$timestamp = LoginToSalesforceAndGetTimestamp("Salesforce Orgs/...");
if(IsNull($timestamp), RaiseError(GetLastError());
460
Formula Builder
The timezone argument must be a timezone recognized by Java's TimeZone class (see
http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html).
Function: GetSalesforceTimestamp
The timestamp is returned in the format yyyy-mm-dd HH:MM:SS, using your org's timezone
setting by default. You must have logged in to Salesforce before using this function. null is
returned if the call fails. Use GetLastError() to get the error message in this case.
An optional third argument can be used to set the timezone to use. The timezone of your
Salesforce org is used by default if a timezone is not provided.
In a common scenario, the function SalesforceLogin is called first. The URL and session ID are
then available in the global data elements $Salesforce.ServerUrl and $Salesforce.SessionId:
461
if(!SalesforceLogin("..."), RaiseError(GetLastError()));
$timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl, $Salesforce.SessionId);
if(IsNull($timestamp), RaiseError(GetLastError());
After a successful login, the following global data elements have been set and can be used in
subsequent scripts or mappings:
$Salesforce.SessionID: The Salesforce session ID.
$Salesforce.ServerURL: The URL to use in subsequent calls to Salesforce in the same
session.
$Salesforce.UserID: The ID of the Salesforce user.
462
Formula Builder
Returns true if the login was successful. Returns false if login failed. Call GetLastError() to get
the error message.
463
SplitCsv
ToLower
ToProper
ToUpper
Trim
TrimChars
Truncate
UrlEncode
Function: CountSubString
CountSubString("Mississippi","iss") returns 2.
Back to List of Functions
Function: Dquote
Function: Format
Formula Builder
Returns a string in the format specified by format_str. The format specification is similar to
the standard C library sprintf format specification, except for date input which accepts the
same format string as the CVTDate (in the Date-Time section).
This function can also be used to "force" the output format for a target. This can be useful
when the default output format that Jitterbit uses for some data type (such as date or
double) is not what you want. The call to Format has to be the last call in the mapping
formula.
Example:
Function: Index
Index("Mississippi","si",2)
"si" starts at position 6. (The first letter "M" starts at position 0).
Index("Mississippi","",1) returns 0.
465
Function: IsValidString
Function: Left
Function: LPad
Function: LPadChar
Formula Builder
Function: LTrim
Function: LTrimChars
Function: Mid
Function: Quote
467
Function: RegExMatch
global data element "dummy" to "[" and the global data element "value" to "abc". The method
will return three because the character "]" also matched the expression but in this example we are
not interested in it and it is not be saved to any data element. Note: "\" has to be escaped in literal
strings since it has special meaning. If you really need "\" (like in this example) you need to use
"\\".
Back to List of Functions
Function: RegExReplace
e st
ss s","\\s","")
RegExReplace("abc(first)123(second)xyz","(.*)(\\(.*\\))(.*)(\\(.*\\))(.*)","\
\1aaa\\4\\2\\3\\5")
Result: "abcaaa(second)(first)123xyz"
Note: "\" has to be escaped in literal strings since it has special meaning. If you really need
"\" (like in this example) you need to use "\\".
Back to List of Functions
468
Formula Builder
Function: Replace
Function: Right
Function: RPad
Function: RPadChar
469
Function: RTrim
Function: RTrimChars
Function: Split
$arr=Split("Donald,Minnie,Goofy", ",");
$donald=$arr[0];
$minnie=$arr[1];
$goofy=$arr[2];
Back to List of Functions
Function: SplitCsv
470
Formula Builder
Splits a CSV formatted string and returns an array with the individual column values. By
default the delimiter is a comma (,) and the string qualifier is a double quote ("). This can
be changed by specifying the optional second and third arguments respectively.
Note: the 2nd or 3rd parameter can be specified with integer corresponding to the ascii
code of the delimiter or qualifier character.
Example:
$arr=SplitCsv('"Donald","Minnie ""The Mouse""",Goofy');
$donald=$arr[0];
$minnie=$arr[1];
$goofy=$arr[2];
Back to List of Functions
Function: ToLower
Function: ToProper
Function: ToUpper
471
Function: Trim
Function: TrimChars
Function: Truncate
Function: UrlEncode
472
Formula Builder
1: Don't encode unsafe characters (" < ;> ; # % { } | \ ^ ~ [ ] ` and the space character).
2: Don't encode reserved characters (; / ? : @ & = ).
3: Don't encode unsafe characters and reserved characters.
The following characters are considered "safe" and are never encoded: $ - _ . + ! * ' ( ) ,
Example:
473
474
Formula Builder
Example:
CreateNode("http://abc.123.com/xml","Contact",Attribute("Type","VIP"),
CreateNode("http://abc.123.com/xml","Name","Bill G."))
Back to List of Functions
Function: GetNodeName
Syntax: string GetNodeName(type path)
Retrieve the name of a node. This method is typically used to retrieve the name of a node
returned by SelectNodeFromXmlAny() or SelectSingleNode().
Example:
GetNodeName(SelectNodeFromXmlAny("Account",Root$Any.))
Back to List of Functions
Function: GetNodeValue
Syntax: string GetNodeValue(type path)
Retrieve the value of a node. This method is typically used to retrieve the name of a node
returned by SelectNodeFromXmlAny() or SelectSingleNode().
Example:
GetNodeValue(SelectNodeFromXmlAny("Account",Root$Any.))
475
SelectNodeFromXmlAny("Account",Root$Any#.)
Back to List of Functions
Function: SelectNodes
476
Formula Builder
Function: SelectNodesFromXmlAny
Syntax: array SelectNodesFromXmlAny(string XPathQuery, type AnyPath,...)
The first argument is an XPath query and the second argument is the data element path
of a value node of an xml Any element. The function returns an array of all the xml
nodes that are matched by the query.If prefixes are used to specify the namespaces in
the XPath query, the prefixes must be specified as one or more string arguments after
the Any node. See Example 2.For documentation on XPath queries see The XPath
standard
Examples
Example 1
// Select all the nodes with the given names
SelectNodesFromXmlAny("Account|Customer|Name",Root$Any#.)
Example 2
// Select email addresses and phone numbers only.
$nodes = SelectNodesFromXmlAny("cust:EmailAddress | cust:PhoneNumber",
Customer$Any#.,"cust=urn:xmlns:25hoursaday-com:customer");
Back to List of Functions
Function: SelectSingleNode
Syntax: type SelectSingleNode(type node, string xpath,...)
Runs an XPath query (See The XPath standard.) on either an XML fragment or on an
XML node returned from another function. If prefixes are used to specify the
namespaces of the node in the XPath query, the prefixes must be specified as one or
more string arguments after the XPath, see example 2.Example:
Example 1
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
Set( "DirectorySearchResults",
LdapSearch("CN=Users,DC=finland,DC=company,DC=com",
"(&(objectCategory=person)(objectClass=user))", 1, "name", "whenCreated",
"description", "telephoneNumber") )
SelectSingleNode( Get("DirectorySearchResults"),
"/DirectoryResults/Entry[name='Administrator']/whenCreated" )
Example 2
SelectSingleNode(Root$Any$,"ns1:E2/ns2:E3",
"ns1=http://xyz1.com","ns2=http://xyz2.com/")Notice
477
1. In this case the reference node is an xml node for xml "any" node. In XPATH
query ns1:E2 is not the reference node itself.
2. Since prefixes ns1 and ns2 are used in XPATH query, they are defined as
arguments after the XPATH.
Back to List of Functions
478
Formula Builder
Transformation, or Test Operation). When the script is actually executed as part of a real
operation the script engine ignores DebugBreak, so you do not have to remove the
DebugBreak calls from your scripts in your production code.
The following screenshot shows the Test tab, when the script has stopped at a breakpoint.
Note how the location of the breakpoint is marked by a small arrow in the left-side margin
of the expression area:
479
1. host: the host name of the directory server. If you get a Server Down error when
you do not expect it, you may need to specify a fully qualified domain name (e.g.,
"directory.finland.philo.fi"). Other causes for this error could be a firewall
preventing access or the directory may be configured to respond to a different
port than the one you are using. You can specify a port in the host parameter by
including it at the end of the domain name, for example,
"directory.finland.philo.fi:10389".
2. user: the user name (see examples below)
3. password: the password
4. secure:
0 -- non-secure connection. Default port: 389
1 -- secure connection. Default port: 389
2 -- secure connection using LDAP over SSL. Default port: 636
Code:
bool LdapAdd(string type, string value)
bool LdapRemove(string type, string value)
bool LdapReplace(string type, string value)
bool LdapExecute(string path)
string LdapSearch(string path, string filter, int iDetail, string attribute1, string attribute2, ...)
1. path: this is the distinguished name used as the base of the search
2. filter: this is the query string as defined by RFC 4515
3. iDetail:
pass 0 to return a simple string that is the first attribute found that matches your filter
480
Formula Builder
pass 1 to return an XML representation of the search results. This can be set to a data element
using the Set() function and then accessed in this or later scripts using Get() and an XPath
query.
1. attribute1: an attribute that you wish to be included in the search result. I.e., the
attribute you are searching for. You can specify as many as you like, separated
by commas. See example below.
As with all other functions you can use data from the source tree in the calls. To do so, put the
cursor where you want the source data to appear and double-click on a node of the source tree
in the lower right pane of the Formula Builder. The source tree data will be inserted at the
cursor's location.
To search a directory:
Code:
LdapConnect()
LdapSearch()
To modify a directory:
Code:
LdapConnect()
To search and replace within a directory:
Code:
LdapAdd()
LdapRemove()
LdapReplace()
481
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)<BR>Set("mySearchResults",
LdapSearch("CN=Users,DC=finland,DC=company,DC=
com","(&(objectCategory=person)(objectClass=user))", 1, "name",
"whenCreated", "description", "telephoneNumber") )
Example of how to modify a directory:
Code:
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)
LdapAdd("description","Thinks a lot."); LdapReplace("telephoneNumber","(510)5551000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
482
Reference
Jitterbit Reference Overview
This section of the online help discusses topics that apply to more than one area of the
Jitterbit Integration Environment.
Use the Table of Contents tab on the left or click on any link below for more details:
Enterprise Edition Features
Using Global Variables
Manual Connection String
Supported Character Encodings
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Download a Project
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
Jitterbit Plugins
Extending Jitterbit with Plugins
Click to view:
Required Plugins
Applying Pipeline Plugins
Creating Plugins
Note: Jitterbit supports plugin manifests using wild cards for data elements. Version of
Jitterbit Server is required to use plugins that use this feature.
Plugins are available to act on sources, targets and web service calls and can be called from
scripts using the RunPlugin method. This means you can easily add encryption,
compression, and much more to files moving through the Jitterbit transformation pipeline.
Use plugins to add the functionality your projects require. Plugins are very flexible and can
do just about anything to your data and to the transformation logic. Jitterbit provides a
range of plugins, and invites its users to publish their own.
Installing a Plugin
For a current list of Jitterbit plugins, go to http://help.jitterbit.com/forums/20387311plugins.
Plugins are usually distributed as a zip archive. Extract the files and move or copy the
extracted root folder to JITTERBIT_HOME/Plugins/Pipeline/User/. Then restart the Jitterbit
Process Engine service.
On Windows, restart Jitterbit Process Engine service from the Services Admin
console.
On Linux, run the command /etc/init.d/jitterbit restart.
The plugin directory contains a file called plugin.xml. Documentation for the plugin is
provided. This information is also accessible through the client.
Right-click on the source/target/web service call to which you want to assign the
plugin; then select Plugin....
484
Reference
The bottom half of the page lists the plugins available on the server where you are logged
in. (If you are not logged in to a server, plugins are not visible.) Only plugins applicable to
the particular item are visible. For example, if a plugin is written specifically for sources, you
can't apply it to a target, and it will not appear in the list for targets.
Select a plugin and click View details... for a description of the plugin's actions and
parameters you can configure.
To assign a plugin, click Assign. The plugin will appear in the list at the top of the
window. You can assign any number of plugins to a source or target.
To remove the plugin from the list, select the plugin and click Remove. Changes will
not be applied until you have deployed the item.
Creating Plugins
Jitterbit provides an SDK to make creating plugins simple. If you are using C++ or Java,
you can take advantage of classes that reduce the amount of code you need to write. The
work to create a plugin is to act on a list of input files and data elements and provide a list
of output files and data elements. If you are using another language - and you can use any
language capable of generating executable files on the platform you are using - you can
lobby in the Jitterbit forums for helper classes to be added in that language.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
485
486
Reference
Installing a Plugin on the Server
Plugins that act on the Jitterbit transformation pipeline are kept on the server, under a
directory called Plugins/Pipeline/User.
To add a new one, you need to create a subdirectory and drop your executable there.
To let the Jitterbit Server know about your new plugin, create a file called plugin.xml and
put it in the same directory as your executable plugin. This is the plugin manifest, which
provides Jitterbit with the details about the plugin that the server needs in order to call it
(see code below).
As a last step, you must restart the Jitterbit Process Engine for the plugin to be registered.
The plugin manifest contains a unique name, a URL where the user can get documentation,
a version number, where in the pipeline it can/should/will be called, what data elements it
requires, etc.
Note: Jitterbit supports plugin manifests using wild cards for data elements. Version 5.0 of
Jitterbit Server is required to use plugins that use this feature.
Here is the manifest for Jitterbit's Compression plugin:
<?xml version="1.0" ?>
<JitterbitPlugin SpecVersion="1.0">
<PipelinePlugin SpecVersion="1.0">
<Name>http://www.jitterbit.com/plugins/filters/system/compression
</Name>
<Version>1.0.0-beta</Version>
<DisplayName>Jitterbit Compression</DisplayName>
<Author>Jitterbit, Inc.</Author>
<Description>Handles compression and decompression.</Description>
<UpdateUrl>http://www.jitterbit.com/plugins/filters/system/compre
ssion</UpdateUrl>
<DocumentationUrl>http://www.jitterbit.com/plugins/filters/system
/compression/docs</DocumentationUrl>
<Command>$(plugin.directory)compression.exe</Command>
<Arguments>-zip</Arguments>
<DataElements>
<DataElement Name="CompressionLevel" Type="int"
Required="false">
<Documentation>1-9 where 1 = lowest, 9 =
highest</Documentation>
487
<DefaultValue>9</DefaultValue>
</DataElement>
<DataElement Name="CollateFiles" Type="bool"
Required="false">
<Documentation>
Set CollateFiles to false if you prefer compressing
each target file separately.
Set CollateFiles to true to create a compressed
archive containing all target files.
</Documentation>
<DefaultValue>true</DefaultValue>
</DataElement>
</DataElements>
<!-- PipelinePosition:
Optional="True" means the user can choose if this
plug-in should be called at this position.
Optional="False" this plug-in will always be called
at this position.
ExecutionOrder="N" where N is a signed integer number
is used to determine the order of execution of plug-ins that execute at the
same pipeline position.
The plug-in with the smallest N is executed first.
Relative="Pre" means the plug-in will be called
before this pipeline position.
Relative="Post" means the plug-in will be called
after this pipeline position.
Relative="OnRequest" means the plug-in will be called
before a web service request is sent (web service calls only).
Relative="OnResponse" means the plug-in will be
called when a web service response comes back (web service calls only).
-->
<PipelinePosition Optional="True" Relative="Post"
ExecutionOrder="50">Source</PipelinePosition>
<PipelinePosition Optional="True" Relative="Pre"
ExecutionOrder="50">Target</PipelinePosition>
488
Reference
Required Plugins
This topic covers procedures to determine whether your operation requires a plugin and, if
so, whether the plugin is installed on the server.
With the operation open in your workspace, click View > Required plugins.
A new pane will appear on the right side of your workspace.
If the required plugin is not installed on the server, you will receive a message like
this:
489
This section describes how to use existing plugins in your integration project.
Plugins can be applied to the following components:
Sources
1. Targets
2. Web Service Calls
490
Reference
3. Select the plugin from the server section that you want to apply to the Source. Click
the View details... button to see detailed information about the selected plugin. (This
information is extracted from the plugin's XML manifest.) If you are satisfied that the
selected plugin is the one you need, click the Assign button. The plugin will appear in
the Currently assigned section.
4. Press Apply to apply the assignment, or OK to apply the assignment and close the
dialog.
5. Deploy the Source to the Jitterbit server.
To unassign a previously applied plugin, select the plugin in the Currently assigned section, and
press the Remove button, then Apply or OK. Redeploy the entity to the server for the change to
get in effect.
Note 1: A plugin can be defined to be Required for a certain entity type. This means that the
plugin will always be applied to every entity of that type. A required plugin cannot be removed
from the Currently assigned section.
Note 2: Multiple plugins can be applied to a single entity. In this case, the order in which the
plugins will be applied is defined by the ExecutionOrder attribute in the plugin XML. The plugins
appear in the Currently assigned section in the same order as they will be executed.
Creating Plugins
Jitterbit provides an SDK to make creating plugins simple. If you are using C++ or Java you
can take advantage of classes that reduce the amount of code you need to write. The work
to create a plugin then is to act on a list of input files and data elements and provide a list
of output files and data elements. If you are using another language -- and you can use any
language capable of generating executable files on the platform you are using -- you can
lobby in the Jitterbit forums for helper classes to be added in that language.
491
492
Reference
Select a project from the list. If you do not see the desired project, you may
navigate to it with the Browse button or search for it with the Search button.
When you have highlighted the desired project, the Open button activates. Click this
button.
The left pane populates with components of the project selected for import.
493
To search for a component of the import project, type the first few letters of its name in
the Filter window.
You can drag and drop items from the left pane to the right to copy hem into your
current project.
Or, when you have completed your selection, click Import Reference into Target
Project.
Reminder: This operation will reference the imported item rather than copy it to your
current project. You may afterwards execute the Copy Deep operation to copy all
dependencies. After executing Copy Deep, you should delete the import reference.
You may receive a confirmation prompt such as the following:
494
Reference
495
Select a server backup to restore. This activates the Download Backup button.
Click this button.
Jitterbit will identify any dependencies associated with the object you need to restore
and prompt you to include these in the restore.
Jitterbit checks whether a newer object exists in your project and asks you if you
wish to replace that object with the restored object or leave it unchanged.
When you have responded, the restore will execute.
See also:
For details on restoring a project from a local-machine backup, click here.
Download Project
Jitterbit Enterprise offers the option of downloading a server project.
Follow these steps:
In Jitterbit Enterprise, click File > Download Project.
The Administration pane opens on the left and displays a Download Project
workspace on the right.
Click Select Server to access the server from which to download.
If you are prompted for a server login, click the Login button.
The View Available Backups button on the right side of the workspace is activated.
Click this button.
A list of available server project backups displays in the workspace.
You may select or deselect the Show Operations and Show Schedules checkboxes as
desired.
To narrow the project list, you may type the first few letters of a component in the
Filter window. The server list will then display only the components whose names
match the filter.
Select a project to download.
Note: To activate the Download Selected Project button, you must select an item
whose name begins with the word "Project" and a colon, e.g., "Project: Query SFDC
Account."
Click the Download Selected Project button.
496
Reference
You will receive a progress message;then the message "Reading project" will appear
in the lower left corner of your workspace.
When the download is complete, the Select Server button disappears and the View
Available Backups button is deactivated.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com
497
"ServerURL". If you are incrementing the value of a global variable like ItemNumber,
you would use Set and Get together:
Set("ItemNumber",Get("ItemNumber") + 1))
or simply
$ItemNumber = $ItemNumber + 1
Using global data elements in definition screens
In a definition screen, e.g., for a web service call, you can use global data element
substitution using the [GlobalVariableName] syntax, e.g. [ServerURL] would use the
value of the global data element called "ServerURL" versus a hard coded value. A default
value can be specified in a definition screen using "{" and "}" to denote the default value to
use, e.g. [ServerURL{http://server/index.asp}] will expand to the value of the global
data element called "ServerURL" if it is defined, else "http://server/index.asp" is used. The
control characters "[" and "]" can be escaped using a back-slash (\) in case you don't want
it to be interpreted. If you want a single back slash in your definition before the "[" or "]"
characters then you need to escape it, e.g. \\server\share\\[directory].
Null or undefined values
A global data element that has not been defined is considered to have a null value, e.i.
IsNull(Get("GlobalVariableName")) returns true if the global variable with that name
has not yet been defined. This can be used to check if a global variable has been defined or
not.
Array Variables
It is possible to create arrays of global variables. Some formula builder methods have array
return values. DbExecute returns selected data as an array of arrays (representing the
selected rows and columns, see the documentation for DbExecute).
SelectNodesFromXMLAny returns the results of an XPath query as an array.
An array global variable is an array of other global variables that in turn can be arrays. You
access the items of an array using the Get() method. Arrays are zero-indexed so to access
the n:th element of an array called "arr" you would use Get("arr", n-1). For multidimensional arrays you need to specify all the indices. To access the n:th column of the
m:th row in a result set you would use Get("ResultSet", m-1, n-1).
You can create arrays yourself using the Set() method. If you specify an index after the
global variable it will automatically become an array. Not all the items in an array have to
be of the same type, e.g. you can create an array that holds a date, an integer and a string.
You can even create arrays inside other arrays. This example creates an array with three
elements of different types where each entry represents the current date and time:
498
Reference
$right_now = Now();
Set($now, $right_now, 0);
Set($now, Long($right_now), 1);
Set($now, String($right_now), 2);
Also see the documentation for the Get() and Set() formula builder methods.
Predefined Global Variables
The Jitterbit system defines some global data elements that are always available. These can
be used to easily fetch global information such as the name of the current source file and
other useful information. They can also be set to programmatically change the behavior of
Jitterbit. Default values for these can be set in the server configuration file in the
[PredefinedGlobalVariables] section.
The following predefined global variables are currently available.
Variable Name
Data Type
Description
jitterbit.source.filename
String
jitterbit.source.filenames
Array
jitterbit.source.locator
String
jitterbit.source.locators
Array
499
jitterbit.source.preserve_cha
r_whitespace
boolean,
default:
false
jitterbit.source.sftp.ssh_key
_id and
jitterbit.target.sftp.ssh_key_
id
string,
default:
empty
jitterbit.source.http.ssl_cert
_id
String
jitterbit.target.http.ssl_cert_
id
String
jitterbit.web_service_call.ssl
_cert_id
String
500
Reference
jitterbit.source.size
Integer
jitterbit.source.sizes
Array
jitterbit.source.file_limit
Integer
jitterbit.source.ftp.transfer_t
imeout
Integer
jitterbit.source.http.transfer
_timeout
Integer
jitterbit.source.file_share.file
_list_limit
Integer
jitterbit.source.db.character
_encoding
String
jitterbit.source.db.preserve_
char_whitespace
Boolean
501
jitterbit.source.text.csv_null
able
Boolean
jitterbit.source.text.characte
r_encoding
String
jitterbit.target.file_count
Integer
jitterbit.target.db.include_nu
ll_in_sql_statement
Boolean
jitterbit.target.db.character_
encoding
String
jitterbit.target.db.commit_ch
unks
Boolean
jitterbit.target.db.no_data_a
ction
String
jitterbit.target.file_share.cre
ate_directories
Boolean
502
Reference
jitterbit.target.ftp.transfer_ti
meout
Integer
jitterbit.target.http.transfer_
timeout
Integer
jitterbit.target.http.form_dat
a
Boolean
jitterbit.target.http.form_dat
a.name
String
jitterbit.target.http.form_dat
a.filename
String
jitterbit.target.http.form_dat
a.ContentType
String
jitterbit.target.http.remove_
trailing_linebreaks
String
jitterbit.target.text.character
_encoding
String
jitterbit.target.xml.prettify
Boolean
jitterbit.target.xml.num_for_
bool
Boolean
503
jitterbit.text.qualifier_requir
ed
Boolean
jitterbit.transformation.auto
_streaming
Boolean
jitterbit.transformation.chun
king
boolean
jitterbit.transformation.chun
k_number
Integer
jitterbit.transformation.jbxm
lparser
boolean,
default:
false
jitterbit.transformation.nam
e
String
jitterbit.transformation.threa
d_number
Integer
jitterbit.transformation.timin
g_on
boolean,
default:
false
504
Reference
jitterbit.transformation.total
_chunks
Integer
jitterbit.transformation.total
_threads
Integer
jitterbit.transformation.trim_
extra_linebreaks
Boolean
jitterbit.web_service_call.ma
x_redirs
Integer
jitterbit.web_service_call.nu
mber_of_retries
Integer
jitterbit.web_service_call.ret
ry_wait_seconds
Integer
jitterbit.web_service_call.sy
nc_response
boolean,
default:
true
jitterbit.web_service_call.tim
e_out
Integer
jitterbit.operation.error
String
505
jitterbit.operation.guid
String
jitterbit.operation.last_error
String
jitterbit.operation.log_level
Integer
jitterbit.operation.name
String
jitterbit.operation.previous.e
rror
String
jitterbit.operation.write_hist
ory
Boolean
jitterbit.scripting.while.max_
iterations
Integer
jitterbit.scripting.nesting.ma
x
Integer
jitterbit.scripting.db.auto_co
mmit
Boolean
jitterbit.scripting.db.rows_aff
ected
Integer
jitterbit.scripting.db.max_ro
ws
Integer
506
Reference
jitterbit.scripting.db.transact
ion
Boolean
jitterbit.scripting.ldap.includ
e_dn_in_results
Boolean
jitterbit.scripting.ldap.max_s
earch_results
Integer
jitterbit.scripting.ldap.return
_null_if_no_results
Boolean,
default:
false
jitterbit.scripting.ldap.use_p
aged_search
Integer
jitterbit.scripting.ldap.scope
Integer
$jitterbit.sfdc.auto_fieldsToN
ull
Boolean
507
jitterbit.networking.http.req
uest.header.HeaderName
String
itterbit.networking.http.requ
est.method
String
jitterbit.networking.http.resp
onse.header.HeaderName
String
jitterbit.networking.http.resp
onse.content_type
String
jitterbit.networking.http.resp
onse.status_code
Integer
jitterbit.networking.peer.ip
String
jitterbit.networking.http.que
ry.ParameterName
String
508
Reference
Local Variables
You can create local variables (as opposed to global variables) that run only in real-time
operation of a specific process and are not visible to other operations.
To do this, check the Construct connection string manually checkbox, which will disable
most of the fields on the tab. The fields that are enabled are:
The Connection String text field: enter the connection string in the field.
Driver : Specify what database driver to use when connecting.
Timeout: You must still enter a connection timeout value, because it is handled
separately from the connection string.
Password: Since the manual connection string will be visible in clear text in the
source/target page, you may not want to include the password there. In that case,
leave the password parameter and value out of the connection string, and instead
define the password as you would when creating database sources and targets using
the automatically created string, by clicking the Password button and entering the
password. The password will be appended to the connection string when needed, and
it will never be visible on screen.
If you are using a JDBC driver you can also leave out the user name from the
connection string, and use the dedicated Login field instead.
Alias
UTF-8
UTF-8
ibm-1208
ibm-1209
ibm-5304
ibm-5305
509
ibm-13496
ibm-13497
ibm-17592
ibm-17593
windows-65001
cp1208
UTF-16
UTF-16
ISO-10646-UCS-2
ibm-1204
ibm-1205
unicode
csUnicode
ucs-2
UTF-16BE
UTF-16BE
x-utf-16be
UnicodeBigUnmarked
ibm-1200
ibm-1201
ibm-13488
ibm-13489
ibm-17584
ibm-17585
510
Reference
ibm-21680
ibm-21681
ibm-25776
ibm-25777
ibm-29872
ibm-29873
ibm-61955
ibm-61956
windows-1201
cp1200
cp1201
UTF16_BigEndian
UTF-16LE
UTF-16LE
x-utf-16le
UnicodeLittleUnmarked
ibm-1202
ibm-1203
ibm-13490
ibm-13491
ibm-17586
ibm-17587
ibm-21682
511
ibm-21683
ibm-25778
ibm-25779
ibm-29874
ibm-29875
UTF16_LittleEndian
windows-1200
UTF-32
UTF-32
ISO-10646-UCS-4
ibm-1236
ibm-1237
csUCS4
ucs-4
UTF-32BE
UTF-32BE
UTF32_BigEndian
ibm-1232
ibm-1233
ibm-9424
UTF-32LE
UTF-32LE
UTF32_LittleEndian
ibm-1234
ibm-1235
512
Reference
UTF16_PlatformEndian
UTF16_PlatformEndian
UTF16_OppositeEndian
UTF16_OppositeEndian
UTF32_PlatformEndian
UTF32_PlatformEndian
UTF32_OppositeEndian
UTF32_OppositeEndian
UTF-16BE,version=1
UTF-16BE,version=1
UnicodeBig
UTF-16LE,version=1
UTF-16LE,version=1
UnicodeLittle
x-UTF-16LE-BOM
UTF-16,version=1
UTF-16,version=1
UTF-7
UTF-7
windows-65000
IMAP-mailbox-name
IMAP-mailbox-name
SCSU
SCSU
ibm-1212
ibm-1213
BOCU-1
BOCU-1
csBOCU-1
ibm-1214
ibm-1215
CESU-8
CESU-8
ibm-9400
513
ISO-8859-1
ISO-8859-1
ibm-819
IBM819
cp819
latin1
8859_1
csISOLatin1
iso-ir-100
ISO_8859-1:1987
l1
819
US-ASCII
US-ASCII
ASCII
ANSI_X3.4-1968
ANSI_X3.4-1986
ISO_646.irv:1991
iso_646.irv:1983
ISO646-US
us
csASCII
iso-ir-6
cp367
514
Reference
ascii7
646
windows-20127
ibm-367
IBM367
gb18030
gb18030
ibm-1392
windows-54936
GB18030
ibm-912_P100-1995
ibm-912_P100-1995
ibm-912
ISO-8859-2
ISO_8859-2:1987
latin2
csISOLatin2
iso-ir-101
l2
8859_2
cp912
912
windows-28592
ibm-913_P100-2000
ibm-913_P100-2000
515
ibm-913
ISO-8859-3
ISO_8859-3:1988
latin3
csISOLatin3
iso-ir-109
l3
8859_3
cp913
913
windows-28593
ibm-914_P100-1995
ibm-914_P100-1995
ibm-914
ISO-8859-4
latin4
csISOLatin4
iso-ir-110
ISO_8859-4:1988
l4
8859_4
cp914
914
516
Reference
windows-28594
ibm-915_P100-1995
ibm-915_P100-1995
ibm-915
ISO-8859-5
cyrillic
csISOLatinCyrillic
iso-ir-144
ISO_8859-5:1988
8859_5
cp915
915
windows-28595
ibm-1089_P100-1995
ibm-1089_P100-1995
ibm-1089
ISO-8859-6
arabic
csISOLatinArabic
iso-ir-127
ISO_8859-6:1987
ECMA-114
ASMO-708
8859_6
517
cp1089
1089
windows-28596
ISO-8859-6-I
ISO-8859-6-E
ibm-9005_X110-2007
ibm-9005_X110-2007
ibm-9005
ISO-8859-7
greek
greek8
ELOT_928
ECMA-118
csISOLatinGreek
iso-ir-126
ISO_8859-7:1987
windows-28597
sun_eu_greek
ibm-813_P100-1995
ibm-813_P100-1995
ibm-813
ISO-8859-7
greek
greek8
518
Reference
ELOT_928
ECMA-118
csISOLatinGreek
iso-ir-126
ISO_8859-7:1987
8859_7
cp813
813
ibm-5012_P100-1999
ibm-5012_P100-1999
ibm-5012
ISO-8859-8
hebrew
csISOLatinHebrew
iso-ir-138
ISO_8859-8:1988
ISO-8859-8-I
ISO-8859-8-E
8859_8
windows-28598
hebrew8
ibm-916_P100-1995
ibm-916_P100-1995
ibm-916
519
cp916
916
ibm-920_P100-1995
ibm-920_P100-1995
ibm-920
ISO-8859-9
latin5
csISOLatin5
iso-ir-148
ISO_8859-9:1989
l5
8859_9
cp920
920
windows-28599
ECMA-128
turkish8
turkish
iso-8859_10-1998
iso-8859_10-1998
ISO-8859-10
iso-ir-157
l6
ISO_8859-10:1992
520
Reference
csISOLatin6
latin6
iso-8859_11-2001
iso-8859_11-2001
ISO-8859-11
thai8
ibm-921_P100-1995
ibm-921_P100-1995
ibm-921
ISO-8859-13
8859_13
windows-28603
cp921
921
iso-8859_14-1998
iso-8859_14-1998
ISO-8859-14
iso-ir-199
ISO_8859-14:1998
latin8
iso-celtic
l8
ibm-923_P100-1998
ibm-923_P100-1998
ibm-923
ISO-8859-15
521
Latin-9
l9
8859_15
latin0
csisolatin0
csisolatin9
iso8859_15_fdis
cp923
923
windows-28605
ibm-942_P12A-1999
ibm-942_P12A-1999
ibm-942
ibm-932
cp932
shift_jis78
sjis78
ibm-942_VSUB_VPUA
ibm-932_VSUB_VPUA
ibm-943_P15A-2003
ibm-943_P15A-2003
ibm-943
Shift_JIS
MS_Kanji
522
Reference
csShiftJIS
windows-31j
csWindows31J
x-sjis
x-ms-cp932
cp932
windows-932
cp943c
IBM-943C
ms932
pck
sjis
ibm-943_VSUB_VPUA
ibm-943_P130-1999
ibm-943_P130-1999
ibm-943
Shift_JIS
cp943
943
ibm-943_VASCII_VSUB_VPUA
ibm-33722_P12A_P12A-2004_U2
ibm-33722_P12A_P12A-2004_U2
ibm-33722
ibm-5050
523
EUC-JP
Extended_UNIX_Code_Packed_Format_for_Japanese
csEUCPkdFmtJapanese
X-EUC-JP
windows-51932
ibm-33722_VPUA
IBM-eucJP
ibm-33722_P120-1999
ibm-33722_P120-1999
ibm-33722
ibm-5050
cp33722
33722
ibm-33722_VASCII_VPUA
ibm-954_P101-2007
ibm-954_P101-2007
ibm-954
EUC-JP
Extended_UNIX_Code_Packed_Format_for_Japanese
csEUCPkdFmtJapanese
X-EUC-JP
eucjis
ujis
ibm-1373_P100-2002
524
ibm-1373_P100-2002
Reference
ibm-1373
windows-950
windows-950-2000
windows-950-2000
Big5
csBig5
windows-950
x-big5
ibm-950_P110-1999
ibm-950_P110-1999
ibm-950
cp950
950
ibm-1375_P100-2007
ibm-1375_P100-2007
ibm-1375
Big5-HKSCS
big5hk
HKSCS-BIG5
ibm-5471_P100-2006
ibm-5471_P100-2006
ibm-5471
Big5-HKSCS
MS950_HKSCS
hkbig5
big5-hkscs:unicode3.0
525
ibm-1386_P100-2001
ibm-1386_P100-2001
ibm-1386
cp1386
windows-936
ibm-1386_VSUB_VPUA
windows-936-2000
windows-936-2000
GBK
CP936
MS936
windows-936
ibm-1383_P110-1999
ibm-1383_P110-1999
ibm-1383
GB2312
csGB2312
cp1383
1383
EUC-CN
ibm-eucCN
hp15CN
ibm-1383_VPUA
ibm-5478_P100-1995
ibm-5478_P100-1995
ibm-5478
526
Reference
GB_2312-80
chinese
iso-ir-58
csISO58GB231280
gb2312-1980
GB2312.1980-0
ibm-964_P110-1999
ibm-964_P110-1999
ibm-964
EUC-TW
ibm-eucTW
cns11643
cp964
964
ibm-964_VPUA
ibm-949_P110-1999
ibm-949_P110-1999
ibm-949
cp949
949
ibm-949_VASCII_VSUB_VPUA
ibm-949_P11A-1999
ibm-949_P11A-1999
ibm-949
cp949c
527
ibm-949_VSUB_VPUA
ibm-970_P110_P110-2006_U2
ibm-970_P110_P110-2006_U2
ibm-970
EUC-KR
KS_C_5601-1987
windows-51949
csEUCKR
ibm-eucKR
KSC_5601
5601
cp970
970
ibm-970_VPUA
ibm-971_P100-1995
ibm-971_P100-1995
ibm-971
ibm-971_VPUA
ibm-1363_P11B-1998
ibm-1363_P11B-1998
ibm-1363
KS_C_5601-1987
KS_C_5601-1989
KSC_5601
csKSC56011987
528
Reference
korean
iso-ir-149
cp1363
5601
ksc
windows-949
ibm-1363_VSUB_VPUA
ibm-1363_P110-1997
ibm-1363_P110-1997
ibm-1363
ibm-1363_VASCII_VSUB_VPUA
windows-949-2000
windows-949-2000
windows-949
KS_C_5601-1987
KS_C_5601-1989
KSC_5601
csKSC56011987
korean
iso-ir-149
ms949
windows-874-2000
windows-874-2000
TIS-620
windows-874
529
MS874
ibm-874_P100-1995
ibm-874_P100-1995
ibm-874
ibm-9066
cp874
TIS-620
tis620.2533
eucTH
ibm-1162_P100-1999
ibm-1162_P100-1999
ibm-1162
ibm-437_P100-1995
ibm-437_P100-1995
ibm-437
IBM437
cp437
437
csPC8CodePage437
windows-437
ibm-720_P100-1997
ibm-720_P100-1997
ibm-720
windows-720
DOS-720
ibm-737_P100-1997
530
ibm-737_P100-1997
Reference
ibm-737
IBM737
cp737
windows-737
737
ibm-775_P100-1996
ibm-775_P100-1996
ibm-775
IBM775
cp775
csPC775Baltic
windows-775
775
ibm-850_P100-1995
ibm-850_P100-1995
ibm-850
IBM850
cp850
850
csPC850Multilingual
windows-850
ibm-851_P100-1995
ibm-851_P100-1995
ibm-851
IBM851
531
cp851
851
csPC851
ibm-852_P100-1995
ibm-852_P100-1995
ibm-852
IBM852
cp852
852
csPCp852
windows-852
ibm-855_P100-1995
ibm-855_P100-1995
ibm-855
IBM855
cp855
855
csIBM855
csPCp855
windows-855
ibm-856_P100-1995
ibm-856_P100-1995
ibm-856
IBM856
cp856
532
Reference
856
ibm-857_P100-1995
ibm-857_P100-1995
ibm-857
IBM857
cp857
857
csIBM857
windows-857
ibm-858_P100-1997
ibm-858_P100-1997
ibm-858
IBM00858
CCSID00858
CP00858
PC-Multilingual-850+euro
cp858
windows-858
ibm-860_P100-1995
ibm-860_P100-1995
ibm-860
IBM860
cp860
860
csIBM860
533
ibm-861_P100-1995
ibm-861_P100-1995
ibm-861
IBM861
cp861
861
cp-is
csIBM861
windows-861
ibm-862_P100-1995
ibm-862_P100-1995
ibm-862
IBM862
cp862
862
csPC862LatinHebrew
DOS-862
windows-862
ibm-863_P100-1995
ibm-863_P100-1995
ibm-863
IBM863
cp863
863
csIBM863
534
Reference
ibm-864_X110-1999
ibm-864_X110-1999
ibm-864
IBM864
cp864
csIBM864
ibm-865_P100-1995
ibm-865_P100-1995
ibm-865
IBM865
cp865
865
csIBM865
ibm-866_P100-1995
ibm-866_P100-1995
ibm-866
IBM866
cp866
866
csIBM866
windows-866
ibm-867_P100-1998
ibm-867_P100-1998
ibm-867
ibm-868_P100-1995
ibm-868_P100-1995
ibm-868
535
IBM868
CP868
868
csIBM868
cp-ar
ibm-869_P100-1995
ibm-869_P100-1995
ibm-869
IBM869
cp869
869
cp-gr
csIBM869
windows-869
ibm-878_P100-1996
ibm-878_P100-1996
ibm-878
KOI8-R
koi8
csKOI8R
windows-20866
cp878
ibm-901_P100-1999
ibm-901_P100-1999
ibm-901
536
Reference
ibm-902_P100-1999
ibm-902_P100-1999
ibm-902
ibm-922_P100-1999
ibm-922_P100-1999
ibm-922
IBM922
cp922
922
ibm-1168_P100-2002
ibm-1168_P100-2002
ibm-1168
KOI8-U
windows-21866
ibm-4909_P100-1999
ibm-4909_P100-1999
ibm-4909
ibm-5346_P100-1998
ibm-5346_P100-1998
ibm-5346
windows-1250
cp1250
ibm-5347_P100-1998
ibm-5347_P100-1998
ibm-5347
windows-1251
cp1251
ANSI1251
537
ibm-5348_P100-1997
ibm-5348_P100-1997
ibm-5348
windows-1252
cp1252
ibm-5349_P100-1998
ibm-5349_P100-1998
ibm-5349
windows-1253
cp1253
ibm-5350_P100-1998
ibm-5350_P100-1998
ibm-5350
windows-1254
cp1254
ibm-9447_P100-2002
ibm-9447_P100-2002
ibm-9447
windows-1255
cp1255
ibm-9448_X100-2005
ibm-9448_X100-2005
ibm-9448
windows-1256
cp1256
ibm-9449_P100-2002
ibm-9449_P100-2002
ibm-9449
538
Reference
windows-1257
cp1257
ibm-5354_P100-1998
ibm-5354_P100-1998
ibm-5354
windows-1258
cp1258
ibm-1250_P100-1995
ibm-1250_P100-1995
ibm-1250
windows-1250
ibm-1251_P100-1995
ibm-1251_P100-1995
ibm-1251
windows-1251
ibm-1252_P100-2000
ibm-1252_P100-2000
ibm-1252
windows-1252
ibm-1253_P100-1995
ibm-1253_P100-1995
ibm-1253
windows-1253
ibm-1254_P100-1995
ibm-1254_P100-1995
ibm-1254
windows-1254
ibm-1255_P100-1995
ibm-1255_P100-1995
539
ibm-1255
ibm-5351_P100-1998
ibm-5351_P100-1998
ibm-5351
windows-1255
ibm-1256_P110-1997
ibm-1256_P110-1997
ibm-1256
ibm-5352_P100-1998
ibm-5352_P100-1998
ibm-5352
windows-1256
ibm-1257_P100-1995
ibm-1257_P100-1995
ibm-1257
ibm-5353_P100-1998
ibm-5353_P100-1998
ibm-5353
windows-1257
ibm-1258_P100-1997
ibm-1258_P100-1997
ibm-1258
windows-1258
macos-0_2-10.2
macos-0_2-10.2
macintosh
mac
csMacintosh
windows-10000
540
Reference
macroman
x-macroman
macos-6_2-10.4
macos-6_2-10.4
x-mac-greek
windows-10006
macgr
macos-7_3-10.2
macos-7_3-10.2
x-mac-cyrillic
windows-10007
mac-cyrillic
maccy
macos-29-10.2
macos-29-10.2
x-mac-centraleurroman
windows-10029
x-mac-ce
macce
maccentraleurope
macos-35-10.2
macos-35-10.2
x-mac-turkish
windows-10081
mactr
ibm-1051_P100-1995
ibm-1051_P100-1995
541
ibm-1051
hp-roman8
roman8
r8
csHPRoman8
ibm-1276_P100-1995
ibm-1276_P100-1995
ibm-1276
Adobe-Standard-Encoding
csAdobeStandardEncoding
ibm-1006_P100-1995
ibm-1006_P100-1995
ibm-1006
IBM1006
cp1006
1006
ibm-1098_P100-1995
ibm-1098_P100-1995
ibm-1098
IBM1098
cp1098
1098
ibm-1124_P100-1996
ibm-1124_P100-1996
ibm-1124
cp1124
542
Reference
1124
ibm-1125_P100-1997
ibm-1125_P100-1997
ibm-1125
cp1125
ibm-1129_P100-1997
ibm-1129_P100-1997
ibm-1129
ibm-1131_P100-1997
ibm-1131_P100-1997
ibm-1131
cp1131
ibm-1133_P100-1997
ibm-1133_P100-1997
ibm-1133
ISO_2022,locale=ja,version=0
ISO_2022,locale=ja,version=0
ISO-2022-JP
csISO2022JP
ISO_2022,locale=ja,version=1
ISO_2022,locale=ja,version=1
ISO-2022-JP-1
JIS_Encoding
csJISEncoding
ibm-5054
JIS
ISO_2022,locale=ja,version=2
ISO_2022,locale=ja,version=2
ISO-2022-JP-2
543
csISO2022JP2
ISO_2022,locale=ja,version=3
ISO_2022,locale=ja,version=3
JIS7
ISO_2022,locale=ja,version=4
ISO_2022,locale=ja,version=4
JIS8
ISO_2022,locale=ko,version=0
ISO_2022,locale=ko,version=0
ISO-2022-KR
csISO2022KR
ISO_2022,locale=ko,version=1
ISO_2022,locale=ko,version=1
ibm-25546
ISO_2022,locale=zh,version=0
ISO_2022,locale=zh,version=0
ISO-2022-CN
csISO2022CN
ISO_2022,locale=zh,version=1
ISO_2022,locale=zh,version=1
ISO-2022-CN-EXT
HZ
HZ
HZ-GB-2312
ISCII,version=0
ISCII,version=0
x-iscii-de
windows-57002
iscii-dev
ibm-4902
544
Reference
ISCII,version=1
ISCII,version=1
x-iscii-be
windows-57003
iscii-bng
windows-57006
x-iscii-as
ISCII,version=2
ISCII,version=2
x-iscii-pa
windows-57011
iscii-gur
ISCII,version=3
ISCII,version=3
x-iscii-gu
windows-57010
iscii-guj
ISCII,version=4
ISCII,version=4
x-iscii-or
windows-57007
iscii-ori
ISCII,version=5
ISCII,version=5
x-iscii-ta
windows-57004
iscii-tml
545
ISCII,version=6
ISCII,version=6
x-iscii-te
windows-57005
iscii-tlg
ISCII,version=7
ISCII,version=7
x-iscii-ka
windows-57008
iscii-knd
ISCII,version=8
ISCII,version=8
x-iscii-ma
windows-57009
iscii-mlm
LMBCS-1
LMBCS-1
lmbcs
ibm-65025
ibm-37_P100-1995
ibm-37_P100-1995
ibm-37
IBM037
ibm-037
ebcdic-cp-us
ebcdic-cp-ca
ebcdic-cp-wt
546
Reference
ebcdic-cp-nl
csIBM037
cp037
037
cpibm37
cp37
ibm-273_P100-1995
ibm-273_P100-1995
ibm-273
IBM273
CP273
csIBM273
ebcdic-de
273
ibm-277_P100-1995
ibm-277_P100-1995
ibm-277
IBM277
cp277
EBCDIC-CP-DK
EBCDIC-CP-NO
csIBM277
ebcdic-dk
277
547
ibm-278_P100-1995
ibm-278_P100-1995
ibm-278
IBM278
cp278
ebcdic-cp-fi
ebcdic-cp-se
csIBM278
ebcdic-sv
278
ibm-280_P100-1995
ibm-280_P100-1995
ibm-280
IBM280
CP280
ebcdic-cp-it
csIBM280
280
ibm-284_P100-1995
ibm-284_P100-1995
ibm-284
IBM284
CP284
ebcdic-cp-es
csIBM284
548
Reference
cpibm284
284
ibm-285_P100-1995
ibm-285_P100-1995
ibm-285
IBM285
CP285
ebcdic-cp-gb
csIBM285
cpibm285
ebcdic-gb
285
ibm-290_P100-1995
ibm-290_P100-1995
ibm-290
IBM290
cp290
EBCDIC-JP-kana
csIBM290
ibm-297_P100-1995
ibm-297_P100-1995
ibm-297
IBM297
cp297
ebcdic-cp-fr
549
csIBM297
cpibm297
297
ibm-420_X120-1999
ibm-420_X120-1999
ibm-420
IBM420
cp420
ebcdic-cp-ar1
csIBM420
420
ibm-424_P100-1995
ibm-424_P100-1995
ibm-424
IBM424
cp424
ebcdic-cp-he
csIBM424
424
ibm-500_P100-1995
ibm-500_P100-1995
ibm-500
IBM500
CP500
ebcdic-cp-be
550
Reference
csIBM500
ebcdic-cp-ch
500
ibm-803_P100-1999
ibm-803_P100-1999
ibm-803
cp803
ibm-838_P100-1995
ibm-838_P100-1995
ibm-838
IBM838
IBM-Thai
csIBMThai
cp838
838
ibm-9030
ibm-870_P100-1995
ibm-870_P100-1995
ibm-870
IBM870
CP870
ebcdic-cp-roece
ebcdic-cp-yu
csIBM870
ibm-871_P100-1995
ibm-871_P100-1995
551
ibm-871
IBM871
ebcdic-cp-is
csIBM871
CP871
ebcdic-is
871
ibm-875_P100-1995
ibm-875_P100-1995
ibm-875
IBM875
cp875
875
ibm-918_P100-1995
ibm-918_P100-1995
ibm-918
IBM918
CP918
ebcdic-cp-ar2
csIBM918
ibm-930_P120-1999
ibm-930_P120-1999
ibm-930
ibm-5026
IBM930
552
Reference
cp930
930
ibm-933_P110-1995
ibm-933_P110-1995
ibm-933
cp933
933
ibm-935_P110-1999
ibm-935_P110-1999
ibm-935
cp935
935
ibm-937_P110-1999
ibm-937_P110-1999
ibm-937
cp937
937
ibm-939_P120-1999
ibm-939_P120-1999
ibm-939
ibm-931
ibm-5035
IBM939
cp939
939
ibm-1025_P100-1995
ibm-1025_P100-1995
553
ibm-1025
cp1025
1025
ibm-1026_P100-1995
ibm-1026_P100-1995
ibm-1026
IBM1026
CP1026
csIBM1026
1026
ibm-1047_P100-1995
ibm-1047_P100-1995
ibm-1047
IBM1047
cp1047
1047
ibm-1097_P100-1995
ibm-1097_P100-1995
ibm-1097
cp1097
1097
ibm-1112_P100-1995
ibm-1112_P100-1995
ibm-1112
cp1112
1112
554
Reference
ibm-1122_P100-1999
ibm-1122_P100-1999
ibm-1122
cp1122
1122
ibm-1123_P100-1995
ibm-1123_P100-1995
ibm-1123
cp1123
1123
ibm-1130_P100-1997
ibm-1130_P100-1997
ibm-1130
ibm-1132_P100-1998
ibm-1132_P100-1998
ibm-1132
ibm-1137_P100-1999
ibm-1137_P100-1999
ibm-1137
ibm-4517_P100-2005
ibm-4517_P100-2005
ibm-4517
ibm-1140_P100-1997
ibm-1140_P100-1997
ibm-1140
IBM01140
CCSID01140
CP01140
cp1140
555
ebcdic-us-37+euro
ibm-1141_P100-1997
ibm-1141_P100-1997
ibm-1141
IBM01141
CCSID01141
CP01141
cp1141
ebcdic-de-273+euro
ibm-1142_P100-1997
ibm-1142_P100-1997
ibm-1142
IBM01142
CCSID01142
CP01142
cp1142
ebcdic-dk-277+euro
ebcdic-no-277+euro
ibm-1143_P100-1997
ibm-1143_P100-1997
ibm-1143
IBM01143
CCSID01143
CP01143
cp1143
556
Reference
ebcdic-fi-278+euro
ebcdic-se-278+euro
ibm-1144_P100-1997
ibm-1144_P100-1997
ibm-1144
IBM01144
CCSID01144
CP01144
cp1144
ebcdic-it-280+euro
ibm-1145_P100-1997
ibm-1145_P100-1997
ibm-1145
IBM01145
CCSID01145
CP01145
cp1145
ebcdic-es-284+euro
ibm-1146_P100-1997
ibm-1146_P100-1997
ibm-1146
IBM01146
CCSID01146
CP01146
cp1146
557
ebcdic-gb-285+euro
ibm-1147_P100-1997
ibm-1147_P100-1997
ibm-1147
IBM01147
CCSID01147
CP01147
cp1147
ebcdic-fr-297+euro
ibm-1148_P100-1997
ibm-1148_P100-1997
ibm-1148
IBM01148
CCSID01148
CP01148
cp1148
ebcdic-international-500+euro
ibm-1149_P100-1997
ibm-1149_P100-1997
ibm-1149
IBM01149
CCSID01149
CP01149
cp1149
ebcdic-is-871+euro
558
Reference
ibm-1153_P100-1999
ibm-1153_P100-1999
ibm-1153
ibm-1154_P100-1999
ibm-1154_P100-1999
ibm-1154
ibm-1155_P100-1999
ibm-1155_P100-1999
ibm-1155
ibm-1156_P100-1999
ibm-1156_P100-1999
ibm-1156
ibm-1157_P100-1999
ibm-1157_P100-1999
ibm-1157
ibm-1158_P100-1999
ibm-1158_P100-1999
ibm-1158
ibm-1160_P100-1999
ibm-1160_P100-1999
ibm-1160
ibm-1164_P100-1999
ibm-1164_P100-1999
ibm-1164
ibm-1364_P110-2007
ibm-1364_P110-2007
ibm-1364
ibm-1371_P100-1999
ibm-1371_P100-1999
ibm-1371
ibm-1388_P103-2001
ibm-1388_P103-2001
ibm-1388
559
ibm-9580
ibm-1390_P110-2003
ibm-1390_P110-2003
ibm-1390
ibm-1399_P110-2003
ibm-1399_P110-2003
ibm-1399
ibm-5123_P100-1999
ibm-5123_P100-1999
ibm-5123
ibm-8482_P100-1999
ibm-8482_P100-1999
ibm-8482
ibm-16684_P110-2003
ibm-16684_P110-2003
ibm-16684
ibm-20780
ibm-4899_P100-1998
ibm-4899_P100-1998
ibm-4899
ibm-4971_P100-1999
ibm-4971_P100-1999
ibm-4971
ibm-9067_X100-2005
ibm-9067_X100-2005
ibm-9067
ibm-12712_P100-1998
ibm-12712_P100-1998
ibm-12712
ebcdic-he
ibm-16804_X110-1999
560
ibm-16804_X110-1999
Reference
ibm-16804
ebcdic-ar
ibm-37_P100-1995,swaplfnl
ibm-37_P100-1995,swaplfnl
ibm-37-s390
ibm-1047_P100-1995,swaplfnl
ibm-1047_P100-1995,swaplfnl
ibm-1047-s390
ibm-1140_P100-1997,swaplfnl
ibm-1140_P100-1997,swaplfnl
ibm-1140-s390
ibm-1142_P100-1997,swaplfnl
ibm-1142_P100-1997,swaplfnl
ibm-1142-s390
ibm-1143_P100-1997,swaplfnl
ibm-1143_P100-1997,swaplfnl
ibm-1143-s390
ibm-1144_P100-1997,swaplfnl
ibm-1144_P100-1997,swaplfnl
ibm-1144-s390
ibm-1145_P100-1997,swaplfnl
ibm-1145_P100-1997,swaplfnl
ibm-1145-s390
ibm-1146_P100-1997,swaplfnl
ibm-1146_P100-1997,swaplfnl
ibm-1146-s390
ibm-1147_P100-1997,swaplfnl
ibm-1147_P100-1997,swaplfnl
ibm-1147-s390
ibm-1148_P100-1997,swaplfnl
ibm-1148_P100-1997,swaplfnl
ibm-1148-s390
561
ibm-1149_P100-1997,swaplfnl
ibm-1149_P100-1997,swaplfnl
ibm-1149-s390
ibm-1153_P100-1999,swaplfnl
ibm-1153_P100-1999,swaplfnl
ibm-1153-s390
ibm-12712_P100-1998,swaplfnl
ibm-12712_P100-1998,swaplfnl
ibm-12712-s390
ibm-16804_X110-1999,swaplfnl
ibm-16804_X110-1999,swaplfnl
ibm-16804-s390
ebcdic-xml-us
562
ebcdic-xml-us
Index
A
Archiving......................................... 251
Storing/Redirecting........................ 310
DbInfo .............................................. 44
Deploy ............................................ 254
Diff ................................................. 485
E
Email Message ................................. 427
L
LDAP .............................................. 507
F
File Shares ........................................ 36
File Transfers ................................... 256
Repeating ..................................... 256
563
Stopping ........................................ 45
M
Manual connection............................ 568
Monitoring ......................................... 49
Server .............................................. 32
Login ............................................. 32
SQL .................................................. 44
Permissions ....................................... 44
PostgreSQL ....................................... 44
Test................................................ 254
Project Tree....................................... 26
Threading........................................ 264
Scheduler.......................................... 45
bypass ........................................... 45
Controlling...................................... 45
564
Index
Xml .................................................. 37
XSD.................................................. 83
generate ........................................ 83
565