Sparx Systems Forum
Enterprise Architect => Suggestions and Requests => Topic started by: Claudia_Dogaru on August 01, 2007, 06:36:03 am
-
We are creating templates in EA also want the flexibility to include or exclude specific information content from the RTF report. For example, when we generate a document for a client we need the ability to include/exclude certain information like a requirement that is specific to one customer only. One suggestion is to use tagged values but I am not sure how to do that, even after reading the help text/user guide, or even if it is the best solution for this purpose. I would appreciate some guidance and feedback as to the best approach/solution that would fit our purpose.
We need the entire template solution to be created and reside in EA, we do not want to use MS Word documents as part of our template solution. Can someone please suggest the best method to achieve this goal?
-
Hi Claudia,
Perhaps the following will help, or at least give you some thinking points.
I wonder about the wisdom of using tagged values, considering your context - you want to customize output on a per-client basis.
This makes me wonder if you'd want to distribute the underlying model to a client, if it contained client-specific tagged values for other clients.
When you say you want the entire solution to "be created and reside in EA" would this be broad enough to include an add-in? If so, perhaps you could store your client preferences outside of EA, or in a separate EA model for only that purpose. The add-in would look up the preferences for a particular client and generate the output you desire.
There are various ways this could be done. Two examples come to mind right off the bat, without any attempt to be exhaustive.
One would be to make a one-time copy of the model and insert customized values. You would then create output as usual, from the custom model, then delete (or archive) it. You could create a new custom model at any time, which would reflect the base (reference) model at that point.
Another would be to custom-generate the output directly from the add-in. This could be done by setting (temporary) values and using triggering the output functions, by directly building and writing output from the add-in code, or some combination of the two. Once you were done you'd clean out any temp values, perhaps after archiving a copy of the model.
HTH, David
-
Thank you for your input David but I am looking for a solution that resembles "conditional text". This information would reside in the same model/project and would disply or be invisible depending on the customer that the report is generated for.
What we are specifically looking for is text that has a "Yes/No flag/option" functionality - the flag/option can be turned on (the information displays) or turned off (the information is now invisible)depending on the customer the report is generated for.
-
Just so I have a better idea of what you are saying:
Do you anticipate storing these conditional values within an EA model?
If so, will you distribute such a model to multiple customers?
And once again if so, would the various conditional values present a problem if the details of the model were examined by a customer?
-
Thank you for your reply and here are the answers to your questions.
We definitely want to store the "conditional values" in the EA model. Requirements are a good example, different cutomers may have different requirements associated with the same project/model.
This model may be distributed to multiple customers, published in HTML format, customers will not have access to the model through an EA application.
Since the models are published in HTML for customers we want customers to only see the model details that are pertinent/part of their project. Therefore, our goal is to create one model/project with details/requirements that apply to multiple customers and the ability to pick which details each customer sees when the model is published. To clarify, Model 1 has requirements A, B, C, & D associated with it. The model is publcihed in HTML for Customer 1 with requirements A, B, & C and for Customer 2 with requirements A & D.
I hope this clarifies our goal.
-
I hope this clarifies our goal.
Not quite Claudia, but the fault is entirely mine.
In my message the term "model" meant the EA project (such as an EAP file). This is a colloquilaism, and it blurs the meaning. You are quite correct to draw a distinction between the model and the containing project.
So, what I should have asked was...
Will the EA project will be published to customers?
It seems that you will only be publishing 'extracts' - the actual "models" as per above - which will be phrased as HTML output or something along those lines. You will have (or wish to have) complete control over the actual elements included in each such publication instance. Further, this control will be scoped to individual customers.
[An important point here: remember that there is a no cost read-only EA reader (EA Lite). If you distribute the entire project your audience will be able to use the reader to peruse all customers' requirements.]
The way you describe it, you could likely describe the association between customers and requirements (or whatever other elements are customized the way you need) through tagged values. Look through the EA documentation for how to set up tagged values, as it will give you some ideas. Note that the tagged values can have a range of data types, beyond simple text strings.
You're still left with filtering the reports. This is an area where numerous requests have been made to Sparx, but we don't yet have much progress.
I'd suggest - once again - that you consider writing an add-in to address this need. My guess is that it will be a relatively small add-in, but of course I've not tested this assumption.
I wonder if you could do this via virtual documents. The EA help sometimes calls these document objects - you'll find information under both headings in the help index, with slightly different items listed. This is worth a try, but it might not provide the level of flexibility you require. I think these things date back to before HTML documentation from EA, but they seem to have been kept current.
David
-
Thank you again for your sugeestions.
Here's my strategy to achieve our goal of customizable templates - virtual documents with document artifacts.
I looked up both add-ins and value tags and am not sure how they can be useful for my purpose. So I am not sure how I should proceed here. Can you please elaborate?
I also ran into another issue. It would be useful to be able to use a base document artifact as a starting point and be able to copy it (I tried a simple copy & paste and it didn't work), which is the equivalent of a Save As in MS Word. You start off with one document (Document 1), you add information to it and save it with another name (Document 2) and now you have your original document plus the one you created. Is there a quick and easy way to do that with document artifacts in EA?
-
I looked up both add-ins and value tags...
I'm not sure we're talking about the same thing. I was referring to tagged values, as defined by UML.
It would be useful to be able to use a base document artifact as a starting point and be able to copy it (I tried a simple copy & paste and it didn't work)...
Select the 'source' artifact on a diagram, then choose Copy from the Edit menu. Go to the 'target' diagram, click somewhere to make sure no element is selected, and from the main menu Choose Edit | Paste Elements | As New. If the As New option is disabled try again, making sure you've selected and deselected carefully.
David
-
I be;lieve we are talking about different things so I will try to clarify and also ask one question at a time.
The document artifacts I created reside as part of one model/package in the Project Browser. To copy this document artifact, I clicked on one of the document artifacts I created to select it, then I selected Copy fporm the Edit menu, then Edit and Paste Elements as Link becasue that was the only option that wasn't greyed out.
I would like to be able to duplicate the document artifacts in the Project Browser with the Copy and Paste functionality but cannot figure out a way to do that. Can you help with this?
-
For copying (same element with different GUID, not connected to the original one) you can use XMI export - import. Check the Strip GUID box when importing.
As the feature works on packages only you have to drag and drop the element into new one.
HTH, Bary
-
I am not overly familiar with the EA application yet so I am unclear on how to do what you suggested in your answer.
Can you please describe/clarify your answer by using a step by step approach to answer the question? For eaxmple, to copy a document artifact, click on Project, select Import/Export, and so on......
In other words, I require further clarification to understand the procedure you described in your answer.
-
...
I would like to be able to duplicate the document artifacts in the Project Browser with the Copy and Paste functionality but cannot figure out a way to do that. Can you help with this?
Hi Claudia,
you want to take an existing element and make a new one with all attributes same, do you?
Step-by-step:
1. Move all elements you want to duplicate in an empty folder.
2. From the context menu (right click) pick Import/Export | Export package to XMI file...
3. Export it (defaults are OK)
4. Drag the original elements back, where it belongs
5. Use context menu on a target folder. Pick Import/Export | Import package from XMI file...
6. Make sure you checked "Strip GUID"
7. Import
Hope it is clearer now.
-
Thank you for your reply. Your answer is clear and I followed the steps you outlined but am unable to successfully copy the elements. I am not sure if this makes a difference but these are document artifact elements, where the element type is artifact and the stereotype is document.
I created the 2 document artifact elements in a package called Version - the package folder is copied over but the elements do not copy with them.
Can you tell me what I can do to copy the elements over with the package folder?
-
Claudia,
Did you follow Jan's step 6 exactly?
David
-
Yes I did. I wonder if for Step 2 I should export the files to the same folder where the Sparx program files reside. Currently I am exporting the files to another folder on my hard drive. The location to Export to wasn't specified in Jan's response - could that be the issue? Otherwise I can't figure out what's wrong.
Can you please provide guidance on this becasue my deadline is the end of this week?
-
The Tools | Options | XML Specifications dialog allows you to select the default XML Directory.
If nothing is set EA will use its installation directory, since it can guarantee that folder exists.
-
I used the method you suggested, Tools/Options/XML Specifications and defined the following XML default location:
C:\Enterprise Architecture\EA Tests - both Enterprise Architecture and EA Tests are folders that I created. I also defined this location in the Filename field of the Export package to XMI dialog box, but the Export failed and gave me an "Error writing XML file message."
What am I doing wrong? Please help, I just want the artifact element to copy properly.
-
Suggestions:
- Try copying the DTD file - check EA help - to the destination folder. Also, ensure the folder exists as you have named it by using the browse button on the dialog I mentioned earlier.
- Use View XMI (or whatever it is called) before you write the file, to ensure that the error is related to writing the file rather than something else.
- Try Tools | Data Management | Project Integrity Check to see if there is a structural problem with your project.
-
the Export failed and gave me an "Error writing XML file message."
That's a bit of a "catch all" error message so it's hard to know the cause but whenever I've seen it in the past it's been caused by an invalid code page value. Go "Tools > Options > XML Specifications" and check the "Code Page" field. I'd suggest you type "UTF-8" in there.
HTH
-
Jan's instructions how to copy elements using Export/Import are correct.
But David' instructions are also correct. I' tried them on an Document Artifact, and it works.
1. Select the 'source' artifact on a diagram (On a DIAGRAM, not Project Browser!)
2. Choose Copy from the Edit menu.
3. Go to the 'target' diagram, click somewhere to make sure no element is selected, and from the main menu Choose Edit | Paste Elements | As New.
(If the As New option is disabled try again, making sure you've selected and deselected carefully.)
If your Document Artifact isn't on a diagram (it means it is only in the Project Browser), then you can put it on a new diagram, use above instructions, and delete this new diagram.
-
I have one more question. We are creating a template solution for documentation using virtual documents and document artifacts. We also want the flexibility to include or exclude specific content from the generated RTF report. For example, when we generate a document for a client we would require the ability to include/exclude certain elements like a requirement that is specific to one customer only. One suggestion is to use tagged values but I am not sure how to do that, even after reading the help text/user guide, or even if it is the best solution for this purpose. I would appreciate some guidance and feedback as to the best approach/solution that would fit our purpose. I would also appreciate step by step guidance to the solution you suggest.
Here is some extra information before you suggest a solution:
Document Options where you can filter information and select which package phase, element status and what to exclude details from is not suitable to our needs
We need the entire template solution to be created and reside in EA, we do not want to use MS Word documents as part of our template solution
Can you please suggest the best method to achieve this goal?
-
We also want the flexibility to...filter information and select which package phase, element status and what to exclude details from is not suitable to our needs...Can you please suggest the best method to achieve this goal?
The sad news Claudia, is that this feature has often been requested, but not yet delivered. Over the past (very) few days Sparx has said they are looking at this, and working on how best to deliver some kind of filtering capability.
This is probably worth waiting a bit longer for. Adding filtering (in a meaningful way) requires that Sparx tinker with the document generation engine, rather than just enhancing a few templates. Doing it well will involve some planning and testing.
There was no information on specific time frames. With luck we won't have to wait for EA 7.1.
David
-
Is there no other feature currently in EA (other than the filtering capability in Document Options) that allows some filtering/selection ability?
Currently we need a solution that includes/excludes requirements so that we can generate a report with specific requirements based on the customr. To clarify, if we have a model with requirements a, b, & c we may want to generate a report with requirements b & c for customer 1 and requirements a & c for Customer 2. Of course there will be many more requirements, I am just simplifying to illustrate my point.
-
You probably should sit down and think about what automation could do for you. It's fairly easy to get information programmatically out of a model. There's just the step on formatting the output well. That might give you a few headaches but I can tell you that once you were over this hurdle you are served much better than with the generic RTF stuff.
-
Can you please clarify your answer? I am not sure what your suggested solution is form your answer.
Thanks,
???
-
Sorry, but I wouldn't know how to do that except getting more wordy. So instead I try a shorter approach. Dump EA's RTF Generator. Write your own thingy using their Automation. There could be said so much, I unfortunately don't have the time to. If it's not your way to go: simply forget my reply.
-
What about to make a search and then select all and
RTF report / Generate one report for all selected.
It's possible to define advanced search and to save it (unfortunately not as an element or resource - it's not visible in the project or resource browser).
See also this topic Save search as a hyperlink? (http://www.sparxsystems.com.au/cgi-bin/yabb/YaBB.pl?board=general;action=display;num=1187179381)