Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.

Slides:



Advertisements
Similar presentations
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Advertisements

JBASE jRCS.
Module 1: Introduction to SQL Server Reporting Services.
COM vs. CORBA.
1 XML Web Services Practical Implementations Bob Steemson Product Architect iSOFT plc.
Chapter 10 Database Applications Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
IIS Technologies.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Chapter 12 Working With Access 2000 on the Internet.
Using Visual Basic 6.0 to Create Web-Based Database Applications
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
WORKING WITH FILES, MENUS AND DATABASES IN VISUAL BASIC BY V. V. SUBRAHMANYAM.
Three Tier Applications using the PI Historian, Microsoft Transaction Server (MTS), Internet Information Server (IIS), ActiveX Data Objects (AD0) and ActiveX.
National Instruments Confidential Deployment Techniques for LabVIEW ™ Applications Kennon Cotton LabVIEW R&D Group Manager.
Overview of Database Access in.Net Josh Bowen CIS 764-FS2008.
ODBC Open DataBase Connectivity a standard database access method developed by Microsoft to access data from any application regardless of which database.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Introduction 01_intro.ppt
September 6, 2015 Connecting Client Applications to Informix Databases using IBM Informix Connect and ODBC James Edmiston Database Consultant Quest Information.
Visual Basic: An Object Oriented Approach 12 – Creating and using ActiveX objects.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
How to Configure Informix Connect and ODBC James Edmiston Informix DBA Consultant/Quest Information Systems, Inc. Informix User Forum 2005 Moving Forward.
Data-Enabled Web Sites: Classibooks.com & Internet Database Technologies Colin Fukai April 4, 2000 Gonzaga University.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Using Visual Basic 6.0 to Create Web-Based Database Applications
Plant Engineering Workbench 5.3 New Features. 2 Workbench 5.3 ▼ New Features in 5.3 are: –New 3D Model Management module –Additions to the Admin module.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Winrunner Usage - Best Practices S.A.Christopher.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Accelerated Web Development Course JavaScript and Client side programming Day 2 Rich Roth On The Net
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Introduction to COM and DCOM Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie.
ICONICS ActiveX ToolWorX V 6.1.
OOMI From COM to DCOM.
File Processing Concepts – Field – combination of 1 or more characters that is the smallest unit of data to be accessed – Record – group of related fields.
Universal Data Access and OLE DB. Customer Requirements for Data Access Technologies High-Performance access to data Reliability Vendor Commitment Broad.
CSCI 6962: Server-side Design and Programming Database Manipulation in ASP.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
What is database?  Any Method for access info into Application from DataBase?  ODBC is standard for Accessing Data.  Problem with ODBC:  Information.
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
Microsoft Office Excel 2007: Programming Business Intelligence Features John Hooper Service Line Architect Microsoft Corporation Jed Farr Senior Consultant.
Obsydian Component Model Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
ASP.NET (Active Server Page) SNU OOPSLA Lab. October 2005.
Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
5-1 VISUAL J++ Colorado Technical University IT420 Tim Peterson.
.NET Mobile Application Development XML Web Services.
7-1 Active Server and ADO Colorado Technical University IT420 Tim Peterson.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Wednesday NI Vision Sessions
Automation Engr. Faisal ur Rehman CE-105T Spring 2007.
Java Distributed Computing
ASP.NET Programming with C# and SQL Server First Edition
CSE791 - Distributed Objects, Spring 2002
VBA - Excel VBA is Visual Basic for Applications
CSE775 - Distributed Objects, Spring 2006
Introduction to Visual Basic 2008 Programming
Module 1: Getting Started
VISUAL BASIC.
Module 10: Implementing Managed Code in the Database
Automation and IDispatch
Presentation transcript:

Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation2 Session Outline Obsydian OLE Automation Overview Obsydian OLE Automation Overview Microsoft OLE Automation Overview Microsoft OLE Automation Overview Obsydian OLE Automation Framework Obsydian OLE Properties and Methods Examples and Demonstrations Obsydian DCOM Support Summary, FAQ and Questions Summary, FAQ and Questions Obsydian OLE Automation Overview Obsydian OLE Automation Overview Microsoft OLE Automation Overview Microsoft OLE Automation Overview Obsydian OLE Automation Framework Obsydian OLE Properties and Methods Examples and Demonstrations Obsydian DCOM Support Summary, FAQ and Questions Summary, FAQ and Questions

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation3 Obsydian OLE Automation Overview Obsydian Functions can be used other application environments such as VB, Office97, C++ Obsydian Functions can be used other application environments such as VB, Office97, C++ Obsydian Functions can be used with MTS Obsydian Functions can be used with MTS Functions can seamlessly inter-operate with multiple development environments Functions can seamlessly inter-operate with multiple development environments Functions can be used simultaneously with OLE and with normal Obsydian applications Functions can be used simultaneously with OLE and with normal Obsydian applications Functions can be remoted using DCOM Functions can be remoted using DCOM Microsoft OLE Automation Supported Microsoft OLE Automation Supported

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation4 Microsoft OLE Automation Overview OLE Automation Controller Create an Object Get Existing Object Get / Set Properties Invoke Methods OLE Automation Server Expose Object Properties & Methods Manage Object Creation Manage Object Properties Implement Object Methods OLE Type Library (.TLB) Automation Server Description Object Property and Method Interfaces Help Text for Objects Dispatch Methods

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation5 OLE Automation Objects An Instance of a Class ( same as COM) An Instance of a Class ( same as COM) Exposes Properties Exposes Properties Exposes Methods Exposes Methods Exposes Events Exposes Events Automation Controller Use Objects Automation Controller Use Objects Automation Server Implement Objects Automation Server Implement Objects

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation6 Excel 97 Object Model

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation7 OLE Automation Type Libraries Define Object Properties and Methods Define Object Properties and Methods Source Code with ODL Syntax Source Code with ODL Syntax ODL = Object Description Language ODL = Object Description Language ODL Syntax based on DCE RPC IDL ODL Syntax based on DCE RPC IDL Compiled as.TLB File Compiled as.TLB File Interfaces and Methods Exposed Interfaces and Methods Exposed

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation8 OLE Automation Servers Provides Automation Object Services Provides Automation Object Services Manages and Implements Objects Manages and Implements Objects Implements Business or Service Logic Implements Business or Service Logic In Process and Out of Process Servers In Process and Out of Process Servers DCOM and ActiveX Servers DCOM and ActiveX Servers

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation9 OLE Automation Controllers Clients of OLE Automation Objects Clients of OLE Automation Objects Manipulates and Drives Objects Manipulates and Drives Objects OLE Automation Client Environments OLE Automation Client Environments OLE Automation Support OLE Automation Support Visual Basic, VBA and VB Script Visual Basic, VBA and VB Script Java and Visual C++ Java and Visual C++ Delphi, Power Builder and Others Delphi, Power Builder and Others Any COM capable environment Any COM capable environment

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation10 Obsydian Automation Framework Microsoft OLE Automation Obsydian OLE Automation Framework Obsydian Generated Function C++ OLE Automation Client Java OLE Automation Client VBA OLE Automation Client Visual Basic OLE Automation Client Obsydian Generated Function Obsydian Generated Function COM Component Object Model Architecture Overview IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation11 Obsydian OLE Automation Features Obsydian Functions can be called from: Obsydian Functions can be called from: Visual Basic, VBA for Office 97, C/C++, VB ScriptVisual Basic, VBA for Office 97, C/C++, VB Script Java, Power Builder and other ToolsJava, Power Builder and other Tools Provides automatic data type mapping Provides automatic data type mapping Obsydian data types OLE data typesObsydian data types OLE data types No changes required to existing designs No changes required to existing designs Exposes Simple Generic Programmable Objects Exposes Simple Generic Programmable Objects Obsydian Functions can be used by DCOM Obsydian Functions can be used by DCOM

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation12 Obsydian OLE Objects App Object App Object Obsydian Application EnvironmentObsydian Application Environment Manages Run Time System ObjectsManages Run Time System Objects Corresponds to one OBRUN.EXE ProcessCorresponds to one OBRUN.EXE Process Function Object Function Object Obsydian generated function proxyObsydian generated function proxy Wrapper to actual generated functionWrapper to actual generated function Call method allows function to be invokedCall method allows function to be invoked

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation13 Obsydian Process Model App Object OBRUN Application Process Microsoft OLE Automation Obsydian OLE Automation Framework OLE Automation Client Obsydian Generated Function Microsoft OLE Automation Client ProcessServer Process Function Object Function Object Function Object Obsydian Generated Function Obsydian Generated Function IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation14 Obsydian OLE Cardinality Model App Object OLE Automation Client Client ProcessServer Processes Function Object Function Object Function Object App Object Function Object Function Object Function Object App Object Function Object Function Object Function Object IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation15 App Properties and Methods Properties: Properties: enviornmentKeyenviornmentKey – –This key is used to control the application environment settings for Obsydian. These environment settings are specified in the OBRUN.INI file for (16 and 32Bit clients) or in the System Registry (for 32Bit NT Servers). These settings include ODBC data source configuration and other variables used by the runtime system. This environmentKey property allows you to control which INI file (or registry entry key for NT) should be used to get the environment settings. Methods: Methods: Function(fileNME As String,implementationNME As String)Function(fileNME As String,implementationNME As String) – –This method creates and returns an Obsydian OLE Function object. This Function object is used to make the actual function call to the generated function. The fileNME string parameter specifies the function’s external DLL file name.

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation16 Function Properties and Methods Properties: Properties: fileNMEfileNME – –This name represents the implementation object that is loaded when the Obsydian run time system attempts to call this function. implementationNMEimplementationNME – –This name represents the entry point of the DLL. This is normally the same as the fileNME. Methods: Methods: Call(InParms As Variant, OutParms As Variant)Call(InParms As Variant, OutParms As Variant) – –This method locates, loads and calls an Obsydian generated Function. – –The InParms and OutParms are OLE SafeArray Variant objects that contain the input, dual and output parameters for the function to be called. All of the input and dual parameters for the function should be contained as elements in the InParms array and all of the output parameters should be contained in the OutParms array.

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation17 Obsydian OLE Class Table The table above represents the OLE class names and the corresponding OBRUN EXE that is called when an App is created. The class name is used to qualify the App object to create the correct type of Application environment object. For example, if you use the Class Name “ObRunOLE300RSD.App”, to create the App object, OLE Automation will start up a process that begins with OB300RSD.EXE. This will then create the Application environment designed to call Obsydian generated functions built for Obsydian 32Bit NT Debug execution. ObRun and OLE Class Name Table

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation18 Visual Basic 5.0 Example Microsoft OLE Automation Obsydian OLE Automation Framework AAVF Category Get Sequential AA10F Category Create Instance IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation19 Visual Basic Code Dim FncFileNme As String Dim FncImplNme As String ' ' 'Create the Obsydian application object' ' ' Set ObApp = CreateObject("ObRunOLE300RCD.App") ' ' 'Create the Obsydian functions that we want to call' 'Category.Get Sequential' ' ' FncFileNme = "AAVF" FncImplNme = "AAVF" Set Category_GetSequential = ObApp.Function(FncFileNme, FncImplNme) Create Obsydian App and Function Objects:

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation20 Visual Basic Code ' ' 'Define the Input,Dual and Output Parameter Arrays ' ' Dim InParms(5) As Variant '6 Element Variant Array' Dim OutParms(24) As Variant '25 Element Variant Array' ' ' 'Set the input and dual parameters for Category.GetSequential' ' ' InParms(0) = "" 'D: Returning Status' InParms(1) = "" 'I: Positioner.Category Code' InParms(2) = "1" 'I: Input.Instance to get' InParms(3) = 500 'I: Input.Instances to filter' InParms(4) = "" 'I: Selections.Category Code' InParms(5) = "" 'I: Selections.Category Name' Define and Populate Parameters:

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation21 Visual Basic Code ' ' 'Set the input and dual parameters for Category.GetSequential' ' ' InParms(0) = "" 'D: Returning Status' InParms(1) = "" 'I: Positioner.Category Code' InParms(2) = "1" 'I: Input.Instance to get' InParms(3) = 500 'I: Input.Instances to filter' InParms(4) = "" 'I: Selections.Category Code' InParms(5) = "" 'I: Selections.Category Name' ' ' 'Call Category.GetSequential' ' ’ Category_GetSequential.Call InParms, OutParms Invoke the Obsydian Function:

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation22 Visual Basic Code ' ' 'Read OutParms and Populate the VB Grid Control' ' ' nRows = OutParms(24) ' Instances Fetched’ ' Add the retrieved records to the grid' For Row = 0 To (nRows - 1) 'Build a grid entry for each column' For Col = 0 To (nCols - 1) ColText = OutParms(Row * nCols + Col) Entry = Entry & Chr(9) & ColText Next Grid1.AddItem Entry, Row + 1 Next Use the Dual and Output Parameters:

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation23 VBA Office 97 Excel Example AAVF Category Get Sequential Microsoft OLE Automation Obsydian OLE Automation Framework IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation24 Visual C++ Example AAVF Category Get Sequential Microsoft OLE Automation Obsydian OLE Automation Framework IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation25 “Live” VBA PowerPoint Demo AAVF Category Get Sequential Microsoft OLE Automation Obsydian OLE Automation Framework IPC

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation26 Installation and Registration Install Obsydian Runtime System(s) Install Obsydian Runtime System(s) Register the Obsydian Runtime Systems() Register the Obsydian Runtime Systems() OB300RC.EXE /RegisterOB300RC.EXE /Register OB300RS.EXE /RegisterOB300RS.EXE /Register OB300RN.EXE /RegisterOB300RN.EXE /Register Updates Windows OLE Registry Database Updates Windows OLE Registry Database Install Type Libraries with Visual Basic Install Type Libraries with Visual Basic OB300RC.TLB, OB300RN.TLB etc.OB300RC.TLB, OB300RN.TLB etc. Online Obsydian OLE Help File Online Obsydian OLE Help File OLE.HLPOLE.HLP

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation27 DCOM Overview Microsoft OLE Automation Obsydian OLE Automation Framework Visual Basic OLE Automation Client Obsydian Generated Function COM DCOM Services COM DCOM Services Microsoft OLE Automation DCE RPC Client Machine Server Machine

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation28 DCOM Configuration DCOMCNFG.EXE DCOMCNFG.EXE Specify Application Locations Specify Application Locations Specify Security Attributes Specify Security Attributes Configure DCOM on Remote System(s) Configure DCOM on Remote System(s) Install Application on Remote System(s) Install Application on Remote System(s) Run Client Application as Normal Run Client Application as Normal Client now Creates App Objects Remotely Client now Creates App Objects Remotely

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation29 DCOM Configuration Example

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation30 Obsydian OLE Automation Summary Functions can participate in MS Component and Object Integration Technologies Functions can participate in MS Component and Object Integration Technologies Functions can seamlessly inter-operate with multiple development environments Functions can seamlessly inter-operate with multiple development environments Functions can be used simultaneously with OLE and with normal Obsydian applications. Functions can be used simultaneously with OLE and with normal Obsydian applications. Functions can be remoted using DCOM Functions can be remoted using DCOM Obsydian applications can be tightly integrated into MS based applications Obsydian applications can be tightly integrated into MS based applications

©1998 Synon, Inc. September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015September 14, 2015 Obsydian OLE Automation31 Obsydian OLE Automation FAQ How do I prepare a function to be used as an OLE Automation Server? How do I set up the parameter interface for the function I want to call? Why do I have to pass parameters in SafeArrays? Why can’t I just pass in each variable or field as structures? How are Obsydian data types mapped between Variants? What is a Type Library and how are they used for OLE Automation? What is a Variant and SafeArrays and how do they work? How do I find out more information about COM and OLE Automation? How do I find out more about using VB and OLE Automation Servers?