Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.

Slides:



Advertisements
Similar presentations
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Advertisements

Copyright © 2008 SAS Institute Inc. All rights reserved. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks.
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Introduction to Visual Basic.NET Uploaded By: M.Sheraz anjum.
Stored procedures and views You can see definitions for stored procedures and views in the demo databases but you can’t change them. For views, expand.
Code Composer Department of Electrical and Computer Engineering
Copyright © 2007, SAS Institute Inc. All rights reserved. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks.
Windows Programming 1 Part 1 dbg --- Getting Acquainted with Visual Studio.NET and C#
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
St. Louis Day of Dot Net 2011 Building Web Parts for an Office 365 SharePoint Site Becky Bertram Independent SharePoint Consultant SharePoint MVP, MCSD.NET,
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Visual Studio: Custom debugger visualizers. Creating Debugger Visualizers with Visual Studio : Introduction Code debugging is one of the most important.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
Creating a Console Application with Visual Studio
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
Object Oriented Software Development 1. Introduction to C# and Visual Studio.
Chapter 5 Using SAS ® ETL Studio. Section 5.1 SAS ETL Studio Overview.
“This presentation is for informational purposes only and may not be incorporated into a contract or agreement.”
Creating Business Workflow Using SharePoint Designer 2007 Presented by Tarek Ghazali IT Technical Specialist Microsoft SQL Server MVP Microsoft SQL Server.
Introduction to VB.NET Tonga Institute of Higher Education.
Copyright © 2005, SAS Institute Inc. All rights reserved. Filling the Gap: Extending the SAS BI Server with Custom Tasks Chris Hemedinger, SAS Institute.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Microsoft Visual Basic 2005: Reloaded Second Edition
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
Todd Kitta  Covenant Technology Partners  Professional Windows Workflow Foundation.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Chapter 6 SAS ® OLAP Cube Studio. Section 6.1 SAS OLAP Cube Studio Architecture.
JCreator Tonga Institute of Higher Education. Programming with the command line and notepad is difficult. DOS disadvantages  User Interface (UI) is not.
Copyright © 2006, SAS Institute Inc. All rights reserved. SAS Enterprise Guide Old Proc – New Tricks? Tim Trussell Academic Program, SAS Canada world diabetes.
Sage ACT! 2013 SDK Update Brian P. Mowka March 23, 2012 Template date: October 2010.
Technical Workshops | Esri International User Conference San Diego, California Creating Geoprocessing Services Kevin Hibma, Scott Murray July 25, 2012.
Office Business Applications Workshop Defining Business Process and Workflows.
Copyright © 2004, SAS Institute Inc. All rights reserved. SAS Stored Processes An analyst’s perspective Sylvain Tremblay SAS Canada 24 February 2006.
1 Getting Started with C++. 2 Objective You will be able to create, compile, and run a very simple C++ program on Windows, using Visual Studio 2008.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Outline 5.1 Test-Driving the Inventory Application.
Simio User Code Appendix - User Code.
Copyright © 2010, SAS Institute Inc. All rights reserved. SAS ® Using the SAS Grid.
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Web Parts Overview Web parts in SharePoint 2007 “Hello World” web part Typical deployment.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Using SAS Enterprise Guide Add-In to Enable Guided Statistics Bas van Bakel OCS Consulting, the Netherlands © OCS Consulting.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Copyright © SAS Institute Inc. All rights reserved. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks.
Take Your Data Analysis and Reporting to the Next Level by Combining SAS Office Analytics, SAS Visual Analytics, and SAS Studio David Bailey Tim Beese.
Joy Rathnayake Senior Architect – Virtusa Pvt. Ltd.
Dive Into® Visual Basic 2010 Express
Data Virtualization Demoette… ODBC Clients
Installation The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the installation.
Chapter 2: The Visual Studio .NET Development Environment
INF230 Basics in C# Programming
Introduction to Computer CC111
A brief introduction to the topic
Deploying and Configuring SSIS Packages
Installation The Intercompany Integration Solution for SAP Business One Version 2.0 for SAP Business One 9.1 Welcome to the course on the installation.
Web Development Using ASP .NET
Matt Masson Software Development Engineer Microsoft Corporation
CIS16 Application Development Programming with Visual Basic
CIS16 Application Development – Programming with Visual Basic
Analysis models and design models
Windows Forms in Visual Studio 2005: An in-depth look at key features
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Separating the Interface from the Engine: Creating Custom Add-in Tasks for SAS Enterprise Guide ® Peter Eberhardt Fernwood Consulting Group Inc.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Agenda Introduction Demo Requirements Getting Started Interfaces Examples Wrap-up

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction History of SAS and ‘open environment’ What is a custom add-in How does an add-in compare to a SP

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction Pre v8 Multi-Platform Stand alone

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction v8 IOM Opened SAS

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction v9 Studios DI, Cube Studio Java client

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction Enterprise Guide 4.1.NET application Integration into MS Office “SAS is too hard to use” Drag-and-Drop Interface Project oriented SAS Tasks encapsulate underlying PROC syntax Process flows link Tasks and Data

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction SAS Enterprise Guide SAS on Windows SAS on Mainframe SAS on UNIX Code Results

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction An Enterprise Guide project can be thought of as a basket, or container: Healthcare To which you assign a name In which you place data source(s) Within which you define tasks

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction Interfaces – Part 1 EG Custom Add-in Tasks Friendly front-end to a existing SAS programmes Access SAS and non-SAS resources Package SAS PROCS not part of EG

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Introduction Interfaces SAS Stored Process SAS programme that is centrally managed Two components Metadata programme Runs on a server Simple user interface

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Agenda Introduction Demo Requirements Getting Started Interfaces Examples Wrap-up

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Agenda Introduction Demo Requirements Getting Started Interfaces Examples Wrap-up

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Requirements Fundamentals Visual Studio.NET Framework v1.1 EG 4.1 A ‘problem’ or solution

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Requirements Implement Interfaces

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Main Entry: in·ter·face Pronunciation: 'in-t&r-"fAs Function: noun 1 : a surface forming a common boundary of two bodies, spaces, or phases 2 a : the place at which independent and often unrelated systems meet and act on or communicate with each other b : the means by which interaction or communication is achieved at an interface - in·ter·fa·cial /"in-t&r-'fA-sh&l/ adjectiveinteraction

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Main Entry: in·ter·ac·tion Pronunciation: "in-t&r-'ak-sh&n Function: noun : mutual or reciprocal action or influence - in·ter·ac·tion·al /-shn&l, -sh&-n & l/ adjective

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Requirements Interfaces – Part 2 Separates the name of a method from its implementation ‘Contract’ between your programme and SAS

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Agenda Introduction Demo Requirements Getting Started Interfaces Examples Wrap-up

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Getting Started Project templates Available from the SAS site Adds a new project type to Visual Studio Creates a project with the required interfaces

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Getting Started Rules to Remember in Visual Studio The project name and directory When you create the new project Rename the default files and classes CustomTask1, CustomTaskForm1 Change the properties of the add-in reference Change the strings in ISASTaskDescription Search for ‘PLACEHOLDER’

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Getting Started Demo

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.New project

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project Project Type 2.SAS EG 4 AddIn (from SAS template) 3.Project Name and Location 3

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Default File Names need to be changed

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Names in the project need to be changed

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.References 2.Local Copy property set to FALSE 2

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Project Properties

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Configuration Properties set Debug Mode to Program NOTE: click Apply after changing the Debug Mode to ‘un-grey’ the Start Program property

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Configuration Properties Navigate to your EG executable

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Change the descriptions in the source code

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Strings are changed

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Build the project

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Demo – creating a project 1 1.Success!!

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Agenda Introduction Demo Requirements Getting Started Interfaces Examples Wrap-up

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces Separates the name of a method from its implementation ‘Contract’ between your programme and SAS

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces You agree you will implement ISASTaskAddin ISASTaskDescription ISASTask You can implement if you want ISASTaskSubmitSink ISASTaskDataSink

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskAddin This connects the application (i.e. Enterprise Guide) to your Add-in. It provides basic information back to EG. EG will not recognize your add-in if you do not implement this interface. The template automatically creates all the members of the interface for you.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskDescription This interface is used by the application to determine basic task information which is not dependent on the task state. ISASTaskDescription2 is an optional extension of this interface with a few additional properties for advanced features. Implement one or the other

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces - ISASTask Public Properties Label The label of an instance of the task as it appears in the project. Both a “property set” and a “property get” have to be implemented OutputDataCount The number of output datasets the task expects to create. Only a “property get” has to be implemented

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTask This interface is used by the application to control the runtime state of the add-in

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTask2 Extends ISASTask with additional properties and methods Implement SASTask OR SASTask2

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces Properties ISASTaskAddin ISASTaskDescription ISASTask You can implement if you want ISASTaskSubmitSink ISASTaskDataSink

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskSubmitSink Supplies notifications to the add-in that the input data has changed, or that it needs to take some action regarding output data that it intends to create.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskDataSink Supplies notifications to the add-in that the input data has changed, or that it needs to take some action regarding output data that it intends to create.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces SAS agrees to implement ISASTaskConsumer ISASTaskData ISASTaskDataAccessor ISASTaskDataDataColumn SAS agrees it might implement ISASTaskSubmit ISASTaskUtilities

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskConsumer Provides information about what the application supports and access to other supported interfaces. Also provides access to options specific to the particular instance of the add-in. The implementation of this interface by a host application is required, although not all properties and methods are required to be supported.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskData These interfaces allow the task to obtain information about the active data. Different host applications might not be able to provide values for some of these methods.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskDataAccessor These methods allow the task to access the data values in a specific data object.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskDataColumn Provides information about a single column in a data source

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces SAS agrees to implement ISASTaskConsumer ISASTaskData ISASTaskDataAccessor ISASTaskDataDataColumn SAS agrees it might implement ISASTaskSubmit ISASTaskUtilities

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskSubmit This interfaces allow the task to submit SAS code from within the task.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces ISASTaskUtilities This interfaces allow the task to surface some utility functionality to the task.

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Interfaces Examples

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Recap Download the Templates from SAS Create the initial project Change the default name and location of the project Change the string descriptors sFriendlyName etc Set the Copy Local property to false Compile the project

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Recap Set the options for the project debug using program Compile and step through with the debugger Register the add-in with the Add-in manager Make sure it runs

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Recap Do your thing!! Change code Compile Debug Copy completed DLL to the deployment folder C:\Program Files\SAS\Shared Files\BIClientTasks\Custom

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Recap Go for a beverage of your choice to celebrate a job well done

Separating the Interface from the Engine: Creating Custom Add-in Tasks for Enterprise Guide ® Peter Eberhardt, Fernwood Consulting Group Copyright © 2007, SAS Institute Inc. All rights reserved. SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.