Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - doctor_uv

Pages: [1] 2
1
Suggestions and Requests / Re: DDL to manage a changing schema
« on: May 08, 2007, 09:24:36 am »
Looking at recent and current design tasks I am working on I can only recommend to provide a simple solution first.

This could be limited to only growing the data model and maybe changing data types in a straightforward way.
(e.g. number to char, changing sizes)
Even deletion of complete columns/fields could be permitted causing an obvious loss of data.

I can only warn against an approach trying to solve all the problems at once. The general problem is very difficult, but a useful if limited solution should be not so hard.

I think this is better than nothing and trying to solve the problem and all its features for all cases is a massive task which will keep us from having a limited but already useful solution anytime soon.
I've seen a few problem solving attempts where nothing came out because the goal was put too high.....

2
In this matter I am trying to add a column for field which is a link to an enumeration to the DDL transformation...
This should be an integer or string column.... to work with hibernate enumerations...

I cannot find a way to add a column to the calling table from inside the Connector macro....
???

Did anyone solve this or is this simply not possible?

3
General Board / Re: Version Control without problems??
« on: September 05, 2007, 03:07:40 am »
Hello,

this thread turned into a discussion of which version control system to use. From the posts it seems that the bridge into the version control is generally working correctly for all systems. Thats Great!

However, the reason to start this thread was about how to deal with the loss of references to elements in other parts of the model located in different XMI files within the version controlled repository.

For a single user scenario this does not seem to be a problem. However, the collaboration between a number of private EA projects (team of 5) synchronized with version control there seem to be a problem.

I also remember that a GetAllLatest action produces some status messages about resolving and updating references within the repository ......  This sounds like an indication where the problem might be coming from.

Generally, there seems to be an unresolved problem and I wonder if anyone came up with a workaround or an approach how to baseline the UML model so this does not happen anymore.

Maybe this style of collaboration requires to align the private EAP project files in a regular fashion.

Thanks for your input

4
General Board / Version Control without problems??
« on: August 28, 2007, 06:27:49 am »
We are using subversion to version control a growing UML model of a 3 tier web application.
We are a team of up to 8 geographically distributed team members trying to collaborate with the subversion repository.
But we keep on loosing diagram contents.

After Sparx confirmed a limitation with sequence diagrams, we switched to robustness diagrams but still have problems loosing diagram content after a number of checkins...
Is there anyone who has no problems with version control?

5
General Board / Re: DDL transformation datatypes
« on: July 17, 2007, 05:29:40 am »
Can I understand from this discussion that I have to be prepared that the code datatypes in the settings might not get observed in some scenarios?

I am trying to get a String converted into a string for C#....
and while this works for Boolean ==> bool my settings for the strings get ignored....

Does this sound familiar to anyone?

6
General Board / Re: Connector end detection during transformation
« on: May 25, 2007, 11:17:01 pm »
Did you find a solution to the self reference in the meanwhile? I hit the same problem.
Thanks for sharing the solution (if there is one) ;-)

7
Uml Process / Re: Requirements
« on: September 12, 2007, 02:16:36 am »
Thanks for pointing this out to me.....

I am doing requirements again, but this time I am trying to use requirements like mindmaps ... so the relationships are essential.

8
Uml Process / Re: Requirements
« on: July 05, 2007, 08:11:05 am »
While we are at the requirements discussion...

Does anyone know how to find out who is referencing a given external requirement?
The requirement properties are missing the link tab!
So while I can trace the requirement from the use case we cannot go the other way.
In one case we only referenced the top level element from a requirement hierarchy - and cannot follow the links to the sub requirements (children) linked to it.

Is there a workaround?

9
Uml Process / Problem with Version Control and cross references
« on: May 24, 2007, 02:29:31 am »
Help Please!!!

We moved our constantly growing model into version control but do encounter difficulties.

We created many sequence diagrams which were nicely linking the UI screens and the used components.
After checking into VC (subversion) all references from sequence diagrams in the Use case model to elements in the UI model and component model have disappeared!!!

I thought using GUIDs those references should survive the version control Import/Export....

Any Ideas?

10
Me too please!!

Or can you describe the algorithm based on existing automation interface calls like the model update from VC repository.
I have a perl script framework to add it in if I know the correct way to do it.....

This would be a way to support the limitations of the team working features we are facing now.... (geo-distributed teams)

Thanks!

11
Hello,

