Sunteți pe pagina 1din 217

in?

MICROSTRATEGYUNIVERSITY

CUSTOMIZATION
ESSENTIALS
20002013 MicroStrategy Incorporated. All rights reserved.

This Course (course and course materials) and any Software are provided as is
and without express orlimited warrantyofanykindby eitherMicroStrategy
Incorporated (MicroStrategy) or anyone who has been involved in the
not
particular
Course
you
creation,
limited
(andnot
andSoftwareis
production,
purpose.The
to,the
MicroStrategyor
impliedwarranties
orwithyou.Shouldthe
entire
distribution
risk
anyoneelse
astothe
ofofthe orSoftware,
merchantabilityand
whohas
Course
qualityand
CourseorbeenSoftware
performance
involved
fitness
including,
prove
with
for
ofdefective,
the
the
a but

creation, production, ordistribution oftheCourse or Software) assume the


In
entire
no eventwill
cost ofallMicroStrategyor
necessary servicing,repair,
any other person
orcorrection.
involved with the creation,

production, or distribution of the Course or Software be liable to youon account


of
incidental,consequential,
anyany
damages
claim for
assessed
damage,
against
includinganylost
orexemplary
orpaid bydamages,
youtoany
profits,lost
including
thirdparty,
savings,
butnot to
arisingfromthe
or other
limited
special,

use, inability to use, quality, or performance ofsuch Course and Software, even
if MicroStrategy or any such other person or entity has been advised of the
possibility
MicroStrategyorany
distributionofofsuch
the damages,
Course
otherpersoninvolved
andSoftware
orfortheclaim
shallnot
inthe
by anyother
be
creation,
liableparty.
for
production,or
anyclaim
Inaddition,
by you

use,
contribution,
or
performanceofsuch
warranty,
any otherparty
negligence,
thefailure
forCourseandSoftware,
strictliability
damagesarising
of any remedyto
forthe
fromthe
achieveitsessential
basedupon
negligenceinability
of
principlesof
indemnity
touse,or
purpose,
contract
quality,
or or

otherwise.

The
such
MicroStrategy.MicroStrategy
to the
Courseandthe
revision.
Courseorthe
Copying,
Software
Software
duplicating,
arecopyrighted
without
reservesthe
selling,
obligation
rightto
orand
otherwise
tonotify
all
makeperiodic
rightsare
distributing
any person
reserved
modifications
or
anyentityof
bypart of

the Course or Software without priorwritten consentof an authorized


representativeofMicroStrategy
U.S.
that
Software
theCourseand
Government
weredeveloped
Restricted
at private
Rights.
areprohibited.
expense,
It is acknowledged
thatnopartthat
is public
the Courseand
domain, and

Software are Commercial Computer Software and/or


Commmercial Computer Software Documentation provided with RESTRICTED
RIGHTS underFederal Acquisition Regulations andagency supplements to
them. Use, duplication, or disclosure by the U.S. Government is subject to
restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical
Data and Computer Software clause at DFAR 252.227-7013 et. seq. or
subparagraphs
Towers
Rights atFAR52.227-19,
Crescent(c)(1)
Plaza,Tysons
and(2)ofthe
as applicable.
Corner,
CommercialComputer
Virginia22182.
TheContractoris Rights
MicroStrategy,
SoftwareRestricted
are reserved
1850

under
of the Software.
copyright
Trademark lawsoftheUnited States with respect to unpublished portions
Information

MicroStrategy, MicroStrategy 6, MicroStrategy 7, MicroStrategy 7i,


MicroStrategy 7i Evaluation Edition, MicroStrategy 7i Olap Services,
MicroStrategy 8, MicroStrategy 9, MicroStrategy Distribution Services,
MicroStrategyMultiSource Option, MicroStrategy Command Manager,
MicroStrategy Enterprise Manager, MicroStrategy Object Manager,
MicroStrategy Reporting Suite, MicroStrategy Power User, MicroStrategy
Analyst, MicroStrategy Consumer, MicroStrategy EmailDelivery, MicroStrategy
BI Author,MicroStrategy BIModeler, MicroStrategy Evaluation Edition,
MicroStrategyWeb
MicroStrategyTelecaster,
MicroStrategyOLAP
Adapter,MicroStrategy
MicroStrategy
MicroStrategyBIDeveloper
Broadcaster,
IntelligencePlatform,
Applications,MicroStrategy
MicroStrategyAdministrator,
MicroStrategyDesktop
eCRM
Executive,
7,MicroStrategy
MicroStrategy
MicroStrategy
IntelligenceServerUniversal
BusinessAnalyzer,
Provider,
MicroStrategy
Analyst,MicroStrategy
Education,
NarrowcastServer,
Infocenter,
MicroStrategy
Broadcaster
Kit,MicroStrategy
Customer
MicroStrategy
MicroStrategy
MicroStrategy
Consulting,
MicroStrategy
Analyzer,
MicroStrategy
Server,
Transactor,
MicroStrategyObjects,
Edition,
Agent,
SDK,MicroStrategy
DesktopDesigner,
BroadcastServer,
MicroStrategyBusiness
MicroStrategyDesktop,
MicroStrategyCRM
eTrainer,MicroStrategy
MicroStrategyArchitect,
Intelligence
MicroStrategyMDX
MicroStrategy
World, Application
Server,
MicroStrategy
MicroStrategy
Support,
Web,

Developmentand
CentralizedApplication
Through
Business,EveryPhone,
Personalized
Sophisticated
Intelligence
Intelligence
Management,
Analysis,BestInBusiness
ToEvery
Portal,
InformationLike
Query
DecisionMaker,
Tone,Rapid
Water,Intelligence
Intelligence,
IntelligentE-
Application

E-Business,The
Enterprise,ThePlatform
Intelligence
Development, Platform
MicroStrategyIntelligent
IntegratedBusiness
BuiltForThe
ForIntelligent
Internet,Office
IntelligencePlatform
Cubes,The
E-Business,Intelligence,
FoundationFor
TheScalable
BuiltForThe
MicroStrategy
Business
Intelligent
Office, MicroStrategy Report Services, MicroStrategy Web MMT, MicroStrategy
Web Services, Pixel Perfect, Pixel-Perfect, MicroStrategy Mobile, MicroStrategy
Integrity Manager and MicroStrategy Data Mining Services are all registered
companieswithwhich
All
trademarksor
othercompany
trademarksof
andproduct
theyareassociated.
MicroStrategy
namesmaybetrademarks
Specificationssubject
Incorporated. of therespective
tochange

without notice. MicroStrategy is not responsible for errors or omissions.


MicroStrategy makes no warranties or commitments concerning the availability
of future products or versions that may be planned or under development.

Patent
This productis
Information
patented.One or moreofthe following patents mayapply to the

product sold herein: U.S. Patent Nos. 6,154,766, 6,173,310, 6,260,050,


6,263,051, 6,269,393, 6,279,033, 6,567,796, 6,587,547, 6,606,596, 6,658,093,
6,658,432, 6,662,195, 6,671,715, 6,691,100, 6,694,316, 6,697,808, 6,704,723,
6,741,980, 6,765,997,6,768,788, 6,772,137, 6,788,768, 6,798,867, 6,801,910,
6,820,073, 6,829,334, 6,836,537, 6,850,603, 6,859,798, 6,873,693, 6,885,734,
6,940,953, 6,964,012, 6,977,992, 6,996,568, 6,996,569, 7,003,512, 7,010,518,
7,302,639,7,324,942,
7,428,302,7,430,562,
7,574,376,
7,881,443,
7,181,417,
7,016,480,7,194,457,
7,617,201,
7,925,616,
7,020,251,7,197,461,7,228,303,
7,725,811,
7,945,584,
7,039,165,
7,330,847,
7,440,898,
7,801,967,
7,970,782,
7,082,422,
7,340,040,
7,486,780,
7,260,577,
7,836,178,7,861,161,
8,005,870,
7,113,993,
7,356,758,
7,509,671,7,516,181,
7,266,181,
7,127,403,
8,051,168,
7,356,840,
7,861,253,
7,272,212,
7,174,349,
7,559,048,
8,051,369,
7,415,438,

8,094,788,8,130,918,
applicationsarepending.
8,296,287,
How8,321,411and
toContact Us
8,452,755. Otherpatent
MicroStrategy Education MicroStrategy Incorporated
Services 1850 Towers Crescent Plaza
1850 Towers Crescent Plaza Vienna, VA 22182
Phone:
Vienna,VA22182
877.232.7168 Phone: 703.848.8600
Fax: 703.848.8610
Fax: 703.848.8602 E
Email: education@microstrategy.com mail: info@microstrategy.com
http://www.microstrategy.com/education http://www.microstrategy.com
PREFACE

Course Description
This two-day course is for individuals who are tasked with making basic
customizations of their MicroStrategy Web application using the MicroStrategy
Web Software Development Kit (SDK). The class combines lecture and hands-
on exercises,conducted intheWindowsenvironment using MicroStrategy Web
Universal.Exercises involvebasiccustomizationsusing configuration files,
including logo placement, page layout design, and Web beans placement in a
page. The exercises also cover how to create custom styles to modify report
Who Should Take this Course
display
This
MicroStrategyWebarchitecture,
essential
MicroStrategy
courseis
onconfiguration
a MicroStrategy
designed
WebInterface Web
files,andthe
for:Web page.
Designers
MicroStrategy
Studentswillbe
CustomizationDeveloper
Editor,
exposedWebbeans,
Library.
to the

Project Managers

Web Application Developers

Consultants

Partners with an application development focus


Course Prerequisites
Before startingthiscourse, youshouldknow:

MicroStrategy Desktop: Reporting Essentials

Basic programming skills forWeb including good knowledge of HTML

Basic knowledgeofXML andHTML ishelpfulbut notrequired

Course Objectives
After completing this course, you will be able to:

Describe the benefits of MicroStrategy Web and list the main components of
the MicroStrategy Web SDK.

Describe the structure ofMicroStrategyWeb, page execution flow, and the


plug-in architecture.

Describe how to deploy and use the Web Customization Editor.

Describe
customizethe
pagesinMicroStrategy
components ofa MicroStrategyWebpage
Web. andhow to

Understand the purpose ofbeans. Describebean properties and how to add


and remove beans.

Describe MicroStrategy Webs service-oriented architecture and use the


Task Administrator.

Customize the data presentation, transforms, styles, and layout definitions


of MicroStrategy Web.

Explain the benefits of Cascading Style Sheets, describe the types of CSS
files used in MicroStrategy Web, and perform CSS customizations.
About the Course Materials
ContentDescriptionsLearning
Objectives
Lessons
Opportunities for Practice
Typographical Standards

This course is organized into lessons. Each lesson focuses on major concepts
and skills that helpyoutobetter understand MicroStrategy products and use
them to implementMicroStrategy projects.

Content Descriptions
Each major section ofthis course beginswitha Description heading. The
Description introduces you to the content contained in that section.

LearningObjectives
for
should
Learning
youatthefollowing
obtain
objectives
by successfully
enableyou
threelevels:
completing
to focus onthis
thecourse.
key knowledge
Objectives
andare
skillsyou
provided

CourseYou will achieve these overall objectives by successfully


completing all the lessons in this course. The Course Objectives heading in
this Preface contains the list of course objectives.

LessonYouwill achievethesemainobjectives by successfully completing


all thetopicsinthe lesson. Youcanfindthe primary lesson objectives
directly under the Lesson Objectives heading at the beginning of each
lesson.TopicYou will achievethissecondary objective by successfully
Main
completing the main topic. The topic objective is stated at the beginning of
the topic text. You can find a list of all the topic objectives in each lesson
under the Lesson Objectives heading at the beginning of each lesson.

Lessons
Each lesson sequentially presents concepts and guides you with step-by-step
procedures. Illustrations, screen examples, bulleted text, notes, and definition
tables helpyoutoachieve the learning objectives.

Opportunities forPractice
This version of this course manual excludes hands-on exercises. If you are
interested in taking the complete course, please contact MicroStrategy
Education at education@microstrategy.com.

Typographical Standards
of
Thenotes
followingsections
thatyou see inexplain
this course.
the fontstyle changes, icons, and differenttypes

Actions

Referencestoscreenelementsand keysthatarethefocus of actions are in bold


Arial fontstyle.Thefollowingexample shows this style:

Click Select Warehouse.


Code

References to code, formulas, or calculations within paragraphs are formatted


in regular Courier.New font style. The following example shows this style:

Sum(sales)/number of months

Data Entry

References to literal data you must type in an exercise or procedure are in bold
Arial typeface. References to data you type in that could vary from user to user
or system to system is in bold italic Arial font style. The following example
shows this style:

Type copy c:\filename d:\foldername\filename.

Keyboard Keys

References to a keyboard key or shortcut keys are in uppercase letters in bold


Arial font style. The followingexample showsthisstyle:

Press CTRL+B.

New Terms

New arefirst
they termstonote
encountered
are in regularitalic
inthe coursefont
material.
style. Theseterms
The following
are
example
definedshows
when

this style:

The aggregation levelisthe level of calculation for the metric.

Notes and Warnings


A note icon indicates helpful information.

A warning icon calls your attention to very important information that you
should readbefore continuingthe course.
Other MicroStrategy Courses
CoreCoursesAdvanced
Courses

Core Courses
Implementing MicroStrategy: Development and Deployment

MicroStrategy Web Essentials

MicroStrategy WebforReporters and Analysts

MicroStrategy Web for Professionals

MicroStrategy Visual Insight Essentials

MicroStrategyReport Services: Dynamic Dashboards

MicroStrategyMobilefor App Developers

MicroStrategy Architect: Project Design Essentials

MicroStrategy Desktop: Reporting Essentials

MicroStrategy Desktop: Advanced Reporting

MicroStrategyOfficeEssentials

Advanced Courses
MicroStrategyAdministration: Configurationand Security

MicroStrategy Administration: Application Management


MicroStrategy Engine Essentials

MicroStrategy Architect: Advanced Project Design

MicroStrategy Advanced Data Warehousing

MicroStrategyDataMining andAdvanced Analytics

Deploying MicroStrategy HighPerformance BI

MicroStrategy Desktop: Advanced Reporting Case Studies

MicroStrategy Freeform SQL Essentials

MicroStrategy Transaction Servicesfor Mobile Appand Dashboard


Developers

MicroStrategy Web SDK: Customization Essentials

MicroStrategyWebSDK: Customizing Security

MicroStrategyWebSDK: PortalIntegration

All courses are subject to change. Please visit the MicroStrategy website
for the latest education offerings.
1
INTRODUCTION TO
MICROSTRATEGY WEB AND
SDK

Lesson Description

This lesson introduces you to MicroStrategy Web and MicroStrategy SDK. It


describes the benefits of MicroStrategy Web and lists the main components of
the SDK. The lesson then describes the main MicroStrategy Web SDK
customization tools and concludes with an explanation of the MicroStrategy
Developer Library (MSDL).
Lesson Objectives

After completingthis lesson,youwillbeableto:

Describe the benefits of MicroStrategy Web and list the main components of the
MicroStrategy Web SDK.

AfterListanddescribethe
completing the topics
benefits
in thisof
lesson, youwillbe able to:

MicroStrategy Web.

Understand the main components and general use of the MicroStrategy


SDK.

List and describe the main MicroStrategy Web SDK customization tools.

List and describe the major sections of the MSDL. Describe the
MicroStrategy Developer Zone.
Benefits of MicroStrategy Web
MicroStrategyWeb
Simplified Customization
Overview

Application Independence
Plugin Architecture
Easy
XML
Web Knowledgenot
Customization
UpgradeofCustomizations
Editor
Required

Web ServicesReady
Integration with Salesforce.com

Quick Integration with Portals


PortlettoPortlet (P2P)Communication
Integration with Identity ManagementApplications

After completing thistopic, you willbeableto:

List and describe the benefitsof MicroStrategy Web.

MicroStrategy Web Overview


MicroStrategy Web is composed of a multilayered architecture that clearly
separates functionalityfrom presentation. The MicroStrategyWeb architecture
has the following features:

Simplified customization

Application independence

Plug-inarchitecture

Web Customization Editor

Easyupgrade
No XML knowledgeis
ofcustomizations
required
.NET or J2EE development architectures

Web services-ready

Integration with Salesforce.com

Quick integration withportals

Portlet-to-portlet(P2P) communication

Integration with identity management applications

Simplified Customization
MicroStrategy Web has an object-oriented, layered architecture that simplifies
the customization process. The presentation layer is separate from the business
logic, and the page navigation and layout specification reside in a single
configuration file. This structure simplifies the task of customizing the interface
without causinganyimpact tootherobjectsandfunctions. Most customization
tasks involvemerelymodifying thevaluesofparameters in configuration files,
without doing any programming.

Application
The
componentization
codeMicroStrategy Independence
modification required
and
Webapplication
architecture
for agivenchange,
independence.
was built inline
Thisreduces
withthe themes
theamountof
of

since you only need to


concentrate on the necessary componentrather than work with numerous files.
All the pieces of MicroStrategy Web are structured as components with highly
specialized functionality that is exposed through object interfaces. The
components are application-independent so that they can be reused as building
blocks for customized functionality.
Plugin Architecture
MicroStrategyWeb has aplug-inarchitecture that involves plugging your
customizationchanges asapieceofsoftware, called a plug-in, into
MicroStrategy Web. Due to the plug-in architecture, no compilation or
modification of the source code is required for deploying the customization
Web Customization Editor
changes.

MicroStrategy Web contains a tool called Web Customization Editor, which is


an Eclipse READY product that easily integrates into the Eclipse IDE. It helps
perform customization tasks in MicroStrategy Web, eliminating the need to
manually modify defaultconfigurationfiles (such asthepage configuration and
the stylecatalog configurationfiles,orpresentation filessuch as JSP or
ASP.NET files).

Easy Upgrade of Customizations


simplifiesthe
The plug-in and
customization
application-independent architecture ofMicroStrategy Web
upgrade process. Most customization tasks involve
merely modifying the values of parameters in a few configuration files. In
addition, you can use the Customization Upgrade Wizard in the Web
Customization Editor to easily migrate these changes to future upgrades.

XML Knowledge not Required


In MicroStrategy Web, theWebObjects Layeris responsible for XML
knowledgeof
constructionand
XMLstructures
data representation.As
for usingthe
a result,you
XMLAPI. arenot required to havea
Web ServicesReady
Web services dependonXMLdatastructures.The entire MicroStrategy Web
functionalityis exposedandaccessibleviaXML. As a result, all MicroStrategy
Web functionality can easily be made available as a Web service. You do not
need to build sophisticated adapters or translators to expose reports and
Integrationwith Salesforce.com
functionality asWeb services.

It is possible to customize your Salesforce.com application so that you can view


MicroStrategy data (including dashboards, documents, and reports) from
within Salesforce.com. Please see the MSDL for instructions.

CustomizedSalesforce.com Application
Quick Integration with Portals
The architecture makesuseofJavaBeans thatyou can usetoembed
MicroStrategy reportswithinteractive drilling, pivoting, sorting, and
formatting capabilities into homegrown or third-party enterprise portals. For
example, ratherthanmaking low-level API calls, youcan simply embed a
MicroStrategy ReportBean that includes all the necessary properties,
triggers,andcallstomake
Formore
Integration
information,
course. thereport
refer tothe
fully
MicroStrategy
interactive withinthe
Web SDK:Portal
portalinterface.

PortlettoPortlet (P2P) Communication


MicroStrategy Web comes with several out-of-the-box MicroStrategy portlets.
These portlets can communicate with other MicroStrategy portlets without
requiring additional configuration.

Integration with Identity Management


Applications
You canenablesingle sign-on authenticationtoyour

secure MicroStrategy Web


application using third-party authenticating toolsIBM Tivoli Identity
Manager and CA SiteMinder Web Access Manager. You can enable this out-
of-the-box integration of MicroStrategy Web with identity management
applications without customizing the External Security Module.

Formoreinformation, refertothe MicroStrategy WebSDK:Customizing


Securitycourse.
MicroStrategy SDK
SDKOverviewSDKComponents

Why Use the MicroStrategy SDK?

After completing this topic,youwill be able to:

Understand the main components andgeneral useof the MicroStrategy SDK.

SDK Overview
The MicroStrategy SDK is a comprehensive Software Development Kit (SDK)
that enables you to easily integrate MicroStrategy platform functionality into
any application. It is a collection of programming tools, utilities,
documentation, and libraries of functions or classes that are designed to enable
users to customize, extend, and integrate MicroStrategy products within other
applications.

The MicroStrategy SDK provides access to the entire MicroStrategy platform


and
feature-filled
is made
MicroStrategyWeb
tools
accomplish
includes
upand
ofthefollowing
varioustools,samples,
business
rich documentation
SDKThe
individual
tohelp
Web
and you
intelligence-enabled
SDKs:
utilitiesrequiredfor
SDK
application.
understand
providesintuitive
TheMicroStrategy
keyconceptsand
buildinga
customization
robust,
SDK

knowledgeabout
customization tasks. It provides an in-depth technical
MicroStrategy Web and its customization.

you
Mobile
performtaskssuchas
SDKTheMobile SDK
installing
providesthe
the Mobile
infrastructure
SDK, customizing
and tools to help

Visualization
visualization,and
MicroStrategy SDKThe
Mobile,building
distributing
Visualization
AppleiPadoriPhone
a customapplication
SDK provides oracustom
APIs,applications.

tools, samples,
and documentation that enable you to build new widgets and visualizations,
import third-party widgets, and develop Rich Internet Applications (RIAs)
and specialized workflows such as writeback applications and special-
purpose
Web Services
dashboards.
SDKTheWeb Services SDK provides documentation

related to the development


applications.It introducesimportant
anddeployment of the Webservices-based
concepts related to Web services;
discusses MicroStrategy Web services and Web Services Development Kit.
Web
MicroStrategy
Services SDKalso
Web Services
providesinformation
API aboutcode samples, for
diagnosing
Intelligence
Intelligencecommon
Server
ServerAPIReference.
SDKIntelligence
problemsandtroubleshooting
Reference,
This reference
Server
andSDK
theavailable
providesa
tips.
consists comprehensive
ofthe
tools

other
list
applicationontopofthe
of COM-based
interfaces and
languages.
methods
MicroStrategy
available fordeveloping
platform inVisualBasic,
aclient-server
C++, or

Office SDKThe Office SDK consists of the Office API Reference. This
reference guidedescribes each interfaceandmethodincluded in the
NarrowcastServer
Narrowcast
programming
MicroStrategyOffice
ServerGuideand
examples
SDKThe
APIand
installed
provides
theSubscription
NarrowcastServerSDK
withMicroStrategy
codesamples to
Office.
supplementAPI
consistsofthe

Portal API-related
documentation.

SDK Components
The MicroStrategy SDK enables you to easilyadapt andintegrate MicroStrategy
functionality into your application and modifythe standard interface or
functionality. TheSDK consistsof thefollowing components:

Open API set

Documentation

Development tools
Packaging and embedding utilities

You can download the MicroStrategy SDK from


https://resource.microstrategy.com/msdz/.

Open API Set

The MicroStrategy platform contains a comprehensive set of APIs that provide


support for various development environments, such as Java, C++, VB, XML,
and standard Web and client-server technologies. The set of APIs includes:

COM-based client-server API

Web
XML-basedWebAPIwith
Services API supportfor Java/COM

Narrowcast Server API

Documentation

The SDK comes with a host of guides and references, such as Javadocs for the
APIs, to enable you to perform a variety of tasks on top of the MicroStrategy
platform. TheMSDLcontains avast amount of information for working with
MicroStrategy Web SDK and other MicroStrategy SDK products. The MSDL
contains details about the product architecture and object models, and it
provides code samples that are useful for building sophisticated and highly-
functional customized solutions.

Development
ready
The SDKcomes
utilitiesthatTools
withthe
reducesource
code creation
code,sample
and maintenance,
applications, andhelp
kits, and you
production-
build

and
customizedapplications.
WebServices Development
Development
Kit. tools include thePortalIntegration Kit
Packaging and Embedding Utilities

The MicroStrategy platforms robustnessand scalability makes it a desirable


componenttoembedin custom orpackagedapplications. The SDK provides
you the tools for packaging your application, including embedded (silent)
installation, projectmover for project maintenance and upgrades, and schema
Why
services Use the MicroStrategy
for upgradingthe SDK?
MicroStrategy metadata.

The MicroStrategy SDK provides various tools that you need both to customize
and extend MicroStrategy Web functionality and data, as well as to integrate it
in enterprise applications. MicroStrategy Web takes full advantage of Web
technologies and techniques, such asWeb2.0,AdobeFlash, AJAX,RIAs,
mashups,and composite applications. Thefollowingimage illustratesthe
functionality of the MicroStrategy SDK:

