Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules

Discuss all other Modules here.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Advanced Workflow - Error with Silverstripe 3


Reply

3 Posts   950 Views

Avatar
Moccy

18 September 2012 at 1:35am (Last edited: 18 September 2012 1:37am), Community Member, 2 Posts

Hi all,

I am just upgrading to Silverstripe 3. Everything worked out perfectly, but now I tried to set up the Advanced Workflow module (the current version) which is causing me some trouble. Actually, the installation including dev/build did not bring up any errors or warnings, but when I try to create a new workflow, I always get the following error (captured with FireBug):

ERROR [User Error]: Uncaught Exception: ManyManyList::add() can't be called until a foreign ID is set
IN POST /admin/workflows/WorkflowDefinition/EditForm/field/WorkflowDefinition/item/new/ItemEditForm
Line 76 in /web/XXXXX/htdocs/silverstripe2/framework/model/ManyManyList.php

Source
======
67:     * @param $extraFields A map of additional columns to insert into the joinTable
68:     */
69:    function add($item, $extraFields = null) {
70:       if(is_numeric($item)) $itemID = $item;
71:       else if($item instanceof $this->dataClass) $itemID = $item->ID;
72:       else throw new InvalidArgumentException("ManyManyList::add() expecting a $this->dataClass object,
or ID value", E_USER_ERROR);
73:       
74:       // Validate foreignID
75:       if(!$this->foreignID) {
* 76:          throw new Exception("ManyManyList::add() can't be called until a foreign ID is set",
E_USER_WARNING);
77:       }
78:       
79:       // Delete old entries, to prevent duplication
80:       $this->removeById($itemID);
81:
82:       // Insert new entry/entries

Trace
=====
ManyManyList->add(1)
DataList.php:836

DataList->setByIDList(Array)
CheckboxSetField.php:186

CheckboxSetField->saveInto(WorkflowDefinition)
Form.php:1176

Form->saveInto(WorkflowDefinition)
GridFieldDetailForm.php:367

GridFieldDetailForm_ItemRequest->doSave(Array,Form,SS_HTTPRequest)
Form.php:348

Form->httpSubmission(SS_HTTPRequest)
RequestHandler.php:168

RequestHandler->handleRequest(SS_HTTPRequest,DataModel)
RequestHandler.php:186

RequestHandler->handleRequest(SS_HTTPRequest,DataModel)
GridFieldDetailForm.php:82

GridFieldDetailForm->handleItem(GridField,SS_HTTPRequest)
GridField.php:649

GridField->handleRequest(SS_HTTPRequest,DataModel)
RequestHandler.php:186

RequestHandler->handleRequest(SS_HTTPRequest,DataModel)
RequestHandler.php:186

RequestHandler->handleRequest(SS_HTTPRequest,DataModel)
Controller.php:149

Controller->handleRequest(SS_HTTPRequest,DataModel)
LeftAndMain.php:341

LeftAndMain->handleRequest(SS_HTTPRequest,DataModel)
AdminRootController.php:88

AdminRootController->handleRequest(SS_HTTPRequest,DataModel)
Director.php:281

Director::handleRequest(SS_HTTPRequest,Session,DataModel)
Director.php:112

Director::direct(/admin/workflows/WorkflowDefinition/EditForm/field/WorkflowDefinition/item/new/ItemEditForm,DataModel)
main.php:126

Does anyone have a suggestion how to solve this problem? I have not come across any relevant bug ticket.

Thanks a lot in advance,
Moccy

Avatar
Marcus

20 September 2012 at 2:37pm Administrator, 86 Posts

I'm going to be working with the module a bit later today / tomorrow, so will be able to see a bit more then, but my guess is that you're selecting users/groups when initially creating the workflow? Try creating the definition first, then select users/groups after it's been saved for the first time; this will be changed so you can't perform those actions until after it's saved.

Avatar
Moccy

21 September 2012 at 12:17am Community Member, 2 Posts

Your guess is right. I now tried to create it without selecting users or groups and it just works... Thank you very much for the workaround!