Sparx Systems Forum
Enterprise Architect => Automation Interface, Add-Ins and Tools => Topic started by: Danny F on March 19, 2013, 02:24:40 am
-
Hi
given : EA 9.3 using DBMS repository with required edit lock
when my add-in creates elements, they get automatically locked
except for diagrams ?
When I use diagram.ApplyUserLock() add-in related things (rename diagram for example) work
BUT : user cannot unlock the diagram ??
So it stays locked indefinitely
(until an administrator steps in I would imagine)
We're all EA newbies here, so my first question is : should this work ?
have we missed a configuration setting ?
thnx for any insight - help - solution
-
If you have Require User Lock to Edit EA holds the lock for the new element. So you should use RelaseUserLock() right after creating the element. Example in Perl:
my $pk = $rep->GetTreeSelectedObject();
$pk->ApplyUserLock();
my $e = $pk->Elements->AddNew ("test", "Class");
$e->Update();
$e->ReleaseUserLock();
$pk->ReleaseUserLock();
q.
-
Thanks Qwerty
I understand (and that's how I implement it now) but there is a bit of a discrepancy.
The Add-in creates packages, elements, connectors and diagrams.
After that everything (except diagrams) is automatically locked for and available to the user (that triggered the add-in action) except again for the diagrams
So his (the user) question is : why do you want me (the user) to lock the diagrams separately ?
And still remains the related question : if the add-in does the applyuserlock() - why can't the user unlock the diagram ?
gr
-
Danny,
I'm guessing the locking code in your add-in didn't work.
The fact that you can still rename things in your add-in doesn't mean anything. The API doesn't care for locking.
So I would focus on why the locking didn't work. Did you lock it before Update() -ing it?
Did you check the result of ApplyUserLock?
Geert
-
Geert, you've got me worried now :o
for all the things I create via thee Add-in I only 'need' to lock the diagram explicitly. Not the elements, packages - they get locked automatically.
I lock the diagram via applyuserlock, and everything works 100%
However - I also 'need' to release the lock (only on the diagram) because the user can not release it ??
So in fact 2 questions :
- why do I need to lock the diagram and nothing else
- why can't the user unlock the diagram (that has been locked 'in his name' by the add-in)
gr
-
Geert, you've got me worried now :o
for all the things I create via thee Add-in I only 'need' to lock the diagram explicitly. Not the elements, packages - they get locked automatically.
I lock the diagram via applyuserlock, and everything works 100%
However - I also 'need' to release the lock (only on the diagram) because the user can not release it ??
So in fact 2 questions :
- why do I need to lock the diagram and nothing else
- why can't the user unlock the diagram (that has been locked 'in his name' by the add-in)
gr
We call that EAUI :o
So seriously, I do locking of elements and diagrams all the time in my add-ins and I've never experienced any of that kind of behavior.
But i've also never created new things in my add-ins before either.
Something you might want to try:
- Create diagram
- Save diagram
- Get diagram object again using Repository.GetDiagramBy...
- Lock Diagram
And then see whether or not the user can now unlock the diagram as normal.
Geert
PS. And of course report the strange behavior as bugs to Sparx.
-
well, good new in a way : EA 10 does not have this problem
Don't have to lock anything explicitly