Quick Start Guide. EnterpriseEnablerQuickStartGuide with new tem. Model: Version 7.0, 9/2010 VERSION: Page 1 of 74

Similar documents
Business Insight Authoring

appcompass Developer s Guide For: appcompass Data Integration Studio appcompass Business Rules Studio appcompass Visual Studio Editions

Real Application Security Administration

Teiid Designer User Guide 7.5.0

Index A, B, C. Rank() function, steps, 199 Cloud services, 2 Comma-separated value (CSV), 27

GETTING STARTED WITH CODE ON TIME Got data? Generate modern web apps in minutes. Learn to create sophisticated web apps with Code On Time application

Oracle Database. Installation and Configuration of Real Application Security Administration (RASADM) Prerequisites

Workspace Administrator Help File

Enterprise Data Catalog for Microsoft Azure Tutorial

Third generation of Data Virtualization

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10

WebSphere. Clips and Tacks: Getting started with the IBM BPM suite of products

These are the steps you will take to complete the tutorial. They are also the common processes through which you will create your own operations.

Accurate study guides, High passing rate! Testhorse provides update free of charge in one year!

Table of Contents. Tutorial The Basics Prerequisites Concepts... 1 Information... 1 Learning Objectives... 2

VMware AirWatch Database Migration Guide A sample procedure for migrating your AirWatch database

COPYRIGHTED MATERIAL. Contents. Introduction. Chapter 1: Welcome to SQL Server Integration Services 1. Chapter 2: The SSIS Tools 21

DB2 for z/os Stored Procedure support in Data Server Manager

Data Integration and ETL with Oracle Warehouse Builder

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Logi Ad Hoc Reporting System Administration Guide

Scribe Insight 6.5. Release Overview and Technical Information Version 1.0 April 7,

Getting Started with Performance Manager

Logi Ad Hoc Reporting System Administration Guide

Teiid Designer User Guide 7.7.0

Jitterbit is comprised of two components: Jitterbit Integration Environment

Document Manager. Balance Point Technologies, Inc. Document Manager. User Guide. Certified MAX Integrator

ZENworks Reporting System Reference. January 2017

Integration Service. Admin Console User Guide. On-Premises

Integration Services. Creating an ETL Solution with SSIS. Module Overview. Introduction to ETL with SSIS Implementing Data Flow

Building Self-Service BI Solutions with Power Query. Written By: Devin

User Guide. Data Preparation R-1.0

Integration Service. Admin Console User Guide. On-Premises

ER/Studio Enterprise Portal User Guide

Elixir Repertoire Designer

PanelView Plus and Text Historian Guide

Configuring External Links in Visual Discovery AE

ForeScout Open Integration Module: Data Exchange Plugin

SAS Data Integration Studio 3.3. User s Guide

Release notes for version 3.7.2

Intellicus Enterprise Reporting and BI Platform

Welcome to the JReport Tutorial

SQL Server Integration Services

User Guide. Data Preparation R-1.1

Quality Gates User guide

Product Documentation. ER/Studio Portal. User Guide. Version Published February 21, 2012

IBM WebSphere Adapter for Oracle E-Business Suite Quick Start Tutorials

Introducing Rational ClearQuest

Database Tables Lookup Wizard Relationships Forms Subforms Queries Reports

Using SQL Developer. Oracle University and Egabi Solutions use only

Release notes for version 3.7.1

HYPERION SYSTEM 9 BI+ GETTING STARTED GUIDE APPLICATION BUILDER J2EE RELEASE 9.2

Kendo UI. Builder by Progress : Using Kendo UI Designer

Installation Guide for 3.1.x

User Manual. ARK for SharePoint-2007

Jet Data Manager 2014 SR2 Product Enhancements

Vendor: Microsoft. Exam Code: Exam Name: Implementing a Data Warehouse with Microsoft SQL Server Version: Demo

API Gateway Version September Key Property Store User Guide

Before you start proceeding with this tutorial, we are assuming that you are already aware about the basics of Web development.

Enterprise Reporting -- APEX

Starting ParTEST. Select Start, Programs ParTEST ParTEST Enter your User Name and password

Information Design Tool User Guide SAP BusinessObjects Business Intelligence platform 4.0 Support Package 4

Installation Guide.

Techno Expert Solutions An institute for specialized studies!

ecopy Quick Connect Administrator s Guide Version 4.5 for ShareScan Part Number: (1/2009)

EVALUATION COPY. Unauthorized Reproduction or Distribution Prohibited SHAREPOINT 2016 POWER USER

Masking Engine User Guide. October, 2017

Doc. Version 1.0 Updated:

Microsoft Windows SharePoint Services

Using Jive and SharePoint Together

EMC SourceOne for Microsoft SharePoint Version 6.7

1Z0-526

Using Jive and SharePoint Together

KYOCERA Net Admin User Guide

External Data Connector for SharePoint

Griffin Training Manual Grif-WebI Introduction (For Analysts)

Welcome to the JReport Tutorial

Hyperion Interactive Reporting Reports & Dashboards Essentials

Teamcenter 11.1 Systems Engineering and Requirements Management

MICROSOFT BUSINESS INTELLIGENCE

OSR Composer 3.7 User Guide. Updated:

SQream Dashboard Version SQream Technologies

User's Guide c-treeace SQL Explorer

EMC Documentum TaskSpace

Perceptive Nolij Web. Administrator Guide. Version: 6.8.x

Help on Metadata Manager

Epicor ERP Advanced Dashboards Course

