P. 1
xi3-1_deski_sdk_dg_en

xi3-1_deski_sdk_dg_en

|Views: 5|Likes:
Published by inam_qau

More info:

Published by: inam_qau on Mar 01, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

03/01/2012

pdf

text

original

Sections

  • Introduction
  • About this guide
  • Who should use this guide
  • BusinessObjects information resources
  • 1 About this guide
  • Getting started with VBA
  • Language summary
  • 2 Accessing the development environment
  • Variables
  • Procedures
  • Event implementation
  • Flow control
  • Arrays
  • With statement
  • Error handling
  • The VBA Object Browser
  • Including external object libraries
  • Some useful VBA functions and subroutines
  • VBA macros: migration overview
  • Migration of VBA macros to XI
  • VBA macros
  • VBA add-ins
  • Updating platform-related calls
  • Using the Import Wizard tool
  • Server-side execution
  • API changes
  • Deprecated APIs and their replacements
  • New interoperability in XI
  • OLAP data access with universes
  • New interoperability API in XI
  • Application-level variables
  • Use cases
  • Schedulingby using DocAgentOption class
  • 3 Use cases
  • BCA custom macro migration
  • Document events, properties, and methods
  • Event-related restrictions
  • Other limitations
  • Programming with Desktop Intelligence
  • Macros and subroutines
  • Creating a macro
  • The Visual Basic tool bar
  • Add-ins
  • Creating an add-in
  • Installing an add-in by using the interface
  • Desktop Intelligence events
  • 4 Desktop Intelligence events
  • Event triggers
  • Implementing an event
  • Implementing application events
  • Customizing the user interface
  • User interface classes
  • Command Bars
  • Controls
  • Adding a command bar
  • Displaying pop-up menus
  • Adding controls to a command bar
  • Adding faces to buttons: the Clipboard object
  • Adding actions to buttons
  • Creating your own forms
  • Data providers
  • Working with existing data providers
  • Data provider types
  • Query technique
  • Loading and unloading a data provider
  • Creating a query technique
  • Get More Help
  • Index

Desktop Intelligence Developer Guide

BusinessObjects XI 3.1

Copyright

© 2008 Business Objects, an SAP company. All rights reserved. Business Objects owns the following U.S. patents, which may cover products that are offered and licensed by Business Objects: 5,295,243; 5,339,390; 5,555,403; 5,590,250; 5,619,632; 5,632,009; 5,857,205; 5,880,742; 5,883,635; 6,085,202; 6,108,698; 6,247,008; 6,289,352; 6,300,957; 6,377,259; 6,490,593; 6,578,027; 6,581,068; 6,628,312; 6,654,761; 6,768,986; 6,772,409; 6,831,668; 6,882,998; 6,892,189; 6,901,555; 7,089,238; 7,107,266; 7,139,766; 7,178,099; 7,181,435; 7,181,440; 7,194,465; 7,222,130; 7,299,419; 7,320,122 and 7,356,779. Business Objects and its logos, BusinessObjects, Business Objects Crystal Vision, Business Process On Demand, BusinessQuery, Cartesis, Crystal Analysis, Crystal Applications, Crystal Decisions, Crystal Enterprise, Crystal Insider, Crystal Reports, Crystal Vision, Desktop Intelligence, Inxight and its logos , LinguistX, Star Tree, Table Lens, ThingFinder, Timewall, Let There Be Light, Metify, NSite, Rapid Marts, RapidMarts, the Spectrum Design, Web Intelligence, Workmail and Xcelsius are trademarks or registered trademarks in the United States and/or other countries of Business Objects and/or affiliated companies. SAP is the trademark or registered trademark of SAP AG in Germany and in several other countries. All other names mentioned herein may be trademarks of their respective owners. Business Objects products in this release may contain redistributions of software licensed from third-party contributors. Some of these individual components may also be available under alternative licenses. A partial listing of third-party contributors that have requested or permitted acknowledgments, as well as required notices, can be found at: http://www.businessobjects.com/thirdparty 2008-09-11

Third-party Contributors

Contents
Chapter 1 Introduction 7 About this guide...........................................................................................8 Who should use this guide ....................................................................8 Business Objects information resources................................................8 Chapter 2 Getting started with VBA 9

Accessing the development environment..................................................10 Language summary...................................................................................10 Variables...............................................................................................11 Procedures...........................................................................................11 Event implementation...........................................................................11 Flow control .........................................................................................12 Arrays...................................................................................................13 With statement.....................................................................................14 Error handling.......................................................................................14 The VBA Object Browser.....................................................................15 Including external object libraries.........................................................15 Some useful VBA functions and subroutines............................................16 Chapter 3 VBA macros: migration overview 19

Migration of VBA macros to XI...................................................................20 VBA macros.........................................................................................21 VBA add-ins.........................................................................................21 Updating platform-related calls.............................................................21 Using the Import Wizard tool................................................................22 Server-side execution...........................................................................22

Desktop Intelligence Developer Guide

3

.....................................................................................................................................................................................................................Contents API changes.....50 Command Bars....................................................23 Deprecated APIs and their replacements...................................................................................53 Displaying pop-up menus...........................27 Use cases.........................26 OLAP data access with universes.....................................................................44 Event triggers...............................................46 Chapter 5 Customizing the user interface 49 User interface classes..............................28 Scheduling by using DocAgentOption class.........................33 Chapter 4 Programming with Desktop Intelligence 37 Macros and subroutines...................................................................................................................................................................40 Add-ins........ properties.......................................... and methods..............................................................................................................................................................45 Implementing an event...........................43 Desktop Intelligence events................................54 4 Desktop Intelligence Developer Guide ..................................42 Installing an add-in by using the interface................................................................................23 New interoperability in XI.........................29 Document events...51 Controls.......................................................................................................................................................45 Implementing application events................................................................................................................................................................................................................................................32 Other limitations..............41 Creating an add-in......................................................38 Creating a macro............................30 Event-related restrictions ........................................51 Adding a command bar................................38 The Visual Basic tool bar.............28 BCA custom macro migration..................26 Application-level variables.......................................................................................................................................................

..55 Adding actions to buttons........................................................Contents Adding controls to a command bar...............56 Creating your own forms.....................................................................................64 Appendix A Get More Help 67 Index 71 Desktop Intelligence Developer Guide 5 .................................................................54 Adding faces to buttons: the Clipboard object................60 Data provider types ......................................................................................................................62 Loading and unloading a data provider...............................57 Chapter 6 Data providers 59 Working with existing data providers......................................

Contents 6 Desktop Intelligence Developer Guide .

Introduction 1 .

This appendix describes the Business Objects documentation. 8 Desktop Intelligence Developer Guide . with links to online resources. and consulting services. training. see Appendix A: Get More Help. customer support.1 Introduction About this guide • About this guide on page 8 About this guide This guide describes how to develop applications by using the Desktop Intelligence Software Development Kit (SDK). Who should use this guide This guide is intended for developers who want to use the Desktop Intelligence SDK to develop applications. Business Objects information resources For more information and assistance.

Getting started with VBA 2 .

