You are on page 1of 581

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Restore from Local-Machine Backup ......................................................................... 50


Jitterbit Connect Wizards........................................................................................... 53
Wizard Overview ................................................................................................... 53
Creating a Salesforce.Org ....................................................................................... 53
Creating a Salesforce Query Operation with Jitterbit Connect Wizard.......................... 146
Building a Salesforce Update with Jitterbit Connect Wizard ....................................... 156
Schedule & Options ............................................................................................. 161
Review Mapping .................................................................................................. 163
Deploy the Operation ........................................................................................... 164
Building a Salesforce Upsert with Jitterbit Connect Wizard ........................................ 164
Salesforce Insert Wizard....................................................................................... 178
Enter Your Salesforce Login Information .............................................................. 178
Select the Salesforce Object............................................................................... 178
Schedule & Options ........................................................................................... 181
Review Mapping ............................................................................................... 183
Deploy the Operation ........................................................................................ 184
Salesforce Delete Wizard ...................................................................................... 184
Enter Your Salesforce Login Information .............................................................. 184
Create the Source ............................................................................................. 185
Schedule & Options ........................................................................................... 187
Review the summary; then click Map & Finish. A Transformation mapping screen
appears.Review the Delete Summary .................................................................. 189
Review Mapping ............................................................................................... 189
Deploy the Operation ........................................................................................ 189
Creating a Bulk Process for Salesforce.................................................................... 190
Create the Bulk Process Action ........................................................................... 192
Create a Salesforce Connection .......................................................................... 192
Select a Source ................................................................................................ 194
v

Jitterbit Help Manual

Mappings ......................................................................................................... 199


Jitterpaks .............................................................................................................. 205
Jitterpaks ........................................................................................................... 205
Export as Jitterpak .............................................................................................. 205
Import Jitterpak .................................................................................................. 206
Operations ............................................................................................................ 209
Operations.......................................................................................................... 209
Creating an Operation .......................................................................................... 209
Configure the Operation .................................................................................... 210
Validate and Save Your Operation ....................................................................... 211
Deploying and Activating Operations ...................................................................... 211
Deploying and Activating Operations ...................................................................... 212
Testing an Operation ........................................................................................... 212
How to Review an Operation Log ........................................................................... 213
Related Topics: ................................................................................................ 214
How to Check File Transfer History ........................................................................ 214
Repeating File Transfers ....................................................................................... 214
Reviewing the Operations Queue ........................................................................... 215
Related topics: ................................................................................................. 216
How to Check Pending Operations ......................................................................... 216
Reviewing the Operations Queue ........................................................................... 216
Related topics: ................................................................................................. 217
Chained Operations ............................................................................................. 217
Starting a Jitterbit Operation From Other Applications .............................................. 220
Chunking............................................................................................................ 221
API Limitations ................................................................................................. 221
Parallel Processing ............................................................................................ 221

vi

Table of Contents

Limiting Memory Use......................................................................................... 221


To Enable Chunking: ......................................................................................... 221
Advanced Options ............................................................................................. 222
Exporting Source and Target Settings .................................................................... 222
Jitterbit Tips and Tricks ........................................................................................ 223
Sources ................................................................................................................ 227
Working with Sources .......................................................................................... 227
Choosing a Source Type ....................................................................................... 227
Enabling Local File Sources ................................................................................... 228
Using File Type Sources and Targets ...................................................................... 228
Sources ........................................................................................................... 228
Targets............................................................................................................ 230
Other Transfer Protocols .................................................................................... 231
Creating an FTP Source ........................................................................................ 231
Creating a FileShare Source .................................................................................. 233
Related topics: ................................................................................................. 234
Creating a Database Source .................................................................................. 235
Related topics: ................................................................................................. 236
Creating an HTTP Source ...................................................................................... 236
Related topics: .................................................................................................... 238
LDAP (Lightweight Directory Access Protocol).......................................................... 238
Using LDAP with Jitterbit.................................................................................... 238
To Search a Directory........................................................................................ 239
To Modify a Directory ........................................................................................ 240
Using Data From Source Tree in Calls .................................................................. 240
Creating an LDAP Source ...................................................................................... 240
Procedures....................................................................................................... 240

vii

Jitterbit Help Manual

Related topics: ................................................................................................. 241


Creating a Temporary Storage Source .................................................................... 241
Related Topics: ................................................................................................ 243
Using a Database as a Source of Data .................................................................... 243
Search and Select Database Objects ................................................................... 243
Specify the number of times each object will be used in a SQL statement ................ 243
Define the type of relationship between these objects. .......................................... 244
Inserting Additional Where Clause and Order By ................................................... 244
XML as Source and Target .................................................................................... 244
Testing Source Data ............................................................................................ 246
File-Based Sources............................................................................................ 247
Database Sources ............................................................................................. 247
Reviewing Data ................................................................................................ 247
Targets ................................................................................................................. 249
Defining Targets .................................................................................................. 249
Defining Targets .................................................................................................. 249
Enabling Local File Targets.................................................................................... 250
How to Create an FTP Target ................................................................................ 250
Related topics: ................................................................................................. 252
How to Create a FileShare Target .......................................................................... 252
Related topics: ................................................................................................. 253
How to Create a FileShare Target .......................................................................... 253
Related topics: ................................................................................................. 254
Creating a Database Target .................................................................................. 254
Related topics: .................................................................................................... 255
Using a Database as a Target................................................................................ 256
Database Target Connections ................................................................................ 258

viii

Table of Contents

Database Target Connections ............................................................................. 258


Connecting to Oracle via ODBC........................................................................... 258
Connecting to MSSQL ........................................................................................ 260
Connecting to MySQL ........................................................................................ 261
Connecting to Microsoft Access ........................................................................... 262
Connecting to Microsoft FoxPro........................................................................... 263
Connecting to postgreSQL.................................................................................. 263
Storing/Redirecting an HTTP Response ................................................................... 264
LDAP (Lightweight Directory Access Protocol).......................................................... 264
Using LDAP with Jitterbit.................................................................................... 265
To Search a Directory........................................................................................ 266
To Modify a Directory ........................................................................................ 266
Using Data From Source Tree in Calls .................................................................. 267
LDAP Target Definition ......................................................................................... 267
Related topics: ................................................................................................. 268
HTTP Target Definition ......................................................................................... 268
Global data elements that affect the way http posts are performed ......................... 269
Related topics: ................................................................................................. 270
How to Create a Temporary Storage Target ............................................................ 270
Related topics: ................................................................................................. 271
XML as Source and Target .................................................................................... 271
Using XML as a Source ...................................................................................... 271
Using XML as a Target ....................................................................................... 272
Transforming XML structures.............................................................................. 272
Export Source And Target Settings ........................................................................ 273
Transformations ..................................................................................................... 275
Transforming Data Overview ................................................................................. 275

ix

Jitterbit Help Manual

Transforming Data Overview ................................................................................. 276


Data Transformation Types ................................................................................... 277
Data Transformation Types ................................................................................ 277
How To Transform from an XML Document to a Text File ....................................... 278
Data Normalization in Jitterbit ............................................................................ 280
Synchronizing Data via Jitterbit Diff .................................................................... 280
Data Transformation How-Tos ............................................................................... 282
Mapping Flat to Hierarchical Structures (Multiple Mapping)..................................... 282
Mapping Hierarchical to Flat Structures (Instance Mapping) ................................... 287
Mapping Flat to Hierarchical Target ..................................................................... 294
Sample 3 Target Document Structure.................................................................. 295
Data Transformation Types ................................................................................ 299
Transforming from a Text File to a Web Service Request ....................................... 299
How To Transform from a Text File to an XML Document ....................................... 301
How To Transform from a Text File to a Text File .................................................. 303
How To Transform from a Text File to a Database ................................................. 304
How to Transform from a Database to a Web Service Request ................................ 306
How To Transform from a Database to an XML Document ...................................... 308
How to Transform from a Database to a Text File ................................................. 310
How to Transform from a Database to a Database ................................................ 312
How To Transform from an XML Document to a Text File ....................................... 314
Transforming from an XML Document to a Web Service Request ............................. 315
How To Transform from an XML Document to a Database ...................................... 317
How To Transform from an XML Document to an XML Document ............................ 319
Transforming from a Web Service Response to a Database .................................... 321
Transforming from a Web Service Response to a Text File ..................................... 323
Transforming from a Web Service Response to an XML Document........................... 325

Table of Contents

Transforming Data from and to LDAP .................................................................. 327


Advanced Options................................................................................................ 328
Dynamic XML Schema Generation ....................................................................... 328
Advanced Transformation Overview .................................................................... 330
Advanced Transformation Overview .................................................................... 330
Control Data Element Display ............................................................................. 331
Data Normalization in Jitterbit ............................................................................ 332
Instance Mapping ............................................................................................. 332
Multiple Mapping .............................................................................................. 337
Conditional Mapping .......................................................................................... 339
Streaming and Batch Transformations ................................................................. 340
Synchronizing Data via Jitterbit Diff .................................................................... 342
Using LDAP Sources and Targets ........................................................................ 343
Multiple Occurrence of Source Loop Node ............................................................ 346
Field Validation ................................................................................................. 347
Transformation Mapping ....................................................................................... 350
How To Map Source and Target Fields ................................................................. 350
What's Next?.................................................................................................... 351
Using the Formula Builder .................................................................................... 351
Modifying Expressions with Source Elements ........................................................ 353
Related topics: .................................................................................................... 353
Test Transformation............................................................................................. 353
Web Services ......................................................................................................... 355
Creating a Web Service Method ............................................................................. 355
Specifying Web Service WSDL ............................................................................ 355
Selecting Method and Binding ............................................................................ 355
Setting Security and Restrictions ........................................................................ 356

xi

Jitterbit Help Manual

Setting up a Web Service Call in an Operation ...................................................... 356


Testing a Web Service Call ................................................................................. 356
Related Topics .................................................................................................. 356
Creating a Hosted Web Service ............................................................................. 357
Calling a Web Service .......................................................................................... 359
Text Structures ...................................................................................................... 361
Creating a Text Document Definition ...................................................................... 361
Working with Simple Text Documents ................................................................. 361
Working with Complex Text Documents ............................................................... 363
Modifying Segment and Field Orders ...................................................................... 368
Related topics: .................................................................................................... 368
How to Create a Text Document Definition from a Template File ................................ 368
Schedules ............................................................................................................. 371
How To Create a Schedule .................................................................................... 371
Set the Occurrence ........................................................................................... 371
Set the Frequency ............................................................................................ 371
Set the Duration ............................................................................................... 372
Related topics: ................................................................................................. 372
Controlling the Scheduler ..................................................................................... 372
Checking Scheduler Status................................................................................. 372
Starting and Stopping the Scheduler ................................................................... 372
Email Messages...................................................................................................... 375
How to Create an Email Message ........................................................................... 375
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: ............................. 375
Related topics: ................................................................................................. 376
Scripts .................................................................................................................. 377

xii

Table of Contents

How To Create a Script ........................................................................................ 377


HTTP Endpoints ...................................................................................................... 379
How to Create an HTTP Endpoint ........................................................................... 379
Related topics: ................................................................................................. 380
Social Networking ................................................................................................ 381
ERP Connectors...................................................................................................... 383
ERP Connectors Overview ..................................................................................... 383
Creating an SAP Endpoint ..................................................................................... 385
Jitterbit Plugins ...................................................................................................... 395
Extending Jitterbit with Plugins ............................................................................. 395
Installing a Plugin ............................................................................................. 395
Creating Plugins ............................................................................................... 396
Required Plugins ................................................................................................. 396
Applying Pipeline Plugins ...................................................................................... 397
Creating Plugins .................................................................................................. 398
XML in, XML out ............................................................................................... 399
Formula Builder ..................................................................................................... 401
Formula Builder Overview..................................................................................... 401
Formula Builder Features...................................................................................... 401
Using the Formula Builder .................................................................................... 404
Modifying Expressions with Source Elements ........................................................ 405
Related topics: .................................................................................................... 405
Formula Builder Functions .................................................................................... 405
Formula Builder Functions.................................................................................. 405
Jitterbit Script Features ..................................................................................... 406
Function Category: Conversion ........................................................................... 409
Function Category: Cryptography ....................................................................... 413

xiii

Jitterbit Help Manual

Function Category: Database ............................................................................. 415


Function Category: Date-Time............................................................................ 421
Function Category: Debugging ........................................................................... 425
Function Category: Dictionary and Array ............................................................. 426
Function Category: Diff ..................................................................................... 430
Function Category: Email ................................................................................... 432
Function Category: File...................................................................................... 434
Function Category: General ............................................................................... 436
Function: AutoNumber ...................................................................................... 437
Function: CancelOperationChain ......................................................................... 438
Function: Eval .................................................................................................. 438
Function: Get ................................................................................................... 438
Function: GetHostByIp ...................................................................................... 439
Function: GetInputString ................................................................................... 439
Function: GetOperationQueue ............................................................................ 439
Function: GetServerName .................................................................................. 440
Function: Guid.................................................................................................. 440
Function: IfEmpty ............................................................................................. 441
Function: IfNull ................................................................................................ 441
Function: InitCounter ........................................................................................ 441
Function: InList ................................................................................................ 441
Function: IsInteger ........................................................................................... 442
Function: IsNull ................................................................................................ 442
Function: IsValid .............................................................................................. 442
Function: Length .............................................................................................. 442
Function: Null................................................................................................... 443
Function: ReadArrayString ................................................................................. 443

xiv

Table of Contents

Function: RecordCount ...................................................................................... 444


Function: ReRunOperation ................................................................................. 444
Function: RunOperation ..................................................................................... 445
Function: RunPlugin .......................................................................................... 445
Function: RunScript .......................................................................................... 446
Example: ......................................................................................................... 446
Function: Set ................................................................................................... 446
Function: Sleep ................................................................................................ 447
Function: SourceInstanceCount .......................................................................... 447
Function: TargetInstanceCount........................................................................... 447
Function: WaitForOperation ............................................................................... 447
Function Category: HTTP ................................................................................... 448
Function Category: Instance .............................................................................. 449
Function Category: LDAP ................................................................................... 451
Function Category: Logging and Error ................................................................. 455
Function Category: Logical ................................................................................. 457
Function Category: Math ................................................................................... 458
Function Category: Salesforce ............................................................................ 459
Function Category: String .................................................................................. 463
Function Category: Text Validation ..................................................................... 473
Function Category: XML..................................................................................... 474
Formula Builder Debugging ................................................................................... 478
Formula Builder for LDAP...................................................................................... 479
Reference.............................................................................................................. 483
Jitterbit Reference Overview ................................................................................. 483
Enterprise Edition Features ................................................................................... 483
Enterprise Edition Features ................................................................................ 483

xv

Jitterbit Help Manual

Enterprise Edition Features ................................................................................ 483


Jitterbit Plugins ................................................................................................ 484
Import Project Data .......................................................................................... 492
Restore from Server Backup .............................................................................. 495
Download Project.............................................................................................. 496
Using Global Variables.......................................................................................... 497
Local Variables .................................................................................................... 509
Manual Connection String ..................................................................................... 509
Supported Character Encodings ............................................................................. 509
Index.................................................................................................................... 563

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.

What's in the Online Help


The Online Help system is designed to introduce you to working with Jitterbit, as well as
providing detailed reference and administrative information to help you work through the
complete system.
The list below shows you at a glance what is available in this online help system. Use the
Table of Contents tab on the left to jump to the appropriate page for more details:
A brief review of the challenges associated with data transformations, and an
overview of how Jitterbit streamlines the process
A tutorial to help you quickly learn how to create definitions and transform your data
A summary of the recommended sequence of steps you need to take in order to
create an operation
A reference for each type of definition you can create
Instructions for creating the particular type of transformation you need
Details about advanced transformation mappings
Descriptions of administrative tasks

Conventions Used in this Guide


The following conventions are used in this guide:
Computer type indicates information that you enter into the interface, such as
specifying a URL.
Bold type indicates buttons, fields, and other interface objects.
Italic type is used to introduce new terms.
Popups must be clicked on to be activated. Popups open a separate window that
provides more detailed information.
In addition, the following boxes will be displayed as appropriate:

Jitterbit Help Manual

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.

Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support


forum and Ticket Portal: help.jitterbit.com

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

Jitterbit Help Manual

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.

Jitterbit Help Manual

Email Messages: Allows success and failure notifications to be sent when an


operation completes.
Operations: A flexible tool for combining definitions in an event-triggered chain.
Other topics of interest:
Click here for information on system requirements.
Click here for information on Jitterbit connectivity.

Jitterbit System Requirements


Below is a list of the items you need to run Jitterbit on your computer.
See also About Jitterbit Connectivity.
System Requirements
Windows Vista/7/8
Windows Server 2003/2008/2012
Windows XP SP2
On Windows, the install partition must be NTFS formatted
Officially supported Linux distributions
RHEL (CentOS) 5
RHEL (CentOS) 6
Amazon Linux AMI 2012
SUSE Linux Enterprise Server 11
Ubuntu 10.04 (Lucid Lynx)
Ubuntu 12.04 (Precise Pangolin)
Other similar distributions or distributions derived from the above with RPM or Debian
package support also operate successfully.
Mac OS (10.6, 10.7 and 10.8)
PostgreSQL 8.4 and later
Java Runtime Environment (JRE) 6.x and later
The hardware requirements are those of the OS you run. If you can run the OS without
issues, Jitterbit should run correctly. You may need to add RAM depending on types and
numbers of transformations you intend run in parallel.

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.
-------

Jitterbit Help Manual

* 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)

Working with Jitterbit


Here is a brief summary of the steps you will typically take to define and run your data
transformations using Jitterbit. To help jump-start your efforts, we also provide a tutorial
that gives you a specific example of how to work within Jitterbit's Integration environment.
If you want to skip the tutorial and start working on your own, we recommend you work in
the following order:
1. Define a new project
2. Create an operation in your project and define all its supporting components,
including:
1. Source
2. Target
3. Transformation
4. Schedule
5. Email message
3. Deploy the completed operation to a server and run it
4. Check logs for results
See also:
Jitterbit Tips and Tricks

Opening Screen
When you launch the Jitterbit Integration Environment, the startup screen presents you with the
following three options:

1. Open existing integration project


This option allows you to open an existing integration project that is stored on your local disk.
The most recently accessed projects are displayed. (The list will be empty the first time you run
the client.) You open a project in the list by:

1. Double-clicking on the project name in the list


2. Right-clicking on the project name and selecting Open from the popup menu
8

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.

2. Create new integration project


This option allows you to create a new, empty integration project. You need to specify the
project's name and location to store the project. It is recommended that the default location
suggested by the UI is used.
If a project with the same name already exists at the specified location, you will be asked if you
want to overwrite the existing project.

3. Download Project (available in the Enterprise MX version only)


This option allows you to download a project from a Jitterbit server. It takes you to a screen
where you select a Jitterbit server. Once connected to a server you will see a list of the available
projects. Select a project and click the Download Selected Project button to download the
project. The project is automatically opened.
Cancelling the Download Project screen will bring you back to the opening screen.

4. Import Jitterpak

Jitterbit Help Manual

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.

User Interface Overview


The Jitterbit Integration Environment is a Java user interface that comprises three main
components:
Navigation components which include Main Menu, Main Toolbar and Navigation Tree
that provide users with efficient ways to use the system.
Tab Screens and Toolbars that enable users to define all aspects of an integration.
Utilities for testing and managing Integration Projects and administering Jitterbit
servers.
This interface was designed to support user interface constructs that are common across
both Java and Windows tools to minimize the learning required to use the tool.

User Interface Navigation


You navigate the UI using the following components:

1. Main Menu: Access most of the functionality provided by the system


2. Main Toolbar: Fast access to commonly used functionality
3. Project Tree: Organize and manipulate integration components
4. Tab Screens: Screens used to define properties and run tasks
5. Transformation Toolbar: Special functions used when creating transformations
The Main Menu
Here you can access most of the functionality provided by the system using dropdown
menus organized into the following categories:

10

Overview

File Menu - work with projects and items


Open Project - open an existing Integration Project stored on your machine or
network
New - create a new integration component including: New Operation, New
Transformation, New Source, New Target, New Web Service Method, New Web
Service Endpoint New Text Structure, New Schedule, New Email Message, New
Script, New Connect Wizard, or New Project
Close Page - close the tab / page that you are currently working on
Close All Pages - close all open tabs / pages that you are working on. If a page
has unsaved work you will be prompted to save or discard your changes
Close Other Pages - close all open tabs / pages except the one that is currently
active. If a page has unsaved work you will be prompted to save or discard your
changes
Save - save the content in the tab / page that you are currently working on
Save As - not supported in the current version
Save All - save the content in all tabs / pages that you have worked on since
they were last saved
Import Jitterpak - import Jitterpack from a location on your machine or network
Export Jitterpak - export your Integration Project as a Jitterpak
Download Project [Enterprise Only] - download a project from a server
Import Project Data [Enterprise Only] - import data from another project.
Restore From Backup [Enterprise Only] - restore project from an automatic
backup.
The most recently accessed projects are listed here. The number of items to
show is configurable in Edit -> Preferences
Exit - close the application

Edit Menu - work with the files in your Integration Project


Undo - undo the work you most recently performed
Redo - redo work that you most recently undid
Create Copy - create a copy of a particular item

11

Jitterbit Help Manual

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

View - view system utilities and tools. These include:


Integration - launch the Integration Environment in which integrations are
defined
Administration - access the Administration console
Activities Performed - view all of your activities in the environment since you
opened the tool
Error Log - view any errors that have been reported
Known Servers - view a list of all the servers the Jitterbit client is aware of
Administration Console - launch the following adminstration controls:
System Console - monitor and change the Jitterbit server you are logged
into
System Queue - view the operations that are currently running or placed
on the queue on the Jitterbit server you are logged into
System Operation Log - view the log of all operations that have been
executed on the Jitterbit server you are logged into
System Operation History - view the history of all operations that have
been executed on the Jitterbit server you are logged into
Scheduler Console - monitor and change the scheduler of the Jitterbit
server you are logged into
User Console - manage users and groups
Project Console - shows a list of all the projects that you have read
permission for
Server Logs - allows an administrator to look at the server log files
Operation Activity - to get to the following for the operation you are currently
working with:

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

Actions - communicate with a Jitterbit server. This includes:


Login - login to a specific server
Logout - logout from the current server. Any further server action will require
you to specify the user name and password again
Update User Profile - update your user profile on the server. This is where a
user would change the password
Deploy - deploy an Integration Project to a server
Test All Connections - test the connection to all Sources and Targets in the
current project
Refresh All Transformations - refresh all transformations
Run Operation - send a request to run the currently selected operation.
Set Permissions - control the user and group permissions for the currently
selected item.
Plugin... - assign plugins to the currently selected project item (this option is
disabled if plugins cannot be assigned to the currently selected item)
Stop Current Test - Stop the current test session when stopped at a break-point

13

Jitterbit Help Manual

Resume Current Test - Resume the current test session when stopped at a
break-point

Windows - navigate to different Tabs / Items in the system, including:


Next Page - go to the next open Tab / Item.
Previous Page - go to the previous open Tab / Item.
Display Mode - select preferred display mode: Tabs / Floating
Recently Closed - select to open a page that was recently closed
Windows - go directly to an open Tab / Item.
Quick Switch - a searchable list of open Tabs / Items.

Help - information to help you use the Jitterbit Integration Environment


Help - launch the help system
Jitterbit Support Forum - connect to the Jitterbit Community Forum
Jitterbit Quick Start Tutorial - connect to the online Jitterbit Quick Start
Tutorial
Application Logs - view messages that have been logged by different client
components (this is mostly used by Jitterbit developers to track down potential
problems)
License - view the current status of your Jitterbit license, or request / activate
a new license. (This is menu item is not present in the Community version, since
Jitterbit Community does not require a license.)
About Jitterbit Integration Environment - get information about the current
version of Jitterbit you are using

14

Overview

Jitterbit Main Screen Diagram

Item
1 Jitterbit Window Banner

Function
This banner displays
the Jitterbit
Integration
Environment version.

2 Application Menu

This menu displays


the main menu
options.

3 Main Icon Ribbon

This ribbon displays


the main icons (e.g.,
Create a new
operation; select a

15

Jitterbit Help Manual

Jitterbit Connect
Wizard; deploy the
current project; save
the active page log
These arrow icons display

Use the black triangle dropdown to

when two or more tabs are reveal a choice of operations to open in


open in the workspace.

into a Jitterbit
server).

connection with the current project

Use the right and left

arrows to move forward


and backward among the
tabs.

4 Current User/Server values

The gold User


icon displays the
name of the user
on the project (if
logged in).

The silver Server


icon displays
whether or not
the server is
connected.

5 Left Pane

This pane contains


the Design and Admin
tabs, and the
Consoles and Actions
sub-tabs.

The tabs will appear if


the View->Design or
View->Administration
menu are (or have
been) selected.

Note: Connecting in
Administration mode
will only display the

16

Overview

Administration tab.
6 Right Pane

This pane is the


Workspace pane,
where you develop
Operations,
Transformations,
Sources and Targets,
and other project
components.

17

Jitterbit Help Manual

Jitterbit Left Pane Diagram


Design Tab Open

Item

Function

Left Pane

This pane contains the Design and Admin


tabs.

5.1

Design Tab

Selecting this tab allows you to access


Operations, various menus, and the Project
trees (e.g., Operations, Transformations,

18

Overview

Jitterbit Connect Wizard).


5.1.1Project Context Menu

To display this menu, right-click on the


Project name just under the tab labeled
"Design."

5.1.2Validation Dropdown
Menu

Clicking on the black triangle displays the


validation dropdown menu for highlighting
invalid items or items not deployed.

5.1.3Tree Expand/Collapse
+/- Icon

Clicking on the +/- icon expands or collapses


the trees in the Design pane, allowing the
user to find data elements quickly.

5.1.4Project Filter and Field


Menu

To display the field menu, right-click on the


Project name.

Use the project filter to prune the Design tree


to display only the items that include the
string entered into this field.
5.1.5Component-Type Context To display this menu, right-click on the
Menu
5.1.6Component Context
Menu

bolded "component type."


To display this menu, right-click on the
component.

19

Jitterbit Help Manual

Jitterbit Left Pane Diagram


Administrative Tab Open

5.2

Administration

Selecting this tab allows you access to the Consoles

Tab

and Actions sub-tabs.

5.2.1Consoles Subtab

Selecting this sub-tab allows you to view Jitterbit


consoles, queues and logs.

5.2.2Actions Sub-tab Selecting this sub-tab allows you to delete all queue
entries from the server.

20

Overview

Jitterbit Right Pane Diagram


Transformations Tab Open

Item

Function

Right Pane

This pane
contains the
Transformations
and Operations
tabs.

21

Jitterbit Help Manual

6.1

[1] Configurable Component Detail Display

6.1.1Component Status Field

This icon displays


the current
status of the
components on
the Workspace
tab (valid or
invalid).

6.1.2Component Dropdown Menu

This menu is
opened by
clicking the black
triangle on the
Workspace
component icon
ribbon.

6.1.3Component Icon Ribbon

This ribbon
displays the main
icons (e.g., list of
dependent
objects; save
active page;
deploy item;
context help).

6.1.4[2] Component Context Menu


7

Pane Vertical Scroll Bar

This icon appears


on the right side
of the pane if the
pane displays
more than a
screenful of data.

22

Overview

Pane Horizontal Stretch Icon

This icon at the


lower right
corner of a
component tab
allows you to
open an
Activities
Performed tab
below the
component tab.

Pane Expand/Collapse Icons

Clicking on one
of these icons
expands or
collapses the
trees of
mapping.

10

Bottom tool ribbon

This tool ribbon


appears at the
bottom of the
pane and
displays icons
(e.g., load
sample sources
data; Automap)

23

Jitterbit Help Manual

Jitterbit Right Pane Diagram


Operations Tab Open

Item

Function

Right Pane

This pane contains the


Transformations and
Operations tabs.

6.1.1Component Status Field

This icon displays the current


status (valid or invalid) of the
components on the Workspace
tab.

6.1.2 Component Dropdown Menu

This menu is opened by clicking


the black triangle on the
Workspace component icon

24

Overview

ribbon.

6.1.3Component Icon Ribbon

This ribbon displays the main


icons (e.g., list of dependent
objects; save active page;
deploy item; context help).

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:

Create a New Operation - create a new integration component including: New


Operation, New Transformation, New Source, New Target, New Web Service
Method, New Http Endpoint, New Text Structure, New Schedule, New E-mail
Message, New Script, or New Project
Create a New Transformation - open the Transformation Wizard to create a new
data transformation.
Create a New Source - open a screen to create a new data source and select a
source type.
Create a New Target - open a screen to create a new transformation target and
select a target type.
Create a New Web Service Call - download a WSDL and create a new web service
call for your operation.
Create a New HTTP Endpoint - create a new HTTP endpoint from which to trigger
operations.
Create a New Document - open a screen to create a new text structure and select
a document type and format.
Create a New Schedule - open a screen to create a new operation schedule and
configure its occurrence, frequency and duration.
Create a New Email Message - open a screen to create an email message to be
triggered when an operation completes.

25

Jitterbit Help Manual

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:

Create an Interchange Project - create a new, empty interchange project.


Open an Integration Project - open an existing Integration Project stored on your
machine or network.
Save the Active Page - save the content of the Tab / Item you have open and are
currently editing.
Save All Edited Pages - save the content in all Tabs / Items you have edited since
they were last saved.
Back - go back to the previous tab.
Forward - move forward to the next tab.
Deploy - deploy an Integration Project to a server.
Login to a Jitterbit Server - log in to a specific server. When you are logged in,
this icon is gold-colored. When you are logged off, this icon is grayed out.
You may also log in via the User icon or the Server icon near the right side of the
main toolbar:

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

Jitterbit Help Manual

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

The toolbar menu provides access to the following functions:


1. Save - save the content in the current Tab
2. Close Page - close the current page
3. Close Other Pages - close all other pages and leave this one open
4. Additional Details - details about the deployment of this item
5. View XML -view the XML definition of this item. All definitions are send to the Jitterbit
server using an XML process definition language.
6. View Input JTR - view the structure in an XML viewer. Used primarily for debugging
purposes.
7. View Output JTR - view the structure in an XML viewer. Used primarily for debugging
purposes.