Jet Data Manager 2014 Product Enhancements

Contents. Properties: Field Area Fields Add a Table to a Form... 23

Sage 300 ERP Intelligence Reporting Connector Advanced Customized Report Writing

Lesson 1: Creating and formatting an Answers analysis

Brainware Intelligent Capture Visibility

LimeSurvey User Guide to Creating Surveys

Perceptive Matching Engine

SharePoint 2013 Power User

INTRODUCTION ACCESS 2010

Oracle 1Z0-272 Exam Questions & Answers

1 Dulcian, Inc., 2001 All rights reserved. Oracle9i Data Warehouse Review. Agenda

Analytics: Server Architect (Siebel 7.7)

Style Report Enterprise Edition

Transcription:

Quick Start Guide Model: Version 7.0, 9/2010 VERSION: Page 1 of 74

Table of Contents 1 PREFACE... 4 2 BACKGROUND ON ENTERPRISE INTEGRATION... 5 2.1 EAI... 5 2.2 ETL... 5 2.3 AIS... 6 3 INTRODUCTION TO ENTERPRISE ENABLER... 8 3.1 CLIENT TOOLS... 8 3.1.1 Template Designer... 8 3.1.2 Map Designer... 8 3.1.3 Process Designer... 8 3.2 SERVER COMPONENTS... 9 3.2.1 Templates... 9 3.2.2 Maps... 9 3.2.3 Runtime Processes... 9 3.3 ARCHITECTURE... 10 3.4 NT SERVICES... 11 3.4.1 Process Manager... 11 4 GETTING STARTED... 12 4.1 CASE STUDY OVERVIEW... 12 4.2 PREREQUISITES... 12 4.3 TOOLS REQUIRED FOR THIS TUTORIAL.... 12 4.4 SAMPLE DATA... 14 5 CREATING SOURCE TEMPLATES... 15 5.1 DATABASE SOURCE TEMPLATE... 15 5.1.1 Schema... 16 5.1.2 Query... 19 5.2 XML SOURCE TEMPLATE... 22 5.2.1 XSD... 22 5.2.2 Manual... 23 5.3 TEMPLATE DETAILS... 24 6 CREATING DESTINATION TEMPLATES... 27 6.1 DATABASE DESTINATION TEMPLATE... 27 6.2 XML DESTINATION TEMPLATE... 30 6.3 DELIMITED TEXT TEMPLATE... 30 Model: Version 7.0, 9/2010 VERSION: Page 2 of 74

7 CREATING MAP DEFINITIONS... 32 7.1 XML-> DB... 32 7.2 RELATIONSHIPS... 33 7.3 DB -> TEXT... 37 7.4 DB -> XML... 38 8 MAP EXECUTION CONSOLE... 41 9 PROCESS DESIGNER... 42 9.1 PROCESS VARIABLES... 43 9.2 TRIGGER NODES... 43 9.2.1 Http Receive Node... 44 9.2.2 Regular Interval... 46 9.3 ACTION NODES... 48 9.3.1 Transformation Node... 48 9.3.2 Custom Action Node... 49 9.4 SEND NODES... 51 9.4.1 FTP Send... 51 9.4.2 Send Email Node... 52 9.5 TRANSITIONS... 54 9.6 SPECIAL NODES... 55 9.6.1 Parallel Split Node... 55 9.6.2 Merge Node... 55 10 MONITORING TOOLS... 56 10.1 PROCESS MANAGER... 56 11 DEPLOYMENT... 58 11.1 CONNECTION MANAGER... 58 11.2 DEPLOYMENT MANAGER... 59 12 ADO.NET CONNECTION TO ENTERPRISE ENABLER... 60 12.1 ARCHITECTURE... 60 12.2 EE APPLICATION DEFINITION... 61 12.3 PREREQUISITES... 61 12.4 STEPS TO CREATE APPLICATION DEFINITION... 61 12.5 ACCESSING DATA USING ENTERPRISE ENABLER ADO.NET API... 68 13 SHAREPOINT CONNECTION... 70 13.1 ARCHITECTURE... 70 Model: Version 7.0, 9/2010 VERSION: Page 3 of 74

1 Preface The purpose of this document is to help anyone new to Enterprise Enabler to learn how to get started building integration. If you have not already downloaded and installed your Enterprise Enabler, please confirm the sys requirements and download from your favorite provider or www.enterpriseenabler.com. Once the sys is installed successfully, you can follow this document for step-by-step instructions for building a full integration, testing it, and deploying it. If you are new to Enterprise Enabler or integration in general, please follow these steps: 1. Read Chapter 2, Introduction to Enterprise Integration for a quick overview of general integration term and concepts. 2. Read Chapter 3, Introduction to Enterprise Enabler Server for an overview of Enterprise Enabler Architecture 3. Read Chapters 4-10 for a brief tutorial on how to build and use component in Enterprise Enabler Server 4. Have a look at the samples directory in the EE distribution; it contains the samples used in this document 5. FAQs and How-tos are provided on the Knowledge Base If you have questions or issues, please post to the user forum. Model: Version 7.0, 9/2010 VERSION: Page 4 of 74

