Archi Forum

Archi => Archi Development => Topic started by: scotto on August 21, 2017, 19:54:52 PM

Title: Share plugin
Post by: scotto on August 21, 2017, 19:54:52 PM
I have created a plugin for a csv export with the option to only export elements and relationships when they participate in a view (basically, a modified copy of the com.archimatetool.csv package) and I would like to share it. What is the best means for sharing the plugin (and code)?
Title: Re: Share plugin
Post by: Jean-Baptiste Sarrodie on August 21, 2017, 20:38:16 PM
Hi,

I see two options in your case:

If you extended original CSV plugin with new options, the best solution is to in fact propose a pull request. This would allow Phil or me to check your code and make it part of the official Archi distribution.

Or I can create a git repository for your plugin under archi-contribs organization on GitHub. You just have to provide me your github account name and (not mandatory but preferable) rename your plugin to org.archicontribs.yourpluginname. You'll then be able to upload your code and publish a binary release.

Regards,

JB
Title: Re: Share plugin
Post by: scotto on August 21, 2017, 21:04:55 PM
I'd like to go with option one in hopes that the code (with some cleaning) could become part of the official distribution.
Title: Re: Share plugin
Post by: Phil Beauvoir on August 21, 2017, 21:33:33 PM
Can you give more detail about what it does and why someone needs this option?

Phil
Title: Re: Share plugin
Post by: scotto on August 21, 2017, 22:24:33 PM
The basic use case is to retain the references to diagrams in which the model element is used so that the target applications have the information. For example, I may have a model of all of the business processes, business objects, application components, and data objects for an entire organization. Then I create diagrams which show the processes, data, and applications that are used by a particular organizational unit. There may be many elements and relationships that are not used in any diagram. I have another application which can use the elements and relationships in the view(s) to make further use of the data for the organizational unit. The target application does not need the entire model, it only needs the parts that are within the view for the organizational unit. The target application can perform simple filtering of elements/relationships using a field (e.g., the view name), but is not capable of tracing the graph represented by all of the elements/relationships in the model.

In the extension I've written, the csv export dialog gives the option for exporting "Views Only." When the option is selected, the modified CSVExporter identifies the elements and relationships by the diagrams in which they are involved and writes them out. The csv files for the elements and relationships have an extra field (View) added for the name of the view. The elements file's 1st record would have the view name "Model" to accommodate the model element record. Additionally, an extra field is added to the relationships to enable the AccessRelationships' access type to be exported (enabling the target application to identify read/write access). Other relationship types will have an empty string in the Access field. The properties processing is not changed. Thus, the elements header would be:
"View","ID","Type","Name","Documentation"

And the relations header would be:
"View","ID","Type","Name","Documentation","Source","Target","Access"


Title: Re: Share plugin
Post by: mrygaard on September 15, 2017, 14:21:22 PM
I think this is a great idea, e.g. I'm struggling with a kind of repository with views to be used as templates etc. If I could export based on the view names, change data for that specific view and the object, and then import, it would be much easier,
I also need to do some analytics of data in the different objects. As I can't bulk change attributes in Archi (only delete), I need to export the data and then work with it in other tools, normally Excel. If I know the source based on the views, it would be much easier

Any updates? I'm happy to test the plugin btw

Mats
Title: Re: Share plugin
Post by: Phil Beauvoir on September 15, 2017, 14:24:51 PM
What I get from this and other threads is the underlying need to manipulate model data outside of Archi to do a number of things - analysis, bulk changes and so on. CSV and Excel seems more like a kludge than a solution. What would be the ideal method, I wonder. User scripting?
Title: Re: Share plugin
Post by: scotto on October 02, 2017, 20:47:49 PM
Getting back to this after some distractions... and I've switched to an xslt approach. All of the data are exported in the Open Exchange File as xml elements, so a transform to put the data into a csv format will satisfy my needs. I have created an xslt 2.0 stylesheet that generates output files for elements and relations by following references in the views' nodes and connections back to the elements and relationships. I'm happy to share it if others find it useful.