MicroStrategySDK
Customizing and extending MicroStrategy functionality and data
MicroStrategy SDK provides a Web Customization Editor that makes it easy
to customize the look and feel, workflow, and functionality of MicroStrategy
Web. The Web Customization Editor takes advantage of MicroStrategy
Webs plug-in architecture to simplify the process of customizing and
upgrading.

Integrating MicroStrategy functionality and data in enterprise


applicationsMicroStrategy SDK also provides a rich toolset to support
integrating MicroStrategy functionality and data inenterprise applications,
Web API
including
applications
ZerofootprintURL
makesbutnotlimited
integrating
a simple,
theintegrationThe
to:
straightforward
fullfunctionalityprocess.
MicroStrategy
of MicroStrategy Web
URLintoother

Supportforportal integration and customizationPortals enable


you todisplay aggregated content from diverse sources within a single
Web page. MicroStrategy Web provides out-of-the-box portlets for four
enterprise portal serversMicrosoft Office SharePoint, IBM
WebSphere, Oracle WebLogic, and SAP NetWeaveras well as an
open-source portlet that is JSR 168-compliant. You can use the
or
MicroStrategySDKto
portlets
Support
MicroStrategyportletsor
they canuseMicroStrategy
canuseallofthe
forsecurity integrationand
customize
MicroStrategy
to build
Webandextendanyofthe
yourowncustom
onlycustomizationMicroStrategy
Web
as a data
features
provider.
portlets.
andfunctionality,
out-of-the-box
Custom

to
Webintegrate
includesa
access
customizable
to MicroStrategy
External
BISecurityModulethat
datawithanexisting enables
securityyou

system and add any logic or securityrequirements that your


environment needs. The out-of-the-box MicroStrategy portlets support
security integration with anumber of authentication mechanisms,and
also leverage portal authentication.

Serviceorientedarchitecture (SOA)andTask InfrastructureThe


create
operation
provides
oriented
Task Infrastructure
anduse
architecture.A
asetof
thatis
yourown
pre-definedtasks
packaged
formsthe
taskin
custom
asabasis of MicroStrategy
Web-accessible
MicroStrategy
tasks.
and also makesit
Webisa
service.
easy
Web'sservice-
well-defined
MicroStrategy
foryouto

Visualization FrameworkThe Visualization Framework supports


integrated
compelling
Packaging
and
tightly-integrating
theyitbecomeavailable.
is
support
MicroStrategy
flexibleforWeb
visual 2.0 technology,
presentationsTheMicroStrategy
enoughtosupport
MicroStrategy
functionalityand
BIdatawith
new withits
visualization
dataAdobeFlex
focuson
inpowerfuland
SDK
technologiesas
provides
and AJAX,

presenting
information from diverse sources in a unified and collaborative way over a
functionality
AJAX,
Web browser.
MicroStrategy
inmanypowerfuland
Withitsbuilt-in
Web enables
supportfortechnologies
youtopresent
compellingvisual
yourpresentations,
BIdataand
likeAdobeFlex and

including
Rich Internet
thefollowing:
ApplicationsRich Internet Applications (RIAs) are

Web-based applications that have the features and functionality of


of
traditionaldesktop
anRIA: applications.The followingimage shows an example
RIA Sample

Composite applicationsComposite applications combine multiple


existing functions into a new application, often leveraging enterprise
and enterprise-ready sources of information, such as existing modules
or enterprise Web services. MicroStrategy BI data can be one of the
enterprise sources of information in a composite application. The
MicroStrategy Visualization Framework and the Task Infrastructure
support the use of MicroStrategy BI data as a data source in a composite
application. Composite applications enable rich collaboration across
functional boundaries, bridging existing line-of-business systems with
the people that use them and unlocking the value of back-end systems.
The following image illustrates a sample composite application:

Sample Composite Application


Product Analvsis Scorecard : "awn
O * * w ~.-_ M

__,.* 'u "-0 I... anon-sq an. Ice! I...


_,_ . - - - .t_ 4
_O* |

Q- a
.00
*4 oo- -

III

. h _

Ma ""00 -0 IIIOM
"no. ~00 III-n _
v'b

WMH-bhub.