2 Background on Enterprise Integration It s good to have a little background on the evolution of data integration. Historically, Enterprise Integration has been strictly classified in two separate categories: ETL (Extract, Transform, Load) EAI (Enterprise Application Integration) Then came SOA (Service Oriented Architecture) which has become a common mode for applications to exchange information as well as share functionality, and softening the strict separation of the two categories. A new category has emerged, AIS (Agile Integration Software), which includes Enterprise Enabler. 2.1 EAI EAI a strategy or framework by which an organization centralizes and optimizes application integration. EAI is typically a single-record, push-based architecture used to send messages and not designed for pulling large result sets from queries EAI is best applied when: Connecting applications in real-time for business process automation. Facilitating changes (typically a small set of records) in one application and reflecting it elsewhere Data changes must be captured and delivered reliably EAI does not perform well for reporting large data sets Reporting and analytics Working with large data sets or aggregated data (1) 2.2 ETL ETL Extract, transform and load moves data from multiple sources and loads it into another database, a data mart or a data warehouse for analysis or on another operational sys to support a business process. (2) Model: Version 7.0, 9/2010 VERSION: Page 5 of 74

ETL is useful when you need to: Create a common gateway with a single access point to disparate data Provide more flexible and ad-hoc access by end users or applications Access only the data required to meet business needs, including o XML, o LDAP, o flat files and other non-relational data (1) 2.3 AIS AIS, Agile Integration Software, incorporate the best of EAI, ETL, and SOA, and are intelligent, easy to use, and flexible enough to adapt to the business and technology demands as they change. AIS is useful when you need to: Merge data from multiple sources without staging Change your integration often to adapt to new situations or incorporate new data sources For example, in a merger/acquisition situation Enterprise Enabler falls into the category of Agile Integration Software, and offers all of the ten key characteristics of AIS: It must be "off the shelf" or "out of box" or downloadable, whatever term you like. That means that you can install it in just a few minutes. If it takes a week or months to install, you are definitely not going to have an agile environment! It must require little or no training to get started building connectivity. A data analyst should be able to design and build data mapping and transfers. This means the people who know what the result really needs to be can actually do the implementation You must be able to design, develop, test, and deploy from within a single environment. No separate effort to generate and assemble a run-time components It must support accessing, transforming, and aligning data from multiple sources live without staging in a database or interim store. Real time data access and availability is a critical aspect of an agile enterprise. Think what work it takes and what value is lost when the data must be staged before it is transferred to wherever it is going. It must be end-to-end metadata driven. Model: Version 7.0, 9/2010 VERSION: Page 6 of 74

If there is any programming required, it should be doable from within the same environment, and the code saved and versioned as part of the metadata. The transformation engine should be able to operate on data in any application's native format as opposed to having to step through a central view such as XML. How can you possibly get high performance when your integration must run through multiple steps? If you are looking for agility at an Enterprise level, the product must be scalable across clusters and extensible so that it becomes an environment tailored with all the special requirement you have that are needed over and over. Model: Version 7.0, 9/2010 VERSION: Page 7 of 74

3 Introduction to Enterprise Enabler 3.1 Client Tools 3.1.1 Template Designer The Template Designer is a powerful graphical interface. Using the Template Designer, a user can create reusable EE components for either source or destination data. Templates store metadata (data about data) information based upon its graphical configuration. When deployed to the server, each plate configuration describes the type of data, the data location, access instructions and the selection criteria needed to retrieve the data. 3.1.2 Map Designer Using Map Designer s graphical user interface, a user can create rules and methods to control data transformation between source and destination plates. Mapping source data to destination data is achieved by simple drag-and-drop. In addition to data mapping, the Map Designer provides a simple interface to create any combination logical conditions and formulas. 3.1.3 Process Designer Each process design is represented by a flow-sheet. A process contains Trigger Nodes, Process Nodes, Transition Nodes and Process Variables. The user can dragand-drop these nodes to create a custom executable process. When deployed, the executable process can be triggered by an event or a by ad-hoc request. One of the most common nodes is the Transformation Node which uses a Map object to perform data transformation. Upon execution of this node, the chosen Map object will execute the map s designated source and destination plates Model: Version 7.0, 9/2010 VERSION: Page 8 of 74

3.2 Server Components Enterprise Enabler Server use three objects that represent the building blocks it uses to read source data, process/transform data, and send the data to its destination. These internal objects are: Templates Maps Processes In addition to these objects, Enterprise Enabler provides services to manage processes, and ports. 3.2.1 Templates A Template is an object that represents metadata for connectivity to external data source. The internal data layout is represented by Blocks, which is analogous to a relational table. Each block will contain the actual data columns associated with data source. 3.2.2 Maps A Map is the object that represents the physical mapping of one or more source plates to a single destination plate. This allows disparate types of data (i.e. relational data, plain text, etc.) to be used together as a single data source for processing. The Map server console facilitates ad-hoc execution of map; this allows a user to quickly test the plate and the field mapping. 3.2.3 Runtime Processes Each deployed Process Designer Flow Sheet becomes a registered Enterprise Enabler Service. Using the trigger node as an entry point, runtime processes will execute its internal process configuration. Model: Version 7.0, 9/2010 VERSION: Page 9 of 74

3.3 Architecture Below is a graphical view of the underlying architecture of the Enterprise Enabler Platform: Model: Version 7.0, 9/2010 VERSION: Page 10 of 74

3.4 NT Services 3.4.1 Process Manager Process manager enables monitoring and enabling processes defined using Enterprise Enabler. It gives end users real-time visibility of the process and their current status with the ability to abort a running process. Enabling and disabling of triggers for a particular process can be done using this interface. Model: Version 7.0, 9/2010 VERSION: Page 11 of 74

