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

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

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

Contents 6 Desktop Intelligence Developer Guide .

Introduction 1 .

see Appendix A: Get More Help. with links to online resources. This appendix describes the Business Objects documentation.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). training. customer support. Who should use this guide This guide is intended for developers who want to use the Desktop Intelligence SDK to develop applications. 8 Desktop Intelligence Developer Guide . Business Objects information resources For more information and assistance. and consulting services.

Getting started with VBA 2 .

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

Event implementation The VBA is event-driven. whereas subroutines do not return values.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. Examples of events include a user opening a document and a user clicking a button. This implies that you cannot write a code to respond to events in the Designer Desktop Intelligence Developer Guide 11 . 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. that is. Functions can return values.

Repeats an action while a condition is true Repeats an action either when a condition is true. or until it becomes true Branches to one of several possible code segments. However. alters the execution flow Repeats an action the specified number of times. 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. 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.2 Getting started with VBA Language summary application. see Desktop Intelligence events on page 44 and Creating your own forms on page 57. and based on the result of the test. For more information on implementing events.

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

With statement The With statement tool enables you to abbreviate object references.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. If you don't use an On Error statement.DataProviders. That is.Item(1). 14 Desktop Intelligence Developer Guide . For example: Dim RawData(10 To 20) As Variant RawData has 11 elements. any run-time error that occurs can prove to be critical.DuplicateRows = TRUE . 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. an error message is displayed and the execution stops.ScopeOfAnalysis = boThreeLevelsDown End With Error handling You can use the On Error statement to handle errors generated during the execution of a code.ActiveDocument. you must specify the bounds in the array declaration. The first is element number 10 and the last is element number 20.Queries .DeleteTrailingBlanks = TRUE .

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

Select the object library from the list.2 Getting started with VBA Some useful VBA functions and subroutines If the reference is successful. 2. and click OK. the name of the object library you referenced appears in the Object Library drop-down list in the VBA Object Browser. 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 .

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 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 . after rounding down positive numbers and negative numbers Returns the integer portion of a number.

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

VBA macros: migration overview 3 .