which is included in the Microsoft Office 2000 suite. Comprehensive on-line help about the VBA development environment and language is available from the VBA Help menu. Online help for VBA is also available from the Visual Basic editor. For more information. Using VBA. The Visual Basic editor is the standard Microsoft VBA editor. you can integrate and customize applications that are already available on the system desktop. see the Microsoft documentation. You can also press F1 in the VBA development environment to access VBA Help menu. which you can use to develop macros and add-ins. For information about Visual Basic and VBA. and select Visual Basic. Accessing the development environment Desktop Intelligence contains a Visual Basic editor. You can access the Visual Basic editor from the Visual Basic tool bar. It also discusses some of the key features of VBA language. as well as perform queries and analysis on data in documents through universes and data providers. If the editor is not displayed.2 Getting started with VBA Accessing the development environment You can use Microsoft Visual Basic for Applications (VBA) to create custom macros and add-ins in Desktop Intelligence. to control the Desktop Intelligence and Designer environments. Hence. Language summary This section provides an overview of the VBA language. 10 Desktop Intelligence Developer Guide . You can also access the Visual Basic editor from the Macros submenu in the Tools menu. However. This chapter describes how VBA enables you to extend the capabilities of Desktop Intelligence. you may encounter some limitations while using VBA on the Desktop Intelligence server. right-click the tool bar or menu bar. see VBA macros: migration overview on page 19. This chapter also describes how to develop macros and add-ins by using VBA.The VBA is used by Microsoft Office products and several other Windows software products. you can use tools such as Object Browser and Project Explorer.

This implies that you cannot write a code to respond to events in the Designer Desktop Intelligence Developer Guide 11 .Getting started with VBA Language summary 2 Variables The VBA supports the following data types: • Boolean • Byte • Integer • Long • Single • Double • Currency • Date • Object • String • Variant • user-defined You can declare variables by using the Dim keyword. The execution of the code when an event occurs is called event implementation. whereas subroutines do not return values. Examples of events include a user opening a document and a user clicking a button. The Universe Designer SDK does not have any events to implement. as follows: Dim Name As String Procedures The VBA supports two different type of procedures: functions and sub-routines. the code is executed when certain events take place in the application. Event implementation The VBA is event-driven. that is. Functions can return values.

For more information on implementing events. Repeats an action while a condition is true Repeats an action either when a condition is true. based on the value of a variable or the outcome of a test. you can use the Designer object model while implementing events of other applications. and based on the result of the test. or until it becomes true Branches to one of several possible code segments.2 Getting started with VBA Language summary application. However. see Desktop Intelligence events on page 44 and Creating your own forms on page 57. Repeats an action on each object in a collection or on each item in an array For-Next While-Wend Do-Loop Select-Case For-Each-Next 12 Desktop Intelligence Developer Guide . Flow control The following table discusses the most commonly used VBA flow control structures: Control Description If-Then-Else Tests a condition. alters the execution flow Repeats an action the specified number of times.

use the following syntax: Dim ArrayName(n. Example: Declaring a two dimensional array The following VBA code fragment declares an array with two dimensions: Note: The size of each dimension is determined by the constant MAX_CUSTOMERS. z are integers that represent the size of a dimension. Declaring an array To declare an array in VBA. z) As DataType where: n. ….. m. For example: Option Base 1 Array(1) 'reference the first element Desktop Intelligence Developer Guide 13 .Getting started with VBA Language summary 2 Arrays An array is a variable that contains multiple values. m. The VBA supports multi-dimensional arrays. In VBA. Each value is indexed and all the elements in the array belong to the same data type. MAX_CUSTOMERS) As String Array indexes By default. the first element of an array is element 0 and the last is n.. . Option Base statement The Option Base statement enables you to set the lower bound for all arrays to either 1 or 0.. Const MAX_CUSTOMERS As Integer = 500 Dim customers(MAX_CUSTOMERS. you can declare an array with up to 60 dimensions. You can change the array elements by using Option Base statement.

Example: Using a With statement in an object reference The following code fragment sets the properties of an object by using the With statement: With Application.DeleteTrailingBlanks = TRUE . That is. 14 Desktop Intelligence Developer Guide .DuplicateRows = TRUE .Item(1). an error message is displayed and the execution stops.DataProviders.2 Getting started with VBA Language summary is the same as: Option Base 0 Array(0) 'reference the first element Array indexing that starts at a number other than 1 or 0 If you want the index of an array to start at a number other than 1 or 0.ActiveDocument. If you don't use an On Error statement.ScopeOfAnalysis = boThreeLevelsDown End With Error handling You can use the On Error statement to handle errors generated during the execution of a code.Queries . For example: Dim RawData(10 To 20) As Variant RawData has 11 elements. you must specify the bounds in the array declaration. The first is element number 10 and the last is element number 20. any run-time error that occurs can prove to be critical. With statement The With statement tool enables you to abbreviate object references.

and move the code around. After creating the reference. create a reference to the appropriate object library.. In the Tools menu.. you can use the classes. The Object Browser displays all the programmable objects that are installed and registered on the system along with their associated properties. The VBA Object Browser The VBA development environment includes a number of tools. select References…. such as Designer or Microsoft Outlook.. from the VBA program. Desktop Intelligence Developer Guide 15 .Description Sub End You can ignore errors by using the following statement: On Error Resume Next Note: This statement can hinder debugging.. To open the Object Browser. debug. Including external object libraries To access the object models of other products. select Object Browser from the View menu.Number & "-" & Err. One of the most useful tools is the Object Browser. and properties provided in the object model. and events. complete the following steps: 1. methods. Referring to an external object library from VBA To refer to an external object library from VBA. 'if an error occurs here go to ErrorDisplay Exit Sub ErrorDisplay: MsgBox Err. methods.) On Error Goto ErrorDisplay . to enable you to run.Getting started with VBA Language summary 2 Example: Handling errors with the On Error statement Sub Convert(. You can also use the Object Browser to browse the procedures and module-level variables in your own VBA projects.

Some useful VBA functions and subroutines The following table discusses some useful VBA functions and subroutines: Name Description Abs Returns the absolute value of a number Returns the current MS-DOS path Returns a character if its ASCII code is given Returns the current system date Causes execution to break out of a Do loop Causes execution to break out of a For loop Causes execution to break out of a function CurDir Chr Date Exit Do Exit For Exit Function 16 Desktop Intelligence Developer Guide . Select the object library from the list. and click OK.2 Getting started with VBA Some useful VBA functions and subroutines If the reference is successful. the name of the object library you referenced appears in the Object Library drop-down list in the VBA Object Browser. 2.

Getting started with VBA Some useful VBA functions and subroutines 2 Name Description Exit Sub Causes execution to break out of a sub-routine Returns the integer portion of a number. after rounding down positive numbers and negative numbers Returns the integer portion of a number. after rounding down positive numbers and negative numbers Returns TRUE if an expression is an array Returns TRUE if an expression is a date Returns TRUE if no value is assigned to a variable Returns TRUE if an expression is an error value Returns TRUE if an expression evaluates to NULL Returns TRUE if an expression evaluates to a number Fix Int IsArray IsDate IsEmpty IsError IsNull IsNumeric Desktop Intelligence Developer Guide 17 .

2 Getting started with VBA Some useful VBA functions and subroutines Name Description IsObject Returns TRUE if an expression represents an object Returns the lower bound of an array Returns the length of a string. or the number of bytes required to store a value Returns the current date and time Runs an executable program Returns the square root of a number Performs a string comparison Returns the current system time Returns the data type of a variable Returns the upper bound of an array LBound Len Now Shell Sqr StrComp Time TypeName Ubound 18 Desktop Intelligence Developer Guide .

VBA macros: migration overview 3 .