Displays if this item is referenced by other items. Items that are referenced are
termed "Active" items.

Indicate the status (valid or invalid) of the item currently open.


Save the content in the Tab / Item currently open

Deploy the open item.


Set user and group permissions for the active item.

29

Jitterbit Help Manual

Refresh the source and target structures in the transformation displayed.


Display the Transformation Toolkit dropdown. Provided only in the mapping pane
for access to the following tools:
1. Load Source Data - Load sample data into the source tree
2. Test Transformation - Carry out the transformation using the source data
loaded
3. Test Operation - Perform an end-to-end test of the transformation using an
operation.
4. Show Only Data - Display data only in the source tree or target tree.
5. View Source File - When source data has been loaded from a file into the
mapping tree (using Load Source Data), this option opens the loaded file
into the client UI, allowing you to quickly make changes to the file and load
the source data again.
6. View Target File - View the file that was loaded into the target tree. You
may also save the file after viewing.
7. Remove Test Data - Remove test data from the mapping tree.
8. Edit - Edit data in your mapping. This option brings up a dropdown with the
following sub-options:
Edit Source Structure.
Edit Target Structure.
o

Edit WHERE Clause - Available only for transformations using


database sources. This allows you to change the WHERE clause
you defined when creating the transformation.

Edit Update Keys - Available only for transformation using


database targets. This allows you to change the update keys and
insert/update mode you defined when creating the transformation.

Migrate - Migrate / inherit the mappings from an old source or target


if the new structure has changed and mappings require only minimal
update.

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.

Close the current screen.

31

Jitterbit Help Manual

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.

1. To login to a server, click the


from the dropdown menus.

button in the main toolbar, or select Action > Login

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

next to the Advanced label.

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

8. Use Port #: Enter the port number you wish to use.


Note: As with the user name, the client remembers the advanced settings that were
used for the 10 last servers you connected to.

Transformation Toolbar Objects


On Transformation screens, in addition to the main Toolbar, Jitterbit provides a separate
Transformation Toolbar. Its tools and their respective functions are described in the table
below.
Button

Name

Description

Expand-Collapse The Expand-Collapse buttons expand or collapse the trees to


aid in finding data elements quickly. The icon on the left end of
the Transformation toolbar controls the Source pane, and the
control on the right end controls the Target pane.
Options for
Hiding Nodes

Options for Hiding Nodes appears on the left (source) and


right (target) panes.
Options include:
- Hide Unmapped Nodes
- Show Data Nodes Only
- Simple Node Display

Load Sample
Source Data

Load sample source data into the transformation.

Test the
Test and validate the transformation currently open.
Transformation
Test Operation

Test an operation that uses the transformation current;y


open.

Zoom In

Increase the size of the text displayed in the trees.

Zoom Out

Decrease the size of the text displayed in the trees.

Map Elements

Map a source data element to a target data element. When


both are selected, this icon activates and will perform the
mapping when clicked. This icon becomes enabled if both a

33

Jitterbit Help Manual

source and a target data element have been selected. Clicking


it saves the mapped relationship associated with the selected
elements, and adds this relationship to the frame beneath the
Transformation toolbar.
Create Formula This button is enabled if a mapped relationship has been
selected. Clicking it launches the Formula Builder and loads the
value of the Source data element.
Automap

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

Context Menu / Action

Top-Level When you right-click on the top-level source folder, the


Source following option is displayed: Edit Source Structure. To
Folder
prepare foer the edit, you are then offered options to
back up the original and to migrate the mappings.
Source
Subfolder
(other than
root)

Right-click to display an option to define a batch


transformation.

Top-Level
Target
Folder

Right-click to display options to edit the target


structure or to clear the mappings under this folder.

Target
Subfolder

Right-click on any subfolder in the target pane to view


options to:
- Add a condition
- Create an extra folder for mappings
- Clear the mappings under the folder.

Target

34

Right-click on any target node to clear the mappings

Overview

Node

under that 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

In the Administration environment's Console pane, click the System


Console button.

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

Jitterbit Help Manual

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:

\\servername\sharename\path\filename. The servername can be replace by an


IP address.
The Jitterbit server can access file shares as a source or target store for files. Jitterbit will
connect to the file share specified in the Source or Target using the credentials provided in
the Source and/or Target configuration. These credentials must be sufficient to perform the
action intended for the operation to succeed.
Jitterbit is limited to the restrictions imposed by the file share you are accessing:
It is bound by security and access control defined for the user defined in the Source
or Target for that given file share
If the file share only permits a certain number of connections then Jitterbit will be
bound to that
Most file shares to not permit multiple users changing a given file concurrently, so if
a file is being used by another user or process Jitterbit will not be able to change it.
Related topics:

File Share Source Definition


Target File Share Definition
About FTP Support in Jitterbit
File Transfer Protocol (FTP), a standard Internet protocol, is the simplest way to exchange
files between computers on the Internet. Accessing any FTP server requires a logon or
anonymous access. Jitterbit will perform all the necessary actions to login to an FTP site and
get files from it or put files on it.
Passive Mode

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.

About XML Support in Jitterbit


Jitterbit can read and write XML files and transform XML data into the other data formats it
can process.
To read or generate XML data, Jitterbit requires an XML schema (xsd) or document type
definition (dtd) to describe the XML structure if needs to read or generate.
Related topics:
Transforming Database to XML
Transforming Text File to XML
Transforming XML to Database
Transforming XML to Text File
Transforming XML to XML
About Database Support
Authentication
Jitterbit communicates with databases through ODBC; databases can be defined as sources
or targets of data Operations. All SQL statements written using the Formula Builder in the
Transformation Mapping Tool should be ANSI-SQL compliant for the ODBC driver of the
database you are accessing. There is a 2000-character limit to the SQL statements; if this is
a limitation we recommend creating database views for long SQL statements.
Unsupported Data Types
The following items are not supported in this edition of the software:
Binary data
Unicode/UTF data
Tables and views with spaces in the names
User Defined Functions
37

Jitterbit Help Manual

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

Additional Connect String Parameters

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

Jitterbit Help Manual

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;

*N/A = Not applicable.


An example source database definition that uses Excel with a File DSN is shown below.
Note: Some databases only require a fileshare path for the Database Name field; no file
name is required. In the table above, note that the DBASE and Paradox Database Name
entries do not provide any file name.

About HTTP Support in Jitterbit


HTTP as a Source
When HTTP is a source, the Jitterbit Integration software performs a GET action to retrieve
data from the URL that is created by the source information. A connection is made to the
URL that is created as a combination of the host, port, path, file name, and query string.
HTTP as a Target
When HTTP is a target, the Jitterbit Integration software performs a POST action to post
data to the URL that is created by the source document. This is very different than using
HTTP as a source, where the source location supplies the data for the transformation. When
using HTTP as a target, the user is using the HTTP POST method to actually post data to a
URL that should be recognized by the Web server. This provides great power to the user, in
that the transformation process has the ability to produce a document that can be
understood by a server-side script-enabled Web page, CGI, or ISAPI filter.
Note: HTTP POST can include virtually any type of payload, but must be understood by the
Web server that is receiving it.

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 Help Manual

$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

System Console - for starting and stopping a Jitterbit server as well as


checking its status. See System Console for more information.

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.

Project Validation - to determine if there are any invalid items in a project.

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.

Test Operation - when testing transformation that pertain to web services,


two transformations will need to be tested: the transformation of data to the
web service request and the transformation of data from the web service
response to the target structure. This utility runs the operation and displays
the result of either transformation in the appropriate data structure tree. See
Test Operations for more information.

Transformation Migration - if an underlying system or data structure changes


either in the source system or target system, the migration tool allows users
to map between the old and new structure. Once that mapping is established,

43

Jitterbit Help Manual

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

Changing an Admin Password


If you have forgotten the password for the Jitterbit's administrative user (Admin) take the
following steps to reset it.
In order to set the password for the 'Admin' user to an empty string you need to connect to the
backend database named "TranDb" and execute the SQL statement
UPDATE UsersTab SET Password='d41d8cd98f00b204e9800998ecf8427e' WHERE User_Id =
0
Note that you cannot use this method to set the password to anything but
d41d8cd98f00b204e9800998ecf8427e since the password is stored encrypted.
You need to log in to the server using the client UI and then set the password for the 'Admin'
user. It is not recommended to leave the password for the Admin user blank!
On windows you can connect to localhost using the pgAdmin III program that is installed
together with PostgreSQL in All Programs -> PostgreSQL.
The credentials for the back-end database can be found in the file
JITTERBIT_HOME/jitterbit.conf under the [DbInfo] section.

How To Modify a Definition's Permissions


By default, any new definition you deploy to a Jitterbit server will only be accessible by the
user who deployed it. If you want other people and/or groups to access a definition, you
need to change the definition's access permission settings. Follow these steps to modify
which users and/or groups can access your definition.

1. You can access the permissions screen in any of several ways:


Select any object in the Design pane (e.g., an operation, a source, target,
etc.), right-click, then choose Permissions from the sub-menu; or
Select any object in the Design pane, click the down arrow next to the file
icon in the toolbar, then choose Permissions from the sub-menu; or

44

Administration

Click the Permissions button in any definition's toolbar.


2. The definition's permissions appear in its own Permissions tab in the lower part of
the window.
3. Click the Refresh button to retrieve the available users 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.

Controlling the Scheduler


The Scheduler controls the scheduling of operations. When the scheduler is running, operations
that are assigned a schedule definition will activate accordingly. If the Scheduler is stopped, the
scheduled operations must be manually activated; they will not be activated according to their
schedules.
Follow these steps to access the Scheduler Console:

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

Jitterbit Help Manual

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.
You can access the System Console by one of the following methods:
In the Administration environment's Console pane, click the System Console button.
Select Administration Console from the View menu, then choose System Console from
the sub-menu.
The console appears in the System Console tab in the right pane of the window.
Checking System Status

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.

Managing Users and Groups


Jitterbit provides a User Console, where you can define users, then group them according to
which projects, operations, and other definitions they should be able to access.
1. There are two ways you can access the User Console:
In the Administration environment's Console pane, click the User Console
button.
Select Administration Console from the View menu, then choose User
Console from the sub-menu.
2. The console appears in its own Users & Groups: tab in the right pane of the
window.

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.

Working with Groups


Follow these steps to modify an existing group or to create a new group:
1. Select any existing group to modify it, or click the Add New button in the Groups
section to create a new group.
2. Enter/modify the group's name and description in the Details area.
3. (Optional) If you have one or more users defined who should belong to this group,
click the Add button under the Members: list, then select the desired set of users.
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

Jitterbit Help Manual

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

Modifying a Definition's Permissions


By default, any new definition you deploy to a Jitterbit server will only be accessible by the
user who deployed it. If you want other people and/or groups to access a definition, you
need to change the definition's access permission settings. Follow these steps to modify
which users and/or groups can access your definition.

1. There are several ways you can access the permissions screen:
o

Select any object in the Integration hierarchical tree (e.g., an operation, a


source, target, etc.), right-mouse click, then choose Permissions from the
sub-menu; or

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

Click the Permissions button in any definition's toolbar.

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.

Monitoring System Processes and Errors


Jitterbit provides two special tabs that let you monitor all system processes and errors.
Reviewing System Processes
1. Select Process Console from the View menu. The Process Console appears in its
own pane in the lower part of the window.
2. All activities, from logging in to a server, to opening a project, to deploying
operations, will be recorded; each action generates its own entry.
3. (Optional) If at any time you want to clear the console, click the trash can button in
the upper-right corner of the console pane.
Reviewing System Errors
1. Select Error Log from the View menu. The error log appears in its own pane in the
lower part of the window.
2. Any system error will be displayed, each error generating its own entry.
3. (Optional) If you want to save the error descriptions to a text file, click the Save
button in the upper-right corner of the error pane.

Debug Logging in Jitterbit


At times, in diagnosing a problem in Jitterbit, it is necessary to turn on debug logging on the
Jitterbit server. This is done by editing the jitterbit.conf file. The Jitterbit configuration file is
located in the root of the Jitterbit Server install directory. The default install directory is:
Windows: C:\Program Files\Jitterbit Integration Server
Linux /usr/local/jitterbit
Follow these steps to enable debug logging:
1. Open jitterbit.conf in a text editor.
2. Locate the [TransformationEngine] section and set WriteLog=1
3. Locate the [OperationEngine] section and set Debug=1

49

Jitterbit Help Manual

4. Restart the Jitterbit services.


On windows the Jitterbit services are restarted in the Services item under Administrative
Tools, on Linux you run the command "/usr/local/jitterbit/bin/jitterbit restart".
The logs will be written to:
Windows: C:\Program Files\Jitterbit Integration Server\DataInterchange\Temp\Debug"
Linux: /usr/local/jitterbit/DataInterchange/Temp/Debug
Note that the files created in this directory can become very large. Turn off debug logging
as soon as you can, and delete the files when they are not needed any more. The files will
be deleted automatically after one day (this time period is configurable in
CleanupRules.xml).
Selective Debugging
You can turn on debugging selectively for an operation. Right-click on the operation in the
operation graph, select Options..., check "Run In Debug Mode", click OK, right click the
operation and select Deploy. The debug files are written to the same directory. Turn off
debugging for the particular operation when you are done as the files can take up quite a lot
of space.
Other debug options
Jitterbit Tomcat
To see more detailed logging for the Jitterbit Tomcat server, set LogLevel=ALL under the
[JavaBackend], [JavaUiBackend] or [JdbcEngine] sections of jitterbit.conf. Then restart
Jitterbit (or just the Jitterbit Tomcat server). These logs are written to
JITTERBIT_HOME/tomcat/logs
FTP/HTTP Transfers
To turn on detailed trace of FTP/HTTP transfers set the option CurlDebugDir under the
[Settings] section of jitterbit.conf. Set it to the path of an existing directory where the
jitterbit processes have write permission. Each FTP/HTTP connection will create a separate
file in this directory. Restart the Jitterbit Apache service for the change to take effect for
test connection. Use forward slashes for the directory even on Windows, e.g.
CurlDebugDir='C:/Temp/JitterbitData/Curl'

Restore from Local-Machine Backup


You can restore an entire project or components of a project from a local-machine backup.
With the Design pane displayed, click File > Restore from Backup. Then do the following:
From the Select a Day dropdown, choose the day and time of the project backup
from which you need to restore objects.
50

Administration

Click Select Backup.


A list of items in the selected backup project appears.
From the list, select one or more objects that you wish to restore and click Restore
Selected Item.
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:
Jitterbit Enterprise offers the additional option of restoring from a server backup. Click here
for details.

51

Jitterbit Connect Wizards


Wizard Overview
Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit The wizard creates for the
user all of the complex, detailed operations and components of a Transformation project. By
stepping through the wizard, users can create an integration project without the need for
coding.
Two types of wizards are available:
Jitterbit Connect for Salesforce supports bi-directional data, including both queries
and upserts. The Salesforce wizards are based on the easy-to-use wizards in Jitterbit
Data Loader for Salesforce.
Jitterbit also provides standard wizards to step you through creation of several data
transformation types.
In addition, the Salesforce.org wizard provides the option to create a Salesforce connection
directly from the Jitterbit application.
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com

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

Jitterbit Help Manual

Select Salesforce.Org to bring up the New Salesforce.Org screen.

54

Jitterbit Connect Wizards

Complete the fields as follows:


Server host and API version are completed by the system.
Fill in User name and Password for your Salesforce account.
Copy the security token received at your email address from Salesforce.
Select the Sandbox checkbox if you have created a Salesforce sandbox and want to
connect with it on login.
Check the Show Password box to display the Salesforce password on your screen
instead of masking it.
Check the Show Token box to display the Salesforce security token on your screen
instead of masking it.
Click Test Salesforce Login. You should receive a success message.

Creating a Database to Database Standard Transformation with Jitterbit


Connect Wizard
Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit. The wizard creates for
the user all of the complex, detailed operations and components of a Transformation
project. By stepping through the wizard, users can create an integration project without the
need for coding.
Use the following steps to create a Database to Database wizard.

55

Jitterbit Help Manual

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

Jitterbit Connect Wizards

Create Your Source Database Structure

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

Jitterbit Help Manual

Complete the fields as follows:


Name

Enter the name of your Source.

Type

The wizard automatically supplies Database as the type.

Complete the connection parameters fields as follows:


Driver

Click the Select button and highlight the driver name.

Server Name

Enter the server name. If the database is installed on your


computer, type "local list."

Database Name

Enter the database name.

Login

Enter your login and click the Password button. A dialog


appears where you may enter your password.

Use default port


checkbox

This box is checked by default. To use a port other than the


default, uncheck the box and type the port in the Port field.

Option link

Click this link to make refinements on the operation, e.g.,


deleting or re-naming a file after processing.

58

Jitterbit Connect Wizards

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.

Create Your Table Selection

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

Jitterbit Help Manual

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.

Create Hierarchical Relationships

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

On this screen, you may optionally enter a SQL Where Clause.


Click Next to display the Target Database Selection screen.
To return to the previous screen, click the Back button.
Click Cancel to close the wizard without saving your entries.

63

Jitterbit Help Manual

Create Your Target

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

Enter the name of your Target.

Type

The wizard automatically supplies Database as the type.

Complete the connection parameters fields as follows:


Driver

Click the Select button and highlight the driver name.

Server Name

Enter the server name. If the database is installed on your


computer, type "local list."

Database Name

Enter the database name.

Login

Enter your login and click the Password button. A dialog


appears where you may enter your password.

Use default port


checkbox

This box is checked by default. To use a port other than the


default, uncheck the box and type the port in the Port field.

64

Jitterbit Connect Wizards

Option link

Click this link to make refinements on the operation, e.g..,


deleting or re-naming a file after processing.

After you have completed your fields:


Click Next to display the Target 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.
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

Jitterbit Help Manual

Click Next to display the Target Hierarchical Relationships screen.


To return to the previous screen, click the Back button.

lick Cancel to close the wizard without saving your entries.

Create Hierarchical Relationships

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

Select an Insert/Update Mode

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

Jitterbit Help Manual

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.

Review the Summary

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

Jitterbit Connect Wizards

Note: If you have not already logged in to your local server, you will be prompted to do so
now.

Review the Mapping

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.)

Deploy Your Project


On the Design pane under Operations, right-click on the project just created to
highlight it, and then left-click Deploy on the resulting dropdown.
This concludes the process. If you wish to export this project as a Jitterpak, click here.

Creating a Database to Text Standard Transformation with Jitterbit


Connect Wizard
Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit. The wizard executes for
the user all of the complex, detailed operations of a Transformation project. By stepping
through the wizard, users can create an integration project without the need for coding.
71

Jitterbit Help Manual

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.

The Jitterbit Connect Wizard menu appears.

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

Jitterbit Connect Wizards

Begin creating your project with the wizard.

Step 1: Creating your Table Source Selection

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

To return to the previous screen, click the Back button.

Create Your Source SQL Where Clause Selection


Note: This step is optional.

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.

Create Your Source Primary Key Selection


Note: This step is optional.

75

Jitterbit Help Manual

Note: This step is optional.


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.

76

Jitterbit Connect Wizards

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.

Select Your Target Text Structure

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

Jitterbit Help Manual

Name: Enter the name of your new document.


Select Document Type: Select the radio button for either Simple or Complex Text
Document.
Select Document Format: Select the radio button for either Character Delimited or
Fixed Field Widths.
Create Manually: Click this button to create your Text Document manually.
Create From File: Click this button to create your Text Document from an existing
file.
o

Type a target name on the New Target screen.

Select a target type (e.g., local target).

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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.

Select Your File Target

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

Jitterbit Connect Wizards

Review the Summary of Your Operation

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.

Review the Mapping


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.)

81

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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.

Deploy Your project


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.

This concludes the Create process. If you wish to export this project as a Jitterpak, click
here.

Creating a Database to XML Standard Transformation with Jitterbit Connect


Wizard
Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit The wizard creates for the
user all of the complex, detailed operations and components of a Transformation project. By
stepping through the wizard, users can create an integration project without the need for
coding.

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

Jitterbit Help Manual

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.

The Jitterbit Connect Wizard menu appears.

84

Jitterbit Connect Wizards

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

Jitterbit Help Manual


Step 1: Creating your Database Source Selection

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

Jitterbit Connect Wizards

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:

Name This field automatically populates with a system-assigned name. This is an


editable field where you can choose any name. In this example, we have renamed
the database MyDatabase.

87

Jitterbit Help Manual

Type

Use the dropdown to select Database as your type.

Complete the connection parameters fields as follows:


Driver

Click the Select button and highlight the driver name where the
database resides.

Server Name

Enter the server name.

Database Name

Enter the database name.

Login

Enter your login and click the Password button. A dialog appears
to enter your password.

Use default port


checkbox

This box is checked by default. To use a port other than the


default, uncheck the box and type the port in the Port field.

Option link

Click this link to perform refinements on the operation, i.e., deleting


or re-naming a file after processing.

88

Jitterbit Connect Wizards

After completing your entries:


Test
Connection

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.

89

Jitterbit Help Manual

Click OK to return to the Source screen.


Next

Click this button to display the Source Table Selection screen.

Cancel

Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

Step 2: Creating your Table Selection

Click the Download List of Tables button to download the list of available tables.

90

Jitterbit Connect Wizards

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.

Complete the fields as follows:


Jitterbit Server

Select the name of the Jitterbit server from the dropdown.

User

Enter your user name.

Password

Enter your password.

Remember Password
checkbox

Check this box if you want the system to remember your


password in the future.

Advanced link

Click the left triangle to reveal advanced link options:

Use of https when communicating with the server.

Selection of a port.

For details, click the Help button in the lower right corner of
this dialogue.

91

Jitterbit Help Manual

After you have completed the fields:


Login

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

Click the question mark to display help for this dialogue.

Once the tables are downloaded, you can copy tables from the Available Tables column to
the Selected Tables column.

92

Jitterbit Connect Wizards

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.

After completing your tables:


Next

Click this button to display the Source hierarchical relationships screen.

Cancel Click this button to close the wizard without saving your entries.

93

Jitterbit Help Manual

To return to the previous screen, click the Back button.

Step 3: Creating hierarchical relationships

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Click OK to return to the Source Hierarchical Relationships screen, which displays


your table tree showing the currently defined relationships.
OR
Click Cancel to return to the Source Hierarchical Relationships screen without saving
your entries.
To return to the previous screen, click the Back button.

96

Jitterbit Connect Wizards

Next

Click this button to display the SQL Where Clause screen.

Cancel Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

97

Jitterbit Help Manual

In this example, we are not using filter conditions.


Next

Click this button to display the Target screen.

Cancel Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

Step 4: Creating your Target

98

Jitterbit Connect Wizards

This screen prompts you to generate an XSD (an XML schma) based on the Source table.

Click the No button to decline.


Click the Yes button to generate an XSD. The screen expands to display a name field
and Generate XSD button.

99

Jitterbit Help Manual

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

Jitterbit Connect Wizards

Next

Click this button to display the Target Options screen.

Cancel

Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

101

Jitterbit Help Manual

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.

To return to the previous screen, click the Back button.

102

Jitterbit Connect Wizards

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

Click this button to display the Summary screen.

Cancel Click this button to close the wizard without saving your entries.

103

Jitterbit Help Manual

To return to the previous screen, click the Back button.

Step 5: Reviewing the Summary of Your Operation

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

Jitterbit Connect Wizards

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.

Step 6: Reviewing the mapping

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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.

Step 9: Deploying your project

107

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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

Creating a Text to Database Standard Transformation with Jitterbit


Connect Wizard
Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit. The wizard executes for
the user all of the complex, detailed operations of a Transformation project. By stepping
through the wizard, users can create an integration project without the need for coding.
The screen conventions in this document are: Source is on the left, Target is on the right.
Procedures:
Creating a Text to Database 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 Jitterbit Connect wizard icon.

The Jitterbit Connect Wizard menu appears.

109

Jitterbit Help Manual

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.

Creat Your Source Selection

110

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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.

Create Your File Source

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

Jitterbit Connect Wizards

Click OK to return to the Source screen.


Next: Click this button to display the Target 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.

Create Your Database Target Selection

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

Jitterbit Help Manual

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.

Create Your Target Table Selection

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

Jitterbit Connect Wizards

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.

Create Hierarchical Helationships

115

Jitterbit Help Manual

Click the Select Parent Table dropdown and make a selection.

Click the Select Child Table dropdown and make a selection.

Then click the Join Tables button. The Join Properties dialogue appears.

116

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Click OK to return to the Target Hierarchical Relationships screen, which displays


your table tree showing the currently defined relationships.
OR
Click Cancel to return to the Target Hierarchical Relationships screen without saving
your entries.
To return to the previous screen, click the Back button.

Next: Click this button to display the Insert/Update Mode 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.

Select the Insert/Update Mode

118

Jitterbit Connect Wizards

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.

Note: This step is optional.

119

Jitterbit Help Manual

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.

Next: Click this button to display the Summary screen.


Cancel: Click this button to return to the Target Hierarchical Relationships screen
without saving your entries.
To return to the previous screen, click the Back button.

Review the Summary of Your Operation

120

Jitterbit Connect Wizards

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.

Review the Mapping


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.)
Note: If you have chosen to do the mappings manually, the following screen appears:

121

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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.

Deploy Your project


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.

123

Jitterbit Help Manual

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.

Creating an XML to Database Standard Transformation


Jitterbit ConnectTM provides a fast, easy route to data transformation. This is made possible
through a wizard-based integration tool built directly into Jitterbit. The wizard creates for
the user all of the complex, detailed operations and components of a Transformation
project. By stepping through the wizard, users can create an integration project without the
need for coding.
This section of help covers the creation of XML to Database. The screen conventions in this
document are: Source is on the left, Target is on the right.
Procedures:
Creating an XML to Database 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.

The Jitterbit Connect Wizard menu appears.

124

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Complete the fields as follows:


Jitterbit Server

Select the name of the Jitterbit server from the dropdown.

User

Enter your user name.

Password

Enter your password.

Remember Password
checkbox

Check this box if you want the system to remember your


password in the future.

Advanced link

Click the left triangle to reveal advanced link options:


Use of https when communicating with the server.
Selection of a port.
For details, click the Help button in the lower right corner of
this dialogue.

After you have completed the fields:


Login

Click this button to login to the Jitterbit server and display the
Source screen.

Cancel

Click this button to close the wizard without saving your


entries.

Question Mark

Click the question mark to display help for this dialogue.

126

Jitterbit Connect Wizards

Create Your Source XML Structure

Select one of the radio buttons:


"Select an XML structure" reveals any existing XML schemas (.xsd or .dtd
extension). Then highlight your selection.
"Upload an XML structure file" allows you to navigate to and upload another DTD or
Schema.
In this example, we chose the "Select an XML structure" radio button and highlighted
"PurchaseOrder.dtd".
Next

Click this button to display the Source Select a Root screen.

Cancel

Click this button to close the wizard without saving your


entries.

127

Jitterbit Help Manual

To return to the previous screen, click the Back button.

Step 2: Creating Your Source Root Element

Select one of the radio buttons:


"Select a root node from the list" reveals data nodes, and you may choose one as
the root.
"Look up the root from a sample XML document" allows you to navigate to another
XML document to determine its root node.
In this example, we choose the "Select a root node from the list" radio button and
highlighted "company_name".
Next

Click this button to display the Source Options screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

128

Jitterbit Connect Wizards

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

Click this button to display the Source Select a File Source


screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

Create Your File Source

129

Jitterbit Help Manual

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

Jitterbit Connect Wizards

XML Source fields:


Name

This field automatically populates with a system-assigned


name. This is an editable field where you can choose to enter
any name.

Type

Use the dropdown to select your type. In this example we have


selected File3-are.

Complete the connection parameters fields as follows.


Path

Enter the path where the "Get" files reside.

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.,

131

Jitterbit Help Manual

deleting or re-naming a file after processing.

After completing your entries:


Test Connection

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

Click this button to display the Database Target Selection


screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

Create Your Database Target Selection

132

Jitterbit Connect Wizards

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

This field automatically populates with a system-assigned


name. This is an editable field where you can choose to enter
any name.

Type

Use the dropdown to select your type. In this example we have


selected Database.

Complete the connection parameters fields as follows.

133

Jitterbit Help Manual

Driver

Click the Select button and highlight the driver name where
the database resides.

Server Name

Enter the server name.

Database Name

Enter the database name.

Login

Enter your login and click the Password button. A dialog


appears to enter your password.

After completing your entries:


Test Connection

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

Click this button to display the Target Table Selection screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

Create your Target Table Selection

134

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Complete the fields as follows:


Jitterbit Server

Select the name of the Jitterbit server from the dropdown.

User

Enter your user name.

Password

Enter your password.

Remember Password
checkbox

Check this box if you want the system to remember your


password in the future.

Advanced link

Click the left triangle to reveal advanced link options:


Use of https when communicating with the server.
Selection of a port.
For details, click the Help button in the lower right corner of
this dialogue.

After you have completed the fields:


Login

Click this button to login to the Jitterbit server and display the
Table Selection screen.

Cancel

Click this button to close the wizard without saving your


entries.

Question Mark

Click the question mark to display help for this dialogue.

136

Jitterbit Connect Wizards

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

Jitterbit Help Manual

After completing your tables:


Next

Click this button to display the Source Hierarchical


Relationships screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

Create Hierarchical Relationships

138

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

After completing your tables:


OK

140

Click this button to return to the Source Hierarchical


Relationships screen, which displays your table tree showing

Jitterbit Connect Wizards

the currently defined relationships.


Cancel

Click this button to return to the Source Hierarchical


Relationships screen without saving your entries.

To return to the previous screen, click the Back button.

Next

Click this button to display the SQL Where Clause screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

141

Jitterbit Help Manual

In this example, we are not using filter conditions.


Next

Click this button to display the Target screen.

Cancel

Click this button to close the wizard without saving your


entries.

To return to the previous screen, click the Back button.

Review the Summary of your Database

142

Jitterbit Connect Wizards

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.

Review the mapping

143

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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.

Step 9: Deploying your project


On the Design pane under Transformations, right-click on the project just created,
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.

145

Jitterbit Help Manual

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

Creating a Salesforce Query Operation with Jitterbit Connect 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.

