views:

862

answers:

3

Enterprise Architect has a way to generate the documentation in HTML/RTF/etc. that you could publish, but you have to use its GUI to do that manually. When you have your *.eap files in a CVS/Subversion server, it would be useful to have a script that would check out daily the latest version and publish it in a web server. As long as I know, EA doesn't have a command line utility for this purpose. I found that you can automate almost anything using its COM interface, but that means it's necessary to write a small program to do that. Any ideas about the easiest/cleanest way to do that (without having to write code, if possible)?

+2  A: 

I'm afraid you will need to write some code, but it shouldn't be more than a dozen lines or so. The function you will want to call is Project.RunHTMLReport() - a quick search for "RunHTMLReport" in the EA help file will tell you what parameters it needs, and a search on the Sparx website forum will find you an example or two.

chimp
+2  A: 

Thanks, It was easier than I though. In Java:

class EADump
{
    public static void main(String[] args)
    {
     org.sparx.Repository r = new org.sparx.Repository();

     System.out.println("Repository: " + args[0]);
     System.out.println("Package:    " + args[1]);
     System.out.println("Output:     " + args[2]);
     r.OpenFile(args[0]);
     r.GetProjectInterface().RunHTMLReport(args[1], args[2], "GIF", "<default>", ".html");
     r.CloseFile();
    }
}
Fabio Ceconello
From http://stackoverflow.com/users/486534/jeff: The 1st arg is the PackageGUID how do you return that? Where does that parameter come from?
Fabio Ceconello
It is shown in the package properties.
Fabio Ceconello
One thing I just noticed: if the EAP file or the package doesn't exist, RunHTMLReport will not tell you: no error message, no exception, nothing. Also, it seems not to like relative paths. Finally, the last arg (output) is a path. If you provide a path that doesn't exist or isn't valid, it'll silently do nothing, too.
Fabio Ceconello
A: 

The 1st arg is the PackageGUID how do you return that? Where does that parameter come from?

jeff
Jeff, I'd recommend to post questions about an answer as a comment to that answer (as I did), not as another answer.
Fabio Ceconello