-------------------------------------------------------------------
SCRIPTING HELP
-------------------------------------------------------------------
In general, you can view Rose extensibility as consisting of two
parts, RoseScript language and Rose Extensibility Interface
The RoseScript Language is the core BASIC language. These statements
and functions are what you are used to seeing in Visual Basic.
Rose Extensibility Interface is Rose-specific extensions to
BASIC. A common set of interfaces used by Rose Script and Rose
Automation to access Rose and the RoseScript language.
-------------------------------------------------------------------
ROSESCRIPT:
-------------------------------------------------------------------
Regarding more information on the syntax of RoseScript,
it's VBA compatible so any VBA book will do. Some of the books
that the company Rational licenses this scripting language from,
(Summit Software - www.summsoft.com) suggested at one point
on their web site for reference and learning it are:
Visual Basic for Applications 5.0, QUE Publishing
Teach Yourself Visual Basic for Applications 5 in 21 Days,
Matthew Harris, SAMS, 1997
Special Edition Using Visual Basic for Applications 5,
Paul Sanna, et al., Que, 1997
Visual Basic for Applications Unleashed,
Paul McFedries, SAMS Publishing, 1997
Microsoft Office 97 Programming with VBA for Dummies,
Karen Jaskolka, Mike Gilbert, 1997
-------------------------------------------------------------------
ROSE EXTENSIBILITY INTERFACE (REI):
-------------------------------------------------------------------
Rose-specific extensions to BASIC.
Basic objects which represents parts of the Model.
COM-based API. Any COM-enable language can access the REI.
For example:
Dim roseApp As Object
Dim aClass As Object
Dim allClasses As Object
Or
Dim aClass As Class
Dim allClasses As ClassCollection
You manipulate the model with these objects.
The REI Model is essentially a metamodel of a Rose model, exposing
the packages, classes, properties and methods that define and
control the Rose application and all of its functions.
You communicate with the Rose Extensibility Interface through Rose
Scripts or through Rose Automation. In either case, you will use
the REI calls defined in the Rose Extensibility Interface
Reference. This reference is available in printed form, as well as
part of online help.
A type library for the REI is provided in the file
rationalrose.tlb in the rose installation directory.
See the following for more information:
-> Documentation for Rose's scripting language is contained in the
online help.
Rose REI is documented in the Rose online help under the help book,
Rational Rose Extensibility Interface. In addition, the complete
Summit Script Reference is included in the extensibility online
help under a sub-book, Summit BasicScript Reference.
Help:Search for Help On, Contents tab,
-Rose Extensibiltiy
Key Concepts
Sample Scripts
-How to Start Scripting from Rose
-Rose scripting OnLine Reference
Complete description of the Rose Extensibility classes, their
properties and methods.
-BasicScript Reference
Alphabetical list of Language Elements
-and:
Rose Scripting
Modify existing Rose scripts
Create new Rose scripts
Sample Scripts List
Rose Automation
Rose Extensibility
-> If you are using Enterprise edition you can reverse
engineer the typelib to see what is contained in Rose REI.
Open Explorer, go to Rational Rose directory,
highlight RationalRose.tlb, and drag it on to an blank open
Componet diagram in Rose.
-> You can open up the Rose Type Library in the Visual Basic Object
Browser (Or Start Microsoft COM/OLE Object Viewer (Visual Studio)
open 'RationalRose.tlb' in the installation directory). This will
show you all the classes and their properties and methods. You
can find the Rose Type Library in the Rose installation
directory.
-> Print REI from online documentation:
insert the Online Documentation CD,
Go to Rational Rose, Rose Extensibility Reference
-> Print directly from the Online Help:
Help:Contents and Index, Contents tab, Rational Rose
Extensibility Interface, REI Model Inheritance Diagrams
-> Manual:
Using the Rose Extensibility Interface
Available as online download
Rational Product User Manuals
http://www.rational.com/support/documentation/manuals/rose.jsp?
-> Sample scripts shipped with product.
C:\Program Files\Rational\Rose\scripts
-> Rational Rose Download Center; Add-ins, Models, Scripts
http://www.rational.com/support/downloadcenter/addins/rose/index.jsp
-> Rational Support: Technical Notes
http://eservice.rational.com/eservice/start.swe?SWEView=FAQ+List+View+Search
+(eService)&SWECmd=GotoView&SWECount=5
Script related technotes include:
13284: Is there a script to count the number of lines in a model?
10557: Rose: How do I create the transition lines that go between
states on a diagram using a script?
11179: Using the Help to construct scripts
11765: Rose: Running a script upon loading a new model or opening
an existing one
3681: Script: assign module bodies to classes, 4.0 to 98 conversion
4928: How to do code generation from scripts and how to execute
scripts
6851: RoseForum FAQ - Script for Deleting dangling associations
7321: RoseForum - Has anyone written a script to load a group of
units?
7339: FAQ - Selectively load units from a script
7554: Rosescript is running out of stack
7706: FAQ - Trim$ function and Script
8191: RoseForum FAQ - Autosave script for Rose
8207: RoseForum FAQ - Rose script for generating an Actor
Listing from a Rose Model?
9276: How do I put a default file name in the
SaveFileName$Rosescript function?
8483: RoseForum FAQ - Loading Controlled Units by Script
9764: Rose: A script that iterates through all state
diagrams/activity diagrams in the model
9832: Passing Parameters to Rose scripts
2732: Script: Run Scripts from Dialog
13748: Rose scripts cannot access COM/OLE type-library constants
9016: An add-in stored in a compiled script can not be activated
-> The Rational Edge
http://www.therationaledge.com/admin/archives.jsp
Script related articles include:
http://www.therationaledge.com/rosearchitect/mag/archives/fall99/extend.html
The Finishing Touch on Your Add-In: RoseScript Dialogs
http://www.therationaledge.com/rosearchitect/mag/archives/9904/f5.html
Creating Your Own Rose Add-ins with Visual Basic
http://www.therationaledge.com/rosearchitect/mag/archives/9904/extend.html
Rational Rose 98i: Customizing Shortcut Menus
http://www.therationaledge.com/rosearchitect/mag/archives/9904/f7.html
User-Defined Tags with Rose 98 Scripting
http://www.therationaledge.com/rosearchitect/mag/archives/9901/extend.html
Creating Custom Model Properties
http://www.therationaledge.com/rosearchitect/mag/archives/9810/extend.html
Rose Extensibility: An Architectural Overview
http://www.therationaledge.com/rosearchitect/mag/archives/winter99/extend.ht
ml
Using COM in Your Rose Extensibility Solution
http://www.therationaledge.com/rosearchitect/mag/current/spring00/extend.htm
l
Common Questions from Experienced REI Users
Also see,
Scripts & Models (download examples)
http://www.therationaledge.com/rosearchitect/sm/index.html
-> More scripts:
www.rationalrose.com
www.clarity-dev.com/Downloads.htm
www.eisenhutinformatik.ch/rose/freeware/
www.iconixsw.com/RoseScripts.html
-> In addition there are public classes. See,
Extending Rational Rose:
http://www.rational.com/university/description/07.jtmpl
-------------------------------------------------------------------
Patrick Kennedy
Rational Support
-----Original Message-----
From: Sandeep Prakash [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, September 04, 2002 10:57 PM
To: 'Kennedy, Patrick'; '[EMAIL PROTECTED]'
Subject: Help required regarding the Rose Script
hi,
I am using Rational Rose Enterprise often.
But i never used Rose Scripts in any case.
How Does Rose Scripts can be Learned.
I am just Pasting the text i found on the rational site.
I want to understand the syntax , meaning, usage of Rose Script etc
in UML Modeling.
Please help in learing the Rose Script .
Thanks
sandeep
THE TEXT FROM RATIONA SITE IS GIVEN BELOW HERE
/***************************************************************************
******************************/
Search Solutions:
Solution Details:
Subject: WINDOWS/UNIX: How can I retrieve all the use case realizations
with the Rose Extensibility Interface ?
Solution Id: 16602
Product: Rose Enterprise Client Platform:
Product Versions: 2001.03.00.271.000
Client OS:
Area: Core Product Client OS Versions:
SubArea: Customization Server Platform:
Impact: High Server OS:
Technical Level: Intermediate Server OS Versions:
Associated Defect Id: rose0001488 Date Published: 19-Apr-02
Keywords: realize relation use case rei script rose extensibility interface
----------------------------------------------------------------------------
----
----------------------------------------------------------------------------
----
QUESTION:
How can I retrieve all the use case realizations with the Rose Extensibility
Interface ?
ANSWER:
There is currently one open Enhancement Request to add to the Rose
Extensibility Interface methods to add and retrieve all the use case
realize relations (rose00014888).
However, it is possible to retrieve realize relations which are
displayed on a class or use case diagram. The following script
is an example. It creates one temporary use case diagram and adds
to it all the use cases present in the model. In this way, all the
relations among the use cases are also drawn on the diagram.
The script then retrieves all the items present on the diagram
and tries to typecast them to realize relations. If the typecast
is succesful the realize relation is individuated and its details
are printed to the error log. The temporary diagram is
subsequently deleted from the model.
'-------------------------------------------------
'GetAllUseCaseRealizeRelations
'Lara Ziosi [EMAIL PROTECTED] 18/04/2001
'
'This script retrieves all the use case realizations
'present in the model. It writes to the Rose error log
'either the name or the Unique Id and the client and
'supplier for each use case realization
'-------------------------------------------------
Option Explicit
Sub Main
Dim themodel As model
Set themodel = roseapp.currentmodel
Dim theitem As roseitem
Dim theusecase As usecase
Dim therealizerelation As realizerelation
Dim theucv As category
Dim theucd As classdiagram
Dim theCat As category
Dim deleted,added As Boolean
Dim i,j,relnumber As Integer
'Add a Use Case Diagram to the Use Case View
Set theucv = themodel.rootusecasecategory
Set theucd = _
theucv.addusecasediagram("GetAllUseCaseRealizeRelations")
'Add all the use cases to this diagram
Dim theusecases As usecasecollection
For j=1 To themodel.getallcategories().count
Set theCat = themodel.getallcategories().getat(j)
If (thecat.usecases.count >0) Then
Set theusecases = thecat.usecases
For i = 1 To theusecases.count
added= _
theucd.addusecase(theusecases.getat(i))
Next i
End If
Next j
'retrieve the use case realizations from the diagram
relnumber = 0
RoseApp.WriteErrorLog _
"**** GetAllUseCaseRealizeRelations **** START ****"
For j = 1 To theucd.items.count
'Explicit typecast is used to identify
'the realize relation
Set theitem = theucd.items.getat(j)
If theitem.cantypecast(therealizerelation) Then
relnumber = relnumber+1
If theitem.name <> "" Then
RoseApp.WriteErrorLog Str$(relnumber)+ _
". Realize relation with Name: "+ _
theitem.name
Else
RoseApp.WriteErrorLog Str$(relnumber)+ _
". Realize relation with unique id: "+ _
theitem.getuniqueid
End If
Set therealizerelation = _
theitem.typecast(therealizerelation)
RoseApp.WriteErrorLog " Client: "+ _
therealizerelation.getclient.getqualifiedname
RoseApp.WriteErrorLog " Supplier: "+ _
therealizerelation.getsupplier.getqualifiedname
End If
Next j
RoseApp.WriteErrorLog _
"**** GetAllUseCaseRealizeRelations **** END ****"
'delete the diagram
deleted = theucv.deleteclassdiagram(theucd)
'Give a message regarding the number of relations found
If relnumber = 0 Then
msgbox "No realize relations were found"
Else
msgbox Str$(relnumber)+ _
" realize relations were found. See the log for details."
End If
End Sub
'---------------------------------------------------------------------------
-----
/***************************************************************************
************
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Post or Reply to: [EMAIL PROTECTED]
* Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
* http://www.rational.com/support/usergroups/rose/rose_forum.jsp
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
* To: [EMAIL PROTECTED]
* Subject: <BLANK>
* Body: unsubscribe rose_forum
*************************************************************************