SPARX EA: Exporting Requirements to Word - modeling

I'm working with SPARX Enterprise Architect (version 11.0), and as part of a larger model I am modeling requirements. I've created a bunch of Requirement entities, but I would like to export them as some sort of table into a word document.
Is there an easy way to do this? I've tried using the "templates" in the past, but they're rather complicated and they spit out a lot more than what I'm really trying to export.

If you want to create a Word document out of native EA, document templates is all you've got. However, you can export model data as CSV, import it into Excel and from there to Word.
There are several ways to export CSV data from EA, ranked from hardest-but-most-reusable to easisest-but-most-manual:
Create a CSV import/export profile and run it (project browser context menu -- Import/Export -- CSV Import/Export).
Create a search which finds the elements, run it and copy from the search results window into Excel. The search defines which columns are created.
Place the elements in a diagram, switch to list view (diagram context menu, or diagram main menu -- Show Diagram As -- List View) and copy from that. The columns can be selected by right-clicking a column header.

You can
Create a document generation template, which you can tailor so it only reports what you want it to.
use the model search and copy/paste the contents into a .CSV file. If you create an SQL search you can define exactly which fields are shown int he search results.
Create a CSV export profile where you define which fields to export in which order.

If you are not satisfied with the options offered by Enterprise Architect, you might want to give "eaDocx" a try.
eaDocX™ is the Microsoft Word and Excel document generator Add-In for Enterprise Architect

Related

Update CRM data using Excel sheet and custom identifier

I have to import data from a foreign system into a CRM instance. The foreign system has an ID for either a contact or account (which is also present in CRM, the common identifier).
I'm wondering if it would be possible to extract that data simply through SQL Management Studio, paste this in an Excel file, upload that file through Data Management and have CRM recognize a certain column (the common identifier) as the key, and update all the other fields that would present in that Excel file I plan to upload.
For example, in said foreign system I have:
ClientID ValueNotPresentInCrm
344555 Bleh
And currently, in CRM, I have
accountid xmr_clientid xmr_ValueNotPresentInCrm
24436EDB-9CFA-E511-80C0-00155D7B5806 344555
Obviously, I want to update the xmr_ValueNotPresentInCrm column.
Is this even possible ?
There are two distinct flavours of Excel upload in CRM.
Create new records.
Update existing records.
You will need to use option 2, this involves downloading an Excel file (actually XML) which contains the existing records, making changes in Excel, uploading the file again.
Its a little long winded but is the simplest solution. PowerObjects has a nice tutorial here.
I would also take a look at the Configuration Migration tool from the SDK. It allows you to specify a uniqueness condition on import (see step 12), which would be particularly useful to your scenario.
There is also an open source, custom tool called the Dynamics CRM Configuration Data Mover which you also may find useful. It's less relevant to your scenario because it doesn't seem to have an equivalent uniqueness condition feature, but it's still worth noting.

Requirement management in Enterprise Architect and Excel