However.0. 6. and discussions.0 (referred to as "XI 3. This section provides information about the migration of VBA macros to XI. Web Intelligence: XI provides a much-enhanced version of Web Intelligence. • A direct migration path and a set of migration tools for customers who have deployed BusinessObjects 5. Both XI R2 and XI 3. Support depends on the nature of the code and the location of the code execution.1/6.x work with Desktop Intelligence supported in XI. XI R2 and XI 3.1/6. • • The XI provides a direct migration path from BusinessObjects 5. report instances.x work in XI.x.x are collectively referred to as XI.7). or 6. Migration of VBA macros to XI A number of BusinessObjects customers have developed VBA macros or VBA add-ins for the BusinessObjects Desktop Intelligence product. The following table discusses support for VBA macros in XI: VBA macros Client side Server side Yes Yes with restrictions VBA add-ins Yes No 20 Desktop Intelligence Developer Guide . The migration protects customers' investment in the BusinessObjects technology by delivering the following key features: Note: Unless specifically mentioned.3 VBA macros: migration overview Migration of VBA macros to XI BusinessObjects XI Release 2 (referred to as "XI R2") and BusinessObjects XI 3. It benefits from the enhancements in the new platform.5.1 (or Web Intelligence 2. Most VBA macros developed for 5.0") are new versions of BusinessObjects XI. which enables a large number of customers to move their entire business intelligence (BI) solution to the web. such as Unicode support. 6. The VBA macros or add-ins developed for 5. Desktop Intelligence: The BusinessObjects full client (which is renamed as Desktop Intelligence) is part of XI.1. some macros are not supported on the server side.1/6.0 enable majority of classic BusinessObjects customers to move to the XI platform.

