Hyperion 8.3 Developers Guide
Hyperion 8.3 Developers Guide
Release 8.3
Copyright 19992004 Hyperion Solutions Corporation. All rights reserved. Hyperion and Hyperion's product names are trademarks of Hyperion. References to other companies and their products use trademarks owned by the respective companies and are for reference purpose only. No portion of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose other than the purchaser's personal use, without the express written permission of Hyperion. The information contained in this manual is subject to change without notice. Hyperion shall not be liable for errors contained herein or consequential damages in connection with the furnishing, performance, or use of this material. This software described in this manual is licensed exclusively subject to the conditions set forth in the Hyperion license agreement. Please read and agree to all terms before using this software. GOVERNMENT RIGHTS LEGEND: Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the applicable Hyperion license agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14, as applicable. Hyperion Solutions Corporation 1344 Crossman Avenue Sunnyvale, California 94089 Printed in the U.S.A.
Contents
Preface Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Document Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii General Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Hyperion Foundation Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Hyperion Intelligence Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv Hyperion SQR Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Where to Find Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Additional Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii Education Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii Consulting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Documentation Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix PART I CHAPTER 1 API Documentation Getting Started with Java APIs Basic Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Importing the SDK Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obtaining a Session Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invoking Hyperion Performance Suite Services . . . . . . . . . . . . . . . . . . . . Java Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Java-Accessed Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 1-2 1-3 1-3 1-4 1-5
CHAPTER 2
Hyperion Performance Suite Objects Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 AbsoluteTimeEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 BaseObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 BQYDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 BQYJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 CustomCalendar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 DataObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 ExternallyTriggered Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 InstancePermission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 JobOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 ObjectID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6 OCEDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 ParameterList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 PhysicalResource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 QueryVector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 RecurringTimeEvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8 ReportMartEntity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Respository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 ScheduledTask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-9 Scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 SPFSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 SQRJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10 SQRJobOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 JobParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 ObjectType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 ReportMartException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 SessionFactory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
iv
Contents
UnknownReportMartException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13 UserValidationException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14 CHAPTER 3 Batch Driver Sample Program Control File About the Batch Driver Control File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Accessor Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Group Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 Category Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 User Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Data Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 OCE Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 BQY Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-11 Sample Java Programs Prerequisites for Running the Sample Programs . . . . . . . . . . . . . . . . . . . . . . 4-2 Running the Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 AddBQYDocument.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 AddBQYJob.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 AddCategory.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 AddDocument.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 AddExternalLink.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7 AddFavorites.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7 AddGroup.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7 AddLink.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 AddObjectType.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 AddOCEDocument.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 AddRole.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 AddSPF.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9 AddSubscription.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 AddUser.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10 AddVersions.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 AutoZip.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11 BatchDriver.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12 CategoryDelete.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12 ExecuteBQYDocument.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 ExecuteBQYJob.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 ExecuteSQRJob.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-15
v
CHAPTER 4
Contents
ExpirationDate.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FetchCategory.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FetchDocument.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListEvents.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListGroups.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ListUsers.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Login.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NestedGroups.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ObjectByPath.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ObjectById.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PublishEvent.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PublishOutputDirectory.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PublishPrinterResource.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QueryGroup.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . QueryUser.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ReplaceObject.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQRParms.java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attributes and Supporting Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PART II CHAPTER 5 Customization
4-15 4-15 4-16 4-16 4-16 4-17 4-17 4-17 4-18 4-18 4-18 4-19 4-19 4-19 4-20 4-20 4-20 4-21
HTML Templates Customizing Hyperion Foundation Templates . . . . . . . . . . . . . . . . . . . . . . . 5-2 Preparing to Write Custom Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Editing and Testing Template Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 Importing the Contents of One Template into Another . . . . . . . . . . . . 5-4 Template Element Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Template Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Template Names and Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-6 Modifying a Template: An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Java Server Pages JSP Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Administrator Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Browser Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dashboard Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dataaccess Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CHAPTER 6
vi
Contents
IHTMLServlet Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 PersonalPage Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Scheduler Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 Shared Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 JSP Pages Identified by User Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Viewing Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 Advanced Login Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Browse Listing Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 Modifying File Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8 Modify File Properties Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9 Modify BQY Document Properties Page . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Creating Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Manage Jobs Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16 Manage Events Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17 Create Recurring Event Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18 Create Externally Triggered Event Page . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20 Scheduling Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-20 Scheduling Information Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 General Properties Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-22 Select Job Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-23 Set Values Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 BQY Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-24 SQR Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28 Generic Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-28 When to Run Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 Notification Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 CHAPTER 7 Customizing E-mail Notifications Configuring E-mail Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Notification Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Template File Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 Choosing HTML or Text Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Template File Replacement Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Properties in the notification.properties File . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Images in HTML-Formatted E-mail Notifications . . . . . . . . . . . . . . . . . . . 7-11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-11
Contents
vii
CHAPTER 8
SmartCuts About SmartCuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 The get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Getting and Viewing a Document, Report, or Form . . . . . . . . . . . . . . . 8-4 Getting Report Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-5 Getting a Single Report Output Object . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 The run Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 The list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 The listNav Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 The listIndex Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 The listAll Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-11 SmartCut Variables for BQY Documents and Jobs . . . . . . . . . . . . . . . . . . . 8-12 bqtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 mimetype or filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 dest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 SectionName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-14 BoundRect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15 JobOutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15 ShowForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-15 Limits and LimitValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 SmartCut Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Example: Accessing Hyperion Performance Suite Content from a Web Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Example: Using SmartCuts Via HTML Forms . . . . . . . . . . . . . . . . . . . 8-22 Extended Services Integrating Extended Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuration File for Extended Services . . . . . . . . . . . . . . . . . . . . . . . . URL to Access Extended Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examples Entries and URLs for Service Properties . . . . . . . . . . . . . . . . Aggregation of Query Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Relative Links in Extended Service HTML Output . . . . . . . . . . . . . . . . Local Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying Extended Service Content on Personal Pages . . . . . . . . . . . . . . .
CHAPTER 9
viii
Contents
APPENDIX A
How to Use the API Sample Programs for Non-Java Programmers Preparing to Use the Sample Java Programs . . . . . . . . . . . . . . . . . . . . . . . . . Installing Hyperion Performance Suite SDK . . . . . . . . . . . . . . . . . . . . . Validating the Hyperion Performance Suite Connection . . . . . . . . . . . Compiling the Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running the Login Sample Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Batch Driver Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossary Index
Contents
ix
Contents
Preface
Welcome to the Hyperion Performance Suite, Developers Guide. This preface discusses the following topics:
Purpose on page xi Audience on page xi Document Structure on page xi Related Documents on page xiii Where to Find Documentation on page xvi Conventions on page xvii Additional Support on page xviii Documentation Feedback on page xix
Purpose
This guide provides information that you need to use Hyperion Performance Suite APIs to customize and extend Hyperion Performance Suite.
Audience
The audience for this guide consists of developers, program managers, and quality engineers. The audience should be conversant with Java programming, able to edit, compile, and execute Java programs in a development environment, and familiar with the Hyperion Performance Suite environment.
Document Structure
This document contains the following information:
Part I, API Documentation, provides information on the Hyperion Performance Suite APIs for experienced Java programmers. This part contains the following chapters: Chapter 1, Getting Started with Java APIs, provides a high-level overview of the steps required to connect to and use the services of the Hyperion Performance Suite. Chapter 2, Hyperion Performance Suite Objects, contains information on specific Hyperion Performance Suite API objects, describing some of the important SDK interfaces and classes that are publicly available. Chapter 3, Batch Driver Sample Program Control File, describes how to create and modify the control file for the batch driver sample program, BatchDriver.java. Chapter 4, Sample Java Programs, demonstrates some of the functionality of the APIs and provides a starting point for your own utility programs. Part II, Customization, is a technical reference with information on the templates, the JSP pages, and instructions on how to customize e-mail notifications and create SmartCuts. This part contains the following chapters: Chapter 5, HTML Templates explains how to modify the Hyperion Performance Suite HTML templates and how to add custom HTML templates. Chapter 6, Java Server Pages, discusses the JSP pages used to create specific user interface pages in Hyperion Performance Suite. Chapter 7, Customizing E-mail Notifications, shows how to configure and customize e-mail notifications. . Chapter 8, SmartCuts provides information on the SmartCut commands as well as a few SmartCut examples. Chapter 9, Extended Services, describes how to integrate an extended service with the Hyperion Performance Suite servlets. Appendix A, How to Use the API Sample Programs for Non-Java Programmers includes instructions on preparing to use the sample programs, how to compile and run sample programs, and a tutorial on how to add a user using the Batch Driver sample program. The Glossary contains a list of key terms and their definitions. The Index contains a list of Hyperion Performance Suite terms and their page references.
xii
Preface
Related Documents
The Hyperion Performance Suite comprehensive documentation set offers detailed technical information, troubleshooting advice, and best practices guidelines that help you maximize your Hyperion Solutions experience. In addition to the manuals listed, Hyperion Performance Suite products include substantial online help and release notes.
Note
The documents listed in this section are located on the Document CD that ships with Hyperion Performance Suite.
General Documentation
New Features in Hyperion Performance Suite describes the new functionality of the Hyperion Performance Suite system. The Hyperion Performance Suite Installation Guide provides the information that you need to install the Hyperion Performance Suite software successfully on both Microsoft Windows and UNIX systems. It includes operating system and third-party software requirements; installation instructions and prerequisite information; installation details including directory structure and contents, registry entries, and sample INI, config, log, and startup files; configuration information for those administration tasks necessary to complete installation; and troubleshooting information including error messages. The Hyperion Performance Suite Migration Guide provides guidelines and recommendations for migrating from Brio Portal 7. 0.X to Hyperion Performance Suite, and for migrating from Brio Intelligence 6.5 to Hyperion Performance Suite. The Hyperion Performance Suite Accessibility Guide describes the accessibility features of all Hyperion Performance Suite products.
Preface
xiii
xiv
Preface
The Hyperion Intelligence Administrators Guide helps administrators manage Hyperion Intelligence. The book is written for Hyperion Explorer and Hyperion Designer users who have access to more advanced features (such as connectivity and data modeling) and who may have responsibility for implementing Hyperion Intelligence in an enterprise environment.
Preface
xv
Using Hyperion SQR Activator explains how to use an application development environment to integrate Hyperion SQR into a business application. This book is written for application developers familiar with Micorsoft ActiveX controls who want to give their users the ability to run, view, and print SQR reports as part of their applications.
Online help is accessible from the product that it documents. Start the product and click the Help button or menu command. The Hyperion Solutions Web site is located at http:// www.hyperion.com. Access to the Hyperion Download Center is through http:// hyperion.subscribenet.com.
1 Log on http://www.hyperion.com. 2 Select the Support link and type your username and password to log on.
Note
1 Log on http://hyperion.subscribenet.com. 2 In the Login ID and Password text boxes, enter your assigned login ID name and
password. Then click Login.
3 If you are a member on multiple Hyperion Download Center accounts, select the account
that you want to use for the current session.
xvi
Preface
Visit the Hyperion Solutions Web site at http://www.hyperion.com. In the United States, call Hyperion Solutions Customer Support at 877901-4975. From outside the United States, including Canada, call Hyperion Solutions Customer Support at 203-703-3600. Clients who are not serviced by support from North America should call their local support centers.
Conventions
The following table shows the conventions that are used in this document:
Tab le 1 Item
Arrows indicate one-step procedures. Bold highlights options, buttons, or tabs that you need to choose and text that you need to type. Capital letters denote commands, various IDs, and file name extensions. For example: CLEARBLOCK command
[Ctrl+0]
Keystroke combinations shown with the plus sign (+) indicate that you should press the first key and hold it while you press the next key. Do not type the plus sign. Courier font indicates that the example text is code or syntax. Courier font is also used for file names, directory and folder names, and path names. For example: Sample1.bqy is located in the \HYPERION_HOME\Samples directory.
Example text
Preface
xvii
Tab le 1 Item
Courier italic text indicates a variable field in command syntax. Substitute a value in place of the variable shown in Courier italics. This document provides examples and procedures that use a righthanded mouse. If you use a left-handed mouse, adjust the procedures accordingly. Options in menus are shown in the following format. Substitute the appropriate option names in the placeholders, as indicated. Menu nameMenu commandExtended menu command For example: 1. Select FileDesktopAccounts.
Menu options
Additional Support
In addition to providing documentation and online help, Hyperion offers the following product information and support. For details on education, consulting, or support options, visit Hyperions Web site at http:// www.hyperion.com.
Education Services
Hyperion offers instructor-led training, custom training, and eTraining covering all Hyperion applications and technologies. Training is geared to administrators, end users, and information systems (IS) professionals.
Consulting Services
Experienced Hyperion consultants and partners implement software solutions tailored to clients particular reporting, analysis, modeling, and planning requirements. Hyperion also offers specialized consulting packages, technical assessments, and integration solutions.
xviii
Preface
Technical Support
Hyperion provides enhanced electronic-based and telephone support to clients to resolve product issues quickly and accurately. This support is available for all Hyperion products at no additional cost to clients with current maintenance agreements.
Documentation Feedback
Hyperion strives to provide complete and accurate documentation. Hyperion values your opinions on this documentation and want to hear from you. Give us your comments by going to http://www.hyperion.com/services/ support_programs/doc_survey/index.cfm.
Preface
xix
xx
Preface
PART I
IAPI Documentation
Hyperion-provided APIs, which are a collection of 100% pure Java APIs, and sample programs are designed to enable organizations that use Hyperion Performance Suite to access features and capabilities from their own Java programs. This chapter provides a high-level overview of the steps required to connect to and use the services of Hyperion Performance Suite from a Java application program. For detailed instructions, see Chapter 4, Sample Java Programs.
Note
Using APIs to enhance, extend, or customize your Hyperion Performance Suite system is considered nonstandard and is not supported by Hyperion customer support.
In This Chapter
Basic Steps
Using Hyperion Performance Suite services from a Java application program requires only a few basic steps:
1 Import the Software Development Kit (SDK) package into the program by using an
import statement.
2 Obtain a Session interface. This process authorizes the account to Hyperion Performance
Suite and provides access to all Hyperion Performance Suite services.
This statement defines each of the interfaces that your program uses during the course of its execution. You should make sure that the path describing the location of the SDK package is defined in the classpath environment variable used by your Java compiler. For the Windows environment, you can specify the following as classpath:
.;%Install_Home%\SDK;%Install_Home%\SDK\lib\rmapi.jar;%Install_ Home%\SDK\lib\jython.jar;%Install_Home%\lib;%Install_Home%\SDK\ etc\log4j;%Install_Home%\lib\log4j.jar;%Install_Home%\lib\found ation.jar;%Install_Home%\lib\iona61.jar;%Install_Home%\lib\comu til1_01.jar;%Install_Home%\lib\logi.crypto1.1.2.jar;%Install_Ho me%\lib\xercesImpl.jar;%Install_Home%\lib\xmlParserAPIs.jar;%In stall_Home%\lib\spf82.jar;%Install_Home%\lib\commons_collection s.jar;%Install_Home%\BrioPlatform\lib\bqservice.jar;
Note:
Replace %Install_Home% with the correct location. For example, if Hyperion Performance Suite installation has the directory structure D:\Hyperion\BrioPlatform, replace %Install_Home% with D:\Hyperion. For UNIX installations, replace with the equivalent directory (for example, /usr/apps/hyperion) and also change each \ (back slash) to a / (front slash).
1-2
Basic Steps
1-3
Java Exceptions
Most method calls to classes in the com.sqribe.rm.* package throw a ReportMartException, which is an Exception class derived from the standard java.lang.Exception class. Throwing exceptions is the normal mechanism used in the APIs to communicate a negative result from a method invocation. To avoid providing countless subclasses of ReportMartException to cover all possible failure scenarios, the ReportMartException classes are limited, with most of the subclasses related to login processing:
UnknownReportMartException: Thrown when the host name cannot be resolved or when no Service Agent is running on the host UserValidationException: Thrown when the user ID or password that is provided is invalid
All calls to API methods must be enclosed in a try / catch block, as seen in the following example code that shows how to log on to Hyperion Performance Suite:
import com.sqribe.rm.*; public class TestSDK { static Session theSession = null; public static void main(Strings [] args) { // assume that args contains username, password and host try { theSession = SessionFactory.getInstance(args[0], args[1], args[2]); ... ... your code goes here ... } catch (UnknownReportMartException e1) { // unable to connect to specified host System.out.println(e1.getMessage()); } catch (UserValidationException e2) { // invalid account or password System.out.println(e2.getMessage()); } } }
1-4
Java-Accessed Functions
Java programs can take advantage of Hyperion Performance Suite services in order to access various Hyperion Performance Suite functions, depending on the privileges granted by the administrator to the account used to connect to Hyperion Performance Suite. The following list identifies examples of the functions that can be accessed by a Java API program:
Creating, modifying, or deleting user accounts or querying the attribute information related to accounts Creating or deleting Hyperion Performance Suite folders or hierarchies of Hyperion Performance Suite folders and copying data files between folders and the local file system Creating, modifying, or deleting Hyperion Performance Suite groups and, based on group membership specifying access rights to objects Publishing or modifying properties for documents or jobs Creating, modifying, or deleting resources, such as printers or output directories
Java-Accessed Functions
1-5
1-6
This chapter contains information on specific Hyperion Performance Suite API objects, describing some of the important SDK interfaces and classes that are publicly available. You can use the described interfaces and classes when creating a Java application program that interacts with Hyperion Performance Suite. For more information on Hyperion Performance Suite interfaces and classes, see the Hyperion Performance Suite Javadocs in Install_Home/SDK.
In This Chapter
Interfaces
AbsoluteTimeEvent
See: com.sqribe.rm.AbsoluteTimeEvent This interface is used to create an event that is triggered at a given time. This event is a nonrecurring, one-time event which occurs only once at the specified point in time. This is an unnamed type of event. APIs modify and retrieve various properties of the event.
Authentication
See: com.sqribe.rm.Authentication This interface provides methods for querying the Authentication System capabilities, creating new users and groups, listing users and groups or removing user and groups. In Hyperion Performance Suite, removing a user, or group object essentially means deactivating it. Methods are available in this interface to retrieve and list deactivated users and groups. Any deactivated user and group can be brought back to active state by applying the setActive() method to them. In Hyperion Performance Suite, users and groups cannot be completely removed from the system. Release 8.2 has been enhanced to support adding users and groups to a specified Authentication System as well to support logging on to a specific Authentication System (See class SessionFactory). APIs for configuring an Authentication System to support the Single Sign On (SSO) feature have been added.
Authorization
See: com.sqribe.rm.Authorization This interface provides methods used to obtain or modify information about entities stored in the Authorization System. Methods are provided for creating, accessing and updating roles. In addition, methods for retrieving and listing system or business roles are available.
BaseObject
See: com.sqribe.rm.BaseObject
2-2
This interface extends ReportMartEntity and provides additional methods used to access additional attributes of data objects stored in Hyperion Performance Suite. These additional attributes are infused to obtain or modify information about objects stored in Hyperion Performance Suite. Methods are provided that enable specifying and querying the following attributes associated with a BaseObject:
Custom property values that have been specified and saved with the object in Hyperion Performance Suite Object type or metatype for the object Ownership of the object Automatic deletion of the object when an expiration date has been assigned Whether the object can be browsed
BQYDocument
See: com.sqribe.rm.BQYDocument This interface provides methods to get information regarding BQY documents. It provides mechanism to get OCE mapping for the BQY query sections and enables you to set the OCEs for the query sections. It also supports methods to check and set the iHTML rendering of BQY documents.
BQYJob
See: com.sqribe.rm.BQYJob This interface extends the Job interface. It enables you to set and update actions associated with a BQY job. Methods are available for setting cycles and actions associated with those cycles. It is possible to set the BQY job to run in the foreground or background and to assign a default calendar to be associated with this job by using the methods included for this interface. New classes (such as BQYOLAPParameter, BQYOLAPSlicerParameter, etc) have been added to support OLAP and OLAP Slicer parameters for BQY jobs. Also new methods have been added to the BQYParameter class and the BQYSectionInfo interface to support variable limit parameters containing complex sections (union subquery and master data model).
Interfaces
2-3
Category
See: com.sqribe.rm.Category This interface provides methods that enable your program to copy files and the contents of directories to and from the local file system, automatically creating the corresponding Category hierarchy in Hyperion Performance Suite as needed. Methods are also provided to enable recursive deletion of categories and their contents.
Collection
See: com.sqribe.rm.Collection This interface provides utility methods similar to a Vector that enables you to access sets of objects. These Collection interfaces are commonly associated with the output from job executions.
CustomCalendar
See: com.sqribe.rm.CustomCalendar This interface is used to define a calendar specific to the business, such as fiscal and manufacturing etc. CustomCalendar and CalendarYear together provide a structure to define a customizable calendar. Different types of custom calendars could be defined including internal, external, and default. Only one default calendar can be defined, and it is already constructed by the system. CustomCalendar contains a list of calendar years and also contains information about nonworking days. A calendar year contains information about a custom year, such as the period limits and quarters limits. Calendar years are defined only for internal calendars.
DataObject
See: com.sqribe.rm.DataObject This interface defines additional methods that can be invoked on objects that have been stored in Hyperion Performance Suite, such as HTML documents, SQR Reports, and comma-separated value data files. The interface enables your program to obtain lists of keywords associated with the object, to update the contents of the DataObject, and to retrieve contents from the local file system.
2-4
ExternallyTriggered Event
See: com.sqribe.rm.ExternallyTriggeredEvent This interface defines an event that is triggered by an external action. The triggering of this event is a two stage process. When this event is triggered, it is set to run immediately. Externally Triggered Events are always PUBLIC events.
Group
See: com.sqribe.rm.Group This interface provides methods used to access the attributes of Group objects defined in Hyperion Performance Suite. Using this interface, your program can invoke methods that enable you to add a member to the group, to discover the roles that are members of the group, or to delete the group.
InstancePermission
See: com.sqribe.rm.InstancePermission The system automatically creates this interface including default access control when the Hyperion Performance Suite system creates an object. The default access control grants full control to the owner of the object. This interface is equivalent to the Permissions class in Brio Portal and has been deprecated in Hyperion Performance Suite. The interface is obtained by invoking the getInstancePermission() method on an object. After retrieval, it can be modified to enforce new access control on it. It provides necessary methods to grant different levels of access control for different users, groups, and business roles. Two other interfaces, RoleAccessor and Role, are very closely related to this interface. For example,here are the steps to grant the MODIFY role to User1 on an object doc1:
Retrieve the instance permission associated with the object by invoking the doc1.getInstancePermission() method. Create a RoleAccessor object using the createRoleAccessor() method in the Authorization interface by sending User1 as a parameter.
Interfaces
2-5
Retrieve the role object for MODIFY role using the getRoleByName() method of the Authorization interface and passing MODIFY as the parameter. Add this role to the roles accessor created previously by invoking the addSystemRole() method on the role accessor object. Add the role accessor to the instance permission object using the addRoleAccessor() method on the instance permission object. Use the update() method on the instance permission object.
Job
See: com.sqribe.rm.Job This interface executes predefined Hyperion Performance Suite jobs, submits the jobs to the Job Service, and retrieves the data objects that have been generated by the execution of the job. By using this interface, your program can alter runtime parameters prior to running the job. It can also query the job for information about databases used, the lifespan of output objects, and a host of other job attributes. New methods have been added in release 8.2 to support execution of jobs asynchronously in the background, as well as to get their execution status.
JobOutput
See: com.sqribe.rm.JobOutput This interface is generated by the execution of a Hyperion Performance Suite job by a Job Service. After the job executes, your program may extract a JobOutput interface from the Job, and using the methods in JobOutput, can extract all the output data objects that were generated during the execution of the job.
ObjectID
See: com.sqribe.rm.ObjectID
2-6
Each object stored in Hyperion Performance Suite contains a unique identifier that represents the object. Whereas multiple objects can be stored in a folder with the same name and metatype, they are distinguished from each other by the universally unique identifier (UUID) assigned to the object. This interface represents the UUID when invoking SDK methods that require an object ID.
OCEDocument
See: com.sqribe.rm.OCEDocument This interface is the object wrapper around the OCE file that is published to the repository. It provides methods to retrieve or set properties for the OCE file, such as the default database username and password to be used. It also provides methods to set the OCE to prompt users for the database username and password and to enable the single sign on feature for this OCE.
ParameterList
See: com.sqribe.rm.ParameterList This interface encapsulates a vector of JobDef objects and other attributes controlling the execution of the jobs contained within the cluster. In addition to the JobDef vector, the ParameterList interface maintains a hold feature that enables the user to suspend execution of all Scheduled tasks associated with this ParameterList object until the hold mechanism is turned off. Parameter lists can be of three view types, public, personal, and unnamed. By default, the view type of a task is personal.
PhysicalResource
See: com.sqribe.rm.PhysicalResource This interface defines methods common to printer and output directory resources in a Hyperion Performance Suite system. Two types of physical resource objects are extended from the PhysicalResource interface:
PrinterPhysicalResource OutputDirPhysicalResource
Interfaces
2-7
Physical resource objects are created using methods in the Repository interface. They are addPrinterResource() and addOutputDirectory() for publishing a printer and an output directory, respectively. Two types of OutputDirPhysicalResource objects can be created; they are a simple output directory and an FTP output directory. Both PrinterPhysicalResource and OutputDirPhysicalResource interfaces define methods to modify properties of the physical resource objects.
Query
See: com.sqribe.rm.Query Your program obtains this interface using the Repository interface when the program wants to search Hyperion Performance Suite for a set of data objects that match a set of filter specifications. The Query interface defines methods that enable you to obtain lists of groups and users. It also provides other more generic methods that enable searching by object name, by keywords, or by a list of other object attributes, such as creation and access dates, object type, or object ownership.
QueryVector
See: com.sqribe.rm.QueryVector This interface is returned from each of the search methods supported by the Query interface. QueryVector provides access functions that enables your program to recover each of the elements returned from the search method invocation. The interface enables the program to discover the number of elements returned by the search, to determine whether the returned list of elements is empty, to access each element in the QueryVector interface by a numeric index value, or to obtain an Enumeration interface for more comprehensive manipulation of the set of objects returned by the search request.
RecurringTimeEvent
See: com.sqribe.rm.RecurringTimeEvent
2-8
Use this interface for repetitive triggering of an event by specifying the date and time in various ways. The recurring time event can be of three types namely public, personal, or unnamed. By default the view type of a Recurring Time Event is personal. An unnamed event is a per-schedule event. It is valid only for the schedule for which it is created. It is deleted as soon as the schedule is deleted or the schedule is updated with another event. Notice that you can also create combo events that would be a combination of a Recurring Time Event and an Externally Triggered Event.
ReportMartEntity
See: com.sqribe.rm.ReportMartEntity This interface provides access to object attribute information that is common to all objects stored in Hyperion Performance Suite, with the exception of Session-related data objects. It is used by an application to obtain or set basic attributes related to identifying an object in Hyperion Performance Suite, and for finding out certain key attributes such as these:
The various timestamps associated with an object, such as its creation or last modification date Information related to the identity of the object, such as the name and description
Respository
See: com.sqribe.rm.Repository This interface provides access to a number of utility methods in the SDK. It is used to obtain most of the major interfaces through which your program can access the services of Hyperion Performance Suite.
ScheduledTask
See: com.sqribe.rm.ScheduledTask This interface is used to associate a parameter list with an event. In addition to the parameter list and event, this object also contains additional properties to control how the parameter list is executed.
Interfaces
2-9
Scheduler
See: com.sqribe.rm.Scheduler Use this interface to access the Hyperion Performance Suite Event Service to create, retrieve, list and delete the following objects:
Session
See: com.sqribe.rm.Session This interface is the primary interface through which your program accesses all services provided by Hyperion Performance Suite. It is returned to your program when it has successfully logged in to Hyperion Performance Suite using one of the SessionFactory.getInstance() methods.
SPFSet
See: com.sqribe.rm.SPFSet This interface represents the output from execution of SQR jobs by a Hyperion Performance Suite Job Service. This interface enables you to access the various types of output such as HTML, postscript, or other output formats that were generated by the SQR execution.
SQRJob
See: com.sqribe.rm.SQRJob This interface is an extension of the Job interface that provides additional functionality supported by the execution and processing of SQR jobs in a Hyperion Performance Suite Job Service. Additional methods are available in
2-10
this interface to set and retrieve the ask parameters that are processed at the time of job execution, and to obtain the program output data objects generated during the execution of the SQR job.
SQRJobOutput
See: com.sqribe.rm.SQRJobOutput This interface is returned by the getProgramOutputs() method of SQRJob interface. This extended interface enables your program to obtain the data objects generated by the execution of an SQR job, as well as the SPFSet interface that enables the program to obtain the various listing data objects.
User
See: com.sqribe.rm.User This interface is returned from various SDK method calls to represent a user account defined in Hyperion Performance Suite. This interface enables your program to obtain various attributes of the account such as group membership, default category, and default permissions. In addition, methods are provided to add the user to new groups, set new default permissions, descriptions, and other attributes, and to access and modify single sign-on properties for a User object.
Classes
JobParameter
See: com.sqribe.rm.JobParameter The SDK generates this class when you invoke the setParameters() method on a Job interface. This class provides information about one of the data parameters passed to a job executing at runtime.
Logger
See: com.sqribe.rm.Logger
Classes
2-11
This class provides methods to enable clients to log their messages using the new log4j logging architecture. The client acquires an instance of a Logger object in every source file in which it wants to log messages. The client uses the static getLogger() method that takes a class name (String or Class object) as a parameter. Usually, this class is the fully qualified name of the source file. The new system works as follows: The installer creates the %Install_Home%/SDK/log/ directory that will contain log files generated by a log4j model. If the default SDK directory is not used as the working directory, then the /log subdirectory will be created in the working directory. Users can create the /log subdirectory, however, in any place they want by using the -Ddirectory system property. The directory containing the SdkLog4jConfig.xml file, <Install_Home>/SDK/etc/log4j, must be added to the classpath so that the log4j XML configuration file can be read. The installer creates the %Install_Home%/SDK/etc/log4j/ directory that will contain the default XML configuration file for the log4j model. The name of this configuration file is SdkLog4jConfig.xml. The following options for configuration remains open to the client:
Do nothing. SDK will read the default XML configuration file from the specified (default) location and create a log file sdk.log in the appropriate directory. Clients can append their logging information to that log file. Use the default XML configuration file and customize it. For example, the client can add its own appender and send its logging information to the new appender. Write an XML configuration file and configure log4j logging model according to your preference. See Javadoc for the LogManager class for the appropriate method. The system property -Drmapi.log4j=false needs to be used. Use the -Drmapi.log4j=false system property, for your JVM, if you do not want to use SDK logging system.
ObjectType
See: com.sqribe.rm.ObjectType
2-12
When objects are stored in Hyperion Performance Suite, they are associated with a metatype or object type that enables your program to filter search operations based on the type of object, as well as by keyword searches or by name. This class provides static methods that enable you to extract predefined ObjectType class instance variables that represent all the built in types found in Hyperion Performance Suite.
ReportMartException
See: com.sqribe.rm.ReportMartException This class is an Exception object thrown by most method invocations on the SDK package. To handle these exceptions, your program must use try-catch constructs to handle the exceptions when they are thrown. Each ReportMartException object provides a message that describes the error condition responsible for generating the exception.
SessionFactory
See: com.sqribe.rm.SessionFactory This class provides a number of static getInstance() methods that enable your program to obtain the initial Session interface that it will require to do any useful work in Hyperion Performance Suite. Variations of the getInstance() methods are available. These methods enable you to specify various combinations of account, password, hostname, and TCP port number that are required so that your program can log on to Hyperion Performance Suite . One of the methods supports logging on to a specified Authentication System . The names of the available Authentication Systems can be obtained using a static method in class SystemObjects just by specifying the GSM host and port before logging on.
UnknownReportMartException
See: com.sqribe.rm.UnknownReportMartException
Classes
2-13
This Exception class can potentially be thrown during the initial invocation of a SessionFactory#getInstance() method by your program when the program is attempting to establish contact with Hyperion Performance Suite. If your program handles this exception, then either one of these events can occur:
The hostname you passed cannot be resolved to a TCP/IP address The server itself is not accessible by the network Contact cannot be established with Hyperion Performance Suite Service Broker running on that host
In the last case, check to make sure that the port number specified corresponds to the port on which the ServiceBroker is listening.
UserValidationException
See: com.sqribe.rm.UserValidationException This Exception class is thrown if a validation error occurs when your program is connecting to Hyperion Performance Suite. If the try-catch logic traps this error, then either the user account or password provided to the SessionFactory.getInstance() method is invalid.
2-14
This chapter describes how to create and modify the control file for the batch driver sample program, BatchDriver.java. The control file must contain all the information for the objects that you want to create or publish to Hyperion Performance Suite. The control file is passed as an argument to the batch driver sample program. For more information on BatchDriver.java, see BatchDriver.java on page 4-12. For detail information on how to use the sample programs see Appendix A, How to Use the API Sample Programs for Non-Java Programmers.
In This Chapter
About the Batch Driver Control File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2 Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2
All parameters of each control statement must be included on the same physical line. Each line of the file is read and executed one-at-a-time. Control files can contain any number of control statements including no statements. Comments are supported and must be entered on their own lines. A comment line is any statement where the first non-blank character on the line is '#', '//', or '!'. Blank lines are comments. Each attribute name-value pair is separated by the symbol '^' . No spaces can occur between the attribute name, the equal sign (=), and the attribute value of the statement parameters. A value can contain one or more blanks. Attribute parameters can be specified in any order after the control verb.
Control Statements
Control statements are used to specify attributes of Hyperion Performance Suite objects that you want to add to Hyperion Performance Suite using the batch driver sample program. Control statements are composed of a starting term that denotes the type of control line and attribute-value assignment statements. The terms and attribute names are not case sensitive, but the values assigned to attributes are case sensitive.
3-2
The following types of control statements are supported by the BatchDriver program. Although the syntax descriptions in the following topics may show the attribute values on multiple lines, in practice all must be specified on a single control line.
.
Tab le 3 - 1
Control Statements Description Define an accessor for access control (permission) Define a group Define category attributes Add a user Add a data object Add an OCE document Add a BQY document
Note
Each attribute marked by an asterisk (*) can be specified multiple times. In any statement where the attribute value is specified as choice1|| choice2, one of the specified values may be provided. Assigned attribute values are interpreted as follows:
Tab le 3 - 2
Attribute Descriptions Description YYYY-MM-DD_HH:MM:SSZZZ where ZZZ is an optional time zone offset from GMT, for example, PST is '-08' Name string uniquely identifying an object Integer value String value; for example, e-mail address Folder in the repository where the object will be published
Control Statements
3-3
Tab le 3 - 2
Attribute Descriptions (Continued) Description Unique non-blank string value used to reference a control statement Reference to the control statement in which <id> value was used Value either TRUE or FALSE Repository database, SQR Engine combination, for example, HPS:SQR_Version_8.2 Name of file on local file system
Accessor Control Statements on page 3-4 Group Control Statements on page 3-5 Category Control Statements on page 3-6 User Control Statements on page 3-7 Data Control Statements on page 3-8 OCE Control Statements on page 3-9 BQY Control Statements on page 3-11
Example:
3-4
Tab le 3 - 3
Accessor Control Statement Descriptions Attribute Type id user|group|brole name role name Description Accessor identifier in this program; not the objectID or uuid Type of the accessoruser, group, or business role Name of the user, group, or business role Name of the system role to be associated
The first object retrieved is the first object added as the group member. The value passed to the perm attribute is the name of an accessor object that was previously defined in the control file and assigned a name; for example, accessor1, accessor2.
Example:
group name=testGroup1^desc=A Test Group #1 ^authensystem=default_system^perm=accessor1 group name=testGroup2^desc=A Test Group #3 ^authensystem=default_system^member=testGroup1^perm=acces sor1
Control Statements
3-5
Tab le 3 - 4
Group Control Statement Descriptions Attribute Type name string string name* accessor* Description Name of the group Description of the group Name of the authentication system. The default is default_system. Members of the group. Members are usually other groups and users. Access controlother users privileged to access
Example
category path=/batchFolder^browse=true
Ca
Tab le 3 - 5
3-6
Tab le 3 - 5
Description of the category Expiration date Access controlother users, groups, and roles privileged to access this folder
Example:
user uid=testUser^pwd=testUser^name=Test User ^desc=A TestUser^defcat=/batchFolder ^[email protected]^authensystem=default_system ^group=testGroup1 ^group=testGroup3^role=CONTENT PUBLISHER ^role=USER^perm=accessor2^perm=accessor4
Tab le 3 - 6
User Control Statement Descriptions Attribute Type string string string string path string Description User login id Password User's full name Description of the user Default folder path e-mail address
Control Statements
3-7
Tab le 3 - 6
User Control Statement Descriptions (Continued) Attribute Type string name * role name* accessor * Description Name of the authentication system. The default is default_system. Group memberships This user's privilege specified by business roles to access other objects Access controlother users privileged to access this user
Example:
data name=aDocument^path=/batchFolder ^file=D:\Doc\bart.doc ^desc=A test document by batchdriver ^browse=true^autodelete=true^expire=2004-0622 12:00:00^keyword=MS doc^keyword=Design doc^perm=accessor2^perm=accessor4
Tab le 3 - 7
Data Control Statement Descriptions Attribute Type name path filename string Description Name in the repository Folder in the repository where the object will be published Name of the file on the file system Description of the data name
3-8
Tab le 3 - 7
Data Control Statement Descriptions (Continued) Attribute Type boolean boolean date string * accessor * Description Browsable Autodelete Expiration date Keyword strings Access controlother users privileged to access this object
Example:
oce name=anOCEDocument^path=/batchFolder ^file=D:\Foundation\BQYFiles\odbc.oce^desc=A test OCE document by batchdriver ^prompt=false^dbuser=guest^dbpass=guest ^metaoce=Cqdb.oce^metaUseThis=false^metauser=guest ^metapass=guest^allowSSO=true^browse=true^autodelete=true ^expire=2004-06-24 12:00:00^keyword=OCE doc^keyword=Connection file^perm=accessor2^perm=accessor4
Control Statements
3-9
Tab le 3 - 8
OCE Control Statement Descriptions Attribute Type Description OCE identifier, usually the name (not objectID/uuid); this is optional and may be omitted if the OCE is not used in this run of the program. Name of the OCE in the repository Folder in the repository where the object will be published File name to load Description of the OCE Whether to prompt the user If prompt is false, the user for database connectivity If prompt is false, the password for database connectivity If there is a meta OCE, specify its name Whether to use the OCE connectivity information for the meta OCE If metaUseThis is false, the user for meta OCE database connectivity If metaUseThis is false, the password for meta OCE database connectivity Browsable Auto delete on expire Keyword strings Expiration date Access controlother users privileged to access this object
Attribute Name id
string
name path file desc prompt dbuser dbpass metaoce metaUserThis metauser metapass browse autodelete keyword expire perm
name path filename string boolean string string oce name boolean string string boolean boolean string * date
accessor *
3-10
Example:
bqydoc name=aBQYDocument^path=/batchFolder ^file=Simple.bqy^desc=A test BQY document by batchdriver^desc=A test BQY document by batchdriver^ihtml=true^oce=anOCEDocument^oceprompt=2 ^dbuser=guest^dbpass=guest^pregen=2^browse=true^autodelet e=true^expire=2005-06-24 12:00:00^keyword=BQY doc^keyword=CQ 22535^perm=accessor1^perm=accessor3
Tab le 3 - 9
BQY Control Statement Descriptions Attribute Type Description Name of the BQY in the repository Folder in the repository where the object will be published File name to load Description the BQY Control Statement Whether to enable BQY for use in HTML OCE id or the name of the oce;<oce name> may be used if the OCE is published beforehand.For example, not in this run of this program Whether to prompt the user for the OCE by using the OCE prompt If prompt is false, the user for database connectivity If prompt is false, the password for database connectivity
boolean
string string
Control Statements
3-11
Tab le 3 - 9
BQY Control Statement Descriptions (Continued) Attribute Type Description HTML pregeneration options for the BQYdoc:
int
Browsable Auto delete on expire Keyword strings Expiration date Access controlother users privileged to access this object
3-12
You can use the Hyperion Performance Suite APIs in many ways to access Hyperion Performance Suite functionality from within your Java programs. The samples in this chapter demonstrate this functionality and provide a starting point for your own utility programs. The sample Java programs, sample property files, and sample control files are located at Install_Home\SDK\samples\java. UNIX users replace the batch (BAT) files with shell (SH) files and reverse the slash marks in the path names, for example, Install_Home\SDK\lib\rmapi.jar is Install_Home/SDK/lib/rmapi.jar in UNIX. Other differences are noted in the text.
In This Chapter
Prerequisites for Running the Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2 Running the Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2 Samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4 Attributes and Supporting Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21
Hyperion Performance Suite SDK installed on your machine Java compiler and runtime environment installed on your machine Access to the Hyperion Performance Suite core services via a URL (host name and port number), for example, http://venice:8100/Hyperion/browse/Main Valid username and password with administrator access control
4-2
3 Open a command prompt window and run execapi.bat, passing the name of the
program and the arguments for the program.
For example: C:\Program Files\Brio\hp276\SDK\bin>execapi BatchDriver administrator administrator qastar 1800 batch_driver.cf
4-3
Samples
The following topics provide detailed descriptions of the samples:
Tab le 4 - 1
Links to Descriptions of API Samples Sample Exec - SQ ExecuteBQYJob.java on page 4-14 ExecuteSQRJob.java on page 4-15 ExpirationDate.java on page 4-15 FetchCategory.java on page 4-15 FetchDocument.java on page 4-16 ListEvents.java on page 4-16 ListGroups.java on page 4-16 ListUsers.java on page 4-17 Login.java on page 4-17 NestedGroups.java on page 4-17 ObjectByPath.java on page 4-18 ObjectById.java on page 4-18 PublishEvent.java on page 4-18 PublishOutputDirectory.java on page 4-19 PublishPrinterResource.java on page 4-19 QueryGroup.java on page 4-19 QueryUser.java on page 4-20 ReplaceObject.java on page 4-20 SQRParms.java on page 4-20
Samples A - EX AddBQYDocument.java on page 4-5 AddBQYJob.java on page 4-5 AddCategory.java on page 4-5 AddDocument.java on page 4-6 AddExternalLink.java on page 4-7 AddFavorites.java on page 4-7 AddGroup.java on page 4-7 AddLink.java on page 4-8 AddObjectType.java on page 4-8 AddOCEDocument.java on page 4-8 AddRole.java on page 4-9 AddSPF.java on page 4-9 AddSubscription.java on page 4-10 AddUser.java on page 4-10 AddVersions.java on page 4-11 AutoZip.java on page 4-11 BatchDriver.java on page 4-12 CategoryDelete.java on page 4-12 ExecuteBQYDocument.java on page 4-14
4-4
AddBQYDocument.java
Use this sample to publish a BQY document to Hyperion Performance Suite and to set essential attributes. The Intelligence Service, in addition to the common services, must be running to publish BQY documents using this sample. A properties file is used to get information needed for publishing a BQY document. A sample properties file, inputBQYDoc.txt, is included in the same directory as the source code. A sample attribute in the property file is the BQY.iHTMLView flag which determines if the BQY file is available when using the Intelligence iServer. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Target Folder> <BQY File> <Property File, e.g. inputBQYDoc.txt>
Output:
BQY document is published in the Hyperion Performance Suite repository in the target folder.
AddBQYJob.java
Use this sample to publish a BQY job and to set some of its properties. The Intelligence Service, in addition to the common services, must be running in order to publish BQY jobs using this sample. A properties file is used to get information needed for publishing a BQY document. A sample properties file, inputBQYDoc.txt, is included in the same directory as the source code. A sample property in the property file sets the BQY.iHTMLView flag to true, which makes the BQY file available when using the Intelligence iServer. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Target Folder> <BQY File> <Property File, e.g. inputBQYJob.txt>
Output:
BQY job is published in the Hyperion Performance Suite repository in the target folder.
AddCategory.java
The Addcategory.java sample demonstrates the creation of a folder and is installed with the Hyperion Performance Suite SDK located on Install_Home\SDK\Samples\java in Hyperion Performance Suite. All folders in the path that do not exist in the system are created in the process.
Samples
4-5
Input parameters:
Output:
AddDocument.java
Use this sample to publish a document to an existing target folder and to set the properties of the document. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Document Name> <Target Folder>
Output:
4-6
AddExternalLink.java
Use this sample to create an external link (URL) from Hyperion Performance Suite to another Web site. Link properties and the target folder are passed as arguments. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Target Folder> <Link Name> <Description> <URL>
Output:
An external Link (<Link Name>) is created in the Hyperion Performance Suite target folder.
AddFavorites.java
Use this sample to add new folders and new favorite items. The user needs administrator privileges to create the objects. Input parameters: Output:
<user> <pwd> <GSM host> <GSM port> <gif1> <gif2>
New folders are created and new favorite items are added to a users favorite item list in Hyperion Performance Suite. Example of syntax:
java -classpath %CLASSPATH% AddFavorites administrator administrator localhost 1800 D:\Test1.gif D:\Test2.gif
AddGroup.java
Use this sample to add groups and to add child groups to a parent group. This sample specifically adds Group1, Group2, Group3, and Group4 to the parent group, Master. If the Master group does not exist, it is also added. Input parameters: Output:
<user> <pwd> <GSM host> <GSM port>
Samples
4-7
AddLink.java
Use this sample to add a link into the repository. The sample publishes a file in the specified folder and creates a link to the file in the root folder. Input parameters: Output:
<user> <pwd> <host> <port> <path> <document>
AddObjectType.java
Use this sample to show how to add a new metatype to Hyperion Performance Suite. The user needs administrator privileges to create the objects. Input parameters:
<user> <pwd> <host> <port> <mimetype> <filenameextension> <iconpath>
Output:
AddOCEDocument.java
Use this sample to publish an Open Catalog Extension (OCE) file and to set some of its properties. The database user ID and password are optional. An OCE file is used by a BQY document or job for making a connection to a data source. Input parameters:
<user> <pwd> <GSM host> <GSM port> < Target Folder> <OCE Name> [<isPrompt> <dbUsername> <dbPassword>]
Output:
4-8
AddRole.java
Use this sample to add a role definition. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Role> <Role Description>
Output:
AddSPF.java
Use this sample to publish an SQR output collection, which includes all output produced by an SQR program (job). An output collection includes SPF files, which are Hyperion proprietary output, and other formats such as PDF and HTML. Input parameters:
<user> <pwd> <GSM host> <GSM port> <target Folder> <SPF File>
Output:
A group of files (output collection) is published to the target folder in Hyperion Performance Suite.
Samples
4-9
AddSubscription.java
Use this sample to add subscriptions for a user to a document category. A subscribed user will receive e-mail notifications on a document whenever it changes. The user needs administrator privileges to create the objects. Input parameters:
<user> <pwd> <host> <port> <subscribed_user> <path> [subscribed_user_email]
Output:
A subscribed user will receive a notification e-mail whenever the document changes. Log on to the servlet as the same user who ran this sample program. Navigate to the object and look at its subscriptions. The corresponding check box should be selected. Examples of the syntax:
java -classpath %CLASSPATH% AddSubscription administrator administrator localhost 1800 TESTSUBS1 D:\Test1.txt email@some_address.com
or
java -classpath %CLASSPATH% AddSubscription administrator administrator localhost 1800 TESTSUBS1 /TestDir1/TestObj email@some_address.com
AddUser.java
Use this sample to add a user to Hyperion Performance Suite. In addition it is possible to specify if the user being created has the administrator role or has the ability to execute jobs. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Username> <Password> <Allow Job Run - boolean> <Administrator Role - boolean>
Output:
A user is created in Hyperion Performance Suite with or without the administrator role.
4-10
AddVersions.java
Use this sample to demonstrate version capability in Hyperion Performance Suite for documents. An existing version of the document to be published must exist in the system. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Hyperion Performance Suite Document (e.g. /Finance/Sales.doc)> <Local Document (e.g. c:\Sales2.doc)>
Output:
AutoZip.java
Use this sample to show the use of autozip functionality. This program publishes a document in Hyperion Performance Suite along with a zipped version of the same document. Input parameters:
<user> <pwd> <GSM host> <GSM port> <Target Folder> <Document>
Output:
A document and a zipped version of the same are published in Hyperion Performance Suite.
Samples
4-11
BatchDriver.java
Use this sample to bulk load objects into Hyperion Performance Suite and to modify assessors of existing objects. You can bulk load the following objects using this sample program:
BatchDriver.java reads a control file that contains control statements describing objects that are created in the repository. For more information on the control file and the control statements used for this sample, see Batch Driver Sample Program Control File on page 3-1. A sample control file, batch_driver.cf is located at Install_Home\SDK\samples\java.
Input parameters:
Output:
A batch load of one or more of the following objects: accessor, group, category, user, data, OCE Document, BQY Document. An example of the syntax when you compile the program:
java -cp .;%classpath% BatchDriver administrator administrator venice 1800 TEST1 C:\Hyperion\Brio\batch_driver.cf
An example of the syntax when using the installed compiled version of the program:
java -cp .;%classpath% com.sqribe.rm.BatchDriver administrator administrator venice 1800 TEST1 C:\Hyperion\Brio\batch_driver.cf
CategoryDelete.java
Use this sample to delete an empty folder in Hyperion Performance Suite. If the folder to be deleted does not exist, a message is displayed.
4-12
Samples
4-13
ExecuteBQYDocument.java
Use this sample to show the use of execute pregeneration for BQY documents. This program is derived from the SampleBase class and makes heavy use of the getSymbol() method implemented in that class. Refer to SampleBase.java for information about how to pass attribute values to this and other classes derived from SampleBase. *Input parameters:
<user> <pwd> <GSM host> <GSM port> <BQY Doc Path> <Document>
Output:
A document and a zipped version of the same are published in Hyperion Performance Suite. An example of the syntax:
*java -classpath %CLASSPATH% ExecuteBQYDocument <user> <password> <host> <port> bqypath=/SampleSDK/Brio8.0_Sample1.bqy
ExecuteBQYJob.java
Use this sample to execute (or schedule) a BQY job. It is derived from the SampleBase class and makes use of the getSymbol() method implemented in that class. Refer to SampleBase.java for information about how to pass attribute values to this and other classes derived from SampleBase. Input parameters:
<user> <password> <host> <port> bqypath=/Folder /BQYJob (e.g. /SampleSDK/TestBQYjob)
Output:
Job output from the BQY job. This will vary based on job run.
4-14
ExecuteSQRJob.java
Use this sample to load an SQR program into a target folder. After the program is loaded, it is executed once to create an output collection. Input parameters:
<user> <pwd> <host> <port> <Target Folder> <SQR program file (for example, Sales.sqr)>
Output:
Published SQR program and the corresponding output collection for a single run.
ExpirationDate.java
Use this sample class to load and set an auto-deletion date for a Hyperion Performance Suite file. The file to be loaded for this sample should not be a BQY document or an SQR program. Input parameters: Output:
<user> <pwd> <host> <port> <Folder> <File to be loaded>
Published file set to auto-deletion after thirty days from the system date on which the program is run.
FetchCategory.java
Use this sample to obtain information about folder properties. Input parameters:
<user> <pwd> <host> <port> <Folder (for example, /Finance)>
Output:
Samples
4-15
FetchDocument.java
Use this sample to obtain a file, for example, a DOC or TXT file from the repository. If multiple versions exist, all of them are extracted and stored on the local machine. The files have .0, .1,,.n extensions added to the original name after the extraction. Input parameters: Output:
<user> <pwd> <host> <port> <Folder> <DocName>
ListEvents.java
Use this sample to list events defined in the Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port>
ListGroups.java
Use this sample to define a list of groups in the Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port>
4-16
ListUsers.java
Use this sample to list all users defined in the Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port>
Login.java
Use this sample to establish and close connection with Hyperion Performance Suite system. It is recommended that you run this sample before running others. Running the sample ensures that the basic connection to the Hyperion Performance Suite system is established without any problems. Input parameters: Output:
<user> <pwd> <host> <port>
NestedGroups.java
Use this sample to assign a group as a member of another group in the Hyperion Performance Suite system. This is a variation of the AddGroups sample. Input parameters: Output:
<user> <pwd> <host> <port>
Samples
4-17
ObjectByPath.java
This sample shows how to fetch a BaseObject from the repository using the full path object name. The object name passed as an argument must include the full path. Input parameters: Output:
<user> <pwd> <host> <port> <object path>
ObjectById.java
Use this sample to demonstrate fetching a BaseObject from the repository using the object ID passed as an argument. Object ID is unique to every object in the system and is used internally by Hyperion Performance Suite to access documents or folders in the system. Input parameters: Output:
<user> <pwd> <host> <port> <object ID>
PublishEvent.java
Use this sample to create or update an event in the Hyperion Performance Suite system. The sample control file, rte.cf, is included in the folder with the source program. Input parameters: Output: <user> <pwd> <host> <port> <Control File> (for example, rte.cf) Event named in the control file is created in Hyperion Performance Suite.
4-18
PublishOutputDirectory.java
Use this sample to define an output directory in Hyperion Performance Suite. You can run this sample in two ways. The input parameters section shows the two available options. The sample control file, outdir.cf, is included in the folder with the source program. Input parameters:
Option I: <user> <pwd> <host> <port> name=OutputDir1 dirname="C:\BPS\OutDir" Option II: <user> <pwd> <host> <port> <Control File, e.g. outdir.cf>
Output:
PublishPrinterResource.java
Use this sample to define a printer resource in Hyperion Performance Suite. You can use this sample in two different ways. The input parameters section shows the two available options. The sample control file, printer.cf, is included in the folder with the source program. Input parameters:
Option I: <user> <pwd> <host> <port> name=myPrinter1 pname="HP LaserJet" Option II: <user> <pwd> <host> <port> <Control File printer.cf>
Output:
QueryGroup.java
This sample shows how to query group members of a group in the Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port> <group>
Samples
4-19
QueryUser.java
Use this sample to query user properties in Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port> <user>
ReplaceObject.java
Use this sample to replace the contents of the specified object in Hyperion Performance Suite system. Input parameters: Output:
<user> <pwd> <host> <port> <user> <Folder> <Document>
SQRParms.java
Use this sample to obtain the parameters and their type, with the specified SQR job. Input parameters: Output:
<user> <pwd> <host> <port> <user> <SQR Job UUID>
4-20
Command line arguments Opening and processing data lines read from a data file Look up of Hyperion Performance Suite folder, account, and group objects
These example programs take advantage of object-oriented programming techniques by extending the base class that implements a set of common functions. The following list contains supporting classes:
4-21
4-22
PART II
IICustomization
HTML Templates
This chapter explains how to modify the Hyperion Performance Suite HTML templates and how to add custom HTML templates. A reference table of template names and descriptions and a description of Hyperion Foundation cascading style sheets are also included in this chapter.
Note
This section on custom templates is offered to meet your customization needs. However, customizing templates is considered nonstandard and Hyperion is unable to support them.
In This Chapter
Customizing Hyperion Foundation Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-2 Template Names and Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-6 Modifying a Template: An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-14 Cascading Style Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5-15
Preparing to Write Custom Templates Editing and Testing Template Files Importing the Contents of One Template into Another Template Element Tags Template Elements Caveats
For more information on JSP pages, see Chapter 6, Java Server Pages.
Familiarity with the product template elements Knowledge of HTML and JavaScript An HTML editor that does not alter the code
Disabling the template cache enables you to see your template changes quickly as you test and edit your templates. To disable the template cache
1 Start the Servlet Configurator. 2 Select PropertiesCacheTemplates. 3 In the right hand frame, turn off Cache parsed HTML templates. 4 Save your changes.
5-2
HTML Templates
Note
Disabling the caching of templates is a convenience for testing. It enables you to see the effects of your template modifications without restarting the servlet. However, after you complete testing, you should re-enable Cache parsed HTML templates for better system performance.
5-3
Note
To edit templates, use an HTML editor that does not alter the code you enter. (Macromedia HomeSite is a safe editor. FrontPage 2000 is good if you understand how to keep groups of tags together. Notepad is sufficient for light editing.)
HTML/JavaScript Hyperion Foundation template elements (these elements follow syntax rules borrowed from XML)
When you add a new template, you must restart the affected servlet in order to test the template. If you only modify a template that already existed when the servlet was started, you can test modifications by choosing your browsers Refresh or Reload button, assuming Cache parsed HTML templates is disabled.
5-4
HTML Templates
The import element works very well with inheritance and has other important benefits:
Redundancy is avoided where two servlet pages need to implement the same function. For example, item.imp is a file used to display the listing information for any item (job, document, or report). This file is imported by the templates that generate the different listing pages.(For example, browseList.htm, favoriteCategoryList.htm, and so on.)
Reduced size of the templates stored in memory due to reduced redundancy. Easier customization because of reduction of the template file granularity.
Start tag Has the form <WS:XXX> Enclosed within the angle brackets are:
Domain, which is set to WS ElementName Parameter followed by an equal sign (=) and a value enclosed in quotation marks; for example, hasvalue="yes". Note that multiple parameters can follow an element name.
End tag Has the form </WS:XXX> For example, </WS:JobRunCond> Start-end tag Has the form <WS:XXX/> For example, <WS:JobName/>
5-5
Template Elements
Hyperion Foundation provides three types of template elements:
Basic (start-end) Has the form: <WS:XXX param="yyy"/> Conditional Has the form:
<WS:XXXCond hasValue="yes">
more elements (Only processed if the condition evaluates to true.) </WS:XXXCond> or <WS:XXXCond hasValue="no"> more elements (Only processed if the condition evaluates to false.)
</WS:XXXCond>
Caveats
Note the following when you customize Hyperion Foundation templates:
Not all elements can be used in all templates. Adding custom template sets may increase the memory requirements for the servlets, because all parsed Hyperion Foundation templates can be cached.
5-6
HTML Templates
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets Description Content window that displays links to objects within one of the pre-configured folders under the Broadcast Messages folder. Displays applet accessed from folder listing page. Loads and displays applet. Displays applet as a content window on Personal Page. After you cancel a background job, this page displays to confirm that the job is no longer running. Used to draw the page that confirms that a job has been configured to run in background mode. This page also indicates where to place the jobs output. Used to list all the background jobs that are currently running. This page also enables you to cancel jobs. If no background jobs are currently running, this file is used to present a page that informs the user that there are no jobs running in background mode. When listing background jobs, like in BackgroundJobs.htm, this import is used to format the start dates of each job. Content window that displays bookmarks to Hyperion Performance Suite content and Web sites. JavaScript include file for BQY job and document personalization. Render BQY job or document SCP within a Personal Page. Render edit button options for BQY job and document. Content window that displays monitored exceptions. Content window that displays an image bookmark i.e. graphic bookmark to Hyperion Performance Suite content. Content window that displays links to non-embedded content of the Broadcast Messages folder. Frameset for pages in Browse tab. Right hand frame in Browse tab.
Template Name
adminCategory.scp
backGroundJobConfirm.htm
backgroundJobs.htm
backgroundJobsEmpty.htm
bgjStartDatePrint.imp
bookmarks.scp
bqyJavaScript.imp
broadcastMsgCategory.scp
browseIndex.htm browseList.htm
5-7
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Navigation frame (on left) for Browse tab. JavaScript Edition: Provides highlighting of folder entries as mouse moves over entry. Also provides better navigation when folder is selected only LHS frame and RHS frame is updated, rather than entire frameset.
Template Name
browseNav.htm
categoryScp.imp
Displays items for content windows of folders-- Broadcast Messages folder, and administrative folders (subfolders of Broadcast Messages). JavaScript color functions. The basic edition does nothing. JavaScript Edition: Redirects the importing page to the CALLER after waiting a few seconds. For example, when you submit a background job, a page displays to confirm the job has been submitted. The submit conformation page only displays for a number of seconds before automatically redirecting to the browse page. DelayedRedirectToCaller is responsible for the redirect.
changeColor.imp delayedRedirectToCaller.imp
deleteParameterListsResults.htm
Page showing the results of attempting to delete one or more Parameter Lists, including any Schedules that were deleted as a result. Page showing the results of delete one or more Schedules. Framework support. Displays a message about browser feature support. Displays the display preferences controls, such as show multiple versions, sorting, and so on. Enables editing of the set of bookmarks. Enables editing of the properties of the Exceptions Dashboard content window. Enables editing of an Internet Image Bookmark. Content window for display of embedded content. Used to display an error message. Right hand frame in Personal Pages for displaying Favorite Folder Listing.
deleteSchedulesResults.htm descrip.htm
displayPreferences.imp
editBookmarks.scp editBrioPortalExceptionsDashboard.scp
5-8
HTML Templates
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Right hand frame in Personal Pages for displaying Favorite Items Listing. Content window that displays Internet Image Bookmark. JavaScript functions that validate the create/edit Internet Image bookmark input. JavaScript functions that validate size settings for Image bookmark. Interface for restricting access to published items based on group. Displays one item its name, description and any version information associated with it. Referenced by the *List.htm templates. Used to display result of running non-Brio job or SQR Program, if there are multiple outputs and there is no one default for which output should be displayed. Constructs the job completion notification message for background jobs. Formats the job completion notification end date. Constructs the job completion notification message for scheduled jobs. Formats the job completion notification start date. Displays result of SmartCut list. Displays result of SmartCut listAll. JavaScript Edition: Provides highlighting of folder entries as mouse moves over entry.
Template Name
favoriteItemsList.htm
graphicBookmark.scp graphicBookmarkJavaScript.imp
graphicBookmarkJavaScriptUtil.imp
groupAccess.imp
item.imp
itemsList.htm
jcnBgMessage.imp
jcnEndDatePrint.imp jcnSchMessage.imp
listIndex.htm listNav.htm
Displays result of SmartCut listIndex. Display result of SmartCut listNav. JavaScript Edition: Provides highlighting of folder entries as mouse moves over entry. Also provides better navigation when folder is selected only LHS frame and RHS frame is updated, rather than entire frameset.
5-9
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Login page. Displays the navigation bar used to display HTML files. (Displays each of the 5 tabs, a back button and an exit button). Frameset for displaying the navbar.htm and the HTML file. Page for creating an Internet Image Bookmark. Presents the page that displays Job Completion Notifications. This page also provides the ability to delete selected notifications. JavaScript Edition: In addition to the basic functionality, the Java-Script version provides an automated option to select all notifications for deletion.
Template Name
login.htm navbar.htm
odsItemLink.imp
Deprecated. Provides hyperlink to ODS content. JavaScript version launches a separate window. Deprecated. JavaScript for ODS integration. Deprecated. For integration of ODS Zero Admin support. Display a context-sensitive output message, usually as a result of user input. Run a job that requires parameters or database information, create or edit a job parameter list. JavaScript support for parameterForm.htm. Displayed when there are no parameter lists. Displayed when a parameter list is read-only and cannot be edited by the user. Used to submit a parameter list. (Defined Form action) JavaScript Edition: Provides JavaScript functions that perform some form validation. Specifically, if the parameter list is used in the context of running a job and database login info is required, validates that this information is supplied. If the parameter list is used in the context of scheduling, validates that a parameter list name is supplied.
parameterForm.htm
parameterListSubmit.imp
5-10
HTML Templates
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Standard template for displaying job parameters when there is no associated parameter form. This is used both when running a job and when creating/editing parameter lists (when scheduling a job).
Template Name
parameterList.htm
parameterListSelection.imp parametersReadonly.imp
Displays a read-only table of the parameters in a Parameter List. Displays parameter lists and schedules for a job. Displays parameter lists associated with a job. Redirects the URL to the parent frame. (This is used in cases where it is not known whether a URL should display in the parent frame. For example, the link to run a job uses this if the output returns an HTML file. JavaScript Edition: Does the redirect automatically.
personalIndex.htm personalNav.htm
Frameset for Personal Pages. Navigation frame (on left) for Personal Pages. JavaScript Edition: Provides highlighting of entries in left frame as mouse moves over entry. Also provides better navigation when entry is selected only LHS frame and RHS frame is updated, rather than entire frameset.
prefsBrowserType.htm prefsEmail.htm
Page allowing users to select the set of templates to use. Page allowing the user to specify a default e-mail address for subscription/scheduling notifications. List of users Favorite Folders. List of users Favorite Items. Page allowing the user to specify the criteria for highlighting an item as new or updated. Frameset for pages in Preferences tab. Defines the common format for displaying Personal Preferences items (for example, Favorite Items, Favorite Folders, and so on) Page allowing users to specify the maximum number of versions of an item to display on their listing pages.
prefsIndex.htm prefsList.imp
prefsMaxVersions.htm
5-11
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Navigation frame (on left) for Preferences tab. Page allowing users to change their password. List of users folder subscriptions. List of users item and job output subscriptions. Basic version does nothing. JavaScript edition: Provides JavaScript functions to give a rollover/highlighting effect as a user moves the mouse over an entry.
Template Name
prefsNav.htm prefsPassword.htm prefsSubscribeCategory.htm prefsSubscribeItem.htm rollover.imp
scheduleIndex.htm scheduleNav.htm scheduleTop.htm scheduledJobListing.htm schedulesLists.htm scp.imp scpBroadcast.imp search.htm searchIndex.htm searchNav.htm searchResultsList.htm smartCut.htm smartpage.htm smartpageAdd.htm
Frameset for pages in Schedule tab. Navigation frame (on left) for Schedule tab. Top frame for Schedule tab. Page listing jobs that have associated Schedules. Page displaying Scheduling information for a particular job. Heading for a content window. Heading for the Broadcast Messages content window. Page displaying detailed Search options. Frameset for pages in Search tab. Navigation frame (on left) for Search tab. Page displaying results of a Search.
Personal Page. Page that enables users to choose whether to copy a published Personal Page or create a new one. Page that enables users to choose from a list of published Personal Pages to add to their own Personal Page collection. Displays content windows for a particular column of a Personal Page.
smartpageAddExisting.htm
smartPageColumn.imp
5-12
HTML Templates
Tab le 5 - 1
Templates Used by Hyperion Foundation Servlets (Continued) Description Page for modifying content of a Personal Page. Page for modifying the layout of content windows on a Personal Page Items that appear in top box on lefthand side of Personal Page. Page that allows customization of colors for a Personal Page. Page for editing Personal Pages color properties. Common JavaScript routines used by Personal Pages. Basic version does nothing. Page that allows selection of layout style (one-column, twocolumn, and so on) for a Personal Page. Page that allows publishers to replace a published Personal Page or publish a new one. Displays list of Personal Pages in the users Personal Page collection. Toolbar that allows modification of Personal Page (Content, Layout, and so on). Page that allows users to update their personalization settings for a specific folder. Provides image selection options on pages for creating/editing Image bookmarks. Page that allows users to update their personalization settings for a specific item or job. Personal Pages section of Subscribe page. Section of Subscribe/Personalize page for restricting subscriptions to high-priority items or exception items. Page for creating/editing a specific Internet Bookmark. Page that allows users to create or edit a Schedule. Some common JavaScript functions. Used to construct the Welcome page, which requests the users template type.
Template Name
smartPageContent.htm smartPageContentLayout.htm
smartPageLayoutSelect.htm
smartPagePublish.htm
smartpages.htm
smartPageToolbar.imp
spCategory.htm
spGraphicSelection.imp
spItem.htm
spSmartPages.imp spSubRestrict.imp
5-13
To remove the Search bar from item lists in the Browse module:
1 Save a backup copy of the original browseList.htm template. 2 In Notepad, open the copy of browseList.htm you want to modify. 3 Search for the element <WS:AllowSearchCond hasValue="yes"> in this template. 4 Delete the code between the elements <WS:AllowSearchCond hasValue="yes"> and
</WS:AllowSearchCond>.
1 Stop and restart the Browse servlet. 2 To see the results of the customization, log into the Browse servlet (even if you are
already logged in).
5-14
HTML Templates
The displayed item list should lack the Search bar, as in Figure 5-2.
5-15
5-16
HTML Templates
6
Note
Hyperion Performance Suite uses Java Server Pages (JSP) and HTML templates to create the user interface. This chapter concentrates on the JSP pages used to create specific pages in Hyperion Performance Suite.
Customizing JSP pages should only be done by developers with JSP and Java programming experience. Custom JSP pages are not supported by Hyperion customer support.
In This Chapter
JSP Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-2 JSP Pages Identified by User Tasks Viewing Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-4 Modifying File Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-8 Creating Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-14 Scheduling Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6-20
JSP Directory
Hyperion Performance Suite uses about one thousand JSP pages. . All the Hyperion Foundation JSP pages are located in the /Install_Home/servlets/deployment/jsps directory. This directory is divided into the following subdirectories:
Administrator Directory
This directory includes all the JSP pages using in the Administration module. The Administration module is a web-based administrators tool in which the administrator can configure many system properties, administrators preferences, and the properties for usage tracking.
Browser Directory
This directory includes all the JSP pages used in the Browse module. The Browse module is used for browsing, viewing, and publishing content, and for running jobs. Subdirectories in the browse directory contain the JSP pages for browse preferences (which allows users to customize the Browse module), running BQY jobs, and running generic jobs. The JSP pages for access control are in the shared directory.
Dashboard Directory
This directory includes all the JSP pages that make-up the View Manager module. The View Manager module is used for viewing and managing all dashboards and pushed items.
6-2
Dataaccess Directory
This directory contains the jsp pages used by the data access servlet.
IHTMLServlet Directory
This directory includes all the JSP pages used by the Intelligence iServer.
PersonalPage Directory
This directory contains the personalTop.jsp which is used for the top frame of all Personal Pages.
Scheduler Directory
This directory includes all the JSP pages that make-up the Job Manager module. The Job Manager is used for managing scheduled jobs and for creating and managing events.
Shared Directory
This directory includes most of the JSP pages that are used by more than one module. This includes all the JSP pages used by the access control user interface, the widgets, the wizards, and the top and bottom frames. The following JSP pages are examples of the JSP pages in this directory:
JSP Directory
6-3
Flow chart Shows the user interface pages used for the most common way to complete this task. Figure A complete graphic of each page from the flow chart showing which JSP pages control the page.
Table List of the main JSP pages and their paths for the graphic shown. The JSP pages for the user interface pages for the following user task flows are detailed in this chapter:
Viewing Documents
This task involves logging onto the Hyperion Performance Suite system and browsing the repository for the item to be viewed. Figure 6-1 shows which user interface pages are involved in this user task.
Login Page
6-4
Login Page
Figure 6-2 shows the login page with its associated JSP pages.
helpMenu.inc
/login.jsp
Tab le 6 - 1
JSP Pages for Login and Advanced Login Pages Associated JSP Pages and Include Files
/jsp/shared/exitMenu.inc /jsp/shared/helpMenu.inc
Viewing Documents
6-5
The login page contains scriptlets to determine what login configuration is set for the Hyperion Performance Suite installation, i.e., $CUSTOM_USER$, $CUSTOM_PASSWORD$ etc. The help link is context sensitive. The login help URL is passed to the help.inc file.
6-6
browseNav.htm
browseList.htm item.imp
browseListMenu.jsp
displayPreferences.jsp
Tab le 6 - 2
/jsp/browser/extBrowseNavContent .jsp
The browse, search, and preference tabs are implemented in browseTop.jsp. Scriptlets are used to check if a tab is selected or not. Help and Exit URLs are formed using generic user interface components which uses specific URLs passed into the help and exit include files. Each servlet application within Hyperion Performance Suite has a distinct URL associated with Help.
Viewing Documents
6-7
The standard navigation frame uses template files. The template uses tokens, which are parsed by the foundation and replaced with the values in the response stream to the Web browser. Most of the customization is based on ws.conf setting, which is set by Servlet Configurator
Login Page
Login Page Advanced Login Page Browse Listing Page Modify File Properties Page Modify BQY Document Properties Page (for BQY documents only)
6-8
General Widget Advanced Options Widget Access Control Widget Version Widget
General Widget
Figure 6-6 and Table 6-3 show JSP page details for the general widget.
fileGeneralWidget .jsp
Tab le 6 - 3
General Widget JSP Pages Associated JSP Pages and Include Files
/jsp/browser/setName.jsp
6-9
Tab le 6 - 4
Advanced Options Widget JSP Pages Associated JSP Pages and Include Files
/jsp/browser/mimeTypes.jsp /jsp/browser/filePriority.js p /jsp/browser/charEncoding.js p /jsp/browser/setViewManager. jsp /jsp/browser/hiddenItem.jsp /jsp/browser/autoDelete.jsp /jsp/browser/allowExceptions .jsp /jsp/browser/setAutoKeywords .jsp /jsp/browser/assignKeywords. jsp
6-10
Tab le 6 - 5
Access Control Widget JSP Pages Associated JSP Pages and Include Files
/jsp/shared/accessControlJobWidg et.jsp /jsp/shared/accessControlGeneral Widget.jsp
6-11
Version Widget
Figure 6-9 and Table 6-6 show JSP page details for the version widget.
fileVersionsWidget .jsp fileEditVersion.jsp fileAddVersion.jsp
Tab le 6 - 6
Version Widget JSP Pages Associated JSP Pages and Include Files
/jsp/browser/version.jsp
/jsp/browser/version.jsp
6-12
fileOCEOptionsWidget .jsp
passThrough.jsp
FileMetaOCELink Widget.jsp
Tab le 6 - 7
OCE File Widget JSP Pages Associated JSP Pages and Include Files
/jsp/browser/passThrough.jsp
6-13
Tab le 6 - 8
BQY Document Properties JSP Pages Associated JSP Pages and Include Files
/jsp/browser/BQYQueryWidget .jsp /jsp/browser/fileThinClient Widget.jsp
Creating Events
This task involves navigating to the manage events page in the Job Manager and going through either the recurring events wizard or the triggered events wizard to create a new event. Figure 6-12 shows which user interface pages are involved in this user task:
6-14
Manage Jobs Page Manage Events Page Create Recurring Event Page Create Externally Triggered Event Page
Creating Events
6-15
schedNav .jsp
listSchedul erJobs.jsp
Tab le 6 - 9
Manage Jobs Page JSP Pages Associated JSP Pages and Include Files
/jsp/scheduler/listScheduledJobs.jsp
6-16
listEvents .jsp
Tab le 6 - 10
Manage Events Page JSP Pages Associated JSP Pages and Include Files
/jsp/scheduler/events/listEvents.jsp
The filters related part of this page is provided by the include file, /jsp/scheduler/events/eventFilter.inc. This include file is called by listEvents.jsp.
Creating Events
6-17
editEventGeneral Widget.jsp
editDaysToRunWidget. jsp
editTimeToRun.jsp
editDatesWidget.jsp
Tab le 6 - 11
Create Recurring Event Page JSP Pages Associated JSP Pages and Include Files
/jsp/scheduler/events/editEventGeneralWidget.jsp /jsp/scheduler/events/editDaysToRunWi dget.jsp /jsp/scheduler/events/editTimeToRun.j sp /jsp/scheduler/events/editDatesWidget .jsp
6-18
Days To Run
The Days to Run widget also uses the following JSP pages located in /jsp/scheduler/events/runsched:
By Day day.jsp By Week week.jsp By Period period.jsp By Quarter quarter.jsp By Year year.jsp Every every.jsp Advanced Days of Periods advancedDaysOfPeriod.jsp Advanced Days of Week advancedDaysOfWeek.jsp
Time To Run
The Time to Run widget also uses the following JSP pages located in /jsp/scheduler/events/timetorun:
Once Per Day once.jsp More Than Once Per Day every.jsp After External Event external.jsp
Creating Events
6-19
editXTE.jsp
editEventGene ralWidget.jsp
Tab le 6 - 12
Scheduling Jobs
This task involves navigating to the Job Manager module and creating a new schedule by using the scheduling wizard. All the pages listed in this task flow are in the scheduling wizard except the first page, the Scheduling Information page. BQY, SQR, and generic jobs require different pages for parameters (set values). Figure 6-17 shows the user interface pages involved in this user task.
6-20
Notification Page
Scheduling Information Page General Properties Page Select Job Parameters (use Set Values page when using new parameters) Set Values Page When to Run Page Notification Page
Scheduling Jobs
6-21
listJobData.jsp listJobScheduleData.jsp
listJobParameterData.jsp
Tab le 6 - 13
Schedule Information JSP Pages Associated JSP Pages and Include Files
jsp/scheduler/listJobScheduleData.jsp jsp/scheduler/listJobParameterData.jsp
6-22
Tab le 6 - 14
General Properties JSP Pages Associated JSP Pages and Include Files
/jsp/scheduler/wizardHeading.jsp /jsp/scheduler/schedJobGeneralWid get.jsp /jsp/scheduler/schedBQYDatabaseWi dget.jsp /jsp/scheduler/schedSQRDatabaseWi dget.jsp
Scheduling Jobs
6-23
Tab le 6 - 15
Select Parameters JSP Pages Associated JSP Pages and Include Files
/jsp/scheduler/schedJobSelParamWidget.jsp
BQY Jobs
The BQY job parameter wizard contains the following widgets:
Cycles Define Cycle Widget Set Values Page Process Options Actions
Cycles
Figure 6-16 and Table 6-17 show JSP page details for the cycles widget.
6-24
Tab le 6 - 16
Cycles Widget
Tab le 6 - 17
Multiple cycle and single cycle BQY jobs use different JSP.
Scheduling Jobs
6-25
BQYDefineCycleWidg et.jsp
BQYProcessOptions Widget.jsp
BQYActionWidget.jsp
actionControlWidget. jsp
Tab le 6 - 18
Define Cycles JSP Pages Associated JSP Pages and Include Files
/jsp/shared/BQYDefineCycleWidget.jsp /jsp/shared/bqylimits/jobParams.jsp /jsp/shared/BQYProcessOptionsWidget /jsp/shared/BQYActionWidget.jsp /jsp/shared/accessControlWidget.jsp
Set Values
Figure 6-22 and Table 6-19 show JSP page details for the set values widget.
6-26
Tab le 6 - 19
Actions
Figure 6-23 and Table 6-20 show JSP page details for the action widget.
Scheduling Jobs
6-27
Tab le 6 - 20
The following JSP pages are called in editBQYActionWidget.jsp and are used by one of the five specific action pages: export, save document, print document, e-mail section, and e-mail document:
SQR Jobs
Table 6-21 show JSP page details for the SQR job parameters wizard.
Tab le 6 - 21
Generic Jobs
Table 6-22 shows JSP page details for the generic job parameters wizard.
6-28
Tab le 6 - 22
schedJobSelEvent.jsp
schedJobNewEvent.jsp
Tab le 6 - 23
Notification Page
Figure 6-25 and Table 6-24 show JSP page details for the notification page.
Scheduling Jobs
6-29
schedJobNotify.jsp
schedJobNotifyEmai lWidget.jsp
Tab le 6 - 24
6-30
7
Note
In This Chapter
This chapter shows how to configure and customize e-mail notifications. The Event Service is responsible for notifications to alert users of events that occur within the context of Hyperion Performance Suite.
You need the administrator role to configure properties in the Administration module.
Configuring E-mail Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-2 Notification Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-2 Template File Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-3 Choosing HTML or Text Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-4 Template File Replacement Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-4 Properties in the notification.properties File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-7 Images in HTML-Formatted E-mail Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7-11
The outgoing e-mail server The from e-mail account Whether e-mail attachments are enabled; and if so, the maximum number of bytes allowed in an attachment The duration to keep scheduled jobs and background jobs in the notification logs
Template files define the formats of e-mail notification messages. Each notification type has its own template file. Therefore, you can customize the email notifications for each notification type. During installation, default template files are installed. If you are satisfied with the default files, then there is no need to customize the e-mail notifications and you can skip this section.
Notification Types
Hyperion Performance Suite supports the following types of e-mail notifications:
Item Notifications End users use the Browse module to subscribe to a file (or item) in the Repository. Browse allows you to specify the e-mail address that is sent an e-mail notification when the item is modified. Item e-mail notifications are sent when the item in the Repository is modified. For example, if a user stores a new version of a file in the Repository, an e-mail notification is sent to all the users who subscribed to the file.
Folder Notifications End users use Browse to subscribe to Repository folders and optionally subfolders. Browse allows users to specify the e-mail address that will be sent an e-mail notification when an item has been added to or modified in a given folder or subfolder.
7-2
Job Output Notifications End users use Browse to subscribe to a programs output. When the program is executed by the Job Service, an email notification is sent to all users who have subscribed to the programs output. Scheduled Job Notifications End users use Browse to subscribe to scheduled job notifications, which may announce any of the following:
Scheduled job completed successfully Scheduled job failed Scheduled job is being retried You can turn off scheduled job retry notifications for all users by setting the sched_retry_notifications Java property to false on the Event Service.
FTP delivery of scheduled jobs output succeeded FTP delivery of scheduled jobs output failed
The templates must be changed on the host of the Event Service. If you modify templates for job notifications, copy the modified templates to the same directory (Install_Home/BrioPlatform/lib/notification) on every machine hosting a Job Service.
7-3
The setting of the -Ddisable_htmlemail property chooses between the HTML and text versions of the template. If -Ddisable_htmlemail is set to false, the Event Service uses item_email.html when it sends an item notification. This property is set in the startCommonServices.bat. For information on setting this property, see the Foundation Administrators Guide.
Replacement Tokens Description Specifies the name of the user who triggered the e-mail notification. This applies to item and folder e-mail notifications. The notificationOriginator property in the notification.properties file provides a parameterized message that you can use to add text around the user name in the e-mail notification message.
Token <BRIO_TAG_USER>
7-4
Tab le 7 - 1
Replacement Tokens (Continued) Description Specifies the description that users specified when they created an item in the Repository. Users can also specify a description when they add a new version of a file in the Repository. When this occurs, this tag is replaced by the users description. The notificationDescription property in the notification.properties file provides a parameterized message that you can use to add text around the users description in the e-mail notification message.
Token <BRIO_TAG_DESC>
<BRIO_OBJECT_LINK>
Specifies the SmartCut to the item that is the target of the email notification. For an item subscription, it would be the SmartCut to the file that was the target (for example, the file that had a new version created). For a program output subscription, it specifies the SmartCut to the program output.
<BRIO_OBJECT_FULLPATH>
Specifies the full path of the item that triggered the e-mail notification. This is useful within a template HTML file as a target rather than the SmartCut.
<BRIO_TAG_MODIFY_LINK>
Specifies the SmartCut to the link to modify the subscription to the item that triggered the e-mail. This is useful to allow a user to discontinue or modify the subscription.
<BRIO_TAG_MODIFY_MSG>
Specifies text associated with changing a subscription. The notification.properties file specifies properties that are substituted for this replacement token. These properties are:
cancelItemSubscriptionSmartcut Specifies text for changing an item subscription. cancelCategorySubscriptionSmartcut Specifies text for changing a folder subscription. cancelProgramOutputSubscriptionSmartcut Specifies text for changing a program output subscription.
7-5
Tab le 7 - 1
Replacement Tokens (Continued) Description Specifies a string to be used as the title for an exception message. This replacement token is replaced with the exceptionMessage value in the notification.properties file.
Token <BRIO_TAG_EXCEPTION_TITLE>
<BRIO_TAG_EXCEPTION_MSG>
This replacement token is replaced with the exception messages that are the result of a jobs execution in the Job Service. Specifies why a scheduled job is being retried. The notification.properties file specifies properties that are substituted for this replacement token. This property is as follows:
<BRIO_TAG_RETRY_MSG>
<BRIO_TAG_USER_DEFINED> <BRIO_TAG_NO_ATTACHMENT>
Specifies the body component for e-mail notifications about the scheduled job. Specifies why no attachment was attached to the e-mail notification. Typically, this is not put into the e-mail notification. If an attachment was requested in the subscription and yet no attachment is attached, then this replacement token is used to let the user know why no attachment was applied. The notification.properties file specifies properties that are substituted for this replacement token. These properties are as follows:
attachmentErrorUnknown An unknown error has occurred. attachmentTooBig The size of the e-mail attachment is larger than the maximum set by the administrator. attachmentNotAllowed There was a permission violation and the attachment could not be attached. attachmentsDisabled The administrator has disabled e-mail attachments.
7-6
The name ends in either .string or .text. If the property name ends in .string, then the value is constant. Conversely, if the value contains a variable, then the property name ends with .text. Variables start with a left curly brace { and end with a right curly brace }. Variables have a number that starts with zero. When the Event Service creates e-mail notification messages, it frequently replaces a replacement token (see Table 7-1) with the property value from the notification.properties file. Consider the following variable property value assignment in the notification.properties file:
NotificationOriginator.text={0} triggered email notification
With this definition, the <BRIO_TAG_USER> replacement token in an e-mail notification template file is replaced with the name of the user who triggered the e-mail notification, followed by the text triggered e-mail notification. If a user named bob triggers the e-mail notification, then the string reads: bob triggered e-mail notification. Table 7-2 describes many of the properties in the notifications.properties file.
7-7
Tab le 7 - 2
Notification.Properties Description Specifies the text to insert into the e-mail notification when the attachment cannot be added because attachments are disabled for the domain. Editing the system properties using Administration module can enable e-mail attachments. Specifies the text to insert into the e-mail notification when adding an attachment to the e-mail fails for some unknown reason. Specifies the text to insert into the e-mail notification when the attachment cannot be added due to an access violation. If you receive an access violation, check the item permissions. Specifies the text to insert the e-mail notification when the attachment cannot be added because it is too big. Editing the system properties in the Administration module can set the maximum size of the e-mail attachment. Specifies the text to insert in the e-mail notification when specifying a smartcut to the folder subscription. The location of the {0} identifies when the smartcut to the subscription is placed. Specifies the text to insert in the e-mail notification when specifying a smartcut to the item subscription. The location of the {0} identifies when the smartcut to the subscription is placed. Specifies the text to insert in the e-mail notification when specifying a smartcut to a job output subscription. The location of the {0} identifies when the smartcut to the subscription is placed. Specifies the e-mail subject field when a folder subscription notification email is sent. The string {0} is replaced with the item name. Folder subscription e-mails are sent to users who have subscribed to a folder when a file or other interesting item is added to the folder. To include a single quotation mark in the subject, enter two single quotation marks. For example, to produce the subject Information Youve Subscribed To, enter as the value of this field: Information Youve Subscribed To.
Property attachmentsDisabled
attachmentErrorUnknown attachmentNotAllowed
attachmentTooBig
cancelCategorySubscriptionSmartcut
CancelItemSubscriptionSmartcut
cancelProgramOutputSubscriptionSmartcut
categorySubscriptionSubject
charset exceptionMessage
Defines the character set used to encode the subject field for e-mail notifications. Defines the heading for exception information reported in the e-mail notification. This property is only used when sending e-mail notifications for items that have associated exception information.
7-8
Tab le 7 - 2
Notification.Properties (Continued) Description Specifies whether e-mail notifications are in HTML or text format. If this property has a value of true, then e-mail notifications are in HTML. Specifies the e-mail subject field when an item subscription notification email is sent. The string {0} is replaced with the item name. Item subscription e-mails are sent to users who have subscribed to a Hyperion Foundation item when a new version of the file is published or its properties are changed. To include a single quotation mark in the subject, enter two single quotation marks. For example, to produce the subject Information Youve Subscribed To, enter as the value of this field: Information Youve Subscribed To.
notificationDescription
Item subscription e-mail notifications contain the description that end users provided when they created a new version of a file. The string {0} is replaced with the file description associated with the new version. Specifies the user who triggered the e-mail notification. The string {0} is replaced with the user name. Item and folder subscription e-mail notifications contain the user who triggered the e-mail notification in the e-mail body. The notificationOriginator property allows customized formatting. For example, the customer could change this value to:
notificationOriginator.text={0} triggered this email notification
notificationOriginator
With the above definition, the e-mail notification body will contain: bob triggered this e-mail notification if the Hyperion Performance Suite user bob triggered the notification. jobOutputSubscriptionSubject Specifies the e-mail subject field when a job output subscription notification e-mail is sent. The string {0} is replaced with the job name. Job output subscription e-mails are sent to users who have subscribed to a job, when new output of that job is published. To include a single quotation mark in the subject, enter two single quotation marks. For example, to produce the subject Information Youve Subscribed To, enter as the value of this field: Information Youve Subscribed To.
7-9
Tab le 7 - 2
Notification.Properties (Continued) Description Specifies the text to be placed in the e-mail notification when a scheduled job fails to run. The string {0} is replaced by the reason for the failure. The reason can be the text defined in scheduledJobFailedJobKilled or scheduledJobFailedUnknown properties, or it can be the text returned from the external program that was unsuccessfully executed. When a scheduled job is killed and the user has requested e-mail notification, this text is used as the reason why the job failed. When a scheduled job fails for unknown reasons and e-mail notification was requested, this text is used as the reason why the job failed. Specifies the text of the e-mail message sent by the scheduler when it couldn't run the job for some reason and is attempting to retry the job again. This is sent when notifications were requested. Specifies the e-mail subject field when a scheduled job e-mail notification is sent. The string {0} is replaced with the schedule name and the string {1} is replaced with the job name. This type of e-mail notification is sent when a scheduled job is executed and the person who scheduled the job checked the box for e-mail notification. To include a single quotation mark in the subject, enter two single quotation marks. For example, to produce the subject Information Youve Subscribed To, enter as the value of this field: Information Youve Subscribed To.
Property scheduledJobFailed
scheduledJobSubject
scheduledJobUnableToSched
Specifies the text of the e-mail message that is sent by the scheduler when it couldn't run the job for some reason. This is sent if notifications were requested and all retries have been exhausted. Allows additional text to be added with the SmartCut to the item. The {0} must be present in the string and identifies the location where the smartcut is placed. String used when the smartcut cannot be determined. Specifies the text to be placed in the e-mail notification when a scheduled job is run. The user must request e-mail notification when scheduling the job to get this information. The location of the {0} identifies where the SmartCut to the schedule is placed.
smartcut
unknownSmartcut viewScheduleSmartcut
7-10
1 Add an HTML IMG tag to the desired HTML template file. 2 Put the image file into the image directory that corresponds to the given e-mail
notification type.
Each notification type has its own subdirectory under the images directory. As an example, assume you want to place an image called logo.gif into item e-mail notifications. To do this you would add the string:
<IMG SRC=logo.gif>
to the file:
Install_Home/BrioPlatform/lib/notification/item_email.ht ml
7-11
7-12
8
In This Chapter
SmartCuts
SmartCuts enable you to integrate Hyperion Performance Suite with your intranet and other web-based applications. This chapter provides information on the SmartCut commands as well as a few SmartCut examples.
About SmartCuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-2 The get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-3 The run Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-8 The list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-10 The listNav Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-10 The listIndex Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-10 The listAll Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-11 SmartCut Variables for BQY Documents and Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-12 SmartCut Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8-18
About SmartCuts
By embedding SmartCuts in your applications, you enable users to view Hyperion Performance Suite content or run jobs from those applications.
Used within Hyperion Foundation items, SmartCuts enable report surfing, or hyperlinking directly between content of any type. For example, a white paper can link to a glossary document, or a sample code listing can link to a job that runs the code and returns output. SmartCuts enable more complex output structures, such as drill-down reports, where users can choose down through levels of detail. SmartCuts enable a user to send live links to documents to other users. When the recipient selects the URL, the SmartCut takes the user directly to the document, the job run form, or the report output. To use a URL this way, write it with the path to the document, form, or job and with any parameters the job requires. SmartCuts can automatically log users into the Web modules. The optional fields user, pass, and server are used to pass the login information. For more information about this and other ways users can be automatically logged in, see the Foundation Administrators Guide.
Note
You can close a Hyperion Foundation session opened with a SmartCut (without closing the browser) by appending /login to the end of the Browse module URL: http://database/Hyperion/browse. For example, if the SmartCut in the address line is
Note
When writing SmartCuts, keep in mind that Hyperion Performance Suites URLs are case sensitive and do not accept space characters. In place of a space, insert %20. Some example SmartCuts in this section illustrate this with the report name Sales Charts referenced as Sales%20Charts.
8-2
SmartCuts
Note
Hyperion recommends that UTF-8 encoding be used for double-byte characters (DBCS) contained in Smartcuts. In order to use UTF-8 encoding you need to set the Encoding for URL system property on the SmartCut properties page to UTF-8.
Available SmartCuts:
Review the following sections for information on each of the SmartCuts. SmartCuts for BQY documents and jobs are supported with additional optional variables. For more information on these variables see SmartCut Variables for BQY Documents and Jobs on page 8-12.
8-3
These uses of the get command are discussed in the following topics:
Getting and Viewing a Document, Report, or Form Getting Report Output Getting a Single Report Output Object
where: servletsHost is the name of the host machine on which the servlets run servletsPort is the port number of the Web server on which the servlets run (you can omit :servletsPort if port number is 80)
Brio/browse is the default Web application deployment name. If you have named this directory differently in your Web server software, substitute the correct name.
folderPath can be a single folder name, or it can be a folder path. (For example: folder/subfolder/subfolder/.) The folder name should match the folder names stored in Hyperion Performance Suite. item is the name of the item you want to view. Word documents, spreadsheets, HTML forms, and reports are examples of the types of items you can specify. The item name must exactly match the name given to the item when it was published in Hyperion Performance Suite. versionNumber, part of the optional ?version argument, is the version number of the item. If you do not supply the version number, the SmartCut retrieves the latest version. mimeType is the MIME type of the item. The SmartCut examples that follow invoke Browse and retrieve the target document, report, or form stored in the system. If the user is not already logged into a Hyperion Foundation servlet, the login page displays prior to processing the URL and retrieving the item.
8-4
SmartCuts
Example 1 shows a SmartCut that retrieves an e-mail address list stored in a folder called Sales, which is a subfolder of SampleContent. This document is an HTML file, so the document is returned to the browser for viewing.
Example 1
http://apollo/Hyperion/browse/get/SampleContent /Sales/Email_Address_list
The SmartCut in Example 2 retrieves a report that was generated from a previously-run SQR job. You can also run the report instantly, if desired. See The run Command on page 8-8 for more information.
Example 2
http://apollo/Hyperion/browse/get/SampleContent /Sales/sales.htm
Note
sales.htm is the name associated with the report when it was published in Hyperion
SQR Reports
For an SQR program, specify the SQRProgramOutput item, as follows:
http://hostname:port/Hyperion/browse/get/folderPath/JobName?jobOutput=true
This SmartCut returns the latest output for the job. Specifically, for SQR programs, it returns the HTML output file generated by the most recent run of the SQR program. For the Sales Charts job, located in the in the Sales folder under SampleContent, the SmartCut would be:
8-5
Example 3
http://apollo/Hyperion/browse/get/SampleContent/Sales /Output%20from%20Sales%20Charts
Note
Remember to use %20 in place of a space character. Also keep in mind that SmartCuts are case sensitive.
8-6
SmartCuts
Non-SQR Reports
For a non-SQR report, the SmartCut get should specify the OutputCollection item, as follows:
http://hostname:port/Hyperion/browse/get/folderPath/ JobName?mimetype=mimeType
This SmartCut returns the latest output for the job. To look up the exact MIME type, use Browse module. Select an item of the type you want to get, choose the Modify properties icon, and look at the Advanced Options section. For a report named Expenses, located in the Finance folder, and run by an application called ReportGenerator, the SmartCut to get the output would be:
Example 4
http://apollo/Hyperion/browse/get/Finance/Expenses ?mimetype=ReportGenerator%20Job%20Output
Note that the ?mimetype=type parameter is necessary, since the job itself is called Expenses. Without the mimetype parameter, the SmartCut would run the job. By specifying the MIME type, you can return only the output objects.
8-7
Example 5
http://hostname:port/Hyperion/browse/get/folderPath/JobName.pdf?latest=true
Without the latest=true parameter, if the job had been run more than once, the SmartCut would return a listing of all the PDF output files. The latest=true parameter is used where there are multiple items of the same name. If there are multiple versions of a versioned item, the SmartCut get returns only the latest version by default. If you want a another version, specify it by number in the ?version=versionNumber parameter.
Note
Passing parameters in the SmartCut works for SQR and generic jobs, but not for BQY jobs. For BQY jobs, see Limits and LimitValues on page 8-16.
To run the report or job, use the run SmartCut, which has the following syntax:
http://hostname:portNumber/Hyperion/browse/run/folderPath/ JobName[?dbuser=dbUser&dbpass=dbPassword][&Param_1=param_1&Para m_2=param_2][&AskParam_1=askparam1]...
8-8
SmartCuts
Optionally, you can include the following variables in the SmartCut run:
dbuser, dbpass These variables are used to establish the database connection for running a report. They are optional in the SmartCut because they can alternatively be configured when publishing a job.
Param_1, Param_2, ... (or ASKparam_1, ... for ASK parameters) Note the initial capital letters. These parameters are used to execute the report or job. If a report does not require parameters, the SmartCut need not contain any parameters. If the report or job requires parameters, and some or all the required parameters are omitted in the SmartCut or POST operation, the parameter form displays.
Example 6 is a SmartCut that specifies a report to be run but includes no parameters. Since no parameters have been specified, the input parameter form will be retrieved and presented for the user to provide the necessary input parameters prior to running the job.
Example 6
http://apollo/Hyperion/browse/run/SampleContent/Sales/ Sales%20Charts
Example 7 shows a URL that specifies a report to be run. Input parameters are specified as part of the SmartCut run. This example will directly invoke the job and return the report output.
Example 7
http://apollo/Hyperion/browse/run/SampleContent/ Production/Inventory_Information/Supplier_Exception_Report?Param_1=ALL
Example 8 shows a SmartCut that fills in all the required parameters. Using this URL results in Browse running the report using the parameters entered. Browse then displays the report output.
8-9
Example 8
Note
To determine what input parameters are needed for the report, view the Job properties in the Browse module.
This is equivalent to what is displayed in the main frame on the Browse tab.
Example 9
http://apollo/Hyperion/browse/list/SampleContent/Sales
This is equivalent to what displays in the navigation (lefthand side) frame on the Browse tab. The listNav SmartCut is not intended to be used directly, but rather, it is part of the listIndex SmartCut.
Example 10
http://apollo/Hyperion/browse/listNav/SampleContent/Sales
8-10
SmartCuts
http://hostname:portNumber/Hyperion/browse/listIndex
This is equivalent to displaying both the navigation and main frames on the Browse tab in a frameset. This example does not take any arguments.
8-11
SmartCut Variables Get Run Intelligence iServer only BQY Jobs Only
Variable bqtype mimetype filename dest version jobOutput SectionName Toolbar BoundRect ShowForm Limit/LimitValue
Note
8-12
SmartCuts
bqtype
Use bqtype to specify which application to use to display the BQY document or job output. If bqtype is specified, the filename and mimetype variables are not necessary and will be ignored. If bqtype equals plugin, the system checks that the user has permission to use the Hyperion Intelligence Client. If the user has permission, the BQY document or job output is opened using the Hyperion Intelligence Client. If the user does not have permission, an error message displays. If the bqtype equals ihtml, the system checks that the user has permission to use the Intelligence iServer. If the user has permission, the BQY document or job output is opened using the Intelligence iServer. If the user does not have permission, an error message displays. If bqtype is not set, the system checks if the user has permission to use the Intelligence iServer first. If the user does not have permission, the system checks to see if the user has permission to use the The Hyperion Intelligence Client. If the user does not have permission to use either application, an error message displays. bqtype has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
=<plugin/ihtml>
mimetype or filename
Use mimetype to specify the BQY job output type to open. If multiple objects of a mimetype exists a job listing is displayed. Use filename to specify a specific file. If filename is specified, the mimetype is not necessary and will be ignored. The default mimetype is BQY. mimetype has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?mimet
ype=text/html&jobOutput=true
http://hostname:portNumber/Hyperion/browse/run/folderPath?mimet
me= filename&jobOutput=true
8-13
http://hostname:portNumber/Hyperion/browse/run/folderPath?filena
me=filename&ShowForm=false
Tip
The filename can be accessed by mousing over the job output icon or BQY icons. The mimetype can be accessed by mousing over the link of the job output or the BQY file.
dest
Use the dest variable instead of folderpath to specify the UUID of an item when there are multiple documents with the same name. Instead of this syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath/
version
Use version to specify the version number. If this is not specified the latest version is used. version has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
=<plugin/ihtml>?version=versionNumber
SectionName
Use to reference a specific section from a BQY document. If SectionName is not specified, the default section specified in the BQY document displays. SectionName has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
=ihtml&SectionName=<name>
Toolbar
Use to specify whether the toolbar will display or not. If a toolbar setting is not specified, no toolbar displays.
8-14
SmartCuts
If Toolbar equals Standard, the full toolbar displays which includes access to help. If Toolbar equals Navigation, only the bar for paging displays. Toolbar has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
=ihtml&SectionName=<name>&Toolbar=Standard
BoundRect
Use to provide the height and width for the Web browser. BoundRect has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
JobOutput
Use this variable to display job output after a job has been run. jobOutput has the following syntax:
http://hostname:portNumber/Hyperion/browse/get/folderPath?bqtype
=ihtml&jobOutput=true
ShowForm
Use this variable to give the user access to the browse run screen to set or change limits. The default is true. ShowForm must be false when passing parameters via the URL. ShowForm has the following syntax:
http://hostname:portNumber/Hyperion/browse/run/folderPath?bqtype
=plugin&ShowForm=true
http://hostname:portNumber/Hyperion/browse/run/folderPath?bqtype
=plugin&ShowForm=false&Limit1=q1\state&LimitValue1=CA&LimitValue1 =MI
8-15
=ihtml&ShowForm=false&Limit1=q1\state&LimitValue1=CA&LimitValue1= MI&Limit2=q2\Product&LimitValue2=A001 In order to pass date limits you have to define the day, month, year, time, and time zone as the following syntax shows:
http://hostname:portNumber/Hyperion/browse/run/folderPath?bqtype
=ihtml&jobOutput=true&ShowForm=false&Limit1=q1/SaleDate&LimitValu e1=dd=12,mm=12,yyyy=2004,time=13:30:00,tz=America/Los_Angeles where dd is day mm is month yyyy is year hh is hour mm is minute ss is second tz is the time zone The default hour, minute, second is midnight. The default time zone is the time zone of the servers location. This field uses recognized Java time zones. It is also possible to use constants for dates. The following table defines the supported constants.
8-16
SmartCuts
Tab le 8 - 2
Date Constants Value FirstOfMonth FirstOfPreviousMonth FirstOfQuarter FirstOfWeek FirstOfYear Friday LastOfMonth LastOfPreviousMonth LastOfQuarter LastOfWeek LastOfYear Monday PreviousBusinessDay Today Yesterday
Name First of Month First of Previous Month First of Quarter First of Week First of Year Friday Last of Month Last of Previous Month Last of Quarter Last of Week Last of Year Monday Previous Business Day Today Yesterday
=ihtml&ShowForm=false&Limit1=q1\SaleDate&LimitValue1=FirstOfMonth, tz=America/Los_Angeles
Note
The Ignore and Dont Prompt flag defaults apply when a job is run. When limit values are passed using a SmartCut and the Ignore flag is set to true the new values will be ignored. To change these flags, modify the properties of the job through the browse module before running the job.
8-17
SmartCut Examples
Two examples for using SmartCuts are provided here.
Your company's intranet Your companys Web site Your partners extranets Hyperion Performance Suite content
F i g ure 8 - 2 Kiosk for Access to Hyperion Performance Suite Content, Intranet, and Extranets
8-18
SmartCuts
The three lower buttons all access Hyperion Performance Suite content, but in different ways, each using a different SmartCut:
Listing all the folders (like the navigation pane in Browse)-- using the SmartCut listIndex. Displaying report output--using the SmartCut get. Running a report--using the SmartCut run.
1 Find or create the graphics you want to use for the kiosk buttons, and save the graphics
files in the wsmedia/personalize subdirectory of your Web application deployment directory (servlets/deployment by default).
2 In Notepad (or any editor that does not change the code), enter the code below.
If you are viewing this documentation in Adobe Acrobat Reader 4.0 or above, you can copy the text using the Text Select Tool, and paste it into your editor. The code shown is kiosk0.htm, with the SmartCut names shown in boldface. What you need to replace (in the next Step) is shown in bold italics:
<HTML> <HEAD> <TITLE>KIOSK</TITLE> </HEAD> <BODY> <TABLE> <TR> <TD> <A HREF="http://intranet" > <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/personalize/ graphic1"></A></TD> <TD>         </TD> <TD> <A HREF="http://website" > <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/personalize/ graphic2"></A></TD> <TD>         </TD> <TD> <A HREF="http://extranetsListURL" > <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/personalize/ graphic3"></A></TD> <TD> </TD> </TR>
SmartCut Examples
8-19
<TR VALIGN="TOP"> <TD ALIGN="CENTER"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0><B>Our Company<BR>Intranet </B></FONT></TD> <TD> </TD> <TD ALIGN="CENTER"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0><B>Our Company<BR>Website</B></FONT></TD> <TD> </TD> <TD ALIGN="center"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0> <B>Our Partners'<BR>Extranets</B></FONT></TD> </TR> <TR> <TD> <BR> </TD> <TD> </TD> <TD> </TD> </TR> <TR> <TD> <A HREF="http://servletsHost:servletsPort/root/browse/ listIndex?user=username&pass=password&server=GSMhost:GSMport"> <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/ personalize/graphic4"></A></TD> <TD> </TD> <TD> <A HREF="http://servletsHost:servletsPort/root/browse/ get/SampleContent/Production/Inventory_Information/ Central_Facility_Report?user=username&pass=password &server=GSMhost:GSMport"> <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/personalize/graph ic5"></A></TD> <TD> </TD> <TD> <A HREF="http://servletsHost:servletsPort/root/browse/run/ SampleContent/Sales/Sales%20Charts?user=username&pass=password& server=GSMhost:GSMport"> <IMG border=0 src="Install_Home/servlets/deployment/wsmedia/ personalize/graphic6"></A></TD> </TR> <TR VALIGN="TOP"> <TD ALIGN="center"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0><B>Browse All<BR>Folders</B></FONT></TD> <TD> </TD> <TD ALIGN="center"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0><B>View<BR>Sales Report</B></FONT></TD> <TD> </TD> <TD ALIGN="center"> <FONT FACE="Arial" COLOR="saddlebrown" SIZE=+0><B>Run "Sales <BR>Chart" Report</B></FONT></TD> </TR>
8-20
SmartCuts
Replace intranet with the URL for your companys intranet. Replace Install_Home with the name of your installation directory, which is the directory containing the servlets directory. Replace root/browse with the Web application deployment directory name or alias, if it is set differently in your Web server software. Replace graphic1, graphic2, etc. with filenames of your button images. Replace website with the URL for your companys public Web site. Replace extranetsList.htm with the URL for a page containing links to your partners extranets. Replace servletsHost with the name of the host on which the servlets are installed. Replace servletsPort with the port number for the Browse servlet. Replace the path of the example Central Facility Report with that of your report output object. Replace the path of the example Sales Charts SQR program with that of your report program. Replace username with appropriate user name. Replace password with appropriate password.
Note
Supplying the user name and password in SmartCuts is not necessary if you have implemented transparent login. See the Foundation Administrators Guide for more information.
Replace GSMhost with the name of the host running the Global Service Manager. Replace GSMport with the port number for the Global Service Manager. (The default is 1800.)
8-21
5 Incorporate kiosk.htm into your web-based application or make it the home page in
your browser.
Note
HTML form METHOD=POST is UTF-8 compatible for double byte character encoding.
<HTML> </BODY> Please choose values for the BQY job input parameters:
8-22
SmartCuts
SmartCut Examples
8-23
8-24
SmartCuts
9
In This Chapter
Extended Services
This chapter describes how to integrate an extended service with the Hyperion Foundation servlets. After an extended service is integrated, end-users have seamless access to it through the servlets in the context of a regular session.
Integrating Extended Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-2 Displaying Extended Service Content on Personal Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9-7
Note
For an extended service to be integrated with the Hyperion Foundation servlets, the resources (files or programs) specified by the extended service must exist in the same Web server context as the Hyperion Foundation servlets.
Configuration File for Extended Services URL to Access Extended Services Examples Entries and URLs for Service Properties Aggregation of Query Parameters Relative Links in Extended Service HTML Output Local Resource Management
9-2
Extended Services
may be, for example, an HTML or JSP file or a servlet. The resource type indicates whether the resource is represented by a path ($PATH$) or a name ($NAMED$). If the resource is identified by a file or program path, the resource value should be the path. A path is typically an absolute path from the Web server context root, starting with the / (forward slash) character. If the resource is identified by a named resource such as a servlet, the resource value should be the name of the servlet (as known to theWeb server). You can add query parameters to the resource value if the resource is of the type $PATH$. This lets you pass parameters with static values to the resource. Entries in services.properties should use the following format:
[urlPrefix.]serviceCommandName.resource=PathOrName[?param1=value1¶m2=value2] [urlPrefix.]serviceCommandName.type=$PATH$|$NAMED$
Examples of services.properties entries are shown in Examples Entries and URLs for Service Properties on page 9-4.
Note
where: protocol is HTTP or HTTPS host is the name or IP address of the host machine on which the Hyperion Foundation servlets are running port is the port number of the Web server on which the servlets are running servlet is the name of a Hyperion Foundation servlet; it is one of the following case-sensitive literal strings: browse, personalpages, jobmanager, viewmanager, or administration
9-3
servicePrefix is the name of the prefix for the extended service. Prefixes help avoid name collisions with internal Hyperion Foundation commands or commands of other services. The default service prefix is ext serviceCommand is the required command name to invoke the extended service queryParameters are one or more optional parameters that the extended service takes as input For example:
http://apollo:11122/Hyperion/jobmanager/ext/myExtendedService
Note
In this section, the protocol://host:port portion of each example URL is omitted for readability and to emphasize the portion specific to extended services. In actual usage, the full URL is necessary to access the extended service.
Example 1
For a named resource where the dinnerMenu service is handled by a servlet known to the Web server as DinnerMenuServlet, and where no prefix is specified, the service.properties entries are as follows:
dinnerMenu.resource=DinnerMenuServlet dinnerMenu.type=$NAMED$
The type is specified as $NAMED$ because this is a named resource rather than a file path. Because no URL prefix was specified, the default prefix is used. The URL to access this extended service is:
9-4
Extended Services
/Hyperion/servlet/ext/dinnerMenu
If the service takes query parameters at runtime, the parameters are specified at the end of the URL. Assuming that the dinnerMenu service takes two parameters, dayOfWeek and month, the URL would be:
/Hyperion/servlet/ext/dinnerMenu?dayOfWeek=Tuesday&month=Sep-tember
Example 2
Same as Example 1, except that the URL prefix is specified as brio. The service.properties entries are:
hyperion.dinnerMenu.resource=DinnerMenuServlet hyperion.dinnerMenu.type=$NAMED$
Example 3
For a resource expressed as a path, where the dinner menu service is handled by a servlet, the service.properties entries are:
dinnerMenu.resource=/servlet/DinnerMenuServlet dinnerMenu.type=$PATH$
Because no URL prefix was specified, the default prefix is used. The URL to access this extended service is:
/Hyperion/servlet/ext/dinnerMenu
Example 4
For a file resource, where requests for the dinnerMenu service are handled by a JSP with the path /scripts/dinnerMenu.jsp, the service.properties entries are:
dinnerMenu.resource=/scripts/dinnerMenu.jsp dinnerMenu.type=$PATH$
Because no URL prefix was specified, the default prefix is used. The URL to access this extended service is:
/Hyperion/servlet/ext/dinnerMenu
Example 5
Same as Example 4, except that requests for the dinner menu service are handled by an HTML file, whose path is /wsmedia/docs/dinnerMenu.html. The service.properties entries are:
dinnerMenu.resource=/wsmedia/docs/dinnerMenu.html dinnerMenu.type=$PATH$
Example 6
Same as Example 3, but passing static query arguments via the resource entry. The query arguments are named startTime and location, with values 19:00 and CA, respectively. The service.properties entries are as follows. (Differences from Example 3 are represented in bold.)
9-5
The URL to access this extended service is the same as that in Example 3:
/Hyperion/servlet/ext/dinnerMenu
Example 7
9-6
Extended Services
retrieved from the com.brio.one.client.SessionToken attribute of the javax.servlet.http.HttpSession object. After the session token is obtained in its string format, it can be used to join the session through Hyperion Performance Suites API.
9-7
9-8
Extended Services
This appendix is for non-Java programmers who want to learn how to compile and run the sample API programs which are included in the Hyperion Performance Suite SDK. This appendix includes instructions for Windows users on preparing to use the sample programs, how to compile and run sample programs, and a tutorial on how to add a user using the Batch Driver sample program. UNIX users replace the batch (BAT) files with shell (SH) files and reverse the slash marks in the pathnames, for example, Install_Home\SDK\lib\rmapi.jar is Install_Home/SDK/lib/rmapi.jar in UNIX. Other differences are noted in the text. For complete syntax for all the sample programs, see Samples on page 4-4. For more information on the control file and control statements for the batch driver program, see Chapter 3, Batch Driver Sample Program Control File.
In This Chapter
Preparing to Use the Sample Java Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-2 Running the Login Sample Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-6 Batch Driver Tutorial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .A-7
Installing Hyperion Performance Suite SDK Validating the Hyperion Performance Suite Connection Compiling the Sample Programs
2 When asked, provide a license key. 3 On the installation type screen, select Custom Install.
- Select Clear all check marks for all components. - Scroll down and select the SDK component.
A-2
Installing the Java Compiler on page A-4 About execapi.bat on page A-4 Creating a Batch File to Compile the Sample Programs on page A-5 Compiling the Login Sample Program on page A-6
A-3
1 Download Java 2 Standard Edition (J2SE) for compiling and running Java code from
http://java.sun.com/j2se/1.4.2/download.html.
J2SE contains the Software Development Kit (SDK) and the JAVA Runtime Environment (JRE).
About execapi.bat
This file sets up the environment and runs the sample files. The execapi.bat file is generated by the installer and is located in Install_Home\SDK\bin. The following is an example execapi.bat file:
@echo OFF REM execapi.bat -- this file was generated by the Hyperion installation program setlocal set briohome=C:\Program Files\Brio\Hyperion set SYSPROPS=-Ddirectory=%briohome%\SDK set classpath=.;%briohome%\SDK;%briohome%\SDK\lib\rmapi.jar;%brioho me%\lib;%briohome%\SDK\etc\log4j;%briohome%\lib\log4j.jar;%brio home%\lib\foundation.jar;%briohome%\lib\iona61.jar;%briohome%\l ib\comutil1_01.jar;%briohome%\lib\logi.crypto1.1.2.jar;%briohom e%\lib\xercesImpl.jar;%briohome%\lib\xmlParserAPIs.jar;%briohom e%\lib\spf82.jar;%briohome%\lib\commons_collections.jar;%brioho me%\BrioPlatform\lib\bqservice.jar pushd %briohome%\SDK\samples\java "%briohome%\jre\jre141\bin\java" %SYSPROPS% -mx64m -cp "%classpath%" %* popd endlocal
A-4
2 Add a line after SYSPROPS to set JAVA_HOME to the location of your Java compiler .
For example: set SYSPROPS=-Ddirectory=%briohome%\SDK set JAVA_HOME=C:\j2sdk1.4.1_03\bin\javac
set JAVA_HOME=C:\j2sdk1.4.2_04\bin\javac
set classpath=.;%briohome%\SDK;%briohome%\SDK\lib\rmapi.jar;%brioho me%\lib;%briohome%\SDK\etc\log4j;%briohome%\lib\log4j.jar;%brio home%\lib\foundation.jar;%briohome%\lib\iona61.jar;%briohome%\l ib\comutil1_01.jar;%briohome%\lib\logi.crypto1.1.2.jar;%briohom e%\lib\xercesImpl.jar;%briohome%\lib\xmlParserAPIs.jar;%briohom e%\lib\spf82.jar;%briohome%\lib\commons_collections.jar;%brioho me%\BrioPlatform\lib\bqservice.jar pushd %briohome%\SDK\samples\java %JAVA_HOME% -classpath "%classpath%" %* popd endlocal
A-5
1 Open the Command Prompt window. 2 Go to the directory where jc.bat is located.
C:\Documents and Settings\ksmith>cd Install_Home\SDK\samples\java
1 Open the Command Prompt window. 2 Go to the directory where execapi.bat is located.
For example: C:\Documents and Settings\ksmith>cd Install_Home\SDK\bin
If the login worked you will see the following messages in the command prompt window:
connection established connection closed
A-6
execapi.bat This file sets the environment, passes arguments to the program, and runs the program including using the control file, batch_driver.cf. This file is located in <Install_Home>\SDK\bin. batch_driver.cf This is the control file that contains control statements that describe objects that will be created in the database by the batch driver program. It is located in the <Install_Home>\SDK\Samples\java directory. For more information on the control file, see Chapter 3, Batch Driver Sample Program Control File.
In this tutorial the batch_driver.cf file contains data to add one user. The batch_driver.cf looks like the following:
user uid=testUser^pwd=testUser^name=Test User^desc=A Test User^defcat=/batchFolder^[email protected]^authensyst em=default_system^group=testGroup1^group=testGroup3^role=CONTEN T PUBLISHER^role=USER^perm=accessor2^perm=accessor4
1 Open the Command Prompt window. 2 Go to the directory where execapi.bat is located.
For example:
C:\Documents and Settings\ksmith>cd C:\Program Files\Hyperion\SDK\bin
3 Run the batch driver sample program from the command prompt window.
If you are using the installed BatchDriver.class use the following syntax:
execapi com.sqribe.rm.BatchDriver <username> <password> <host> <port> <control filename>
For example:
C:\Program Files\Hyperion\SDK\bin>execapi com.sqribe.rm.BatchDriver administrator administrator venice 1800 batch_driver.cf
If you compiled the batch driver program use the following syntax:
execapi BatchDriver <username> <password> <host> <port> <control filename>
A-7
For example:
C:\Program Files\Hyperion\SDK\bin>execapi BatchDriver administrator administrator venice 1800 batch_driver.cf
4 Open Hyperion Performance Suite and check that the user in the batch_driver.cf
is in the user list.
5 Create a batch file to run this class again by copying and saving the following line from
the command prompt window into a batch file, batch_driver.bat, in Install_Home\SDK\sample\java:
execapi com.sqribe.rm.BatchDriver administrator administrator venice 1800 batch_driver.cf
or
execapi BatchDriver administrator administrator venice 1800 batch_driver.cf
Now you can run the batch driver sample program by simply clicking the batch file. Change the batch_driver.cf file to add other objects. For more information on the batch driver control file, see Chapter 3, Batch Driver Sample Program Control File.
A-8
Glossary
administrator A predefined user who generally is granted roles that grant administrative capabilities, but is not exempt from access privilege checking. appender Log4j term for destination. application A program running within a system,
example, view, modify, run, full controlthat the publisher of an item grants to others; also, at what level other users or groups can access a user or group as well as what a user and members of a group can do.
actions Execution of a BQY job is defined in
such as SQR.
Authentication Service A Core service that
Suite item or a web site, displayed on a Personal Page of a user. The two types of bookmarks are My Bookmarks and image bookmarks.
bounding rectangle The perimeter that
are six levels of permission: view only, view and process. analyze, analyze and process, query and process, and datamodel and analyze.
encapsulates the BQY content when embedding BQY sections in a Personal Page. It is required by the Intelligence iServer to generate HTML and is specified in pixels for height and width or row per page.
Intelligence products and published into the Repository as files or as jobs. Files and jobs have different capabilities.
BQY sections Divisions of a BQY file used to
display and analyze information in different formats (such as Chart Section and Pivot Section).
BrioPlatform Server A Windows service that
Intelligence Products (Results, Tables, Pivots, Charts, and OLAP Results) can be embedded into a Personal Page. All embedded sections maintain live data content and formatting from the original section.
exception A condition or result (such as a threshold being reached) generated by an automated process, which requires some intervention or oversight. It can cause (a) the corresponding indicator on a subscribing users Exceptions Dashboard to change, or (b) a notification to be sent to a user who has subscribed to it. Exceptions Dashboard An optional content
starts all the active Foundation services of Hyperion Performance Suite. Its default name is: BrioPlatform_LocalHost_GSMHost_GSM Port.
connection file See Open Catalog Extension Files
(OCE) Files
content Information stored in the Hyperion
Foundation Repository. It includes report programs (jobs), report output, documents such as spreadsheets or word processing documents, images, HTML pages, files of any type, multiple versions of files, or URLs.
cookie A small piece of information placed on
window used to monitor exceptions on Personal Pages. Add exception indicators to this dashboard. Each indicator represents one exception-capable report.
external authentication system An authentication
system that uses an external driver to access an external system, from which it retrieves user and group information.
externally triggered events Non-time-based
administrator.
cycle Used when scheduled BQY jobs need to
process and produce different job output with one job run. Cycles are among the BQY job parameters.
default folder A users home folder.
are similar to the directories or folders of your operating system, and are arranged in a hierarchical structure. A folder can contain subfolders, items, or both.
generic jobs Jobs that are neither SQR nor BQY
jobs.
Glossary
control of all Hyperion Performance Suite resources and is not subject to access privilege checking by the system.
group A construct that allows the assignment of
intelligence solution that provides powerful query, analysis, and reporting functionality across both client/server and web environments.
Install_Home The directory under which a
or if the host has multiple Install_Homes, to a Install_Home. The host properties are configured from the LSC.
Hypertext Markup Language (HTML) A
Hyperion Performance Suite client or server is installed. Install_Home is a variable; its path and name were specified during installation. See also next definition.
Install_Home A single set of Hyperion
programming language used to create World Wide Web pages, with hyperlinks and tags that explain to a browser how to format the information on the screen.
image bookmarks Graphic links to web pages or
Performance Suite servlets or services, which run in a single process space and are installed in the same Install_Home directory (see definition above). The term Install_Home is used in this way to indicate a single client or server even when n clients or servers, in n Install_Home directories, are installed on the same machine.
item A piece of content. An item can be a report
program (job), report output, a document created in a spreadsheet or word processing application, an image, an HTML page, a file of any type, a set of versions of a file, or a URL. Every item possesses properties, which store extra information about the item.
JSP Java Server Pages. jobs Executable objects; typically reports,
system because an administrator has inactivated the user account. Only in the authentication system that manages a user can a particular user be deleted.
programs, or scripts.
job output Files or reports produced from
running a job.
Glossary
with the Local Service Configurator. They include: Global Services Manager (GSM), Local Services Manager (LSM), Session Manager, Authentication Service, Authorization Service, and Publisher Service, Super Service, Logging Service, Usage Service, and in some contexts, Data Access Service (DAS) and Intelligence Service.
metadata Data about data; properties and
that encapsulate and store connection information used to connect Hyperion Intelligence applications to a database. OCE files specify the database API (ODBC, SQL*Net, etc.), database software, the network address of the database server, and your database user name. Administrators create and publish OCE files.
personal job parameters Reusable, named job parameters that are accessible only to the user who created them. Personal Pages Your personal window to
information in Hyperion Performance Suite. You select what information to display, as well as its layout and colors.
personal recurring time events Reusable time
Extension. Describes the format of data in an item (for example, an Excel spreadsheet or an SQR program) so that the system knows which application to launch to open the object.
native authentication server An authentication
events that are accessible only to the user who created them.
properties Information about a file or other
resource. For example, the Name or MIME Type of a file, or the User ID and Password of a user. (Also called metadata.)
proxy server A server that acts as an
server for which Hyperion Performance Suite manages all the user and group information in its own database, the Authentication Service repository (ASR). It does not use an authentication driver.
null value A value that is absent of data. OCE See Open Catalog Extension Files (OCE)
parameters created by a Hyperion Foundation administrator and accessible to users who have the requisite access privileges.
public recurring time events Reusable time events
Files
Glossary
publish To enter a file into the Hyperion Foundation Repository. The publisher uploads the file and sets its access control and other properties. RSC services The services that are configured
services Resources that provides the ability to retrieve, modify, add, or delete business items. Some Hyperion Foundation services are: Authorization, Authentication, Global Service Manager (GSM). servlet A piece of compiled code executable by a
with the Remote Service Configurator. They include: Repository Service, Service Broker, Name Service, Event Service, and Job Service.
reconfigure URL URL to enter new servlet
web server. In Hyperion Foundation, the servlets are Browse, Personal Pages, Job Manager, View Manager, Administration, Data Access, and iHTML.
Servlet Configurator A software utility for
Hyperion Foundation. Create a shortcut when, for example, you want to display an item in folder A, though it is stored in folder B.
single sign-on The ability of an externally
manages. Examples of a resource include a role, user, group, file, job, Publisher Service, and so on.
role A construct that defines the access
authenticated user to access multiple, linked Hyperion applications after logging on only to the first application.
SmartCut A link to an item in Hyperion
privileges granted in order to perform a business function; for example, the job publisher role grants the privilege to run or publish a job.
schedules Specify the job you want to run, as
the SQR server that contains a representation of the actual formatted report output, including fonts, spacing, headers, footers, and so on.
SQR A specialized programming language for
well as the event schedule and job parameter list for running the job.
security platform A framework providing the
ability for Hyperion applications to use external authentication and single sign-on using the security platform driver.
folder, in order to receive automatic notification whenever the item or folder is updated.
Glossary
run a report.
web client Intelligence plug-in product that enables users to create queries, analyze data, and create reports through a browser. web server Software or hardware hosting
who have been previously authenticated by external security criteria to log in to Hyperion Performance Suite, bypassing the login screen.
trusted password A password that allows users
who have been previously authenticated in another system to have access to other applications without entering a password.
trusted user A user authenticated by some
intranet or Internet web pages or web applications. In the Foundation Users Guide, this term often refers to the Hyperion Performance Suite servlets host, because in many installations, the servlets and the web server software reside on a common host. This configuration is not required, however; the servlets and the web server software may reside on different hosts.
ws.conf A configuration file for Windows
platforms.
wsconf_platform A configuration file for UNIX
platforms.
Zero Administration A software tool that
web pages.
user A Hyperion Performance Suite account
owner identified by a user ID, user name, and password. A user is created in, and managed by, an authentication system.
identifies the version number of the most up-todate plug-in on the server.
Glossary
Index
A
AbsoluteTimeEvent Interface, 2-2 Accessor Control Statement, 3-4 AddGroup.java sample, 4-7 AddLink.java sample, 4-8 AddObjectType.java sample, 4-8 AddOCEDocument.java sample, 4-8 AddRole.java sample, 4-9 AddSPF.java sample, 4-9 AddSubscription.java sample, 4-10 AddUser.java sample, 4-10 AddVersions.java sample, 4-11 APIs, session management, 9-7 audience for this guide, xi Authentication Interface, 2-2 Authorization Interface, 2-2 AutoZip.java sample, 4-11
group control statement, 3-5 OCE control statement, 3-9 user control statement, 3-7 Batch Driver Tutorial, A-7 batch file to compile sample programs, A-5 to run sample programs, A-4 BatchDriver.java sample, 4-12 BQY Control Statement, 3-11 BQYDocument Interface, 2-3 BQYJob Interface, 2-3
C
case-sensitivity of URLs, 8-2 categories. See folders Category Control Statement, 3-6 Category Interface, 2-4 CategoryDelete.java sample, 4-12 Classes, 2-11 Collection Interface, 2-4 compiling Login sample program, A-6 sample programs, A-3 use batch file to, A-5 conditional elements in templates, 5-6 configuring extended services, 9-2 consulting services, xviii Control Statement Accessor, 3-4
B
BaseObject Interface, 2-2 batch driver program control statement attibutes, 3-3 Batch Driver sample program accessor control statement, 3-4 BQY control statement, 3-11 category control statement, 3-6 control statements, 3-2 date control statement, 3-8
BQY, 3-11 Category, 3-6 Data, 3-8 defined, 3-2 Group, 3-5 OCE, 3-9 User, 3-7 control statements attribute, 3-3 Custom Calendar Interface, 2-4
D
dashboards example, 8-18 example code, 8-19 from web applications, 8-18 8-22 Data Control Statement, 3-8 database, connectivity, 8-9 DataObject Interface, 2-4 dbuser variable, 8-9 DHTML templates, list of, 5-6 disabling template caching, 5-2 documents conventions used, xvii feedback, xix ordering print documents, xvii structure of, xi documents, accessing Hyperion Download Center, xvi Hyperion Solutions Web site, xvi Information Map, xvi online help, xvi drill-down reports, 8-2
templates, 5-4 5-6 e-mail. See notifications example code for integration, 8-19 exceptions, Java, 1-4 execapi.bat, A-4 ExecuteBQYDocument.java sample, 4-14 ExecuteBQYJob.java sample, 4-14 ExecuteSQRJob.java sample, 4-15 ExpirationDate.java sample, 4-15 extended services aggregating parameters, 9-6 configuration file, 9-2 configuring, 9-2 displaying output on Personal Pages, 9-7 local resource management by, 9-6 session token used by, 9-6 URLs for, 9-3, 9-6 ExternallyTriggered Event Interface, 2-5
F
FetchCategory.java sample, 4-15 FetchDocument.java sample, 4-16 file size, templates, 5-5 folders listing contents, 8-10 listing folders and subfolders, 8-10 framesets in HTML files, 8-10
G
Group Control Statement, 3-5 Group Interface, 2-5
H E
editing templates, 5-14 education services, xviii elements home page access to Hyperion Performance Suite, 8-18 8-22 HTML editors, for templates, 5-4 Hyperion Consulting Services, xviii Hyperion Download Center
Index
accessing documents, xvi Hyperion Education Services, xviii Hyperion Performance Suite connection, validating, A-2 Hyperion product information, xviii Hyperion Solutions Web Site accessing documents, xvi Hyperion support, xviii Hyperion Technical Support, xix
I
images in e-mail notifications, 7-11 where stored, 8-19 .imp files, 5-4 importing template contents, 5-4 importing the SDK package, 1-2 INPUT parameters in SmartCuts, 8-9 8-10 installation directory, 8-21 installation, installed servlets, 9-7 installing Hyperion Performance Suite SDK, A-2 installing the Java Compiler, A-4 InstancePermission Interface, 2-5 integrating intranets or web with, 8-18 Interfaces, 2-2 intranet access to Hyperion Performance Suite, 8-18 8-22 invoking Hyperion Performance Suite Services, 1-3
J
Java compiler, installing, A-4 Java exceptions, 1-4 JavaScript, servlet templates, listed, 5-6 job execution, run SmartCut, 8-8 Job Interface, 2-6 JobOutput Interface, 2-6 JobParameter Class, 2-11
jobs executing, 8-8 run URL SmartCut, 8-8 JSP, 6-4 JSP Directory, 6-2 JSP Pages Access Control Widget, 6-11 Actions, 6-27 Advanced Login Page, 6-6 Advanced Options Widget, 6-10 BQY Jobs, 6-24 Browse Listing Page, 6-6 Create Externally Triggered Event Page, 6-20 Create Recurring Event Page, 6-18 Creating Events, 6-14 Cycles, 6-24 Days To Run, 6-19 Define Cycle Widget, 6-25 General Properties Page, 6-22 General Widget, 6-9 Generic Jobs, 6-28 Login Page, 6-5 Manage Events Page, 6-17 Manage Jobs Page, 6-16 Modify BQY Document Properties Page, 6-14 Modify File Properties Page, 6-9 Notification Page, 6-29 OCE File Widgets, 6-13 Scheduling Information Page, 6-22 Select Job Parameters, 6-23 Set Values, 6-26 Set Values Page, 6-24 SQR Jobs, 6-28 Time To Run, 6-19 Version Widget, 6-12 Viewing Documents, 6-4 When to Run Page, 6-29
Index
K
kiosk example code, 8-19 kiosk-like access, 8-18 8-22
O
ObjectDump.java sample, 4-18 ObjectDumpById.java sample, 4-18 ObjectID Interface, 2-6 ObjectType Class Interface, 2-12 Obtaining a Session Interface, 1-3 OCE Control Statement, 3-9 OCEDocument Interface, 2-7
L
linking extranet, 8-18 8-22 with SmartCuts, 8-2 list URL, 8-10 listAll URL, 8-11 ListEvents.java sample, 4-16 ListGroups.java sample, 4-16 listIndex URL, 8-10 listNav URL, 8-10 ListUsers.java sample, 4-17 Logger Class, 2-11 Login.java sample, 4-17 looping elements, in template elements, 5-6
P
ParameterList Interface, 2-7 parent folders, 8-10 pass variable, 8-2 8-3 PhysicalResource Interface, 2-7 prerequisites for using this guide, xi PublishEvent.java sample, 4-18 PublishOutputDirectory.java sample, 4-19 PublishPrinterResource.java sample, 4-19
M
memory, templates and, 5-6 Modifying, 6-8
Q
Query Interface, 2-8 QueryGroup.java sample, 4-19 QueryUser.java sample, 4-20 QueryVector Interface, 2-8
N
NestedGroups.java sample, 4-17 notification.properties file, 7-7 notifications e-mail customizing, 7-2 images in, 7-11 notification.properties file, 7-7 properties in Administration module, 7-2 templates for, 7-3 templates replacement tokens, 7-4 types of, 7-2
R
RecurringTimeEvent Interface, 2-8 ReplaceObject.java sample, 4-20 report surfing, 8-2 ReportMartEntity Interface, 2-9 ReportMartException Class, 2-13 reports. See jobs, SQR jobs Respository Interface, 2-9 run URL, 8-8
S
Sample, 4-1
Index
Samples, 4-4 AddBQYDocument, 4-5 AddBQYJob, 4-5 AddCategory, 4-5 AddDocument, 4-6 AddExternalLink., 4-7 AddFavorites, 4-7 AddGroup, 4-7 AddLink, 4-8 AddObjectType, 4-8 AddOCEDocument, 4-8 AddRole, 4-9 AddSPF, 4-9 AddSubscription, 4-10 AddUser, 4-10 AddVersions, 4-11 AutoZip, 4-11 BatchDriver, 4-12 CategoryDelete, 4-12 ExecuteBQYDocument, 4-14 ExecuteBQYJob, 4-14 ExecuteSQRJob, 4-15 ExpirationDate, 4-15 FetchCategory, 4-15 FetchDocument, 4-16 ListEvents, 4-16 ListGroups, 4-16 ListUsers, 4-17 Login, 4-17 NestedGroups, 4-17 ObjectDump, 4-18 ObjectDumpById, 4-18 PublishEvent, 4-18 PublishOutputDirectory, 4-19 PublishPrinterResource, 4-19 QueryGroup, 4-19 QueryUser, 4-20 ReplaceObject, 4-20 SQRParms, 4-20
table listing all, 4-4 ScheduledTask Interface, 2-9 Scheduler Interface, 2-10 Scheduling, 6-20 SDK importing the package, 1-2 installing Hyperion Performance Suite, A-2 steps to deploy, 1-2 server variable, 8-2 8-3 services.properties file, 9-2 Servlet Configurator, disabling template caching, 5-2 servlets customizing templates, 5-2 and memory, 5-6 templates elements of, 5-4 5-6 importing contents, 5-4 Session Interface, 2-10 session interface, obtaining, 1-3 session management API, 9-6 session token. See extended services SessionFactory Class, 2-13 SmartCuts See also URLs accessing the system from web applications, 8-18 8-22 list, 8-10 listAll, 8-11 listIndex, 8-10 listNav, 8-10 run, 8-8 uses for, 8-2 variables for BQY documents and jobs, 8-12 SPFSet Interface, 2-10 SQR jobs retrieving output, 8-5 8-7 SQRJob Interface, 2-10 SQRJobOutput Interface, 2-11 SQRParms.java sample, 4-20
Index
V
validating the Hyperion Performance Suite connection, A-2
T
technical support, xix templates caching of, disabling, 5-2 customizing, 5-2 5-6 editing, 5-14 elements of, 5-4 5-6 for e-mail notification, 7-2 end tags, 5-5 HTML templates in servlets, 5-2 importing contents, 5-4 JavaScript, 5-6 listed, 5-6 modifying, 5-4 start tags, 5-5 start-end tags, 5-5 testing, 5-3 5-4 testing modified templates, 5-4 templates, 5-3 to compile sample programs, A-5 troubleshooting memory consumption, 5-6
W
web, integrating the system with, 8-18 wsmedia/personalize directory, 8-19
U
UnknownReportMartException Class, 2-13 URLs See also SmartCuts case-sensitivity, 8-2 SmartCuts, 8-2 User Control Statement, 3-7 User Interface, 2-11 user variable, 8-2 8-3 UserValidationException Class, 2-14
Index