4 Getting Started 4.1 Case Study Overview For this tutorial we will work through a simple case study utilizing a sample database. Rather than using a complex scenario, our aim is to learn how to design and develop various components using Enterprise Enabler. At the end of this tutorial, you should have a solid understanding of the components that make up the Enterprise Enabler domain. The tutorial will lead you through practical examples on how to build and use maps, plates. Process Design, Deployment and Monitoring will also be briefly covered. 4.2 Prerequisites Before you start this tutorial, you should ideally have a working knowledge of Enterprise Integration concepts, Microsoft.NET technology, XML and some exposure to SQL, ODBC concepts. Even if you are new to these then don't panic just expect to do a bit more learning along the way! 4.3 Tools required for this tutorial. Enterprise Enabler SQL Server Please make sure that both Enterprise Enabler and Enterprise Enabler Web Server Service are running. (To open Services, click on Start menu and Click on Run command. Type services.msc in the Run command text box and press Enter) Model: Version 7.0, 9/2010 VERSION: Page 12 of 74

Open Enterprise Enabler Studio. Go to Start Menu -> Stone Bond Technologies -> Enterprise Enabler Studio. Model: Version 7.0, 9/2010 VERSION: Page 13 of 74

4.4 Sample Data We have provided a sample database schema called Northwind. In addition to the schema, we have provided the source files for all the examples below. You can import and explore them freely. Model: Version 7.0, 9/2010 VERSION: Page 14 of 74

5 Creating Source Templates This section will cover how to create the two most common source plates: Database and XML Templates. Source plates are responsible for connecting to data sources and retrieving data. 5.1 Database Source Template a) Using the menu, choose File-> New-> Template-> Source Template->Database-> SQL Server b) Configure the connection string; test the connection c) A blank database plate will open SQL Server Connection String NOTE: When using integrated security with SQL Server there is no need for a user ID and password. In that case add SSPI to the text box labeled Intgr. Security. When using a database plates there are two options available for building blocks and columns: Direct from schema or SQL query. Model: Version 7.0, 9/2010 VERSION: Page 15 of 74

5.1.1 Schema Using the schema option, the plate will provide a drop-down list of all the tables in the schema inside the Block Attributes section. a) In the block attribute section, pick table: Employees b) Using the Toolbar above labeled Add Template Object, click the dropdown list and select Block and Columns ; this should automatically bring add all the columns to the plate c) On the plate details, click on the column EmployeeID In the Properties section to the right, drop down the list box next to the word Key and select True ; this will assign this field as a key in the plate a key icon will appear in the detail window next to EmployeeID Model: Version 7.0, 9/2010 VERSION: Page 16 of 74

d) on the right side the plate interface set the plate name to: srcemployees set category to: Northwind set group to: Sales Model: Version 7.0, 9/2010 VERSION: Page 17 of 74

e) On the File Toolbar, click Sa Repeat the same steps for tables: EmployeeTerritories Name: srcemployeeterritories key: EmployeeID,TerritoryID Territories name: srcterritories key: TerritoryID Region name: srcregions key: RegionID Orders name: srcorders Model: Version 7.0, 9/2010 VERSION: Page 18 of 74

OrderDetails key: OrderID name: srcorderdetails key: RegionID 5.1.2 Query Using the query option, the plate will allow the use of custom query to build the plate 1 In the block attribute section, click Edit Query 2 Using the EE Universal Query Analyzer, create a custom query 3 On the command window, enter this query: SELECT CustomerID, CompanyName, ContactName, Address, City, PostalCode FROM Customers where CustomerID = 4 Next add a custom parameter to this query 5 In the virtual parameter window, click Edit Param,a new dialog box will open 6 To enter a new parameter, click New Param Set name: pcustid set value to: CHOPS click save/update 7 On the command window, position the cursor after the equal sign and click pcustid on the Virtual Parameter window and then click Select Param button 8 The parameter should now be appended to the query 9 Click Check Query button to verify syntax and view results Model: Version 7.0, 9/2010 VERSION: Page 19 of 74

10 Enter: CustomerByID as the Block/Table Name 11 Using the Toolbar labeled Add Template Object above, click the Block button and choose Block and Columns ; this should automatically bring add all the columns to the plate 12 On the plate details, click on the column CustomerID In the Properties section to the right, drop down the list box next to the word Key and select True ; this will assign this field as a key in the plate a key icon will appear in the detail window next to CustomerID 13 *For now, leave the Use Run Time Variables check box empty 14 on the right side the plate interface set the plate name to: srccustomerqry set category to: Northwind set group to: Sales 15 On the File Toolbar, click Save Model: Version 7.0, 9/2010 VERSION: Page 20 of 74

Model: Version 7.0, 9/2010 VERSION: Page 21 of 74

5.2 XML Source Template a) Using the menu, choose File-> New-> Source Template-> XML Message. b) A blank xml plate will open When using an XML plates there are two options available for building blocks and columns: Direct from XSD or manually 5.2.1 XSD Using the schema option will require a valid pre-existing xsd schema. For the purposes of this tutorial, we have included an xsd: CustInvoices.xsd a) In the schema attributes section, click on the Select File button and navigate to CustInvoices.xsd; b) In the Transport attribute, choose PROCESS VARIABLE; this will allow us to dynamically set this value in the Process Designer c) Using the Toolbar labeled Add Template Object above, click the Block button and choose Block and Columns an XML dialog will appear; choose the root element of the xsd. (Select CustomerInvoice block) This will add all the blocks and columns to the plate. d) on the right side the plate interface set the plate name to: srccustomerinvoices set category to: Northwind set group to: Sales e) On the File Toolbar, click Save Model: Version 7.0, 9/2010 VERSION: Page 22 of 74

