ProcessMaker中的计时器任务中的电子邮件附件问题

时间:2018-03-06 16:27:13

标签: processmaker

我们一直致力于使用ProcessMaker实现一些业务流程。我们一直在观察有关通过ProcessMaker发送电子邮件的附件的问题。

以下是详细问题。

  1. 我们有一个计时器任务,它会向业务用户发送一些电子邮件,其中包含由PM生成的一些附件。但我们一直在观察电子邮件有时会被发送而没有附件,但有时电子邮件包含附件。

  2. 为了解决问题,我们在发送电子邮件之前检查了每个步骤,但我们发现附件文件在发送电子邮件之前已存在。

  3. 在任何流程中,带附件的电子邮件发送都非常有效。但对于计时器任务,有时电子邮件会在没有附件的情况下发送,有时会发送电子邮件而不附加。

  4. 以下是在触发计时器任务时执行的代码块。

    @%emailCounter++;
    
    try{
    
        $to = 'xxxx@gmail.com';
    
        $caseId = @@APPLICATION;
    
        $aAttachments = [];
    
        @@debugStr = "";
    
        @@fileQuery = "select `APP_DOC_UID`, `DOC_VERSION` FROM `APP_DOCUMENT` where `APP_UID`='$caseId' order by `DOC_VERSION` desc limit 1";
        $aFiles = executeQuery(@@fileQuery);
    
        @@debugStr .= ";<br/> File counts = ".count($aFiles);
    
        foreach ($aFiles as $aFile)
        {
            @@debugStr .= ";<br/> File = ".$aFile['APP_DOC_UID'];
    
            $oDoc = new AppDocument();
            $aDocInfo = $oDoc->Load($aFile['APP_DOC_UID'], $aFile['DOC_VERSION']);
    
            @@debugStr .= ";<br/> File Info = ".json_encode($aDocInfo);
    
            $ext = '.pdf';  //set to '.doc' if sending a DOC file
            $g = new G();
            $pathToFile = PATH_DOCUMENT . $g->getPathFromUID(@@APPLICATION) . PATH_SEP . 'outdocs' .  PATH_SEP . $aFile['APP_DOC_UID'] . '_' . $aDocInfo['DOC_VERSION'] . $ext;
            @@debugStr .= ";<br/> File path = ".$pathToFile;
            $filename = @@selfNamePDF;
    
            $aAttachments = PMFAddAttachmentToArray($aAttachments, $filename, $pathToFile);
    
        }
    
        @@subjectLine = '[Test - attachment] '.@@title;
    
        PMFSendMessage(@@APPLICATION, 'yyyy@zzz.com', $to , 'pppp@gmail.com','' , @@subjectLine, 'TestEmail.html', array(), $aAttachments);
    
    } catch (Exception $e) {
        PMFSendMessage(@@APPLICATION, 'yyyy@zzz.com', $to , 'mmmm@gmail.com','' , 'Exception Occured - '.$e->getMessage(), 'TestEmail.html', array(), $aAttachments);
    }
    
  5. 寻找我们可以考虑摆脱这个问题的方向。

0 个答案:

没有答案