I'm starting a new project and want to do my requirement management with Enterprise Architect.
It look really nice to define requirements, associate use cases, design elements, test and so on, all in one software.
I succeeded in creating a profile that let met drag custom requirement with predefined tagged value for enterprise stuff.
My problem is that the requirements must be manage at 3 level. The team, the management and the client. The management and the client both communicate with Excel.
My question is, it is possible to do something like:
- Create requirements diagram in EA with predefined tag value
- Export requirements in Excel (with predefined tag value) - I haven't been able to export my predefined tagged value.
- Modify the excel file
- Import from excel and update the requirements in EA.
Yes, you can do this using CSV Import/Export.
The ability to include tagged values in CSV import/export was added fairly recently, so make sure you're running an up-to-date EA (at the time of writing, the latest release is 9.3.931).
Assuming you've got all the requirements in a single package, proceed as follows:
Right-click the package in the project browser, select Import / Export -> CSV Import / Export.
Click the Edit / New button in the upper right corner of the dialog that opens.
From the Available Fields list, select GUID, Type, Name, Notes and any other fields you use (eg Difficulty).
Click Add Tagged Value Field -> Value.
If the tag you're after is defined in a properly deployed UML profile, you can find it in the list. Otherwise, click the Other Element button and navigate to one of your requirements; this will allow you to select tags created on-the-fly as well.
Back in the Specification dialog, make sure you've selected the correct delimiter (upper right corner) and set a name for the specification. The other dialog options can be left empty but it's probably a good idea to specify Requirement as the default type. Save the specification and close the dialog (you only have to create the specification once, of course).
In the Import/Export dialog, specify a filename and select Export. Click Run to export the requirements.
To reimport, simply select to Import rather than Export in the CSV Import / Export dialog.
The two crucial fields are the GUID and the Type. You may want to hide these columns when you send the requirements to management and client, and inform them that they shouldn't tamper with those.
The GUID is the unique identifier. As long as that's in the file, EA can reimport the file and update your modelled requirements.
The Type needs to be set to Requirement for any new requirements that are added in the file. You don't need to set a GUID. EA will ask you during the import whether to create one or ignore the entry completely; tell it to create one and the requirement will be added to your model. But the Type field has to be set or EA won't know what to create.
What EA won't do is delete requirements from your model if they've been removed from the file. This is something you'll have to manage manually. (And if you're working on a project where the number of requirements actually decreases over time, please give me a call.)
If your requirements are in several packages you can still import / export them this way, but it's a little bit more complex: you'll need to set the Preserve Hierarchy option in the CSV specification and use a couple of special columns, but that's pretty well described in the help file.

How do I store this external data in SharePoint?

I am using Visual Studio 2010, SharePoint 2010 with custom document content types and forms. And plan to also use jquery to build the document add/edit/view forms.
I am developing a solution where I want to have a document library where each document uploaded also has a number of external data elements added as metadata.
The tricky part I'm trying to figure out is I want the user to be able to specify and add a multiple number of those same external data elements.
I'm trying to figure out how I represent the data internally in SharePoint. My initial thought is to programmaticly add hidden external fields as the users adds those external selections. But then I also think of simply storing those external elements as non-external text fields but have my own code which performs the external data lookup and validation.
I'm not adverse to significant custom coding, as I'm probably going to need to do a lot anyway since even the user interface is going to be a jquery tabbed form to enable all the external data the user will be able to associate with each SP document.
I've made an attempt to hopefully further explain what I'm trying to do and included that image. Essentially I'm wanting to add 1+ external data relationships to each document, as desired by the user.
It uses just example data. I'll actually have 4-7 different complex relationships much like the example. And the user is permitted to drilldown and select 1, 2 or all 3 of the dropdowns.
Think of it as similar to how here on Experts-Exchange we can add multiple zones to a question.
An example illustration is here: http://flic.kr/p/aFUSJn
Could you simply add a multi-line text column and have the user input the metadata with comma's, then use your code to seperate the data and do what you want with it?
You said you were not adverse to significant custom coding :)
One solution is to use SharePoint content types. The trick is that not all items in a list need to have the same content type.
Therefore, you can do the following:
As the user is selecting the fields he wants to use you generate or select a content type that matchs those fields.
You then add your document to the document list using the content template
You then have all your information strongly typed in SharePoint lists.
We have previously built a system where we generate content types based on xsd files, this worked very well.

Sharepoint lookup column customization

I'm developing a customized document library in the SharePoint 2007 environment. What I'm doing is creating a content type with multiple columns of information related to the document. Users will use this content type to upload new documents rather than the standard new document functionality. One of my columns in this content type is proving to be more difficult than I can handle.
The column is essentially supposed to be a sort of 'related documents' column, where it offers the user the option to select another document that is related to this document. So I thought I'll create a lookup column that displays the titles of all other documents in the library and allows the user to choose one. Simple enough, but I need much more functionality than this...and here is where I need help.
I need the related document column to actually link to the related document, not just display the title...not in edit mode while a user is adding a document, just in the standard document library view after the document has been added.
I also need the link to include a url variable that is stored in another column named 'Document Number'.
I assume this will require custom coding which is fine. Please not that I can't use SharePoint Designer. I use Visual Studio and code must be C#. This will be packaged and released as a feature.
Can anyone help me acheive this? Example code, suggestions, etc...? Thanks!
I would suggest using a multi-column field as your base value type - this article on MSDN should get you started. For rendering the field in document library views, you will need to use a rendering pattern. Conveniently, MSDN has an example of a multi-column RenderPattern.

