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;
 }