Questions and discussion about developing processes and programming in PHP, JavaScript, web services & REST API.

Moderator: amosbatto

Forum rules: Please search to see if a question has already asked before creating a new topic. Please don't post the same question in multiple forums.
By leydyzapata03
#813654
Buenas tardes, tengo un proceso y el cliente me solicita un informe con lo siguiente:

Fecha
hora
caso
nombre formulario
correos enviados
destinatarios
numero de veces que el correo fue enviado


Quisiera saber si hay una tabla o tablas que me permitan sacar dicha información. Sé que por medio de la opción logs de email puedo ver cierta información pero no algunas como nombre del formulario.

Muchas gracias, quedo atenta.
By amosbatto
#813674
Puedes encontrar esta información en la tabla APP_MESSAGES en la base de datos. Puedes usar este query de SQL en phpMyAdmin:
Code: Select all
SELECT AM.*, A.APP_NUMBER FROM APP_MESSAGE AS AM, APPLICATION AS A 
WHERE AM.APP_UID=A.APP_UID GROUP BY AM.APP_UID 
ORDER BY A.APP_NUMBER, AM.APP_MSG_DATE;
By leydyzapata03
#813698
Gracias! Una consulta más, ¿en esta tabla se registran los mensajes que han sido reenviados desde la parte de historial de mensajes referentes a un caso?


Nos gustaría saber cuantos mensajes se reenviaron, te adjunto la imagen.


Muchas gracias, quedo atenta.
By leydyzapata03
#813699
En este ambiente la opción se encuentra inhabilitada pero para Producción quisiéramos saber la cantidad de casos que fueron reenviados desde esta opción.
Attachments
HistorialMensaje.PNG
HistorialMensaje.PNG (49.93 KiB) Viewed 366 times
By amosbatto
#813700
No
leydyzapata03 wrote:En este ambiente la opción se encuentra inhabilitada pero para Producción quisiéramos saber la cantidad de casos que fueron reenviados desde esta opción.
No son "casos". Son emails en esta lista del caso abierto. Si el email fue enviado por el servidor de email, su status es "sent" (no hay garantia que fue recibido). Si su status es "error" o "pending", ProcessMaker va a intentar enviar el email cada vez que workflow/engine/bin/cron.php es ejecutado.

Puedes crear un query para contar el número de emails por caso o el numero de emails por su status. No estoy seguro exactamente que quieres contar.
By leydyzapata03
#813706
En la opción que tiene el candado, si se tiene el permiso se puede reenviar el mensaje seleccionado, quisiéramos saber cuantas veces se reenvía dicho mensaje.


No sé si me entiendas.
By leydyzapata03
#813709
Adicional, tengo un apregunta. Quisieramos saber quien fue quien envió el correo, es de cir el USR_UID que ejecuta el trigger que contiene el envío del correo. En la tabla APPLICATION no se repiten registros por número de caso.

¿Cómo podría hacerlo?

Según veo las relaciones de las tablas, la tabla APP_MESSAGE sólo se relaciona con la tabla APPLICATION.

Muchas gracias, quedo atenta.
By amosbatto
#813720
No hay una manera para saber cuantas veces un email fue reenviado ni saber cual usuario ha mandado el mensaje.

Tengo una solución si quieres modificar el código fuente de ProcessMaker:
1. Importa esta PM Table:
(3.91 KiB) Downloaded 10 times
2. Edita el archivo workflow/engine/methods/cases/caseMessageHistory_Ajax.php
Cambia el código en línea 211 de:
Code: Select all
        $oSpool->sendMail();
    } catch (Exception $e) {
a:
Code: Select all
        $oSpool->sendMail();
        
        //ABB's code to insert extra email history:
        G::LoadClass('pmFunctions');
        $emailHistoryTable = 'PMT_RESENT_MESSAGES'; //set to name of PM Table 
        $now = date("Y-m-d H:i:s");
        $senderUserId   = $_SESSION['USER_LOGGED'];
        $senderUsername = $_SESSION['USR_USERNAME'];
        $originAppMsgId = $_REQUEST['APP_MSG_UID'];
        $appMsgId       = $oSpool->spool_id;
        $appId          = $_REQUEST['APP_UID'];
        $sql = "INSERT INTO $emailHistoryTable (APP_MSG_UID, ORIGIN_APP_MSG_UID, APP_UID, 
            TIME_CREATED, SENDER_USER_UID, SENDER_USERNAME) 
            VALUES ('$appMsgId', '$originAppMsgId', '$appId', '$now', '$senderUserId', '$senderUsername')"; 
        executeQuery($sql);

    } catch (Exception $e) {
3. Edita el archivo workflow/engine/classes/class.spool.php
Cambia el código en línea 60 de:
Code: Select all
    private $spool_id;
a:
Code: Select all
    public $spool_id;
Con estos cambios, información será guardada en el PM Table "RESENT_MESSAGES" cada vez que un email es reenviado.

Per https://wiki.processmaker.com/3.2/Suggest_Cont[…]

Is there a way to set the calendar pick list for v[…]

I'm trying to capture the time and date a user tak[…]

how to skip this stages

I re-read the thread and I have moved any Before A[…]