5.2.2 Manual Using the Manual option, blocks and columns can be created manually. a) To add blocks, simply enter a block name in the Block Attributes section; and on the Toolbar labeled Add Template Object, choose Block and click Add. If the block can occur more than once, set the IsArray attribute to true. b) To add columns, Click on the desired Block in the Template Details; enter a column name in the Data section of Column Attributes Model: Version 7.0, 9/2010 VERSION: Page 23 of 74

On the Toolbar labeled Add Template Object, choose Column and click Add. Remember, once you add a block or column, you must use the Edit option to make changes. 5.3 Template Details Model: Version 7.0, 9/2010 VERSION: Page 24 of 74

Enterprise Enabler has nice feature which allows the user to preview the data retrieved from a plate. a) Using the menu, choose Template-> Template Details. b) A blank window will open; using the folder icon open then plate chooser and select the srccustomerqry c) Select main block: CustomerbyID d) Click on the preview button and the data rows retrieved by the plate will appear. Model: Version 7.0, 9/2010 VERSION: Page 25 of 74

Model: Version 7.0, 9/2010 VERSION: Page 26 of 74

6 Creating Destination Templates This section will cover how to create three types of destination plates: Database, XML, and Text Templates. Destination plates are responsible for connecting to data destinations and writing data. 6.1 Database Destination Template The destination database plate is configured in the same fashion as the source variety. However, there is no longer a Query option and the update mode must be chosen. There are three update modes: insertonly, updateonly, and insertupdate For this tutorial, create a Destination plate that contains these tables: Orders a) On the plate details, click on the column OrderID In Properties section to the right where it says Column, then Key, select True ; this will assign this field as a key in the plate a key icon will appear in the detail window next to OrderID Model: Version 7.0, 9/2010 VERSION: Page 27 of 74

OrderDetails a) On the plate details, click on the column OrderID b) In Properties section to the right where it says Column, then Key, select True ; this will assign this field as a key in the plate c) a key icon will appear in the detail window next to OrderID Repeat for ProductID b) On the right side the plate interface set the plate name to: destorders set category to: Northwind set group to: Sales c) On the File Toolbar, click Save Model: Version 7.0, 9/2010 VERSION: Page 28 of 74

Model: Version 7.0, 9/2010 VERSION: Page 29 of 74

6.2 XML Destination Template The destination XML plate is configured in the same fashion as the source xml source plate 6.3 Delimited Text Template The destination text plate is designed to provide full customization of blocks and columns. The text plates can be formatted to CSV or tabular a) Using the menu, choose File-> New-> Template -> Destination Template-> Delimited Text. b) A blank delimited text plate will open c) In the plate attributes section, use the file chooser to navigate to your desired file location; enter EmployeeTerritory.csv and choose Text type d) In the block attributes section, enter EmployeeTerritory as the block name; choose comma for column justification and check the Include Header option. e) On the Toolbar labeled Add Template Object, choose Block and click Add. f) In the column attributes, enter LastName; and on the Toolbar labeled Add Template Object, choose Column and click Add. Repeat this step for columns: FirstName, Title, TerritoryDescription, and RegionDescription g) on the right side the plate interface set the plate name to: destemployeeterritory set category to: Northwind set group to: Sales h) On the File Toolbar, click Save Model: Version 7.0, 9/2010 VERSION: Page 30 of 74

Model: Version 7.0, 9/2010 VERSION: Page 31 of 74

7 Creating Map Definitions This section will cover how to create map definitions. This section will focus on mapping an XML plate to a database plate and a database plate to a text plate 7.1 XML-> DB a) Using the menu, choose File-> New-> Map b) A blank map interface will open c) In the right pane, add destination plate: destorders From the right pane, simply drag these columns to the mapping pane (center) Order.OrderID Order.ShipName Order.ShipAddress Order.ShipCity Order.ShipPostalCode OrderDetails.OrderID OrderDetails.ProductId OrderDetails.UnitPrice OrderDetais.Quantity d) In left pane, add the source plate: srccustomerinvoices From the left pane, simply drag these columns to the corresponding fields in the mapping pane (center) Invoice.OrderID Customer.ShipName Customer.ShipAddress Customer.ShipCity Customer.ShipPostalCode InvoiceDetails.OrderID InvoiceDetails.ProductId InvoiceDetails.UnitPrice InvoiceDetails.Quantity e) Driving Block Drag the customer block from the left pane to the Order branch the center pane; drag the InvoiceDetails block to the Order Details branch f) In the properties window on the right set the map name to: mnewinvoice set category to: Northwind set group to: Sales Model: Version 7.0, 9/2010 VERSION: Page 32 of 74

set IterateonPrimaryBlock to: false set AllowRelationalwithHierarchical to: true use default setting for BusinessOwnerName On the File Toolbar, click Save 7.2 Relationships One powerful feature of the mapping tool is the source plate relationship lookup. This allows the user create parent-child associations between blocks of another plate or within the same plate. This very important configuration step because if the relationships are not properly configured, the data transformation in map will not produce the correct result. This is especially true for database source plates Model: Version 7.0, 9/2010 VERSION: Page 33 of 74

