![]() |
Telelogic System Architect (steve huntington) | ![]() |
Topic Title: Configuration Management of Encyclopedias Topic Summary: Created On: 28-May-2008 16:55 Status: Read Only |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() |
|
Is there a good/bad way to do configuration management of encylopedias. Similar to Doors where you can do baselines and then you can see changes made between baselines. Does this exist in SA? I know there is SA Compare, is that the only way, make a copy of the encylopedia and freeze it as a non-working copy and then compare to see what is different?
|
|
![]() |
|
![]() |
|
That is the only foolproof method that I am aware of at the moment.
|
|
![]() |
|
![]() |
|
a telelogic rep sent me a whitepaper that talks about this topic and it does talk about the merge/extract and the audit trail and other items. |
|
![]() |
|
![]() |
|
Merge/extract is a performance nightmare and we gave up totally with intellegent merge extract.
A vba script to prepare an export file is quite simple to write and I use one to prepare extract files containing exactly what I want without following relaionships to the nth degree. Routines that compare between encyclopaedias are a little more complex. This is all for 9.x and 10.x repositories, I haven't looked at any 11.x functionality yet. |
|
![]() |
|
![]() |
|
Could you share the script? I'm not that familiar with VBA since its been 8 years since I used it for anything but I can probably decipher it. We just went to v11sp1.
|
|
![]() |
|
![]() |
|
Use at your own risk.
Sub extractSingleDiagram() 'routine to take a diagram and build a list file for merge/extract 'that contains the diagram and the definitions of its symbols 'but nothing else Dim appSA As SA2001.Application Dim encMyEnc As Encyclopedia Dim strOutputFileName As String Dim fs, f, ts, s Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim dgmMyDiagram As Diagram Dim symMySymbol As Symbol Dim defDefinition As Definition Dim collSymbols As SAObjects Dim collDefinitions As SAObjects Set appSA = New SA2001.Application 'create encyclopedia object Set encMyEnc = appSA.Encyclopedia 'check that we have a diagram open Set dgmMyDiagram = encMyEnc.GetCurrentDiagram If dgmMyDiagram Is Nothing Then MsgBox "You must first open the diagram that you wish to extract", vbExclamation Exit Sub End If strOutputFileName = "C:\extract.lst" Set fs = CreateObject("Scripting.FileSystemObject") fs.CreateTextFile strOutputFileName Set f = fs.GetFile(strOutputFileName) Set ts = f.OpenAsTextStream(ForWriting) 'set environment to read only - after any break out points encMyEnc.OpenObjectsAsReadOnly = True ts.write "Class, Type, Identity, Name, Flag" ts.write vbCrLf & "1," & dgmMyDiagram.SAType & "," & dgmMyDiagram.DDID & "," & dgmMyDiagram.Name & ",N" 'find all the symbols on the diagram Set collSymbols = dgmMyDiagram.GetAllSymbols collSymbols.ReadAll Debug.Print collSymbols.Count 'need an error trap to stop macro crashing on doc block or other symbols without defintions For Each symMySymbol In collSymbols On Error Resume Next Set defMyDefinition = symMySymbol.Definition ts.write vbCrLf & "3," & defMyDefinition.SAType & "," & defMyDefinition.DDID & "," & defMyDefinition.Name & ",N" Next symMySymbol 'wrap up ts.Close encMyEnc.OpenObjectsAsReadOnly = False End Sub |
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.