or 6.7).x. report instances.1/6. • A direct migration path and a set of migration tools for customers who have deployed BusinessObjects 5. which enables a large number of customers to move their entire business intelligence (BI) solution to the web. Support depends on the nature of the code and the location of the code execution.3 VBA macros: migration overview Migration of VBA macros to XI BusinessObjects XI Release 2 (referred to as "XI R2") and BusinessObjects XI 3. Web Intelligence: XI provides a much-enhanced version of Web Intelligence. This section provides information about the migration of VBA macros to XI. However.5. 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. some macros are not supported on the server side.1/6. Most VBA macros developed for 5. and discussions.1 (or Web Intelligence 2. 6.x work in XI.0") are new versions of BusinessObjects XI. XI R2 and XI 3.1.0 enable majority of classic BusinessObjects customers to move to the XI platform. such as Unicode support.0. Desktop Intelligence: The BusinessObjects full client (which is renamed as Desktop Intelligence) is part of XI. • • The XI provides a direct migration path from BusinessObjects 5.0 (referred to as "XI 3. It benefits from the enhancements in the new platform. The VBA macros or add-ins developed for 5.x are collectively referred to as XI. Both XI R2 and XI 3.x work with Desktop Intelligence supported in XI.1/6.

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

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

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

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

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

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

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

5.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. because scheduling is no longer supported in Desktop Intelligence SDK. Use cases This section briefly describes the use cases of Desktop Intelligence SDK. 28 Desktop Intelligence Developer Guide . Scheduling by using DocAgentOption class The DocAgentOption calls must be replaced by Enterprise SDK scheduling API.3 VBA macros: migration overview Use cases Availability of variables Variable name COMPUTERNAME CommonProgramFiles HOMEDRIVE HOMEPATH ProgramFiles 6.

How it was done in 6.LogonWithToken(EntSession. Desktop Intelligence SDK and Enterprise SDK interoperate.5: Desktop Intelligence Developer Guide 29 .Documents( " DocumentToScedule " ).RightNow = 1 Schedule the document IStore.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.SchedulingInfo FCScheduleInfo.VBA macros: migration overview Use cases 3 In the following use case for Application.LogonWithToken and Document.CreateLo gonEx) Dim strCUID As String Call to BusinessObjects FC SDK to get document's CUID strCUID = Application.Type=4 (Schedule is monthly.Item(1) Dim FCScheduleInfo As SchedulingInfo Use the scheduling object to set the scheduling options Set FCScheduleInfo = FCDocumentObject.IntervalMonths = 2 FCScheduleInfo. Login BusinessObjects Full Client Application.CUID.LogonTokenMgr.Query("SELECT SCHEDULEINFO FROM CI_INFOOBJECTS _ WHERE SI_CUID = ' "+strCUID + "'""") Dim FCDocumentObject As InfoObject Retrieve the first document Set FCDocumentObject =Result.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.) FCScheduleInfo.

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 . • Option 2: 1. see Scheduling by using DocAgentOption class on page 28. Install Desktop Intelligence on the same machine as the BusinessObjects XI Server. and send notification emails. 3. properties. Call VBA ENotify () in document event handler: Sub Document_AfterRefresh() 2. Move the code from VBA to a VB Program.rep document contained the Sub ENotify() VBA macro to open documents. see Scheduling by using DocAgentOption class on page 28. Use InfoView or BusinessObjects Enterprise SDK to schedule publisher. Use InfoView or BusinessObjects Enterprise SDK to schedule the VB program object. properties.3 VBA macros: migration overview Document events. properties. 2. save them in PDFformat. For more information.rep refresh. and methods A publisher. How to migrate it to XI: The following are the two options to migrate from 6. Document events.rep document was scheduled through BCA. For more information. and methods The following tables discuss the document events. The publisher.5 to XI: • Option 1: 1. action specified the execution of VBA code embedded in the document.

SaveToEn Doesn't work terprise ThisDocument.VBA macros: migration overview Document events. properties.SaveAs InfoView Doesn't work Doesn't work Desktop Intelligence OK OK OK ThisDocument.Save ThisDocument.Expor tAsPDF ThisDocument.Expor tAsXML OK OK OK OK Desktop Intelligence Developer Guide 31 . 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.

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

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

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 .

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. On the submenu. select Macros. A macro is saved within a document and is enabled each time you open the document. select Macro. complete the following steps: 1. The "Macros" dialog box appears. as shown in the following figure: 38 Desktop Intelligence Developer Guide . just as you can send a regular Desktop Intelligence document. 2. From the Tools menu. Creating a macro To create a macro. You can create macros in Desktop Intelligence by using the integrated VBA environment.4 Programming with Desktop Intelligence Macros and subroutines This chapter describes how to program with Desktop Intelligence. You can send a document containing a macro to other users.

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

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

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

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

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

General document events. belong to the Application class and are called application events. For example.4 Programming with Desktop Intelligence Desktop Intelligence events Desktop Intelligence events An event is a change in the state of Desktop Intelligence.rep and *. those that apply to specific documents. Programming a response to an event is called implementing the event. These events are made available in general and specific senses. for which you can program a response. belong to the Document class and are called document events. you can implement an event for any document. you can program Desktop Intelligence to display a dialog box whenever a user opens a document. Specific document events.rea). In Desktop Intelligence. That is. 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 . you can implement events concerning Desktop Intelligence documents (*. those that apply to any document. or only when it happens to a particular document.

the order of events is Doc1_Deactivate followed by Doc2_Activate. Desktop Intelligence Developer Guide 45 . If the focus is moved from Doc1 to Doc2.Refresh method. For example. a BeforeRefresh event (application and document) is triggered when the user clicks the Refresh button in the Desktop Intelligence user interface.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. 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. BeforeClose occurs before BeforeSave. or when the user calls the Document. Triggering the events on the server side by using Desktop Intelligence document has certain limitations. the Open event occurs followed by Activate. Implementing an event Each event that you can implement appears in the VBA procedure list for its corresponding object. When a document is opened.

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?". 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. insert the code that you want to execute in the procedure corresponding to the event when the event occurs. so cancel the refresh Cancel = True Else 'user didn't cancel. you need to create a reference to the object and implement the events of the reference. To access the events of the Application object. This process is identical to implementing form events in the user interface. see Creating your own forms on page 57. vbOK Cancel) If Response = vbCancel Then 'user chose cancel. 46 Desktop Intelligence Developer Guide . For more information.

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

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

Customizing the user interface 5 .

and pop-ups in the Desktop Intelligence interface.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 collection. 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. you can also access elements of the Desktop Intelligence user interface and extend the interface to accommodate the requirements of your program. so that they appear as part of the normal interface. The CmdBars collection is the access point for all menus. 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 . 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. Using the Desktop Intelligence SDK. With the Desktop Intelligence SDK. Each Desktop Intelligence Application object includes a collection called CmdBars. tool bars.

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

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

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

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

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

use CmdBarControl. Clear the clipboard. 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. in the Desktop Intelligence Tools menu.Clear 'clean up the clipboard first Application.SetData Bitmap.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.Clipboard.PasteFace 'paste the bitmap onto the button Application. . In programming terms. For best results. For example. However.Clipboard.Clipboard. Default) 'put the bitmap in the clipboard Application. you can add faces to these buttons that appear in the menus. 56 Desktop Intelligence Developer Guide . . 2 '2 means it's a bitmap ToolBut. an action is a VBA subroutine. ensure that the faces have the following specifications: 16x16 pixels or 32x32 pixels.bmp".OnAction. To add a functionality to a button. You can add an action only to the controls of type boControlButton. Desktop Intelligence uses the caption instead. • 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 Visual Basic icon appears next to the Visual Basic Editor item in the Macros submenu.5 Customizing the user interface Adding controls to a command bar 4.