Using the current Map, click Relationship on the Map toolbar, choose Lookup ; this will open a new Lookup window for defining relationships between blocks and/or source plates. Notice the layout of this window, on the left pane we can choose the primary block, and on the right pane we can choose the secondary block. The center relationship pane is the workspace where we define the relationships between the primary and secondary blocks. Most, often the resulting lookups associate a parent foreign key field to a child primary key field. a) The first step is to set the primary block. This block is the parent object or plate to which all the other source plates relate to. Click on the Model: Version 7.0, 9/2010 VERSION: Page 34 of 74

customer block; right-click the mouse and choose Set Primary ; In the center pane, Employees will appear as the primary b) From the left pane, drag Customer.CustomerId to the pink relationships branch in the center pane; c) From the right pane, drag Invoice. CustomerId to the green relationship branch directly above Customer.CustomerId. These fields now have a relationship defined. d) Create a relationship for: o Invoice.OrderId -> InvoiceDetails. OrderId e) On the menu bar click save & exit f) On the File Toolbar, click Save Model: Version 7.0, 9/2010 VERSION: Page 35 of 74

Completed Map: mnewinvoice Model: Version 7.0, 9/2010 VERSION: Page 36 of 74

7.3 DB -> Text a) Using the menu, choose File-> New-> Map b) In the right pane, add destination plate: destemployeeterritory c) In the source pane, add these plates: srcemployees d) Column Mappings: From the left pane, simply drag these columns to the mapping pane (center) EmployeeTerritory.LastName EmployeeTerritory.FirsrtName EmployeeTerritory.Title e) Driving Block Drag the Employees block from the left pane to the EmployeeTerritory branch the center pane; f) In the properties window on the right set the map name to: memployeeterritory set category to: Northwind set group to: Sales use default setting for BusinessOwnerName Model: Version 7.0, 9/2010 VERSION: Page 37 of 74

7.4 DB -> XML For this map, assign destsalesinvoices as the destination plate. a) In the source pane, add srcorder, srcorderdetails, and scrcustomerqry. b) Add relationships: Primary Block:CustomerbyId CustomerbyId.CustomerID -> Orders.CustomerID Orders.OrderID -> OrderDetails.OrderId Model: Version 7.0, 9/2010 VERSION: Page 38 of 74

c) Column Mappings: From the right pane, simply drag these columns to the mapping pane (center) Customer.CustomerID Customer.CompanyName Customer.Address Customer.City Customer.PostalCode Invoice.Orderid Invoice.CustomerID InvoiceDetails.OrderId InvoiceDetails.ProductId InvoiceDetails.Quantity InvoiceDetails.UnitPrice InvoiceDetails.ExtendedPrice d) From the left pane, simply drag these columns to the corresponding fields in the mapping pane (center) CustomerbyID.CustomerID CustomerbyID.CompanyName CustomerbyID.Address CustomerbyID.City CustomerbyID.PostalCode Orders.Orderid Orders.CustomerID OrderDetails.OrderId OrderDetails.ProductId OrderDetails.Quantity OrderDetails.UnitPrice OrderDetails.ExtendedPrice e) Driving Block Drag the CustomerbyID block from the left pane to the Customer branch the center pane; drag the Orders block to the Invoice branch; drag the OrderDetails block to the InvoiceDetails branch f) In the properties window on the right set the map name to: msalesinvoice set category to: Northwind set group to: Sales set IterateonPrimaryBlock to: false set AllowRelationalwithHierarchical to: true use default setting for BusinessOwnerName Model: Version 7.0, 9/2010 VERSION: Page 39 of 74

Model: Version 7.0, 9/2010 VERSION: Page 40 of 74

8 Map Execution Console The Map Execution Console provides a mechanism to test and view the data resulting from your source plate, destination plate, and Map. Select Map->Map Execution Console from the menu. If you want to see your results without committing them to the destination then press the Adhoc Preview button. If you want it to commit to the destination press the Run now button Model: Version 7.0, 9/2010 VERSION: Page 41 of 74

9 Process Designer A process defines the overall workflow. It is the process that facilitates interaction with external syss; provides a mechanism to implement custom actions, and handle exceptions. A Process comprises all the necessary steps that have to happen for a particular job to be completed. Traditionally, one was required to possess and learn several software tools, each one working differently. A tremendous amount of work was required to make sure that all of these tools worked together in some useful way. And maintaining them was challenging. Enterprise Enabler s Process Designer enables design of processes around these disparate syss and allows a well-coordinated choreography between them. A process within Enterprise Enabler is represented by a flowchart. A Process needs a minimum of: One Trigger Node One Start Node One or more Action Nodes One Stop Node Model: Version 7.0, 9/2010 VERSION: Page 42 of 74

9.1 Process Variables Process nodes within a Process do not interact with each other directly. They exchange data using Process Variables. Process Nodes expose local variables, (similar to parameters). Individual local variables are mapped to Process Variables. During runtime the process variable will provide a value to a local variable of a process node. 9.2 Trigger Nodes A process can have only one trigger and is initiated by it. Triggers communicate with external syss and raise events when a particular condition is met. The Process Manager administers all the triggers. Model: Version 7.0, 9/2010 VERSION: Page 43 of 74