(*wu-m'w Womb-00 on.

~_00 o 0
_o. -.m u.

C" - o~.~'o'-~.~
gm -
Qun ' H ."
no
.~_ war

0-0- ' u

.......
was

w b |
no. no. "0- 0|.
I\- 00. 00 Oi-
b-hw
Web SDK
WebSDK Overview
MSDL
Page Configuration File and References
Style Catalog Configuration File and Transform Parameters Reference
Complete API and Other Customization References
MicroStrategy Web SDK Sample Customizations

Afterand
List describethis
completing themain MicroStrategy
topic,you Web SDK customization
willbeableto:

tools.

Web SDK Overview


The Web SDK provides intuitive customization toolsand rich documentation to
help you understand key concepts and accomplish customization tasks. The
Web SDK lets you gain in-depth technical knowledge about MicroStrategy Web
products. It addresses the needs of developers who want to perform
customizations without concerning themselves with high-level conceptual
information.

The Web SDK contains details about the product architecture, object models,
code samples, step-by-step tutorials, and other information to help developers
build
The Thepageconfiguration
MSDL
WebSDK
sophisticated
customization
and highly-functional
tools includethe
customizedsolutions.
following:

file, MicroStrategy Web Page Reference, and


MicroStrategy Custom HTML tags reference

Style catalog
Complete APIand
configurationfile
othercustomization
andTransform
references
Parameters Reference
SDK kits, sample applications, and code samples

MSDL
The MSDL provides provides resources to understand and perform
customizations using the Web SDK. It includes sample customizations and
extensivedocumentation.

The MSDL is available through the MicroStrategy Developer Zone, which


youcan access throughthe MicroStrategy Support site.

Page Configuration File and References


The resources related to the page configuration andotherfiles provide
information to help you customize the navigation and layout within the
MicroStrategy Web product. The table below describes the tools and their
functions:

Tool Function

Page ThisXML
andlayoutfile
products. withintheMicroStrategy Web
helps you customizethenavigation
File
Configuration

Ribbons, Comprehensive list of all ribbons along with the


Toolbars, and toolbars and menus used by them
Menus Reference

Tasks Reference Comprehensive list of all published tasks

Custom Tags
MicroStrategy The Custom
that you use towork
HTML Tags
withreferencelists
MicroStrategythe
Webtags
Reference components.

Style Catalog Configuration File and Transform


Parameters Reference
customizethelook
presentationlayerisseparate
The stylecatalog configurationfile
andfeelofthe
fromthebusinesslogic,
MicroStrategyWebproducts.
andotherrelatedresources helpyou
Sincethe

these tools provide all the


information necessaryfor customizing theappearance and display. The
following table describes the tools and their functions:

Tool Catalog
Style
File
Configuration Function

customizethe
Thestyle catalog
look
configuration
andfeel ofthe
fileMicroStrategy
helpsyouto

Web products. The file stores the styles and


transforms for reports, folders, prompts, and so
on.

Transform The Transform Parameters Reference contains the


Parameters values for modifying the properties of styles and
Reference transforms.

Complete API and Other Customization


References
The API
with the Referenceprovides
summary information detailed
for theclassesand
information foralltheJava packagesalong
interfaces. The reference also
lists the class hierarchies for the Java packages.

The References section also provides additional references such as the Event
Handlers Reference, the Tasks Reference, and the Troubleshooting Reference
that provide all the information necessary for accomplishing customizations
quickly and easily. Similarly, the XML Schema Reference helps you accomplish
MicroStrategy
MicroStrategy XML. Web
advancedcustomizations, which may require theabilityto useand manipulate

SDK Sample Customizations


The SDK comes with many sample applications, code samples, and
customization scenarios which provide insight into different types of
customizations. You can deconstruct these samples to understand how they
scenarios
were created.Youcanalsoincorporate
inyourown customizations. the out-of-the-box samplesand

Sample
Customizing
customizations
the MicroStrategy
included withthe
Web, suchby
SDK demonstratethefollowing:
creating custom menus,

Customizing
toolbars,icons,and
page layout
pages.
and datarendering

Using and customizing tasks and events to control the behavior of


MicroStrategy Web.

Customizing security, such as providing single sign-on and integrating with


an identitymanagement application

Integrating with portals

Plug-ins forcustomizing events, transforms, styles, andsoforth.

Creating customvisualizations
Mashups andRIAs

For
referinformationabout
to the MSDL, theMicroStrategy
customizationWebSDK:Portal
scenarios notcovered inthis course,
Integration course,
and the MicroStrategy Web:Customizing Security course.
MicroStrategy Web SDK Tools
The MicroStrategyWebSDKincludestools:

Web Customization Editorenables you to create and manage plug-ins

The MicroStrategyFlex Visualization Builder Plug-inenables you to build


custom visualizations, create widgets, import third-party widgets.

Block Finderenables youto perform advancedprompt customization

The
MicroStrategy
Extended PropertiesEditorenables
metadataobjectsto achieveyoutoadd
newfunctionality.
custom informationto

This course will familiarize you with the Web Customization Editor. For
more information aboutother MicroStrategy Webtools, refertothe MSDL.
MSDL
Accessingthe MSDL
MSDLSections
MicroStrategy Developer Zone

After completing this topic,youwill be able to:

List and describe themajor sectionsofthe MSDL. Describe the MicroStrategy


Developer Zone.

Accessing the MSDL


The MSDL is the single source for your MicroStrategy Web/SDK documentation
needs. It helps you build a customized application by introducing you to the
MicroStrategy SDK. It contains a great deal of information about how
MicroStrategy Web works, how you can customize it, see its components, or use
any of the various MicroStrategy Web APIs.

To accesstheMSDL:

1 Navigate to https://resource.microstrategy.com/MSDZ

OR

Navigateto https://resource.microstrategy.com/support, click Developer


Resources, then click MSDZ.

2 On the MSDZ page, lick Click here to access SDK Documentation.

MSDL Sections
The MSDL is organized into the following main sections:

Introduction

What Can You Do with the MicroStrategy SDK?

Version Differences

Customizations Explorer

Web SDK

Mobile SDK

Visualization SDK

Web Services SDK

Intelligence Server SDK

Office SDK

Narrowcast Server SDK

Resources

Introduction

This section introduces the MSDL.

What Can You Do with the MicroStrategy SDK?

The section discusses the tools and functionality available in MicroStrategy SDK
to customize and extend MicroStrategy Web functionality and data, as well as to
integrate itinenterprise applications.
Version Differences

This section summarizes thechanges made to MicroStrategy SDK from one


version tothenext.

Customizations Explorer

The Customizations Explorer is an easy-to-use, intuitive aid for locating any


customization within the MSDL. It helps you find a customization scenario
across all the product SDKs. This includes all customization scenarios such as
report manipulations,portal integrations,and visualization samples. You can
find customization scenarios by MicroStrategy Web page, feature or
functionality, visualization sample, or using the Search button.

customization
UsingtheCustomizations
scenario or Explorer
visualization
isaquick
sample.
wayto find any

Web SDK

This section covers the architectureofMicroStrategy Web, page execution flow,


and other key concepts.

Mobile SDK

This section covers the infrastructure and tools to help you perform tasks such
as installing the Mobile SDK, customizing MicroStrategy Mobile, building a
custom
applications.
applicationor a custom visualization,and distributingiPhoneor iPad

Visualization SDK
This section covers the APIs, tools, samples, and documentation related to
widgets and visualizations.

Web Services SDK

This section provides information for developing and deploying Web services-
based applications.

Intelligence Server SDK

This section provides a link to the API Reference. This reference provides a
comprehensive list of interfaces and methods available for developing a client-
server application on top of the MicroStrategy platform in VB, C++, or other
COM-based language.

Office
This SDK
section providesalink to the Office API Reference.

Narrowcast Server SDK

This section provides information about the Narrowcast Server SDK


documentation.

Resources

This section provides links to other MicroStrategy resources relevant for


developers,suchas MicroStrategy services, support, and education.
MicroStrategy Developer Zone
The MicroStrategyDeveloperZone containstheMSDL, additional
documentation,andalinktodownload theMicroStrategy SDK.To access the
MicroStrategy Developer Zone, go to
https://resource.microstrategy.com/support, click Developer Resources, then
click MSDZ.
Lesson Summary
It iseasytocreate MicroStrategyWebcustomizations that are modular and
easy to upgrade.

MicroStrategy Web enables you to easily integrate with portals and use it as
Web services.

MicroStrategy Webenables you to choose between the .NET and J2EE


development architectures, so that you can easily integrate with portals and
MicroStrategy
use it asWebservices.
SDKisa

comprehensive Software Development Kit that


enables you to easily integrate the MicroStrategy platform functionality into
any application.
MicroStrategy
extend MicroStrategy
SDK provides
Web functionality
allofthe tools that you need to customize and

and data, as well as to integrate it


with enterprise applications.

The
documentation
customization
Web SDK provides
tasks.
to help you
intuitive
understand
customization
key concepts
tools andaccomplish
andrich

The
documentation
MSDListhesingle
MicroStrategyDeveloper
needs. sourceZoneisaresource
foryour MicroStrategy WebSDK

that contains the latest


updates to the most recent version of the MSDL as well as other helpful
SDK tools.
2
MICROSTRATEGY WEB
ARCHITECTURE

Lesson Description

This lesson introduces you to the MicroStrategy Web architecture. You will
learn about the various architectural layers of MicroStrategy Web and the page
execution flow. The lesson also describes the plug-in architecture and its
advantages.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Describe the structure of MicroStrategy Web, page execution flow, and the plug-
in architecture.

AfterList
completing
anddescribethe
the topics in this lesson, youwillbe able to:

layers of the MicroStrategy Web architecture.

Understand the page execution flow and customizable components.

Describe theplug-in architecture and its advantages.


Layers of the MicroStrategy Web
Architecture.
OverviewoftheMicroStrategyWeb Layered Architecture
XMLAPILayer
Web Objects Layer
Web Beans Layer
Web Transforms Layer
Presentation
Application Objects
Layer Layer

After completing this topic, you will be able to:

List and describe thelayers ofthe MicroStrategy Web architecture.

Overview ofthe MicroStrategy Web Layered


Architecture
MicroStrategy Web has a layered architecture that is open and highly
customizable. All the pieces of MicroStrategy Web products are structured as
components with highly specialized functionality that is exposed through object
interfaces. Since the architecture is built on the themes of componentization
and application-independence, all objects can be reused as building blocks
forcustomizedapplications.
tasks, you may need to customize
Depending
only certainpartsofthearchitecture.
onthenatureofyourcustomization

The layers that make up the MicroStrategy Web application are:

XMLAPIlayer
WebBeanslayer
Web Objectslayer
Transformslayer
Application Objects layer

Presentation layer

The following image illustrates the MicroStrategy Web architecture:

MicroStrategy Web Architecture

XML API Layer


The XML API layer (also known as the Intelligence Server API layer) is the
base layer in the MicroStrategy Web architecture. This layer is responsible for
sending requests and retrieving responses from the Intelligence Server in the
form of XML strings. It manages all connections to the Intelligence Server.
To make a request to Intelligence Server from Web, a valid and well-formed
XML string must be passed to the MicroStrategy Web API for transmission to
Intelligence Server. Similarly, every response from Intelligence Server comes in
the form ofXML. ThisXML can beaccessedusing aJava object orJSP.

Web Objects Layer


The Web Objects layer is responsible for XML construction and data
representation. The primary goal of this layer is to give the SDK developer the
option towrite codewithout using MicroStrategy XML.

XML Construction

The WebObjects layer easesthe useofXML API bydelegatingthe construction


of all XML requests to the Web Objects. XML request strings need to be
constructed for operations such as pivoting, page-by, prompts, drilling, and
searching. The corresponding XML is constructed by manipulating the objects.

Data Representation

The Web
structure
These objectscan
Objects
andvalues
layermakesit
be ofthe
used alongwiththeXML
XMLas
easier
interconnected
toinspect
API.
XMLdata
objectswith
For example,
by representing
properties.
these objects
the

could be used to construct XML, and then save it or execute a request and
collect the response as an XML string. This set of objects provides a necessary
and critical separation between the XML structure and the application, which
enables the introduction of new XML forms without breaking the application
functionality.
Web Beans Layer
The WebBeans layerisalayer ofJavaBeans built on top of the Web Objects
layer. Webbeans (orsimply beans)represent high-level GUI components,
such as reports, folders, and prompts. They coordinate the appropriate objects
from the Web Objects layer to retrieve and structure XML data to fulfill user
requests. Theyare thus responsible for collecting theXMLfrom Intelligence
ApplicationIndependence
Transform
Server. After
layer
thedesired
toperform
XMLallHTML
has beenrendering.
captured,the dataistransferred tothe

While beans are the highest-level representation of MicroStrategy objects, they


remain application independent. That is, they have no knowledge of the
MicroStrategy Web application. This ensures that you can use beans in custom
applications without having to replicate MicroStrategy Web application data
structures.

JavaBeans

These objectsareJavaBeans and extendthe WebBean interface. Java Beans are


simply
to edit thebeansusing
classeswith specificnaming conventions. The conventionsmakeit easier
certain development environments.

MicroStrategy Web Beans are JavaBeans but not Enterprise JavaBeans


(EJBs). Unlike EJBs, the beans can only be instantiated inside the callers
Java Virtual Machine (JVM).

Web Beans and State

Many beans are stateful objects. Thatis a beans statewill change asauser
interacts with it, and these changes arestored inthebeanitself. Forexample,in
the case of a report, several key data structures are needed to retrieve the report
data from IntelligenceServerin aspecific state. The beansstate issaved on the
page by default in the form of a URL parameter or a hidden form field.

The beans ability to maintain its own state enables it to be application-


independent. Specifically, a beans state can be convertedintoastring
representation, and then later restored from that string. For example, in the
WebofBeansand
case
performing
a ReportBean, Events
resultingdisplayedreport
a manipulation
the beans
arethesame
like pivotingor
stateneeds
thoseofthe
sorting,
to be persisted
the
original
properties
so
report.
thatafter
ofthe

The WebBean interface extends the WebComponent interface, and all


WebComponent objects are capable of handling any number of events. An event
represents some action that can be performed or handled by a WebComponent.
For example, a ReportBean could handle an event for executing a report or
performinga pivot,while a FolderBeanwould maintain a browse event.

Web Transforms
convertingthedata
The objects intheWeb Layer
residentin
TransformsLayer,
abean intocalled
itsfinaloutput
transforms,
representation.This
are responsible for

is typically HTML, but may also include other formats, such as Wireless Markup
Language (WML), plain text, or binary data.

Examples of the customization tasks involving modifying objects within this


layer include:

Modifying the look and feel of a MicroStrategy report or folder

Transform
Modifying
The relationship
image
business
between
below:intelligence and abean isdepicted in the Bean-
transformsfunctionality

BeanTransform Relationship
Refer to the numbers in the Bean-Transform relationship image for the
explanation given below:

1 Beanresponsible for collecting XML from Intelligence Server using a


combination of Web Objects

2 Transform Objectoperates on standard Web Beans and other Web


3 MarkupOutput
Objects to generate
Objectcollects
theoutput presentation.
the output generated by a transform and

directs its content back to the Web browser

By default,MicroStrategyWeb generates this object automatically.

Transforms and Events

Transforms also use events. Generally, they use events to generate URL links
and forms.
later be used
Whenever
toperform auser action,it
atransform needstogeneratea
searches forthe
link
event
oraform thatwill
corresponding to
the desired action and obtains a set of required and optional arguments from
that event. It uses this information to construct a URL string or a form that
encapsulates the request. If no event is found, then the transform does not
generate any output for it. This prevents the transform from generating a
request that cannot be fulfilled by the Web page components.

Application Objects Layer


The objects in the Application Objects Layer encapsulate the MicroStrategy
Web-specific functionality. The layer includes the following types of data
structuresandinformation:

Application beans

Style
Page configuration
catalog configuration
file file

Preferences

Messages Bundle files

Application
Application Beans
beansare

JavaBeans that are used to encapsulate a particular piece


or set of functionality. They often correspond to toolbars or editors in the
application. UnlikeWeb beans, application beans do not represent
MicroStrategy objects managed by Intelligence Server and, therefore, do not
have an XML representation. Most application beans do not employ transforms.

The set of application beans includes:

ObjectBrowsercomponent

Toolbars (such as a Formula Bar or a Report Standard Toolbar)

Containers(such
Editors (such astheFilteror
asthe Report
DrillEditor)
FrameBeans thatcontain areport bean,
menus, toolbars and editors.)

Page Configuration File

The page configuration file is an XML file that stores the page navigation and
layout information. It also stores data that is shared across all the pages, such as
error messages andmenuitems.

Style Catalog Configuration File

In addition to the page configuration file, another XML file, style catalog
configuration file, hosts a collection of styles and transforms for manipulating
reports, folders, prompts and so on.

Preferences

User
preferences
andprojectpreferences
are anintegral partofa
areapplied
usersattheApplication
experience in MicroStrategy
Objects layer.These
Web

products. They are used to recordand remember user-specific and project-


specific options with respect to report display and application functionality. You
can also define server-level preferences (preferences that act as global defaults
for all projects on an Intelligence Server).

Messages Bundle Files

where
Web
products
The
English,
descriptor
MessagesBundle
languages.
eachofthese
every
infile.
a given
MicroStrategy
TheMessages
Eachfile
language.
files
files
corresponds
stores
consistofa
Web
Bundleisattheheart
Forexample,
a listofall
pagesstring
tonumber
oneofthe
stringsused
ifausers
of
isdrawn
localized
supportedMicroStrategy
oflanguagepreference
inMicroStrategy
fromtheEnglish
descriptorfiles,
Web
is

coordinating multiple
language support for MicroStrategy Web. The following image displays partial
contents of MessagesBundle_en_US. properties file:

MessagesBundle_en_US.properties File

You can use the Web CustomizationEditortoadd,edit, or remove strings from


the Messages Bundle files. Bydefault,theMessagesBundle files are located in
the \WEB-INF\classes\resources folderofthe application. For example, in the
case of MicroStrategy WebASP.NETversion, they arelocated inthe
C:\Program Files (x86)\MicroStrategy\Web ASPx\WEB-INF\
classes\resources folder. Similarly, in case of MicroStrategy WebUniversal, if
using Tomcat server, they are located in the
C:\tomcat\webapps\MicroStrategy\WEB-INF\ classes\resources folder.

Presentation
MicroStrategy LayerprovidesupportfortheJ2EEand .NET
Web products

technologies.Withthe separation ofthepresentationlayerfrom thebusiness


logic,
MicroStrategy
thearchitecturesupports
Webproducts arevirtually
built ona
anyplatform
singlecodeor
base
operating
that system.
can run on
Windows, UNIX, or Linux. The architecture shares feature parity, synchronized
enhancement schedules, and structural integrity across all operating systems.

The
differencesarehighlighted
J2EEand.NET architectures
inthissection.
differs only inthepresentation layer. These

for
architecturewiththe
Thethe
presentation
architecture
layer
with
.NET
isJ2EE
the
presentation
topmost
presentationlayer,
layer,and
layer. Thesepages
consists
orthe ASP.NET
of either the
files
JSP
forthe
files

contain HTML and


MicroStrategy Custom HTML tags. The pages primarily act to lay out the
contents of various Web components, such as shortcuts, toolbars, and menus.

Servlet orASP.NET FileController Combination

In the architecture with the J2EE presentationlayer, a servlet invokesthe


controller, whereas in the architecture with the .NET presentation layer, an
ASP.NET file (Main.aspx or Admin.aspx) invokes the controller. The controller
initializes and processes all incoming requests in MicroStrategy Web.

MicroStrategy Custom HTML Tags

MicroStrategyCustom HTML tags are a partofthe presentation layer. These


JSP/ASPfilesand
tags simplifyand minimizetheamount
are usedto dynamically
of codeyouneedto
generatethe HTML
placedirectly
output sentto
inthe

the MicroStrategy Web client. Most of the HTML functionality provided in the
pages is implemented using these Custom HTML tags. These tags appear in a
page with static HTML tags. This enables easier integration of MicroStrategy-
provided content with other forms of custom content.

Implementationin JavaEE andthe .NET Architecture

The
.NETcode
architectures
forthe Custom
exceptHTML
for thetags
inclusion
is almost
oftherunat="server"attribute
identicalin the J2EE and the

in the ASP.NETcode.The following example shows sample codesfor both


architectures that can be used for displaying a report on the Report Execution
page.

JSP
<web:displayGuiComponent
Code: name="report_area"

isContainer="true"/>

ASP.NET Code:
<web:displayGuiComponentrunat="server" name="report_area"
isContainer="true"/>

Additionally, in the .NET architecture, a .NET bridge is used to communicate


between anASP.NET client and the Java components. The underlying layers of
the MicroStrategyWebarchitecturearebuiltusing theJavatechnology. Thus, a
.NET bridgeisprovidedforcommunication between the .NET files in the
presentation layer and the Java components in the underlying layers. This
ensures that you do not need to perform any additional tasks to make use of the
multi-layeredarchitecture.
Page Execution Flow
PageExecution FlowandCustomizable Components

After completing this topic, you will be able to:

Understand the page execution flow and customizable components.

Page Execution Flow and Customizable


Components
When you plan and perform customizations, you need to understand what is
taking place at each step in the page execution flow, what types of
customizations are required (for example, whether you need to perform XML
configuration changes,JSP/ASP.NET programming, orJava programming),
and what type of information is available to help you to troubleshoot problems.
The overallpageexecutionflow in MicroStrategy Web products is controlled by
a single component,the controller, while the page itself acts primarily as a
container for the components (beans) that gather the data and display it to the
user.Page
Thepage
Execution
execution
Flowflowis thesame foreachpage.
The page execution flow consists of the following six steps:

Submit request

Create page

Process events

Collect data

Display data

Display page

A brief description of each step is provided below.

Submit Request

A user initiates thepageexecution by submitting arequest througha Web


browser. The user'srequestis in the form ofa valid URLthat can be accepted by
the corresponding Web server and interpreted by the application. The user's
request is generally triggered when the user clicks a link on a Web page, types a
Web address in the browser's address or URL field, or submits the values of an
HTML form.

Create
The
using Page
Select
MicroStrategyWebapplication
thefollowing
pageOn threesteps:
receiving and receives
acceptingand
theprocessestheuser
user's request, therequest
Web server

delegates therequest to the appropriate server-specific object. This object is


either a servlet, such as mstrWeb or mstrWebAdmin (in the J2EE
environment), or an ASP.NET page, such as Main.aspx or Admin.aspx (in
the .NET environment). This object, in turn, translates the request into
server-independent structures and delegates it to the controller,
MstrWebController. The controller identifies the target page, and retrieves
the page definitions and events that need to be processed.

Customizations performed at this step involve customizing the events that


are defined inthe application.They include making changes to an events
definition file, such as customEvents.xml.

Validate
by
retrieved,
the controlleror
sessionAfter
thesession
bya
is validated,ifnecessary.
third-party
the definitionof
application,suchasaportal
the target
The sessioncan
page hasbeen
bevalidated

or custom
application, using the External Security Module.

Customizations
session
Module. isvalidated.
performedatthisstep
This includes customizingthe
involve customizing
ExternalSecurity
the way the

Create beaninstancesThe applicationcreates aninstance ofand


initializes each bean that is defined for the target page in the page
configurationfile.Itsetsthe
persistence, the output format,
bean'sname
andthe eventhandler andspecifiesItthe
and context,forthebean. first

sets the initialization properties for the bean (normally, default values
defined bythe user), then tells the bean to restore its state, and finally sets
the request properties for the bean.

Customizations performed atthis step involve customizing the definition of


as
beans
pages
theapageconfiguration
menu
usedbythe
definedforeach
configurationfileora
application,
page.
file ortothe
The
in toolbarconfiguration
particular
customizations
additional
theuse
XML
involve
and
configuration
file.
properties
making changesto
files,such
of the

Process Events

After
event
modifies
the
specified
the
beans
state
in
have
theuser's
of the
beenbean
initialized,
request
and, ultimately,
triggers
thepageis
a different
theready
pagetohandle
setofactionsthat
output.Apage
events.
can
Each

handle one or more events,buteachevent is processed individually. The


sequence for handling multipleeventsvaries, depending on whetherthetarget
page remains the same or is changed.

Customizations performed at this step involve adding custom functionality and


actions. They include making changes to events, event handlers, or event maps.
Event maps enable you to pass arguments from one event to another. For
example, when you choose a document to edit on the folder browsing page, that
information is passed to the document editor page, which will then pass
CollectData
argumentsto beans suchasthose for displaying reports.

In this step, the data is collected from the Intelligence Server. You can apply
custom logic both before and after the collection of data. Accordingly, you may
have thefollowing threesteps at this stage:

Apply custom logic before collecting data

Collect data

Apply custom logicafter collecting data

Each
Applystep
custom
isdescribed in detail
logic before collecting
in the following
dataYou
sections.
can execute custom code

before the datais collected from Intelligence Server. The pre-data collection
logic is generally used to modify the amount of data collected from Intelligence
Server. For example, youcan usethe custom pre-data collection logic to limit
the display of datamart reports on a folder browsing page to only those users
who have the permission to access datamart reports.

Customizations performed at this step involve modifying the data collection


logic. These customizations involve creating custom add-ons (thatis, Java files
that contain custom logic) and adding them topage definitions inthe page
necessary
configuration
Collect
processed,
dataAfter
information
andany
file. specifieddata
allbeanshave
is retrievedcollection
from
been Intelligence
initialized,
logic hasthe
Server.
been
events
applied,the
havebeen

Apply custom logic after collecting dataYou can execute custom code after
the
logic
on
maythe
datahasbeencollected
want
isstatus
generally
to opena
ofthe
used
bean
promptafter
tomodifythestate
(suchasready,
fromIntelligence
ithas already
processing,
ofabean
Server.
beenororerror).
answered
The
perform
post-data
Forexample,
an
so thatit
actionbased
collection
canbe
you
displayed on a report, or you may want to add a report to the History List only if
the report was successfully executed.

Customizations
the datahas beenperformed
retrieved atthis
fromIntelligence
step involveServer.
modifying bean information after
These customizations
involve creating custom add-ons and adding them to page definitions in the
page configuration file.

You canapply
typeof logic differs
customdepending
logicboth
onbeforeor
thepointafterdatais
atwhichitiscollected,but
applied. the

Display Data

In this step, the data collected by the beans is rendered using the transforms.
The following steps are involved at this stage:

Select template

Arrangecontent

Transform beans

Select templateBased onthe informationin the page configuration file, the


controller (MSTRWebController) selects the name of the template file to which
execution willbe redirected.The servlet or ASP.NET page uses the name of this
file to display the final content.

One or more templates are defined for every page in the page configuration file,
with each template associated with a different page status. The MicroStrategy
Web applicationselects thetemplate to be used based on the current status of
the page and then forwards the execution to this template.

Customizations performedatthisstep involve customizingthe templates


defined forthetarget page.Customizationsinvolve creating custom template
page
files (JSPorASP.NET
inthe page configuration
pages) ormodifying
file. the templates definedforthe target

Arrange contentMicroStrategy Web pages are made up of discrete page


sections,such asheader andcontent. Pagesection files (JSPor ASP.NET pages)
control the arrangement of these discrete sections on the page that will be
displayed to the user. The Custom HTML tags are used in these page section
files to render the actual content that is displayed in each section.

Customizations
target
page. Customizations
page, thatperformed
is,theinvolve
arrangement
atthis
creating
step
andcontent
or
involve
modifying
modifyingthe
of the
custom
pagesections
page
content
section
ofthe
on the
files

(JSP or ASP.NET pages) that will provide the content for various parts of the
content.
target pageandusingthe
Customizations may
CustomHTML tags in thesethe
also involvemodifying filestorender
page sectionsthe
defined

typically
associated
for
Transform
defined
the target
bya
a layout
with
beansEachbean
style
pagein
a definition
transform,anoptional
fromthe
the page
style set of
fileconfigurationfile.
onthe
that
catalog
determines
target
configuration
page
transform
themore
isrendered
file.parameters,and
granular
Each
bystyle
atransform
arrangement
is

of the data rendered whenthe bean is transformed.

Customizations
when performedatthisstep involve modifying the HTML output
created beans on the target page are transformed. Customizations involve
one
creating
Transforms,transform
through
or moreof
astyle
customthe
definition.
transform
following
parameters,and
files,orcreating
actionsmaking
layout
customlayout
changesto
definitionfilesare
thestylecatalog
definition
associated
files. file,

is
Display
that
After
returned Page
isdisplayedtothe
the tothe
beans browserfor
have been
userisdetermined
transformedand
displaytothe user.
bythestyle
thecontentarranged,
The lookand
sheet thatis
feelofthe
thepage
applied.
page

Customizations performed at this step involve making changes, such as


modifying the font or typeface used on the page displayed to the user.
Customizations involve making changes to the Cascading Style Sheets (CSS)
used to render pages.
Plugin Architecture
PluginArchitecture andPluginsFolder
AdvantagesofPlugin Architecture
Plugins Merge Process

After completing thistopic, you willbeable to:

Describe the plug-in architecture andits advantages.

Plugin Architecture and Plugins Folder


MicroStrategy Web has a plug-in architecture. It provides a framework for
plugging in your customization changes as a piece of software, called a plug-in,
into MicroStrategy Web. Deploying the customization changes requires no
compilation or modification of the source code. The most important
requirement of the plug-in architecture is that all plug-ins should exist as
subfoldersinsidethe pluginsfolder.

All customizations are stored as plug-ins inside the plugins folder. Each plug-in
file
specific
ASP.NET
virtuallymergedinto
correspondstoasingle
JSP
is restarted.Based
or
orASP.NETfiles)
a tothe
combinationofseveral
files)thatcontain
customization
onthe
the
when
customization
appropriatefile
customization
code
the
changes.Aplug-in
files
application
specific
(such
taskand
requirements,
tothe
or
asfiles
serverhosting
configuration
storesonlythecode
customization.
subfolder
(suchas configuration
can
MicroStrategy
filesandJSPor
contain
Thiscodeis
thatis Web
a filesand
single
then

the Web Customization


Editor automatically creates appropriate plug-in subfolders inside the plugins
folder:

Plugins
For example, deploying the CreatingNewRibbonReport
to plug-in (included in the
SDK) adds a Publish menu and Publish toolbar Design Mode.

The MicroStrategy Web interface is itself a plug-in called_Interface.Removing


the plug-in will revert MicroStrategy Web to a previous versions look and feel.
Doing so will enable older plug-ins to retain their appearance.The_Interface
plug-in can be copied or used with other plug-ins, but the out-of-the-box
_Interface plug-in should never be modified.

Be
them
sure
laterifthey
toback upareneeded.
anyplug-ins you remove,sothatyoumayre-deploy

Advantages of Plugin
The plug-in architecture Architecture
offersthe following advantages:
1 Makes MicroStrategy Web more extensible and customizableDue to
the separation of the customization code changes from the default code,
plug-ins can be used to of
extend functionality of MicroStrategy Web without
2 Minimizes
MicroStrategy
the need to the
recompile.Youcanalso
Webwithout
impact upgradesThe
requiring
usethem
accesstothe
plug-in
toaddarchitecture
source
newfunctionality
code.minimizes
to

the impact of upgrades becauseno


MicroStrategyWeb.Since plug-ins files
are independent,the
are shared between
architecture
a plug-in and
is

designed to accommodate future additions of plug-ins without breaking the


source code. This lack of dependency ensures that every upgrade enables
3
4 Offers
functionalityintroduced
customization
Facilitates
also
you to
enables
viewyour
transparency
portability
youto
code
changes
customizations
take
changes
inofcustomizationsAfter
rather
advantageof
customization
inthat
from
thanviewingthem
upgrade.
inthe
thethenew
sourcecode,itis
new
codeDue
versionof
MicroStrategy
as
aplug-in
apart
toMicroStrategyWeb.
easytoview
theof
separation
Web
onelargefile.
only
ofthe
theIt

has been
successfully deployed using the Web Customization Editor, it can be easily
ported to an identical version of MicroStrategy Web on a different machine.
You simplyneed
MicroStrategy Webtoinserttheplug-in
installation. Theplug-in
intothepluginsfolder
architecture reduces
insidethe
the time

production
in moving your
environment.
customizations froma development environment toa

5 Simplifiesyoucan
sufficient, managing
deploy
theyour
customizationsSince
customization by simply
plug-insareself-
addingthe plug-in

to
folder.
plug-in
into
removea
theThus,
architectureis
pluginsfolder
customization,
youdo notneed
very
insidethe
powerful.
youonly
to manually
MicroStrategy
needto
modifyor
removetheplug-infrom
Webrecompile
installation.Similarly,
the files.The
that

MicroStrategyWeb
The structureofa plugins
folderstructure.
folderisthesameas thatof theuncustomized

Plugins Merge Process


A plug-in subfolder can contain a single file or a combination of several files
(such as configuration files and CSS, JSP or ASP.NET files) that contain code
specific to the customization. This code is then virtually merged into the
is
ASP.NET
MicroStrategy
appropriate
PluginsMerge
files)
predefined
Web
of thesamename
Process
restartedasshownin
fileor fileswhen
(suchas
the application
configuration
the following
server
image:
files hosting
and JSPor

MicroStrategy Web stores all changes toan original source XML file in what is
known as the delta file. MicroStrategy Web compares the files and combines the
changes to create the final custom XML or .properties file, that is then used by
the application. The following image shows the file comparison operation
involving the source pageConfig.xml and delta files:

File Comparison of Source and Delta Files


MicroStrategy Web does not create delta files for changes to JSP or ASP.NET. In
this case, the entire contents of the original, source JSP or ASP.NET file get
copied to the plug-in which contains custom content. Similarly, custom CSS
files are linked (not merged) at runtime with the original, source CSS files.
Lesson Summary
MicroStrategyWeb is composedofamulti-layered architecture that clearly
separates functionality fromthepresentation.

The XML API layer is the lowermost layer and is responsible for sending
requests
XML strings.
andretrieving responses fromIntelligence Serverintheformof

The Web Objects layer is built on top of the XML API layer and assumes
complete
The
layer.
WebBeans
Beans
responsibility
coordinate
layer is alayerof
forXML constructionanddata
JavaBeansbuilt on toprepresentation.
oftheWebObjects

the appropriate objects from the Web Objects layer


to retrieve and structure XML data to fulfill user requests.

Many beans are stateful objects.

The objects in the Web Transform layer, called transforms, are responsible
for converting the dataresident in a beaninto its finaloutput
representation.

Application Beans are JavaBeansthat areused to encapsulate a particular


piece or set of functionality.

The presentation layer is the topmost layer,and consists of JSP/ASP.NET


files, HTML, and MicroStrategy Custom HTML tags.

The key to
efficient way,istocustomize
achievingthe type of customization you want,in themost
the right MicroStrategy Web component.

The plug-in architecture requires all plug-ins to exist as subfolders inside


the pluginsfolder.
Each plug-in corresponds toasingle

customization task.

A plug-in
(such as configuration
subfoldercancontain
files andJSPorASP.NET
asingle file oracombination
files)that contain
of several
codefiles

specific to the customization.

The Web Customization Editor provides a single pointofentryfor


performing all customizations.
3
WEB CUSTOMIZATION EDITOR

Lesson Description

This lesson describes the Web Customization Editor and its advantages. The
lesson also describes the steps involved in deploying the editor as well as setting
preferences. Next, the lesson explains the Web Customization Editor views and
wizards, and the conflict log and search functionalities. The lesson concludes
with a list of best practices for customizations and upgrades.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Describe how to deploy and use the Web Customization Editor.

After completing thetopics in this lesson, you will be able to:

Describe the advantages ofthe Web Customization Editor and the steps
involved in deploying and using the editor.

Describe customization best practices andknow howto apply customization


changes.

Describe bestpractices forminimizing the impact of customizationsduring


upgrades.
Web Customization Editor
WebCustomization
Advantages oftheWebCustomizationEditor
EditorOverview

Deploying the Web Customization Editor


Web Customization Editor Preferences
Specifying
Web
Conflict
MicroStrategy
CustomizationEditor
Customization
Logthe Object
Menu
PluginFolder
Editor
Search
Views
Wizards

of
Describe the advantages
After completing this topic,youwillbe ableto:

the Web Customization Editor and the steps


involved in deploying and using the editor.

Web Customization Editor Overview


The Web Customization Editorisa tool developed to ease the task of
customization and upgrades.This editor has been designed to help you perform
customization tasks in MicroStrategy Web. This editor is an Eclipse READY
product that easily integrates into the Eclipse integrated development
environment (IDE). As a result, you can use the editor and the complete
functionality of the IDE to perform basic or advanced customization tasks. The
editor provides access to intuitive wizards that guide you through specific
customization objectives.Iteliminatestheneed tomanually modifydefault
configuration files, such as the page configuration or the style catalog
configuration file, or presentation files such as the JSP or ASP.NET files.

The followingimageshows the Web Customization Editor and illustrates its


role:

WebCustomization Editor
You should perform most customizations using the Web Customization Editor.
Since the Web Customization Editor leverages the benefits ofthe plug-in
architecture, it automatically creates plug-ins inside the plugins folder based on
your customization requirements. Each plug-in corresponds to a single
customization task.

Advantages of theWeb Customization Editor


The Web CustomizationEditor offersthefollowing advantages:

1 UsesthePlugin architectureSince the editor is built on top of


MicroStrategy Web's plug-in architecture, it leverages all the benefits
provided by the plug-in architecture. For example, you can extend the
functionality of MicroStrategy Web without having to recompile the source
code. Similarly, you can add new functionality without requiring access to
the sourcecode.

2 Enables you to use best practices and minimizes the impact of


upgradesThe editorsavesall customization changes inaseparate folder
(plug-in), which preventsthe changes from being overwrittenduring
upgrades. This ensures that every upgrade enables you to view your
customizations in the new version of MicroStrategy Web as well as take
advantage of the new MicroStrategy Web functionality introduced in that
upgrade.

3 Reduces timefrom
easy-to-use wizards development todeploymentThe editorprovides
that help you navigate through specific customization
tasks. Youdonot need to manually modify multiple files, such as the
configuration files, JSP or ASP.NET files, or CSS files. The wizards guide
you
are ready
throughthe
for deployment.
relevant customization stepsandsave thechangessothey

4 MicroStrategyWebis
intuitive
Decreases
friendly manner.
user
customization
interfacerequired
presents
complexityWhile
tothe
perform
customizablecomponents
customizations, in auser-
some understanding
the editor's
of

5 Provides a single application for all customizationsThe editor


alter
provides
customizationsthatextend
browse
customizations.It
thethrough
application
asinglepoint
multiple
provides
workflow.
ofentryforalltypes
foldersor
existing
The editor
openseveral
functionality,
prevents
ofcustomizations,including
files
addnew
theuser
toperform
functionality,or
from havingto

several wizards and editors to ease the task of


customization, without requiring users to modify the XML files directly.

7
6 Eases
inserts
Reduces
defaultuser
customizations.Additionally,
them
valuesfor
errorsThe
maintenanceThe
into theappropriate
the different
editor reducesthepotential
itproperties
converts
editor
files. automatically
yourselections
or settingsfor
that
creates
errors
intocodeand
are availablefor
plug-ins
byproviding
based

on
or save
yourfiles.
customization requirements.You donot need tomanually modify

of the
8 Facilitates
successfully
by
MicroStrategy
ported
simplyinsertingtheplug-in
toanportability
deployed
identical
Web installation.
version
usingtheWeb
customizationsAfter
ofintotheplugins
This
MicroStrategy
Customization
reducesthe
Webona
folderinside
timein
a plug-in
Editor,
different
it
hasbeen
canbeeasily
machine

moving your
customizations from a development environment to a production
environment.
Deploying the Web Customization Editor
To deployandconfigure theWeb Customization Editor:

1 Navigate to the MicroStrategy SDK installation folder.

You candownload the MicroStrategy SDK from theMicroStrategy


Developer Zone, which you can access from by navigating to
https://resource.microstrategy.com/support/ and clickingthe Developer
Resources link.

2 Inside
CustomizationEditor
com.microstrategy.web.sdk.webcustomization.
the tools\WebCustomizationEditor
plug-in, subfolder,locate the Web

3 Unzip and extract the plug-in to the Eclipse installation folder. This extracts
the JAR file, com.microstrategy.web.sdk. webcustomization.jar, to the
eclipse\plugins
If you haveaneclipse
subfolder.
subfolder withinyour

Eclipse installation folder,


extract theplug-intotheeclipsesubfolder.

4
5 Launch
In
MicroStrategy.
Eclipse,
Eclipse.
onthe Window menu,pointtoPreferences,and select

6 Beside the Application Root box,click Browse.

7 Select the root folder where MicroStrategy Web is installed.

8 In the MicroStrategy Web URL box, type the URL for launching
MicroStrategy Web.

9 Click Apply toapplyyour changes.

10 Click OK to close the Preferences window.


11 On the Window menu, point to Open Perspective, and select Other.

12 In the Open Perspective window, select MicroStrategy Web


Customization Editor.

13 Click OK to accessthe
viewsApplication
MicroStrategy menuis
Settings
WebCustomization
addedandCSS
tothe Settings.
Editor.
In addition,
The editordisplaystwo
anew

default Eclipse menu.


or
either
access
If you close
ApplicationSettingsor
it again,
the on
Application
the Window
Settings
menu,
CSSSettings.
point
the CSSSettings
toShowView,viewandselect
and need to

Web Customization Editor Preferences


After you have deployed the Web Customization Editor, you can specify the
following preferences for interacting with MicroStrategy Web:

Application RootThis is the root folder where MicroStrategy Web is


installed. The default root folders for MicroStrategy Web are as follows:

J2EE (tomcat):

C:\tomcat\webapps\MicroStrategy

.NET:

C:\Program Files (x86)\MicroStrategy\Web ASPx

MicroStrategyWeb URLThisis the URLfor launching MicroStrategy


Web. The default URL for launching MicroStrategy Web are as follows:

J2EE:

http://webserver:port/MicroStrategy/servlet/mstrWeb

.NET:

http://webserver/MicroStrategy/asp/Main.aspx
webserver is the name of your MicroStrategy Web server, and port refers to
the port used by your application server.

Use MicroStrategy
enables you to view MSDL
Developer
within
Library
theWebOnlineIfenabled,this
Customization Editor. option

Developer Library LocationYou can specify a local location for the


MSDL by clearingtheUseMicroStrategy Developer Library Onlinecheck
box.

Customization FolderThis is the folder where you save your


you can change or specifyanew
button.
customizationchanges. Youcan plug-in
savethemunderthe
namebyclickingthe
same plug-in
Change
folder,or

Show Advanced OptionsYou can select this check box to display all, or
Mappings,
Pages,
one or moreofthefollowing
BrowserSettings,
Property Files,ErrorList,
Style
application
Maps,
Export
System
settingsAdmin
Formats,
Defaults,
Folder
System
Error
Links,Folder
Definitions,
List, Admin

setting,
System Pickers,
selecttheVisualization Settings, and Widget Settings. To display a
Show Advanced Options check box, and under Options,
select the appropriate settings.

Search
Size
the
LocaleThis
In
MicroStrategy
the Web
previoussearch
ofMicroStrategy
Preferences
Searchoption
HistoryThis
pane,
wordsthat
Services-related
enables
Objects
if youexpand
you
window.
option
displayin
tospecify
preferences.
enables
MicroStrategy,
the
thelocale.
search
youtodrop-downlist
specifythe
youcannumberof
alsospecify
inthe

The following imageshows theWeb Customization Editor Preferences:

Web Customization Editor Preferences


Specifying the Plugin Folder
For your customization folder, you can specify an existing plug-in or create a
new plug-in using the Web Customization Editor. If creating a new plug-in, the
folder gets created with the necessary subfolders (such as asp/jsp, style, and
WEB-INF) inside the plugins subfolder in the MicroStrategy Web installation
folder.

To specify the plugin folder:

1 In Eclipse,intheWeb Customization Editor,on theWindow menu, select


Preferences.
2 In the Preferences window, select MicroStrategy.

3 Under MicroStrategy Preferences, beside the Customization Folderbox,


click Change to launch the Select Plug-In window as shown inthe following
image:

You can also launch the Select Plug-In window by clicking Select PlugIn in the
Application Settings view or the CSS Settings view of the Web Customization
Editor.
4 In the Select Plug-In window, if changing the plug-in folder, in the Plug-in
Folder drop-down list, select the appropriate plug-in. You can select a
default or custom plug-in.

If creating a new plug-in, in the Select Plug-In window, click New >>. In the
Plug-in Name box (see the following image), type a name for the plug-in.

For each customization, you can use the same plug-in folder or a different
one. Using different plug-in folders enables you to keep customizations in
separate plug-in folder, making it easier to port and troubleshoot. If
interdependent customizations are stored in different folders, be sure to
copy and/or remove the folders together.
5 Click OK to close the Select Plug-In window.

6 Click OK to close the Preferences window.

MicroStrategy Menu
After you deploy and configure the Web Customization Editor, the
MicroStrategy menu displays on the Eclipse menu bar. The MicroStrategy menu
offers thefollowingoptions:

New StyleThis option launches the Style Creation wizard, which guides
you through the process of creating a new style.

NewMicroStrategy ProjectThisoption launches theNew MicroStrategy


Project wizard. Thiswizard enables you to create a MicroStrategy project.

Launch Developer LibraryThis option enables you to view MSDL within


Launch
the Web Web
CustomizationEditor.
API ReferenceThis option enables you to view

MicroStrategy Web API Reference within the Web Customization Editor.

Launch Web Services WizardThis option enables you to launchthe Web


Services Wizard within the Web Customization Editor.

Tothe
in launchthis
Web CustomizationEditor
wizard,youmust firstspecifytheAnt
preferences root directory location
window.
ina
Launch Web BrowserThis optionlaunches MicroStrategy Web Web
browser
outcomeinside
ofyourcustomization.
the Eclipse IDE. TheWebbrowser enablesyou toviewthe

Launch
Customizations
Conflictwindow.
LogThis
Thisoption
windowlaunchestheConflict
enables you to scanLogfor
allthe plug-ins in

the pluginsfolder andidentify potential conflicts amongthem.

Launch
UpgradeUpgrade
Wizard toWizardThis
upgrade youroption
customizations
launches from
the Customization
8.xversions of

MicroStrategy Web to thecurrentversion of MicroStrategyWeb.


Application Settings SearchThis option launches the Search
MicroStrategy Web Settings window. This window enables you to perform a
search on settings available through the Web Customization Editor.

The followingimageshowsthe options available underthe MicroStrategy


menu:

Options in the MicroStrategy Menu

Web Customization Editor Views


When you launch the Web Customization Editor, it displays the following two
views by default:

Application Settings

CSS Settings

Application Settings View

The Application Settingsview displays thedifferentsettings thatyou can modify


to perform customizations. These settings are displayed in a hierarchical tree
and correspond to specific nodes in configuration files, such as page
configuration file, style catalog configuration file, and microstrategy.xml. The
Application
The
Customization
ApplicationSettings
following
Settings
imageshows
Editor:viewalsodisplaysthe
View
the ApplicationCSS
Settings
filesusedby
viewoftheWeb
MicroStrategyWeb.

Many of the application settings are displayed in the Application Settings


view only if you have enabled the corresponding check box in the Show
Advanced Options section of MicroStrategy Preferences.

The Application Settings tab contains the following folders:

Admin Error ListThis setting corresponds to the properties and values


defined for the <errors> node in the adminErrors.xml file. This
configuration file is located in WEB-INF\xml\config inside the
MicroStrategy Web installation folder. This errors configuration file lists all
the errors or special conditions that can occur in the application.
Admin PagesThis setting corresponds to the properties and values
defined for the <pages> node in the Admin_pageConfig.xml file. This
configuration file is located in WEB-INF\xml inside the MicroStrategy Web
properties
specific
Administrator
installationfolder.
foreach
andchildnodes
privileges.
MicroStrategy
The<pages>
Each
specific
<page>
Web
nodecontains
tothat
page
node,
displayed
page.
inturn,hasa
aseriesof
to userswith
<page>
numberof
nodes

application
Browser SettingsThe
uses.For example,
browsersettingobjects
browser settings control
are cookies
whether
thatthe
the page-by

settings
mode is enabledor
corresponddisabled
tothe properties
bydefaultand
in MicroStrategy
valuesdefined Web.The
for the<browser-
browser

settings> node in the browserSettings.xml configuration file. This


configurationfileis
MicroStrategy Web installation
locatedinthe
folder.
WEB-INF\xml\config folderinside the

installationfolder.
Clientside
All
INF\xml\layoutsCS\mstr\layouts
defined
client-sidelayout
forthe
LayoutsThis
client-sidelayout
definition
settingcorresponds
files
definition
folderinsidetheMicroStrategy
areXMLfileslocatedin
filesusedin
tothe propertiesandvalues
MicroStrategy
theWEB-
WebWeb.

Context MenusThis folder displays various context menus available in


objects
MicroStrategy
inMicroStrategy
Web. You Web.Forexample,
canadd,remove, ordisable
youcan addacontext
contextmenumenu
items for

the
itemPreferencespagewhenyouclickthatmenu
click on
a folder.
theFolder
Similarly,
Browsing
youcan
pagetodisplay
haveanotherthe
context
item.
folderIDwhen
menu item
you
that
right-
opens

Error ListTheError Listfolder corresponds to the properties and values


defined for the <errors> node in the errors.xml configuration file. The
errors
Error
errors.xml
subfolder
different
when
click Errors
Listand
anerror or
orspecialconditions
title
insidethe
configuration
under
Attributeseditor,youcan
occurs.To
message
the
MicroStrategy
ErrorListfolder.
file,which
forthe
openthe
that can
erroror
Error
Web
islocated
occur
installation
modify
List
redirecta
in the
and
inthe
errors.xmlto
application.
Attributes
user
folder,
WEB-INF\xml\config
toadifferent
lists
editor,
Using
display
all ofthe
double-
the
page
a

EventsThe Events folder displays various event handler types available in


The
MicroStrategy
Web Customization
Web.Foreach
Editor
event
addshandler
the appropriate
type, youcandefinean
eventinthe events
event.
configuration file. You can access the editor to define an event by right-
clicking the appropriate event type under the Event Handler Type folder,
and selecting Open in Editor. In the editor, you can define properties such
Export
as the eventID,name,event
FormatsThe ExportFormats
class, and the
folder
arguments.
corresponds to the properties

and values definedfor the <export-formats> node in the exportFormats.xml


configuration file.Theexport formats configuration file groups alistof
export format objects. These objects are used to define the properties of the
values
Folder
different
HTML, defined
LinksTheFolder
plain
export
text,
forthe
formatsthatMicroStrategy
and<folder-links>
CSVLinks
(comma-separated
foldercorresponds
node inWebsupports,
the
values).
folderLinks.xml
to thepropertiesand
such as Excel,

configuration file. The folder links configuration file listsa series of folder
link definitions that represent ashortcut to a systemfolder.

Folder MappingsThe Folder Mappings folder corresponds to the


properties
page
folderconfiguration
mapping
and valuesdefined
definitions
file. Thethat
<folderpage-mapping>
forcorrespondtosystem
the <folderpage-mapping>
node
folders
listsaseriesof
nodeinthe
such as Shared

Reports
While the
andMyReports.
folder mapping definitions correspond to system folders, the

links (shortcuts) to these systems folders are defined using the folder link
they
Global
to
(JSP
definitions.
allaredefined
or
MicroStrategyWebpages.
CSSThe
ASP.NET).
inthemain
GlobalCSS pagetemplates
folder
Sincedisplays
these CSSfilesareglobalinnature,
and
theCSSfilesthatare
intheGlobal_Links applied
file

The Global CSS folder contains the following two subfolders:

CustomizationsThis
made toanyspecific folder displays global.css bydefault. Changes
CSS files are copied to global.css. These changes
are then propagated to the respective MicroStrategy Web pages.

MicroStrategy
to all MicroStrategyWebpages.
WebThis folderAny
displays
changes
theCSS
madefilesthat
tothese CSS
are applied
filesget

The copiedto
following the
imageshowsthe
global.css file in the Customizations folder.

Global CSS folder components:


Global CSS Folder

MenusThe Menus folder corresponds tothe properties and values defined


for the <menus> node in the page configuration file. The <menus> node
groups a list of shortcut list objects, each of which represents a menu or
context menu for a report, document, and other objects.

PagesThe Pages folder corresponds to the properties and values defined


for the <pages> node in the page configuration file.

Each <page> node under the <pages> node has a number of properties and
child
the
additional
andReport
appropriate
securityand
nodesspecificto
information
Execution
tab
features
atpage
the
thatpage.
about
fortheReport
bottom.
displays
the Youcan
pageby
For
properties
example,
Execution
clickingthe
viewtheseproperties
such
thepage.You
asname,description,
BasicProperties
Template
canview
by
Properties,
clicking
tabof

Bean Properties, Add-on Properties, and the Events and JavaScript tabs at
the bottom.
The following imageshows theBasic Properties taboftheReport Execution

page editor:

Basic Properties TabReport Execution PageEditor


Additionally, expanding theicon for a page enables you to edit and
duplicate beans and modify CSS properties.

Property FilesThe Property Files folder corresponds to the properties


files located in the WEB-INF\classes folder inside the MicroStrategy Web
installation folder.

By right-clicking a properties element in the hierarchical tree, you can edit


the properties element or delete all custom properties.

RibbonsThis
the <ribbon-list-set>
setting
node
corresponds
in the page
tothe
configuration
propertiesfile.This
andvalues defined for
file is located
in WEB-INF\xml inside the MicroStrategy Web installation folder. The
<ribbon-list-set> nodegroupsalist ofribbons, with eachribbon
representing
Style MapsThis
atoolbar
setting
and a menu.

corresponds to the properties and values defined


for the <StyleMaps> node in the style catalog configuration file. This file is
located
and is responsiblefor
in WEB-INF\xml,
presentingthe
inside theMicroStrategy
data. The StyleWeb
Maps
installation
setting listsall
folder,

the styles that aremapped in MicroStrategy Web.


By default, all MicroStrategy reports are displayed in MicroStrategy Web
using the ReportGridStyle style. However, you can use style maps to enable
different users to view same reports using a different style based on some
condition.
MicroStrategy
Forexample,
reports usingacustomstyle,
youcanenableaccounting
while allother
users tousers
view view the

styleCatalog.xmlfilelocated
MicroStrategy
StylesTheStyles
report usingthe
Webdefault
folder
installation
ReportGridStyle.
corresponds
inthe
folder.
WEB-INF\xml
tothe
Thisconfigurationfile
propertiesdefined
folder inside the
inthe

is responsible
for presenting the data.

display
By selectingastylein
following
informationabout
threetabsatthe
theApplication
bottom
that style:
ofthe
Settingsviewand
Style Propertiesusing
editor,youcan
one ofthe

Style PropertiesThis tab displays the basic properties such as name,


description, and the transform used by the style.

Style
parametersused
ParametersThis
bythe style.
tab displays information abouttransform

Style LayoutsThis tab displays information about the layout


System
definition
PickersTheSystem
file used bythestyle.
Pickers foldercorresponds tothe properties

and values defined for the <system-pickers> node in the page configuration
file. This
colors, and
node
fill includes
effects. variouspickerssuch as pickersfor selectingfonts,

In MicroStrategy Web, system pickers represent the objects that enable you
and
to choose
time formats
suchsettings
that areusedbythe
asthefonts,colors,
application.
styles,borders,
There canlines,anddate
be multiple

system picker configuration files, each of which defines the choices available
for a specific type of setting. System pickers appear as drop-down lists in a
TasksThe
toolbar
list
for tasksin
of shortcut
orincertain
MicroStrategy
Tasks
objects
folder
editors.Each
thatdefine
corresponds
Web.Thisthe
systempicker
choicesinthedrop-down
tothe properties
configuration
andvalues
file
list.groupsa
defined

folder displays two types of tasks


Java-based tasks and bean-based tasks. The Java-based tasks are indicated
indicated
by the letter
bythelettersXML
JintheApplication
inthe
Settings
Application
view. The
Settings
bean-based
view.Youdo
tasks are
not
need any Java knowledge to modify bean-based tasks.

The following image shows the items in the Tasks folder:

Tasks Folder

ToolbarsThe Toolbars folder corresponds to thepropertiesand values


defined for the <toolbars> node in the pageConfig.xml file. The <toolbars>
node groups a list of shortcut list objects (each representing a toolbar)
within a shortcut list set that represents the set of toolbars.

A toolbar configuration file groups a list of shortcut list objects. Each


shortcut list object, or toolbar, in turn groups a list of shortcut objects,
which represent the links available from the toolbar. There can be multiple
toolbar configuration files, each of which defines the choices available for a
specific toolbar.Someof the
reportPanelsToolbar.xml, reportStandardToolbar.xml,
toolbar configuration filesare

rwControlsToolbar.xml, and reportCrosstabToolbar.xml.

You canright-click ashortcut list set to access customization options. You


can also display the properties of each shortcut listsetby selecting it under
the Toolbars folder in the Application Settings view.

Visualization
properties
visualizations.xml
andSettingsThe
values
configuration
defined Visualization
forfile,
the located
<visualizations>
Settings
inthe WEB-INF\xml\config
correspond
node in the
to the
folder inside the MicroStrategy Web installation folder. The visualizations
configuration file contains the list of visualizations available in
MicroStrategy Web.

Web
to theConfiguration
settingsdefinedin
SettingsThe
the microstrategy.xml
Web Configuration
configuration
Settingscorrespond
file. This

configurationfileisused tospecify the MicroStrategy Web-specific settings.


These settings also include settings defined in sys_defaults.xml and
as
sys_definitions.xml
inside
System
The
MicroStrategyConfiguration
configuration
Global
WebConfiguration
your
Defaultsand
MicroStrategy
SettingsThe
settingsfor
(bothlocated
System
Settings
Web
settingsonthis
Definitions
Settings
server
installation
arespecified
bydefaultinthe
configurationfilesand
editor:
subfolders.
tab
folder)andarerepresented
onthe
correspondto
WEB-INF\xmlfolder
following
propertiesfor
theglobal
four tabsof

resources and styles folders from the microstrategy.xml configuration


file.

ApplicationSettingsThe settingson thistab correspond to the


application-level settings defined for MicroStrategy Web.

Admin SettingsThe
defined foradministering
settingson
MicroStrategy
this tabWeb.
correspond to the settings

MiscellaneousThe settings on this tab correspond to the


miscellaneous configuration settings, such as path for the images in
documents, path to the report bean, and so forth.

Widget SettingsTheWidget Settingscorrespond to the propertiesand


values defined for the <widgets> node in the widgets.xml configuration file
(located availablefor
installation
widgets in the
folder).
WEB-INF\xml\config
The
display
widgetsconfiguration
inFlashMode.
folder inside
file contains
the MicroStrategy
the list of Web

CSS Settings View

The CSS Settings view provides options to make CSS-related customization


changes. Thefollowing imageshowsthe CSSSettings viewof theWeb
Customization Editor:

CSS Settings View

The CSS Settings view consists of two main folders:

Customized Web StylesThis folder contains alltheCSS-related


customization changes. It uses the following files:

global.cssThis file includes CSS-related customization changes that


are applicable to all MicroStrategyWebpages.

pageNamePage.cssThese files include CSS-related customization


changes that are applicable to the corresponding MicroStrategy Web
pages. The pageName value corresponds to the value of a specific
MicroStrategy Web page. It isdefined in the name attributefor a
MicroStrategy Web page in the page configuration file. For example,
CSS modifications that are applicable to the Report Execution page
(which has the page name of report) are saved in reportPage.css.

MicroStrategy Web StylesThis folder represents the content of the style


folder inside the MicroStrategy Web installation folder.This foldercontains
all CSS files along with the CSS rules, properties, and values. Any changes
expanding
Styles
You
madecanto
folder.
viewthe
theCSSfilesin
the node.
CSSThe
rules,
this
following
properties,
subfolder
image
getcopiedto
andtheir
showsthat
values
the
FolderTransform.css
Customized
inanyCSSfile
Webby

has a CSS selector called .bullet-global that containsa padding property:

FolderTransform.css

Web Customization Editor Wizards


The Web Customization Editor provides various wizardsfor specific
customizations. For example, you can use the Edit/CreatePageWizard(Create)
for creating a custom page. Similarly, you can usetheTransformCreation
Wizard for creating a transform. The following wizards are included in the Web
Customization Editor:

Addon Creation Wizard


enablesyoutoadd an existing
(Add)TheAdd-on CreationWizard (Add)
add-on to a MicroStrategy Web page.

Addon Creation Wizard (Create)The Add-on Creation Wizard enables


you to createanew
MicroStrategy Web add-on.
page. Thisadd-on automatically getsadded toa

Display Web GUI Component Wizard (Create)The Display Web GUI


Component Wizard (Create) enablesyou tocreateaWebGUI Component
for
Display
a pageWebGUI
template.Component Wizard

(Edit)The Display Web GUI


Component Wizard (Edit) enables you to edit a Web GUI Component for a
page template.
Edit/Create Page Wizard

(Create)The Edit/Create Page Wizard (Create)


enables you to create anew MicroStrategy Web page by copying or
inheriting from an existing MicroStrategy Web page.

Edit/Create Page Wizard (Edit)The Edit/Create Page Wizard (Edit)


enables youtoedita specific MicroStrategy Web page.

Edit HTML Menus Wizard (Add)The Edit HTML Menus Wizard (Add)
enables youtoadda menuitem toan existingHTMLmenu. This menuis
used when MicroStrategy Webis launched intheHTMLmode (JavaScript
disabled).

Edit HTML Menus Wizard (Edit)The Edit HTML Menus Wizard (Edit)
when
enables
MicroStrategy
youtoedita Web
menuitem
is launched
underan
inthe
existingmenu.
HTMLmode This
(JavaScript
menuis used

disabled).

edit
when
Editone
Menus
using
ormore
MicroStrategy
Wizard
menus
(Edit)The
forWeb
a MicroStrategy
inEditMenus
the Dynamic
Web
Wizard(Edit)
HTML
page. mode
Thesemenus
enables
(JavaScript
youto
display

enabled).

Edit Toolbars WizardThe Edit Toolbars Wizard enables you to edit


toolbar ofa MicroStrategy Web page.
Edit HTML Toolbars WizardThe Edit HTML Toolbars Wizard enables
you to edit a toolbar of a MicroStrategy Web page. This toolbar is used when
MicroStrategy Web is launched in the HTML mode (JavaScript disabled).

New HTML Toolbar Element WizardThe NewHTML Toolbar Element


MicroStrategyWebpage.
Wizard adds atoolbar element
This toolbar
(button)isused
toanexisting
when MicroStrategy
toolbar of a Web is

launched in HTML mode (JavaScript disabled).

To disable JavaScript, in MicroStrategy Web, inthe Project Defaults


preference level,under the General preference, setthe Use Dynamic
optiontoNo.
HTML?

New Toolbar Element WizardThe New Toolbar Element Wizard enables


you to add a toolbar element(button) to anexistingtoolbar. The toolbar
element canbe viewed using MicroStrategy Webinthe Dynamic HTML
(JavaScript enabled) mode.

Event Map WizardThe Event Map Wizard enables you to specify an event
map for an event.

newWeb
aNew beanthat
BeanisWizardTheNew
automatically added
WebBean
toa MicroStrategyWeb
Wizard enables youtocreate
page.

Template Shortcuts WizardThe Template Shortcuts Wizard enables you


to edit shortcuts for a page template. You can add new shortcuts, remove all
navigational links,
links to
inheritthemfromthe
display. main template, ordecide which

Style Creation WizardThe Style Creation Wizard enables you to create a


Style
new style.
Map Creation WizardThe StyleMap Creation Wizard enablesyou

to create a new style map.

Transform
to create anew
Creation WizardThe Transform Creation Wizard enables you
transform.

Task CreationWizardThe Task Creation Wizard enables you to create a


new bean-based or Java-based task.

New MicroStrategy Project WizardThe New MicroStrategy Project


Wizard enables you to create a new MicroStrategy project.

Custom Event Handler WizardThe Custom Event Handler Creation


Wizard enables youtocreate an event handler that getsautomatically added
to a bean.

Customization Upgrade WizardThe Customization Upgrade Wizard


MicroStrategy
enables youto 9.x.
upgradeyour MicroStrategy Web 8.x customizations to

To launch theCustomization Upgrade Wizard:

1 In
Launch
the Web
UpgradeWizard.
Customization Editor,on the MicroStrategymenu, select

2 In the Customization UpgradeWizard window,click Next.

After you select the Launch Upgrade Wizard, the Customization Upgrade
current
Wizard the
specify opens.
andpredefined
previous
The wizardprovidesvarious
versions,
MicroStrategy
the Web installation
options, including
folders forthe
theoptionsto

customized MicroStrategy Web


installation folder for the previous version, and the customization plug-in
folder name.

The following image shows the second window of the Customization


Upgrade Wizard:Upgrade Wizard
Customization
After starting the upgrade process, the wizard compares the differences
between the uncustomized MicroStrategy Web version and the customized
MicroStrategy Web version. Based on this comparison, it creates a new
plug-in in the plugins folder.

Always launch the Customization Upgrade Wizard on the same machine


that has the version of MicroStrategy Web to which you intend to upgrade.
The customizations from the previous version must have followed the
recommended best practices forthe upgrade wizard to successfully
perform the upgradeon its own.

Conflict Log
customization
To
Thelaunch
ConflictConflict
Log
plug-insintheplugins
isaLog:
troubleshooting tool
folder.
thatidentifiesany conflicts between

1 In Eclipse, on the MicroStrategy menu, select Launch Conflict Log.


2 In the Conflict Log for Customizations window, click Start. The Conflict Log
scans all the plug-ins in the plugins folder and displays any potential
conflicts in a log file and the Conflict Log for Customizations window.

The
Conflict
following
Logfor
image
Customizations
showsthe Conflict Log for Customizations window:
Window

3 Click Close to exit the Conflict Log window.

MicroStrategy Object Search


The Web Customization Editor provides search functionality that enables you to
search on settings available through the editor.

To search for a MicroStrategy Web setting:

1 In Eclipse, on the MicroStrategy menu, select Application Settings


Search.

2 In theSearchforbox,typethe searchtext.

3 Inthe From
AllThis option
drop-downlist,select
enables you to search
onethe
theentire
following:
list of settings.
PagesThis option enables you to search only the <pages> nodes from the
page configuration file.

StylesThisoptionenables
style catalog configurationfile.
you tosearch only the <styles> nodes from the

ToolbarsThis option enables you to search only the toolbar-related


MenusThis
shortcuts definedinthe
option enablesyoutosearch
page configurationonly
file. the menu-related shortcuts

defined in the page configuration file.

System PickersThis option enables you to restrictyoursearch to only the


<system-pickers> nodes from the page configuration file.

TasksThis option enablesyou to search onlythe tasksin MicroStrategy


Web.

4 Click
andOpen
the click
Searchto
OpeninEditorto
inEditorbutton
startthesearch.You
changes
view the
tomatch.
canselect
a ShowIfinthe
anyofthe
View
match
button.
isaCSSselector,
matches
Clickingthe
found

Show in View button highlights the match in the Web Customization


Editor.

The following image shows the Search MicroStrategy Web Settings window
with the search results for alertseditor:

Search MicroStrategy Web Settings Window


5 Click Close to close the window.
Best Practices for Customizations
Customization BestPractices

After completing this topic, you will be able to:

Follow customization best practices and know how to apply customization


changes.

Customization Best Practices


Customizing MicroStrategy Web products can involve modifying the
configuration files, JSP/ASP.NET, and other files that are shipped with
MicroStrategy Web. If these modifications do not follow best practices,
subsequent upgrades can erase the customizations. Therefore, the following are
customization bestpractices:

Do not make any changes directly to the original files (JSPs/ASP.NET


pages, XML, and so forth). Always customize using the Web Customization
maintenanceand
pagesbyinheriting
Whencreatingcustom
Editor.Thiseditorfacilitate
createscustomization
fromexisting
pages,
easyupgrades.
whenever
pages rather
possible,create
plug-insthat
thanmakingcopies
reduce
or duplicate
theneed
of new
for

existingpages.

Do not modify the page template to create new page sections. You should
default
page
MicroStrategy
use existing
sections.
page.page
Forexample,
Websections
page, reuse
toifaddormodify
you
thefooter
wantto pagesectionfor
addcontent
content rather
tothefooter
thancreate
thatpageor
ofanew
the

Use transforms only for rendering data. All logic-related changes should be
Do
done
not
using
modify
add-onsand
out-of-the-box
events.
JavaScript files.If youwant toadd custom
JavaScript methods, make sure that these custom files are placed together
in a common, but separate, customization folder and referenced from the
links page section of the page in which you want to use them.

Unlike
customizations
Java classes,
performed
JavaScript
on out-of-the-box
methods arenotbackward
JavaScript files
compatible.
have to beAny

manually re-applied after upgrading your custom Web application.

MicroStrategy
of
the
If you
the
JAR.
Webapplication.
needto
Instead,placethe
extract
Webproducts
filesfroma
Filesinthe
modifiedfiles
andmodify
JavaArchive
WEB-INF\classes
them,
into the
(JAR)fileused
donotplacethem
WEB-INF\classes
folder take
by backin
folder

precedence over the files contained in a JAR.

When upgrading,check whether thereare any obsolete API entities that you
own
have
If
information
youprefixinsteadof
usedinyourexisting
arecreating
on obsoleteAPIs.
new
mstrWeb
IDsforstrings
customizations.
in the Messages
in aMessages
See the
Bundle
MSDLfor
Bundlefile,useyour
files (for
more

example,
scenario1.1="My New String").

If you
all the change the default
changestohelp youstrings
withfuture
inthe product
MessagesBundlefiles,
upgrades. keep alog of

If you add new strings to a Messages Bundle file, add them to Messages
Bundle filesfor all thelanguages to maintain consistency.

Restarting Web Application or Application Server

You need to restart yourWeb application or the application serverfor the


changes to take effect if your customization involves any of the following:

1 Modifying existing or applying new Messages Bundle filesThese files


are located in the WEB-INF\classes folderinside the MicroStrategy Web
installation folder.

2 Modifying or recompiling class or JAR filesThe class files are located


in theWEB-INF\classes subfolderinsidethe MicroStrategy Web
installation folder. The JAR files are located inside the WEB-INF\lib
subfolder.

3 generates
ModifyingHTMLpages
existing or applying new CSS filesMicroStrategy Web
that use several CSS files. The CSS files used by
styles in MicroStrategy Web are referenced by <link> tags in the HTML
source for each MicroStrategy Web page.
in
4 configuration
initializes
Modifyingpage
itselffiles
the first time,andorarethen
configuration
arereadbythe servletor
style catalog
stored
an ASP.NETfile
configuration
memory.when
This
fileThese
enables
it

you to workon the customization tasksthat update the configuration files


while other users are accessing the MicroStrategy Web application. The
customizationchanges
servlet ortheASP.NET made
files usetheconfiguration
arenotreflected for theseusers
files stored sincethe
in memory.

Consequently,bydefault,
configuration
applicationorthe
applicationserverafter
You do not needto
fileorthe
application
restart
style
makingany
you
the
catalogconfiguration
server
need
MicroStrategy
toifyou
changes
restart
made
the
to
Web
jsp,
changes
MicroStrategy
file.
applicationorthe
aspx,orascx
to thepage
Web
files.
Best Practices for Upgrades

After completing this topic,youwillbeable to:

Follow best practices for minimizing the impact of customizations during


upgrades.

Customizing MicroStrategy Web products can involve modifying the


MicroStrategy
configuration files,
Web.JSP/ASP.NET,
Subsequent upgrades
and otherfilesthat
can overwrite
arethese
shipped
files,with
and erase

customization changes. The following are best practices for upgrading


customizations:

Documentandbe awareofallyour
FollowMicroStrategy's best practicesfor
customizationsand
customizations.
their
Thislocations.
easesthe task

Beforeupgrading
of futureupgrades.

customizations, always make sure that the customizations


work as expected in the previous version of MicroStrategy Web.

Always usetheJARs and JavaScript files for thecurrent versionof


MicroStrategy Web. Do not mix the JARs and JavaScript files from the
previous andnew
corresponding filesversionsastheolder
inthenew files mayconflict with the
MicroStrategy versions. Similarly, you may
need to update certainCSSfiles.

customized
files)
If yourelated
madefiles
customizationsto
to yourMicroStrategy
to thenew version
non-XMLfiles(such
files
Webproducts,
anduse theyoumust
asJSP
Web Customization
orASP.NET
compareyour

Editor to redo your customizations into the new files.

Always
entities
for the latestversion
migrateyour
assoonas possible.
customizations
of MicroStrategy
t is usefulto
from
Webcheck
deprecated
andthe
update
listof
entities
accordingly.
deprecated
to the new
APIs

DeprecatedAPIseventually get deleted inlater versions.

The MicroStrategy SDK also provides a set of APIs you can use as building
to
blocks integrate advanced functionality into your applications. Youcan
use these building blocks to create your own custom classes and JAR files.
These classes are backward-compatible, so your custom classes should work
when you upgrade. You should recompile these classes so that if any of them
in
Always
arethe
possible
customizations.
deprecated,
latestversion
usethe
problems
Customization
the
Thewizard
ina
codecanbe
ofMicroStrategy
future
creates
release.
Upgrade
updated
customization
Web.
Wizard
to usenew
forupgrading
plug-ins
methodsthat
and
your
can
toavoid
beused

Always test the upgraded customization plug-ins to make sure they achieve
the desiredresults.
Lesson Summary
TheWebCustomization Editoreasesthetask of customization and
upgrades.

The Web Customization Editor easily integrates into the Eclipse IDE.

The Web Customization Editor automatically creates plug-ins inside the


plugins folderbased on your customization requirements.

The Web Customization Editoroffers various advantages, suchasusing the


plug-in architecture, minimizing the impact of upgrades, reducing time
from development todeployment, decreasing customization complexity,
providing
errors, easing
a single
maintenance,
applicationfor
and facilitating
performingtheportabilityof
all customizations, reducing

customizations.

The Web Customization Editor enables youto specify the various


application
preferencesfor
folders. root,theMicroStrategy
interactingwith MicroStrategyWeb,
WebURL,and thecustomization
including the

After youdeploy and configuretheWeb CustomizationEditor, a


MicroStrategymenuisadded
to the default Eclipse menu.
use the such
You
Conflict
as launching
can Log,andthe
theMicroStrategymenu
StyleCustomizationUpgrade
Creation Wizard,
options
New MicroStrategy
to
Wizard.
perform certain
Project
tasks,
Wizard,

The Launch Web Browser enables youtolaunch MicroStrategy Web in a


web browser in the Eclipse IDE.

By default,the
the ApplicationSettings
Web Customization
view and the
Editordisplays
CSS Settings twoviews
view. onlaunch

The Application Settings view displays the different settings that can be
customization
The
modified
CSS Settings
to perform
changes.
view
customizationsinahierarchical
provides options tomakethe CSS-related
tree.
The Web Customization Editor provides various wizards, each of which you
can use for a specific customization.

MicroStrategy
The Customization
Web UpgradeWizard
8.x customizations
enablesyou
toMicroStrategy
toupgrade your
9.x.

The Conflict Log is a troubleshooting tool that identifies conflicts among all
There
the customization
areseveralbest
plug-insinthe
practices that
plugins
you should
folder.follow when customizing

the various components of MicroStrategy Web.


4
CUSTOMIZING PAGES

Lesson Description

This lesson describes how you can modify the look and feel of MicroStrategy
Web by changing the contents and layout of pages. Look and feel
customizations can involve modifying headers and footers; adding, removing, or
modifying components of pages; or adding or removing entire pages.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Describe the components of a MicroStrategy Web page and how to customize


pages in MicroStrategy Web.

AfterDescribe
completing
the variouscomponents
the topics in this lesson,
ofa you willbeableto:

MicroStrategy Web page.

Describe the page configuration file, Default Page, Pages folder, and basic
page properties.

Understand the purpose of page template, page sections, and shortcuts.

Create or remove a page from the MicroStrategy Web application.


MicroStrategy Web Page
PageOverview

After completing this topic, you will be able to:

Describe the various components of a MicroStrategy Web page.

Page Overview
The key to success in customizing MicroStrategy Web is understanding how the
application is structured and how to use its components to perform the actions
you want them to perform.

A MicroStrategy Webpagedoesnot correspond to a single JSP or ASP.NET file.


Rather itcorresponds toacomplete screens worth of content. A typical page is
defined in an XML file called the page configuration file. A page is separated
into a set of subpages
components such as the
or report
sections,
grid,filtereditor,
eachofwhich mayincludeasetof
orreportmenus.ToWebenable

at
these
runindividualsections
time using apage template.
tobereused, there are separate files thatareincluded
Page Configuration File
OverviewPagesFolder

Default Page
Basic Page Properties

After completing this topic, you will be able to:

Describe the page configuration file,Default Page, Pages folder, and basic page
properties.

Overview
The page configuration file is an XML file that defines the framework for the
entire MicroStrategy Web application. By default, the file is located in the WEB-
INF\xml folder and is named pageConfig.xml. For each page in the application,
the page configuration file defines the page name, sections, shortcuts, Web GUI
components, styles, and so forth. The following image shows a portion of the
page configurationfile:

Page Configuration File


Pages Folder
The page configurationfilecontainsmanynodes,includinga<page>node for
every MicroStrategy Web page. For example, there are separate <page>nodes
for the desktop(Desktop) and create(CreateReport) pages. In the Web
Customization Editor, all these <page> nodes are located as a subfolder under
the Pages folder, as shown in the following image:

PagesFolder
The sequential order of the child page nodes is generally unimportant, with one
notable exception. To utilize the Default Page, it must be the first page defined
in the list of page nodes.

Default Page
The Default Page is the first page defined under the Pages folder in the Web
Customization Editor. It is listed in the editor as -1(Default Page).

The DefaultPage enablesmany pagesin your MicroStrategy Web application to


share similar settings, such as a common header, footer, and shortcut list. The
characteristics of this page are automatically propagated to all other pages that
use its page properties. Each of the other pages can use some or all of the
Thedefined
settings Defaultinthe
Page DefaultPage.
is not rendered in MicroStrategyWeb. Its purposeis only

to define generic propertiesthat can be inherited by otherpages.

Basic Page Properties


Every page contains a number of attributes that serve to describe basic
properties about that page. You can view these properties in the Basic
Properties tab of a page editor. The following image shows the Basic Properties
tab for theReport Execution pageeditor:

Report Execution Page EditorBasic Properties Tab


A brief description of the various attributes displayed on the Basic Properties
tab is as follows:

NameThis isthename with which thepage isknownto therestofthe


application.

Descriptor IDThis refers to a descriptor ID (key) in a localized descriptor


file
The(MessagesBundle
MessagesBundlefile).

files are located in the \WEB-INF\classes\resources


folder of the application.

DescriptorThis isa hardcoded descriptor that is included in the pages


title if no Descriptor ID is available.

Users must haveavalid MicroStrategy Intelligence Server sessionto


access this pageIf thischeckboxis selected, a user must have a valid
session to view the page. If this check box is clear, a user can access the page
without
Most pages
loggingintoMicroStrategy
in MicroStrategyWeb require
Web. avalid

session. However, some


pages, such as login(Login) and logout(Logout), can be accessed without
associate
Features
have
having
to accessthe
anactive
aWeb
required
feature(also
Intelligence
pages
to accessthis
content.
known
Server
pageYou
simply
session.as afeature)
can use this
that
optionto
a usermust

Feature is a generic term for a variety of preferences, privileges, or


conditional
MicroStrategy
settings thatfunctionality,
can
Web
beused
applications.Thissetting
to
bycontroltheavailability
basingtheavailability offunctionality
enablesyoutocreate
of functionalityin

on
whether aspecific feature (or setoffeatures) is trueor false.

the
If the
user
history
featureisnot
willbe
list page,
redirected
availableto
the user
to theaccess
would
the user,the
require
denied
the
page
page.
willForexample,
notbedisplayed
to access
and

history list feature to be


available.

You
Basic
EnumWebFeaturesclass
possible
canassociate
Properties
valuesfor
tabof
afeature-ids,
featurewitha
theinpage
therefertothe
APIReference
editor.
page To
by clickingthe
seealist
EnumAppWebFeatures
section ofthe
ModifyMSDL.or
of featuresandthe
buttoninthe
Persistence ModeThis determines whether the page should be saved
(persisted). You can specify:

DefaultThebean
bean stateisnot saved
isnotpersisted
beyond thescope
acrossuserrequests (thatis, the
of a given page).

SessionThe bean state is saved to and restored from the HttpSession


object (thatis,thebean
session). For example, ifstateis
this attribute
saved throughoutthe
valueis setfor the
lifetime ofa users

TemplateFilterExecBean, when a user chooses a template, that


selection isretainedacross pages throughout the users session.
inthe
type.
Data
by theIf
type
page.
youreturned
selectedBinary,youalsoneedto
Inthe drop-down
bythis pageThis
list,youcan
determines
select
specify
eitherBinary
the
thedata
bean typereturned
orText
Binary
data

Bean drop-down list.

Enable this page to be used in the returnto linkIf this check box is
selected,
path pagethe
section
pagecan
of several
beusedfor
MicroStrategy
the Return
Web
Tofeature
pages.Inavailableinthe
this case,if the

user navigates toany other page (suchasShared Reports page) inthe


user
application
to goback
fromtotheselected
the selectedpage,
page.clicking the Return Toicon enablesthe

Enable users to return to this page when an operation is cancelledIf


this checkboxis
operation thatmay
selected,
have taken
the user
himcan
to another
return to
page.
the page ifhecancels an
Page Template, Page Sections and
Shortcuts
PageTemplatePageSections

Web GUI Components


Shortcuts

After completing this topic,you will be able to:

Understand the purpose of pagetemplate, page sections, and shortcuts.

Page
The pageTemplate
template defines theoverall layout of thedifferent sections ona page.

A page is separated into a set of subpages or sections, with the page template
acting as a placeholder. The majority of the pages in the application use
mstrWeb as the page template. The following image shows an example of the
sections defined in this template:

PageTemplate
The content section can include a container bean, which in turn holds other
beans, referred to as child beans or contained beans. Container beans provide
the framework that enables their child beans to be programmatically
manipulated together and their child components to be laid out on the page in a
specific way. Container beans are generally not rendered directly. For example,
the Report Execution page includes a Report Frame container bean that consists
of various contained beans for the report grid, drilling editor, formatting editor,
and so forth.

Template
You
a
Report
page
candefineProperties
editor.
Execution
The
template-related
page:
followingimageproperties
shows theTemplate
using theTemplate
Properties tabof the of
Propertiestab

Report Execution Page EditorTemplate Properties Tab


Template Status

Template status determinesthe template to be used for a page. A single page


can have multiple templates depending on the status of the page. For example,
one template can be usedfor displaying relevant information when a page is in a
processing state, and another template can be used for the same page when the
request is successfully completed. The template used is based on the status of
the page. The status of the page is determined by the status of all the beans on
the page. A page has a status of successful only when all beans on that page have
a successful state, while it has a status of error if any one bean on that page is in
error.
The
UserReport
following
templatestatuses
The Default
Execution
imagetemplate
shows
for
Pagethe
the
isEditorTemplate
used
Report
tabswhen
forthe
Execution
other
Default,Processing,
templatestatuses
page:
Properties Taband
areWaiting
not met.for

The Waiting for User template is used when waiting for a user to provide
the prompt answer in the case of prompted reports. TheProcessing
template is used when processing a report execution request.

You can add or delete status for a template using the Template Properties tab of
the page editor.

To add status for a template:

1 On the Template Properties tab of the page editor, click Add Template.

2 Under
appropriate
Selectstatus.
Template
TheStatus,in
following the
image
Status
showsthe
drop-downlist,select
Status drop-downlist:
the
3 Click OK.

The value of the Status attribute can be set to any fully-qualified value from
the EnumRequestStatus interface defined in the API Reference.

To delete status for a template:

1 On the Template Properties tab of the page editor, click Delete.

2 Under Selectstatus
appropriate TemplateStatus,inthe
tobedeleted. Statusdrop-down list, select the

3 Click OK.

Template File

The template fileisaJSP or ASP.NET file thatdetermines the layout of the


different page sectionsfor a page. This file defines the size, shape, and relative
position of each specified page-section.

You can have different files for different templates. For example, the default
Report Execution page uses mstrWeb.aspx (or .jsp) for the Default and Waiting
for User templates, respectively and Wait.aspx (or .jsp) for the Processing
template. You can use a different predefined template file or use your custom
template fileassociated with a page.

You can create custom templates by copying and modifying an existing


template, or you can create it from scratch by writing your own code.

To change the template file:

1 On the Template Properties tab of the page editor, click the appropriate
page template tab.

2 Beside the Template File box, click the Browse button.

3 Navigate tothe folder locationof your template file and clickOpen.

Page Sections
A page is separated into a set of subpages, commonly referred toasthe page
sections. The page template acts as a placeholder for these page sections. You
can reuse these individual page sections in separate files that are included at run
time using the page template.

Page Section Files

The
corresponding
pagesection
page
fileis
section
a JSPon
orASP.NET
apage.Youfile
canthat
have
rendersthecontent for the
differentfilesfor different

page sections. For example, (or


Generic_ShortcutsBar.aspx thedefault
.jsp)forthe
Report Execution page uses
header section and
Report_Content.aspx (or .jsp) for the content section. You can use a different
predefined page section file or use your custom file associated with a page
section.

Allnew pagescreated in MicroStrategy Web use the page sections defined


onthe Default Page unless you explicitly choose to overwrite the page
sections using the following procedure.
To change a page section file:

1 On the Template Properties tab of the page editor, click the appropriate
page template tab.

2 Under
appropriate
Click page
on thesection
sectionand
youselectChoose
wouldlike to replace,
a new file.
right-click
The following
the

image shows theavailable options when you right-click a page section:

3 You can choose the Make section empty option, if you want to leave the
page section empty. Similarly, you can choose theEditcurrent file option
to edit the existing file associated with the page section.

4 Navigate to folder location of your file and click Open.

Web GUI Components


Web GUI Components are combinations of beansand styles.A beanis designed
with properties thatspecify exactly whatkindof datathe object should house,
and exactly how the object should execute and interact with Intelligence Server.
However, to render a beans data, you need to use styles. The bean can be
associated with a style in several ways, but it is a good practice to make the
of to perform
The
entire
partial
association
provides
advantages
Atemplate
page.
pageupdates
abetter
bydesigning
can
userhave
after
experience
amultiple
certain
Web GUIbecause
manipulations,
WebGUI
Component.
itenables
Components.
rather
AWebGUI
the application
than refreshing
Component the

designing Web GUI Components on top of beans include:

They enable you to combine styles directly with beans.

You can define the features necessary to view or use each Web GUI
Component.

You can useinline frames toenable dynamic partial updatesof pages where
Web GUI Component is used.

Creating WebGUI Components

You can create Web GUI Components fora page template usingthe Display
Web GUI Component Wizard.

To create a Web GUI Component:

1 In Eclipse, in the Web Customization Editor, in the Application Settings


view,under MicroStrategy Web Configuration,expand Pages.

2 Double-click the MicroStrategy Web page to which you want to add a Web
GUI Component.

3 Click the Template Properties tab.

4 Click thetemplate towhich you wanttoaddthe Web GUI Component.

5 Under Display Components, click Newtolaunchthe DisplayWeb GUI


Component Wizard (Create). The following image shows the first window of
the Display Web GUI Component Wizard (Create):

To edit an existing Web GUI Component, under Display Components, click


Edit. This launches the Display Web GUI Component Wizard (Edit) that has
the same windows and options as the Display Web GUI Component Wizard
(Create). Similarly, to delete an existing Web GUI Component, under
Display Components, click Delete.

6 In the Component Name box, type the name of Web GUI Component.
of
7 If
isExamples
the
a container
Web GUIcontained
check
Componentis
box.
beans ainclude
container
ObjectBrowserBean,
bean,selectthe This component

FormulaBarBean, andSortEditorBean.

8 In the Web Bean associated with this component drop-down list, select the
appropriate bean.

Each Web GUI Component includes a base bean that ties the Web GUI
Components functionality to abean defined on thesame page.

9 Select the Enablethis component only when certain features are


available to a user check box, if you want to associate features with the
Web GUI Component.
If a feature is not available to a user, the Web GUI Component will not be
rendered for the user.

10 Click Next.

11 In the left hand pane, select the appropriate features to be associated with
the Web GUI Component. The following image shows the second window of
the Display GUI Component Wizard (Create):

12 Click the >> button to move the selected featurestothe righthandpane.

13 Click Next. The following image shows the third window of the Display GUI
Component Wizard (Create):
14 In the Style associated to this component, type the name of the style
associated with the Web GUI Component.

The specified style is used to render the Web GUI Component for display. If
you specify a style name, it overrides any defaults specified in the
underlying bean definition.

15 Check the From Preference check box, if appropriate.

This setting specifies that the style definition should be taken from the user
preferences rather than from the style catalog file.

16 If you wanttoaddany event, under Events to triggerarefresh action on this


component, click Add to launch Dialog - Create New Event window as
shown in the following image:

17 Beside the Select the enumeration box, click Browse.

18 In the Select Enumeration window, in the Enter type name prefix or pattern
box, type the appropriate name prefix or pattern.

19 Under Matching types, select the appropriate enumeration.

20 Click OK.

21 In the Select the enumeration constant drop-down list, select the


appropriate enumeration constant.

22 In the Bean associatedwith thisevent drop-down list,selectthe appropriate


bean.

23 Click OK.

24 Click Next.

25 Click Finish.

Shortcuts
A shortcut is simply a hyperlink defined in the page configuration file. A group
of shortcuts is called a shortcut list. A shortcut list can be defined in a page or
inherited from the Default Page.

Shortcut Properties

A shortcut has a number of properties indicated by the following attributes:

NameThisis thenamewithwhich this shortcut is known to the rest of the


application.

HRefThisprovides theURLfor the hyperlink.This maybeto another


MicroStrategy Web page or to any non-MicroStrategy Web page. This
property
with it. The
iseffectiveonly
out-of-the-box
if ashortcuts
shortcutare
doesnot
defined
have
based
an event
on events.
associated

Descriptor IDThis refers to a key in a localized descriptor file (Messages


Bundle
DescriptorThisisa
title
available,
if noDescriptor
file).
DescriptorIDisavailable.
ishardcoded
ignoredbythe
descriptor
However,
MicroStrategy
thatis
iftheincludedinthepages
Descriptor
Web application.
ID is

Extra URLThis defines a URL segment that is appended to the links URL.

Base BeanThis indicates the bean in the pages bean hierarchy that is
associated with the shortcut. This bean is used in tasks, such as resolving
features. Ifthisattributeis not set, theapplication triestouse the base-bean
TargetThisindicates
when
attribute
the fortheshortcut-list-set
shortcut link isclicked.
thetargetelement.
windowto which the requestisdirected

IFrameThis isaboolean attribute.If its value issettotrue,the shortcut


link uses the MicroStrategy Web applications iframe infrastructure to
Append
submit theusers
StateThis
requesttothe
isa boolean
Webserver.
attribute which indicates whether the

string
shortcut
information. If this state.Thestate
needsto append attributeissettotrue,theapplication
includes the MicroStrategyURL
will
append the state information to the hyperlink created using the shortcut. If
the value issettofalse,thestate information is notincluded withthe
hyperlink.

If the shortcut points to a MicroStrategy Web page, such as the Report


Executionpage,or the Document Execution page, where you want to pass
the state of a bean, you set the Append State as true.However, if you are
creating a hyperlinktoan external website byassigninga valueto the HRef
attribute of theifshortcut
For example, you wantthe
node,you
shortcut
will to
typicallysetAppend
point toanexternal
State
Website
tofalse.
such

MicroStrategy
shortcut
as http://www.google.com
node (which
URL information
pointsbut
tothe
set
will
Append
Googles
be appended
Stateto
website).
totrue,the
the
Consequently,
HReftag ofthe
you

are likely to get an error on the Google website.

Image SourceIf the shortcutis represented as an image,this attribute


indicates the sourcepathoftheimage.

Display thismenu
availableThis indicates
item onlyifthe
a feature orfollowing
MicroStrategy
feature(s)is(are)
privilege thata
must have to access the pages content. If the featureisnot available user
to the
user, the page will not be displayed and the user will be redirected to the
access
To seedenied
a list ofpage.
features, click the Modify button.

when if thefeature
EventidThis
indicates
rendered,
Checka thismenu
user
whetherashortcut
clicksthe
indicates
itemshortcut.
isifthe
the
available
shoulddisplay
idfollowing
associated
to theuser.
feature(s)
withthe
checkedevent
is(are)availableThis
or uncheckedwhen
tobe performed

ActionThis indicates the actiontobe performed whena user clicks the


shortcut. Possible values for this attribute are check,uncheck,enable,
disable,and refresh.
isused
StateThis
shortcutsarechecked,unchecked,and
attribute state
indicates
matches
thatthe
this attributes
event value.
hidden.
bythe
Possible
shortcut
values
only
forwhenthe
this

associated
BasebeanThisindicates
with the event. This
thebeanin
bean isusedin
the pages beanhierarchy thatis
tasks, such as resolving
features.

Template Shortcuts Wizard

The Template Shortcuts Wizard enables you to edit shortcuts for a page
template. Using this wizard, you can remove all shortcuts, inherit them from the
main template,select individualshortcuts todisplay, add a new shortcut, or
rearrange existing shortcuts.

To edit
1 In
Template
theWeb
shortcuts:
Propertiestab.
Customization Editor,inthe appropriatePage editor,click the

2 In the Template Properties editor, select the appropriate tab (such as


Default or Processing)for your template.

All new pages created in MicroStrategy Web use the shortcuts defined on
the
bar Default
displayedatthe
Page. If you
topofthe
wanttomodify
MicroStrategy
theshortcuts within theshortcuts
Web pages that inherit the
Default Page, select the Default template.

3 In the Template Properties editor,clickEdit Shortcuts.

4 In the Template Shortcuts Wizard, under What would you like to do with
the
shortcuts,
shortcuts.
Inherit
Remove from
all
select
shortcutsThis
Main
oneTemplateThis
ofthefollowing
optionoption
options:
enables
enablesyou
youto remove all

to inherit
shortcuts from the main template.

Select Individual ShortcutsThis option enables you to select


individual shortcuts from the main template.

Add New ShortcutThis option enables youtoadda new shortcut on


your template.
Rearrange ShortcutsThis option enables you to rearrange the order
of shortcuts.

5 Click Next.

6 Depending on the option you selected on the previous window, do one of


the following:

If you selected the Select Individual Shortcuts option, clear the check
boxes
click Next.
forany shortcut that youdo not want to include on a page, and

If you selected the Add New Shortcut option, provide information about
the relevant shortcut properties. When done,clickNext.

If you selectthe
pane, selected the
appropriate
Rearrange Shortcuts option, under the Shortcuts
shortcut and reorder its position using the
up or down arrow. When done, click Next.

option,
If you selected
you arethe
takentothe
Removeall
lastwindow
shortcuts or
ofthewizard
the Inheritfrom
whereMain
youcan
Template
click

Finish to exit the wizard.

7 Click Finish to exit the wizard.


Create and Remove Pages
AddingaPageRemovinga
Page

After completing this topic, you will be able to:

Create or remove apage from the MicroStrategy Web application.

Adding a Page
The Web Customization Editor provides the following options for adding a new
page in the MicroStrategy Web application:

Add a new empty page

Duplicateanexisting page

Add a new page using Edit/Create Page Wizard (Create)

When
existing
adding
page andmodifyitthanto
pages within the application,
build anewpagefrom
itisoften easier tocopyan
scratch.

Add a NewEmpty Page


of
The Web Customization Editor provides you the option creating anew empty
MicroStrategy Web page with onlythe basic properties defined.

To add a newempty page:

1 In the Web Customization Editor, in the Application Settings view, under


MicroStrategy Web Configuration, right-click Pages.
2 Select New Empty Page.

3 In the Name box, type the name for the page.

4 Click OK. The new empty page gets created and it opens on the right
displaying the Basic Properties tab. You can define properties for this page
using the various tabs at the bottom.

5 Click Save.

Duplicate an Existing Page

MicroStrategy Web pages borrow the concept of inheritance from object-


oriented programming. That is, you can create new MicroStrategy Web pages
using pages that have already been defined and exist in MicroStrategy Web. The
new inherited pages take over (or inherit) all characteristics (such as page
sections, beans,events, and soforth)of the existing MicroStrategy Web pages.

The Web
youCustomization Editor enables you to create or duplicate a new page by
When acopyofanexisting
making duplicate by making
page
a copyofan
orby inheriting
existing
from
page,the
anexisting
pageConfig.xml
page.

delta file containsthe entire XML definition ofthe existing page. The copied
page is
nolonger
distinctfromthe
impactthe existing
copiedpage
page and
afterany
youhave
changesmade
created it.
to theexisting

When you duplicate by inheriting from an existing page, the pageConfig.xml


delta
duplicateby
file contains
inheriting
onlyasingleline
from the report(ReportExecution)
for the inheritedpage. page,the
For example,if
following
you

line is created in the pageConfig.xml plugin:


<page name="InheritedReportPage" prototype="report"/>

propagated
All
inherited
Any modifications
changes
page
toyou
allpages
formake
madeinan
overriding
willdisplay
thatinherit
existing
the necessary
in
fromit.You
MicroStrategy
the pageConfig.xml
portions
can also
of
Webpage
the
customize
delta
inherited
are
file.automatically
the
Non-
Web page.

modified settings continue to be inherited from the parent page.


To duplicate an existing page:

1 In the Web Customization Editor, in the Application Settings view, under


MicroStrategyWeb Configuration, expand Pages.

2 Right-click
and select oneofthe
the existing
following
pagethatyouwant
options: toduplicate, pointtoDuplicate,

by making a copy of this page

by inheritingfrom thispage

You can define additional properties for the duplicated page by accessing
the pages editor using the Web Customization Editor. You can also
rename the page usingthe Namebox in the Basic Properties tab of the
pages editor.

3 In the Duplicate Page window, in the Enter a new name for the page below
box, type the name ofyour newpage.

4 Click OK.

Add a New Page using Edit/Create Page Wizard

You can add a new page in the MicroStrategy Web application using the
Edit/Create Page Wizard (Create). This wizard enables you to create a new
MicroStrategy Web page by copying or inheriting from an existing
MicroStrategy Web page.

You can also use the Edit/Create Page Wizard (Edit) to edit an existing
page.

To launch the Edit/Create Page Wizard:

2
1 TolaunchtheEdit/Create
MicroStrategy
In the Web Customization
Web Configuration,
Page
Editor,
Wizard
in
right-click
the(Create),
ApplicationSettings
Pages.
selectNewPage.
view, under
3 In the first window of the Edit/Create Page Wizard (Create), select one of
the following options:

from,
To addandinthe
a newpage bycopying, select Adda newpage by copying
drop-downlist,
select the appropriate page.

To add a new page by inheriting from, select Add a new page by


The inheriting
following image
from,shows
and inthe
thedrop-down
first windowof
list,select
the Edit/Create
the appropriate
Page Wizard
page.

(Create):

4 Click Next.
5 In the Name box, type the page name.

6 In the Description box, type the page description.

7 Click Next.

8 Under Display template when the status of the page is, select the
appropriate status check boxes.

9 Click Next.

10 select
In the theappropriate
Display thistemplate
status.whenthe status of the bean is drop-down list,

11 Under Click on the section you would like to replace, click the appropriate
page section.

12 In
.ascx/.jsp
the Openfilewindow,browse
tobe usedinthepage
to theappropriate
section. folder andselect the

13 Click Next.

14 Under Pick thetoolbars to be displayed on the page, select the appropriate


check boxes.

15 Click Next.

16 Under Would you like to include menus on a page, click either Yes or No.

17 Click Next.

18 Click Finish.

Removing a Page
You can use the Web Customization Editor to remove a page from the
MicroStrategy Web application. However, you need to be careful when
removing pages as deleting the wrong page can result in errors in the
MicroStrategy Web application.

To removeapage:
1 In theWebCustomization Editor,inthe

Application Settings view, under


MicroStrategy Web Configuration, expand Pages.

2 Right-click the existing page that you want to delete, and select Delete.

3 In the Confirm Delete window,clickYes.


Lesson Summary
A MicroStrategyWeb pagedoesnotcorrespond to a single JSP or ASP.NET
file. Rather it is composed ofasetofsubpages or sections, each of which
may or may not include a set of Web components.

pageConfig.xml
The page
entire MicroStrategy
configurationfile
and isWeb
located
application.
is an
inthe
XMLWEB-INF/xml
file
Thethat
default
defines
file
folderofthe
theframework
nameis Webfor the

application. This file defines thestructure of each and everypageinthe


application.

In the Web Customization Editor,all page nodes are represented as


The
subfolders
one notable
sequentialorder
under
exception.
thePagesfolder.
ofTo
theutilize
child the
pagenodes is generally
Default Page, it mustunimportant,
be the first page
with

defined inthelistof page nodes.

application
The Defaulttoshare
Page enablesmanypagesin
similar settings suchyour
asa MicroStrategy Web
common header, footer, and
shortcut list.

Every
properties
Properties
pageaboutthat
tabof
containsanumber
a page
page.Youcan
editor.of attributes
view these
thatproperties
serveto describe
inthe Basic
basic

Feature is a generic term for a variety of preferences, privileges, or


MicroStrategyWeb
The
settings
pagetemplate
that canbeused to controlthe availability of functionality in
defines
applications.

the overall layout of the different sections on a


page.

You can define template-related properties using the Template Properties


tab of apageeditor.

Template status determines the template to be used for a page. A single


The
pagetemplatefile
canhavemultiple
isa JSP
templates
or ASP.NET
depending
file thatdetermines
on thestatus of
thelayoutof
thepage. the
different page sections for a page. This file defines the size, shape, and
relative position of each specified page-section.

A page isseparated into a setofsubpages, commonly referred toasthe page


sections.

Web GUI Components are bean-style combinations.

You can createWeb GUI Components for a page template using the Display
Web GUI Component Wizard.

Container beansare JavaBeansthat hold otherbeans, referredtoaschild


beans or contained beans. Container beans enable you to control the layout
of child beans and manipulate them programmatically asa group.

A shortcut is simply ahyperlink definedinthe page configuration file. A


group of shortcuts is called a shortcut list. A shortcut list can be defined in a
page or inheritedfrom the default page.

The
template.
Template Shortcuts Wizard enables youtoedit shortcuts for apage

adding/removing
The Web Customization
a pageinthe
Editor MicroStrategy
providesvarious
Web
optionsfor
application.
5
MICROSTRATEGY WEB BEANS

Lesson Description

This lesson describes beans and how you can render bean data for display. You
will become familiar with the purposes of beans, their properties, and how to
add or remove beans.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Understand the purpose of beans. Describe bean properties and how to add and
remove beans.

AfterUnderstand
completingthe
the topics in this lesson, you will beableto:

purpose of beans in MicroStrategy Web and describe


various bean properties.

Discuss methodsfor adding and removing beans.


Beans Properties
OverviewBeansFolder

Bean Properties Overview


Initialization and Request Properties
Styles and Beans

After completing this topic,youwill beable to:

Understand the purpose of beansin MicroStrategy Web and describe various


bean properties.

Overview
Beans represent blocksof MicroStrategy data (for example, a reports data, or
the contents of a folder). Beans enable you to bring MicroStrategy data onto the
page.

Beans Folder
Beans are childrenofthe
bean-independent initializationthat
pagenode. enablesa
Pagescreateandinitialize
custom application
beans.
to initialize
Itisthis

and use beans within the MicroStrategy Web framework.

In the Web Customization Editor, beans are displayed under the Beans folder of
the appropriate page. The following image shows the Beans folder, along with
its component beans, under the report(Report Execution) page:

BeansFolder
Bean Properties Overview
A bean has various properties associated with it. You can view these properties
on the Bean Properties tab of a page editor.

To access the Bean Properties tab:

1 In theWeb CustomizationEditor, in theApplication Settings view, under


MicroStrategy WebConfiguration, expandPages.

2 Expand the appropriate MicroStrategy Webpagethat hasthe bean whose


properties you want toviewor modify.

3 Expand the Beans folder.

4 Double-click the appropriate bean to launch the Bean Properties tab. The
tab displays the various properties associated with the bean.

The followingimageshows the BeanPropertiestab forthe sortBeanbean in


the Report Execution page:

sortBeanBean PropertiesTab
A brief description of some of the bean properties is as follows:

NameA name is a unique identifier for the bean so that it can be called by
a MicroStrategy Web page. This attribute is required for all beanssystem
and custom.

The URL API uses theNameattributeinthesrcparameter of the URL to


specify the bean that handles the event. In addition, the
<web:displayBean>Custom HTML tag in a template or page section file
uses the Name attribute to specify which bean to render.

System BeanThisspecifies the bean class usedto instantiatea system


bean. This attribute is required for system beans but is not defined for
custom beans.
System beans are defined in the EnumSysBeanNames interface.

Event HandlerIf specified, this defines an event handler attribute to


associate withthe parent bean.

different
The eventtype
Handlers panein
handler
musthavetheir
theWeb
onlyapplies
Customization
ownevent
to the specified
handlers
Editor.
bean.
specified
Any child
under
beans
theof
Event
a

this
beans
Persistence
stateinformation.
ofstateinformation
the bean
ModePersistence
between
The Persistence
isrequests
stored.isa
Mode
The
somechanism
that
valuesarelistedbelow:
attribute
subsequent
by
determines
which
requestscan
youstore
ifandhow
access
the the

DefaultThebean statewillnotbepersisted across userrequests; that


is, thebeanstate will notbesavedbeyond the scope ofagiven page. For
example,
Defaultas
Editor, SubtotalsEditor,
many
theseapplication
editorsdonot
andbeans
sorequire
forth,have
associatedwith
persistence.
Persistence
editors,
Modeset
suchasSort
to

RequestThe bean state will be passed with and restored from the
request
manipulation,
PreferencesThe
no MicroStrategy
objectbetween
andbeanusesthis
FolderBean
beanstate
pages. isattachedto
Example:
during
persistence
folder
ReportBean
user
mode.
browsing.
preferences.
duringreport
Currently,

SessionThe bean state will be saved to and restored from the


throughout
user
HttpSession
lifetime
choosesa
ofauserssession.
theuserssession.
object;that
template, is,
thatselection
Example:
the bean state
TemplateFilterExecBeanif
willbe
will retainedacross
be saved throughout
pages
athe

FeaturesIf specified, the features attribute indicates one or more features,


or
instantiated.
privileges, thatmustbeavailable tothe userfor this beantobe

is
specify
Event Handlers
the fully-qualifiedclass
panelThis setting
name in
forthe
the Event
eventHandlers
handlers for
panel
the implicit
used to

bean
child
where
and are
hierarchy
beans.
applicable.
propagated
Ifspecified,these
in thepage
Implicit
down fromthe
child
configurationfile
event
beansare
parentbean
handlers
beans
but
are
leveltoimplicit
thatdo
are
addedto
created
nottheparent
appearinthe
childbeans,
bean
programmatically by the parent bean.

For example, report beans and report writer beans can have prompt beans
and viewbeansasimplicit children; document beans can have prompt
beans as implicit children.

Initialization and Request Properties


Before a bean can represent an actual MicroStrategy object, properties such as
the object ID (report ID, folder ID and so on) and others must be set. Bean
properties can either be set as initialization properties or request properties.
Initializationandrequestproperties serve topopulatethe beanwith
information about the specific MicroStrategy datato which it shouldprovide
access.

Initialization Properties

Initializationproperties
properties are are set immediately afterthebeanis instantiated. These
generally not dependent on a specific request, but rather serve to
provide detail as to how the bean should operate once the remainder of its
properties are set.

Typical examples of initialization properties include:

Maximum wait time for areporttoexecute will often be the same regardless
of the report to be executed.

The numberof rows inareport to fetch at onetime(that is, the incremental


Howoften
fetchsetting)
regardless of
MicroStrategy
what
can be
report
drawnfrom
is
Webexecuted.
polls
userIntelligence
preferencesand
Serverwill
willbethesame
generally be

independent of the report or document executed.


Request Properties

Request properties are generally parameters that relay information specific to a


users uniquerequest tothebean.Examples include a specific report a
ReportBean should execute, or specific folder a FolderBeans data should
represent.

Requestexamples
generallylargelydependent
Typical propertiesare veryimportant,
on therequest
as thedata
(suchasthe
desiredby
linkclicked
theuseris
bytheuser).

of request properties include:

The Report ID (or Template and Filter IDs) for a report execution request

Theview
The Folder
modeforthe
ID ofafolders
report
contents
request
to bedescribed

The attributes
correspond of theproperty
to the beans methods
nodes
and
ofthe
the parameters
initialization
(arguments)
and requestofproperties
the
of
methods. For example, in the previous example, the value, objectID, the
name attribute corresponds to the setObjectIDmethod of ReportBean. Refer
to the API Reference for the appropriate bean to find various methods
associated with it.

Characteristics
Both ofrequestproperties
initialization and Properties have the following characteristics:

NameThis specifiesthe name of the property.

TypeThis specifies the type of the property. The possible values are
string,int,boolean,float,double,and flag.

SourceThis specifies the source for setting the property. The possible
valuesareasfollows:

requestRequest parameters in URL. For example, a request that


specifies thefolder to display.
enumName of the enumeration constant.

constantSame value for all users. For example, Root folder.

preferenceName of preference. This preference is set by the user. For


example, thenumberofrows, columns, and so on as set by theuser.

browserSettingSet using a cookie or browser setting.

featureName of thefeature.

The value of Source for a request property is always request.The value of


Source for aninitializationpropertyis typically constantor
preference.

ValueThis specifiesthevalue for the property. For example for constant,


it could be 13,Subtotals,or true.For request and preference properties,
YoufolderType.
can
the addisordelete
value thename of theparameter. Examples includefolderIDand

initialization or request properties using the


Add or Delete buttons, respectively on the Initialization Properties and Request
Properties tabs.The following image shows the Initialization Properties and
Report
Request
sortBeanInitialization
Executionpage:
Propertiestabs insidetheBean
and RequestProperties
PropertiesTabs
tab for the sortBeanin the
Styles and Beans
Beans can have default style information included in their definitions to specify
the style that must be applied to the bean to render the content. You can define
the following style-related properties:

StyleThis specifies the name (such as ReportGridStyle) of the style to be


applied to the bean.

NameThis specifies the nameof the style property (such as imgWait or


cssPrefix).

TypeThis specifies thetype of the property.The possible values include


STRING,INTEGER,BOOLEAN,andFLOAT.

SourceThis specifies the source for setting the property. The possible
and
values
feature.
arerequest,enum,constant,preference,browserSetting,

ValueThis specifies the value for the property. For example, for LevelFlag,
it could be123775.
Adding or Removing Beans
AddingBeansRemovingBeans

After completing this topic,you will be able to:

Discuss methods foradding and removing beans.

Adding Beans
You can add a new bean to a MicroStrategy Web page using the New Web Bean
Wizard. The new bean is automatically added to a MicroStrategy Web page.

To add a bean:

1 In theWeb Customization Editor, in the Application Settings view, under


MicroStrategy Web Configuration, expand Pages.
to
2 Expandthe MicroStrategy Web page towhichyou want add a new bean.

3 Right-click the Beans folder and select New Bean.

4 In the New Web Bean Wizard window, in the Name box, type the name of
your bean.

5 If creatingasystembean, select SystemBeanand clickBrowse. Inthe


Select System Bean window, type the system bean name prefix or pattern,
OR
select the system bean, andclickOK.

If creatingacustom bean, select Fully qualified bean class, and click


Browse. In the Select Bean Class window, select your bean class and click
OK.

The Fully qualified bean class indicates the fully-qualified name of the
bean class that should be used to instantiate the custom bean. This
attribute is used only for custom beans, not system beans.

6 In the Persist Mode drop-down list, select the persist mode.

7 Click Next.

8 If appropriate, in the Select the features to be associated, select a feature,


and, using the >> button, add the feature you want to associate with the
bean.

9 Click Next.

10 Under
to associate
Is thereacustom
anevent handler
eventforyour
handlerfor
beanand
this bean,select yes if youwant
selectno otherwise.

11 If you selected yes, beside the Event Handler box, click Browse.

12 In the Select - MicroStrategy class window, in the Enter type name prefix or
pattern box, type the name prefix or pattern.

13 Under Matching types, double-click the appropriate event handler.

14 Click Next.

15 Under Select the properties you wish to add, select the properties, and using
the >> button, add the initialization properties you want to associate with
your bean.

16 Click Next.

17 Under Selectthe properties youwish toadd,selectthe properties,andusing


the >> button, add the request properties you want to associate with your
bean.

18 Click Next.

19 Click Finish.

20 Click Save.

Removing Beans
You can use the Web Customization Editor to remove a bean associated with a
MicroStrategy Web page. However, you need to be careful when removing beans
as deleting the wrong bean can result in errors in the MicroStrategy Web
application.

To remove a bean:

1 In the Web Customization Editor,inthe Application Settings view, under


MicroStrategyWeb Configuration, expandPages.

2 Expandtheappropriate page.

3 Expand the Beans folder.

4 Right-click the bean that you want to delete and select Delete.

5 In the DeleteBeanwindow, click Yestoconfirmthe deletion.


Lesson Summary
BeansinMicroStrategy Webrepresentblocks of MicroStrategy data (for
example, a reports data orthecontentsofa folder). Beans enable you to
bring MicroStrategy data onto the page.

Bean properties can eitherbesetas initialization properties or request


properties.

Initialization propertiesareset immediately after thebean is instantiated.

Request
to a users
properties
unique request
are generally
to the bean.
parameters that relay information specific

You can add or remove a bean associated with a MicroStrategy Web page.
6
TASK INFRASTRUCTURE

Lesson Description

This lesson introduces you to the MicroStrategy Webs service-oriented


architecture, task infrastructure, and tasks.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Describe MicroStrategy Webs service-oriented architecture and use the Task


Administrator.

After
DescribeMicroStrategy
completing thetopicsinthis lesson, you willbeableto:

Webs service-oriented-architecture and task


infrastructure.

Describe theroleofthe Task Administrator, use tasks, and create tasks.


ServiceOriented Architecture
ServiceOrientedArchitectureOverviewBenefitsofServiceOrientedArchitecture

Task Infrastructure
Tasks
Functions
Task Request
ofTasks
Workflow

After completing this topic, you will be able to:

Describe MicroStrategy Webs service-oriented-architecture and task


infrastructure.

ServiceOriented Architecture Overview


MicroStrategy Webhas a service-oriented architecture, which enables it to
provide services to multiple applications. In a service-oriented architecture,
discrete chunks of functionality are built as services, referred to as tasks, that
can be accessed by many applications in many different ways. This style of
architecture centers around breaking up application and infrastructure
functionality into a series of independent services with well defined interfaces.
Althoughavarietyofmiddlewareinfrastructures couldbeusedfor thisstyleof
development, standards make it feasible to mix systems from many companies
on many platforms and have them interconnect.

The
MicroStrategy
following imageillustrates
platform: the service-orientedarchitecture ofthe

ServiceOriented Architecture
Benefits of ServiceOriented Architecture
The service-oriented architecture offers the following benefits:

1 ReusabilityA service can be reused by multiple clients.

2 DiscoveryA service can be descriptive, enabling it to be discovered by


external mechanisms.

Task
The task Infrastructure
infrastructureisaset ofcomponents that facilitates highly-interactive

Web and Web services-based applications. It enables you to take advantage of


cross-platform technologies such as Microsoft Silverlight, Ajax, JavaScript
Object Notation(JSON),Flex, andWeb services tobuildRIAs, mashups,and
other composite applications. The infrastructure also enables you to exchange
small amounts of data with the Intelligence Server, without requiring an entire
Web page to be reloaded for each request. As a result, the use of task
infrastructure
usability. resultsin improvedinteractivity, speed,functionality, and

The followingimage illustrates


MicroStrategyfunctionality
leveragingthe tobehow
accessedfrom
the task infrastructure
anyclientorprotocol,
enables

MicroStrategy Webs service-oriented architecture:

Task Infrastructure

As a result of the MicroStrategy Web task infrastructure, you only need to build
and register your tasks once. and they can then be used by a variety of different
client applications, including MicroStrategy Web, mobile devices, portals, and
so forth.

Tasks
The task infrastructure consists of various Java objects called tasks. A task in
MicroStrategy Web isa well-definedoperation thatis packaged asaWeb-
accessible service. Tasks receive inputs (also referred to task parameters),
perform custom data collection, and generate content. Examples of tasks
include logging in or out, executing a report or document, adding a
mobile
Tasks
another
visualization,deploying
browser
aredesignedto
device.
usingavariety
toa serverora beofprotocols,
awidget,
remotelyand
accessible
includingan
performing
fromHTTP
avariety of actionsfrom
one machineor
requestfrom
deviceto
a Weba

Web service call from a client to a server using the


SOAP protocol. As a result, you need to build a task only once and it can then be
used everywhere. For example, it can be called from HTTP, URL, Web services,
for
COM,
MicroStrategy
use.NET,
out-of-the-box.In
orprovides
Java,withthe
several
addition,
underlying
pre-built
you can
tasksthat
implementation
build custom
are registered
tasks.
being the
andavailable
same.

Functions of Tasks
All tasks perform twoessential activities:

Data collectionData collection is the process of using the supplied task


parameters to dynamically generate data, typically through one of the many
MicroStrategy Web APIs. Data can also be collected through the use (or
reuse) of a bean event handler. The amount of data collected (and
serialized)istypically smaller thanthatof an entire Web page. In particular,
the amount of data to collect is the minimum amount required to fulfill an
immediate user request.

Content generationContent generation is the process of serializing the


data that is collected into a form that can be consumed by the caller. Some
of the most commonformatsfor serializingthis data are XMLand JSON.
Task Request Workflow
All generatedcontent is containedina MarkupOutput object instance.
When a client application submits a task request, a series of steps are executed
that makes up the task request workflow. In general, the client applications can
be grouped into following two categories:

Web servicesbased client applicationsThese applications


communicate with MicroStrategy Web using theSOAP protocol.

Web client applicationsThese applications communicate with


The MicroStrategy
following image
WebusingtheHTTP
depicts the task requestworkflow
protocol. involving both groups of

client applications:

Task RequestWorkflow

The
request:
following steps are performed when a client application submits atask

1 Client applications(also referred to as consumers) such as MicroStrategy


Web, portals,Flexclients, or mashups, submit a task request.

2 The request is sent to MicroStrategy Web. Depending on the type of client


application, the request is handled by one of the following two components
on the MicroStrategy Web Server tier:

Web Service Framework componentsThese components (also


referred to astheservantobjects) receiveSOAP requests from the Web
services-based client applications on a specific port and process it.
Using
framework
is
task
Task
Web
Processor
themapped
Task
parameters,isthen
client
Processor
theProcessor.
third-party
Controller,
toa
applications,
or Microsofts
specific
ServletThisservlet,
vendors
receives
task.
passedto
and
.NET
The
passesthe
andprocesses
framework,
framework,
task
theTaskProcessor.
request,along
in
task
coordinationwith
suchasApachesAxis2-
theincomingSOAPrequest
request
all HTTPrequests
withthe
and parameters
the
relevant
from
Taskto
the

4
3 error
The
creates
Aftertask
message
receiving
anperforms
instance
isreturned
the the
request,the
of the
necessarydata
requested
totheclient
Task task.Ifno
Processorchecks
application.
registered
theTask
task isregistry
found, an
and

collection. To do so, it initializes the


appropriate bean (for example, it initializes ReportBean in the case of a
report execution request), and invokes the appropriate event (for example,
5 event
After the
4001in
data caseofreport
hasbeen collected,the relevant style is appliedtorender
execution).

the
bean's output.

The transform
defined inthe styleCatalog.xml
and thelayout definition
file. file associated withastyle are

6 The generated contentissent backtothe Task Processor.

7 The Task Processor passes the output content to the requesting Web
8 The
services
requested
framework
outputis
component or the task processor servlet.

sent to the client application.

An exception israisedif there are problems withtherequest at anystage.


Workingwith Tasks
Task Administrator
Discovering andTestingTasks
Creating Custom Tasks

After completingthistopic, youwillbeable to:

Describe the role of the Task Administrator, use tasks, and create tasks.

Task Administrator
is of
TheTask Administrator part the MicroStrategy Webapplication.Itprovides users with accesstothe names, descriptions,
andparameters for allregistered tasks,and enables userstoconstructandtestURLs thatinvoke thesetasks.

To launch Task Administrator:

1 Open the Task Administrator application using one of the following URLs:

J2EE environment:

http://webserver:port/MicroStrategy/servlet/taskAdmin

where webserveristhemachinethathoststheWeb application server and port is the port number to which the Web
application serverlistens.

.NET environment:

where webserver is the machine that hoststheWebserver.


http://webserver/MicroStrategy/asp/taskAdmin.aspx

Task Administrator Tabs

The Task Administrator application consists of the following four tabs:

HomeThis tab provides a list of all tasks that are currently registered with the Task Administrator. These include predefined
with The
image
tasksshipped
Task AdministratorHome
displays the Hometab:
MicroStrategy
TabWeb,aswellasanycustom tasksthathavebeen addedbythe administrator. following

ParametersThis tabenablesyou to examinetheBuilderforall registered tasks.


for
ConfigurationThistabliststhebasic
BuilderThistabenablesyoutocreatea configuration
URL requestinformation
any of the
forregistered
the Task Administrator.Theparameters
Tasksandsubmitittoinvoke theTask.
shown on the

Homepage
change the valueof
andtheir
these
current valuesare foundinthe microstrategy.xml file.You canusethe Web Customization Editorto
parameters.

Discovering and Testing Tasks

Discovering Tasks

MicroStrategyprovidesseveral pre-builttasks that areregisteredandavailable foruseout-of-the-box. You can locate these tasks
by accessing the Home tab of the Task Administrator. This tab displays all available tasks along with the taskId and description.
For example, the task for logging in is as follows:

taskId = login

Description = This creates a new Intelligence Server session.

Ifyoucannotfindan existingtaskthat meets your needs, you can build your own task and register it in the Task Registry.
Afteritisregistered, it willdisplayon the Home tab.

TestingTasks
YoucanbuildaURL
testingataskisas follows:
toexecute anexisting task andthen invoke ittosee ifitmeetsyourneeds.Theprocess for buildingand

1 Identify the task parameters to useYou need to identify the parameters to use and the values, if any, you will assign to
them. You can identify the parameters that must be or can be used with the task by clicking the Parameters tab of Task
Administrator and selecting the appropriate task in the Task ID combo box. This tab displays all parameters available for the
selected taskalong with the following information for each parameter:

Name of the parameter

Whether it is a required parameter

Description of the parameter

Task
The
Default
following
AdministratorParameters
value,
image
ifany,of
displaysthe
theparameter
parameters
Tab associated withthe reportExecute task:
Task Administrator
Home Parameters Builder Conguration Thursday, August 1, 2013 1:35:11 PM EST

This page allows you to examine the parameters for all registered tasks.

Task ID: reportExecute

Description: This Task executes and transforms a Report with the style supplied by the caller.

Name Required? Description Default Value


doNotUpdateCaches No Whether not to update the server caches
The parameter to specify the answers for the element
elementsPromptAnswers No prompts

The execution ags to use. See EnumDSSXMLExecutionFlags


execFlags No .
for details.
includeImageMapsSetting No The parameter to update the resultZFlags for image maps
includeOptimizedDrillPathSetting No The parameter to update the result2Flags for drilling
The parameter to specify the answers for the prompts using
I'nkAnswers No the link Answers

maxCoIs No The report's maximum number of columns to get


maxRows No The reports maximum number of rows to get
msgID No The Message ID of a previously executed Report.
objectsPromptAnswers No The parameter to specify the answers for the object prompts
originMessageID No The parameter to speCify the prompt answers using the
preVIous message ID
The parameter to specify the prompt answers using the
promptsAnswerXML No prompt answer xml
reportID No The object ID of the Report to execute.
reportViewMode No The Report 5 View mode. See EnumReportViewModes for
details.
resultFlags No The result ags to use. See EnumDSSXMLResultFlags for
details.
sessionstate No The preVIously established session state to use for this
invocation.
startCol No The report's start column
startRow No The reports start row
I N N The style to use to transform the ReportBean. If omitted, a
Sty e ame 0 simple MessageResult is generated.

valuePromptAnswers No The parameter to specify the answers for the value prompts

2 Select the task to use and create the URLUsing the Builder tab of Task Administrator, you select the task you want to
use. This tab displays the following information:

' Task lDdropdown list to select the task

- Task Envelopedrop-down list to specify the type of format for the output of the task. You can choose from htrnl, xml,
and so forth.

The value you select for the Task Envelope is used as the value of the taskEnv parameter in the task
call. Every task call should include this parameter to explicitly specify how the contents generated by
the task should be packaged.
' Task Content Typedropdown list to specify the task content. You can choose from html, xml, jSOl'l, and SO forth.

' Namespecifies the name of the parameter.

- Required?check box to specify whether the parameter is required.

- Valuevbox to indicate any value.

- lnclude?check box to specify whether to include a parameter.

- Default Valuebox to enter default value for the parameter.

The Task Content Type species how information is rendered and the Task Envelope is the way the information is encapsulated.
For example, if you execute the login task with the XML content type and XML envelope, the final output could be
as follows:
<taskResponse statusCode="200"> <root>
<sessionState>0.000000017ec70b7fl9de882e7dc92073da66589db4707749al60a5fac68277c8a28d4f652e47cE
Tutorial.B19DEDCC11D4wOwtCOOOmB9495DOF44F.O
1033.l.l_lO33.l.l_1033.l.l_3.l.l6</sessionState> <name>Administrator</name></r00t>
</taskResponse>

where the < ta s kRe spons e> tags represent the task envelope and the remaining content represents the task content type.

After you have made your selections, click the Update URL button. A complete URL with the task and task parameters that
you specified is displayed in the pane below. The following image displays the Builder tab of Task Administrator:

Task AdministratorBuilder Tab


A generic, incomplete URL displays when you first open the Builder tab.

3 Test URLIn order to test the URL you have built, ontheBuildertab, click the Invoke URL button. The application attempts
to execute the task, and displays the results.

You can continue to edit the choice and values of the parametersuntil you are satisfied with the result. However, each time
you select or clear a parameter or change a parameter value,youmust click the Update URL button to update the task URL
displayed in the pane. You can then test the new URL byclickingthe Invoke URL button. You can also copy and paste this
URL into a Web browser to test it.

Creating Custom Tasks


You can build customs tasks using the following two methods:

Creating bean-based tasks

Creating Java-based tasks

The following sections provide a brief explanation of each method.

Creatingbeanbased tasksYoubuilda bean-based taskusingabean, anevent,and atransform. Examplesofexisting


bean-based tasks include actions such as executing a report or document, browsing through folders, and saving or deleting
subscriptions.

The advantage of executing a report using a bean-based task is that it enables you to return just the data for the report and
You
return
cancreate
it inthepreferred
bean-basedformat(based
tasksusing thefollowing
onthe style/transform
twoapproaches:
usedto generate thecontent).

Assembling an existing beanbased taskYou can build a new task by assembling an existing bean, an event, and a
transform. If an existing
anew the
bean, event, and transform are used, no Java programming skills are required. However, if a
to
transform.While
Extendinga
youarenot
custom
functionality
For example,
bean,
creating
existing
thatis
if
eventhandler,or
youwantto
this
missing
method
beanbased
bean,
customizetheway
fromthe
oftransformare
task
event,
taskYoucanbuild
creationrequiressome
existingbean,
ortransform
needed,
data iscollected
event,
from
thenyouneed
a scratch.
new
ortransform.
Javaprogramming
taskbyextending
for In
your
towrite
this
task,
case,
you
theJavacode
you
skills,itreducestheamount
an
might
write
existingbean,an
need
the codeonly
to
createthe
extendevent,
for
annecessaryclasses.
existing
anda
ofcoding
required
eventas
handler orcreateanewone, which involves writing a new Java class. Similarly, if you want tocustomize the way content
class.
is generated,
Finally,youmightneedto
youmightwant toextend
provide
anexisting
adifferenttransformor
base class for
create
the beantomodify
anewone,which
thealsoinvolveswriting
tasks behavior if theanewJava
nature of

yourtaskis
causesyour moredynamic
class to be invoked
orthesemantics
and lets youoverridecertain
oftheXMLdo not method
fullyconvey
calls. This
thenatureofyour
enables you to task.
declare
Specifying
some aspects
abaseofclass
by
Creating
your taskthrough
Javabased theXML
tasksThesetasks
andimplement
arebuilt
therest
programmatically
inJava. writingoneormorenew Java classes that definethe

task andthen registering thattaskclassina special task configuration file.ExamplesofJava-based tasks include actions such
as logging in to or out of a Web application, a Flex application, or a mobile application. The advantage of using a Java-based
task to log in to a Flex application is that it lets you easily specify the parameters passed to the task and just as easily retrieve
theinformation returnedbythetaskwithout havingtoparseXML.
the
Task
You canCreation
While
APIs,
create
itwriting
does Wizard
tasks
require
custom
usingsophisticatedJavaprogramming
the
Java-basedtasksisanexcellent
Task Creation Wizard. This wizard
way
skillstowrap
and
enables
involves
upyou
functionality
to
much
create
more
a that
new
effortthantheother
isexposedthrough
bean-basedor Java-based
two approaches.
WebObjects
task.

IntheWeb the
To createanew
1 selectNew Task
Customization
task:
tolaunch Editor,inthe
theTaskCreation
ApplicationSettingsview,
Wizard.Thefollowingimage
right-click
shows thefirstwindowoftheTask
Tasksfolder(oranytaskbelow
Creation
it),and

Wizard:

2 Selectone of the following options based on your customization task:

Create a Task using an existing Bean and Event (XML based Bean Task)Use this option if creating a task by
assembling or extending an existing bean.

3 Click
Create
Next. aTaskby writingaJavaclassonlyUse thisoptionif creating a taskbycreatingyourown Javaclass.

4 In the next window, in the Task ID box, type the task id. The following image shows the second window of the Task Creation
Wizard which contains the Task ID and other parameters:
5 Beside the Fully Qualified Task Class box, click Browse.

6 In the Select Task window, type the task class name, pattern, or prefix to find the task class.

7 Under Matching types, select the task class and click OK.

8 In the Task Description box, type the description.

9 In the Bean Name box, type the beans name.

10 Beside the Bean upon which your Task will be based box, click Browse.

11 In the Select System Bean window, to find the system bean, type the bean class name, pattern or prefix.

12 Under Matching types, select the system bean class and click OK.

13 In the Style to be used to format the data drop-down list, select the style.

14 ForExpose styleas taskparameter, clickeitherYes orNo.

15 If the task parameter is required, for Required, select the Yes check box.
In
16 theDescription forstyle parameter box,typethe description.

17 If creating a class file, select the Create Java Class check box.

18 ClickNext.

19 Select the events to trigger when executing the task and click the >> button. The following image shows the third window of
the Task Creation Wizard:
20 Click Next.

The steps in this topic assume that you did not select any event to trigger your task. If you do use an event, on clicking Next,
you will be taken to a window where you can provide information about the event argument to be used when executing your
task; whether the argument is exposed or not; the argument name, alias, and description; whether it is a required argument;
and the default value of the argument.

21 If you want to add any additional parameters, click Add as shown in the following image:

Task Creation WizardFourth Window

22 Inthe Required column,select thecheckbox ifit isa requiredparameter.

23 In the Description column, type the description.

24 In theDefault Value column, type thevalue.

25 Click Next.
26 Click Finish.
Lesson Summary
MicroStrategyWeb hasaservice-oriented architecture, which enables it to
provide services to multipleapplications.

In service-oriented architecture, discrete chunks of functionality are built as


many
services,
different
referredtoastasks,
ways. that can be accessedbymany applicationsin

The task infrastructure is a set of components that facilitates highly


a
A
interactive
Web-accessible
task inMicroStrategy
WebandWebservices-based
service.Web is a well-defined
applications.
operation that ispackaged as

All tasks perform twoessential activitiesdata collectionand content


generation.

MicroStrategy provides several pre-built tasks that are registered and


available
The Task foruse
Administrator
out-of-the-box.You
displays all canalso build yourowntasks.

registered tasks along with task IDs and


descriptions.

You can createtasks using the Task Creation Wizard. This wizard enables
you to createanew bean-based or Java-based task.
7
STYLES, TRANSFORMS, AND
LAYOUTS

Lesson Description

This lesson describes how you can modify the look and feel of MicroStrategy
Web by changing the data presentation, styles, and layouts.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Customize the data presentation, transforms, styles, and layout definitions of


MicroStrategy Web.

AfterDefinetransforms,
completing the topics
styles,
in this lesson,you will beableto:

parameters, and layout definitions.

Become familiar with the style catalog configuration file, the Styles folder,
and the styleeditor.

Define layout definitions, understand the layout architecture, and learn how
to associatelayout definitions withstyles.
Data Presentation
DataPresentation Overview
Transforms
Styles
Layout Definitions
Transform, Style, andLayout Definition Relationship

After completing this topic, you will be able to:

Define transforms, styles, parameters, andlayout definitions.

Data Presentation Overview


Beans and Web GUI Components access and contain data. However, they do
not contain any information on how the data should be displayed. The rules for
converting the data contained in the beans are stored in the style catalog
configuration file. This file defines the transforms and styles for the entire
application.

Transforms
A transformobject isa Javaclass responsible for generating the outputfrom a
output
specificcanbeinformats
typeofbeans data
such
according
as HTML,
to therules
DHTML,defined
WML, XML,
bythetransform.
PDF, and soThe

forth. However,all transforms packaged with MicroStrategy Web have their


outputs in HTML format.

All out-of-the-box transforms are defined in the style catalog configuration file
and ready to be used by a style. When you create a new style, you must specify
the transformthatwillbeused by that style. The rules defined in a transform
can onlyapplytoasinglebean type, though many transforms can be written for
a bean, providing various alternatives for how that beans data can be displayed.

You can create your own transforms and use them in MicroStrategy Web
products. Since transforms are self-describing,information about their
descriptions, types, and names must be provided while designing them.

in
that
Creating
this
manycustomizations
course.
anewHowever,
transformtheMicroStrategy
requires
can be accomplished
Java programming
Webarchitecturewas
by simply
skillsand
modifying
isdesignedso
notcovered
thelayout

definition or parameters for an existing transform. This enables you to


customize the way that data is presented without creating a new transform
Styles
information
customization
class. Beforeyou
contained
candecide
beaccomplishedmore
intotheTransform
writeacustomParametersReference
easily
transform,
byusinganexisting
you shouldreviewthe
toseetransform.
ifyour

Transforms areresponsible for renderingthedata contained inbeans. Each


transform contains several parameters, which enable you to fine-tune how the
data will render. Transforms typically include parameters for specifying a CSS
file, a CSS prefix, and other parameters specific to the transform.

Specific combinations of parameters and values are saved as styles. A style is


always basedona single transform, and is defined by the values for its
transforms parameters. Thus, many styles can be built upon a single transform.
The TransformStyle
following
parameters
image:are responsible
Relationship
for rendering thedesired output. Consider the
In the preceding image, the ReportGridStyleAccounting style uses the
transform ReportGridTransform with specific values for parameters
showBanding, cssFile, and cssPrefix.

For a list of parameters for transforms, see the Transforms Parameter Reference
in the MSDL.

are
components.
Transforms
notuseddirectly.
containtherules
Eachstyle
Stylesareuseddirectlyto
linksto
that
transformsand
render thedatafurnishedbyabean,butthey
display
containbeansand
values for WebGUI
the

transformsparameters. Thisenables you touse transforms in a flexible manner


without modifying or recompiling Java code.

Layout Definitions
and
Layout
file,
Theycontentofthe
calleda
provideaflexible
definitions
layoutoutputrendered
are
definition
responsible
anda code-free
file, whichincludes
for
bydefining
aapproach
transform.You
thetomodifying
both
layoutof
regular
simply
contents
the
modify
arrangement
onapage.
anXML

HTML elements
as well as MicroStrategyCustom HTMLtags.These elements and tags represent
content from a transform associated with the layout definition. The transform
content is typically well-defined sections of the transform output, such as the
name of the object or the action links in the folder browser transform.
A layout definition file is associated with a transform through a style in the style
catalog configuration file. All layout definition files are located under WEB-
INF\xml\layouts in the MicroStrategy installation directory.

contents
A MicroStrategy
ofafolder.Italso
Webpage,such
provides
asadetailedinformation
Folder Browsing page,displays
aboutthe objectsin
the

the folder, suchasthename and description ofthe objects, owner of the objects,
last modification date of objects and so on. You can customize the level of
Transform,
Relationship
details
also Style,tousing
useyouwanttodisplay
layout definitions and
modify Layout
thelayout Definition
the arrangement
definitions.
ofthe
Additionally,
contentonapage.
youcan

Transforms normally take translate data from beans and translate it into
HTML. Styles set the parameters for the transforms. Layout definitions enable
you to arrange and modify the content and layout of these pieces of HTML
without needinganyJavacode. Therelationships betweenthebean, transform,
style, and layout definition is illustrated in the following image:

BeanTransformStyleLayout Relationship
Transform takes
information and creates
HTML

Read properties
style

Data from
bean
Styles
StyleCatalog Configuration File
StylesFolder
Style Editor
Adding Style
Duplicating a Style
Viewing
Deleting XML
Stylefor aStyle

After completing thistopic, you willbe able to:

Become familiar withthe style catalog configuration file, the Styles folder, and
the style editor.

Style Catalog Configuration File


The style catalog configuration file is an XML configuration file that contains
the information and rules used to render data on a MicroStrategy Web page.
This file defines all of the styles available to the application and all of the style-
related informationincluding transform definitions, bean definitions, and the
parsers and sources for layout definition files. Each individual style brings
together the transform used by the style, any transform parameter values that
should beused by thatstyleinplace ofdefaultvalues(including aCSSfile to be
used), andthe layoutdefinition that shouldbeappliedtothe transform.

associated
located
Beans
The
servlet
default
contain
convertingthe
style
andWeb
or
file
under
any
catalog
ASP.NETfile
withtheformal
provided
information
WEB-INF\xmlfolderofthe
data
GUI
configuration
contained
with
Components
during
onhow
MicroStrategy
parametersfor
in
initialization
filecontains
the
beansare
access
dataWeb
and
should
transforms.
application.
provided
information
and
contain
iscalled
is
bethen
displayed.
by
data,
styleCatalog.xml
The
thestyles
stored
about
fileis
butThe
in
theydonot
theactualvalues
readbythe
memory.
inthe
rulesfor
andis
style
The
catalog configuration file.

Styles Folder
In the Web Customization Editor, styles are displayed under the Styles folder in
the Application Settings view. The following image shows the Styles folder:

Styles Folder

Style Editor
A style has various properties associated with it. You can view these properties
in the style editor.

To accessthe style editor:

1 In the Web Customization Editor, in the Application Settings view, under


MicroStrategy Web Configuration, expand Styles.

2 Double-click the appropriate style to launch the style editor. The following
image shows thestyle editorforthe ReportGridStyle:

The style editor consists of the followingthree tabs:

Style Properties

Style Parameters

Style Layouts

The next sections provide brief descriptions ofthe parameters displayed on each
tab.

Style Properties tab


NameThe Name property provides the name of the style.

DescriptionThe Description property provides an optional description for


TransformTheTransform
the style. propertyspecifies thetransform used to render

the style. You can edit the transform associated with a style by clicking the
with
Edit Transformbutton.Similarly,
the style. youcan modify the transformassociated

To modify a transform associated with a style:

1
2 In the Style
SelectProperties
Transformtab, beside the Transformbox, clickChange.

Class window, in the Enter type name prefix or


pattern box, type the name prefix or pattern.

3 Under Matching types,double-click theappropriate transform.

4 Click OK.

5 Click Save.

Style Parameters tab

The following image shows the Style Parameters tab for ReportGridStyle:

ReportGridStyle EditorStyle Parameters Tab


The term actual parameter is sometimes used to refer to the
values for aparameter, while the formal parameter is the
parameter itself.
Transform ParametersThe values of transform parameters help to
determine the way in which the transform renders the data. In the following
image, two different styles called ReportGridStyleSunset and
ReportGridStyleSquares use the transform called ReportTransformGrid:

Transform Parameters
The two styles have different values for five of the transform's parameters:
useBuiltInFormat, cssFile, cssPrefix, showBanding, and contextMenus. The
values provided for each of these parameters is used to override the default
parameter values when this style and its associated transform are applied to
a bean.

The MSDL provides extensive reference for all transforms, formal


customize
Using
associated
parameters, and howto usethem.
theStyleParameterstab,
MicroStrategy
with atransform,
dataaspresentation.
wellas
youcanmodifytheir
addorremove
defaultvalues
parametersto easily

To add/remove a transform parameter:

1 In the Style Parameters tab,next to the Transform Parameters box, click


Add.

2 In
youthe
button.
wishtoadd,select
Shopping Cart -Add
the parametersthat
Elementswindow,
youunder
want to
Select
addandclick
the parameters
the >>

OR

To remove any transform parameter, in the righthand pane, select the


parameter, and click the << button
3 Click OK.

4 To modify the default value of a transform parameter, under Transform


Parameters pane, select the parameter. The following image shows the Style
Parameters tab for ReportGridStyle with the cssPrefix parameter selected:

5 Under Parameter Properties, in the Value box, type the new value.

6 Click Save.

Style Layouts tab

The following image shows the Style Layouts tab for ReportGridStyle:

ReportGridStyle EditorStyle Layouts Tab


Layout DefinitionThis indicates the layout definition XML file associated
with the style. You can change, edit, and preview the layout definition file
using the ... (Browse), Edit Layout, and Preview Layout buttons.

To change, edit, orpreview a layout definition file:

1 In the Style Layouts tab, beside the Layout Definition box, do one of the
following:

To change the layout definition file, click Browse, navigate to the


location of yourlayout definition file,and double-click it.

To edit the current layout definition file, click Edit Layout. A message
displays indicating that the copy of the file created in the plugins folder
willopenfor editing. ClickYestothe message, thenmakethe
appropriate changes to the file, and save the file.

To
Closethewindow
preview XML inthelayout definitionfile, click Preview Layout.
after previewing the file.

2 Click Save.
Adding Style
You cancreateanew styleusing the Style Creation Wizard. The new style is
automaticallyadded tothestyle catalog configuration file.

To create a new style:

1 In Eclipse,onthe MicroStrategy menu,select New Styletolaunchthe Style


Creation Wizard.

You can also access the Style Creation Wizard using any of the following
four methods:

On the Eclipse toolbar, clickCreateNew Style.

On the Eclipse toolbar, click New and select Style.

In the Application Settings view, right-click the Styles folder (or any
style below it), and select New Style.

The following image shows the first window of the Style Creation Wizard:

Style Creation Wizard


2 In the Style Creation Wizard, in the Style Name box, type the style name.

3 In the Description box, type the style description.

4 In the Transform Defn drop-down list, select the transform definition for
the style.

You can also createa newtransform from within the wizard by clicking
New Transform Defn. The transform you create automatically gets
included in the style catalog configuration file.

5 Click Next.

6 In
thethe
appropriate
Select the transform parameters youwishto add on the style, select
transform parameters, and click the >> button.

7 Click Next.

8 In the Valuebox, enter a value for theselected transform parameter.

9 Click Next.

10 Beside the Layout Definition box, click Browse.


11 In the Open window, navigate to the appropriate folder, and select the
layout associated with the new style.

Itis not mandatoryto assigna layoutdefinition fileto astyle.

12 Click Next.

13 Click Finish.

Duplicating a Style
You can duplicate an existing style using the Web Customization Editor.

To duplicate a style:

1 In theWebCustomization Editor,inthe Application Settings view, under


MicroStrategy Web Configuration, expand Styles.

2
3 Right-click
In the DuplicateStyle
theappropriate
window,
styleand select Duplicate.

in the Enter a new name for the style below


box, type the name of your style.

4 Click OK.

Viewing XML for a Style


You can view the XMLforastyle using theWeb Customization Editor.

To view XML for a style:

1 In the Web Customization Editor, in the Application Settings view, under


MicroStrategy Web Configuration, expand Styles.
2 Right-click the appropriate style and select Show XML.

3 Close the window after viewing theXML.

Deleting Style
You can delete a style using the Web Customization Editor.

To delete astyle:

1 In the Web Customization Editor, in the Application Settings view, under


MicroStrategy Web Configuration, expand Styles.

2 Right-click the appropriate style and select Delete.


3 In the Confirm Delete window, click Yes to confirm the deletion.

4 Click Save.
Layout Definition
OverviewLayoutDefinition Architecture

Replacing the Arranging Method with a Layout XML


Changing a Layout Definition Associated with a Style

After completing thistopic, you willbeable to:

Define layout definitions, understand thelayout architecture, and learn how to


associate layout definitions with styles.

Overview
Layout definitions are used to modify the arrangement and content of the
output of a transform. Layout definitions enable you to modify an XML file that
includes both regular HTML elements and elements representing content from
the transform.

Youdonotneed in-depth knowledge of transforms for performing basic


customizations,such as modifying the arrangement of content or level of
detailed information. However, for advanced customizations involving
overriding methods that generate HTML, a thorough understanding of
transforms andtheir implementation is essential.

Layout Definition Architecture


series
Transforms
not
intogenerate
HTML.itsoffinal
This
methods,eachof
areJavacomponents
output
enablesyouto
allthe HTML
representationsuch
whichis
usinga
override
responsible
single
responsible
an existingtransformand
asHTML.
Javamethod
forconverting
forgenerating
Typically,
but instead
thedatainabean
atransform
achangethe
portionofthe
exposesdoes
a
HTML output for a single piece of the transform. This technique is fundamental
to the layout XML architecture as it provides a series of smaller HTML sections,
which can be arranged to form a larger piece of HTML.

displayingthe
For example, consider
content ofafolderon
thefolder transform
a Folder
output
Browsing
thatisresponsible
page.It provides
for

detailed information about the objects in the folder, such asthe name and
description of the objects, owner of the objects, last modification date of the
object
you wanttodisplay.
and soon.UsingThelayout
following
definitions,
image illustrates
you cancustomize
the default
thelevel
displayfor
ofdetail
the

folder transformin the List View mode:

FolderDisplay in List View

The
a series
transform
of smallresponsible
steps. For example,
for creating
it creates
the above
the contentrenders
HTML for the header
theHTML in
section

and then creates a row for each object in the folder. In turn, each row is actually
is
made
important
up of small
to notethat
HTML the
sections
orderfor
andtheicon,
layout is
object
determined
name, owner,
by the layout
andso on.It

definition file. To customize the output, you need to modify the layout definition
file used by the transform.

On the other hand, a transform that does not use a layout definition file relies
on Java methods to arrange the content for each of the objects into the above
layout by looping through each object in the folder and creating an HTML row
for each folderobject.It then,inturn, calls theappropriate methods togenerate
the HTML for the object name, owner, description, and so on that is displayed
in the column. In this case, the order and surrounding layout for the output is
controlled by the Java methods. To customize the output, you need to replace
the
transform
arranging
classes.
methods with newmethods by extending oraggregating the

Replacing the Arranging Method with a Layout


XML
Customizations that require modifying the order and arrangement of the output
you
from
columns.Ifa
maywanttoexchange
atransformarevery common.
the positionsoftheOwnerand
Consideracustomization
ModifiedDate
scenario where

transform does not use a layout definition file, this customization


would involve calling the methods that are responsible for generating the output
(for Owner and Modified Date) appropriately so as to render each object in the
desired format.Hence, this customization wouldrequire the developer to have
HTML
arranging
developer
extremelyuser-friendly
some knowledgeofJava.
However,
thatusing
the
can
isgenerated
Java
definean
a layout
methods.
anddoesnot
XML
by
definitionfile
thetransform.
This
layout
offers
definitionfile
require
makes
greater
Also,
knowledge
thiscustomization
flexibility
thedevelopercan
that replaces
ofJava.
and visibilityinto
theroleof
scenario
Instead,a
use HTMLthe

design techniques tomodify theoutput andarrangementof thetransform.

The following two images show part of the Folder Browsing page in the List
View and Large Icon View modes, respectively:

FolderDisplay inListView
Folder Display in Large Icon View

These images illustrate the flexibility of the layout transform. Both view modes
use the same Java class, but differ only in their layout definitions.
Changing a Layout Definition Associated with a
Style
You can changetheway the data ispresented by a style simply by changing the
layout definition for an existing transform within MicroStrategy Web. The
layout definition can be a new file that you create or a modified version of an
existing layout definition file, and the style can be a new style or a modified
version
Layouts
Youcan
of an existingstyle.
tabofthestyle
changethe layout editor.
definition associated witha styleusing theStyle
Lesson Summary
A transformobject is aJavaclassresponsible for generating the output
from a specific type of beansdata.

The output of a transform can be in several formats such as HTML,


with
DHTML,
MicroStrategy
WML,XML, Web
PDF,and so forth.
have their outputsHowever,
in HTML alltransforms
format. packaged

Specific combinations of parameters and values are saved as styles. A style


convenient
is
Layout
alwaysbased
definitions
waytomodifythelook
ona are
single
responsible
transform.
fordefining
and feelof MicroStrategyWeb
the layout. Theyprovidea
page.

The
MicroStrategy
stylecatalog
Web
filedefinesthe
application. It
transforms
contains information
andstyles for the entire
about the actual
values associated withthe parameters for transforms.

modify
A
arrangement
layoutanXMLfile
definition
and content
isaflexible
that includes
of theand
output
both
simpleapproach
regular
of a transform.
HTMLtoelements
It
modifying
enables
and
youto
the

elements representing content from the transform.

in
Thethe
use
transformorbean
ofanelementin with
a layout
a particular
definitionfile
signature.
impliesthata methodexists
8
CASCADING STYLE SHEETS

Lesson Description

This lesson describes the different types of Cascading Style Sheets and their use
in modifying the look and feel of MicroStrategy Web. You will learn how to
perform customizations involving CSS files.
Lesson Objectives

After completingthis lesson,youwillbeableto:

Explain the benefits of Cascading Style Sheets, describe the types of CSS files
used in MicroStrategy Web, and perform CSS customizations.

After
Describe
completing
CascadingStyleSheets
the topicsin this lesson,you
and understandthe
will be ablebenefits
to: ofusing

Cascading Style Sheets.

Describe thedifferent types of CSS files used in MicroStrategy Web

Perform basic CSS customizations.


CSS Overview

After completing thistopic,youwillbeable to:

Describe Cascading Style Sheets and understand the benefits of using Cascading
Style Sheets.

Cascading style sheets (CSS) are a simple, yet powerful, tool to achieve
paragraph alignment. ofvarious HTML elements such asfonts,font sizes, and
consistentformatting
CSS gives greater control to the Web page developer,
rather than to the browser, over the appearance of a Web page. It enables Web
developers to provide a consistent look and feel across different browsers.

The is stored
information,including
information
In MicroStrategy
formattingandsimple
MicroStrategy inarrangement
Web,the
Web fonts,colors,
CSS.
GUICSS
generates
files provide
changes.
images,and
HTML aMostofthe
centralized
pages
somewhich
arrangement
formatting
location
use several
formaking
CSS files.

These CSS files are referenced in the HTML by <link>tags. Typically, the
<link>tagscanbefound
exceptions. For example, some
in the
transforms, whichof
<head>section are
theHTML,
stillused in
withafew
the GUI,

generate <link>tags in theHTML body.


Types of CSS

After completingthis topic, you willbe able to:

Describe the different types of CSS files used in MicroStrategy Web

The CSSfiles generallyfall into thefollowing categories:

Application-wide CSS

Page-specific CSS

Applicationwide CSS Files


Browser-specific CSS

Certain CSS rulesareintended to apply across all MicroStrategy Web pages.


These rules aredefinedin application-wide CSS files, which are then referenced
by <link> nodes in the <head> section of every page.

Additionally, certain HTML is shared across several MicroStrategy Web pages.


That is, some sections are used repeatedly across a variety of page types. The
CSS rulesforformattingsuchHTML sections are also defined in the
application-wide CSS files. For example, almost every page has a navigation
toolbar across the top (displaying the name of the current page or document).
The
theme
Thisformatting
CSSfile
is changed.
isalso
forthe
responsiblefor
navigation toolbaris
renderingthesamepath barwhen the color
defined inthe mstrTheme.css file.

The table below lists the application-wide CSS files in the /style/mstr subfolder.

Files
mstrTheme.css color
Contents
Formatting
themes.Responsible
for differentMicroStrategy
forfont properties,
Web
shortcuts bar, navigational path, toolbars,
menus, and accordions

mstr.css
Application-wide CSS Formatting
changes performed
for theentire
usingMicroStrategyWeb
the Web Customization

Editor are saved in a custom application-wideCSS file called global.css.


The tag for this CSS file is generated bymstrWeb.jsp as <web:resource
type="customstyle" />and by Main.aspx as <web:resource
runat="server" type="customstyle" />.

PageSpecific
Page-specific CSSFiles
CSS files contain rules for aspecifictypeofMicroStrategy Web

page. The following table lists some of these page-specific files in the
\style\mstr subfolder, and notes which page type each file applies to:

PageSpecific CSS Files

Files Page Type the File Applies to

pageProjects.css The page liststhe


MicroStrategy projects
available

pageLogin.css The Login page

pageDesktop.css The Welcome page, which typically


follows a successful login to a project

pageFolder.css The folder browsing pages (Shared


Report/My Report and their subfolders)

pageCreateReport.css The Create Report pagethat lists the


report options available (Blank Report,
and so on)
pageCreateDocument.css The Create Document page that lists the
Report Services document options
available (Blank Document, and so on)

pageWait.css The Wait page thatisdisplayed during


the execution of a lengthy report or
document

pagePrompts.css or
The Prompts page fora prompted report
document

promptIndex.css The Prompts page, but only when an


index of prompt questions is displayed
on the lefthand side ofthepage

pageReport.css The Report page (applies to grid, graph,


and design modes)

pageRW.css The
(applies
Report
to view
Services
and design
Documentpage
modes)

DocumentView.css The Report Services Document page


(view mode only)

DocumentDesign.css The Report Services Document page


(design mode only)

pageDocument.css The HTML Documentpage

pagePreferences.css The Preferences page

pageSaveAs.css The Save As pagefor both reportsand


documents

pageSearch.css The Search page

pageLoggedOut.css The Logout page that confirms the user


has successfully logged out

pageAdmin.css The MicroStrategy Web Administrator


page

These CSS files references are defined in each pages links page section by
default. Most transforms (particularly the newer transforms) do not output
<link> information as part of their HTML output. Rather, they rely on the
<link> information being defined in the page into which the transform output
is included.

The page-specific <link>tagsareplaced inthe<head>sectionof theHTML


source code,after theapplication-wide HTML <link>tags generatedby the
global
rules topage
override
section
thenodeofthe
application-wide
DefaultCSS
Page.
rules.
ThisFor
enables
example,
the page-specific
the application-
CSS

wide CSS canspecify that the toolbar dock zone should be displayed near the
top of every MicroStrategy Web page by default. However,can the page-specific CSS
file for the MicroStrategy Web Administrators page specify that the tool
when
BrowserSpecific
dock canbe
<link2>will
TheCSS CSSFiles
zone shouldbehidden
affectedbyCSS
Specification
always override
dictates
specificityrules.
for suchthose
that
pages.
defined
thereare
in <link1>.However,
conflicts the valuesin
this

Browsers often differ slightly in their implementation of CSS properties. For


another.
example,To
onehandle
set of cross-browser
marginsmaylookgood
discrepancies,
inoneMicroStrategy
browser but unacceptable
Web uses in

browser-specific CSS files.For every Web page, MicroStrategy Web reads the
type of browser and includes a single <link>tothe corresponding CSS file in
the <head>section of the page.

Some examples of css files in the /style/mstr folder are chrome.css, ie6.css,
ie9.css, firefox4.css,andfirefox2.css.
Customizing CSS Files

After completingthistopic,youwillbe ableto:

Perform basic CSS customizations.

One ofthe mostcommon requirements ofa customized application is the ability


to present data with the appropriate look and feel for an organization. Data
presentationon MicroStrategy Webpagesiscontrolled by a set of styles and a
series of CSS files, which are defined in two configuration filesstyle catalog
and page configuration files. This makes it quite easy for you to customize
so
corporate
MicroStrategy
standards.
Web that it matches thelookandfeel of your companys

CSS Customization Considerations

Before customizingCSS, you should be remember the following:

1 MicroStrategy Web uses CSS files when it generates the HTML source for a
MicroStrategy Web page. It uses CSS files identified by links page section
files defined in the page configuration file, as well as a CSS file that is
specific to the browser being used to view the page. If a page inherits page
sections fromtheDefaultPage,the <link>tagsforthe application-wide
CSS files are generated first, followed by the <link>tags for the page-
specific CSS files. Finally, the application automatically generates a single
<link>tag tothebrowser-specific CSS file.

2 all
MicroStrategyWebhas
the pages.Themesare
several
a collection
defaultofcolor
themethemes
elements
that or
youfront
canapplyto
end objects

of
that
(color),
theme
definethelookand
pathbar
elementsinclude
(gradient),
feelthe
pathbar
of shortcut
the MicroStrategy
font
bar(gradient),
(color), Web
editorsand
interface.
shortcutdialogs
barfont
Examples
title

In
bar
customization
some
font (color),
cases, needs,
you
andso
canwithout
simplyusea
forth. havingto
different
perform
themeto
any customizations.In
meet your
addition, by deploying themes as a plug-in, you can easily share themes with
other MicroStrategy Web applications.

To select acolortheme:

1 In Eclipse, on the Application Settings tab of Web Customization Editor,


click the Launch web browser icon to access MicroStrategy Web.

2 Log in to the MicroStrategy Tutorial project as administrator with blank


password.

3 In MicroStrategy Tutorial, on the Preference page, select Project Defaults.

4 In
appropriatecolor
the General preference, fromtheColor Theme drop-downlist, selectthe
theme. You can change themes at the user or project level.
The following image shows the Color Theme setting:

Color ThemeSetting
5 To save a color theme, click Apply.

Modifying HTML may require modifying CSS or JavaScript files because


CSS and JavaScript code mayreference theHTML structure of the
document.

MicroStrategyWeb uses sprite for rendering severalimages on its pages,


such
spriteasisreport toolbar iconsand icons usedon folderbrowsing pages.A
atwo-or
three-dimensional composite image or animation. CSS is
used to select the parts of the composite image to display at different points
in the
By
them
images,
layering
ontopof
page.
MicroStrategy
sprites,
eachMicroStrategy
other
recommends
to makeitseemlikeanimage.
Webtakes
that you use
separate
corresponding
images
Ifreplacing
andsprite
places
these

images
images.that adhere to the relative position and sizesof MicroStrategy

CSSRelated Customizations

MicroStrategy
most CSS-related
recommends thatyou use the Web Customization Editor for
customizations. You can make CSS-related changes either in
the Application Settings view or in the CSS Settings view, depending on your
preference. You can use the Application Settings view to customize CSS for
individual pages and the CSS Settings view to edit global CSS rules.

ApplicationSettingsView

In the Application Settings tab, in the Pages folder, there are items representing
each
CustomizationsThis
subfolders:
MicroStrategy
pageinMicroStrategy
WebThisWeb.Youcan
folder
folder
contains
contains
expand
the theoriginal
customized
each pagefiles
files.
to display
with thedefault
two

values (unless you modified the original files). Any changes you make to the
files in this folder are stored in the customized files in the Customizations
folder.Thesyntax ofthecustom file name is pageNamePage.css where
pageName refers to the actual name of the page. For example, if you make
any CSS-related changes to the report page, those changes are stored in the
reportPage.css file.

CustomizationEditorto
You canuse theSearch MicroStrategy
find Objects functionality in theWeb
CSS files, rules, and properties used in
MicroStrategyWeb.

CSSrelated Customization Workflow

A typical workflow for making CSS-related customization changes is as follows:

1 Identify whether the CSS change is specific to a single MicroStrategy Web


pageorisapplicable globallytoallMicroStrategy Webpages.

2 Use a developer tool to identify the CSS elements such as name of the CSS
file, selector, andproperty that areresponsible forthe aspectoftheGUI
that you want to customize.

3 CSS
You can
tab by
make
making
changes
changestothe
to a specificCSSfilein
MicroStrategy
the Customizationsfolder
Web stylesheet usingor
the

the MicroStrategy Web folder. If you attempt to modify a CSS file in the
MicroStrategy
all changes affect
Webfolder,
onlythe copy.
a copy
This
displaysin
isbecause
theCSS
Customizations
files in MicroStrategy
folder and

original
Web arenot
CSS deltafilesinstead
file, theWeb Customization
ofmerging your customizationsand the
Editor must make a copy of the
original CSS file and store the changes in the copy.

4 file.
Web
can
If theuse
CusotmizationEditorstores
CSS
thechange
CSS tab
is tomodify
applicableglobally
global.css.As
your changes
to allMicroStrategy
withinpage-specific
a copy ofthe
Webpages,
CSSfiles,
original CSS
you
the

5 View your customization in MicroStrategy Web, using the Launch web


browser.

All customCSS files are saved in the plugins folder inside the appropriate
customization plug-in. If you need to specify thepathto these custom CSS
files, use the following syntax:
../plugins/pluginName/style/reportPage.csswhere
pluginName is the name of your customization plug-in.
Lesson Summary
CascadingStyleSheets provideacentralized location for making formatting
and simple arrangement changesinMicroStrategy Web.

In MicroStrategy Web, there are three general categories of CSS files:


application-wideCSS
files. files, page-specific CSS files, andbrowser-specific CSS

Application-wide CSS files contain rules that are intended to be applied


across all MicroStrategyWeb pages.

Page-specificCSSfilescontain rules fora specificMicroStrategy Web page.

Browser-specific CSS files are used in MicroStrategy Web to handle cross-


browser
Most Webdiscrepancies.
browsers offerdevelopertools to inspect,

edit, and monitor CSS


properties for various elements on a Web page. You should be familiar with
those toolsbeforeattempting any CSS-related customizations in
MicroStrategy Web.

For
you any
shouldusethe
image-related
corresponding
customizations (such as removing existingimages),
sprite images, adhering to the relative
position and sizes of MicroStrategy images.

MicroStrategy recommends that you use theWeb Customization Editor for


most CSS-related customizations.
Index

A
API Reference 32
application beans 60
application objects layer 60

B
bean 59
addingorremoving 176
application60

events 58
state 58
syntax 169
types 169

C
Cascading StyleSheets See CSS
contained bean 131, 138
CSS 265
application-wide 266
browser-specific 268
page-specific 267
types 265
Custom HTML tags 31, 63

D
default page 127
delta file 75
Display Web GUI Component Wizard 137
document bean 172

E
external security module 21,26, 66

F
feature 129

I
identity management applications 21
implicit child bean 172
initialization properties 173

J
java beans 58
JavaBeans20

L
layer
application objects 60
presentation 63
web objects
beans57 56

web transforms 58
XML API 56
layout definition 237
architecture 237
layout definitions 225
M
markup output object 59
messages bundle 62
MicroStrategy Developer Library 11, 24, 30, 34, 37
sections34
MicroStrategy Developer Zone 37
MicroStrategy Web architecture 54
MicroStrategyWeb17

MicroStrategy Web page 125

P
page configurationfile 31,61, 126
page executionflow65
page section 135
page template 131
pageConfig.xml 102, 126
172
persist mode
plug-in 18, 71,72,73,76,79, 90, 91

plug-in architecture18, 71,73, 79, 90


plugins 90, 91
plugins folder 71,72, 73, 76, 79
portal integration kit 24
portlet-to-portletcommunication 21
preferences61
presentation layer 63
prompt bean 172

R
request properties 173
S

sample applications 33
SDK components 23
servlet 63
142142
shortcut list

style 224
style catalogfile 32,61

T
template 131
template file 134
Template Shortcuts Wizard 144
template status 133
transform 59, 223, 226
transform parameters 32, 225

V
view bean172

W
Web Beanslayer 57
Web Customization Editor 18, 62, 72, 79, 89, 90, 91, 92
Web feature 129
Web layers 55
Web Objects layer 56
Web SDK 30
Web services 19, 200, 201, 202
Web services development kit 24
Web
WebBean
Transforms layer 58
interface58

WebComponent interface 58
X
XML API 19
XML API layer 56
Index
A

API Reference
application beans
application objects layer

bean

adding or removing
application
events
state
syntax
types

Cascading Style Sheets See CSS


contained bean 1,2
CSS

applicationwide
browserspecific
pagespecific
types

Custom HTMLtags1, 2

D
default page
delta file
Display WebGUI Component Wizard
document bean

external security module 1, 2, 3

feature

identity management applications


implicit child bean
initialization properties

java beans
JavaBeans

layer

application objects
presentation
web beans
webobjects

web transforms
XML API

layout definition
architecture

layout definitions

markup output object


messages bundle
MicroStrategy Developer Library 1, 2, 3, 4, 5, 6

sections

MicroStrategyDeveloper Zone
MicroStrategyWeb
MicroStrategy Web page

page section
configurationfile1, 2, 3
executionflow

page template
pageConfig.xml 1, 2
persist mode
plugin 1, 2, 3, 4, 5, 6, 7, 8
plugin
plugins architecture
1, 2 1,2,3,4,5

plugins folder 1, 2,3,4,5


portal integration kit
portlettoportlet communication
preferences
presentation layer
prompt bean

R
request properties

sample applications
SDK components
servlet
shortcut
shortcut list
style
style catalogfile 1, 2

template
template file
Template ShortcutsWizard
template status
transform 1, 2, 3
transform parameters 1, 2

view bean

Web Customization
Beanslayer Editor1,2,3,4, 5, 6,
7, 8
Web feature
Web layers
Web Objects layer
Web SDK
Web services 1, 2, 3, 4
Web services development kit
Web Transforms layer
WebBean interface
WebComponent interface

XML API
XML API layer

S-ar putea să vă placă și