Representing parent-child relationships in SharePoint lists

I need to create some functionality in our SharePoint app that populates a list or lists with some simple hierarchical data. Each parent record will represent a "submission" and each child record will be a "submission item." There's a 1-to-n relationship between submissions and submission items. Is this practical to do in SharePoint? The only types of list relationships I've done so far are lookup columns, but this seems a bit different. Also, once such a list relationship is established, then what's the best way to create views on this kind of data. I'm almost convinced that it'd be easier just to write this stuff to an external database, but I'd like to give SharePoint a shot in order to take advantage of the automated search capabilities.
Proper Parent/Child in Sharepoint is near impossible without developing it yourself. There is one approach to that here: Simulate Parent / Child relationship in SharePoint 2007 with Folders & Content Types
(Note: This concerns SharePoint 2007. In 2010, Joins make this much easier)
Do it in a separate database, create a page(s) with controls that surfaces the data and run search over that. Loses quite a bit of the SharePoint features though.
Otherwise it may be okay to create a custom field control that will allow you to lookup the data in the other list.
The custom field control can be the one to "view" the related data.
I know we have done it for parent child relationships between pages on the same list. Not 1-to-N though.
Tough choice either way.
My vote is "to write this stuff to an external database"
You miss a lot of things in Sharepoint things like transaction support, referential integrity, easy way of updating (compare SQL), reporting (using Reporting Services and a SQL database)... see sharepoint as a way to store documents and simple lists.....
The argument for Sharepoint is if it is a small application, no requirements on support for transactions, no need to import external data etc...
When people say Sharepoint is a development plattform there is a need to define whjat they think a development plattform is.
The latest rumours about Sharepoint 2010 tells us that there will be support for SQL server based lists in next version ..... which I think will at least move Sharepoint in the right direction ....
Take a look at SLAM, SharePoint List Association Manager, an open source project my company created and actively supports. SLAM allows you to synchronize SharePoint data to SQL, including any relationships between lists. SLAM, in addition to being very useful on its own, is really a framework intended to allow developers to create their own complex data associations using what we call SLAM type profiles. We have one out-of-the-box type profile which is part of the open source project which actually allows you to make a SharePoint list hierarchical using the nested set model. For more information, see this page on our codeplex site.
I do this a lot just using sharepoint, using a framework called AAA (Activity,Assignment,Artifact), which allows you to use lookup columns to link an assignment or artifact to a parent Activity. You then build a web part page with connected web parts that allow you to filter all assignments and artifacts by activity. For example, click next to a submission in the submission web part, and all of the submission items attached to that submission will show up. Works great.
The other approach that you can look at using is persisting XML with a field in the item. This is the approach used by the Podcasting Kit (on CodePlex) to store things like ratings.
One possible method is to create a submission content type based on the folder content type and a submission-item based on item content type. Then you can store data hierarchically like in file system and also will work default views and search functionality.
Other way is to create lookup field that points to same list (list=”self”). This field will be used like reference to parent item and you will get list that contains recursively related data. To use this data programmatically will be ok but using views functionality will be little bit complex.
It's easy to do using a connected web part.
Create two lists:
Parent (Id, Title)
Child (Id, Title, ParentId)
Create a new sharepoint page, add DataFormWebPart (displaying Parent) and another one for Child, set both of them to filter based on a QueryString parameter (use that Parameter to filter Parent.Id, and Child.ParentId) voila, you can display parent-child relationships. Now, adding children is more difficult, and that's the part I haven't worked out yet.

Resources