Triggers run in the Process manager and outside the processes. Triggers raise two types of events: one for initiating a process and the other when it retires. The triggers can pass data to a process. When a trigger raises an event for initiating the process, the process manager handles the event by instantiating the related process and passes on the data to the process variable mapped within the trigger node. The process manager removes the trigger when it receives a retired event. Trigger Nodes can be added to a process by dragging a Trigger Node from the toolbox on to the Process Designer Here are few examples: 9.2.1 Http Receive Node This trigger node receives data from the specified URL and sends it to the process. Once configured, the trigger must be enabled in the Process manager console in order for the Process manager to create the custom listener that will direct all http requests with specified URL to the process. These are minimum properties: Properties: HostURL user can choose URL that the Process manager Service will listen to. Error Log File Input Variables: HttpRequest- maps to a process variable that will store the data sent via the Http Request Model: Version 7.0, 9/2010 VERSION: Page 44 of 74

Model: Version 7.0, 9/2010 VERSION: Page 45 of 74

9.2.2 Regular Interval This trigger node can be configured to execute a process at regular intervals. It can be configured for any combination of months, days, hours or minutes. Properties: BeginDate: This property indicates the begin date time of the trigger. Days: This property indicates the number of days. EndDate: This property indicates the end date time of the trigger, if applicable. HasEndDate: This property indicates if there is end date time for this trigger. Hours: This property indicates the number of hours. Minutes: This property indicates the number of minutes. Months: This property indicates the number of months. Output Variables: Message: This variable stores the time stamp at which the the process ran successfully. Model: Version 7.0, 9/2010 VERSION: Page 46 of 74

Model: Version 7.0, 9/2010 VERSION: Page 47 of 74

9.3 Action Nodes Action Nodes typically do computations or operation on certain object. Action Nodes are of two types, simple and Composite. Composite nodes can contain a Sub Process i.e., one can execute a process within a process Here are few examples: 9.3.1 Transformation Node This process node executes a map, which was saved using Enterprise Enabler. Input Variables: mapname: This variable stores the name of the map to be executed. Model: Version 7.0, 9/2010 VERSION: Page 48 of 74

9.3.2 Custom Action Node A Custom Action node has been provided along to do any custom action during the execution of the Process. In the Execution Code Editor window, the developer can write.net code or integrate custom Dlls into any process. Model: Version 7.0, 9/2010 VERSION: Page 49 of 74

Model: Version 7.0, 9/2010 VERSION: Page 50 of 74

9.4 Send Nodes Send Nodes interact with external applications and send data to them. Some nodes of this type are: 9.4.1 FTP Send This process node writes data, stored in the textdata variable, to a file on the FTP server. Properties: FTPPassword: This property indicates the password for the FTP server authentication. FTPPort: This property indicates FTP server port number. FTPServerName: This property indicates the FTP server name. Only name is to be entered here. FTPUserName: This property indicates the user name for FTP server authentication. PassiveMode: This property indicates if the FTP operates in passive mode. Input Variables: remotefilename: This variable stores the remote file name. remotedirectory: This variable stores the remote directory name. textdata: This variable stores the string that will be written to the file on the FTP server. Model: Version 7.0, 9/2010 VERSION: Page 51 of 74

9.4.2 Send Email Node This process node sends an email to the receiver specified in the emailto variable using the information provided. Properties: FromEmail: This property indicates the email address of the sender. Password: This property indicates the password for server authentication. UserID: This property indicates the userid for server authentication. Model: Version 7.0, 9/2010 VERSION: Page 52 of 74

SMTPPort: This property indicates the SMTP server port number. SMTPServer: This property indicates the SMTP server address. Input Variables: emailattachment: This variable stores the various paths to the attachments. Each path is seperated by a " " (pipe) symbol. emailbody: This variable stores the subject of the email. emailsubject: This variable stores the body of the email. emailto: This variable stores the address of the receiver. Model: Version 7.0, 9/2010 VERSION: Page 53 of 74

9.5 Transitions Enterprise Enabler has created special type of object that connects one node to another within a process. Transition nodes types are: DEFAULT, YES, NO, CASE, ELSE, LOOP & EXCEPTION. These rules apply while connecting process nodes with Transition node: Any two process nodes within a process can be connected with only one Transition node. An 'If' process node can transition into any other node only with either a 'YES' or 'NO' type of Transition node. An 'If' should transition into one 'YES' and one 'NO' type of transition node. A 'Switch' process node can transition into any other node only with either a 'CASE' or 'ELSE' type of Transition Node. A 'Switch' process node can transition into at least one 'CASE' and only one 'ELSE' type of transition node. A 'LOOP' type of Transition Node is used to transition from 'While' to 'End While' type of Process Nodes. The 'LOOP' transition node, 'While' and 'End While' process nodes are place holders for future implementation. An 'EXCEPTION' type of transition node is used to transition a process node, when an exception occurs within it, to any other process node. A 'DEFAULT' type of transition node is used to transition from a process node to another not covering the above rules. The 'From Node' cannot be a 'Stop' node The 'To Node' cannot be 'Start Node' The Trigger nodes cannot transition into any other process node Model: Version 7.0, 9/2010 VERSION: Page 54 of 74

9.6 Special Nodes 9.6.1 Parallel Split Node This node is used to execute multiple parallel paths concurrently. All these paths of parallel execution should be joined with synchronous Merge node at some point down the execution path 9.6.2 Merge Node This node is used to merge multiple paths of execution before executing the succeeding Process Node. Properties: This property indicates the type of merge. TypeOfMerge- Simple - Simple Merge Node will execute the succeeding process nodes as many times as the number of merging execution paths. Synchronous. Whereas Synchronous Merge Node will execute the succeeding process nodes only once for all the merging execution paths. Model: Version 7.0, 9/2010 VERSION: Page 55 of 74