The Jitterbit Connect wizard appears.

146

Jitterbit Connect Wizards

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.

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.

Create your Query


On the Salesforce Login screen, click Next. The provides a screen where you
may select a Salesforce object.

147

Jitterbit Help Manual

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).

Then select an object and click Next.


On the next screen, you can begin building your query.

148

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Create a Schedule (optional)

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

Jitterbit Connect Wizards

Deploy Your Project


On the Design pane under Transformations, right-click on the project just created,
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.
View Your Project Summary
This summary appears automatically in a new tab when you click the Finish button in the
wizard. Or, at any time, you can bring it up by clicking the operation name under Jitterbit
Connect in the Deisgn pane.

155

Jitterbit Help Manual

You can modify any of the design items in your project by clicking the adjacent Edit button.

This concludes the Salesforce Query wizard procedure.

See also:
Jitterpaks
Exporting Your Project as a Jitterpak

Building a Salesforce Update with Jitterbit Connect Wizard


Jitterbit Connect for Salesforce supports bi-directional data, including both Queries and
Upserts. This section of Help covers the creation of a Salesforce Update.
The screen conventions in this document are: Source is on the left, Target is on the right.
Click the Jitterbit Wizard icon at the top of the screen.

The Jitterbit Connect Wizard menu appears.

156

Jitterbit Connect Wizards

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.

The Jitterbit Connect wizard appears.

157

Jitterbit Help Manual

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.

Enter Your Salesforce Login Information


If you have not yet created a Salesforce login, click here for details.
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.
Click Next. The Object screen appears.

158

Jitterbit Connect Wizards

Highlight your Salesforce Object and click Next at the bottom of this screen. The
Source screen appears.

From the dropdown, select a source type, e.g., Local File.


If you select Local File, make sure the local file target option is enabled on the
Jitterbit server.
If your source is a flat text file, you can optionally add a field-validation step. Click
here for details.
Click the appropriate radio button to select an existing data source or create a new
one.
Click Next. You are prompted to confirm the selected file. Click Continue.
The Confirm File Type screen appears.

159

Jitterbit Help Manual

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.

From the dropdown, select a file structure. Options are:


o

XML Schemas & DTDs

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

Jitterbit Connect Wizards

(To return to the previous screen, click the Back button.)

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.

For more details on scheduling, click here.

161

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual

Deploy the Operation


On the Design pane, right-click on Operations. On the dropdown, left-click on
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.
This concludes the Update creation process. If you wish to export this project as a Jitterpak,
click here.
See also:
HTTP Endpoints
Scripts
Email
Schedules
Field Validation

Building a Salesforce Upsert with Jitterbit Connect Wizard


Jitterbit Connect for Salesforce supports bi-directional data, including both Queries and
Upserts. This section of Help covers the creation of a Salesforce Upsert.
The screen conventions in this document are: Source is on the left, Target is on the right.
Procedures:
Log in to Jitterbit.
To use the Jitterbit Connect Wizard, click the wizard icon.

The Wizard Connect menu appears.

164

Jitterbit Connect Wizards

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.

Enter Your Salesforce Login Information


If you haven't already created a Salesforce login with Jitterbit's Salesforce.com wizard, you
can do so now.
Complete the fields as follows:
Login URL:

Enter your Login URL.

User name:

Enter your username.

Password:

Enter your password.

Show password
checkbox

Check this box to display the password, or leave unchecked to


leave the password masked.

165

Jitterbit Help Manual

Logout when done


checkbox

In case of need, selecting this checkbox will create and call an


SFDC logout operation at the end of the newly created pipeline.

After completing your entries:


Next

Click this button to display the Object screen.

Cancel

Click this button to return to the Login screen without saving your entries.

Create Your Object

Highlight your Salesforce Object. In this example, Account was selected.

Use the dropdown to select an external ID field. In this example, AccountNumber was
selected.

Next

Click this button to display the Source Definition screen.

Cancel

Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

166

Jitterbit Connect Wizards

Create your Source Definition

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

Jitterbit Help Manual

New Source fields:


Name This field automatically populates with a system-assigned name. This is an
editable field where you can type any name. In this example, we renamed the
Source to "UpsertSource."
Type

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.

Jitterbit Connect Wizards

Complete the connection parameters fields as follows. A red dot indicates a required field:
Path

Enter the path where the "Get" files reside.

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.

After completing your entries:


Test
Connection

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

Jitterbit Help Manual

Next

Click this button to display the Text Document Definition screen.

Cancel

Click this button to close the wizard without saving your entries.

To return to the previous screen, click the Back button.

Create a Text Document Definition


You can either select an existing Text Document or create a new one.

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

Jitterbit Connect Wizards

Complete the fields as follows:


Name

Enter the name of your new document.

Select Document
Type

Select one of the radio buttons. In this example, we leave the


Simple Text Document radio button selected.

Select Document
Format

Select one of the radio buttons. In this example, we leave the


Character Delimited radio button selected.

Create Manually

For details on this option, click here to view information on Text


Structures [folder for creating text documents].

Create From Files

Click this button to display the Template screen. In this example,


we click the Create From Files button.

171

Jitterbit Help Manual

Complete the fields as follows:


Template file
type

Use the dropdown to select a template file type.

Delimiter box

Defaults to comma delimiter.

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

This window auto-populates once you select a template file.

When you have completed your entries:


OK

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

Click this button for screen help.

When you click OK, the Source screen expands to show the Delimiter and Qualifier as well
as the Segment Properties section.

172

Jitterbit Connect Wizards

Complete the fields as follows:


Delimiter &
Qualifier

The default is the Only when needed radio button. Leave this button
selected.

Segment
Properties

This section automatically populates. You can edit this section by


clicking the New button and typing in new field names and type.
You can also select a field and move it up or down by using the Move
Up or Move Down buttons.
To delete a property, highlight it and click the Delete Field button.

Review the Structure of Your Upsert


Click the Review Structure button in the lower left corner of the screen. A dialogue
displays the objects you have selected for your Upsert.

173

Jitterbit Help Manual

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

Click this button to display the Summary screen.

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.

To return to the previous screen, click the Back button.

174

Jitterbit Connect Wizards

Review the Summary of Your Upsert

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.

Review the mapping


When you click Finish on the Summary screen, the Transformation tab opens in the
workspace.

175

Jitterbit Help Manual

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

Jitterbit Connect Wizards

Deploy your project


On the Design pane, under Jitterbit Connect, right-click on the name of the operation
just created. On the resulting dropdown, left-click on Deploy.
OR
On the Design pane, right-click on Operations, and then left-click Deploy on the
resulting dropdown.
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 Upsert creation process. If you wish to export this project as a Jitterpak,
click here for Help.
See also:
HTTP Endpoints
Scripts
Email

177

Jitterbit Help Manual

Schedules

Salesforce Insert Wizard


Open Jitterbit, open the Wizard menu, and click the Salesforce Insert button.
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.
After creating and/or testing your Salesforce login, click Next. The Object screen
appears.
Select the Salesforce Object
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).
Then select an object and click Next at the bottom of the Object screen. The Source
screen appears.

178

Jitterbit Connect Wizards

From the dropdown, select a source type, e.g., Local File.


If you select Local File, make sure the local file target option is enabled on the
Jitterbit server.
If your source is a flat text file, you can optionally add a field-validation step. Click
here for details.
Click the appropriate radio button to select an existing data source or create a new
one.
Click Next. You are prompted to confirm the selected file. Click Continue.
The Confirm File Type screen appears.

The applicable radio button should be selected by default. Click Next at the bottom
of this screen.

179

Jitterbit Help Manual

In this example, the file type XML was chosen. The next screen prompts you to
select an XML structure.

From the dropdown, select a file structure. Options are:


o

XML Schemas & DTDs

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

Jitterbit Connect Wizards

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.

For more details on scheduling, click here.

181

Jitterbit Help Manual

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

Jitterbit Connect Wizards

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

Jitterbit Help Manual


Deploy the Operation
On the Design pane, right-click on Operations. On the dropdown, left-click on
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.
This concludes the Insert wizard process. If you wish to export this project as a Jitterpak,
click here for details.
See also:
HTTP Endpoints
Scripts
Email
Schedules
Field Validation

Salesforce Delete Wizard


Open Jitterbit, open the Wizard menu, and click the Salesforce Delete button.
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.
After creating and/or testing your Salesforce login, click Next. The Source screen
appears.

184

Jitterbit Connect Wizards

Create the Source


From the dropdown, select a source type, e.g., Local File.
If you select Local File, make sure the local file target option is enabled on the
Jitterbit server.
If your source is a flat text file, you can optionally add a field-validation step. Click
here for details.
Click the appropriate radio button to select an existing data source or create a new
one.
Click Next. You are prompted to confirm the selected file. Click Continue.
The Confirm File Type screen appears.

The applicable radio button should be selected by default. Click Next at the bottom
of this screen.

185

Jitterbit Help Manual

In this example, the file type XML was chosen. The next screen prompts you to
select an XML structure.

From the dropdown, select a file structure. Options are:


o

XML Schemas & DTDs

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

Jitterbit Connect Wizards

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.

For more details on scheduling, click here.


When you have completed entries on the Schedule screen, click Next. The Summary
screen appears.
187

Jitterbit Help Manual

Review the summary; then click Map & Finish. A Transformation mapping
screen appears.

188

Jitterbit Connect Wizards


Review the summary; then click Map & Finish. A Transformation mapping screen appears.Review
the Delete Summary
This screen can also be accessed by double-clicking the name of the operation under
Data Operations> Deletes in the Project Explorer pane. Here you can change
configurations such as Chunking and Truncate Fields.
To edit any component of your Delete, click the Edit button next to the component
to be edited.
To display the Transformation screen, click the Transformation tab at the top of the
screen.
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.
Deploy the Operation
On the Design pane, right-click on Operations. On the dropdown, left-click on
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.

189

Jitterbit Help Manual

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

Creating a Bulk Process for Salesforce


With the Bulk Process wizard, you can quickly process a large number of records in an
Upsert, Insert, Update, Delete, Hard-Delete or Query action. Bulk Process currently supports
only .csv file sources with a header. Databases are not supported.
If you need to load or export a large volume of records, and you do not need to transform
any of the fields, we recommend that you use the Bulk Process wizard, which is faster and
scales better than Update or Upsert.
Bulk Process requires you to select an external ID field for the target and then map it
appropriately to a source field.
Bulk Process supports the following data types:
Base 64
Boolean
Data formats
Double
Integer
ID
String
Use the following steps to create a Bulk Process wizard.
Open Jitterbit and click the Jitterbit Connect icon at the top of the screen. When the Jitterbit
Connect menu appears, click the Salesforce Bulk Process button.

190

Jitterbit Connect Wizards

191

Jitterbit Help Manual


Create the Bulk Process Action

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.

Create a Salesforce Connection


When you click the Bulk Process button menu, you have the option of creating a
direct Salesforce login. Or you may edit an existing Salesforce login.

192

Jitterbit Connect Wizards

Click Next (the Next button is not illustrated here).


The Object screen appears.

193

Jitterbit Help Manual

From the list, select the Salesforce object, e.g., Account.


Make a selection from the Objects to Show dropdown.
To change your selection, click Refresh at the top right corner of the screen, which
deselects all objects; then select a new object.
Selecting an object, and then selecting an external ID field (Id or Email) from the
dropdown, activates the Next button. When you click this button, the Source screen
displays, with the word"Source" at the top of the screen highlighted in white.
To return to the previous screen, click the Back button.
Select a Source
To select a source file, click Browse and locate your file.
To select an existing Local File Source, select from the dropdown or create a new file.
The source type options are:
File Share
FTP Site
HTTP

194

Jitterbit Connect Wizards

Temporary Storage
Local File

To return to the previous screen, click the Back button.


Selecting a file activates the Next button at the bottom of the Upsert screen.
When you click Next, you are prompted to confirm the file selection.

195

Jitterbit Help Manual

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

Jitterbit Connect Wizards


File Options

Read as UTF-8: Check this box to read the data file as utf-8 character encoding.

197

Jitterbit Help Manual

Date Options: When you click the Edit button, the Date Conversion Settings screen
appears:

The default is GMT.


To use local server time, check this box.
To select a time zone, check this box and select from the dropdown.
Click OK to save your input and return to the File Options screen. Or click Cancel to
return to the File Options screen without saving your input.
Start at data row: Enter the number of the row in the file where you want Jitterbit to
start reading data.
Operation Options
Batch Settings: Clicking Edit brings up the Batch Settings screen.

198

Jitterbit Connect Wizards

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

Jitterbit Help Manual

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

Jitterbit Connect Wizards

To run a schedule, select a schedule from the dropdown.


For more details on scheduling, click here.
To return to the previous screen, click the Back button.
Selecting a schedule activates the Next button at the bottom of the Schedule
screen.
When you click Next, the Summary screen appears.
View Dependencies
To view the dependencies of project components:
Open the graphical Operation summary from the Design pane.
Click the black triangle to the right of the operation name.
On the resulting dropdown, click "View Dependencies."
A graphical representation of project component dependencies opens below the operation
summary in your workspace pane.
Summary
Use this screen to review your project.

201

Jitterbit Help Manual

To return to the previous screen, click the Back button.


When you click Next, the Bulk Process Summary screen appears.
Click Finish to have Jitterbit Connect automatically create the project definitions
listed. The Project screen appears, displaying details of the operation.
Project Screen
Use this screen to run the Operation, edit components, view Result History or delete the
Operation.
This screen can also be accessed by double-clicking the name of the operation under Data
Operations> Bulk Process in the Project Explorer pane. Here you can change configurations
such as Chunking and Truncate Fields.

202

Jitterbit Connect Wizards

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:

Click Continue to deploy the project


Or
Click Cancel to cancel deployment.
To run the operation, click the Run button (in this example, Run Bulk Upsert).
When the operation has run, you will see an instant result dialogue.

203

Jitterbit Help Manual

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

Jitterbit Help Manual

4. (Optional) Include passwords: By default, passwords in Sources and Targets will


not be included in the Jitterpak. Check this checkbox if you want the passwords to be
included. Note, however, that passwords are also by default blanked out from the
project when the project is deployed. Once a password has been blanked out from
the project, it will not be included in a Jitterpak even if this checkbox is selected.
(You can change the password behavior on deploy in the preferences: Edit >
Preferences > Deploy.)
5. (Optional) Include test data: By default, any test data that has been used in the
project, e.g. in Load Source Data and Test Transformation, will not be included in the
Jitterpak. This is because such data may contain confidential information that should
not be shared. Check this checkbox if you want the test data to be included. See the
section on "File-Based Sources" in the Test Source Data help for more details.
6. (Optional) Make the project read-only: Checking this checkbox prevents the
Jitterpak from being deployed to a server once it has been unpacked.
7. (Optional) Password for encryption: If you want to encrypt your Jitterpak you can
protect if with a password. This means that your Jitterpak cannot be opened unless
the correct password is given.
Note: The password is not stored anywhere, so make sure you remember what
password you used when encrypting a Jitterpak.
(Optional) Comment : Enter any comments about the Jitterpak, such as the contents and
purpose of the project.
Click Export The entire project is included in the Jitterpak, you cannot create Jitterpaks
from individual parts of the project.

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

to enable the search

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

Jitterbit Help Manual

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.

Deploying and Activating Operations


After creating an operation, you can activate the transformation within it by doing the
following:
1. Open the appropriate project and operation that you want to activate.
2. If you haven't already done so, validate your operation before deploying it.
3. Click the Deploy button in the main toolbar window to deploy the local project to the
server.
4. Activate the deployed operation by clicking the

button in the operation's toolbar.

211

Jitterbit Help Manual

Note: As a shortcut, you can click the


button, which will deploy your project and then
place the operation in the queue for activation.
If you wish to remove a deployed project from the Jitterbit server, perform the following
steps:
1. Open your project in the Jitterbit Integration Environment.
2. Expand the Project tree completely by clicking on the + icon in the Project tree title
bar
3. Select all the nodes in the tree, by selecting the project node and then pressing
CTRL-A .
4. Press DELETE, and click OK in the Are you sure... dialogue box.
5. Now your project should be completely empty. Press Deploy and choose the
Everything option. Your project will now be removed from the server.
Caution! this will delete your entire project from the client and the server. If you want to
save a copy of your project before deleting it, export it as a Jitterpak.

Deploying and Activating Operations


After creating an operation, you activate the transformation within it by deploying it to the
server and placing it into the queue:
1. Open the appropriate project and operation that you want to activate.
2. If you haven't already done so, validate your operation before deploying it.
3. Click the Deploy button in the main toolbar window to deploy the local project to the
server.
4. Activate the deployed operation by clicking the lightning bolt button in the
operation's toolbar.
Tip: As a shortcut, you can simply click the lightning bolt button, which will first deploy your
project, then place the operation in the queue for activation.

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.

How to Review an Operation Log


The Operations Log screen displays a list of successful, unsuccessful, or partially successful
activities related to a particular operation.
1. There are several ways you can open an operation log:
In the Integration hierarchical tree, right-click the desired operation, then choose
Operation Log from the sub-menu;
In the Administration tab's Activity pane, download the list of deployed operations, rightmouse click the desired operation, then choose Operation Log from the sub-menu.
If you are viewing the operation, click the log button in the operation's toolbar.
2.

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.

Log for a Chained Operation


In the Operation Log, a chained operation is represented by indents in the Status column:

213

Jitterbit Help Manual

This feature of Jitterbit logs is useful in two ways:


It helps you easily identify the subordination of elements in the chain.
In case of failure, you can readily pinpoint the cause where it occurs in the chain.
Related Topics:

Activating Operations
Check File Transfer History
Operation Monitor in Chained Operations

How to Check File Transfer History


The Operation History screen displays the list of files processed for a particular operation.
You can open an operation history window by one of the following methods:
In the Integration hierarchical tree, right-mouse click the desired operation, then
choose Operation History from the sub-menu; or
If you are viewing the operation, click the history button in the operation's toolbar.
The history appears in its own history tab in the right pane of the window. click the
refresh button to download the latest file transfer history from the server. refer to the list
in the upper pane to review which target files have been created. refer to the list in the
lower pane to review which source files have already been used in a particular operation.
If you need to repeat a file transfer, delete the appropriate operation's source entry by
selecting its checkbox, then clicking the Delete button. If you want an operation to process
any files it finds regardless if they have been processed previously, un-check the Do not use
processed files checkbox in the operation definition screen.
See also:
Repeating File Transfers
Review Operation Log
Operation Monitor in Chained Operations

Repeating File Transfers

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.

Reviewing the Operations Queue


Pending processes are operations that have been activated and are to be processed by the
server. You can review the contents of this queue in the Operation Queue screen.
1. There are several ways you can open an operation queue:
In the Integration hierarchical tree, right-mouse click the desired operation, then
choose Operation Queue from the sub-menu; or
In the Administration tab's Activity pane, download the list of deployed operations,
right-click the desired operation, then choose Operation Queue from the sub-menu.
If you are viewing the operation, click the Queue button in the toolbar for the
operation.
Go to the Administration console and click the System Queue button. This
displays the queue for all operations that the current user has permissions to
view.
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.
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.

215

Jitterbit Help Manual


Related topics:

1. Checking an Operations Log


2. Checking Pending Processes
3. Reviewing/Deleting Pending Operations

How to Check Pending Operations


Pending operations are queued by the Jitterbit server for execution. To view the queue for
an operation, select the operation in the Integration tree, right-click and select Operation
Queue or click the Show queue button in the definition screen for that operation.
You can delete any pending process if you do not require it to execute by clicking the
Delete button next to the appropriate entry. Be aware, however, that 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.

Reviewing the Operations Queue


Pending processes are operations that have been activated and are queued to be processed
by the software. You can review the contents of this queue in the Pending Processes
screen.
1. There are several ways you can open an operation queue:
o

In the Integration hierarchical tree, right-mouse click the desired operation,


then choose Operation Queue from the sub-menu; or

In the Administration tab's Activity pane, download the list of deployed


operations, right-mouse click the desired operation, then choose Operation
Queue from the sub-menu.

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:

Checking an Operation's Log

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:

Open the operation that will be first in the chain.

217

Jitterbit Help Manual

Click the black triangle to the right of its name.


From the resulting dropdown, select On Success > Operation > Select Existing; then
left-click.
A "Select Success Operation" menu appears.

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

Jitterbit Help Manual

Starting a Jitterbit Operation From Other Applications


An operation sources and targets together with one or more transformations. All operations
are executed by the Jitterbit Process Engine, a continuously running back-end process. It
checks the operation queue regularly and runs the operations in the order that they were
added to the queue.
There are several methods for adding an operation to the queue. It can be run on demand
in the UI using the "Run Now" button (the flash icon); or it can be run on a schedule by
assigning a schedule to it.
It is also possible to put an operation on the queue programmatically by one of the following
methods:
Call the Jitterbit web service method RunOperation.
You can call the web service at the url
http://server_name:46908/axis/konga_jobcontrol called "RunOperation".
The method takes three string arguments: The user name, password and the GUID of
the operation. The GUID of the operation can be found in the "Additional Details..."
menu option on the operation page. The user needs to have execute permission on
the given operation. This method is basically a programmatic way of doing a "Run
Now." "server_name" is the name or IP number of the machine running Jitterbit
Server. If you don't want to pass the password in clear text, you can call the method
RunOperationMD5Password which takes the MD5 hash of the password as an
argument. Click <here> to view the WSDL that describes the web service interface.
Implement a hosted web service.
Create a hosted web service and assign a success operation. The hosted web service
can then be called from any application that can call web services. This option can be
a little complicated since you need to generate a WSDL for what is basically a dummy
web service whose only purpose is to run another operation.
For details on implementing a hosted web service, click here.
Use an HTTP Endpoint.
Create a new HTTP Endpoint and specify a path for the endpoint URL. Click Add
Operation and browse for the operation you want to trigger. When the configured URL
is requested your operation will be triggered. You can communicate variables to and
from the operation by using the request body, HTTP headers, query strings and
response body. The operation can now be triggered by any application that can use
http.

220

Operations

Use the JitterbitUtils command


The JitterbitUtils command line program has an option for adding an operation to the
queue. Use the "--add-operation-to-queue" option and supply the operation GUID,
name or id: JitterbitUtils --add-operation-to-queue "My Operation" adds the "My
Operation" operation to the process queue.

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

Jitterbit Help Manual

Your chunk size depends on your use case (see above).


Enter a value larger than 1 in the Max number of threads box to enable parallel
processing.
For hierarchical sources, you also need to specify a Source chunk node. For
hierarchical targets, you need to specify a Target chunk node.
Click the Select button to browse for a suitable chunk node. The chunk node is the
repeating record (or loop node) that you want to base your chunk size on.
If you don't specify anything, the default is to use the highest repeating node.
For flat sources (targets) you don't need to specify anything and the chunk node will
be displayed as "-flat-".
Advanced Options
If the target is a database, the target data will first be written to several files (one
per chunk). These files will then be combined to one target file which will be sent to
the database for insert/update.
If you set the global data element jitterbit.target.db.commit_chunks to 1 or true,
each chunk will be committed to the database as they become available. This can
improve performance significantly if parallel processing is enabled since the database
insert/updates will be performed in parallel.

Exporting Source and Target Settings


There may be situations where you want the changes made to a particular source or target
to be applied to other sources and/or targets in your project. Examples:

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.

There are a couple of restrictions on exporting settings:

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.

Jitterbit Tips and Tricks


Dynamic XML Schema generation.
View Salesforce result files (success/failure).
New partner WSDL driven Salesforce wizards (inspired by the Jitterbit Data Loader
for Salesforce wizards). The Partner WSDL automatically loads, eliminating the need
to manually load an Enterprise WSDL.
Parallel processing: Jitterbit supports up to 25 concurrent threads for an operation.
On the Summary screen for your project, configure parallel processing in the

223

Jitterbit Help Manual

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.

New unary operators:


Prefix/postfix ++ for incrementing a number.
Prefix/postfix -- for decrementing a number.

Best Practice: Close mapping Trees before deployment


Jitterbit runs on the Java programming language. Java programs have a maximum limit for
use of computer memory. Be aware that Jitterbit mapping trees take up large amounts of
memory, as does the Jitterbit Deploy process. Especially when creating a large Jitterbit
project, you may reach the memory limit and receive an error message if you have several
mapping trees open and you deploy a new operation.
Best practice is to close all mapping trees before deploying. The memory used by the
mapping trees then becomes available once the trees have been closed.

224

Operations

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.

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

Choosing a Source Type


Select which type of source you want to create:
Database
File Share
FTP
HTTP

227

Jitterbit Help Manual

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.

Enabling Local File Sources


The first time you attempt to use a local file as a source, you may receive the following
error message:
The connection test failed.
Using local files as source/target is disabled by default.
Set EnableLocalFileLocation=true in the [Settings] section of 'C:\Program Files
(x86)\Jitterbit Integration Server\jitterbit.conf' and restart the Jitterbit Apache service
to enable it.
This occurs because, for security reasons, the ability to use a local file source is not enabled
by default.
Use the following procedure to enable local file targets in Jitterbit:
Go to the Administration console (View > Administration).
Click System Console.
If you are not logged in to any server already you will be prompted to do so.
Click the jitterbit.conf tab.
Edit the configuration file.
Click "Upload jitterbit.conf".
For the change to take effect, all Jitterbit services must be restarted. In the Windows
environment, all services will be automatically restarted when the upload button is
pressed.

Using File Type Sources and Targets


Jitterbit currently supports ftp, http(s) and SMB (file share on windows, samba on unix) file
transfer protocols for sources and targets.
Sources
Conceptually, a source is a collection of properties that uniquely specify what files to fetch
and use as input for a transformation that uses a file type format (xml or structured text).
The definition depends on the protocol but a source basically needs a locator, authentication
information and a file filter. Many sources can be fetched at the same time and processed
by the Jitterbit transformation engine.

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.

Username and Password


If your FTP server requires a username and password, you can specify in the Login field and
enter the password twice after clicking the Password button. The password is saved in the
source definition in clear text until you deploy the project to the Jitterbit server. Then it is
set to null in the client and stored encrypted on the server.
To change the password, enter the new password and deploy the project to the server.
Anonymous FTP servers usually require the username "ftp" or "anonymous" and your email
address as the password.

Get Files field


The "Get Files" field takes a file name or a file filter which accepts the wild-cards * (any 0 or
more characters) and ? (only one character). Some examples are:
*.* matches any file with a standard file extension.
*.??? matches any file with a 3 character file extension.
order-?.txt would match "order-1.txt" but not "order-12.txt".
order-*.txt matches both "order-1.txt" and "order-12.txt".

229

Jitterbit Help Manual

Rename File After Processing To field


The "Rename File After Processing To" field is optional and is used to rename the file after it
has been successfully processed. The file name accepts the following substitutions:
[date] is substituted with the current date in the format YYYY-Mon-DD.
[ext] is substituted with the file extension, if any.
[file] is substituted with the base file name (i.e. excluding the file extension, if any).
[time] is substituted with the current time in the format HHMMSS.
[unique] is substituted with a GUID which is a random unique identifier. This can be
used to construct a unique file name if there is a risk of file name conflicts.
Some examples:
"processed-[file]-[date]-[time].[ext]" would result in an input file "po.xml" being
renamed to "processed-po-2006-Jun-10-143428.xml" if the transformation was
successfully performed at 2:34.28 pm on June 10 2006.
If the input file has headers or footers that are not part of the text to be processed
the number of lines to ignore in the beginning or the end of the file can be specified
in the "Ignore First" and "Ignore Last" fields.

SMB (File Share/Samba)


The file share definition is similar to the FTP definition. 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 must start with "\\" but the final backslash is optional. The definition of the other
fields are the same as for FTP sources.

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.

Creating an FTP 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/modify
the new source.
You can start creating a new source in any of several ways:
Select New in the File menu, then choose New Source from the sub-menu; or

231

Jitterbit Help Manual

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

FTP has several security options:


