/** * @see BaseJob::run() */ public function run() { $workflows = WorkflowActionsUtil::getWorkflowsMissingRequiredActionAttributes(); if (count($workflows) > 0) { $message = new NotificationMessage(); $message->htmlContent = Zurmo::t('WorkflowsModule', 'As a result of a field or fields recently ' . 'becoming required, at least 1 workflow rule will no longer work properly.'); $message->htmlContent .= "<div><ul>"; foreach ($workflows as $workflow) { $message->htmlContent .= "<li>"; $url = Yii::app()->createUrl('workflows/default/details', array('id' => $workflow->getId())); $message->htmlContent .= ZurmoHtml::link(strval($workflow), $url); $message->htmlContent .= "</li>"; } $message->htmlContent .= "</ul></div>"; $rules = new WorkflowValidityCheckNotificationRules(); NotificationsUtil::submit($message, $rules); } return true; }
/** * @see BaseJob::run() */ public function run() { $workflowsWithInvalidActions = WorkflowActionsUtil::getWorkflowsMissingRequiredActionAttributes(); if (count($workflowsWithInvalidActions) > 0) { $commonMessage = Zurmo::t('WorkflowsModule', 'As a result of a field or fields recently ' . 'becoming required, at least 1 workflow action rule will no longer work properly:'); $message = new NotificationMessage(); $message = $this->updateNotificationMessage($workflowsWithInvalidActions, $message, $commonMessage); } $workflowsWithInvalidTriggers = WorkflowTriggersUtil::getWorkflowsWithInvalidTriggerCustomFieldValue(); if (count($workflowsWithInvalidTriggers) > 0) { if (!isset($message)) { $message = new NotificationMessage(); } $commonMessage = Zurmo::t('WorkflowsModule', 'As a result of modifying picklist data recently, ' . 'at least 1 workflow trigger rule will no longer work properly:'); $message = $this->updateNotificationMessage($workflowsWithInvalidTriggers, $message, $commonMessage); } if (count($workflowsWithInvalidActions) > 0 || count($workflowsWithInvalidTriggers) > 0) { $rules = new WorkflowValidityCheckNotificationRules(); NotificationsUtil::submit($message, $rules); } return true; }
/** * @depends testGetWorkflowsMissingRequiredActionAttributesWhereActionIsOk */ public function testGetWorkflowsMissingRequiredActionAttributesWhereActionIsMissingRequiredAttribute() { //Create workflow $workflow = new Workflow(); $workflow->setDescription('aDescription'); $workflow->setIsActive(true); $workflow->setOrder(5); $workflow->setModuleClassName('WorkflowsTest2Module'); $workflow->setName('myFirstWorkflow'); $workflow->setTriggerOn(Workflow::TRIGGER_ON_NEW_AND_EXISTING); $workflow->setType(Workflow::TYPE_ON_SAVE); $workflow->setTriggersStructure('1'); //Add action that is missing required owner $action = new ActionForWorkflowForm('WorkflowModelTestItem2', Workflow::TYPE_ON_SAVE); $action->type = ActionForWorkflowForm::TYPE_CREATE; $action->relation = 'hasMany2'; $attributes = array('string' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'jason'), 'lastName' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'jason')); $action->setAttributes(array(ActionForWorkflowForm::ACTION_ATTRIBUTES => $attributes)); $workflow->addAction($action); //Create the saved Workflow $savedWorkflow = new SavedWorkflow(); SavedWorkflowToWorkflowAdapter::resolveWorkflowToSavedWorkflow($workflow, $savedWorkflow); $saved = $savedWorkflow->save(); $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow); $this->assertTrue($saved); $this->assertEquals(array($workflow), WorkflowActionsUtil::getWorkflowsMissingRequiredActionAttributes()); }