10 Monitoring Tools 10.1 Process Manager Process manager enables monitoring and enabling process defined using Enterprise Enabler. It gives end users real-time visibility of the process and their current status with the ability to abort a running process. Enabling and disabling of triggers for a particular process can be done using this interface Server Status: Shows the status of the Process Manager Service running as a Windows service. Process List: Lists all the available process in the sys. It displays the name of the process, its category and if its trigger has been enabled or not. Clicking on a process enables/disables the Enable or Disable buttons depending on the process trigger status. The enable trigger button starts the process trigger. The disable trigger button stops the process trigger. Execution Tracking: Lists all currently active processes with the current status. Each process is automatically dropped from the tracking list, 60 seconds after it has reached a final status (i.e. completed, error etc.) Model: Version 7.0, 9/2010 VERSION: Page 56 of 74

Model: Version 7.0, 9/2010 VERSION: Page 57 of 74

11 Deployment 11.1 Connection Manager Using the Connection Manager, a developer can add a new EE server for deployment. Enter web service address the remote server and add it to your deployment list. Model: Version 7.0, 9/2010 VERSION: Page 58 of 74

11.2 Deployment Manager The Object Deployment Manager deploys EE components to any target EE server. This may be the same machine on which you are currently developing or remote server. To deploy new process components, simply drag them from the Workspace pane to the Server pane. (Use the same procedure to refresh previously deployed server objects) Model: Version 7.0, 9/2010 VERSION: Page 59 of 74

12 ADO.Net Connection to Enterprise Enabler ADO.Net framework (API) for Enterprise Enabler (EE) allows users to connect to enterprise enabler and get integrated data from different data sources in any ADO.Net enabled platform. ADO.Net API uses application definition generated in the EE studio. 12.1 Architecture Model: Version 7.0, 9/2010 VERSION: Page 60 of 74

12.2 EE Application Definition EE Application definition Tool is used to create application definition for SharePoint 2010, SharePoint 2007 and WSS. 12.3 Prerequisites 1. Source plate or map. 2. Source Template or Destination Template should have only one block (Data will be shown only from one block). 3. Destination plate block name will be used as the entity name in application definition. 4. Created objects should be deployed to the server. (Go to deployment manager and deploy the objects) 12.4 Steps to Create Application Definition 1. Create plates and maps as required. Model: Version 7.0, 9/2010 VERSION: Page 61 of 74

2. Deploy these objects to server by Clicking Deployment Manager menu button under Server menu. Model: Version 7.0, 9/2010 VERSION: Page 62 of 74

3. Go to File -> New -> EE App Def -> EE Data Model. Model: Version 7.0, 9/2010 VERSION: Page 63 of 74

Model: Version 7.0, 9/2010 VERSION: Page 64 of 74

4. Give a valid name for application definition. (This will be used in the connection string as Initial Catalog) 5. Click on Add Entity to create Entity. a. If the map is already created, you can select that map to add entity. b. If source plate is available, you can create map automatically. c. If CRUD operations are needed, you can auto generate update maps by checking the Auto Generate Edit Maps option. d. Entity name will be selected from the destination plate block name. Model: Version 7.0, 9/2010 VERSION: Page 65 of 74

6. Once everything is ready, click on Connection String button in ADO.Net section to get the connection string. Model: Version 7.0, 9/2010 VERSION: Page 66 of 74

7. Copy the connection string and exit the screen. Model: Version 7.0, 9/2010 VERSION: Page 67 of 74

12.5 Accessing data using Enterprise Enabler ADO.Net API Use the following API to access the application definition created in the above screen. using (EEConnection conn = new EEConnection("CONNECTION STRING")) { conn.open(); EECommand command = new EECommand("QUERY", conn); DataTable table = new DataTable(); table.load(command.executereader()); datagridview1.datasource = table.defaultview; } Replate CONNECTION STRING with the connection string copied in the above screen. Replace QUERY with a valid query like Select * from CustomCustomers. Here CustomCustomers is the entity name selected in the application definition. Here is the sample application screen shot, which shows the connection string, query and data from the map. Model: Version 7.0, 9/2010 VERSION: Page 68 of 74

Model: Version 7.0, 9/2010 VERSION: Page 69 of 74

13 SharePoint Connection Enterprise Enabler allows users to read and write data to and from multiple data sources using SharePoint web frontend. Enterprise Enabler uses application definition tool to create schema that will be useful to connect to external data sources. 13.1 Architecture 1. EE SharePoint 2007 Architecture Model: Version 7.0, 9/2010 VERSION: Page 70 of 74

2. EE SharePoint 2010 Architecture Model: Version 7.0, 9/2010 VERSION: Page 71 of 74

Follow the same steps from 12.1 to 12.5 in creating application definition. Next, follow these steps to creating Business Data Catalog file for SharePoint 2007/ 2010. 1. Once everything is ready, click on Generate Xml button to generated Business Data Catalog Xml file for 2007 or 2010. Model: Version 7.0, 9/2010 VERSION: Page 72 of 74

2. For SharePoint 2010, definition can be automatically deployed to server if the logged in user has administrative privileges. For auto deployment, click on Deploy button in SharePoint 2010 section. It will show the following screen. Model: Version 7.0, 9/2010 VERSION: Page 73 of 74

3. If user has administrative privileges, it will ask for the SharePoint admin site url to which the definition should be deployed. 4. Give the name of the Admin site url and click on ok button to complete the auto deployment. Model: Version 7.0, 9/2010 VERSION: Page 74 of 74