[Zope] The id "s5/begin" contains characters illegal in URLs

Sinang, Danny D.Sinang at spi-bpo.com
Thu Aug 10 02:19:40 EDT 2006


 
> Huh? Usually you have  no chance to create a Zope object with such an
id.
> So there is no need to rename something that can't exist be definition
:-)

Exactly. 

The said object, "s5/Begin", is the "Begin" activity of the "s5" process
found in the "GeneralWorkflow" workflow - which is an OpenFlow (
www.openflow.it ) object.

I was able to rename my processes (S5, S100, S200) to their lowercase
counterparts since all I had to do was do :

///////////////////////////////////////////////////////

wf = container.GeneralWorkflow
catalog = wf.Catalog

processes = catalog.ZopeFind(wf, obj_metatypes=['Process'],
search_sub=1)

for p in processes:
    wf.manage_renameObject(p[0], p[0].lower())  

///////////////////////////////////////////////////////


When I try to rename the activities found in those processes, I try to
do likewise, but the ZopeFind results come out like this :

('S100/Begin', <activity at /dev/danny/wms/GeneralWorkflow/S100/Begin>)
('S100/RECEIPT_OF_SOURCE_DOCUMENTS', <activity at
/dev/danny/wms/GeneralWorkflow/S100/RECEIPT_OF_SOURCE_DOCUMENTS>)
('S100/CHECK_MS_BATCHING', <activity at
/dev/danny/wms/GeneralWorkflow/S100/CHECK_MS_BATCHING>)

To call manage_renameObject (), I have to supply it with the object
name.

If I use result[0], I get the illegal characters in URL error. 

And if I use result[1].id, I get :

	Error Type: AttributeError
	Error Value: Begin

This is probably because there is no "Begin" object under the "wf"
container from which I'm calling manage_renameObject().

So my question is, how do I refer to the "Begin" object found in the
S100 workflow ?

Regards,
Danny



More information about the Zope mailing list