public function pre_save() { parent::pre_save(); require_once 'modules/Workflows/includes/WorkflowBaseAction.php'; if (isset($this->bean->accion) && isset($this->record)) { $accion = WorkflowBaseAction::obtener_accion_por_nombre($this->bean->accion); try { $accion->verificar_parametros($this->bean->parametros); } catch (Exception $e) { sugar_set_message("No se encontraron los parametros: " . implode(', ', $accion->parametros_requeridos()) . "; para la acción: {$accion->nombre}. No se Guardaron los cambios", "error"); $args = array('module' => $this->module, 'action' => "EditView", 'record' => $this->record); $this->set_redirect(create_url($args)); $this->redirect(); die; } } }
public function action_Parametros() { $action_name = $_REQUEST['function']; $ret_array = array(); try { $entity = WorkflowBaseAction::obtener_accion_por_nombre($action_name); $parametros = $entity->parametros_requeridos(); $ret_array = array(); foreach ($parametros as $name) { $ret_array[$name] = ""; } } catch (Exception $e) { } ob_clean(); header('Content-Type: text/plain'); echo json_encode($ret_array); die; }
function accion_nodo_dom($focus, $field, $value, $view) { require_once 'modules/Workflows/includes/WorkflowBaseAction.php'; if ($view != 'EditView' && $view != 'QuickCreate') { if (!empty($value) && $value != 'Pausar') { $objeto = WorkflowBaseAction::obtener_accion_por_nombre($value); $accion = $objeto->nombre; } else { $accion = $value; } return array($value => $accion); } else { $return_dom = array('' => '<Seleccionar>'); $type = get_class($focus) == 'ActionNode' ? 'action' : 'choice'; $return_dom += WorkflowBaseAction::obtener_lista_acciones($type); if ($type == 'action') { $return_dom['Pausar'] = 'Pausar'; } } return $return_dom; }
function ejecutar($focus) { $accion = WorkflowBaseAction::obtener_accion_por_nombre($this->accion); $accion->ejecutar($focus, $this->parametros); return $this->siguiente; }
function ejecutar(&$focus) { $accion = WorkflowBaseAction::obtener_accion_por_nombre($this->accion); $resultado = $accion->ejecutar($focus, $this->parametros); return $resultado ? $this->siguiente_caso_true : $this->siguiente_caso_false; }