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.
Related
I need to create a portlet in order to change the default category behaviour/interface in Liferay 7.
My objective is to duplicate assetcategory table, expand and change its columns, and use this new table as a reference for categories within Liferay backend.
Therefore there are three key points my portlet has to update:
The category organization UI to create/update category tables on
DB. I’m able to create a new Liferay module project (panel-app template) which can present the UI backend interface from the side menu and interact with the DB.
Override default category selection panel within web content
properties panel (metadata > category select). I can create a new
Liferay module project fragment to override the
com.liferay.asset.categories.selector.web, however I’ve noticed I can
select only one file path (eg. META-INF/resources/view.jsp)
Override default asset publisher filter behaviour in order to allow
my custom categories selection. I’ve not yet investigated this
point.
I’m currently stuck at point 2 because after creating a new Liferay module project fragment, set the target Host OSGI Bundle to com.liferay.asset.categories.selector.web (which I believe is the correct one, please correct me if it isn't) and selecting the overridden files as META-INF/resources/view.jsp, I can’t proceed to redraw the category selection interface.
Here my attempts:
Updating the code view.jsp (eg. adding some text string) I can correctly
see them in the portlet.
Removing/commenting all the code in view.jsp an error is shown:
Asset category selector is temporarily unavailable
Selecting all three files available to be overridden in the main
portlet wizard (META-INF/resources/view.jsp, init.jsp and
init-ext.jsp) and updating view.jsp (like the first example) nothing
happen in the portlet
Some screenshot below:
Case 1
Case 2
Case 3
I need to create a portlet in order to change the default category
behaviour/interface in Liferay 7. My objective is to duplicate
assetcategory table, expand and change its columns, and use this new
table as a reference for categories within Liferay backend.
Just this alone sounds like a humongous task, bigger than what would fit into a stackoverflow question.
AssetCategories are used in every single content type, e.g. WebContent, Blog Articles, Message Board Posts, Wiki Pages, Knowledgebase Articles etc.. Replacing such a vital component by your own implementation is something that will safely ruin your next upgrade experience, because there you'd have to do this again, bringing your code to whatever changes will be made in the next version. And this "upgrade" includes Security Patches.
Overall, your premise sounds to me like a x-y problem and I'd rather recommend that you step back from your intended solution and look for other options to meet your business requirements. There surely are some.
My recommendation: Rather add something to the platform than ripping out a very central and generic component, reimplementing it in a business-specific manner. If you need a different filtering than Asset Publisher provides: Build your own Asset Publisher and implement the business specific rules there. Or think again about organizing your content in a different way than you currently organize it.
Unless you're already a Liferay Core Developer and are asking for a hint on how to change the implementation for the next version. But your question history here doesn't look like it.
I have got a population of agents named as customers and a number of variables, parameters, and statecharts are defined for them. Then I created a second population of agents. They should include everything that I defined for customers and a few more. I tried copying everything in the customer graphical view page and pasting them into the new agents' page, but it does not work. How can I do that?
Thank you
I assume you want to actually copy your agent-type, add some more variables... and create a population off that new type, correct?
In that case, you need to copy the actual agent-type in the "Projects" window. Right-click the customers agent-type, then "copy.
Now, right-click on the top-level model-object (named like your model) and right-click it. It will allow you to "paste" now. You will have an agent-type "customers" and "customers1" now.
PS: if you have similar agent types that share properties, you should actually use "inheritance" (a Java core functionality that can be used powerfully in AnyLogic).
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.
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
I've created my own solution with a custom entity of type activity. I'd like to show a message whenever a new instance of it is created using an existing contact but not allow the user to create one, if only attempting to do that without going via contact.
Basically, my aim is that it won't be impossible to just create that activity (the form will be hidden directly at any attempt except for one way only). The user will have to go to contacts (or leads etc.) and in there add and create an instance of the custom activity entity. That way, I can assure that the field "regarding" will be filled out already.
I'm guessing that I need to detect somehow that the opening of the form is a creation attempt. How can I do that?
Also, as it is now, the user can't create a contact-less activity of the custom type because it doesn't appear on the menu with other activities. I must have disabled it somehow but I have no idea how. Anybody who has one?
You could do this a bunch of ways but the easiest would probably be to:
Make the regarding field read only.
Make the regarding field mandatory.
That way if a user opens a create new form they wont be able to set the regarding and because its mandatory they wont be able to save the record. When they open via an existing contact the regarding field will be mapped automatically. That said in this case just making it mandatory my be enough.
(As a side JavaScript can be used to identify the current form state, but I'm not sure how useful that is here).
In terms of where custom activities appear, by default mine show in a number of locations, for example:
CRM > Workplace > Activities > Ribbon > Other Activities > XXX.
CRM > Workplace > Activities > View Selector > XXX.
They don't show under the left hand navigation of the workplace because they are grouped under 'Activities'. I'm pretty sure these are all the default settings.
You can exercise greater control by editing the sitemap, where you can put pretty much anything, anywhere.
In addition to Mr Wood, I'd like to show you some code. It works as supposed to but I'm not sure if it's optimal.
var foo = function () {
var whatIsGoingOn = Xrm.Page.ui.getFormType();
if (whatIsGoingOn === 1)
alert("Let there be an entity!");
else
alert("Not a creation...");
}
The other states' (deletion, update etc.) numeric values are listed here.
Answering the second part of your question:
When you create a custom activity you can choose whether to have it appear in 'normal' Activity menus or not by checking the box at the top right of the entity form. This is a once-only choice as far as I know and can't be changed later.
For your setup, I would suggest NOT checking this box, so it does not appear in the activity menus to avoid users even being tempted to do it that way.
Instead, add an explicit relationship to the activity N:1 to Contact, and another N:1 to Lead. Use this relationship to add your activity to the left navigation of Contact and Lead forms, or add a grid for them (depends on how you want to use this and if you need to filter the view to something other than the default "Associated View").
When a user navigates to this section they will see if any previous activities of this type exist, and be able to add a new one. BUT this means that the child record is a child via this relationship, not using "regarding", so use a script on the form for the activity so that if Contact is filled in, it is copied to Regarding, and if Lead is filled in then that is copied. If neither, then use an alert or other means to warn the use that something is wrong (see comment earlier). If you want Regarding to be read-only but filled in by script, you will need to make sure to use the force the value to be saved:
Xrm.Page.getAttribute("regardingobjectid").setSubmitMode("always");
You must have the lookups for Contact and Lead on the form to be able to use them in your scripts, but you can make them not "visible by default" so they are there but not seen by the user (and taking up no space).