None: This is the default option and it uses normal non-encrypted FTP. This option is
not secure since passwords are sent in clear text over the network. Use only in a
safe environment.
Try SSL: Try to initiate an SSL encrypted transfer, if that fails fall back to using nonencypted 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.
Click the Save button in either the main toolbar or the source's toolbar (or hit CtrlS).
(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 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
Export Source And Target Settings

.
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

Jitterbit Help Manual

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

Export Source And Target Settings

Creating a Database Source


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 source.
3. There are several ways you can start to create a new source:
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.
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 Databasefrom the Type dropdown menu.
7. 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.
8. Enter the database server name (either name or IP address) you want to access into
the Server Name field.
9. Enter the name of the database you want to access into the Database Name field.
10. 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.
11. (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.
12. (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.
13. (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.

235

Jitterbit Help Manual

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:

Setting Permissions for this Source


Using this Source in an Operation
Export Source And Target Settings
Manual connection string
.

Creating an HTTP Source


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 source.
3. 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.

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

6. Choose HTTP from the Type dropdown menu.


7. Enter a valid URL address in the URL field. 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://" 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. Choose one of the HTTP methods GET and POST. For a POST, an empty request is
posted to the URL and the response is used as the source. If you need to post data,
use an HTTP target instead.
10. (Optional) If you have headers and/or footers in your data, enter the number of lines
into the Ignore First and/or Ignore Last fields. The system will ignore these lines
in the source.
11. (Optional) Advanced options modify the HTTP headers that are being sent with the
request:
o

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.

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

Jitterbit Help Manual

Related topics:
Setting Permissions for this Source
Using this Source in an Operation
Export Source And Target Settings
About SSL Certificates

LDAP (Lightweight Directory Access Protocol)


Click to view Creating an LDAP Source.
LDAP (Lightweight Directory Access Protocol) is a protocol that allows you to search and
update a directory. It is supported by several directory servers (e.g., Microsoft Active
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.

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

Jitterbit Help Manual

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.

Creating an LDAP Source


Procedures
If you have not already done so, open the Integration tab by selecting Integration
from the View menu.

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

Creating a Temporary Storage Source


Temporary Storage is a built-in source/target type that can be used as a temporary
repository of files. A temporary storage location is referenced by a path which points to a
folder in a temporary directory on the local disk. By default, a sub directory of the OS
tempory folder will be used. This default can be changed in jitterbit.conf by setting

241

Jitterbit Help Manual


TemporaryStorageRootDirectory='absolute-path-to-existing-directory' under the
[OperationEngine] section.
If a file has been written to a temporary storage using a Temporary Storage target with a
particular path, the same file can be retrieved by a temporary storage source using the
same path.
By default the files in this temporary directory will be cleaned up by the Jitterbit cleanup
service. Typically the files will be available for about a day. This can be changed in the
configuration file for the Jitterbit cleanup service.
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 source.
3. 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.

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:

Setting Permissions for this Source


Using this Source in an Operation
Export Source And Target Settings

Using a Database as a Source of Data


When you select the option to use a database as a transformation data source, the Jitterbit
Integration Environment provides a wizard that steps you through the process. The wizard
defines one or more Select SQL statements to execute on the server via ODBC and fetch the
data. This is done via the following steps.
Search and Select Database Objects
Enables you to select the tables and views to fetch data from. You can search multiple times
and select multiple database objects (tables, views and synonyms) in a single
transformation.
Note: When searching objects, keep in mind that the search function is casesensitive.
If you have more than 500 objects in your database, search using a string to identify the
table that will be the search target. This helps prevent timeouts as it keeps the system from
attempting to fetch all objects. Some non-RDBMS ODBC drivers, such as MS Access and MS
FoxPro, do not support searches on objects. Because typically these types of databases do
not store many objects, you may search on all objects without entering a search criterion
for them.
Specify the number of times each object will be used in a SQL statement
This is similar to using a table multiple times in the "From" clause of a "Select" statement.
Depending on the number of database objects you have selected, the wizard will take you
through different steps from here.
If you only selected one object:
You will be prompted to enter the SQL Where clause if required. Type this using the
same syntax as the native SQL that the database expects. You can also include an
Order by clause in this section.

243

Jitterbit Help Manual

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 object key, which will be used in an update statement to identify


the record to update. The key does not need to be a database key.

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.

XML as Source and Target


Any Jitterbit supported-format can transform data to XML and XML to data. Before using
XML as a source or target, you need a DTD or XSD definition file that represents the XML
structure to be used.

Using XML as a Source

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.

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.

245

Jitterbit Help Manual

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.

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.

Testing Source Data


The primary function of the Transformation toolkit menu items (the "wrench") in the
transformation mapping window is to load actual data into the source and target trees. You
can then visually review the values to confirm that your transformation has been built
correctly.
To start testing, you first need to test your Source data by loading it into the Transformation
map screen's Source pane.
1. Click the wrench button in the Transformation toolbar, then select Load Source
Data from the dropdown menu. Your transformation and dependent items need to

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Enabling Local File Targets


The first time you attempt to use a local file as a target, you may receive the following error
message:
The connection test failed.
Using local files as source/target is disabled by default.
Set EnableLocalFileLocation=true in the [Settings] section of 'C:\Program Files
(x86)\Jitterbit Integration Server\jitterbit.conf' and restart the Jitterbit Apache service
to enable it.
This occurs because, for security reasons, the ability to use a local file target is not enabled
by default.
Use the following procedure to enable local file targets in Jitterbit:
Go to the Administration console (View > Administration).
Click System Console.
If you are not logged in to any server already you will be prompted to do so.
Click the jitterbit.conf tab.
Edit the configuration file.
Click "Upload jitterbit.conf".
For the change to take effect, all Jitterbit services must be restarted. In the Windows
environment, all services will be automatically restarted when the upload button is
pressed.

How to Create an FTP Target


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
target.
3. There are several ways you can start to create a new target:
1. Select New in the File menu, then choose New Target from the sub-menu; or

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.

15. FTP has several security options:


None: This is the default option and it uses normal non-encrypted FTP. This
option is not secure since passwords are sent in clear text over the network.
Use only in a safe environment.
251

Jitterbit Help Manual

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:

1. Setting Permissions for this Target


2. Using this Target in an Operation
3. Export Source And Target Settings

How to Create a FileShare Target


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 target.
3. There are several ways you can start to create a new target:

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:

Setting Permissions for this Target


Using This Target in an Operation
Export Source and Target Settings

How to Create a FileShare Target


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
target.
3. There are several ways you can start to create a new target:
1. Select New in the File menu, then choose New Target from the sub-menu; or
2. Click the down arrow next to the file icon in the toolbar, then choose New Target from
the sub-menu; or

253

Jitterbit Help Manual

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:

1. Setting Permissions for this Target


2. Using this Target in an Operation
3. Export Source And Target Settings

Creating a Database Target


Click to view Database Target Connections.
Click to view More About Database Targets
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
target.
There are several ways you can start to create a new target:
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.

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

Jitterbit Help Manual

Using a Database as a Target


When a transformation uses a database as its target the Jitterbit Integration Environment
steps you through a wizard that defines one or more Insert or Update SQL statements that
the server will execute via ODBC to manipulate data in the database. Database targets are
defined using the following steps:
Search and Select Database Objects
Lets you select the target tables and views for which data will be manipulated. You can
search multiple times and select multiple database objects (tables and views) in a
single transformation.
When searching objects please note that the search is case sensitive.
If you have over 500 objects in your database search using a string to identify the
table you need or the system may timeout in fetching all objects. Some non RDBMS
ODBC drivers do not support the ability to search on objects e.g. MS Access and MS
FoxPro. Typically these types of databases do not store many objects, so search on all
objects without entering a search criterion for them.

If you select one object


You will be prompted to 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.

If you select multiple objects


Specify the number of times each object will be used
In certain cases, you may need to use a table multiple times e.g. when inserting
into a company table, you source may include customer, supplier and partner.
Those are three different companies within one record in the source data. In this
case you would select to use the Company table 3 times.

You'll need to create the parent-child (one-many) relationships between


objects

Select parent tables and columns and child tables and columns to join by. This is
256

Targets

needed to enforce transactional integrity of an object as well as deriving the


foreign (parent) key for a child table.

Define the type of relationship between these objects.


This allows you to define 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

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

Jitterbit Help Manual

Database Target Connections


Database Target Connections
Click to view:
Creating a Database Target
Connecting to Oracle Using ODBC
Connecting to MSSQL
Connecting to MySQL
Connecting to MS Access
Connecting to MS FoxPro
Connecting to postgreSQL
See also:
Using a Database as a Source of Data

Connecting to Oracle via ODBC


When integrating with Oracle, you will first need to install the Oracle client (including the
Oracle ODBC driver) on the Jitterbit server.
Configuring and Testing Oracle
Once you have installed the Oracle client, configure Tnsnames.ora to reference the database
you are planning to use. This is standard Oracle client setup procedure.
After the Oracle client is set up on the Jitterbit server, test the server to ensure that Jitterbit
runs on has access to the database:
Connect to the server via SQL*Plus. If this is successful, the Oracle client should
operate correctly with Jitterbit.
Constructing the Connection String Manually
In the Jitterbit environment, when defining an Oracle database source or target, use the
option "Construct connection string manually" as Oracle references the database based on
the setting in Tnsnames.ora.
The connection string is: DRIVER=<select the driver name from the drop down list>;
Dbq=<database name reference in tnsnames.ora>;UID=<oracle userid>; e.g.,
DRIVER=Oracle in OraHome92;Dbq=mydb;UID=myuid;

258

Targets

Enter the password by clicking on the Password button.


Adding Your Driver Name to jitterbit.conf
Because of the many variations on the Oracle driver name, you may have to add your driver
name to jitterbit.conf (the server configuration file located in the Jitterbit Server install
directory). Follow these steps if your Oracle driver is not listed in jitterbit.conf:
Open jitterbit.conf in your favorite text editor.
Scroll towards the bottom of the file (under the [DbDrivers] section) and you should
see an entry such as:
# Oracle ODBC Driver
'Oracle ODBC Driver Quote Begin'='\"'
'Oracle ODBC Driver Quote End'='\"'
Copy, paste and edit this entry.
Replace Oracle ODBC Driver with the name of your driver that appears in your
source or target, e.g.,
#Oracle in OraClient10g_home2
'Oracle in OraClient10g_home2 Quote Begin'='\"'
'Oracle in OraClient10g_home2 Quote End'='\"'
Restart the Jitterbit Apache Server and the Jitterbit Process Engine services.
Refresh your driver setting on your source and target and then create a new
transformation.
Some versions of the Oracle driver (not the MS Oracle driver) may require one or more of
the following environment variables to be set. Examples:
ORACLE_HOME=/usr/local/oracle/10.2.0
TNS_ADMIN=/usr/local/oracle/10.2.0/network/admin
TWO_TASK=//dbdpmr:1555/pmrd1
On Linux, you may also have to add the Oracle lib directory to your PATH
(LD_LIBRARY_PATH). Add these to the /etc/sysconfig/jitterbit file. Some examples are
shown, but the exact paths will depend on your Oracle client installation:
LD_LIBRARY_PATH=/usr/local/oracle/lib
export ORACLE_HOME=/usr/local/oracle/10.2.0

259

Jitterbit Help Manual

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.

Defining the SQL Server Sources or Targets


When defining the SQL Server sources or targets in the Jitterbit Integration Environment,
enter connection parameters as provided in the source and target definition screens:
Select the Driver (typically "SQL Server" driver) from the list.
Enter the Server Name (name or IP address of server that runs the SQL Server that
Jitterbit needs to connect to). You may have to specify the SQL Server instance
name, e.g. HostName\InstanceName.
Enter the Database Name (Name of the database on the server that Jitterbit needs
to integrate to).
Enter the Login and Password for SQL Server authentication.
Windows Authentication
Windows authentication can only be used with one domain account. To use Windows
authentication with the SQL Server ODBC driver, do the following:
Open the Services Administrative tool (Start -> Administrative Tools -> Services).

Right-click on the Jitterbit Apache Server service and select properties.


Select the Log On tab.
Select Log on as: This account.
Enter the name of the domain account you want to use for authentication.
Alternatively you can browse for it.

260

Targets

Enter the password (twice) and click Apply.


Repeat for the Jitterbit Process Engine service.
In the database source/target definition screen, specify Driver (SQL Server [ODBC]),
Server Name and Database Name only (leave user name and password fields blank).
The driver will now authenticate as the Windows domain user specified above.
Grant the domain user a privilege of "Log on as a service" and "Act as part of the
operating system". Also make sure the domain user has read and write rights on the
Jitterbit install directory.

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.

Connecting to MySQL for ODBC and JDBC Drivers


Once the driver is installed, the definition of MySQL database sources and targets in the
Jitterbit Integration Environment is as follows:
Select the Driver (typically called "MySQL ODBC 3.51 Driver" for ODBC, and "MySql"
for JDBC).
Enter the Server Name (name or IP address of the database server).
Enter the Database Name (Name of the catalog Jitterbit needs to access).
Enter Login and Password (user credentials for Jitterbit to access the database with).
Test the connection to be sure the configuration is correct.
Once the MySQL driver is installed on the same machine as the Jitterbit server, click
the Refresh button to refresh the driver list in the Jitterbit client to see all the new
drivers available.
If the driver does not display in the driver list, go into ODBC manager on the server
to see if the driver is visible. Check to see if the driver is listed in the Data Sources
(ODBC) Windows applet (under Administrative Tools).

261

Jitterbit Help Manual

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.

Securing/Encrypting the Connection


Securing the connection between a source/target and the Jitterbit Server depends on the
ODBC driver being used. The standard MySQL ODBC driver does not use encryption. The
best way to enable such encryption is by tunneling the connection through SSH.

Connecting to Microsoft Access


Connecting to Microsoft Access is only available on a Jitterbit Server installed on Windows.
The Microsoft Access ODBC driver is typically installed as part of Windows.
When defining the MS Access sources or targets in the Jitterbit Integration Environment,
use the option "Construct connection string manually" with the following format:
DRIVER=<select the driver name from the drop down list>
Dbq=<\\path\name.mdb>;UID=<userid>;pwd=<pwd>
Example:
DRIVER=Microsoft Access Driver *.mdb);DBQ=\\server\share\myDB.mdb;UID=;PWD=;

262

Targets

Selecting Database Objects for Search


When creating a transformation using Microsoft Access as a source or target in the Jitterbit
Integration Environment, you are prompted to select database objects early in the wizard.
The MS Access ODBC driver does not support searching objects. Do not enter criteria into
the search string, as it will not produce results.
Connecting to Microsoft FoxPro
Connecting to Microsoft FoxPro is only available on a Jitterbit Server installed on Windows.
The Microsoft FoxPro ODBC driver is typically installed as part of Windows.
When defining the MS FoxPro sources or targets in the Jitterbit Integration Environment,
use the option "Construct connection string manually" with the following format:
DRIVER=<Name of FoxPro driver as it appear in list>
SourceType=DBF
SourceDB=<path of db files>
UID=<userid>;pwd=<pwd>
For example:
Driver=Microsoft dBase VFP Driver
(*.dbf);SourceType=DBF;SourceDB=C:\data;UID=user;PWD=mypwd

Selecting Database Objects for Search


When creating a transformation using Microsoft FoxPro as a source or target in the Jitterbit
Integration Environment, you are prompted to select database objects early in the wizard.
The MS FoxPro ODBC driver does not support searching objects. Do not enter criteria into
the search string, as it will not produce results.

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

Jitterbit Help Manual

Enter the Server Name (name or IP address of the database server)


Enter the Database Name (Name of the database Jitterbit needs to access)
Enter Login and Password (user credentials for Jitterbit to access the database with).

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.

Storing/Redirecting an HTTP Response


Since Web servers respond to posts/requests (such as a request to get a text data file), this
"response" from the Web server (e.g., the data file) can be treated as a target.
The optional Target Location for Results drop-down menu is used to select a pre-defined
target that will receive whatever data file that is contained in the Web server's response.
Note: because this target definition will receive its data from a Web server, the only
appropriate types of target definitions are FTP and File Share.

LDAP (Lightweight Directory Access Protocol)


Click to view Creating an LDAP Source.
LDAP (Lightweight Directory Access Protocol) is a protocol that allows you to search and
update a directory. It is supported by several directory servers (e.g., Microsoft Active
264

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

Jitterbit Help Manual

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)
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()

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.

LDAP Target Definition


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 target.
3. There are several ways you can start to create a new target:
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.

267

Jitterbit Help Manual

6. Choose LDAP from the Type dropdown menu.


7. Enter the name of the LDAP server you want access.
8. (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.
9. 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.
10. (Optional) If you only wish to access the LDAP target stating from a particular path,
you can also supply a Base Distinguished Name. This will be the starting point
when accessing the LDAP target for data when this target definition is used in an
LDAP transformation.
11. (Optional) Choose the appropriate connection security mode.
12. Click the Save button in either the main toolbar or the target's toolbar.
Related topics:

Setting Permissions for this Target


Using this Target in an Operation
Export Source and Target Settings

HTTP Target Definition


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 target.
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 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

Jitterbit Help Manual

$jitterbit.target.http.form_data: If set to true each target file is uploaded using RFC


1687 form upload.
$jitterbit.target.http.form_data.name: If RFC 1687 form upload is used this sets the
name of the form.
$jitterbit.target.http.form_data.filename: If RFC 1687 form upload is used this sets
the name of the uploaded file.
$jitterbit.target.http.form_data.ContentType: If RFC 1687 form upload is used this
sets the Content-Type of the file.
$jitterbit.target.http.remove_trailing_linebreaks: If set to true, trailing line breaks
will be removed before the target data is posted. This is useful when posting form
data generated by a transformation.
Related topics:
Setting Permissions for this Target
Using this Target in an Operation
Export Source And Target Settings
About SSL Certificates

How to Create a Temporary Storage Target


Temporary Storage is a built-in source/target type that can be used as a temporary
repository of files. A temporary storage location is referenced by a path which points to a
folder in a temporary directory on the local disk. By default, a sub directory of the OS
tempory folder will be used. This default can be changed in jitterbit.conf by setting
TemporaryStorageRootDirectory='absolute-path-to-existing-directory' under the
[OperationEngine] section.
If a file has been written to a temporary storage using a Temporary Storage target with a
particular path, the same file can be retrieved by a temporary storage source using the
same path.
By default the files in this temporary directory will be cleaned up by the Jitterbit cleanup
service. Typically the files will be available for about a day. This can be changed in the
configuration file for the Jitterbit cleanup service.
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 target.

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:

Setting Permissions for this Target


Using this Target in an Operation
Export Source And Target Settings

XML as Source and Target


Any Jitterbit supported-format can transform data to XML and XML to data. Before using
XML as a source or target, you need a DTD or XSD definition file that represents the XML
structure to be used.
Using XML as a Source
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.

271

Jitterbit Help Manual

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.

Export Source And Target Settings


In some situations, you may want the changes made to a particular source or target to be
applied to other sources and/or targets in your project. Here are a couple of examples:
1. 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.
2. 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.
There are a couple of restrictions on exporting settings:
1. 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.
2. All settings are not available for export. The following list shows what settings are
exportable for each source and target type:
1. Database: Driver, Server, Database, Login, Password, Additional Paramters, Manual
Connection String
2. Fileshare: Path, Login, Password
3. FTP: Host, Port, Path, Login, Password
4. HTTP: URL, Login, Password
5. 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.
273

Jitterbit Help Manual

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

Web Service Requests

Web Service Request

Databases

Web Service Response Databases

Text

Text

XML

XML

Web Service Requests

Web Service Request

Creating LDAP Transformations Creating LDAP


Transformations

Creating LDAP
Transformations

EDI

275

Jitterbit Help Manual

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

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

Text

Text

XML

XML

Web Service Requests

Web Service Request

Databases
Text

276

Web Service Response Databases


Text

Transformations

LDAP

XML

XML

Web Service Requests

Web Service Request

Creating LDAP Transformations Creating LDAP


Transformations

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

Data Transformation Types


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

277

Jitterbit Help Manual

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
How To Transform from an XML Document to a Text File
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 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:

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

Transformations

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 dropdown menu and "Text" from the Target
dropdown menu.
3. Click the Next button in the toolbar to continue.
(Back to top)
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
Select Target Information (Text)
1. In the next screen of the Transformation Wizard, select an existing document
definition that you want to hold the transformed text from the Text Document
Definition dropdown menu, or click the control button to the right of the field to
create a new document definition.
2. Click Save to save your work and exit out of the Transformation Wizard.
(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

279

Jitterbit Help Manual


Data Normalization in Jitterbit
Jitterbit can transform a flat text or database to a hierarchical target. This type of
transformation requires an extra step before transformation to convert from a flat to a
hierarchical source. This extra step is necessary so that the source can be normalized.
The structure of the hierarchical source is similar to the target structure. From the target
structure, the root element and all of the multiple-instance elements under the root are
used to create the structure of the secondary source elements. The attributes (or fields) of
these secondary source element are the flat data elements that are used in the mappings of
the corresponding target element.
With the source structure defined, the normalization process is reduced to combining nodes
with the same parents.
There are three options for normalization:
1. Complete normalization: All the elements with the same parent and all the fields are
reduced to one element. (This is the default.)
2. Partial normalization: The same as above, except the lowest children.
3. No normalization: Each flat record creates a branch of elements; no reduction of
elements are done when creating hierarchical source.
It is possible for the hierarchical structure to contain a single instance node. In this case we
will only keep the first element for this root and the flat records that have conflict with this
root data node will be ignored.
Synchronizing Data via Jitterbit Diff
The Jitterbit diff/synchronize feature can be used for transformations from a single database
table or a flat CSV file to any kind of target. Hierarchical source table relations are not
supported. The source table needs to have a set of keys that uniquely identifies a data row.
The diff feature is used to split the source data into three categories:
Inserted rows
Updated rows
Deleted rows
The first time the diff operation runs, all the source rows will be classified as inserted. In
each subsequent run only created/changed/deleted rows will be processed by Jitterbit. This
can save a lot of processing time in case the source table has many records but does not
change very often.
A "diff operation" will almost always consist of several chained operations, each handling
inserts, updates and deletes respectively.
These are the steps for setting up a diff operation:
280

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

Jitterbit Help Manual

See the documentation of the diff functions in the built-in client help for more information
on the functions.

Data Transformation How-Tos


Mapping Flat to Hierarchical Structures (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
Source Document Structure: The source document is a text file. Click here to
review its structure.
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 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.
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:

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.

Add Extra Folders


The remaining source data elements, Color, Weight, and Cost, will each require their own
copy of the target folder.
1. Select the name of the folder you want to duplicate (in this case, instockitem).
2. Click the Multiple button. In this example, it is the attribute folder under the
instockitem folder.

283

Jitterbit Help Manual

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.

Define Associated Attribute Codes


Each of the data elements you mapped to the multiple occurrences of the
folders needs to have its corresponding attributecode data element defined
correctly:
1. Select the attributecode folders value data element ([V]) in attributecodes
attribute folder within instockitem#1.
2. Click the Formula button to launch the Formula Builder.

285

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Map the Cost Attribute


To get the Cost attribute, map the attributevalue element of the attribute tag to the
Cost field of the target. Since there can be more than one attribute code/value entry under
the attribute tag, you must specify which attribute will map to the target's Cost field.
Thus, you must define which exact attribute to use for the Cost field. In this example, it is
the cost attribute code.
Caution: The data elements from the source that are candidates must be data elements
that are at the same level as the mapped data element, which means that it can only be
attributecode. Using any other level above or below this would not make sense.
Now that we know what the options are, we need a way to define it. In this example, it
would be to identify that we wanted the attributevalue where the attributecode is equal
to Cost. It may also be that attributes are delivered in a certain order, and that their
position determines the correct attribute instance.
Follow these steps to map Cost correctly:
1. Select the [V] under the attributevalue element in the source pane.
2. Click on Cost in the target pane.
3. Click the Map icon.
4. Click on the Formula icon to display the Formula Builder.

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.

8. You now need to correctly configure the functions parameters:


a. 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 "COST", replacing the <arg>
in the expression.
b. This parameter provides the code used in the source data element. Making sure the
expressions second <arg> is highlighted, replace it by double-clicking the
attributecodes [V] data element.

289

Jitterbit Help Manual

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.

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:
Itemnumber Quantity Color Weight

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

Jitterbit Help Manual


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 sources itemquantity data element to the targets WH123 data element.
3. WH123s data needs to be qualified. Select the targets 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.

292

Transformations

7. You now need to correctly configure the functions parameters:


a. 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.
b. This parameter provides the code used in the source data element. Making sure
the expressions second <arg> is highlighted, replace it by double-clicking the
attributecodes [V] data element.
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.
8. Compare your expression with the figure below, then click OK to close the window
when you are finished.

293

Jitterbit Help Manual

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.

Mapping Flat to Hierarchical Target


Sample 3 Target Document Structure
This flat-to-hierarchical transformation's target document is hierarchical, with at least one
header row and multiple detail rows that are assigned to the header row. The structure is
shown below:
<!ELEMENT inventory (snapshotinfo, warehouse+)>
<!ELEMENT snapshotinfo (snapshotdate, snapshotuser, snapshotsource)>
<!ELEMENT snapshotdate (#PCDATA)>
<!ELEMENT snapshotuser (#PCDATA)>
<!ELEMENT snapshotsource (#PCDATA)>

294

Transformations

<!ELEMENT warehouse (warehouseinfo, instockitem+)>


<!ELEMENT warehouseinfo (warehousecode, warehousestate)>
<!ELEMENT warehousecode (#PCDATA)>
<!ELEMENT warehousestate (#PCDATA)>

<!ELEMENT instockitem (itemnumber, itemquantity, attribute*)>


<!ELEMENT itemnumber (#PCDATA)>
<!ELEMENT itemquantity (#PCDATA)>
<!ELEMENT attribute (attributecode, attributevalue)>
<!ELEMENT attributecode (#PCDATA)>
<!ELEMENT attributevalue (#PCDATA)>
Sample 3 Target Document Structure
The target document structure for this flat-to-hierarchical transformation is an XML
document. The following data represents the desired result of this sample transformation.
<?xml version="1.0"?>
<inventory>
<snapshotinfo>
<snapshotdate>2/1/2001</snapshotdate>
<snapshotuser>manager1</snapshotuser>
<snapshotsource>batchjob</snapshotsource>
</snapshotinfo>
<warehouse>
<warehousecode>WH123</warehousecode>
<warehousestate>WA</warehousestate>
</warehouse>
<warehouse>
<warehousecode>WH456</warehousecode>

295

Jitterbit Help Manual

<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

Jitterbit Help Manual

<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

Transforming from a Text File to a Web Service Request


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.

299

Jitterbit Help Manual

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Text" from the Source and "Web Service Request" from the Target
dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select Source Text Information


1. In the next screen of the Transformation Wizard, select the document you want to
use as a source from the Text Document Definition dropdown menu, or click the
control button to the right of the field to create a new definition.
2. Click the Next button in the toolbar to continue.

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.

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

Jitterbit Help Manual

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Text" from the Source and "XML" from the Target dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select Source Text Information


1. In the next screen of the Transformation Wizard, select the document you want to
use as a source from the Text Document Definition dropdown menu, or click the
control button to the right of the field to create a new definition.
2. Click the Next button in the toolbar to continue.

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

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Text" from both the Source and Target dropdown menus.
3. Click the Next button in the toolbar to continue.

303

Jitterbit Help Manual

(Back to top)

Select Source Text Information


1. In the next screen of the Transformation Wizard, select the document you want to
use as a source from the Text Document Definition dropdown menu, or click the
control button to the right of the field to create a new definition.
2. Click the Next button in the toolbar to continue.

Select Text Target Information


1. In the next screen of the Transformation Wizard, select the document definition that
you want to hold the transformed text from the Select a Document dropdown
menu, or click the control button to the right of the field to create a new definition.
2. Click Save to save your work and exit out of the Transformation Wizard.
(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 Text File to a Database


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.

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Text" from the Source and "Database" from the Target dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select Source Text Information


1. In the next screen of the Transformation Wizard, select the document you want to
use as a source from the Text Document Definition dropdown menu, or click the
control button to the right of the field to create a new definition.
2. Click the Next button in the toolbar to continue.

Select Database Target Information


1. Select the name of the data target that you defined as your Target Definition from
the Database Target dropdown menu, or click the control button to the right of the
field to create a new target database.
2. Click the Next button in the toolbar to continue.

305

Jitterbit Help Manual

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

How to Transform from a Database to a Web Service Request


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:

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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)

Select Source Database Information


1. In the next screen of the Transformation Wizard, select the name of the source that
holds the database information you want to transform from the Database Source
dropdown menu, or click the control button to the right of the field to create a new
source database.
2. Click the Next button in the toolbar to continue.
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:
1. Only a single table in the source database will be accessed
2. More than one table in the source database will be accessed
(Back to top)

307

Jitterbit Help Manual


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 a Database 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:
Required 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.

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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)

Select Source Database Information


1. In the next screen of the Transformation Wizard, select the name of the source that
holds the database information you want to transform from the Database Source
dropdown menu, or click the control button to the right of the field to create a new
source database.
2. Click the Next button in the toolbar to continue.

309

Jitterbit Help Manual

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)

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
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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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)

Select Source Database Information


1. In the next screen of the Transformation Wizard, select the name of the source that
holds the database information you want to transform from the Database Source
dropdown menu, or click the control button to the right of the field to create a new
source database.
2. Click the Next button in the toolbar to continue.
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)

311

Jitterbit Help Manual


Select Text Target Information
1. In the next screen of the Transformation Wizard, select the document definition that
you want to hold the transformed text from the Select a Document dropdown
menu, or click the control button to the right of the field to create a new definition.
2. Click Save to save your work and exit out of the Transformation Wizard.
(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.

Note on Flat-to-Flat Transformations


You can create a transformation from a flat database source to a flat database or flat text
target. You can afterwards update the source (whereas normally in transformations the
target is updated); but be aware that you must hard-code any to updates to the source.
Note that in such a transformation the target, as well as the source, must also be flat.

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 both the Source and Target dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select Database Source Information


1. In the next screen of the Transformation Wizard, select the name of the source that
holds the database information you want to transform from the Data Source
dropdown menu, or click the control button to the right of the field to create a new
source database.
2. Click the Next button in the toolbar to continue.
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
Note on Flat-to-Flat Transformations
You can create a transformation from a flat database source to a flat database or flat text
target. You can afterwards update the source (whereas normally in transformations the
target is updated); but be aware that you must hard-code any updates to the source.
Note that in such a transformation the target, as well as the source, must also be flat.

313

Jitterbit Help Manual

How To Transform from an XML Document to a Text File


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 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.

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 dropdown menu and "Text" from the Target
dropdown menu.
3. Click the Next button in the toolbar to continue.
(Back to top)

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

Select Target Information (Text)


1. In the next screen of the Transformation Wizard, select an existing document
definition that you want to hold the transformed text from the Text Document
Definition dropdown menu, or click the control button to the right of the field to
create a new document definition.
2. Click Save to save your work and exit out of the Transformation Wizard.
(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

Transforming from an XML Document to a Web Service Request


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 environment by selecting
Integration from the View menu.

315

Jitterbit Help Manual

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Web Service Request" from the Target
dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select XML Source 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 available on the server
You are using an XML document whose definition has not yet been deployed to the
server
(Back to top)

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

Jitterbit Help Manual

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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)

Select XML Source 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 available on the server
You are using an XML document whose definition has not yet been deployed to the
server
(Back to top)

Select Database Target Information


1. Select the name of the data target that you defined as your Target Definition from
the Database Target dropdown menu, or click the control button to the right of the
field to create a new target database.
2. Click the Next button in the toolbar to continue.
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)

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

Jitterbit Help Manual


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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 both the Source and Target dropdown menus.
3. Click the Next button in the toolbar to continue.
(Back to top)

Select XML Source 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 available on the server
You are using an XML document whose definition has not yet been deployed to the
server

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

Transforming from a Web Service Response to a Database


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

321

Jitterbit Help Manual

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

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 "Web Service Response" from the Source dropdown list and "Database" from
the Target dropdown list.
3. Click the Next button in the toolbar to continue.
(Back to top)
Select Web Service Source Information
1. In the next screen of the Transformation Wizard, select the name of the Web Service
Call that you want to use 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 the Next button in the toolbar to continue.
Select Database Target Information
1. Select the name of the data target that you defined as your Target Definition from
the Database Target dropdown menu, or click the control button to the right of the
field to create a new target database.
2. Click the Next button in the toolbar to continue.
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.

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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.

323

Jitterbit Help Manual

Specify Source and Target Types


1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "Web Service Response" 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)

Select Web Service Source Information


1. In the next screen of the Transformation Wizard, select the name of the Web Service
Call that you want to use 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 the Next button in the toolbar to continue.
Select Text Target Information
1. In the next screen of the Transformation Wizard, select the document definition that
you want to hold the transformed text from the Select a Document dropdown
menu, or click the control button to the right of the field to create a new definition.
2. Click Save to save your work and exit out of the Transformation Wizard.
(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
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

Right-click on Transformations in the hierarchical tree in the Integration tab in


the left pane of the screen, then choose New Transformation from the
popup menu.

4. The transformation wizard appears in its own New Transformation tab in the right
pane of the window.

325

Jitterbit Help Manual


Specify Source and Target Types
1. Enter an appropriate name for your new transformation in the Transformation
Name field.
2. Select "Web Service Response" 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)

Select Web Service Source Information


1. In the next screen of the Transformation Wizard, select the name of the Web Service
Call that you want to use 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 the Next button in the toolbar to continue.

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

326

Transformations

Create a Web Service Method

Transforming Data from and to LDAP


After defining your LDAP source and target, you need to identify the specific LDAP data
required from a directory service, or, if updating LDAP, the class objects to updated.
With the transformation wizard, you can choose LDAP source and target structures.
Transformations can be defined from LDAP source structures to any other supported target
and from any supported Source Structure to LDAP target.
In most cases you will probably choose LDAP as a source or target and another type of
structure that you wish to integrate with LDAP.
In the transformation wizard, create a new transformation and choose LDAP as the source
and target structure:
Select the LDAP source which you previously defined so that Jitterbit can expose the objects
available to you based on the objects available in your LDAP server:
Next, the wizard to let you view all the classes available in that LDAP Server. If you are
using Active Directory, you will probably see many different types of classes listed. Jitterbit
provides a Search for capability to narrow down you object search:
Example: Choose User the object classes from which to get data. Jitterbit lets you select
from among attributes of the source. This saves the user from having to manipulate large
tree data structures during transformation. Attributes may come from the root class or an
auxiliary class related to the root. E.g., to access exchange mailbox information you will
need to access the MailRecipient auxiliary class and select the attributes of interest from
that class. To select an auxiliary class, right-click on the root class "user" and select the
auxiliary classes. This will list all associated auxiliary classes and when you select the ones
you are interested in then their attributes will become available.
Once you have selected all the desired attributes, for the LDAP source you can define a Base
Distinguished Name path to start the query from. If you have entered this into the LDAP
Source definition, then you do not need to enter anything here; however, if you have not
and you need to start querying at a particular path then you can enter it here.
Defining the LDAP Target takes the user through an identical journey except LDAP as a
target does not include the ability to specify an LDAP Filter as that would not apply to
targets.
After defining your structures through the transformation wizard Jitterbit will display the
LDAP source and target structures and you are ready to start Mapping.

327

Jitterbit Help Manual

Advanced Options
Dynamic XML Schema Generation
You can create an XML schema from an existing XML data file.
Open a new Transformation wizard:

Type a name for the project.


Select "XML" from the Source dropdown.
Select "Database" from the Target dropdown.
Click Next. The first Source screen appears.

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

Jitterbit Help Manual

(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.

How to Create a Schedule


Control Data Element Display
Data Normalization
Work with Conditional Output
Transforming hierarchical to flat structures
Transforming flat to hierarchical structures
Multiple Occurrence of Source Loop Node
Streaming and Batch Transformations
Synchronizing Data via Jitterbit Diff
Using LDAP Soures and Targets
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.
How to Create a Schedule
Control Data Element Display
Data Normalization
Work with Conditional Output

330

Transformations

Transforming hierarchical to flat structures


Transforming flat to hierarchical structures
Multiple Occurrence of Source Loop Node
Streaming and Batch Transformations
Synchronizing Data via Jitterbit Diff
Using LDAP Soures and Targets
Control Data Element Display
To help simplify the display, you can use the Show Only Data tool to hide all the data
elements that do not have any value associated with them.
1. Click the
button in the Transformation toolbar, select Show only data, then
choose any combination of the Source Tree and/or Target Tree sub-menu options.
2. Depending on your filter setting, the hierarchical tree that displays the Source and
Target data elements will show/hide elements that do not contain any content.
3. To return back to the default state that displays all data elements, deselect both
items in the Show only data's sub-menu.
Transformation Mapping Symbols and Colors
When mapping a Transformation, different symbols and colors are displayed. Each symbol
has a specific meaning, as described below:

E - Required element (one and only one)


E? - Optional element (zero or one)
E+ - At least one element (1 to N)
E* - Any number of elements (0 to N)
Red Nodes
During mapping, a red node color may display, indicating the node has to be mapped to or
the target will not be valid. For example, a non-null database target column is not mapped
to, or a required attribute for an "E" element has not been mapped to.

To delete an optional node (E.g., E? or E*), create a condition on the node and configure it
as false.

331

Jitterbit Help Manual

Data Normalization in Jitterbit


Jitterbit can transform a flat text or database to a hierarchical target. This type of
transformation requires an extra step before transformation to convert from a flat to a
hierarchical source. This extra step is necessary so that the source can be normalized.
The structure of the hierarchical source is similar to the target structure. From the target
structure, the root element and all of the multiple-instance elements under the root are
used to create the structure of the secondary source elements. The attributes (or fields) of
these secondary source element are the flat data elements that are used in the mappings of
the corresponding target element.
With the source structure defined, the normalization process is reduced to combining nodes
with the same parents.
There are three options for normalization:
1. Complete normalization: All the elements with the same parent and all the fields are
reduced to one element. (This is the default.)
2. Partial normalization: The same as above, except the lowest children.
3. No normalization: Each flat record creates a branch of elements; no reduction of
elements are done when creating hierarchical source.
It is possible for the hierarchical structure to contain a single instance node. In this case we
will only keep the first element for this root and the flat records that have conflict with this
root data node will be ignored.
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 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

Jitterbit Help Manual

DEF-456

75

Map the Cost Attribute


To get the Cost attribute, map the attributevalue element of the attribute tag to the Cost field of
the target. Since there can be more than one attribute code/value entry under the attribute tag,
you must specify which attribute will map to the target's Cost field. Thus, you must define which
exact attribute to use for the Cost field. In this example, it is the cost attribute code.
Caution: The data elements from the source that are candidates must be data elements that are
at the same level as the mapped data element, which means that it can only be attributecode.
Using any other level above or below this would not make sense.
Now that we know what the options are, we need a way to define it. In this example, it would be
to identify that we wanted the attributevalue where the attributecode is equal to Cost. It may also
be that attributes are delivered in a certain order, and that their position determines the correct
attribute instance.
Follow these steps to map Cost correctly:
1. Select the [V] under the attributevalue element in the source pane.
2. Click on Cost in the target pane.
3. Click the Map icon.
4. Click on the Formula icon to display the Formula Builder.
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.
8. 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 "COST", 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.

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

8. 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.
9. Source Document Data: This file contains sample data that mirrors the DTD file's
structure Click here to review the source data.
10. 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. ClickSample 2 Target Document here to review the
target file's structure.
335

Jitterbit Help Manual

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

Jitterbit Help Manual

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

7. Select Color in the Source pane.


8. Toggle open instockitem#1, then open the attribute folder, and finally select the
attributevalue folder's value data element ([V]).
9. Click the Map button to map this relationship.
Repeat these steps for the source Weight and Cost data elements, mapping them to the
instockitem#2's and instockitem#3's respective attributevalues [V]. Compare your work to the
figure below.
Define Associated Attribute Codes
Each of the data elements you mapped to the multiple occurrences of the folders needs to have
its corresponding attributecode data element defined correctly:

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

Jitterbit Help Manual

Click on the folder to which the condition will apply.

Click on the Multiple button in the toolbar to bring up the Mapping Options dialog.

Select the Enable Conditions on current Folder radio button.


Click OK to dismiss the dialog.
The folder you selected will now display a new Condition data element.
Apply a Formula to the Condition
You now have a condition applied to your target. But for it to be operational, you must apply a
formula to it.
5. Select the condition.
6. Click the Formula button to launch the Formula Builder.
3. Create the expression that is appropriate for your condition with a combination of
formulas, values of source data elements, and mathematic operators (see the figure
below).
Related topics:
3. Advanced Transformation Overview
4. Transformation Mapping
Streaming and Batch Transformations
To limit the amount of memory a Jitterbit transformation uses, two features are available:
streaming and batch transformations.
Streaming Transformation
A "streaming" transformation loads one record at a time into memory, performs the
transformation of the record and writes the target to disk. This minimizes the amount of
memory that is used during the transformation to what is needed to transform one record.
Streaming is automatically applied to transformations fulfilling the following requirements:
The source and the target are both flat structures (e.g. one database table or a CSV
file).
The source is XML and the target is flat and the following applies:
o

340

No instance resolving functions are used (FindByPos, FindValue, Sum etc).

Transformations

Streaming has not been disabled in jitterbit.conf (by setting


AutoStreaming=0).

Streaming has not been disabled by setting the global data element
$jitterbit.transformation.auto_streaming to 0 or false.

No other action is needed from the user.


Some examples of transformation types that will automatically use streaming are:
CSV to CSV
Single table to singel table.
Single table to CSV.
CSV to single table.
Simple XML to flat structures.
Batch Transformation
In transformations where streaming transformation is not applicable, the entire source will
be read into memory and the transformation will be performed in memory. This is the most
efficient way of doing it but it could lead to out-of-memory errors if the source is very big.
In these cases batch transformation or chunking must be used.
Click here for information about chunking.
Batch transformation is similar to streaming but it processes several source records at a
time (in "batches") and has less limitations than streaming. It can be used in cases where
streaming is not automatically used so it applies only to hierarchical sources e.g. several
database tables with one or more parent-child relationship or hierarchical text structures.
Batch transformation is enabled for a transformation by right clicking on the source batch
node and selecting "Define batch transformation...".
Enter the batch size in the "Define batch node" dialog that is presented. This tells Jitterbit
how many records should be read into memory in each batch. Don't choose a batch size
that is too small since that will slow the transformation. But make sure all the source and
target data for one batch can comfortably fit in available RAM.
If you have a situation where memory use is a problem and streaming or batch
transformation are not applicable you may be able to use chunking instead. For very big
XML sources and targets, chunking is your only option.
Some examples where you can use batch transformation in case the source is very large:
Hierarchical database to CSV or a single table.
Hierarchical database to hierarchical text/database.

341

Jitterbit Help Manual

Hierarchical text to CSV or a single table.


Hierarchical text to hierarchical text/database.
From the perspective of the transformation a SOAP web service request/response
corresponds to an XML target/source; therefore, the same limitations apply.
Synchronizing Data via Jitterbit Diff
The Jitterbit diff/synchronize feature can be used for transformations from a single database
table or a flat CSV file to any kind of target. Hierarchical source table relations are not
supported. The source table needs to have a set of keys that uniquely identifies a data row.
The diff feature is used to split the source data into three categories:
Inserted rows
Updated rows
Deleted rows
The first time the diff operation runs, all the source rows will be classified as inserted. In
each subsequent run only created/changed/deleted rows will be processed by Jitterbit. This
can save a lot of processing time in case the source table has many records but does not
change very often.
A "diff operation" will almost always consist of several chained operations, each handling
inserts, updates and deletes respectively.
These are the steps for setting up a diff operation:
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");

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.

Using LDAP Sources and Targets


LDAP as a Source
Mapping from an LDAP Source is similar to mapping from XML, Database or any other type
of source in Jitterbit. You can drag and drop from source attributes to the target. You can
use conditions, multiple folders, any transformation function etc.

343

Jitterbit Help Manual

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

Jitterbit Help Manual

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.

Resolving a Multiple Occurrence Conflict of Mapping Error


Defining the mapping so that the generated target loop node depends on more than one
source loop node results in a conflict of mapping error. To resolve this error, check the
structure definition. If all the nodes are defined as "ZERO or MORE," this would indicate a
possible mislabeling of the multiplicities. If the conflict still exists after correctly defining the
structure, resolve the conflict by using the instance resolving functions. To see this function
under the "Instance" branch, click here.

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

Jitterbit Help Manual

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

You must check the "Validate" box to activate the dialogue.


Complete the Rules fields as follows:
Not Empty

Check if an empty field is not allow. Leave unchecked if an empty field is


permissible.

Length

You may optionally specify a length (number of characters) for the field.

Ignore
case

Check if you want Jitterbit to 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

Jitterbit Help Manual

Click the dropdown to select a validation operator. Options are:


<

Less than

<= Less than or equal to

Validation

>

Greater than

Equal to

!=

Not equal to

Between Between two values. With this selection, two windows,


separated by "and," open to the right of the dropdown.
Not Between
values.

The value does not fall between two other validation

Regex The validation is a regular expression.


Script This selection activates a dropdown where you may select an
existing script or create a new one. If you select an existing script, an
optional Edit button is activated. If you select the option to create a new
script, a New Script dialogue is activated.
The dropdown on the bottom of the dialogue allows you to define what action Jitterbit
should take if the field does not pass the validation rules you have specified. Options are:
Skip row.
Use default value.
Skip field.
Raise error.

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 desired element in the Source pane.


Select the corresponding target data element in the Target pane.
Click the Map button to save their mapped relationship. To use the Map
shortcut, select the source data element, then double-click the target data element.
This will automatically map the relationship.
The mapped relationship appears in the Map table beneath the Transformation
toolbar.
(Optional) If you need to manipulate the value of the source data element relative to
the target data element (e.g., convert US dollars to Euros), click the Formula
button to launch the Formula Builder.
Click the Save button in either the main toolbar or the transformation's toolbar.
What's Next?
After mapping the relationship between your source and target elements, you can:
Load this transformation into an operation.
Resolve Errors
How to Test a Transformation
Work with Conditional Mapping
Map Hierarchical to Flat
Map Flat to Hierarchical

Using the Formula Builder


You can manipulate any fields value during the transformation by using the Formula
Builder. With the Formula Builder, you can use mathematical operators, concatenate text
strings, or use formulas to perform more sophisticated functions.

1. Launch the Formula Builder in one of two ways:

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Right-click on Web Service Methods in the hierarchical tree in the Interchange


tab in the left pane of the screen, then choose New Web Service Method from
the pop-up menu.

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

Jitterbit Help Manual


Setting Security and Restrictions
The last screen of the Web Services Wizard is optional. It displays "enter user ID
information" if the web service requires authentication. This screen also lets you provide
access limit details (i.e., call delay and/or max data) if the web service sets such limits.
Enter the appropriate values when needed to properly access the web service you
specified.
When you've finished, click Save in the toolbar to save your web service.
Setting up a Web Service Call in an Operation
An operation that calls a web service consists of two transformations: the first transforms
data into a web service request and the second transforms data from a web service
response to a target system
Follow the steps to Define a New Operation.
Choose Web Service Call from the Activity dropdown list.
Select an existing source from the Source dropdown list, or click the control button
to the right of the field to create a new source.
Select a predefined request transformation (which transforms data from your source
to the web service) from the Request Transformation dropdown menu, or click the
control button to the right of the field to create a new request transformation.
Select a predefined web service from the Web Service dropdown list, or click the
control button to the right of the field to create a new web service.
Select a predefined response transformation (which is used to transform data from
the web service's response to your target) from the Response Transformation
dropdown list, or click the control button to the right of the field to create a new
response transformation.
Select an existing target from the Target dropdown menu, or click the control button
to the right of the field to create a new target.
Testing a Web Service Call
Edit the response transformation and select Test and Operation from the
Transformation Toolkit button in the transformation builder toolbar.
You will be asked to select the operation you want to test, which makes the request
according to that operation and returns the response in the graphical tree.
Related Topics
Creating a Hosted Web Service
Calling a Web Service

356

Web Services

Setting Permissions for this Source


Using this Source in an Operation
Export Source And Target Settings
Manual connection string
About SSL Certificates

Creating a Hosted Web Service


Jitterbit enables integrations to be exposed and called through Hosted Web Services. To
host a web service on Jitterbit, you need to create a Hosted Web Service operation which
establishes a URL and Port on which the web service will listen to requests. A Hosted Web
Service can consist of one Hosted Web Service operation that comprises two
transformations: the first processes the request, and the second processes the response.
Multiple Operations
If you need to run multiple operations to process a web service request, do not create any
transformations in the Hosted Web Service. Create one only to establish the URL and Port
and to trigger other operations that use the Hosted Web Service Request in their
transformations to process the requests against multiple systems. If multiple operations are
to be triggered, the response transformation should be placed in the first triggered
operation that is called synchronously when the web service request is made.
All subsequent operations are triggered asynchronously. For example, if you wish to
perform multiple actions with an Order Request: Create an Archive File with the request,
transform the request into your ERP system, and then call another Web Service to fulfill the
order you would trigger other operations from the Hosted Web Service operation.
Creating a Web Service Method
Before you create a Hosted Web Service, you will need a valid WSDL file that represents the
methods with request and response schemas for the web services you need to host on
Jitterbit. To create a Hosted Web Service, you first need to define a web service method as
described in Creating a Web Service Method.
Specifying Credentials for Your Web Service
You can enable standard web service authentication for your web service on the Web
Service Method screen. Alternatively, you can configure the Jitterbit Apache Server to
handle certificates.
Creating a Hosted Web Service
The difference between creating a Hosted Web Service and a web service call is the types of
transformations used. For a web service call, one or more transformations are used to
357

Jitterbit Help Manual

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

Calling a Web Service


An operation that calls a web service consists of two transformations. The first transforms
data into a web service request and the second transforms data from a web service
response to a target system.
Follow the steps to Define a New Operation.
1. Choose Web Service Call from the Activity dropdown list.
2. Select a pre-defined web service from the Web Service drop-down list, or click the
control button to the right of the field to create a new web service.
3. Select an existing source from the Source drop-down list, or click the control button
to the right of the field to create a new source.
4. Select a pre-defined request transformation (which transforms data from your source
to the web service) from the Request Transformation drop-down menu, or click
the control button to the right of the field to create a new request transformation.
5. Select a pre-defined response transformation (which is used to transform data from
the web service's response to your target) from the Response Transformation
drop-down list, or click the control button to the right of the field to create a new
response transformation.
6. Select an existing target from the Target drop-down menu, or click the control
button to the right of the field to create a new target.

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

Right-click on Documents in the hierarchical tree in the Integration tab in the


left pane of the screen, then choose New Text Structure from the popup
menu.

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

Jitterbit Help Manual

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.

Define the Fields


The next screen is used to define each field in your document.
1. Type in the character (such as a comma) that will be used as the .
2. (Optional) Enter an (such as a double-quote) in the Text Qualifier field.
3. Click the New button to define the document's first field.
4. Enter a name in the Field Name field.
5. Select the for this field from the Type dropdown menu.
6. (Optional) If you want this field to have a default value, enter the value into
the Default field.
7. (Optional) If you want this field to have a specific format, enter the format
into the Format field.
8. (Optional) Repeat the previous steps for each additional data field you need
to define.
9. Click the Save button to save your work.

Your simple text document uses fixed-length fields


Follow these steps to define a fixed-length simple text document:

Define the Document Type


1. Enter an appropriate name for your new document definition in the Name

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

Define the Fields


The next screen is used to define each field in your document.
1. Click the New button to define the document's first field.
2. Enter a name in the FieldName field.
3. Select the for this field from the Type dropdown menu.
4. Enter the starting character position ( 1 is considered to be the 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.)

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.

9. Click the Save button to save your work.


Working with Complex Text Documents
Complex text documents are multi-segmented. Like simple text documents, complex text
documents can either be based upon a delimited structure (such as commas or tabs), or
they can use fixed-length fields. Follow the option that is appropriate for your text file.

363

Jitterbit Help Manual

Your complex text document is character-delimited


Follow these steps to define a complex character-delimited text document:
Define the Document Type
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 Character Delimited radio button in the Select Document Format
region.
4. Click the Create button to continue.
Define the Segments
The next screen is used to define each segment in your complex document:
1. Type in the character (such as a comma) that will be used as the .
2. (Optional) Enter an (such as a double-quote) in the Text Qualifier field.
3. Click the New button to define the document's first segment.
4. Enter a name in the SegmentName field.
5. Identify the parent of this segment from the Segment Parent dropdown
menu.
6. Specify how the segment will occur in your complex document by choosing
one of the options from the Occurrence dropdown menu:
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.
7. (Optional) Repeat the previous steps for each additional segment you need to
define.
8. Click the Save button in the toolbar. Your definition should look similar to that
shown in the figure below.

364

Text Structures

Define the Segment Properties


Now that all the segments have been created, you will need to define each segment's fields:
1. Select the desired segment by clicking its number. The segment entry should
highlight, as shown in the figure below.
2. Click the Fields button.

Note: As a shortcut, you can double-click on a segment's number button instead of


selecting the segment and then clicking the Fields button.
The Segment dialog appears.
1. Click the New button to add your first field to this segment.
2. Enter a name in the Field Name field.
3. Select the for this field from the Type dropdown menu.

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

Jitterbit Help Manual

Define the Document Type

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.

Define the Segments


The next screen is used to define each segment in your complex document:
1. Click the New button to define the document's first segment.
2. Enter a name in the SegmentName field.
3. Identify the parent of this segment from the Segment Parent dropdown menu.
4. Specify how the segment will occur in your complex document by choosing one of the
options from the Occurrence dropdown menu:
o

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.

Click the Save button in the toolbar.

Define the Segment Properties


Now that all the segments have been created, you will need to define each segment's field:
1. Select the desired segment by clicking its number. The segment entry should
highlight, as shown in the figure below.
2. Click the Field button.

Note: As a shortcut, you can double-click on a segment's number button instead of

366

Text Structures

selecting the segment and then clicking the Field button.


The Segment dialog appears.
1. Click the New button to add your first field to this segment.
2. Enter a name in the Field Name field.
3. Select the for this field from the Type dropdown menu.
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 , 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

Jitterbit Help Manual

Modifying Segment and Field Orders


Follow these steps if you want to change the order of your segments and/or segment fields:
1. Select the segment or field by clicking on its number as shown in the figure below.
2.

Click Move Up to move the selected item further up one line.

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.

Click the Save button to save your work.

Related topics:
Setting Permissions for This Text Structure Definition
Creating a Text Structure from a Template File

Using this Text Structure Definition in an Operation

How to Create a Text Document Definition from a Template File


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

Right-click on Documents in the hierarchical tree in the Integration tab in the


left pane of the screen, then choose New Text Structure from the popup
menu.

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

Jitterbit Help Manual

Example 1: Sample flat file with column names


LineItemId,Title,Quantity,Price,Tax
1,The English Patient,1,12.95,1,07
2,Rochelle Rochelle,1,29.95,2,47

Example 2: Simple text definition


Last Name,String,20
First Name,String,20
Birth day,date,10
wt,Float,10

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

from the sub-menu; or


c.
Right-click on Schedules in the hierarchical tree in the Integration tab in the left
pane of the screen, then choose New Schedule from the popup menu.
4. Your new schedule appears in its own New Schedule tab in the right pane of the
window.
5. Enter an appropriate name for your new schedule in the Schedule Name field.
6. (Optional) If you want to increase or decrease the priority of a scheduled operation,
you can change the value in the Priority dropdown list.
Set the Occurrence
Next, choose when this schedule should occur. You have three options:
This schedule will activate every day, or every few days
This schedule will activate during a specified set of days of the week
This schedule will activate on a monthly basis
Set the Frequency
Once the occurrence has been set, you need to determine the schedule's frequency. You
have two options:
This schedule should activate only once

371

Jitterbit Help Manual

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:

Setting Permissions for this Schedule


Using this Schedule in an Operation

Controlling the Scheduler


The Scheduler controls the scheduling of operations. When the scheduler is running,
operations that are assigned a schedule definition will activate accordingly. If the Scheduler
is stopped, the scheduled operations must be manually activated; they will not be activated
according to their schedules.
Follow these steps to access the Scheduler Console:
1. There are two ways you can access the Scheduler Console:
o

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 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

Jitterbit Help Manual

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:

Setting Permissions for this Email Message


Using this Email Message in an Operation

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Located in Jitterbit Integration Server Folder


(JITTERBIT_HOME)*

sapidoc.jar

JITTERBIT_HOME\tomcat\webapps\axis\WEB-INF\lib under your


Jitterbit Integration Server folder

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.

* Substitute the filepath on your computer as appropriate, e.g., C:\Program Files\Jitterbit


Integration Server.
Although these components are included in the Jitterbit 5 installer, they can be overwritten
by newer versions as needed. When this becomes necessary, follow the steps below.
Step 0: Download the new version from the appropriate location listed below and back up
the older version.
For .jar files: Go to the appropriate location listed below:
https://service.jitterbit.com/svn/private/dev/jitterbit/trunk/java/lib/other/jitterbitconnectors/SAP/saprfc.jar
https://service.jitterbit.com/svn/private/dev/jitterbit/trunk/java/lib/other/jitterbitconnectors/SAP/sapidoc.jar
https://service.jitterbit.com/svn/private/dev/jitterbit/trunk/java/lib/other/jitterbitconnectors/SAP/sapcommon.
jar
For sapjco3.dll: Be aware that Jitterbit does not distribute Java Connector libraries such as
sapjco3.dll. However, you can generally download these components directly from SAP with
no licensing charge.
To install:
Step 1: Stop tomcat server.
Step 2: Copy the version to the appropriate folder shown in the table above.

384

ERP Connectors

Step 3: Restart tomcat server.

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

Creating an SAP Endpoint


Before you can create SAP functions in Jitterbit, you must create at least one SAP endpoint.
The SAP Connector technology is built into Jitterbit, and creating an endpoint is your first
step in activating this capability.
Click the orange jigsaw icon in the main menu and select "New SAP Endpoint" from the
resulting dropdown.

A dialogue for endpoint creation appears.

385

Jitterbit Help Manual

Complete the fields as follows:


Name

Choose a name for your endpoint and type it in this window.

Connection Parameters
Host
Use default
port

The IP address or hostname where the endpoint is located.


The destination or endpoint to which your web service client will send a
call.
This box is checked by default. Leave it checked to use the default port
(generally 5432) for your endpoint.

Port

Unchecking the default port box activates the Port window to the right,
where you may specify an alternate port.

Login

The login name used in connecting to the SAP endpoint.

Password

The password for connection to the SAP endpoint.


When you click this button, a dialogue opens and displays a window to
type the password, and a checkbox labeled "Show password."
You can check the box to display the password instead of masking it.

System
Number

386

The SAP instance number.

ERP Connectors

Client

Numeric field identifying the client of the SAP system. Your


organization's SAP administrator can supply this information.

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

tomcat/webapps/axis/WEB-INF/lib under your Jitterbit Integration Server


folder

sapidoc3.jar
sapjco3.jar
saprfc.jar
sapjco3.dll

the bin folder under your Jitterbit Integration Server folder


Note: The .dll must be version 720.94 or above.

Click here to view an installation reference and troubleshooting guide..


When you have successfully created an SAP endpoint, you can begin creating an SAP
function. Click here for details.

Creating an SAP Function


Before you can create SAP functions in Jitterbit, you must create at least one SAP endpoint.
Click here for details.
To start creating a new SAP function, click the orange jigsaw icon in the main menu and
select "New SAP Function" from the resulting dropdown.

387

Jitterbit Help Manual

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.

Click the Next button. The Type screen appears.

388

ERP Connectors

The Type screen displays three radio buttons:


BAPI: Business Application Programming Interface, interfaces for use by external
applications developed by customers and by other SAP applications.
RFC: Remote Function Call to an external system.
IDOC: Intermediate Document, an SAP document format for business data transfers.
Click the appropriate radio button.

BAPI Example
When you select the BAPI radio button and click Next, the Function screen appears,
displaying a list of BAPI functions.

389

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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.

In this example, a plugin is required.

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 plugin is installed, you will receive the following confirmation:

If the required plugin is not installed on the server, you will receive a message like
this:

For steps to install a required plugin, click here.

Applying Pipeline Plugins


Plugins provide a way to extend the functionality of Jitterbit by adding functionality your
projects require. A detailed discussion on plugins can be found here:

This section describes how to use existing plugins in your integration project.
Plugins can be applied to the following components:
1. Sources

397

Jitterbit Help Manual

2. Targets
3. Web Service Calls

The following assumes you are applying a plugin to a Source.


1. Right-click on the Source, and select Plugin... from the popup menu. This brings up
the plugin dialog.
2. The dialog has two parts:
The top part, Currently assigned, shows what plugins are currently applied to the
selected Source.
The bottom part, Available plugins, shows the plugins that are available for the
selected Source on a given Jitterbit server. To view the plugins for a server,
select the server in the dropdown list.
Note: The plugin information is cached locally on the client. To ensure that you
are viewing the current list of plugins, press the Refresh button to download the
available plugins from the server. You need to do this e.g. when you have
installed a new plugin on that server.
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

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.

CPP Plugin SDK


Java Plugin SDK
XML in, XML out
A plugin can change data (files and data elements). It is passed the file name of an XML file
that represents the input and it creates an output XML file. The input XML contains a list of
files that are relevant at that point in the pipeline, if the plugin runs after the source files
have been fetched from a remote site, the corresponding local file names are listed in XML
input. The XML input also lists data elements that have been defined by transformation
scripts or by other plugins. After the work is performed, the XML output, consisting of new
or the same files and changed or new data elements, is generated. If you are using the SDK
classes, then this process of parsing and creating XML is automated for you.

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

Formula Builder Features


These are some of the main features of the Jitterbit Formula Builder

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

Jitterbit Help Manual

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.

Auto-insertion of closing characters


When typing a double or single-quote (' or ") in the script, the formula builder
assumes you are going to enter a string value, so it will automatically insert the
closing quote for you, and place the cursor between the two quotes. This does not
happen when you are writing a comment, or if you are typing inside an already
existing string value.
Likewise, when typing an opening parenthesis the formula builder will automatically
insert the closing parenthesis. Again, this is not done inside comments or string
values.

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.

Drag-and-drop from project tree


Dragging an item from the project tree and dropping it in the expression area will
automatically insert a string of the correct format when the dropped item is used as
input argument to a function. For example, dragging an Operation from the project
tree, and dropping it after the opening parenthesis in "RunOperation(" inserts the
string "<TAG>[path to the operation]</TAG>" which is what that function expects
as input.

403

Jitterbit Help Manual

Using the Formula Builder


You can manipulate any fields value during the transformation by using the Formula
Builder. With the Formula Builder, you can use mathematical operators, concatenate text
strings, or use formulas to perform more sophisticated functions.

1. Launch the Formula Builder in one of two ways:

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

Formula Builder Functions


Formula Builder Functions

This section describes the functions that are available in the Jitterbit Formula Builder.
The functions are organized into the following categories:
1. Conversion

405

Jitterbit Help Manual

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

Jitterbit Help Manual

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

== Equals operator. Returns true if the arguments are equal.


!= Not equals operator. Returns true if the arguments are not equal.
<,>,<=,>= Comparison operators.
! Negation operator. Converts a true value to false, and vice versa.

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.

Function Category: Conversion

This category has the following functions:


1. BinaryToHex
2. BinaryToUuid
3. Bool
4. Date
5. Double
6. Float
7. HexToBinary
8. Int
9. Long
10. String
11. UuidToBinary

409

Jitterbit Help Manual

Back to List of Categories


Function: BinaryToHex

Syntax: string BinaryToHex(binary x)


Converts a binary data element to a string representing the hexadecimal values of each byte.
The resulting string will be all lower-case. The result of this function call is undefined if the
argument is not a binary data element.
This is the reverse of the function HexToBinary().
Example:
If $x is a binary data element containing the bytes 0x17 0xA3 0xEF 0x80
BinaryToHex($x) returns the string "17a3ef80"
If $y is an empty binary data element
BinaryToHex($y) returns an empty string ("")
Back to List of Functions
Function: BinaryToUuid

Syntax: string BinaryToUuid(binary x)


Converts a 16 byte binary data element to a string in the standard UUID format.The resulting
string will always be lower-case.
This is the reverse of the function UuidToBinary().
Example:
If $x is a binary data element containing the following 16 bytes: 0x2F 0x46 0xDA 0xD9 0xE5
0xC2 0x45 0x7E 0xB1 0xFD 0xAD 0x1B 0x49 0xB9 0x9A 0xFF
BinaryToUuid($x) returns the string "2f46dad9-e5c2-457e-b1fd-ad1b49b99aff"
Back to List of Functions
Function: Bool

Syntax: bool Bool(type x)


Converts any data type to a boolean value (true or false). If the data is an integer or floatingpoint number not equal to zero, the result is true (1). The strings "true" and "T" return true
independently of case (i.e. "TRUE", "t" and "True" all return true). In all other cases the result is
false (0).
Example:
Bool(2) returns true.
Bool("true") returns true.
Bool("F") returns false.
Back to List of Functions

410

Formula Builder
Function: Date

Syntax: date Date(type d)


Converts the argument to a date. If the input is a string it has to be formatted using one of the
standard date formats: such as "12/25/2008 12:30", "2008-12-25", "2008-12-25T12:30:00",
"December 25, 2008", "DEC 25, 2008". If the input string cannot be read by Date() function, it
can be convert first to standard format by CVTDate(). Hour, minute and second are optional. If
the input is an integer or a double the input is interpreted as the number of seconds from
12:00:00 AM of 1/1/1970 GMT. Note that Date(Long(Now()))==Now().
Example:
// Returns the date that represents 2007-09-13 00:00:00 GMT.
Date("9/13/2000")
// Returns 2007-09-27 10:18:08 local time.
Date(1190888288)
Back to List of Functions
Function: Double

Syntax: double Double(type x)


A best effort is made to convert the argument to a double. If the data type being evaluated can
not be converted to a double the function returns 0. If the data being evaluated is a date or time
record, the result is the number of seconds from 12:00:00 AM of 1/1/1970 GMT.
Example:

Double(19.9874) returns a value of 19.987400;


Double(9/15) returns a value of 0.
Double("5.5a") returns a value of 5.5;
Double("abcd") returns 0.
Back to List of Functions
Function: Float

Syntax: float Float(type x)


A best effort is made to convert the argument to a float. If the data type being evaluated can not
be converted to a float the function returns 0. If the data being evaluated is a date or time
record, the result is the number of seconds from 12:00:00 AM of 1/1/1970 GMT.
Example:
Float(345) returns a value of 345;
Float("3.141529") returns a value of 3.141529;
Float("5.5a") returns a value of 5.5;
Float("abcd") returns 0.
Back to List of Functions

411

Jitterbit Help Manual


Function: HexToBinary

Syntax: string HexToBinary(string)


Converts a hex-string to a binary data element. The resulting data element will contain the bytes
represented by each pair of characters in the input string. The input string is case-insensitive.
This is the reverse of the function BinaryToHex().
Example:
HexToBinary("17a3ef80") returns a binary data element containing the bytes 0x17 0xA3 0xEF
0x80
HexToBinary("17A3EF80") also returns a binary data element containing the bytes 0x17 0xA3
0xEF 0x80
HexToBinary("") returns an empty binary data element
Back to List of Functions
Function: Int

Syntax: int Int(type x)


A best effort is made to convert the argument to an integer. If the data type being evaluated can
not be converted to an integer the function returns 0. If the data being evaluated is a date or
time record, the result is the number of seconds from 12:00:00 AM of 1/1/1970 GMT.
Example:
Int("3.141529") returns a value of 3;
Int("5a") returns a value of 5;
Int("5") returns a value of 5;
Int("abcd") returns 0.
Back to List of Functions
Function: Long

Syntax: long Long(type x)


A best effort is made to convert the argument to a long integer. If the data type being evaluated
can not be converted to a long the function returns 0. If the data being evaluated is a date or
time record, the result is the number of seconds from 12:00:00 AM of 1/1/1970 GMT.
Example:
Long("3.141529") returns a value of 3;
Long("5a") returns a value of 5;
Long("5") returns a value of 5;
Long(1234567890.123456) returns a value of 1234567890;
Long("abcd") returns 0.
Back to List of Functions

412

Formula Builder
Function: String

Syntax: string String(type x)


Converts any data type to a string. If the data being evaluated is a string already, no conversion
takes place. If the data type is a date or time record, the date is returned in ISO 8601 format
(yyyy-mm-dd HH:MM:SS). For other date formats use CVTDate or FormatDate. Binary data that
contains NULL bytes is returned as a string representing the hexadecimal values of each byte,
just as if BinaryToHex had been called. If the binary data contains no NULL bytes then a string
representation is returned with the assumption that the bytes represent a UTF-8 encoded string.
If you always want a hexadecimal representation then use the BinaryToHex function instead.
For a boolean value the strings "1" or "0" are returned.
Example:
String(98) returns a value of "98".
String(true) returns a value of "1".
Back to List of Functions
Function: UuidToBinary

Syntax: binary UuidToBinary(string)


Converts a UUID string to a binary data element containing the corresponding bytes. The size of
the input string must be 36 characters. The format of the input should be nnnnnnnn-nnnn-nnnnnnnn-nnnnnnnnnnnn where each pair (nn) is the hexadecimal representation of the
corresponding byte. The case of the input string does not matter. The returned binary data
element is 16 bytes long.
This is the reverse of the function BinaryToUuid().
Example:
UuidToBinary("2f46dad9-e5c2-457e-b1fd-ad1b49b99aff") returns a binary data element with the
following bytes:
0x2F 0x46 0xDA 0xD9 0xE5 0xC2 0x45 0x7E 0xB1 0xFD 0xAD 0x1B 0x49 0xB9 0x9A 0xFF
Back to List of Functions
Function Category: Cryptography

This category has the following functions:


1. Base64Decode
2. Base64Encode
3. Base64EncodeFile
4. MD5
5. MD5AsTwoNumbers
Back to List of Categories

413

Jitterbit Help Manual


Function: Base64Decode

Syntax: binary Base64Decode(string)


Base64 decodes the string, returning binary data.
Back to List of Functions
Function: Base64Encode

Syntax: string Base64Encode(type data)


Base64 encodes the data, treating characters in a string as binary data unless the input is
already binary. If the type of the argument is not binary or string then the argument value is
converted to a string first.
Back to List of Functions
Function: Base64EncodeFile

Syntax: string Base64EncodeFile(string source_id[, string file_name])


Since version: 2.0.1
Reads a binary file from the specified source and returns the contents as a Base64 encoded
string. This method need only be used for files that could be binary. If you want to read a text file
you can use ReadFile instead. The file-type source used in this function call must be defined as
a source in the current integration project. The available file-type sources are shown in the
"Project Items" tab in the lower section of the Formula Builder, under the node called "File
Locations".
The method returns the contents of the file pointed to by the specified source. If the source filter
selects more than one file, the first one will be used. It is thus recommended to specify a source
that uniquely identifies only one file.
The second argument, file_name is optional and can be used to override the file name used in
the source definition. Alternatively, a global data element can be used to override the file name
in the source definition. Global data elements are referenced as "[de_name]" in the source
definition.
Example:

// 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

Syntax: string MD5(string)


Since version: 1.0.0
Applies the MD5 hash function. The hash is a string of hex numbers.
Back to List of Functions

414

Formula Builder
Function: MD5AsTwoNumbers

Syntax: array MD5AsTwoNumbers(string)


Since version: 3.0.1
Applies the MD5 hash function to an input string and returns the result as two 64-bit numbers.
Back to List of Functions
Function Category: Database

This category has the following functions:


1. CacheLookup
2. CallStoredProcedure
3. DbCloseConnection
4. DbExecute
5. DBLookup
6. DbRollbackTransaction
7. SetDbInsert
8. SetDbUpdate
9. SqlEscape
10. Unmap
11. <SEQUENCE>
12. <SQLIDENTITY>
13. <UDF>

Back to List of Categories


Function: CacheLookup

Syntax: string CacheLookup(string database_id, string sql_str)


CacheLookup() is the same as DBLookup() except that the first lookup caches the information
and subsequent lookups use this instead of querying the database again. (An alternative to
caching is to use the functions Set() and Get().)
There are 2 required parameters: database_id and sql_str.
The database used in this function call must be defined as a Source or a Target of the current
integration project. The available databases are shown in the "Project Items" tab in the lower
section of the Formula Builder, under the node called "Databases". By double clicking on a
database node, the corresponding database ID will be inserted into the formula expression.
415

Jitterbit Help Manual

(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

Syntax: type CallStoredProcedure(string database_id, string sp_name, string result_set, ...)


Calls the stored procedure sp_name using the connection information specified by the
source/target identified by database_id. The returned result set is stored in result_set as XML
[feature not implemented yet!]. If the stored procedure returns no result set this argument is
ignored. The remaining optional arguments are used to pass input/output parameters to the
stored procedure. The number of arguments needed depend on the signature of the stored
procedure. Input variables can be a hard coded value, the value of a source data elment or the
value of a calculation or a formula. Output values (including the result set) are specified by
refernece as $de_name where "de_name" is the name of the global data element that will hold
the output value. The return value/type of the function is the return value/type of the stored
procedure.
Examples
Example 1
CallStoredProcedure("<TAG>MyProject/Targets/MyTarget</TAG>, "MyStoredProcedure", 0,
Input, $output)
Calls a stored procedure "MyStoredProcedure" which takes one input variable and one output
variable and ignores the result set. "Input" is the name of a source data element which provides
the input and "output" is the name of a data element that is used to store the output.
Note: The value of the output parameter can be accessed either as $output or Get("output");
Example 2
CallStoredProcedure("<TAG>MyProject/Targets/MyTarget</TAG>, "GetValues", $result, Input1,
Input2)
Calls a stored procedure "GetValues" which takes two input variables and returns a result set.
The result set is returned as XML in a global data element called "result". The result can be
accessed either as "$result" or Get("result").
Back to List of Functions
Function: DbCloseConnection

Syntax: void DbCloseConnection(string database_id)

416

Formula Builder

Commits the current transaction and closes the database connection.


The database used in this function call must be defined as a Source or a Target of the current
integration project. The available databases are shown in the "Project Items" tab in the lower
section of the Formula Builder, under the node called "Databases". By double clicking on a
database node, the corresponding database ID will be inserted into the formula expression.
(The ID is constructed by wrapping the project path of the selected database source or target
within <TAG>...</TAG> tags.)
Back to List of Functions
Function: DbExecute

Syntax: type DbExecute(string database_id, string sql_str, ...)


Executes a SQL statement on a database and returns the results. There are two required
parameters: database_id and sql_str.
If the SQL statement produces a result set, then there are two ways to retrieve the data:
1. If you specify only the two required parameters, the function will return the full recordset
as an array of rows. You can then use a While() loop to iterate over the rows, and
Get() to get the data. See example below. If no rows are returned the method returns an
empty array (i.e. Length($arr)==0).
2. To get the values of the fields of the first row returned, pass names of data elements
within quotes as parameters after the first two parameters. The value of the first field of
the first row will be written to the data element passed as the third parameter, the
second field of the first row to the fourth parameter, and so on. Alternatively the data
element can be passed by reference preceded by a $ sign, eg $output, see example
below. The return value should not be used in this case.
The database used in this function call must be defined as a Source or a Target of the current
integration project. The available databases are shown in the "Project Items" tab in the lower
section of the Formula Builder, under the node called "Databases". By double clicking on a
database node, the corresponding database ID will be inserted into the formula expression.
(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 SQL statement to be executed.
If this method completes successfully, $jitterbit.scripting.db.rows_affected will contain the
number of rows affected by the query.
Set $jitterbit.scripting.db.auto_commit=false to run the statement in a transaction. With auto
commit turned off, set $jitterbit.scripting.db.transaction=true to run all the SQL statements in a
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.
Set $jitterbit.scripting.db.max_rows to limit the number of records to return. The default is
10,000 rows.
The returned values are always strings. Binary data is returned as its hex-string representation.

417

Jitterbit Help Manual

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

Syntax: string DBLookup(string database_id, string sql_str)


Executes a SQL statement on a database and returns the first result matching the specified
criteria. There are two required parameters: database_id and sql_str. For more advanced
queries where you want to retrieve more than one value, use DbExecute.
The database used in this function call must be defined as a Source or a Target of the current
integration project. The available databases are shown in the "Project Items" tab in the lower
section of the Formula Builder, under the node called "Databases". By double clicking on a
database node, the corresponding database ID will be inserted into the formula expression.
(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.
If this method completes successfully, $jitterbit.scripting.db.rows_affected will contain the
number of rows affected by the query.
Set $jitterbit.scripting.db.auto_commit=false to run the statement in a transaction. With auto
commit turned off, set $jitterbit.scripting.db.transaction=true to run all the SQL statements in a

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

Syntax: void DbRollbackTransaction(string database_id)


Rolls back the current transaction and closes the database connection.
The database used in this function call must be defined as a Source or a Target of the current
integration project. The available databases are shown in the "Project Items" tab in the lower
section of the Formula Builder, under the node called "Databases". By double clicking on a
database node, the corresponding database ID will be inserted into the formula expression.
(The ID is constructed by wrapping the project path of the selected database source or target
within <TAG>...</TAG> tags.)
Back to List of Functions
Function: SetDbInsert

Syntax: type SetDbInsert()


Overrides the Insert/Update mode to insert for the current record. The return value is null.
Back to List of Functions
Function: SetDbUpdate

Syntax: type SetDbUpdate()


Overrides the Insert/Update mode to update for the current record. The return value is null.
Back to List of Functions
Function: SqlEscape

Syntax: string SqlEscape(string unescaped_sql)


Escapes special characters for use in a SQL query. Strings used as character constants in a
SQL statement uses ' (single quote) as a delimiter and \ (back-slash) to represent special
characters, so if the actual data contains these characters they have to be escaped by
specifying the character twice. This method escapes these characters according to this SQL
standard by replacing ' with '' and \ with \\.

419

Jitterbit Help Manual

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: type Unmap()


Sets the target field to be treated as unmapped. So far this affect only to the database target.
The return value is null
Example:
$valueToInsert = DbLookup(....);
// If $valueToInsert is null we want to treat this field as unmapped, e.g. we do not
// want to include it in the INSERT statement that gets generated for the DB target
// for this record.
If ($valueToInsert == Null(), Unmap(), $valueToInsert);
Back to List of Functions
Function: <SEQUENCE>

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

This category has the following functions:


1. CVTDate
2. DayOfMonth
3. DayOfWeek
4. FormatDate
5. GeneralDate
6. LastDayOfMonth
7. LongDate
8. LongTime
9. MediumDate
10. MediumTime
11. MonthOfYear
12. Now
13. Now_
14. ShortDate
15. ShortTime

Back to List of Categories


Function: CVTDate

Syntax: string CVTDate(string d, string oldFormat, string newFormat)


Converts a string in the stated old format to the stated new format.
Example:

Formula

Input

Output

CVTDate(myDate, "mmddyy", 061994


"yyyymmdd")

19940619

CVTDate(myDate, "mmddyy", 061994


"ShortDate")

6/19/94

CVTDate(myDate, "mmddyy", 061994


"LongDate")

Sunday, June 19, 1994

CVTDate(Now(),
"GeneralDate", "dd-mmm-yy,
HH:MM AP")

19-Jun-94, 10:37 AM

061994

421

Jitterbit Help Manual


Specification of the format strings:

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

Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep,


Oct, Nov, Dec

mm

2-digit month (01-12)

?m

1- or 2-digit month (1-12)

ddd

Julian date (001-366)

dd

2-digit day (01-31)

?d

1- or 2-digit day (1-31)

HH

Hour (00-23) or (01-12) if AM/PM is specified

MM

Minutes (00-59)

SS

Second (00-59)

AP

AM or PM

GeneralDate

6/19/94 5:34:23 PM

LongDate

Sunday, June 19, 1994

MediumDate

19-Jun-1994

ShortDate

6/19/94

Back to List of Functions

422

Formula Builder
Function: DayOfMonth

Syntax: int DayOfMonth(date d)


Returns the day of the month for a date object d. [1-31]
Example:

DayOfMonth(Now()) returns 25, if today is Decemeber 25.


Back to List of Functions
Function: DayOfWeek

Syntax: int DayOfWeek(date d)


Returns the day of the week for a date object d. 0 for Sunday, 1 for Monday... 6 for Saturday.
This definition is independent of locale. If you want the weekday name, you can call
FormatDate() instead. See example for FormatDate().
Example:

DayOfWeek(Now()) returns 0, if today is Sunday.


Now()+(6-DayOfWeek(Now()))*24*60*60 returns the date object of the last day of the week,
assuming Saturday is the last day of the week.
Back to List of Functions
Function: FormatDate

Syntax: string FormatDate(date d, string format)


Converts a date object to a string according to the format string.
This function is similar to the CVTDate, please refer to CVTDate() for the description of format
string.
Example:

FormatDate(Now(),"%w") is similar to DayOfWeek(Now()), except the return value is a string.


FormatDate(Now(),"%A") returns the weekday name of the date object.
Back to List of Functions
Function: GeneralDate

Syntax: string GeneralDate(date d)


Returns a string in the general date format representing the date passed as the argument.
Example:

At 11:59:23 am on September 16, 2000, the


"09/16/00 11:59:23 AM".
Back to List of Functions

GeneralDate(Now()) function would return

Function: LastDayOfMonth

Syntax: date LastDayOfMonth(date d)


Returns a date object representing the last day of the month.
Example:

LastDayOfMonth(Now()) returns the date object of February 29, if today is in February of a leap
year.

423

Jitterbit Help Manual

Back to List of Functions


Function: LongDate

Syntax: string LongDate(date d)


Returns a string in the long date format representing the date passed as the argument.
Example:

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

Syntax: string LongTime(date d)


Returns a string in the long time format representing the date passed as the argument.
Example:

At 11:59:23 am on September 16, 2000, the LongTime(Now()) function would return "11:59:23
AM".

Back to List of Functions


Function: MediumDate

Syntax: string MediumDate(date d)


Returns a string in the medium date format representing the date passed as the argument.
Example:

At 11:59:23 am on September 16, 2000, the MediumDate(Now()) function would return "16-Sep00".
Back to List of Functions
Function: MediumTime

Syntax: string MediumTime(date d)


Returns a string in the medium time format representing the date passed as the argument.
Example:

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

Syntax: int MonthOfYear(date d)


Returns the month of the year for a date object d. [1-12]
Example:

MonthOfYear(Now()) returns 12, if today is December 25.


Back to List of Functions

424

Formula Builder
Function: Now

Syntax: date Now()


Returns the date and time at the moment the function is run. The fraction of the second is
truncated.
Example:

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_

Syntax: date Now_()


Returns the date and time values at the moment the function is run. The time value includes
fraction of the second.
Example:

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

Syntax: string ShortDate(date d)


Returns a string in the short date format representing the date passed as the argument.
Example:

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

Syntax: string ShortTime(date d)


Returns a string in the short time format representing the date passed as the argument.
Example:

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

This category has the following function:


1. DebugBreak
Back to List of Categories
Function: DebugBreak

Syntax: bool DebugBreak(boolean b)

425

Jitterbit Help Manual

When passed an expression that evaluates to true, causes execution control to


return to the client when testing a script, expression, transformation or operation.
Returns true if execution was stopped, otherwise false is returned.
The input argument is optional: DebugBreak() is equivalent to DebugBreak(true).
Example:

DebugBreak($i>5); // Activate break point when $i is greater than 5.


Back to List of Functions
Function Category: Dictionary and Array

This category has the following functions:


AddToDict
Array
Collection
CollectValues
Dict
GetSourceAttrNames
GetSourceInstanceMap
HasKey
Map
RemoveKey

Back to List of Categories


Function: AddToDict

Syntax: bool AddToDict(dictionary dict, string key, type value)


Adds a value to a dictionary for a specific key. The key must be a string or have a string
representation, and NULL keys are not allowed. Any value is allowed, even NULL. Returns true
if the value was added and false if the value was updated. If the first argument is not defined or
is not a dictionary, it will be initialized to an empty dictionary before the value is added.
Example:
If(!HasKey($d, "key"), AddToDict($d, "key", "value")); // Add the value to the dictionary if it
doesn't already exist.
// If you just want to assign a key-value you can use the following syntax:

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

Syntax: array Collection()


Alias for Array()

Back to List of Functions

Function: CollectValues

Syntax:CollectValues(dictionary dict,array names)


Returns an array containing the values corresponding to the names in the names array in the
same order.
Example:
map = GetSourceInstanceMap([Values$Value.]);
names = Array();
names[0] = "Attr1";
names[1] = "Attr2";
// Array containing the values of the attributes named in the names array.
values = CollectValues(map, a);

427

Jitterbit Help Manual

Back to List of Functions

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

Syntax: bool HasKey(dictionary dict, string key)


Checks whether a dictionary contains the specified key. The first argument is the dictionary and
the second is the key to check for. Returns false if the first argument is not a dictionary.
Example:
If(HasKey($d, "key"), $d["key"] = "value"); // Update the value in the dictionary only if it already
exists.
Back to List of Functions

Function: Map

Syntax:dictionary Map()
Alias for Dict()
Back to List of Functions

Function: RemoveKey

Syntax:bool RemoveKey(dictionary dict, string key)


Removes a value with a specific key from a dictionary. The key must be a string or have a string
representation, and NULL values are not allowed. Returns true if the key was removed and
false if the key didn't exist.
Example:
If(HasKey($d, "key"), RemoveKey($d, "key")); // Remove a key if it exists.
Back to List of Functions
429

Jitterbit Help Manual

Function Category: Diff

Click to view Synchronizing Data via Jitterbit Diff


This category has the following functions:
1. DiffAdd
2. DiffComplete
3. DiffDelete
4. DiffKeyList
5. DiffNode
6. DiffUpdate
7. InitializeDiff
8. OrderedDiffKeyList
9. ResetDiff
10. SetDiffChunkSize

Back to List of Categories


Function: DiffAdd

Syntax: void DiffAdd()


Request the added records as input for the next transformation to be run.
Back to List of Functions
Function: DiffComplete

Syntax: void DiffComplete()


Call this when the diff process should be flagged as complete. This method has to be called or
the diff process will be left in an inconsistent state and the next time the diff operation runs no
records will be processed.
Back to List of Functions
Function: DiffDelete

Syntax: void DiffDelete()


Request the deleted records as input for the next transformation to be run.
Back to List of Functions

430

Formula Builder
Function: DiffKeyList

Syntax: void DiffKeyList(string k1 [, string k2..., string kN])


Set the list of keys to use for uniquely identifying a record in the source.
This method is typically called in conjunction with InitializeDiff.
Back to List of Functions
Function: DiffNode

Syntax:void DiffNode(string node_name)


For hierarchical sources, specify the node that is to be used as the repeating node to perform
the diff on.
Example:
DiffNode("Listing"); // The XML element node to diff on is <Listing>
Back to List of Functions
Function: DiffUpdate

Syntax: void DiffUpdate()


Request the updated records as input for the next transformation to be run.
Back to List of Functions
Function: InitializeDiff

Syntax: void InitializeDiff(string diff_id)


Initialize a new diff session. The string passed as the diff_id has to be different from all other diff
identifiers used on the system but it has to be the same each time the operation runs. If a diff
session is already running, the call to this method will fail. To clear an old diff session (e.g. in
case of system failure) run ResetDiff once.
This method is typically called in the pre-source script of the first operation that implements a
synchronization/diff.
Example:

// Synchronize the order database.


InitializeDiff("Order Database Synchronization 1");
// The primary keys for synchronizing are CustomerId and OrderId.
DiffKeyList("CustomerId", "OrderId");
// We have a lot of memory and each record is not big so don't worry about memory use.
SetDiffChunkSize(100000);
// We start by processing the added records in this operation.
DiffAdd();
Back to List of Functions
Function: OrderedDiffKeyList

Syntax: void OrderedDiffKeyList(string k1, bool isAscending1 [, string k2, bool isAscending2 ...,
string kn, bool IsAscendingN])

431

Jitterbit Help Manual

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: void ResetDiff(string diff_id, int action)


Reset an existing diff session. The action argument decides how the diff session is reset:
1. 0 -- Reset. Forget the latest snapshot and start over from scratch. This will force
the system to treat all entries as "added".
2. 1 -- Purge. Remove files left over from a previous diff session. This does not reset
the latest snapshot, it just clears any stale files left from old, failed or cancelled,
diff sessions.
This method is typically called when something has been changed in an existing diff process or
a diff process has failed and was left in an inconsistent state. Should normally not be called
during normal diff processing. If no diff session is present for this diff_id no action is performed.
Back to List of Functions
Function: SetDiffChunkSize

Syntax: void SetDiffChunkSize(int chunk_size)


Optionally call this to set the chunk size used while diffing. A larger chunk size will make the
system use more memory but process the diff faster. The default is 10000, if you have a lot of
memory you can increase this number.
This method is typically called in conjunction with InitializeDiff.
Back to List of Functions
Function Category: Email

This category has the following functions:


1. SendEmail
2. SendEmailMessage
3. SendSystemEmail

Back to List of Categories


Function: SendEmail

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:

SendEmail("john.doe@localhost", "jane.doe@localhost", "Weird data in PO input", "There was


some weird data in this incoming PO, could you have a look at it?", "mail.myhost.org",
"john.doe@localhost", "mymailpwd", "jennifer@localhost", "svennis@localhost,
urban@localhost", "jd@localhost")
Back to List of Functions
Function: SendEmailMessage

Syntax: string SendEmailMessage(string email_message_id)


Since version: 2.1.0
Sends an email using a pre-defined Email Message. The email message used in this function
call must be defined as an Email Message int the current integration project. The available email
messages are shown in the "Project Items" tab in the lower section of the Formula Builder,
under the node called "Email Messages". By double clicking on an email message node, the
corresponding email message ID will be inserted into the formula expression. (The ID is
constructed by wrapping the project path of the selected email message within <TAG>...</TAG>
tags.)
Example:

// Send a pre-defined email message.


SendEmailMessage("<TAG>MyProject/Email Messages/My Email Message<TAG>");
Back to List of Functions
Function: SendSystemEmail

Syntax: string SendSystemEmail(string to, string subject, string message)


Since version: 1.2.0
Sends an email using the pre-configured From address, smtp servers and account. These are
defined in the server configuration file. If these have not been defined you need to use one of
the other email functions. The method returns a string with an error message if the email could
not be sent, on success an empty string is returned.
Example:
SendSystemEmail(Get("manager_email"), "FYI", "About to process a new purchase order with
POID = "
+ Get("POID") + ". Should be available for review in a few minutes.")
Example of a jitterbit.conf entry for sending system emails.
[SmtpClient]
DefaultSmtpServers=mail.yourdomain.com

433

Jitterbit Help Manual

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

This category has the following functions:


1. FileList
2. FlushAllFiles
3. FlushFile
4. ReadFile
5. WriteFile

Back to List of Categories


Function: FileList

Syntax: array FileList(string source_id)


Get the list of filenames from the specified source. This will be the same list of files that you get
when you test a file type source. The file-type source used in this function call must be defined
as a source in the current integration project. The available file-type sources are shown in the
"Project Items" tab in the lower section of the Formula Builder, under the node called "File
Locations".
The method returns an array data element containing the file names matching the file filter of
the specified source.
Example:

$nfiles = Length(FileList("<TAG>Project Name/Sources/File Share Source</TAG>"))


Back to List of Functions
Function: FlushAllFiles

Syntax: void FlushAllFiles([string target_id])


Persists data written to a file buffer with WriteFile(). If FlushAllFiles are called with a target_id as
argument, all files written using that target will be flushed (see FlushFile()). If FlushAllFiles is
called without any argument, all files written using WriteFile() will be persisted to their respective
targets.
Example:

WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents);


WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents, "copy.txt");
// Writes both files to the target
FlushAllFiles("<TAG>Project Name/Targets/FTP Target</TAG>");
Back to List of Functions

434

Formula Builder

Function: FlushFile

Syntax: void FlushFile(string target_id[, string file_name])


Persists data written to a file buffer with WriteFile(). When FlushFile() is called, the current
contents of the buffer is written to the target and the local buffer is discarded.
The second argument, file_name is optional and can be used to override the file name used in
the target definition if it was similarly overridden in the call to WriteFile. Flushing a file that has
never been written to has no effect.
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. If an override file
name is used, each buffer is flushed separately for each unique name.
Example:

WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents);


// Actually write to the target
FlushFile("<TAG>Project Name/Targets/FTP Target</TAG>");
// Write another file (overriding the file name)
WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents, "test.txt");
FlushFile("<TAG>Project Name/Targets/FTP Target</TAG>", "test.txt");
Back to List of Functions
Function: ReadFile

Syntax: string ReadFile(string source_id[, string file_name])


Reads a file from the specified source. The file-type source used in this function call must be
defined as a source in the current integration project. The available file-type sources are shown
in the "Project Items" tab in the lower section of the Formula Builder, under the node called "File
Locations".
The method returns the contents of the file pointed to by the specified source. If the source filter
selects more than one file, the first one will be used. It is thus recommended to specify a source
that uniquely identifies only one file.
The second argument, file_name is optional and can be used to override the file name used in
the source definition. Alternatively, a global data element can be used to override the file name
in the source definition. Global data elements are referenced as "[de_name]" in the source
definition.
This method can also be used to read data from an http source.
Example:

$file_contents = ReadFile("<TAG>Project Name/Sources/File Share Source</TAG>")


Back to List of Functions
Function: WriteFile

Syntax: void WriteFile(string target_id, type file_contents[, string file_name])

435

Jitterbit Help Manual

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:

WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents)


// Use the name "test.txt" instead of whatever is defined in this target.
WriteFile("<TAG>Project Name/Targets/FTP Target</TAG>", $contents, "test.txt")
Back to List of Functions
Function Category: General

This category has the following functions:


AutoNumber
CancelOperationChain
Eval
Get
GetHostByIp
GetInputString
GetOperationQueue
GetServerName

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

Jitterbit Help Manual

SourceInstanceCount() or TargetInstanceCount() instead depending on what you want to


accomplish. TargetInstanceCount() is equivalent to this method.
Example:
Assume a Target architecture has two top-level records: PO1 and PO2. PO1 is a parent of three
child records, PO1_record1, PO1_record2, and PO1_record3, and PO2 is a parent of two child
records, PO2_record1 and PO2_record2. AutoNumber() called at the parent level returns 1 at
PO1, and returns 2 at PO2. AutoNumber() at the child level of PO1 returns 1 at PO1_record1,
returns 2 at PO1_record2, and returns 3 at PO1_record3, since it has 3 child records.
Back to List of Functions
Function: CancelOperationChain
Syntax: void CancelOperationChain(string message)
If the current operation has a success/failure operation, calling this method will cause the next
operation to be cancelled. This can be useful if an operation is running in a loop and the
condition to stop looping has been reached. If a non-empty string is passed to this method, this
string will show up as a warning in the operation log.
Example:
CancelOperationChain("The success operation does not need to run")
Back to List of Functions
Function: Eval
Syntax: string Eval(type exp_to_evaluate, type default_result)
Evaluates the first argument (exp_to_evaluate). If the result is valid, the function returns the results as a
string. Otherwise, the default value is returned. This can be used as a "try-catch" statement in that the
second argument will be evaluated if the first one fails.
Example:
Eval(book*36.4, "Bad Entry") returns "Bad Entry"
Eval(4*25,"Bad Entry") returns a value of "100", which is the string representation of 4 multiplied by 25.
// Execute the SQL statement and terminate the transformation if it fails.
Eval(DbLookup("Project Name/Sources/Source Name", "SELECT col FROM table"),
RaiseError("Failed to execute SQL statement: " + GetLastError()));
Back to List of Functions
Function: Get

Syntax: type Get(string name [, int index1, int index2, ...])


Returns the value of the global variable with the given name. If the first argument is an array or
the name of an array data element, you can get a specific element by specifying its index (or
indices for a multi-dimensional array such as a record-set) as the second argument. Arrays are
zero indexed, i.e. the first item is at index 0 and the last item is at index Length($arr)-1.

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

Syntax: string GetHostByIp(string ipaddress)


Resolves an IP address to a host name.
Example:
GetHostByIp("127.0.0.1")
Back to List of Functions
Function: GetInputString
Syntax: string GetInputString(type de)
Returns the unformatted input as a string given a source data element. This is useful if the
standard Jitterbit representation of a data type (such as date or double) is not suitable and you
want the "raw" input. If this method is called on something that is not a source data element
then an empty string is returned.
Example:
// The input is too large for a Jitterbit double so get the raw input
$SessionId = GetInputString(root$transaction$body$GetMachineList$req$SessionID$);
Back to List of Functions
Function: GetOperationQueue
Syntax: array GetOperationQueue([string operation_tag])
Returns the contents of the operation queue as an array. Only operations that the current user
has read access for will be returned. The result is returned as an array of arrays with the
following sub-array indexes:
439

Jitterbit Help Manual

1. Operation GUID (string)


2. IsExecuting flag (bool)
3. Time stamp for when the operation was added to the queue (date)

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:

/ /Write queue for a particular operation to the operation log:


$queue = RunOperation("<TAG>MyProject/Operations/MyOperation</TAG>");
$N = Length($queue);
$i = 0;
// Loop over the queue entries
While($i < $N,
WriteToOperationLog("Queue Entry: GUID=" + $queue[$i][0] + "; IsExecuting=" + $queue[$i][1]
+ "; Added at " + $queue[$i][2]);
$i = $i +1
);
Back to List of Functions
Function: GetServerName
Syntax: string GetServerName()
Returns the name of the local computer.
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:

Guid() returns a GUID string.


Back to List of Functions
440

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:

// Initialize counter to 0 using the name of the data element.


InitCounter("counter");
// Initialize counter to 100 using a reference to the data element.
InitCounter($counter, 100);
Back to List of Functions
Function: InList
Syntax: int InList(type x, type a1, type a2, type a3, type a4)
Checks for x in the list of arguments (a1 through a4...). If it finds a match, it will return an integer
representing the position of the argument in the list, with the first position in the list being
represented by the integer 1.
If the list contains more than one instance of x, this function returns the position of the first
match (i.e. the match with the lowest position index). 0 is returned if the list does not contain the
value x.
Example:

InList("x","a","b","c","x") returns a value of 4.


InList("a","a","b","c","a") returns a value of 1.
InList("x","a","b","c") returns a value of 0.
Back to List of Functions

441

Jitterbit Help Manual

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

array: The number of elements in the array is returned;


binary data: The number of bytes is returned;
For all other types an attempt is made to convert the argument to a string, and the length
of the resulting string is returned. If the argument can not be converted to a string, or the
argument is null or unknown, 0 is returned.

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

Jitterbit Help Manual

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:

// one dimensional array which contain 4 string data elements


$a1=ReadArrayString("{John,Steve,Dave,Eric}")
// one dimensional array which contain 3 boolean data elements
$a2=ReadArrayString("{1,0,1}", "bool")
// 2 d array, the 1st array elements is an array which has 3 string data elements, and the 2nd
array elemets of the 2nd array elements contains a line break
$a3=ReadArrayString('{{abc,"a,b","a""b"},{"de","d "}}")
Back to List of Functions
Function: RecordCount
Syntax: int RecordCount()
Returns the instance number of the target loop that is currently being generated. If it is called in
a condition it returns the instance number of the last instance that was generated. The first time
this method is called in a loop it returns 0 (zero) if called in a condition, 1 (one) otherwise. The
counter is reset to 0 each time a new loop is started.
NOTE: This method has been deprecated and may be removed in a future version. Use
SourceInstanceCount() or TargetInstanceCount() instead depending on what you want to
accomplish. TargetInstanceCount() is equivalent to this method.
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

condition. Otherwise you will end up in an infinite loop of operation calls.


The behavior of this methods with respect to return value and data elements is identical to
RunOperation. Refer to the documentation of that method for a description of how re-running
the operation synchronously or asynchronously affects global data elements.
Example:
ReRunOperation() // re-runs the current operation synchronously
ReRunOperation(false) // re-runs the current operation asynchronously
Back to List of Functions
Function: RunOperation
Syntax: bool RunOperation(string operation_tag [, bool run_synchronously])
Runs an operation synchronously or asynchronously, with synchronous being the default. The
second argument is optional and determines how the operation will run.
If run_synchronously=true the operation and any success/failure operations will run inside the
current operation and the current operation will wait for the whole operation chain to finish. All
global data elements are inherited by the operation to be run and any changes to the global
data elements will be reflected in the current operation. This is the default behavior if the second
argument is not supplied. Returns false if the operation resulted in a failure. Call GetLastError()
to get the error message.
If run_synchronously=false this method puts an operation on the Jitterbit processing queue to
be processed once any operations that come before it have been processed. All global data
elements are inherited by the operation to be run but changes to those data elements will not be
reflected in the current operation. The current operation will continue to run independently of the
operation to be run and there is no guarantee as to which operation will finish first. Returns false
if the operation could not be added to the queue. Call GetLastError() to get the error message.
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:

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

Jitterbit Help Manual

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

Set($arr, "value", -1)


// This does the same thing.
Set($arr, "value", Length($arr))
Back to List of Functions
Function: Sleep
Syntax: void Sleep(int nSeconds)
Causes execution to suspend for the specified number of seconds.
Example:

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

Syntax: void WaitForOperation(string operation_tag[, int time_out_sec, int poll_interval_sec])


Stops execution of script/mapping until all instances of the specified operation currently in the
operation queue have finished processing. Operation instances that are added after this call are
not waited for and the current user needs to have read access for the operation. This method is
useful if you want to add many instances of an operation to the queue for parallel processing
and then wait for all of them to finish.
The first argument is the operation tag argument for the operation to wait for. If you want to wait

447

Jitterbit Help Manual

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>");

Back to List of Functions


Function Category: HTTP

Since version: 2.1.2.0


This category has the following function:
1. HttpPost

Back to List of Categories


Function: HttpPost

Syntax: string HttpPost(string url, string dataToPost, string error)


Since version: 2.1.2.0
Performs a HTTP POST of the given data to the given URL, and returns the response. The third
argument is optional; if provided it will contain the error message if the POST failed.
Examples:

$response = HttpPost("http://www.acmecorporation.com/index.html", "productID=$prodID",


$error);
If(Length($error) == 0, $response, RaiseError($error))

448

Formula Builder
Function Category: Instance

This category has the following functions:


1. Count
2. Exist
3. FindByPos
4. FindValue
5. Max
6. Min
7. ResolveOneOf
8. Sum
9. SumCsv
10. SumString

Back to List of Categories


Function: Count
Syntax: int Count(type de)
Counts all instances of a data element at a particular hierarchical level where that data element
contains a valid value (not null).
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).
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

Syntax: bool Exist(type c0, type de)


Checks for the existence of a value (c0) in a data element (de) and returns true or false based
on the results.
Example:

Exist(c0,de) returns true if one of the de is equal to c0, otherwise returns false.
Back to List of Functions

449

Jitterbit Help Manual


Function: FindByPos

Syntax: type FindByPos(int pos, type de)


Returns the value of a data element in a row that occurs multiple times. The number specified in
the pos argument indicates from which occurrence to get the value. If a negative number is
specified, counting will begin with the last row. Note that the index is 1-based.
Example:

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

Syntax: type2 FindValue(type1 c0, type1 de1, type2 de2)


Searches multiple instances of an element (de1) looking for the value specified in c0. If it finds
it, it returns the value in the field specified in de2 for that instance. If it is not found, it returns
null.
Example:
FindValue("ID",A.B#.field1,A.B.#field2) will find all the instances of B under A and check the
contents of field1. It will select the first instance of A it finds where field1 contains "ID", and then
return the value of field2 from that same instance.
Back to List of Functions
Function: Max

Syntax: type Max(type de)


Returns the maximum value of a data element at a particular hierarchical level. It will check all
instances at that level and return the largest.
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).
Max(POHeader.Items#.Quantity) will return the maximum quantity for any item for a particular
POHeader (purchase order).
Back to List of Functions
Function: Min

Syntax: type Min(type de)


Returns the minimum value of a data element a particular hierarchical level. It will check all
instances at that level and return the smallest.

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

Syntax: type Sum(type de)


Takes the value of all instances of a data element at a particular hierarchical level and returns
their sum. The data type of de must be integer, long, float, or double.
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).
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

Syntax: string SumCsv(type de)


Concatenates each instance of the data element specified as argument. A comma is
automatically appended to the end of each concatenated string, and if the field contains
character such as line feed or comma, the field will be enclose by double quotes. The delimiter
of the last string is omitted
Back to List of Functions
Function: SumString

Syntax: string SumString(type de,string delimiter,bool omitlast)


Concatenates each instance of the data element specified as argument. A delimiter is
automatically appended to the end of each concatenated string. The 2nd and 3rd argementa are
optional. The default delimiter is semicolon, and the default omitlast is false. If omitlast is true,
the delimiter after the last string is omitted.
Back to List of Functions
Function Category: LDAP

451

Jitterbit Help Manual

This category has the following functions:


1. ArrayToMultipleValues
2. LdapAdd
3. LdapConnect
4. LdapDeleteEntry
5. LdapExecute
6. LdapRemove
7. LdapRename
8. LdapReplace
9. LdapSearch

Back to List of Categories


Function: ArrayToMultipleValues

Syntax: string ArrayToMultipleValues(array a)


Signals that an array should be used to populate multiple valued LDAP attributes when mapping
to an LDAP target. The array will be converted to XML and interpreted when the LDAP target is
written to.
Example:

// Create two LDAP attributes using an array


$arr = Null();
Set($arr, "First instance", 0);
Set($arr, "Second instance", 1);
ArrayToMultipleValues($arr)
Back to List of Functions
Function: LdapAdd

Syntax: bool LdapAdd(string type, string value)


Adds entries and attributes to a directory. The value is added to the node specified in
LdapExecute(), which should be called to make the changes take effect.
Example:

Adding a user entry to a directory:

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");

Back to List of Functions


Function: LdapConnect

Syntax: bool LdapConnect(string ldap_target_id, ...)


Connect to a directory using LDAP (Lightweight Directory Access Protocol).
ldap_target_id -- Double click on an LDAP target in the tree in the lower right side of the
Formula Builder.
Example:

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");

Back to List of Functions


Function: LdapExecute

Syntax: bool LdapExecute(string path)


Execute one or more modifications (add, remove, replace).
Example:
LdapAdd("description","Thinks a lot.");
LdapReplace("telephoneNumber","(510) 555 1000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");

453

Jitterbit Help Manual

Back to List of Functions

Function: LdapRemove

Syntax: bool LdapRemove(string type, string value)


Remove an attribute of a certain type and with a certain value.
Example:
LdapRemove("telephoneNumber","(510) 555 1000");
LdapAdd("telephoneNumber","(510) 555 2000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
Back to List of Functions
Function: LdapRename

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

Syntax: bool LdapReplace(string type, string value)


Replace an attribute.
Example:
LdapReplace("telephoneNumber","(510) 555 1000");
LdapExecute("CN=wright,CN=Users,DC=finland,DC=company,DC=com");
Back to List of Functions
Function: LdapSearch
Syntax: string LdapSearch(string path, string filter, int iDetail, string attribute1, string
attribute2, ...)
Searches a directory.
path -- this is the distinguished name used as the base of the search
filter -- this is the query string as defined by RFC 4515
iDetail:

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

This category has the following functions:


1. GetLastError
2. RaiseError
3. ResetLastError
4. SetLastError
5. WriteToOperationLog

Back to List of Categories

455

Jitterbit Help Manual

Function: GetLastError

Syntax: string GetLastError()


Since version: 1.3.0
Returns the last error reported in the transformation. Can be used together with ResetError and
Eval for error handling.
Example:
<trans>
// Discard previous errors
ResetLastError();
$error="";
Eval($order_type = DBLookup("<TAG>MyProject/Targets/myDbTarget</TAG>",
"SELECT ORDER_TYPE FROM PO_HEADER WHERE PO_NUMBER = " + PO_NUM),
$error=GetLastError()); // On failure, put last error in a variable
if( Length($error) > 0, RaiseError("Failed to lookup Order Type: " + $error), $order_type)
</trans>
Back to List of Functions
Function: RaiseError

Syntax: void RaiseError(string errorMessage)


Causes the transformation to fail, and the contents of errorMessage is displayed in the error log.
Example:
RaiseError("The source field 'Price' has an invalid value.")
Back to List of Functions
Function: ResetLastError

Syntax: void ResetLastError()


Sets the last error to an empty string. The same as calling SetLastError("").
Back to List of Functions
Function: SetLastError

Syntax: void SetLastError(string errorMessage)


Sets a user defined last error. The message will be logged as a warning and GetLastError() will
return this string unless another error occurs.
Back to List of Functions
Function: WriteToOperationLog

Syntax: String WriteToOperationLog(String message)


Writes message to the Operation log.
Example:
WriteToOperationLog("I will find this message in the Operation log.")
456

Formula Builder

Back to List of Functions


Function Category: Logical

Since version: 1.0.0.0


This category has the following functions:
1. Case
2. If
3. While

Back to List of Categories


Function: Case

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

Syntax: type If(bool condition, type true_result, type false_result)


Returns true_result if condition is true, else it returns false_result. If condition is not a boolean
datatype, it is converted to a boolean before it is evaluated. The third argument is optional. If it is
not specified and condition is false a null value is returned.
Example:
If(false,"Jack","Diane") returns the value "Diane".
If(7>4,"Spoon","Knife") returns the value "Spoon".
If(Length($s)>0, $s=$s+",") adds "," to $s if $s is not empty.
Back to List of Functions
Function: While

Syntax: void While(bool condition, type expression)


Executes expression while condition is true. You can use the data element
$jitterbit.scripting.while.max_iterations to control how many iterations will be allowed. An error is
reported if the maximum number of iterations is reached.

457

Jitterbit Help Manual

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

This category has the following functions:


1. Exp
2. Log
3. Log10
4. Mod
5. Pow

Back to List of Categories


Function: Exp

Syntax: double Exp(double d)


Since version: 1.0.0
Generates the mathematical result e^d, or e to the power of d. If d is not data type double, it is
converted to type double before the result is generated.
Example:
exp(4.60517) returns a value of 100.
Back to List of Functions
Function: Log

Syntax: double Log(double d)


Generate the natural log of the data. If the data is not of data type double, it is converted to data
type double before the natural log value is generated.
Example:
Log(100) returns a value of 4.60517;
Log("5a") will be treated as log(5).
Back to List of Functions
Function: Log10

Syntax: double Log10(double d)


Generate the log (base10) of the data. If the data is not of data type double, it is converted to
data type double before the log (base10) value is generated.
Example:
log10(100) returns a value of 2.
458

Formula Builder

log10("5a") will be treated as log10(5).


Back to List of Functions
Function: Mod

Syntax: long Mod(long numerator, long denominator)


Calculates the modulus, i.e. the remainder, of the devision numerator/denominator. The return
value has the same sign as the numerator. If denominator is 0 then the numerator is returned.
Example:
// This expression returns 5:
Mod(3005, 1000)
// This expression returns 0:
Mod(204, 17)
// This expression returns -2:
Mod(-206, 17)
Back to List of Functions
Function: Pow
Syntax: double Pow(double x, double y)

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

This category has the following functions:


FromDataLoaderDate
FromDataLoaderDateTime
LoginToSalesforceAndGetTimeStamp
GetSalesforceTimeStamp
SalesforceLogin

Back to List of Categories

459

Jitterbit Help Manual


Function: FromDataLoaderDate

Syntax:date FromDataLoaderDate(string input_date, string timezone_id, bool


is_european_format)

Converts an input date to the format required by Salesforce.

Function: FromDataLoaderDateTime

Syntax: date FromDataLoaderDateTime(string input_date, string timezone_id, bool


is_european_format)

Converts an input dateTime to the format required by Salesforce.

Back to List of Functions


Function: LoginToSalesforceAndGetTimestamp

Syntax:bool LoginToSalesforceAndGetTimestamp(string salesforce_org)

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());

The following examples show how to specify which timezone to use:

460

Formula Builder

// Get the timestamp in UTC:


$timestamp = LoginToSalesforceAndGetTimestamp("Salesforce Orgs/...", "UTC");

// Get the timestamp in Pacific Standard Time:


$timestamp = LoginToSalesforceAndGetTimestamp("Salesforce Orgs/...", "PST");

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).

Back to List of Functions

Function: GetSalesforceTimestamp

Syntax: string GetSalesforceTimestamp(string url, string session_id)

Retrieves the current system time from Salesforce.

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.

The function takes two required input arguments:


The URL to use when calling Salesforce;
The Salesforce session ID.

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

Jitterbit Help Manual

if(!SalesforceLogin("..."), RaiseError(GetLastError()));
$timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl, $Salesforce.SessionId);
if(IsNull($timestamp), RaiseError(GetLastError());

The following examples show how to specify which timezone to use:

// Get the timestamp in UTC:


$timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl, $Salesforce.SessionId, "UTC"),

// Get the timestamp in Pacific Standard Time:


$timestamp = GetSalesforceTimestamp($Salesforce.ServerUrl, $Salesforce.SessionId, "PST"),
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).

Back to List of Functions


Function: SalesforceLogin

Syntax: bool SalesforceLogin(string salesforce_org)

Logs in to Salesforce, using the specified Salesforce Org.

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.

Back to List of Functions


Function Category: String
This category has the following functions:
CountSubString
Dquote
Format
Index
IsValidString
Left
LPad
LPadChar
LTrim
LTrimChars
Mid
Quote
RegExMatch
RegExReplace
Replace
Right
RPad
RPadChar
RTrim
RTrimChars
Split

463

Jitterbit Help Manual

SplitCsv
ToLower
ToProper
ToUpper
Trim
TrimChars
Truncate
UrlEncode

Back to List of Categories

Function: CountSubString

Syntax: int CountSubString(string str, string sub_str)


Returns the number of times a sub_string appeared in the main string. The first argument
(str), is the main string. The second argument (sub_str) is the string you are searching for
within the main string.
Example:

CountSubString("Mississippi","iss") returns 2.
Back to List of Functions

Function: Dquote

Syntax: string Dquote(string s)


Places the subject string in double quotes and returns that result.
Example:
Dquote('any str') returns the value '"any str"'.
(Note that the outer pair of quotes is a indication of datatype string, and not part of the
string itself.)
Back to List of Functions

Function: Format

Syntax: string Format(string format_str, type de)


464

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:

Format("%5d",2) returns the value " 2".


Back to List of Functions

Function: Index

Syntax: int Index(string haystack, string needle, int n)


Returns the position of a sub-string within a main string. The first argument is the main
string. The second argument is the string you are searching for within the main string. The
third argument is optional, its default value is 1. In cases where the sub-string appears
more than once in the main string, the last argument (n) is used to determine which specific
instance of the sub-string is of interest. If n < 0, the instance counting starts from the end
of the main string. If |n| > the maximum number of times the sub-string appears in the
main string, the function returns -1. Otherwise, the function returns the sub-string's first
character's position within the main string (starting at position 0).
There are a couple of special cases to consider:

n = 0 returns the same result as n = 1


If needle is an empty string:
o n >= 0 always returns 0
o n < 0 always returns Length(haystack)
Example:

Index("Mississippi","s") returns 2. When called with only two arguments the


optional third argument defaults to 1, resulting in the index of the first match being returned.

Index("Mississippi","iss",3) is searching for the 3rd instance of "iss" within


Mississippi, so it returns -1.

Index("Mississippi","si",2)

returns 6, as the 2nd instance of the sub-string

"si" starts at position 6. (The first letter "M" starts at position 0).

Index("Mississippi","",1) returns 0.

465

Jitterbit Help Manual

Index("Mississippi","",-1) returns 11.


Back to List of Functions

Function: IsValidString

Syntax: bool IsValidString(string x)


Returns true if each character in the string argument is valid. (ascii code (>31 and <127) or
it is one of LF, CR, TAB character)
Back to List of Functions

Function: Left

Syntax: string Left(string str, int n)


Returns n characters, counting from the beginning (left) of string str.
Example:

Left("01234567890",4) returns the value "0123".


Back to List of Functions

Function: LPad

Syntax: string LPad(string s, int n)


Since version: 1.0.0
Adds spaces to the beginning (left) of a string until the string contains n characters. Strings
containing n characters or more are truncated to n characters. LPad(str, -n) is the same as
RPad(str, n).
Example:

LPad("01234567",9) returns the string " 01234567".


Back to List of Functions

Function: LPadChar

Syntax: string LPadChar(string in_string, string pad_char, int n)


Adds a specified character to the beginning (left) of a string until the string contains n
characters. Strings containing n characters or more are truncated to n characters.
Example:

LPadChar(1234567, "0", 10) returns the string "0001234567".


466

Formula Builder

Back to List of Functions

Function: LTrim

Syntax: string LTrim(string s)


Since version: 1.0.0
Removes blanks or spaces from the beginning of the subject string and returns the
remaining characters.
Example:

Ltrim(" Hello World ") returns "Hello World ".


Back to List of Functions

Function: LTrimChars

Syntax: string LTrimChars(string s, string chars)


Removes all characters in the string chars from the beginning of the subject string and
returns the remaining characters. Note that the subject string itself is not affected by this
call.
Example:

$x = "// This is a comment"; $y = LTrimChars($x, " /") //


Returns "This is a comment" In the above script, $y is assigned the value "This
is a comment", whereas $x is still "// This is a comment".
Back to List of Functions

Function: Mid

Syntax: string Mid(string str, int m, int n)


Returns n number of characters in a string, starting with the character in position m in the
string. This count of m characters begins with zero (0).
Example:

Mid("01234567890",7,3) returns the value "789".


Back to List of Functions

Function: Quote

Syntax: string Quote(string s)


Places the subject string in single quotes and returns that result.

467

Jitterbit Help Manual


Example:

Quote('any str') returns a quoted string ' "any str" '.


(Note that the outer quotes are not part of the string, and the spaces between double and
single quotes are shown only to clarify the different quote characters. These spaces would
not appear in an actual result.)
Back to List of Functions

Function: RegExMatch

Syntax: int RegExMatch(string input, string expression, ...)


Matches a regular expression with an input string and stores the matches in data elements.
Returns the total number of matched elements (which could be more or less than the
number of data elements actually supplied).
Example:
RegExMatch("[abc]", "(\\[)(.*)(\\])", "dummy", "value") returns 3 and sets the

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

Syntax: string RegExReplace(string input, string expression, string format)


Replaces all substrings in input that match expression, using the format specified in format.
Example:

To remove any white space from a string:


RegExReplace("

e st

ss s","\\s","")

Result: "testsss" To swap the order of sub-strings:

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

Syntax: string Replace(string str, string old, string new)


Searches for all strings matching the "old" parameter and replaces them with the string
given for the "new" parameter. This search-and-replace is performed only within the
specified string (str). For more complex replace operations, use RegExReplace.
Example:

replace("Monday Tuesday","day","night") returns the value "Monnight


Tuesnight".

Back to List of Functions

Function: Right

Syntax: string Right(string str, int n)


Returns n characters, counting from the right (end) of string str.
Example:

Right("01234567890",4) returns the value "7890".


Back to List of Functions

Function: RPad

Syntax: string RPad(string s, int n)


Adds spaces to the end (right) of a string until the string contains n characters. Strings
containing n characters or more are truncated to n characters. Rpad(str, -n) is the same as
LPad(str, n).
Example:

RPad("01234567",9) returns the string "01234567 ".


Back to List of Functions

Function: RPadChar

Syntax: string RPadChar(string in_string, string pad_char, int n)


Adds a specified character to the end (right) of a string until the string contains n
characters. Strings containing n characters or more are truncated to n characters.
Example:

RPadChar(1234567, "0", 10) returns the string "1234567000".


Back to List of Functions

469

Jitterbit Help Manual

Function: RTrim

Syntax: string RTrim(string s)


Removes blanks or spaces from the end of the subject string and returns the remaining
characters.
Example:

Rtrim(" Hello World ") returns a " Hello World".


Back to List of Functions

Function: RTrimChars

Syntax: string RTrimChars(string s, string chars)


Removes all characters in the string chars from the end of the subject string and returns
the remaining characters. Note that the subject string itself is not affected by this call.
Example:

$x = "ABCDEE"; $y = RTrimChars($x, "ADE") // returns


"ABC" In the above script, $y is assigned the value "ABC", whereas $x is still "ABCDEE".
Back to List of Functions

Function: Split

Syntax: array Split(string str, string delimiter)


Since version: 2.0.0
Splits the string str using the given delimiter. Returns the result as an array of size
(number of delimiters) + 1, unless the expression ends with the delimiter in which case the
size equals the number of delimiters (i.e. the last empty value is ignored). If the string
contains no delimiters a vector of size 1 is returned containing the original string.
Example:

$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

Syntax: string ToLower(string s)


Makes all ASCII characters lower case.
Example:

ToLower("Hello World") returns "hello world".


Back to List of Functions

Function: ToProper

Syntax: string ToProper(string s)


Converts a string to proper case.
Example:

ToProper("bob dylan") // Returns "Bob Dylan"


ToProper("arthur c. Clarke") // Returns "Arthur C. Clarke"
ToProper("Peter o'toole") // Returns "Peter O'Toole"
ToProper("paul mccartney") // Returns "Paul McCartney"
Back to List of Functions

Function: ToUpper

Syntax: string ToUpper(string s)


Makes all ASCII characters upper case.

471

Jitterbit Help Manual


Example:
ToUpper("Hello World") returns "HELLO WORLD".
Back to List of Functions

Function: Trim

Syntax: string Trim(string s)


Removes blanks or spaces from the beginning and end of the subject string and returns the
remaining characters.
Example:
Trim(" Hello World ") returns "Hello World".
Back to List of Functions

Function: TrimChars

Syntax: string TrimChars(string s, string chars)


Removes all characters in the string chars from the beginning and the end of the subject
string and returns the remaining characters.
Example:
TrimChars("/* This is a comment */", " /*") returns "This is a comment".
Back to List of Functions

Function: Truncate

Syntax: string Truncate(String s, int first_nchar, int last_nchar)


Returns sub-string of s with first_nchar and last_nchar truncated
Example:
Truncate("a,b,c,",2,1) returns string "b,c".
Back to List of Functions

Function: UrlEncode

Syntax: string UrlEncode(string str[, int option])


Encodes the given string according to RFC 1738. Valid values for the optional option is:
0: Standard URL encoding. Encodes ASCII control characters, Non-ASCII characters,
"reserved" and "unsafe" characters. This is the default if the option is omitted.

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:

$url = "http://hostname/get_doc?name1=" + UrlEncode($value1) +


"&name2=" + UrlEncode($value2);
Back to List of Functions

Function Category: Text Validation

This category has the following function:


Validate

Back to List of Categories

Function: Validate (part of the source validation feature)

Syntax:bool Validate(string operator, string argument, boolean ignore_case)


This is a special function that should be called from a user-defined script for text validation. It is
provided so that the validation script can include the same validation as defined in text
document. Three parameters are available to define the validation function. There are two
required parameters: operator and argument. A third parameter, ignore_case, is optional with
False as the default value.
Example:
If we want to validate a date in this quarter but not in the weekend, the script may look like this:
<trans>
d=Date(CvtDate(_1,_3,"yyyy-mm-dd HH:MM:SS"));
dow=DayOfWeek(d);
// formula_builder function Validate() assume at least three input arguments
are provided from the calling script
// _1(input_string), _2(data_type), _3(format) from calling script
v=Validate("=","THIS_QUARTER",false);
dow!=0 && dow!=6 && $v
</trans>

Back to List of Functions

473

Jitterbit Help Manual


Function Category: XML

The XML function category includes the following functions:


1. Attribute
2. CreateNode
3. GetNodeName
4. GetNodeValue
5. GetXmlString
6. IsNil
7. SelectNodeFromXmlAny
8. SelectNodes
9. SelectNodesFromXmlAny
10. SelectSingleNode

Back to List of Categories


Function: Attribute

Syntax: type Attribute(string attribute_name,string attribute_value)


Creates an attribute for an xml node.
Example:
Attribute("Name","Value")
Back to List of Functions
Function: CreateNode
Syntax: string CreateNode(string namespace,string node_name,type
attribute_subelement,...)
Creates a string representing an XML node. If the target node is the value node of an XML
"any" node, then an XML element corresponding to the node_name and node_value will be
created. The first argument is the namespace of the node and the 2nd argument is the
name of the node, and starting from the 3rd argument a series of value, attributes, and
subnodes can be specified. The attribute and the subnode can be created with the function
Attribute() and CreateNode().

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.))

Back to List of Functions


Function: GetXmlString
Syntax: string GetXmlString(string path)
By double-clicking the desired XML node folder in the Formula Builder's Source Selection
pane, this function returns the corresponding XML string found in the source XML document.
Example:
GetXmlString("Header$DETAIL.")
Back to List of Functions
Function: IsNil
Syntax: bool IsNil(string path)
By double-clicking the desired XML node folder in the Formula Builder's Source Selection
pane, this function returns true, if the corresponding XML node's has attribute "xsi:nil" with
the value of true or 1.

475

Jitterbit Help Manual


Example:
IsNil("Header$DETAIL.")
Back to List of Functions
Function: SelectNodeFromXmlAny
Syntax: type SelectNodeFromXmlAny(string nodeName, type AnyPath)
The first argument is the desired node name, and the second argument is the data element
path of a value node of an xml Any element. The function returns the first xml node from a
list of xml any nodes with the matching node name.
Example:

SelectNodeFromXmlAny("Account",Root$Any#.)
Back to List of Functions
Function: SelectNodes

Syntax: array SelectNodes(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.
Examples:
Example 1
LdapConnect("directory.finland.company.com","ghvwright","1LikesPe@ches",0)</code>
<br> <code>$DirectorySearchResults =
LdapSearch("CN=Users,DC=finland,DC=company,DC=com",
"(&(objectCategory=person)(objectClass=user))", 1, "name", "whenCreated", "description",
"telephoneNumber")
SelectNodes( $DirectorySearchResults,
"/DirectoryResults/Entry[name='Administrator']/whenCreated" )
Example 2
SelectNodes(Root$Any$,"ns1:E2/ns2:E3", "ns1=http://xyz1.com","ns2=http://xyz2.com/")
Notice
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.
Since prefixes ns1 and ns2 are used in XPATH query, they are defined as arguments after
the XPATH.
Back to List of Functions

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

Jitterbit Help Manual

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

Formula Builder Debugging


The formula builder offers some basic debugging functionality, through the special function
DebugBreak, which acts as a breakpoint for the script execution. When the script or
mapping is tested, the Jitterbit script engine stops execution when it reaches a call to
DebugBreak, and sends back information about the current state to the client, including the
values of all data elements, both source data elements and global data elements. This
provides a powerful way to test the logic you put in the script.
When running a test, the formula builder will automatically switch to the "Test" tab (see
screenshot below). Here you can see the current variables of all script variables, in the Data
Elements table. When stopped at a breakpoint you can also change the value of variables by
clicking in the "Value" column. The new value you entered is sent back to the script engine
when the test is resumed. The value and type of a variable is also displayed in a popup if
you hover with the mouse over the name of the variable in the expression area.
You can also control the debugging process through a row of buttons in the "Test" tab's
toolbar. From left-to-right, these buttons are:
Start test: Starts a new test. This button is disabled if a test is already running.
Resume test: When the test has stopped at a breakpoint, click this button to
resume the test. The test will run until it comes to another breakpoint or until it has
completed.
Run next statement: When test test has stopped at a breakpoint, click this button
to run only the next statement of the script. This allows you to step through the
script "line by line".
Stop test: This stops the current test, allowing you to start a new test.
Disable breakpoints: Select this check box if you want the test to ignore all calls to
DebugBreak.
Only one test can be run at the time. If you try to start a new test while another test is
runnig you will get an error message that prompts you to stop the current test first. The
current test can be stopped from the "Test" tab, or from the top-level "Actions" menu in the
main window (Actions > Stop Current Test).
The DebugBreak function is only called when you do a test (Test Script, Test

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:

Formula Builder for LDAP


Note: New in version 1.3 is native support for LDAP as sources and targets. This means that
you in most cases do not need to use Formula Builder scripting in order to interact with an
LDAP server.
LDAP (Lightweight Directory Access Protocol) is a protocol that lets you search and update a
directory. It is supported by several directory servers, such as Microsoft Active Directory and
Netscape Directory Server. A directory usually contains information about users and network
resources, but can contain any kind of data.
To use LDAP with Jitterbit do the following:

479

Jitterbit Help Manual

1. Create a transformation. See Creating an Operatation for more information.


2. Open the Formula Builder by selecting a node in the target tree and then clicking
on the Formula button under the tree. See Formula Builder for more information.
3. In the Formula Builder's function tree (in the lower left pane) scroll down to the
LDAP section to find the functions you can use with LDAP:
Code:
bool LdapConnect(string host, string user, string password, int secure)

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

Jitterbit Help Manual

To execute the search and replace:


Code:
LdapExecute()
Example of how to search a directory:
Code:

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

Enterprise Edition Features


Enterprise Edition Features
The Jitterbit Enterprise edition includes several features not available in other Jitterbit
editions.
Click to view help on these Enterprise-only features:
Required Plugins
Import Project Data
Restore from Server Backup
Download a Project
Questions? Drop us a line at customersupport@jitterbit.com or visit the Jitterbit Support
forum and Ticket Portal: help.jitterbit.com

Enterprise Edition Features


The Jitterbit Enterprise edition includes several features not available in other Jitterbit
editions.
Click to view help on these Enterprise-only features:
Required Plugins
Import Project Data
Restore from Server Backup
483

Jitterbit Help Manual

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

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.

485

Jitterbit Help Manual


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.
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

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

Jitterbit Help Manual

<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

<PipelinePosition Optional="True" Relative="OnRequest"


ExecutionOrder="75">WebServiceCall</PipelinePosition>
</PipelinePlugin>
</JitterbitPlugin>

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.

In this example, a plugin is required.


With operations that do not require a plugin, the message will be, "No plugins are
used."
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 plugin is installed, you will receive the following confirmation:

If the required plugin is not installed on the server, you will receive a message like
this:

489

Jitterbit Help Manual

For steps to install a required plugin, click here.

Applying Pipeline Plugins


Plugins provide a way to extend the functionality of Jitterbit by adding functionality your
projects require. A detailed discussion on plugins can be found here:

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

The following assumes you are applying a plugin to a Source.


1. Right-click on the Source, and select Plugin... from the popup menu. This brings up
the plugin dialog.
2. The dialog has two parts:
The top part, Currently assigned, shows what plugins are currently applied to the
selected Source.
The bottom part, Available plugins, shows the plugins that are available for the
selected Source on a given Jitterbit server. To view the plugins for a server,
select the server in the dropdown list.
Note: The plugin information is cached locally on the client. To ensure that you
are viewing the current list of plugins, press the Refresh button to download the
available plugins from the server. You need to do this e.g. when you have
installed a new plugin on that server.

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.

CPP Plugin SDK


Java Plugin SDK
XML in, XML out
A plugin can change data (files and data elements). It is passed the file name of an XML file
that represents the input and it creates an output XML file. The input XML contains a list of
files that are relevant at that point in the pipeline, if the plugin runs after the source files
have been fetched from a remote site, the corresponding local file names are listed in XML
input. The XML input also lists data elements that have been defined by transformation
scripts or by other plugins. After the work is performed, the XML output, consisting of new
or the same files and changed or new data elements, is generated. If you are using the SDK
classes, then this process of parsing and creating XML is automated for you.

491

Jitterbit Help Manual


Import Project Data
Jitterbit Enterprise provides the option of importing project data from the server. This
feature enables you to import an entire project or select project components for import to
the current project on your local machine.
Note that a project import references the project components on the server; that is, it does
not provide a deep copy unless you also execute a "deep copy" operation. Be aware that
changes to a referenced server project result in changes to the client project that references
it.
Click File > Import Project Data. The Import Project Items dialogue appears.
The Import To pane on the right displays your current project.

In the right pane, select an operation to import to.


In the left pane, highlight "Select a project to import from...]"
Then, in the upper right corner of the dialogue, click Select.
A list of server projects appears.

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

Jitterbit Help Manual

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:

Select one or more items and click Continue.


If any item IDs of the import are identical to those in your target project, you will
receive the following "ID Collision" message:

494

Reference

Click the desired action.


When the import is completed, the Import Project Items dialogue will reappear. Click
Close.

Restore from Server Backup


Jitterbit Enterprise offers the option of restoring a project from a server backup (not
available in the Professional edition).
In the Administration pane, click Project Console.
Your localhost projects are displayed in the top pane.
Click the View Available Backups on the right. This populates the list of serverbackup projects in the bottom pane.

495

Jitterbit Help Manual

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

Using Global Variables


Click to view Local Variables.
Occasionally, the need arises to use values created in one transformation in another
transformation, for example, a sessionID returned from a login web service is required when
calling subsequent web services for authentication purposes.
The need can also arise to use values created in one part of a transformation at a later
stage in that transformation, for example, RecordNumber is initialized and incremented for
every record inserted into a target to identify its item number.
Sometimes, we need to use values returned in one transformation in the definition settings
of subsequent operations, for example, the URL setting returned by one transformation is
used to set the Web Service URL of a subsequent web service call.
In all of these instances, you can use global variables to share the information in question
with other parts of the operation or transformation. However, please note that global
variables are only available for chained operations, that is, subsequent operations called
from the operation that created the global variables using On Success and On Failure
operation settings. Global Variables can also be used within the same transformation.
Create and Update Global Variables
A global data element is defined by calling the Set function. For example:
Set("ServerURL",URL)
would create or update a global variable called ServerURL with an element/field called URL
that comes from a source. An alternative syntax is to use $DataElementName to reference
global data elements, e.g.
$ServerURL=URL
In a transformation formula you would use the Get function to retrieve the value of global
variable. For example, Get("ServerURL") would get the value of the global variable called

497

Jitterbit Help Manual

"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

The name of th source file. Holds the leaf part


of the locator, eg "po.xml" if the locator is
"ftp://ordersrv/orderdrop/po.xml". This
variable is only available while a
transformation using this file is executing.

jitterbit.source.filenames

Array

Same as jitterbit.source.locators but only


holding the leaf part of the locators (see
jitterbit.source.locator). It is available as long
as it has not been overwritten by another
operation in an operation chain.

jitterbit.source.locator

String

The locator used to fetch the file. This can be a


url or a path to a file share. e.g.
"ftp://ordersrv/orderdrop/po.xml". This
variable is only available while a
transformation using this file is executing.

jitterbit.source.locators

Array

An array containing all the locators that will be


processed. This variable is available after the
source files have been fetched. It is available
as long as it has not been overwritten by
another operation in an operation chain.

499

Jitterbit Help Manual

jitterbit.source.preserve_cha
r_whitespace

boolean,
default:
false

Set this to true if you want to preserve


whitespace in source data. The default is to
trim white-space from the beginning and end
of strings in the source.

jitterbit.source.sftp.ssh_key
_id and
jitterbit.target.sftp.ssh_key_
id

string,
default:
empty

For configuring multiple SSH keys. If these are


both empty then the following default
jitterbit.conf configuration is used for all sftp
sources and targets with no password defined:
[SSH]
PublicKeyFile='Z:/ssh/rsa2048.pub'
PrivateKeyFile='Z:/ssh/rsa2048'
PrivateKeyPassphrase=secret
if this variable is set to a string (e.g. RSA)
then the following configuration option will be
used for the source or target depending on
which variable was defined.
PublicKeyFileRSA='Z:/ssh/id_rsa.pub'
PrivateKeyFileRSA='Z:/ssh/id_rsa'
PrivateKeyPassphraseRSA=verysecret
This allows the user to pick different private
keys when using public/private SSH key
authentication for different sftp sources and
targets.

jitterbit.source.http.ssl_cert
_id

String

An identifier for a configuration entry in


jitterbit.conf for the SSL certificate to use for
http sources. See also About SSL Certificates.

jitterbit.target.http.ssl_cert_
id

String

An identifier for a configuration entry in


jitterbit.conf for the SSL certificate to use for
http targets. See also About SSL Certificates.

jitterbit.web_service_call.ssl
_cert_id

String

An identifier for a configuration entry in


jitterbit.conf for the SSL certificate to use for
http web service calls. See also About SSL
Certificates.

500

Reference

jitterbit.source.size

Integer

Size of the source file in bytes, 0 for database


sources.

jitterbit.source.sizes

Array

An array containing all the sizes of the source


files that will be processed. This variable is
available after the source files have been
fetched. It is available as long as it has not
been overwritten by another operation in an
operation chain.

jitterbit.source.file_limit

Integer

Maximum number of files to process for a file


share or ftp source. This limit is applied after
the files have been listed and filtered.

jitterbit.source.ftp.transfer_t
imeout

Integer

Set the transfer time-out in seconds for ftp


source transfers. The default transfer time-out
for ftp is one hour (3600 seconds). Set to zero
to disable.

jitterbit.source.http.transfer
_timeout

Integer

Set the transfer time-out in seconds for http


source transfers. The default transfer time-out
for http is one hour (3600 seconds). Set to
zero to disable.

jitterbit.source.file_share.file
_list_limit

Integer

This option limits the number of files that are


listed for a file share. It is applied before the
filter. This option is more efficient than
jitterbit.source.file_limit but it can only be used
if all the files in a directory are to be
processed. In all other cases use
jitterbit.source.file_limit for file share sources
as well.

jitterbit.source.db.character
_encoding

String

Specify the character encoding for ODBC


source database character/text columns. If no
encoding is specified Latin-1 (ISO-8859-1) is
assumed. For supported encodings, see
Supported Character Encodings.

jitterbit.source.db.preserve_
char_whitespace

Boolean

Preserves whitespace in char(n) database


source columns if the length of the data is less
than n. The default is false.

501

Jitterbit Help Manual

jitterbit.source.text.csv_null
able

Boolean

If set to true CSV files can contain null data


elements. Two consecutive commas in a file
will be interpreted as null.

jitterbit.source.text.characte
r_encoding

String

Specify the character encoding for text source


documents. If no encoding is specified Latin-1
(ISO-8859-1) is assumed. For supported
encodings, see Supported Character Encodings.

jitterbit.target.file_count

Integer

After all the input files have been transformed,


this data element is set to the number of
target files that will be transferred.

jitterbit.target.db.include_nu
ll_in_sql_statement

Boolean

If set to true, INCLUDE and UPDATE


statements generated by Jitterbit for database
targets will contain explicit null values for
columns that are nullable and has a mapping
with a null result. The default is false.

jitterbit.target.db.character_
encoding

String

Specify the character encoding for ODBC target


database character/text columns. If no
encoding is specified Latin-1 (ISO-8859-1) is
assumed. For supported encodings, see
Supported Character Encodings.

jitterbit.target.db.commit_ch
unks

Boolean

If set to true and chunking is enabled for an


operation with a database source, each chunk
is committed to the database as it is created.
This setting can make the transformation run
faster as chunks can be committed in parallel.

jitterbit.target.db.no_data_a
ction

String

Option for what to do if an empty database


target is created. Valid values are "Ok",
"Warning" or "Error". The default (for when this
variable is not set) can be changed in
jitterbit.conf with the option
[ErrorHandling]/NoTargetDataGenerated. If
nothing is specified there either the default is
to issue a warning.

jitterbit.target.file_share.cre
ate_directories

Boolean

Set to true if you want file share target


directories to be checked and created. If the
directory is known to exist then don't use this

502

Reference

option. The default value is false.

jitterbit.target.ftp.transfer_ti
meout

Integer

Set the transfer time-out in seconds for ftp


target transfers. The default transfer time-out
for ftp is one hour (3600 seconds). Set to zero
to disable.

jitterbit.target.http.transfer_
timeout

Integer

Set the transfer time-out in seconds for http


target transfers. The default transfer time-out
for http is one hour (3600 seconds). Set to
zero to disable.

jitterbit.target.http.form_dat
a

Boolean

If set to true each target file is uploaded using


RFC 1687 form upload.

jitterbit.target.http.form_dat
a.name

String

If RFC 1687 form upload is used this sets the


name of the form.

jitterbit.target.http.form_dat
a.filename

String

If RFC 1687 form upload is used this sets the


name of the uploaded file.

jitterbit.target.http.form_dat
a.ContentType

String

If RFC 1687 form upload is used this sets the


Content-Type of the file.

jitterbit.target.http.remove_
trailing_linebreaks

String

If set to true, trailing line breaks will be


removed before the target data is posted.

jitterbit.target.text.character
_encoding

String

Specify the character encoding for target text


documents. If no encoding is specified Latin-1
(ISO-8859-1) is assumed. For supported
encodings, see Supported Character Encodings.

jitterbit.target.xml.prettify

Boolean

If set to true, XML targets are written with line


breaks and tab indention. This is easier to read
but the resulting file will be bigger. The default
is true.

jitterbit.target.xml.num_for_
bool

Boolean

If set to true, XML boolean target values will be


represented with "0" or "1" for false and true
values respectively. This is the default so to
get the string values "true"/"false" instead you
need to set this parameter to false.

503

Jitterbit Help Manual

jitterbit.text.qualifier_requir
ed

Boolean

Set to true if the string qualifier is required for


text targets. If set to false the string qualifier
will only be written when needed. The default
is false.

jitterbit.transformation.auto
_streaming

Boolean

Set to false if you don't want to use auto


streaming. The default is configured in
jitterbit.conf. This option is mostly for working
around bugs in the streaming transformation
implementation so the default should be used
unless there are specific problems.

jitterbit.transformation.chun
king

boolean

Set to true if the current transformation


mapping runs with chunking. Not applicable in
scripts.

jitterbit.transformation.chun
k_number

Integer

For chunked operations, holds a number


between 1 and
$jitterbit.transformation.total_chunks for the
currently executing transformation mappping.
For non-chunked operations it has the value 1.

jitterbit.transformation.jbxm
lparser

boolean,
default:
false

Use alternative XML parser implementation


which uses less memory when handling large
XML source files and the transformation
doesn't qualify for streaming transformations.

jitterbit.transformation.nam
e

String

Name of the currently executing


transformation.

jitterbit.transformation.threa
d_number

Integer

For multi-threaded transformations, holds a


number between 1 and
$jitterbit.transformation.total_threads for the
currently executing transformation mapping.
For single threaded transformation it has the
value 1.

jitterbit.transformation.timin
g_on

boolean,
default:
false

Enable writing profile information for the


current operation chain. This is the same as
setting TimingOn=true in jitterbit.conf but only
for the current operation chain or until the
value is set to false again.

504

Reference

jitterbit.transformation.total
_chunks

Integer

Holds the total number of chunks being


processed by the current operation. For nonchunked operations it has the value 1.

jitterbit.transformation.total
_threads

Integer

Holds the maximum number of threads being


executed by the current operation. For nonthreaded operations it has the value 1.

jitterbit.transformation.trim_
extra_linebreaks

Boolean

Extra trailing line breaks in target mappings


will be trimmed. This is normally what is
desirable, but for backwards compatibility you
can set this flag to false to leave the line
breaks alone. The default is true.

jitterbit.web_service_call.ma
x_redirs

Integer

Maximum number of redirects to follow when


calling a web service. Set to a negative number
to follow any number of redirects. The default
is 0 (zero), i.e. no redirects are followed

jitterbit.web_service_call.nu
mber_of_retries

Integer

If a call to a web service fails, retry this many


times. The default is to not try again.

jitterbit.web_service_call.ret
ry_wait_seconds

Integer

If a call to a web service fails and retries are


enabled by setting
$jitterbit.web_service_call.number_of_retries
to a positive integer, wait this many seconds
between retries.

jitterbit.web_service_call.sy
nc_response

boolean,
default:
true

Set to false to skip a step in processing of web


service responses. This step is only necessary
when processing SOAP arrays and can be
skipped in other cases but by default its
always done.

jitterbit.web_service_call.tim
e_out

Integer

Set the transfer time-out in seconds for web


service calls. The default transfer time-out for
web service calls is one hour (3600 seconds).
Set to zero to disable.

jitterbit.operation.error

String

All errors that have occurred in the operation,


seperated by line-breaks.

505

Jitterbit Help Manual

jitterbit.operation.guid

String

The GUID of the currently executing operation.

jitterbit.operation.last_error

String

The last error that occurred in the operation.

jitterbit.operation.log_level

Integer

Set to the minimal log level which should result


in an entry in the operation log. Can be used to
disable logging of success messages if speed is
a main concern. Valid values are: 1: Log
everything, 2: Log errors and warnings, 3: Log
only errors.

jitterbit.operation.name

String

Name of the currently executing operation.

jitterbit.operation.previous.e
rror

String

Error reported from previous operation if that


operation failed.

jitterbit.operation.write_hist
ory

Boolean

Set to false to disable writing operation history.


Only do this if speed is of utmost importance.

jitterbit.scripting.while.max_
iterations

Integer

The maximum number of times that the body


of a while loop will execute. Setting it to less
than one reverts to the default of 50,000
iterations.

jitterbit.scripting.nesting.ma
x

Integer

Maximum nesting level for


RunScript/RunOperation calls. If the nesting
level is exceeded the operation will fail. The
default is 10 so if your application needs
deeper nesting than this for some reason it has
to be increased.

jitterbit.scripting.db.auto_co
mmit

Boolean

Set to false to run DbExecute and DbLookup


statements in a transaction. Auto commit is
turned on by default.

jitterbit.scripting.db.rows_aff
ected

Integer

The number of rows affected by a call to


DbExecute or DbLookup.

jitterbit.scripting.db.max_ro
ws

Integer

Maximum number of rows to fetch in a call to


DbExecute. The default is 10,000.

506

Reference

jitterbit.scripting.db.transact
ion

Boolean

Set to true if you want DbExecute/DbLookup


calls to run in a transaction.

jitterbit.scripting.ldap.includ
e_dn_in_results

Boolean

When set XML-formatted LdapSearch() results


will include the DN attribute for each Entry.

jitterbit.scripting.ldap.max_s
earch_results

Integer

The maximum number of entries LdapSearch()


should return.

jitterbit.scripting.ldap.return
_null_if_no_results

Boolean,
default:
false

If an LDAP query returns no results a NULL


data element is returned. The default is to
return an empty array data element. This is for
backward-compatibility only.

jitterbit.scripting.ldap.use_p
aged_search

Integer

Use paged search when searching LDAP


directories. This option is useful for retrieving
large result sets.

jitterbit.scripting.ldap.scope

Integer

The scope LdapSearch() should use. The


options are:
0 -- Search the base-entry only.
1 -- Search all entries in the first level
below the base-entry, excluding the baseentry.
2 -- Search the base-entry and all entries
in the tree below the base.

$jitterbit.sfdc.auto_fieldsToN
ull

Boolean

If set to true, fieldsToNull elements for


Salesforce web service calls will be
automatically inserted when NULL or an empty
string is mapped to a field.
The default is true for backwards compatibility
with previous versions where this was a
manual process. This flag should be set to true
if you plan to map null
or empty fields and expect those to be set to
null in Salesforce.

507

Jitterbit Help Manual

jitterbit.networking.http.req
uest.header.HeaderName

String

Set when handling a hosted web service call or


an HTTP Endpoint. With HeaderName
substituted by the name of an HTTP header
this data element holds the corresponding
value. E.g. the variable
jitterbit.networking.http.request.header.Conten
t-Type will hold the mime type of the body of
the request.

itterbit.networking.http.requ
est.method

String

When an HttpEndPoint is called, this variable is


set to the method used (GET, PUT and POST
are the most common values).

jitterbit.networking.http.resp
onse.header.HeaderName

String

Set when handling an HTTP Endpoint to send


back a custom HTTP header. Can be used to
send back HTTP headers such as Location for
redirect.

jitterbit.networking.http.resp
onse.content_type

String

Set this variable to override the response


content type for an Http Endpoint.

jitterbit.networking.http.resp
onse.status_code

Integer

Set this variable to override the response


status code for an Http Endpoint. By default
Jitterbit returns status code 200. Can be used
to set a custom success code (2xx), redirect
(3xx), client error (4xx) or server error (5xx).
Illegal values will revert to 200.

jitterbit.networking.peer.ip

String

Set when handling a hosted web service call or


an HTTP Endpoint. Holds the ip-number of the
host calling the web service or accessing the
HTTP Endpoint.

jitterbit.networking.http.que
ry.ParameterName

String

Set when handling a hosted web service call or


an HTTP Endpoint. With ParameterName
substituted by a URL query parameter name
this data element holds the corresponding
value. This is for URL query data of the type
?a=b&c=d.

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.

Manual Connection String


In defining a database source or target, the information entered in the different fields
(driver, database, login, etc) is used to construct a connection string that Jitterbit uses
when it needs to connect to the database during an operation. However, you also have the
option to specify this connection string manually.

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.

Supported Character Encodings


Character Encoding

Alias

UTF-8

UTF-8
ibm-1208
ibm-1209
ibm-5304
ibm-5305

509

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Jitterbit Help Manual

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

Formula Builder .................382, 402, 459

Activating Operations........................ 254

Formula Builder Functions ................. 462

Archiving......................................... 251

Function call .................................... 489

Available plugins ....................... 454, 547

Function Category ..................... 481, 512

Backup ........................................... 554

Hosted Web Service.......................... 409

Hosted Web Service Operation ........... 409

Chained Operation............................ 259

HTTP Endpoint ................................. 431

Check File Transfer History ................ 256

HTTP Response ................................ 310

Chunk Size ...................................... 264

Storing/Redirecting........................ 310

Complex Text Documents .................. 413

HTTP Source .................................... 278

Creating an Operation ....................... 251

HTTP Target .................................... 314

CRM app ......................................... 247

Web Service ................................. 247

Instance Mapping ............................. 382

Data Transformation Types......... 323, 347

Jitterbit Operation From Other


Applications .................................. 263

DbInfo .............................................. 44
Deploy ............................................ 254
Diff ................................................. 485

Jitterbit Reference ............................ 539


Jitterbit Utilities.................................. 43
Jitterpaks ................................. 247, 248

E
Email Message ................................. 427

L
LDAP .............................................. 507

F
File Shares ........................................ 36
File Transfers ................................... 256
Repeating ..................................... 256

LDAP Functions ................................ 507


LDAP Source ............................. 283, 393
Ldap_target_id ................................ 507
Localhost .......................................... 44

563

Jitterbit Help Manual

Stopping ........................................ 45

M
Manual connection............................ 568

Scheduler Console ............................ 424

Mapping Options dialog ..................... 389

Scheduler Status .............................. 424

Monitoring ......................................... 49

Select Administration Console .............. 35

Multiple Mapping .............................. 387

Server .............................................. 32

Multiple operations ........................... 259

Login ............................................. 32

Server Details dialog .......................... 47

New Script ...................................... 429

Simple Text Documents .................... 413

Source ............................................ 269

Operation History ............................. 256

Select which type .......................... 269

Operations Log ................................ 255

Source Loop Node ............................ 397

Operations Queue ..................... 257, 258

SQL .................................................. 44

Password ........................................ 296

Target ............................................ 298

Path ............................................... 296

Target Types ................................... 351

Pending Processes ............................ 258

Temporary Storage .......................... 316

Permissions ....................................... 44

Temporary Storage Source ................ 284

PostgreSQL ....................................... 44

Test................................................ 254

Project Tree....................................... 26

Test All Connections ........................... 10

Test Operations ............................... 254

Restore ........................................... 554

Test Source Data ............................. 289

Test Transformation ......................... 405

Salesforce Query Operation ........ 146, 164

Text Document Definition .................. 420

Schedule Name ................................ 423

Threading........................................ 264

Scheduler.......................................... 45

Transformation ......................... 321, 322

bypass ........................................... 45

Transformation Mapping.................... 401

Controlling...................................... 45

Transformation Name ....................... 369

564

Index

Transformation Toolbar ....................... 33

Web Service Call ........ 369, 373, 454, 547

Transformation Wizard ............... 369, 401

Web Service Definition dropdown list .. 369

Web Service Method ......................... 407

Using Global Variables ...................... 557

Web Service Response ...................... 369

View Known Server ............................ 47

Xml .................................................. 37

XML Standard Transformation .............. 83

Web Service ............................. 247, 410

XSD.................................................. 83

Calling ......................................... 410

generate ........................................ 83

CRM app ...................................... 247

565