ProgIDs and other technical names used in the code remain unchanged.rea (report add-in) extension.rep documents located on the desktop of the systems) can be migrated to XI by opening and saving these documents with Desktop Intelligence. Send to Inbox or BCA is no longer available: To send to Inbox or BCA.VBA macros: migration overview Migration of VBA macros to XI 3 VBA macros The VBA macros are embedded in . Following are the key changes in XI: • SDK name: In XI. • • Desktop Intelligence Developer Guide 21 . document send/retrieve. for compatibility with previous versions. The VBA add-ins do not run on the server side (that is. . the SDK is called the Desktop Intelligence SDK. However.rep documents. VBA add-ins Each VBA add-in is a separate file with a .rep documents in XI. Local documents (that is. macros that execute queries.rep documents located in the source repository) can be migrated to the XI repository by using the Import Wizard tool. • In both cases.rep documents to XI in one of the following ways: • Corporate documents (that is. filter a report. However. Updating platform-related calls The macros that work at the document level (for example. platform-related macros must be updated to reflect the new underlying BusinessObjects Enterprise SDK. on the BusinessObjects Enterprise server) in XI. you must now use the Enterprise SDK. or re-format a report) continue to work in XI. and reference to repository universes require code update. after migration. Repository interaction: Login. . You can migrate . VBA macros remain embedded in .

While BOManager was a multi-document component. Some customers store VBA add-ins in the 5. On the server.The BOE scheduler does not support custom VBA macros.x to an XI repository. For more information. VBA add-ins . For example.CreateObject will fail using Desktop Intelligence report engine as it is not a COM automation server. Like agnostic documents.The VBA add-ins cannot be executed on the server.1/6.On the XI platform.x repository.Application") . you can install the Desktop Intelligence client component on the server and move the code to a VB program. Server-side execution The following is a brief description of the changes in the XI server-side execution: • Architecture .1/6. However.rea files) are migrated by using the Import Wizard. the Desktop Intelligence SDK runs only in VBA. after migration.3 VBA macros: migration overview Migration of VBA macros to XI Related Topics • Scheduling by using DocAgentOption class on page 28 Using the Import Wizard tool Import Wizard is a migration tool that enables you to move content from 5. Hence. This explains a number of restrictions on server side.rep documents and whether the VBA macros must be updated or not. the VBA add-ins (. VBA macros must be checked and validated manually. BCA custom macros . RAS21 is a mono-document component. a document that includes a Web Connect data provider cannot be refreshed (DPVBAInterface code must be in the document itself to be executed). not in VB. the Import Wizard does not check VBA code contained in . the V5/V6 BOManager component is replaced by the RAS21 component. see BCA custom macro migration on page 29. Hence. • • • 22 Desktop Intelligence Developer Guide . these add-ins are copied to the XI repository. CreateObject ("BusinessObjects. However.

Boolean [Pass As String].LoginAs ([User As String].LogonWithToken (token CMS name supersedes repository As String) As Boolean name (. API changes Some APIs have been removed while others have been updated (with a new operability defined in XI). [RepositoryName As Function String]) As Boolean Application. [Offline As Boolean]. Logon (User As String.Removed Replacement in XI Function Application.x API. ThreeTier As Boolean. CMS As String.While ActiveDocument and ActiveReport still work on the client side. Offline As Boolean) As Application. This section discusses changes in the APIs.VBA macros: migration overview API changes 3 • Replace ActiveDocument with ThisDocument . Hence. they must be replaced. they no longer work on the server side.LogonDialog ()As Boolean Desktop Intelligence Developer Guide 23 . Password As String. Deprecated APIs and their replacements The following tables discuss the APIs that are deprecated and the APIs that are introduced as replacements: Login 6.key file) Function Application. Function Mode As String.

[CategoryList As String].SaveToEnterpriseDialog() Note: Send to inbox and scheduling are not available in Destkop Intelligence SDK. [DestDir As String]) Documents. [HtmlLayout As BoHTMLLayout]. As String) As Document Function Sub Documents.SaveToEnterprise(Folder As string.Receive([Name As String]. [ExchangeDomain As String]) HtmlLayout obsolete with dhtml viewer Sub Document. [ExchangeMode As BoExchangeMode]. Application.OpenFromEnterpris(Name As String.BoExchangeMode Enum BODocumentLocation = boEnterpriseFolder 24 Desktop Intelligence Developer Guide . You must use the BOESDK destination plug-in.3 VBA macros: migration overview API changes Document exchange 6. [StoreGeneratedHTML As Boolean].Removed Replacement in XI Sub Document.Send([User As String].OpenFromEnterpriseDialog() As Document Retrieve from inbox and from sc are not available in Destkop Intelligence SDK. Folder. Overwrite As Boolean) Sub Document.BoExchangeMode Function Documents.x API. Application. CategoryList As String. You must use the BOESDK destination plug-in.

Removed Replacement in XI Function DataProviders. EnterpriseFold[UniverseDomainName]) As DataProerName As String) vide Desktop Intelligence Developer Guide 25 .Removed Replacement in XI Function Sub Documents.AddQuery Function AddQueryTechnique(UniTechnique(UniverseName As String.VBA macros: migration overview API changes 3 6.Removed Replacement in XI Class DocAgentOption You must use the BI PLATFORM SDK while migrating Domains replaced by enterprise folders 6.x API . verseName As String.x API.OpenFromEnterpriseDiaString].BoExchangeModeDistinct method replace echange mode AppliNo replacement in XI cation.ExchangeDomain Folders supersede domains Scheduling 6.Receive([Name As Documents.x API . [DestDir As String]) log(DocumentOrigin As BODocumentOrigin) As Document Application.

Hence.CUID (Read-only) • • Document.DomainName No replacement in XI New interoperability in XI The following objects are subject to new interoperability in XI: • Universe. 6. you can build universes on top of MS Analysis Services.3 VBA macros: migration overview API changes 6.x API New interoperability API in XI Class SecurtyPrompts No replacement in XI 26 Desktop Intelligence Developer Guide .CUID (Read-only) Application. the OLAP data provider is removed from Desktop Intelligence and the SecurityPrompts class is obsolete.Removed Replacement in XI Property Universes. and SAP BW cubes.Item(Index As Variant. Essbase.x API . [RepositoryName As String]) No replacement in XI As Universe ®) Universe.LogonWithToken() OLAP data access with universes In XI. Note: Desktop Intelligence documents support only SAP BW universes.

The following table summarizes the changes: Availability of variables Variable name BOLANGUAGE BOSECURITYDOMAIN 6.Variables have changed. No replacement in XI sUserPassword As String.x API New interoperability API in XI Sub Application. sDBPasswordVarName As String. sUserPasswordVarName As String. sDBPassword As String) Function Document.GetSecuri tyPrompts() As Security Prompts No replacement in XI Application-level variables The variables available through collection Application.SetSecuri tyPrompt(sUserName As String. sDBName As String.5 variables available in XI BOUSER BUSER_UPPER Desktop Intelligence Developer Guide 27 .VBA macros: migration overview API changes 3 6.

5. because scheduling is no longer supported in Desktop Intelligence SDK. Use cases This section briefly describes the use cases of Desktop Intelligence SDK.3 VBA macros: migration overview Use cases Availability of variables Variable name COMPUTERNAME CommonProgramFiles HOMEDRIVE HOMEPATH ProgramFiles 6. 28 Desktop Intelligence Developer Guide . Scheduling by using DocAgentOption class The DocAgentOption calls must be replaced by Enterprise SDK scheduling API.5 variables not available in XI SystemDrive SystemRoot USERDNSDOMAIN USERDOMAIN USERNAME USERPROFILE New variable in XI DOCNAME Windows system variables such as TEMP and PROCESSOR_ARCHITECTURE are available in both XI and 6.

Type=4 (Schedule is monthly.CUID Retrieve the InfoStore object Dim IStore As InfoStore Set IStore = EntSession("IStore") Retrieve the BI PLATFORM SDK InfoObject that corresponds to the document to be scheduled Set Result=IStore.LogonWithToken(EntSession.5: Desktop Intelligence Developer Guide 29 . Login BusinessObjects Full Client Application.SchedulingInfo FCScheduleInfo. Desktop Intelligence SDK and Enterprise SDK interoperate.Documents( " DocumentToScedule " ).LogonWithToken and Document.IntervalMonths = 2 FCScheduleInfo.Item(1) Dim FCScheduleInfo As SchedulingInfo Use the scheduling object to set the scheduling options Set FCScheduleInfo = FCDocumentObject.RightNow = 1 Schedule the document IStore.LogonTokenMgr.CreateLo gonEx) Dim strCUID As String Call to BusinessObjects FC SDK to get document's CUID strCUID = Application.) FCScheduleInfo.CUID.Schedule Result BCA custom macro migration A use case for BCA Custom Macro is the Automatic distribution through email of BusinessObjects documents in PDF format. How it was done in 6.Query("SELECT SCHEDULEINFO FROM CI_INFOOBJECTS _ WHERE SI_CUID = ' "+strCUID + "'""") Dim FCDocumentObject As InfoObject Retrieve the first document Set FCDocumentObject =Result.VBA macros: migration overview Use cases 3 In the following use case for Application.

and methods used in Desktop Intelligence client and their support on server side: Doc Event Open BeforeRefresh AfterRefresh BeforeClose InfoView OK OK OK Doesn't work Desktop Intelligence OK OK OK OK 30 Desktop Intelligence Developer Guide .rep document contained the Sub ENotify() VBA macro to open documents. properties. Call VBA ENotify () in document event handler: Sub Document_AfterRefresh() 2. action specified the execution of VBA code embedded in the document. The publisher.3 VBA macros: migration overview Document events. How to migrate it to XI: The following are the two options to migrate from 6. For more information. properties. see Scheduling by using DocAgentOption class on page 28. and send notification emails. and methods A publisher. 2. Move the code from VBA to a VB Program.5 to XI: • Option 1: 1. Use InfoView or BusinessObjects Enterprise SDK to schedule the VB program object. 3. properties. see Scheduling by using DocAgentOption class on page 28.rep refresh. Install Desktop Intelligence on the same machine as the BusinessObjects XI Server. Document events. For more information.rep document was scheduled through BCA. • Option 2: 1. Use InfoView or BusinessObjects Enterprise SDK to schedule publisher. and methods The following tables discuss the document events. save them in PDFformat.

properties.SaveToEn Doesn't work terprise ThisDocument.Expor tAsPDF ThisDocument.Expor tAsXML OK OK OK OK Desktop Intelligence Developer Guide 31 .VBA macros: migration overview Document events.SaveAs InfoView Doesn't work Doesn't work Desktop Intelligence OK OK OK ThisDocument. and methods 3 Doc Event Activate DeActivate Beforesave InfoView Not supported by procFC Not supported by procFC Doesn't work (Bug) Desktop Intelligence OK OK OK Property ThisDocument InfoView OK Desktop Intelligence OK ActiveDocument Doesn't work (normal because there is no Activate OK in ProcFC) Doesn't work (there is no OK Activate in procFC) ActiveReport Method ThisDocument.Save ThisDocument.

3 VBA macros: migration overview Document events. next time the same document is opened by the same user or a different user with similar rights. • • BeforeRefresh AfterRefresh These events are generated all the time in Report Server and Job Server. The following table discusses the events generated by Desktop Intelligence: Event Description • OpenEvent In Report Server. this event is not generated. 32 Desktop Intelligence Developer Guide . Hence. Note: If the document goes to Cache. this child process is shared among the different user sessions. this event is generated when the document is opened for the first time (from the browser). and methods Event-related restrictions Desktop Intelligence generates the following events: • OpenEvent • BeforeRefresh • AfterRefresh • BeforeClose However. However. properties. Report Server spawns a new child process to handle the document. their functionality is limited. this event is not generated. these events are generated inconsistently. Based on user rights and other security information.

because of the RE SDK protocols. Testing limitations This section describes how to test the limitations of Desktop Intelligence. it may not be set to the value. no event is generated while a document is being opened or closed. Hence. It is the responsibility of the plug-in to maintain the state (of the document it is handling). some of the APIs related to OpenDocument may not work on the server side. properties. Other limitations The following are the limitations of Desktop Intelligence: • When a Desktop Intelligence document is in Cache. Desktop Intelligence Developer Guide 33 . the processing server does not trigger any event. if you set a prompt in the background. because the child processes are shared. • The Desktop Intelligence server plug-in is mono-document. For example. Hence. this event is generated when the document closes (in the child process and not in the viewer). it is designed to handle a single document at a time. • The Desktop Intelligence Server is more suitable for a single document rather than multiple documents.VBA macros: migration overview Document events. that is. • The AfterRefresh event has the following limitation: Changes made by the user (on the document) may not work all the time. Hence. • Architectural limitations in RAS21: • The documents are stateless. The document closes when the child process expires. and methods 3 Event Description • BeforeClose This event is generated inconsistently in the Report Server. They forward the requests to the plug-in.

3

VBA macros: migration overview Document events, properties, and methods

State of the document
The following is the list of SDK APIs that change the state of the document. The Viewer/RAS 21 does not track these changes. • • Open Document - Fails on both BeforeRefresh and AfterRefresh events. Set Prompt - Fails on AfterRefresh event and partially passes on BeforeRefresh. For example, pass the value through SDK on both BeforeRefresh and AfterRefresh events. Consider, Country = US. 1. Click Refresh. 2. Select a value from LOV when prompted. 3. Set a different value (for example, Country = France) using SDK. 4. Run the report. The data relative to US is displayed even if you manually select France. Workaround for setting prompts: Use Application.Variables() instead of Document.Variable(). It is added to the list of Application variables. Regression Risk: If another document with the same prompt name is refreshed in the same process, it uses the previously set value and the prompt does not appear. • • • Refresh Data Provider - Fails on both BeforeRefresh and AfterRefresh events. Change Universe of a Data Provider - Fails on both BeforeRefresh and AfterRefresh events. Close Document - Fails on both BeforeRefresh and AfterRefresh events.

RE SDK protocol
When you perform any of the operations discussed in this section, the report in the viewer and the actual report in the server do not match. The following operations impact the RE SDK protocol: • Change the value of the prompt before/after refresh - Fails on AfterRefresh and partially passes on BeforeRefresh. For example, pass the value through SDK on BeforeRefresh event for the prompt. Consider, Country = US.

34

Desktop Intelligence Developer Guide

VBA macros: migration overview Document events, properties, and methods

3

1. 2. 3. 4.

Click Refresh. Select a value from LOV when prompted. Set a different value (for example, Country = France) using SDK. Run the report. The data relative to US is displayed even if you manually select France.

Any operation that changes the report map (use different prompt) Operations on the viewer, such as trying to open a report map entry that does not exist, give inconsistent results, or may fail.

Note:

The following functions may not work on both BeforeRefresh and AfterRefresh events: • Opening a new document • Performing operations such as refresh, edit, close, and so on, in a new document • Creating a new application from an existing application The Desktop Intelligence server does not support opening multiple documents in a process. Hence, these operations are not implemented.

Desktop Intelligence Developer Guide

35

3

VBA macros: migration overview Document events, properties, and methods

36

Desktop Intelligence Developer Guide

Programming with Desktop Intelligence 4 .

Creating a macro To create a macro. On the submenu. select Macro. You can send a document containing a macro to other users. From the Tools menu. as shown in the following figure: 38 Desktop Intelligence Developer Guide . complete the following steps: 1. You can create macros in Desktop Intelligence by using the integrated VBA environment. 2. A macro is saved within a document and is enabled each time you open the document. This chapter discusses the following topics: • • • • Macros and subroutines Add-ins Desktop Intelligence events Implementing application events Macros and subroutines A macro is a series of commands and functions that automate tasks you need to perform regularly. just as you can send a regular Desktop Intelligence document. select Macros.4 Programming with Desktop Intelligence Macros and subroutines This chapter describes how to program with Desktop Intelligence. The "Macros" dialog box appears.

Begin writing the macro. as shown in the following figure: 4. When you finish writing and compiling the macro successfully. the names of add-ins. and click Create.Programming with Desktop Intelligence Macros and subroutines 4 In the "Macros" dialog box. and a module containing a skeleton sub-routine for the macro is created. or a combination of both is displayed. You can now run Desktop Intelligence Developer Guide 39 . The VBA environment is opened. select Close and Return to Desktop Intelligence from the File menu. 3. Enter a name for the macro. the macros contained in the open document.

You can also select Toolbars from the View menu. 2. as shown in the following figure: 40 Desktop Intelligence Developer Guide . Run Associated Macro . as shown in the following figure: The Visual Basic tool bar contains the following buttons: • • • Run Macro . complete the following steps: 1. In the Tools menu. you can associate up to five buttons with a macro. click the Macros tab. The Macros panel is displayed. If you want. you can also associate the macro with a button on the tool bar. In the "Options" dialog box. Adding macros to the Visual Basic tool bar On the Visual Basic tool bar.Click Run Associated Macro to run a macro associated with this button. The Visual Basic tool bar You can hide or show the Visual Basic tool bar in Desktop Intelligence by right-clicking another tool bar or the menu bar.Click Run Macro to browse and run a macro. and selecting Visual Basic.4 Programming with Desktop Intelligence Macros and subroutines the macro from the "Macros" dialog box. Visual Basic Editor . click Options. To associate a macro with a button. For more information.Click Visual Basic Editor to open the VBA environment for editing a procedure or a macro. see Customizing the user interface on page 49.

Click OK. 5. Type the name of the macro in the text box to the right. Add-ins Add-ins are programs that provide optional commands and features to Desktop Intelligence. 4. When a macro is selected. you can click Browse besides the text box to select a macro.macro.rea!module. it no longer appears grayed on the tool bar. Enter a tool tip for the macro (optional). Each add-in is saved with a . Desktop Intelligence Developer Guide 41 .Programming with Desktop Intelligence Add-ins 4 3.rea extension. If a button has an associated macro. The macro details are now hidden.rep!module. Click the check box besides the number of the button with which you want to associate the macro. You can run the macro by clicking the respective button on the Visual Basic tool bar. Alternatively. 6. the edit box displays AddIn.macro or Document.

4. complete the following steps: 1. the add-in program remains on the computer so that you can easily install it again. 2. Unlike macros. However. Open the VBA editor. 3. Write and compile the add-in. In the File menu.. the add-ins are not supported when a Desktop Intelligence document is used on the server to perform any of the following tasks: • refreshing • scheduling • publishing Creating an add-in You can create add-ins in Desktop Intelligence. an add-in functions just like any other feature of the Desktop Intelligence application. You can distribute add-ins you have created to other users. select Desktop Intelligence Addins (*.. You can now distribute your add-in among other users. 42 Desktop Intelligence Developer Guide . and retrieve and use add-ins that others have created. 6.. Create a new document. To create an add-in. it becomes available each time you launch Desktop Intelligence. and distribute them among other users or save them to BusinessObjects Enterprise. To conserve memory. select Save As. 5. uninstall add-ins you do not use often. Once you install an add-in. Note: Starting with XI.4 Programming with Desktop Intelligence Add-ins Before you can use an add-in.rea). In the Save as type list box. select Close and Return to Desktop Intelligence. In the File menu. add-ins are not associated with a single document—once installed. Uninstalling an add-in removes its features and commands from Desktop Intelligence. you must load it on your computer and then install it in Desktop Intelligence.

or you can associate it with a button on the Visual Basic tool bar. The "Add-Ins" dialog box opens. If it is not displayed in the "Add-Ins" dialog box. To install an add-in by using the interface. you must use Save As rather than Save to update the saved add-in.rea files. Desktop Intelligence Developer Guide 43 . Click OK. 4. complete the following steps: 1. Installing an add-in by using the interface To install an add-in. In the Tools menu. a copy of the document is saved. You can run an installed add-in from the Macros dialog box. see Customizing the user interface on page 49.Programming with Desktop Intelligence Add-ins 4 When you save the document as an add-in. select Add-Ins. For more information. click Browse to search. Click the check box of the add-in you want to install.rea file containing many subroutines. Tip: To optimize the performance of the system. If you make further changes. 2. Save the add-in on the computer. use one large . rather than using multiple . you must save it on the computer and then install it in Desktop Intelligence. as shown in the following figure: 3.

4 Programming with Desktop Intelligence Desktop Intelligence events Desktop Intelligence events An event is a change in the state of Desktop Intelligence. Programming a response to an event is called implementing the event. For example.rea). you can implement events concerning Desktop Intelligence documents (*. Specific document events. In Desktop Intelligence. General document events. belong to the Application class and are called application events. for which you can program a response. or only when it happens to a particular document. those that apply to any document. The following table lists the application events and document events that you can implement in Desktop Intelligence: Application events Document events DocumentActivate DocumentAfterRefresh DocumentBeforeClose DocumentBeforeRefresh DocumentBeforeSave DocumentDeactivate Activate AfterRefresh BeforeClose BeforeRefresh BeforeSave Deactivate 44 Desktop Intelligence Developer Guide . belong to the Document class and are called document events. you can program Desktop Intelligence to display a dialog box whenever a user opens a document. These events are made available in general and specific senses. you can implement an event for any document. those that apply to specific documents.rep and *. That is.

Refresh method.Programming with Desktop Intelligence Desktop Intelligence events 4 Application events Document events DocumentOpen NewDocument Open Event triggers Events can be triggered by user actions or by use of methods in the Desktop Intelligence SDK. Triggering the events on the server side by using Desktop Intelligence document has certain limitations. or when the user calls the Document. the order of events is Doc1_Deactivate followed by Doc2_Activate. When a document is opened. Notes on the order in which the events occur Events in Desktop Intelligence occur in the following order: • • • • Document events are triggered before Application events. a BeforeRefresh event (application and document) is triggered when the user clicks the Refresh button in the Desktop Intelligence user interface. BeforeClose occurs before BeforeSave. If the focus is moved from Doc1 to Doc2. For example. Implementing an event Each event that you can implement appears in the VBA procedure list for its corresponding object. the Open event occurs followed by Activate. Desktop Intelligence Developer Guide 45 .

For more information. vbOK Cancel) If Response = vbCancel Then 'user chose cancel. insert the code that you want to execute in the procedure corresponding to the event when the event occurs. Example: Implementation of the DocumentBeforeRefresh event The following code may be useful for a document that takes a long time to refresh: Private Sub Document_BeforeRefresh(Cancel As Boolean) 'user's response to the message Dim Response As Variant Response = MsgBox("Are you sure you want to refresh?". To access the events of the Application object. 46 Desktop Intelligence Developer Guide . see Creating your own forms on page 57. you need to create a reference to the object and implement the events of the reference. so cancel the refresh Cancel = True Else 'user didn't cancel. This process is identical to implementing form events in the user interface. so continue with refresh Cancel = False End If End Sub Implementing application events You cannot implement application events directly.4 Programming with Desktop Intelligence Implementing application events To implement an event.

Programming with Desktop Intelligence Implementing application events 4 To create a reference to the Application object. complete the following steps: 1. set the variable's Application property to the Application object. In a subroutine. The events for the application reference property appear in the procedure drop-down list in the code window of the class module you created in step 1. The property (reference) you created appears in the object drop-down list in the code window of the class. Implement the events of the reference to the Application object. create an object of the type you created in step 1. The subroutine must execute before the implementation of the application events is triggered. Desktop Intelligence Developer Guide 47 . 5. Create a class module in VBA. include a property of type "Application". The following diagramatic representation illustrates this sequence: The events for the application reference property (boapp) appear in the procedure list of the application reference class (AppRefClass). 3. Declare the property as "Public" and "WithEvents". 4. In the definition of the class you created. 2. In a module.

as follows: Sub Initialize() Set AppRef. for example. for example. For more information on the Public and WithEvents keywords. the events of the Application object can be implemented by using AppRef. In another module. Once you have established this reference. The WithEvents part of the declaration enables you to access the events defined for the Application class.boapp. boapp. declare an Application property called.4 Programming with Desktop Intelligence Implementing application events Example: Accessing events of the Application object The following code fragments show the VBA statements you need to establish a reference to the Application object. see the Visual Basic documentation. for example.boapp = Application . create an instance of AppRefClass called. as follows: Dim AppRef As New AppRefClass Then.boapp.. End Sub Now. AppRef. in a sub-routine. set AppRef. 48 Desktop Intelligence Developer Guide . you can implement application events.. as follows: Public WithEvents boapp As Application The Public part of the declaration makes the property globally available. In a VBA class module called AppRefClass.

Customizing the user interface 5 .

Each Desktop Intelligence Application object includes a collection called CmdBars. This chapter discusses the following topics: • • • • User interface classes Adding a command bar Adding controls to a command bar Creating forms User interface classes Some programs require input from a user or require the user to initiate a process.5 Customizing the user interface User interface classes This chapter describes how to customize the user interface by using the Desktop Intelligence SDK. Using this part of the object model you can: • • • • • access the properties of the existing Desktop Intelligence interface specify the menus Desktop Intelligence must display create user-initiated add-ins and macros add buttons to existing tool bars create your own tool bars and pop-up menus 50 Desktop Intelligence Developer Guide . and pop-ups in the Desktop Intelligence interface. you can also access elements of the Desktop Intelligence user interface and extend the interface to accommodate the requirements of your program. With the Desktop Intelligence SDK. Using the Desktop Intelligence SDK. Using this collection. tool bars. so that they appear as part of the normal interface. you can include a userinteraction element to add-ins and macros. you can integrate the user interface elements of your add-ins and macros with the Desktop Intelligence interface. The CmdBars collection is the access point for all menus.

Pop-up menus present the list of buttons that can be used to perform actions.Customizing the user interface User interface classes 5 Command Bars A command bar can be a tool bar. Controls Following are the types of controls: pop-up menus and buttons. see Adding a command bar on page 53. For information about adding tool bars and pop-up menus to the Desktop Intelligence user interface. Command bars include controls that can be either a pop-up menus or buttons. or a pop-up menu. as shown following figure: Desktop Intelligence Developer Guide 51 . a menu bar.

as shown in the following figure: 52 Desktop Intelligence Developer Guide . The items in the CmdBarControls collection are of the type CmdBarControl. However. CmdBarControl is a generic class that represents a control. if you know what type of control you are accessing. Nested controls Pop-up controls can contain other controls. you can use the specialized properties and methods. CmdBarButton and CmdBarPopup are special cases of CmdBarControl. Normally.5 Customizing the user interface User interface classes The CmdBarControls collection The CmdBarControls collection contains all the controls for a command bar. you need to use this collection for nesting controls. Both support properties and methods of CmdBarControl.

For information on adding controls to the existing command bars. they act as command bars.Controls. see Adding controls to a command bar on page 54. Adding a command bar You can add tool bars and pop-up menus to the Desktop Intelligence user interface.Customizing the user interface Adding a command bar 5 When pop-up controls contain other controls. Desktop Intelligence Developer Guide 53 . The pop-up controls have their own collection of controls that you can access by using CmdBarPopup.

. you must add controls that enable users to access the functions you provide. For information about command bars. Use CmdBarControls.ShowPopup Adding controls to a command bar In general. set the type to a position.Enabled = True . see Adding controls to a command bar on page 54. you cannot add pop-up controls to tool bars. for example. Example: Adding a tool bar Sub AddCommandBar() Dim toolbar As CmdBar Set toolbar = Application. you can add any control to any of the command bars in the CmdBars collection.ShowPopup to display the pop-up menu.Add 'add command bar ("Analysis Utilities".5 Customizing the user interface Adding controls to a command bar To add a command bar to the collection of command bars: • Call CmdBars. see Command Bars on page 51. as follows: popup. boBarFloating) 'make the tool bar visible toolbar..Add • • To add a tool bar. boBarTop.Delete End Sub After you have added a command bar. use CmdBar.Visible = True 'turn it on toolbar. However. Displaying pop-up menus After you have defined the controls for a pop-up menu. set the type to boBarPopup. 'delete it when finished toolbar. To add a pop-up menu.Add to add controls to a command bar. For more information about adding controls. 54 Desktop Intelligence Developer Guide .CmdBars.

Controls(6) Set toolCmdBut = menuCmdPop.Add(boControlButton) toolCmdBut..rea!ToolModule.. which returns an object of the type StdPicture. a command bar appears as a thin line). 3. Without a face. Clear the clipboard. Desktop Intelligence Developer Guide 55 .CmdBars(2).Controls. Paste the image on the face of the button. without any buttons. For more information about adding faces to buttons. The Clipboard object enables you to access the system clipboard.Delete End Sub Adding faces to buttons: the Clipboard object A face is the image that appears on the button. 2. you can add (paste) it to the button.Caption = "New Tool" toolCmdBut. Therefore. create the button and use the Clipboard object to hold the file containing the face. it is a good programming practice to ensure that the clipboard is empty before and after you use it.NewToolRoutine" toolCmdBut.Customizing the user interface Adding controls to a command bar 5 Example: Adding an extra item to the Desktop Intelligence Tools menu Sub AddTool() Dim menuCmdPop As CmdBarControl Dim toolCmdBut As CmdBarControl Set menuCmdPop = Application. see the Visual Basic documentation.OnAction = "Extras. To add a face to a button. which can contain one image and one block of text. The clipboard is shared by other applications. To add the face to the clipboard. Once the face is in the clipboard. Place the image on the clipboard. Faces are also called icons. Adding a face to a button To add a face to a button. toolCmdBut.DescriptionText = "Useful reporting tool" . use the standard VBA function LoadPicture(). a button appears blank and is indistinguishable from the surface of its command bar (and similarly. complete the following steps: 1.

use CmdBarControl.Clear 'clean up for other applications Set Bitmap = Nothing 'free the space Useful tips for adding buttons • Buttons attached to pop-up command bars do not need faces.OnAction. an action is a VBA subroutine.PasteFace 'paste the bitmap onto the button Application.Clipboard. In programming terms. You can add an action only to the controls of type boControlButton. you can add faces to these buttons that appear in the menus. Clear the clipboard. However. • Adding actions to buttons Adding an action to a button means instructing Desktop Intelligence as to what needs to be done when a user selects the button. The following code fragment illustrates this procedure: Example: Adding a face to a button Dim ToolBut As CmdBarControl Dim Bitmap As New StdPicture button 'the button 'the bitmap for the Bitmap = LoadPicture("c:\Temp\images\Tool.Clear 'clean up the clipboard first Application. Desktop Intelligence uses the caption instead.Clipboard.SetData Bitmap.5 Customizing the user interface Adding controls to a command bar 4. . 56 Desktop Intelligence Developer Guide . To add a functionality to a button. For example. For best results. 2 '2 means it's a bitmap ToolBut. . the Visual Basic icon appears next to the Visual Basic Editor item in the Macros submenu. ensure that the faces have the following specifications: 16x16 pixels or 32x32 pixels.Clipboard. in the Desktop Intelligence Tools menu.bmp". Default) 'put the bitmap in the clipboard Application.

rea!MPasteModule. Create a form module in a Visual Basic project. labels.Customizing the user interface Creating your own forms 5 Example: Adding functionality to a button Dim MultiPasteBut As CommandBarControl . and command buttons. radio buttons. 3.. double-click.. MultiPasteBut.. Visual Basic includes a rich set of programming tools for creating forms visually and defining the behavior of the form and its controls by using events—for example. 2.DisplayMPa ste" .. Desktop Intelligence Developer Guide 57 . list boxes. Implement the event procedures for the control. Creating a form To create a form.. complete the following steps: 1. and moving the mouse. for example. Add controls to the form..OnAction = "MPaste. You can use VBA to create your own forms. Sub DisplayMPaste() . pressing a key. End Sub Creating your own forms A form is a base to which you attach user interface controls.

5 Customizing the user interface Creating your own forms Example: Implementing a form event 58 Desktop Intelligence Developer Guide .

Data providers 6 .

the term "data provider" refers to the source of data that end users make use of to create reports. 60 Desktop Intelligence Developer Guide . This chapter discusses the following topics: • • Working with existing data providers Creating a query technique data provider Working with existing data providers In Desktop Intelligence. see Query technique on page 62. Only data providers that are created from universes have a Queries object. It discusses the different types of data providers and describes how to access these sources of data. For example. by using the object model. you can read the state of the Editable and Refreshable check boxes. You can access the data providers for a document by using the DataProviders collection. Some of the properties of the DataProvider class relate directly to the information available from the Definitions tab of the "Data Manager" dialog box.6 Data providers Working with existing data providers This chapter discusses the concepts associated with creating data providers by using the Desktop Intelligence SDK. For more information about the Queries class.

Item(I).ActiveDocument. Example: Accessing properties of a data provider Sub Show_DP_Names() Dim I As Integer Dim message As String For I = 1 To Application.Dat aProviders.DataProviders.ActiveDocument.Data providers Working with existing data providers 6 The columns in the Results tab of the "Data Manager" dialog box are the same columns that you can access by using the Columns class.Count message = message & Chr(10) & Application.Name Next MsgBox message 'display the names End Sub Desktop Intelligence Developer Guide 61 .

You can use the Desktop Intelligence Query Panel to create a query technique data provider.6 Data providers Working with existing data providers Data provider types Data providers are categorized into four main types: • • • • query technique freehand SQL personal text file stored procedure You can access the data provider types by using DataProvider. Query technique A query technique is a data provider that queries a universe. and the Sales revenue object of the Measures class. where Year is equal to 2000. 62 Desktop Intelligence Developer Guide . see Creating a query technique on page 65. The query part defines which parts of the universe you are interested in. For example. the Year object of the Time period class. This corresponds to choosing the universe in the New Report wizard. If editing is enabled for the data provider. the eFashion universe is stored in the General repository. you can edit the data provider by using the Desktop Intelligence interface. For example. The query technique data provider consists of the following: • • universe query The universe part defines where the information comes from. For information on creating data providers with the Desktop Intelligence SDK. You can select and configure the data provider by using the New Data wizard or the New Report wizard.GetType.

what is a column name and so on. Stored procedure A stored procedure data provider is an SQL script that is saved and executed in a database. A stored procedure data provider has no Queries object. Desktop Intelligence Developer Guide 63 . Personal text file A personal text file data provider retrieves data from plain text. and dBASE files. You can retrieve the SQL statement by using DataProvider. Microsoft Excel. A freehand SQL file data provider has no Queries object. You can use the personal text file option to configure the information in the file. A personal text file data provider has no Queries object. such as what is a value.Data providers Working with existing data providers 6 Freehand SQL A freehand SQL data provider is one in which the data is retrieved by using an SQL statement and the database connection is defined by the end user.SQL.

Unload 'unload the data provider from memory . then system errors can occur..Unload 'make sure that the data provider is not in memory 64 Desktop Intelligence Developer Guide . Business Objects recommends that you include a call to DataProvider when you load or unload a data provider. Unload a data provider in an error-handling mechanism..Load • To unload a DataProvider object from memory.Load 'load the data provider into memory ..Item(1) boDP. Exit Sub DPError: boDP. You need not use them for macros and "one-off" add-ins. it will slow down the system and the program may terminate unexpectedly. If an error occurs while the data provider is loaded to memory. 'do some processing with the data provider boDP.Dat aProviders. use DataProvider. use DataProvider. Error handling If you do not unload a data provider from memory after using it.6 Data providers Working with existing data providers Loading and unloading a data provider You can load and unload a DataProvider object to and from memory as follows: • To load a DataProvider object into memory.. Example: Unloading a data provider in an error handler The following code fragments show how to ensure that a data provider is removed from memory if an error occurs after it is loaded: Sub Modify_DataProvider() Dim boDP As DataProvider On Error Goto DPError 'if there's an error handle it Set boDP = Application.Unload These methods are used to optimize "product-level" programs.ActiveDocument.

AddQueryTechnique returns a DataProvider object that has an empty query object..AddQueryTechnique("eFashion". Build the query. you can choose objects for the results and conditions.Queries.Refresh..Refresh Building the query DataProviders. and run the query. see Desktop Intelligence User's Guide: Accessing Data and Data Analysis. all of which can be accessed through the Queries object.Data providers Creating a query technique 6 MsgBox "An error occurred." error message End Sub 'display an Creating a query technique To create a query technique.Results. Run or refresh the query (execute the SQL) by using DataProvider.Add "Time period". 2. complete the following steps: 1. DataProviders. This is the programmatic equivalent of the Query Panel stage in creating or editing a report.ActiveDocument. The object model includes a number of classes for this. 3. "Year" QT. Ensure that the query you built is runnable. "") QT. For more information on rules for a valid query. apply sorts. that is.Item(1). Call DataProviders. that the query follows the rules for a valid query.AddQueryTechnique. just as in the user interface. Desktop Intelligence Developer Guide 65 . Example: Creating a query technique data provider Dim QT As DataProvider Set QT = Application. From this point.

6 Data providers Creating a query technique Running and refreshing the query (filling the microcube) To run and refresh the query. Desktop Intelligence then builds a report based on the microcube and any sort orders that you have specified. 66 Desktop Intelligence Developer Guide . and Results objects.Refresh. This method executes the SQL instruction you built with the Query. Conditions. use DataProvider. and populates a microcube with the results of the SQL statement.

Get More Help A .

contact your local sales office.A Get More Help Online documentation library Business Objects offers a full documentation set covering all products and their deployment.com/services/consulting/ Looking for training options? From traditional classroom learning to targeted e-learning seminars. The online documentation library has the most up-to-date version of the Business Objects product documentation. For more information. database design tools. read guides on line. customized embedding technology. in connectivities. Find more information on the Business Objects Education web site: http://www.sap. and more.sap.sdn. Additional developer resources https://boc. visit http://help. and download PDF versions. It also has links to a wide range of technical information including knowledgebase articles. we can offer a training package to suit your learning needs and preferred learning style. You can browse the library contents.businessobjects.com/developer/library/ Online customer support The Business Objects Customer Support web site contains information about Customer Support programs and services.businessobjects. Expertise is available in relational and multidimensional databases. The library is updated regularly with new content as it becomes available.com/services/training 68 Desktop Intelligence Developer Guide .com/support/ Looking for the best deployment solution for your company? Business Objects consultants can accompany you from the initial analysis stage to the delivery of your deployment project. To access the online documentation library. do full-text searches. or contact us at: http://www. http://www. downloads.businessobjects.com/ and click Business Objects at the top of the page. and support forums.

businessobjects. visit: http://www. Desktop Intelligence Developer Guide 69 . please contact our Customer Support experts. Business Objects product information For information about the full range of Business Objects products.com.com/support/. and we will do our best to ensure that your suggestion is included in the next release of our documentation: mailto:documentation@businessobjects.com Note: If your issue concerns a Business Objects product and not the documentation.businessobjects. For information about Customer Support visit: http://www.Get More Help A Send us your feedback Do you have a suggestion on how we can improve our documentation? Is there something you particularly like or have found useful? Drop us a line.

A Get More Help 70 Desktop Intelligence Developer Guide .

Index . 65 user interface 50 Clipboard object pasting faces 55 collections command bars 52 command bar controls actions 56 adding 54 collection 52 definition 51 nested 52 command bars adding 53 adding controls 54 collection 52 definition 51 controls see command bar controls 51 creating add-ins 41 macros 38 query technique data provider 65 customizing Desktop Intelligence interface 50 B bitmaps adding to buttons 55 building query technique data provider 65 buttons adding 54 adding actions 56 adding faces 55 Desktop Intelligence Developer Guide 71 . 50 arrays indexes 13 VBA 13 C Chr function 16 classes command bars 52 queries 62.rea 41 buttons (continued) definition 51 A accessing application events 46 Desktop Intelligence user interface 50 actions adding to buttons 56 add-ins 10 creating 41 distributing 42 adding actions to buttons 56 buttons 54 command bars 53 controls 54 macros 40 application events 44 implementing 46 Application object 46.

16 H handling errors in VBA 14 I implementing form events 57 implementing events 11. 45 form 57 implementing 11. 15 disabling macros 38 displaying pop-up menus 54 distributing add-ins 42 document events 44. 45 including external object libraries in VBA 15 indexing arrays in VBA 13 E errors data providers 64 handling 64 handling in VBA 14 events application 44 document 44. 45 executing macros 40 external object libraries 15 F faces adding 55 recommended size 56 filling a microcube 66 flow control in VBA 12 forms creating 57 freehand SQL data provider definition 63 functions 11. 45 order 45 triggers 45 Excel querying 63 L loading data providers 64 M macros 10 adding 40 72 Desktop Intelligence Developer Guide .Index D data providers 60 freehand SQL 63 handling errors 64 loading and unloading 64 optimizing 64 personal text file 63 query technique 62 stored procedure 63 types 62 dBASE querying 63 declaring arrays in VBA 13 variables in VBA 11 Desktop Intelligence customizing the interface 50 development environment VBA 10.

38 P personal text file data provider definition 63 pop-up menus adding 53 definition 51 displaying 54 nesting 52 procedures 11 browsing in VBA 15 T tool bars adding 53 definition 51 tool tips macros 40 Desktop Intelligence Developer Guide 73 . 65 definition 62 running and refreshing 66 R referencing external object libraries in VBA 15 refreshing query technique data provider 66 reports 66 repository 62 running macros 40 query technique data provider 66 N nesting controls 52 O Object Browser 10 opening 15 object models user interface 50 objects browsing in VBA 15 external 15 On Error statement 14 optimizing data providers 64 S showing pop-up menus 54 SQL 66 data provider 63 stored procedure data provider definition 63 sub-routines 11.Index macros (continued) creating 38 running 40 tool tips 40 memory management data providers 64 menu bar definition 51 menus nesting 52 microcube filling 66 Q Queries object 65 Query Panel 65 query technique data provider creating 62.

65 unloading data providers 64 user input 50 user interface customizing 50 V VBA 10 arrays 13 creating forms 57 data types 11 events 11 flow control 12 VBA (continued) functions 16 implementing an event 45 language summary 10 On Error statement 14 variables 11 With statement 14 writing macros 38 VBA procedure data provider creating 62 Visual Basic editor 10. 40 tool bar 40 W With statement 14 74 Desktop Intelligence Developer Guide .Index U universes querying 62.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->