Sistema de Gestión de Negocios "Hexa"

Base de datos de conocimiento.

Doc. Ref. 26107
Título: Web Service Hexa
Autor: Philippe Calvó
Última actualización: 18/01/2023


Web Service Hexa

El Web Service de Hexa permite acceder vía protocolo https a todas las funcionalidades de los objetos de Hexa y su capacidad de scripting. Está diseñado de la forma lo más simple y con una seguridad coherente con el proceso.

Condideraciones básicas

  1. Es necesario tener instalada la versión aspHexa 9 en el servidor web
  2. Las llamadas deben ser realizadas por un usuario definido que pertenezca al grupo "wshexapi" o "administrador". Su clave de acceso debe estar especificada en el registro de usuario
  3. Las llamadas siempre son por método "POST" y deben tener tres parámetros: "usuario", "clave" y "script". El contenido del parámetro "script" debe contener un codigo compatible con "Hexa-Script" cuyo valor devuelto será el resultado de la llamada
Ejemplo de alta de un registro de consulta desde un website PHP

El siguiente ejemplo muestra una llamada desde un website con código PHP que rercibe datos de un formulario de solicitud de información y lo da de alta en una tarea de Hexa


// recoger los datos recibidos por POST y formatearlos para pder ser introducidos en la base de datos
$Nombre = substr ($_POST["Name"],0,40); $Nombre= "'" . str_replace("'", "'"."'", $Nombre) . "'";
$Telefono = substr ($_POST["Phone"],0,15); $Telefono= "'" . str_replace("'", "'"."'", $Telefono) . "'";
$Email = substr($_POST["Email"],0,60); $Email= "'" . str_replace("'", "'"."'", $Email) . "'";
$Observaciones = $_POST["Message"]; $Observaciones= "'" . str_replace("'", "'"."'", $Observaciones) . "'";

// lista de campos y sus valores
$campos="Codigo,Apellido,Telefono,Email,Comentarios";
$valores= "," . $Nombre . "," . $Telefono . "," . $Email . "," . $Observaciones;

// url del web service
$url="http://asphexa.equimcorporation:8080/hexapi.aspx";

// script cuya ejecución vamos a solicitar
$script = 'Function main(Criterio, Orden, Opciones)' . "\r\n";
$script.= 'Codigo = ObD.Siguiente ("Interesado","Codigo","",True)' . "\r\n";
$script.= 'main = BD.Introduce ("Interesado","' . $campos . '", CStr(Codigo) & "' . $valores . '")' . "\r\n";
$script.= 'End Function';

// datos POST a enviar al ws
$field_post = ["usuario" => "usuariows", "clave" => "2wy3sq08", "script" => $script];

// lamada al web service mediante CURL
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept-Language: en'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $field_post);
curl_setopt($curl, CURLOPT_COOKIESESSION, false );
curl_setopt($curl, CURLOPT_VERBOSE, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Cookie: test=cookie"));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$content = curl_exec($curl);
curl_close($curl);

// mostrar el resultado del proceso y ...
sleep(1);
echo $content;
// .. modificar esta parte para seguir con las acciones correspondientes

Comentarios:

  • El script PHP recibe los parámetros POST de un formulario que un usuario ha rellenado
  • Con estos datos se creará un registro de una tabla llamada "Interesado" que se encuentra en la base de datos auxiliar
  • Se entiende que hexa dispone de una proceso de evento que genera una tarea en un proyecto comecial, asignado a una persona para atender lo requerido por el usuario.
  • El código PHP genera un script con la sentencia adecuada para generar el registro correspondiente
  • Utilizando CURL, se llama al webservice con los credenciales correspondientes y se envia al navegador el resultado del proceso. Con esta información, el script PHP debería generar una página de "gracias" informando al usuario del resultado del proceso.

Volver a la búsqueda anterior