'?>
CreaParametro("@tipoaccion",0,1);
$cmd->CreaParametro("@idtipoaccion",0,1);
$cmd->CreaParametro("@descriaccion","",0);
$cmd->CreaParametro("@idordenador",0,1);
$cmd->CreaParametro("@ip","",0);
$cmd->CreaParametro("@sesion",0,1);
$cmd->CreaParametro("@parametros","",0);
$cmd->CreaParametro("@fechahorareg","",0);
$cmd->CreaParametro("@estado",0,1);
$cmd->CreaParametro("@resultado",0,1);
$cmd->CreaParametro("@idcentro",0,1);
$cmd->CreaParametro("@idprocedimiento",0,1);
$cmd->CreaParametro("@descripcion","",0);
$cmd->CreaParametro("@idcomando",0,1);
$cmd->CreaParametro("@idtarea",0,1);
$cmd->CreaParametro("@ambito",0,1);
$cmd->CreaParametro("@idambito",0,1);
$cmd->CreaParametro("@restrambito","",0);
$cmd->CreaParametro("@ordprocedimiento",0,1);
$cmd->CreaParametro("@ordtarea",0,1);
if($ambito==0){ // Ambito restringido a un subconjuto de ordenadores con formato (idordenador1,idordenador2,etc)
$cmd->ParamSetValor("@restrambito",$idambito);
$idambito=0;
}
$resul=true;
/*--------------------------------------------------------------------------------------------------------------------
Switch de ejecución inmediata y de seguimiento
--------------------------------------------------------------------------------------------------------------------*/
if($sw_ejya=='on' || $sw_ejprg=="on" ){
$parametros=$funcion.$atributos;
$aplicacion=chr(13)."ido=".$cadenaid.chr(13)."mac=".$cadenamac.chr(13)."iph=".$cadenaip.chr(13);
if($sw_seguimiento==1 || $sw_ejprg=="on"){ // Switch de ejecución con seguimiento o comando programado
$sesion=time();
$cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO);
$cmd->ParamSetValor("@idtipoaccion",$idcomando);
$cmd->ParamSetValor("@descriaccion",$descricomando);
$cmd->ParamSetValor("@sesion",$sesion);
$cmd->ParamSetValor("@idcomando",$idcomando);
$cmd->ParamSetValor("@parametros",$parametros);
$cmd->ParamSetValor("@fechahorareg",date("y/m/d H:i:s"));
if($sw_ejprg=="on") // Switch de ejecución con programación (se para el comando tarea para lanzarlo posteriormente)
$cmd->ParamSetValor("@estado",$ACCION_DETENIDA);
else
$cmd->ParamSetValor("@estado",$ACCION_INICIADA);
$cmd->ParamSetValor("@resultado",$ACCION_SINRESULTADO);
$cmd->ParamSetValor("@ambito",$ambito);
$cmd->ParamSetValor("@idambito",$idambito);
$cmd->ParamSetValor("@idcentro",$idcentro);
$auxID=explode(",",$cadenaid);
$auxIP=explode(";",$cadenaip);
for ($i=0;$iParamSetValor("@idordenador",$auxID[$i]);
$cmd->ParamSetValor("@ip",$auxIP[$i]);
$cmd->texto="INSERT INTO acciones (idordenador,tipoaccion,idtipoaccion,descriaccion,ip,
sesion,idcomando,parametros,fechahorareg,estado,resultado,ambito,idambito,restrambito,idcentro)
VALUES (@idordenador,@tipoaccion,@idtipoaccion,@descriaccion,@ip,
@sesion,@idcomando,@parametros,@fechahorareg,@estado,@resultado,@ambito,@idambito,@restrambito,@idcentro)";
$resul=$cmd->Ejecutar();
//echo "
".$cmd->texto;
}
$acciones=chr(13)."ids=".$sesion.chr(13); // Para seguimiento
}
if (!$resul){
echo '';
}
else{
if($sw_ejya=='on'){
// Envio al servidor
$shidra=new SockHidra($servidorhidra,$hidraport);
if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
$parametros.=$aplicacion;
$parametros.=$acciones;
//echo $parametros;
$resul=$shidra->envia_comando($parametros);
if($resul)
$trama=$shidra->recibe_respuesta();
if($resul){
$hlonprm=hexdec(substr($trama,$LONCABECERA,$LONHEXPRM));
$parametros=substr($trama,$LONCABECERA+$LONHEXPRM,$hlonprm);
$ValorParametros=extrae_parametros($parametros,chr(13),'=');
$resul=$ValorParametros["res"];
}
$shidra->desconectar();
}
if (!$resul){
echo '';
}
else{
echo ''.chr(13);
}
}
}
}
/*--------------------------------------------------------------------------------------------------------------------
Switch de creación o inclusión en procedimiento
--------------------------------------------------------------------------------------------------------------------*/
if($sw_mkprocedimiento=='on' || $sw_mktarea=='on'){
$resul=false;
if($idprocedimiento==0 || $sw_mktarea=='on'){ // Nuevo procedimiento o Tarea
if($sw_mktarea=='on' && empty($nombreprocedimiento)){ // Si tarea con inclusión de procedimiento...
if(!empty($nombretarea))
$nombreprocedimiento="Proc($nombretarea)"; // .. tarea nueva
else
$nombreprocedimiento="Proc($idtarea)"; // .. inclusión en tarea
}
$cmd->ParamSetValor("@descripcion",$nombreprocedimiento);
$cmd->ParamSetValor("@idcentro",$idcentro);
$cmd->texto="INSERT INTO procedimientos(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
$resul=$cmd->Ejecutar();
if($resul){
if($idprocedimiento==0) // Cambia el identificador sólo si es nuevo procedimiento
$idprocedimiento=$cmd->Autonumerico();
if($sw_mktarea=='on')
$idprocedimientotarea=$cmd->Autonumerico(); // Identificador para la tarea;
}
}
if( $idprocedimiento>0 || $sw_mktarea=='on'){ // inclusión en procedimiento existente
$cmd->ParamSetValor("@idprocedimiento",$idprocedimiento);
$cmd->ParamSetValor("@idcomando",$idcomando);
$cmd->ParamSetValor("@ordprocedimiento",$ordprocedimiento);
$parametros=$funcion.$atributos;
$cmd->ParamSetValor("@parametros",$parametros);
$cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)";
$resul=$cmd->Ejecutar();
if($sw_mktarea=='on' && $idprocedimiento!=$idprocedimientotarea){ // Si es tarea se graba para su procedimiento independiente aunque los parametros sean los mismos
$cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea);
$cmd->texto="INSERT INTO procedimientos_acciones(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,@ordprocedimiento,@idcomando,@parametros)";
$resul=$cmd->Ejecutar();
}
}
if (!$resul){
echo '';
}
else{
if($sw_mkprocedimiento=='on'){
echo ''.chr(13);
}
}
}
/*--------------------------------------------------------------------------------------------------------------------
Switch de creación o inclusión en tarea
--------------------------------------------------------------------------------------------------------------------*/
if($sw_mktarea=='on'){
$resul=false;
if($idtarea==0){ // Nueva tarea
$cmd->ParamSetValor("@descripcion",$nombretarea);
$cmd->ParamSetValor("@idcentro",$idcentro);
$cmd->ParamSetValor("@ambito",$ambito);
$cmd->ParamSetValor("@idambito",$idambito);
$cmd->texto="INSERT INTO tareas(descripcion,idcentro,ambito,idambito,restrambito)
VALUES (@descripcion,@idcentro,@ambito,@idambito,@restrambito)";
$resul=$cmd->Ejecutar();
if($resul)
$idtarea=$cmd->Autonumerico();
}
if($idtarea>0){ // inclusión en tarea existente
$cmd->ParamSetValor("@idtarea",$idtarea);
$cmd->ParamSetValor("@idprocedimiento",$idprocedimientotarea);
$cmd->ParamSetValor("@ordtarea",$ordtarea);
$cmd->texto="INSERT INTO tareas_acciones(idtarea,orden,idprocedimiento)
VALUES (@idtarea,@ordtarea,@idprocedimiento)";
$resul=$cmd->Ejecutar();
//echo $cmd->texto;
}
if (!$resul){
echo ''.chr(13);
}
else{
echo ''.chr(13);
}
}
/* Programación del comando */
if ($resul){
if($sw_ejprg=="on" ){
echo '';
}
}
?>