I tried a few different permutations for this but, while not understanding what the goal is, I did not succeed :-(

The perl script is running as an CGI from an apache HTTPD service which is running on its own windows userid.

I tried to set the apache httpd and the EA DCOM settings to the same user but this did not work either.....
Any ideas how things should be??

Thanks for any help!

12
Good to find out that I am not alone with this problem.
The OLE interface called from a perl script works fine from the command line.
Called from a cgi-bin web server it fails with
Win32::OLE(0.1502) error 0x80080005: "Server execution failed"

Is there any more news on this?

13
#!/cygwin/bin/perl -W
####################################################
#  updateDBModel.pl
#  Update the Oracle model from subversion repository
#  this can runs as a cgi-script....
#  important is to check the permissions for the
#  executing user on the DCOM object EA
#  Created on:      06-Jul-2007 13:28:22
#  Original author: Dr. UV Wildner
####################################################
#
# set autoflush and provide an html header....
$|=1;
print "Content-type: multipart/x-mixed-replace;boundary=BOUNDARY\n\n--BOUNDARY\n";

use strict;
use Win32::OLE;
# connection string for the DB model
my $model = "ShareTV --- DBType=3;Connect=Provider=OraOLEDB.Oracle.1;Password=xxx;Persist Security Info=True;User ID=xxx;Data Source=XXXX";
#my $model = "C:/YourModel.eap";  # modify as needed
my $WorkingCopy="C:/YourWorkingCopy";
my $debug=1;
my $verbose=0;
my %PKGSTATES;
#
#########################################################################################
# functions
#########################################################################################
sub printPkgStates
{
   my ($hashref) = @_;
   my $key;
   foreach $key (keys %$hashref)
   {
     print "$key  $$hashref{$key}\n";
   }
}
#########################################################################################
sub getEnumCheckOutStatus
{
   my ($package) = @_;    
   my $i = $package->VersionControlGetStatus();
   return "csUncontrolled                  " if ($i == 0);
   return "csCheckedIn                     " if ($i == 1);
   return "csCheckedOutToThisUser          " if ($i == 2);
   return "csReadOnlyVersion               " if ($i == 3);
   return "csCheckedOutToAnotherUser       " if ($i == 4);
   return "csOfflineCheckedOutToThisUser   " if ($i == 5);
   return "csOfflineNotCheckedOutToThisUser" if ($i ==6);
   return "csDeleted                       " if ($i ==7);
   return "csUnknown                       ";
}
#########################################################################################
# recursive Package traverse using high order functions
sub dumpPackages
{
 my ($pkgCollection,$funcref,@rest) = @_;
 for (my $j=0;$j < $pkgCollection->Count;$j++)
 {
   my $package = $pkgCollection->GetAt($j);
   if ($funcref)
   {
     &$funcref($package,@rest);
   }
   # recurse children
   &dumpPackages($package->Packages,$funcref, @rest);
 }
}
#########################################################
# 2 functions to be passed into recursion                #
#########################################################
my $collectNames =                                       #
sub {                                                   #
 my ($package) = @_;                                    #
 if ($package->isVersionControlled)                    #
 {                                                      #
   my $pkgstate = getEnumCheckOutStatus($package);      #
   $PKGSTATES{$pkgstate}++;    # count states          #
   print "Package =>  ", $package->Name,"  $pkgstate\n";      
 }                                                     #
};                                                      #
#########################################################
my $checkout =                                           #
sub {                                                   #
 my ($package,$projectInterface) = @_;                  #
 if ($package->isVersionControlled)                    #  
 {                                                      #
   my $guid = $package->PackageGUID;                    #
   my $pkgstate = getEnumCheckOutStatus($package);      #
   $PKGSTATES{$pkgstate}++;    # count states          #
   print "\nContent-type: text/plain\n\n";                #
   print "Package =>  ",$package->Name,"  $pkgstate\n";#
   print "--BOUNDARY\n";                                #
   $projectInterface->LoadControlledPackage($guid);    #
 }                                                     #
};                                                      #
#########################################################
sub OleQuit {
   my ($ea) = @_;
   $ea->Exit();    
}
#########################################################
# update working copy from subversion
print "\nContent-type: text/plain\n\n";

die "model file $model not found\n" unless (-f $model || $model =~ /DBType/);
chdir $WorkingCopy;
my $svnCMD = "svn update --username XXX --password YYYY 2>&1 > .svnUpdate.log";
system ($svnCMD) == 0
  or die "system [$svnCMD] failed: $?";
print "svn in $WorkingCopy updated\n" if $debug;
print "--BOUNDARY\n";
#########################################################
# Open the model file
print "\nContent-type: text/plain\n\n";

# this is where the access permission have to be right for the perl script!!! (if run as a batch or as a CGI)
my $repository = Win32::OLE->new('EA.Repository', \&OleQuit) or die "oops cannot access Repository interface\n--BOUNDARY--\n";
$repository->EnableCache;
my $result = $repository->OpenFile($model);
print "file opened\n" if $result;
die $repository->GetLastError ()."\n--BOUNDARY--\n" unless $result;

my $allModels = $repository->Models();
die "no models found in $model\n--BOUNDARY--\n" unless ($allModels);

# get the XML/Report interface
my $projectInterface = $repository->GetProjectInterface();

print "found " , $allModels->Count, " models in file\n";
print "--BOUNDARY\n";

for (my $i=0;$i < $allModels->Count;$i++)
{
 my $model = $allModels->GetAt($i);
 print "\nContent-type: text/plain\n\n";
 print "model ==> ", $model->Name, "\n";
 print "--BOUNDARY\n";
 &dumpPackages($model->Packages,$checkout,$projectInterface);
}

print "\nContent-type: text/plain\n\n";
&printPkgStates(\%PKGSTATES);
print "--BOUNDARY--\n";

14
Hi there,

I am searching for a while now trying to find a nice way to automate the update of the server model file from the Version Control Repository.
(before dumping daily an HTML export into the project webserver doctree ....)

I cannot find any automation API that does the GetAllLatest functionality.... only version control ci, co, add, etc.....
Do I have to program the walk through the project packages and call the VersionControl functions explicitly on every package after updating the working copy externally ???

Also I could not find a way to access a database hosted repository..... Is that intentionally so?

15
so the DBA approach works on an oracle based model .....

I can go to the database and

[glb]delete from t_template where templateType like '%_Template';[/glb]
after that the import of the modified templates from the other EA model works! :)

seems very awkward though!
and won't help if you are using EAP files ????

Pages: [1] 2