. Creating a form To create a form.. and moving the mouse. Sub DisplayMPaste() . and command buttons. radio buttons. 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. You can use VBA to create your own forms.rea!MPasteModule..OnAction = "MPaste.. double-click. Implement the event procedures for the control. Add controls to the form. 3. complete the following steps: 1... pressing a key.Customizing the user interface Creating your own forms 5 Example: Adding functionality to a button Dim MultiPasteBut As CommandBarControl . 2. for example. labels.DisplayMPa ste" . End Sub Creating your own forms A form is a base to which you attach user interface controls. list boxes. Create a form module in a Visual Basic project. Desktop Intelligence Developer Guide 57 .

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. see Query technique on page 62. by using the object model. For example. Only data providers that are created from universes have a Queries object. 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. you can read the state of the Editable and Refreshable check boxes. 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. 60 Desktop Intelligence Developer Guide . For more information about the Queries class. It discusses the different types of data providers and describes how to access these sources of data. You can access the data providers for a document by using the DataProviders collection.

DataProviders.Item(I).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. Example: Accessing properties of a data provider Sub Show_DP_Names() Dim I As Integer Dim message As String For I = 1 To Application.ActiveDocument.Dat aProviders.Name Next MsgBox message 'display the names End Sub Desktop Intelligence Developer Guide 61 .

This corresponds to choosing the universe in the New Report wizard. For example. You can use the Desktop Intelligence Query Panel to create a query technique data provider.GetType. and the Sales revenue object of the Measures class. The query technique data provider consists of the following: • • universe query The universe part defines where the information comes from. see Creating a query technique on page 65. For information on creating data providers with the Desktop Intelligence SDK. the Year object of the Time period class. you can edit the data provider by using the Desktop Intelligence interface. the eFashion universe is stored in the General repository. If editing is enabled for the data provider. You can select and configure the data provider by using the New Data wizard or the New Report wizard. For example. where Year is equal to 2000. The query part defines which parts of the universe you are interested in. Query technique A query technique is a data provider that queries a universe. 62 Desktop Intelligence Developer Guide .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.

Personal text file A personal text file data provider retrieves data from plain text. A freehand SQL file data provider has no Queries object. Stored procedure A stored procedure data provider is an SQL script that is saved and executed in a database. and dBASE files. You can retrieve the SQL statement by using DataProvider. A stored procedure data provider has no Queries object. what is a column name and so on. Desktop Intelligence Developer Guide 63 . You can use the personal text file option to configure the information in the file.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. such as what is a value. Microsoft Excel. A personal text file data provider has no Queries object.

then system errors can occur. Business Objects recommends that you include a call to DataProvider when you load or unload a data provider. use DataProvider.ActiveDocument. If an error occurs while the data provider is loaded to memory.Unload 'unload the data provider from memory ..Unload 'make sure that the data provider is not in memory 64 Desktop Intelligence Developer Guide .. 'do some processing with the data provider boDP. Exit Sub DPError: boDP.Dat aProviders.. 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..Load • To unload a DataProvider object from memory. You need not use them for macros and "one-off" add-ins.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. use DataProvider. Unload a data provider in an error-handling mechanism.Unload These methods are used to optimize "product-level" programs. it will slow down the system and the program may terminate unexpectedly.Item(1) boDP. Error handling If you do not unload a data provider from memory after using it.Load 'load the data provider into memory .

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

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

Get More Help A .

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

For information about Customer Support visit: http://www. Business Objects product information For information about the full range of Business Objects products.com Note: If your issue concerns a Business Objects product and not the documentation. and we will do our best to ensure that your suggestion is included in the next release of our documentation: mailto:documentation@businessobjects.com/support/. please contact our Customer Support experts.businessobjects. 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.businessobjects. Desktop Intelligence Developer Guide 69 .com.

A Get More Help 70 Desktop Intelligence Developer Guide .

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

15 disabling macros 38 displaying pop-up menus 54 distributing add-ins 42 document events 44.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. 45 order 45 triggers 45 Excel querying 63 L loading data providers 64 M macros 10 adding 40 72 Desktop Intelligence Developer Guide . 16 H handling errors in VBA 14 I implementing form events 57 implementing events 11. 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 form 57 implementing 11. 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.

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

40 tool bar 40 W With statement 14 74 Desktop Intelligence Developer Guide . 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.Index U universes querying 62.

Sign up to vote on this title
UsefulNot useful