Page 1 of 1

IMPLEMENTAR SERVICIO REST

Posted: Fri Apr 27, 2018 4:44 pm
by milagrosmaria16
Chicos buenas tardes, tengo una consulta:

Quisiera saber si a través de un trigger (after routing) se puede enviar los estados TO_DO y COMPLETED (de cada ticket) de ser el caso a un servicio web externo que trabaja con API REST.

Si es posible, favor de explicarme como se podría realizar.

Espero me puedan ayudar.

Muchísimas gracias!!

Re: IMPLEMENTAR SERVICIO REST

Posted: Fri Apr 27, 2018 6:26 pm
by amosbatto
¿Quieres cambiar el estado del caso a TO_DO o COMPLETED o solo quieres reportar el estado actual del caso despues de routing?

Re: IMPLEMENTAR SERVICIO REST

Posted: Wed May 02, 2018 10:48 am
by milagrosmaria16
Buen día,

Si, quiero reportar el estado actual del caso después del after routing.

Quedo a la espera de tus comentarios.

Muchas gracias!

Re: IMPLEMENTAR SERVICIO REST

Posted: Wed May 02, 2018 12:56 pm
by amosbatto
Puedes usar uno de estos endpoints para obtener esa información:
    [*]Route Case: [b]PUT /light/cases/{app_uid}/route-case[/b] [*]Get user data of routing rules: [b]GET /light/task/{tas_uid}/case/{app_uid}/{del_index}/assignment[/b] [*]Get case history: [b]GET /light/history/{app_uid}[/b]
Ver:
viewtopic.php?f=47&t=730394

Nota: El equipo de desarrollo ha quitado los endpoints de Light de la documentación oficial, pero siguen funcionando.

Re: IMPLEMENTAR SERVICIO REST

Posted: Wed May 02, 2018 1:40 pm
by milagrosmaria16
Buen Día amosbatto,

Gracias por tus comentarios pero la información que necesito saber es si existe la posibilidad de que a través de un trigger, nos podamos comunicar con un servicio rest externo que no pertenezca al processmaker.

Quedo a la espera de tus comentarios.

Muchas gracias!

Re: IMPLEMENTAR SERVICIO REST

Posted: Wed May 02, 2018 6:49 pm
by amosbatto
Puedes usar [url:http://wiki.processmaker.com/3.0/Intern ... Case.28.29]Cases::LoadCase() [/url]para conseguir esta información en un trigger.

El truco es conseguir el número de indice así:
Code: Select all
$caseId = @@APPLICATION; //set the ID of the case
$taskId = '1234567890abcdef1234567890abcde'; //set to the ID of the task where the case is currently located
$sql = "SELECT * FROM APP_CACHE_VIEW WHERE APP_UID='$caseId' AND TAS_UID='$taskId' 
   ORDER BY DEL_INDEX DESC";
$result = executeQuery($sql)
if (empty($result)) {
  throw new Exception("Unable to find task '$taskId' in case '$caseId'");
}
$c = new Cases();
$aCase = $c->LoadCase($caseId, $result[1]['DEL_INDEX']);
@@caseStatus = $aCase['APP_STATUS']; 
Si necesitas el estatus del caso actual después de enrutarlo, este trigger debe ser ejecutado after routing.

Re: IMPLEMENTAR SERVICIO REST

Posted: Thu May 03, 2018 11:54 am
by milagrosmaria16
Buen Día amosbatto,

Gracias por tu apoyo, ya entendí como obtener la información del ticket el problema está en como enviar el estado a otro servicio web (REST), que código podría utilizar en el trigger (After routing).

Muchas gracias, saludos!!!!

Re: IMPLEMENTAR SERVICIO REST

Posted: Thu May 03, 2018 6:44 pm
by amosbatto
Si la pregunta es como ejecutar un endpoint de REST en un trigger, este código funciona para cualquier servicio de REST:
http://wiki.processmaker.com/3.0/Callin ... points#PHP

Asi puedes llamar el servicio de REST de la otra aplicación y enviar la información del caso.

Re: IMPLEMENTAR SERVICIO REST

Posted: Fri May 04, 2018 10:45 am
by milagrosmaria16
Muchas gracias!!!!

Re: IMPLEMENTAR SERVICIO REST

Posted: Tue May 15, 2018 3:52 pm
by milagrosmaria16
Buenas tardes,

Tengo una consulta:

Acabo de crear un servidor de pruebas Rest, almaceno el resultado en una variable para que este se muestre en un campo del formulario del ProcessMaker pero me muestra lo siguiente:

Image

<!DOCTYPE html><!--To change this license header, choose License Headers in Project Properties.To change this template file, choose Tools | Templatesand open the template in the editor.--><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> "CLAUDIO_GET" </body></html>

En el trigger after routing puse lo siguiente:
Code: Select all
$service_url = "http://172.19.44.179/Web_Centrix/index.php";
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$curl_response = curl_exec($curl);
  
@@txtTicketWC = (curl_exec($curl));
curl_close($curl);
Espero me puedan apoyar!!!

Muchas gracias.

Re: IMPLEMENTAR SERVICIO REST

Posted: Tue May 15, 2018 6:19 pm
by amosbatto
No estas conectando a un endpoint de REST. Estas descargando una pagina web.
¿Tienes documentación del servicio REST que estas tratando de usar? La documentación debe darte una lista de endpoints para usar.