Thursday, January 21, 2010

HOWTO : ArgoUML and archgenxml

ArgoUML and archgenxml are great utilities to have around while doing Plone development. However if you go by the documentation (Whatever little exists), be prepared for a long night and a pot of hot coffee handy. I hope to maintain this page with issues I encountered (and solutions wherever found.)

Problem:

File “Plone/Python-2.4/lib/python2.4/site-packages/xmiparser-1.4-py2.4.egg/xmiparser/xmiparser.py”, line 697, in calcDatatype
raise ValueError, ‘datatype %s not defined’ % typeid
ValueError: datatype archgenxml_profile.xmi#16a8d020-4c0a-58ce-993f-e6306abf0bbf not defined

Solution:

Save your project as “.zargo” file format and pass that to archgenxml instead – like “archgenxml test.zargo”.

Comment: You’d have expected that whoever thought of something like archgenxml would have enough sense to print out a warning – seems like an obvious trap to fall into (going by the documentation).

Problem: You want to override the default view of a custom content type. That is “content_type/view” should resolve to your defined view.

Solution:

Setting up things in argouml to override the view is simple -

1. Select the class you want to set the default view. It is important that you click on the class name – selecting any other attribute or method will NOT work.

2. Click on the “Tagged Values” tab.

3. Select the default_view tag from the list of drop downs. Set the value of the tag to resolve to your defined view.

4. Save project and run archgenxml to setup the Plone product.

Comment: In case you cannot get this to work, just follow these simple steps to ensure that you haven’t been victimized by one of argouml’s quirks.

Step1. Open up the profiles/default/types/your_content_type.xml

Step2. Search for the line which contains the following declaration

your_default_view

it should be set to your default view. If not, you need to go back to step 1 of the solution above and really ensure you click on the class name and start over again.

Next we will see how to actually provide the view.

For more details about Web development in Plone please visit – http://www.bygsoft.com/webservices