Un foro de discusión para nuestra comunidad de hispano hablante

Moderator: amosbatto

User avatar
By milagrosmaria16
#814248
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!!
User avatar
By amosbatto
#814250
¿Quieres cambiar el estado del caso a TO_DO o COMPLETED o solo quieres reportar el estado actual del caso despues de routing?
User avatar
By amosbatto
#814279
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.
User avatar
By milagrosmaria16
#814281
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!
User avatar
By amosbatto
#814285
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.
User avatar
By milagrosmaria16
#814293
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!!!!
User avatar
By amosbatto
#814301
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.
User avatar
By milagrosmaria16
#814446
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.
User avatar
By amosbatto
#814447
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.
Calculate hours of day/week

Thank you Amos, The four other variables are for[…]

timing control

I suggest that you file a bug report about it at[…]

Hello Amos, Would this solution work also for PM […]

Hi amosbatto! When I send a request from ajax to[…]