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

Reply via email to