Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: dowser on August 04, 2016, 09:21:43 pm

Title: Share model components between different projects
Post by: dowser on August 04, 2016, 09:21:43 pm
Hello,

in our company we have a shared model with the cloud services from EA.

The situation is, that we have several systems (70) to document with the EA. Between this systems we have so called "common objects".
"Common object" are public interfaces and shared domain objects.

So we plan to create a project "common objects" which can be included/linked from the other projects.

In my mind is something like two root nodes in the project browser. One node is my project, the other node is the "common object" project.

Is that somehow possible, or are the other possibilties for that issue.

Regards,

Alex
Title: Re: Share model components between different projects
Post by: Guillaume on August 04, 2016, 09:47:43 pm
Hi Alex,

You might want to look at the RAS (reusable asset service) feature to publish your shared model. This lets you publish several versions of common models which can be imported into any EA Project (a password can be set if needed).
You get a clone copy of your shared model on each EA project which can either be a model root or a package - it's up to you.

It requires the Cloud Service which you already have.

Guillaume
Title: Re: Share model components between different projects
Post by: dowser on August 04, 2016, 10:47:53 pm
Hi Guillaume,

that's exactly what I'm looking for.

Kind regards,

Alex
Title: Re: Share model components between different projects
Post by: Geert Bellekens on August 04, 2016, 11:12:48 pm
Alex,

You can do the same using version control, with the difference that this doesn't require the cloud setup.

Geert
Title: Re: Share model components between different projects
Post by: dowser on August 06, 2016, 12:51:49 am
Hello once again,

so, I have a new situation with my configuration.

Let's say we have "common objects" and share this between different projects P1 and P2.

P1 is adding a new interface I1 to the "common objects". -> Register
P2 is adding a new interface I2 to the "common objects". -> Register

As P2 I want to import the "common objects" and overwrite his I2 Interface.
Because I want to have both changes in the common objects. The only possibility is to create a baseline an merge after the import the baseline in my model.
This is working for me, but can I script this functionality? Because we have several users and I'm sure not all of them will get this complexity.

So concret questions:
- Can I script the RAS funcionality?
- Can I script a baseline?
- Can I script the merge functionality?

Thanks for your answers.

Alex


Title: Re: Share model components between different projects
Post by: Geert Bellekens on August 06, 2016, 01:53:55 am
You can solve that with a connection to a version control system.
This works with exclusive locks, so only one project can make a change at a time.

Geert
Title: Re: Share model components between different projects
Post by: smendonc on August 06, 2016, 03:30:28 am
There is no scripting ability for RAS.  I put in a feature request when it first came out requesting this, however based on the posts I've seen I don't think it has enough momentum yet for this type of request to bubble up.  You should make the feature request though so it gets logged.

Stan.
Title: Re: Share model components between different projects
Post by: dowser on August 08, 2016, 06:32:46 pm
Hi,

thanks for the comments.

We cannot use our Version Control System because we use git.

So our solution will be to script the functionality without RAS via File ex-/import and merging.

Thanks,

Alex
Title: Re: Share model components between different projects
Post by: Geert Bellekens on August 08, 2016, 07:20:07 pm
Hi,

thanks for the comments.

We cannot use our Version Control System because we use git.

So our solution will be to script the functionality without RAS via File ex-/import and merging.

Thanks,

Alex

Seems to me like it would be a lot cheaper to install SVN or something like that and use out of the box functionality then to start scripting a solution that is probably not as watertight.

Geert
Title: Re: Share model components between different projects
Post by: PeterHeintz on August 08, 2016, 08:13:08 pm
Another possibility would be to have a own repository for your "common objects" stuff.
This way it is easier to ensure that you "common objects" do not depend on project specific stuff.
This is what we do and it is independent one the way you distribute you common objects" to the projects (import, SVN, RAS).
Title: Re: Share model components between different projects
Post by: dowser on August 11, 2016, 06:00:15 am
Thanks Geert and Peter.

@Geert: We are a big company and just migrated from SVN to GIT. It is not possible to get our own SVN island.

@Peter: I think, I don't understand your answer. We have already our own repository. The problem is, that 5 teams are updating the "common objects" in this repository and so you have to update and share it between that teams.

Best regards,

Alex
Title: Re: Share model components between different projects
Post by: PeterHeintz on August 11, 2016, 05:08:03 pm
Maybe I do not entirely understand what you do!?

I assumed that you have one common object repository (COR) and 70 projects sharing the common objects in COR). Further on I assumed that the common objects you change in any of your 70 projects and this can cause conflicts and you are using RAS as COR.

In this situation my recommendation was to have one repository to edit your COR one to deploy your COR (RAS) and 70 projects only using but not changing your core.

If your issue is more to update the 70 projects with the new version of your COR automatically, this should be possible with pure imports or version control.

However I would do that automation stuff only in cases, where the elements in COR are really good manageable in a way that people changing that COR, do really know what it means for the 70 projects. Btw. merging stuff is not really possible, so I avoid that whenever possible.

PS.: I am in a big company as well and sometimes things are possible which seem to be impossible. Maybe the git svn bridge satisfies your management.
Title: Re: Share model components between different projects
Post by: dowser on August 26, 2016, 04:59:26 pm
Thanks Peter,

we have build a solution with an automated import and export to the version control system. So far it works as designed.

After developing the solution I found a funtion in the EA: Project | Data Management | Shared Repository
http://www.sparxsystems.com/enterprise_architect_user_guide/12.1/the_model_repository/sharedrepositoryrefdata.html

Isn't that also a possible solution for common objects? Has someone experience with that function?

Regard,

Alex
Title: Re: Share model components between different projects
Post by: Geert Bellekens on August 26, 2016, 05:30:09 pm
Ah, yes, I forgot about that option.

Never used it, so I can't share experience, but it looks promising.

Geert