Automate Email attachment specific to a record
Maximo can send email communication with attachments, in following ways.
- By adding a default attachment(s) to a communication template and wherever this template is used, it will send the associated files as well. But this is set to a default document(s) and cannot be specific to record.
- Other option is using 'Create Communication' option from an application, where user can manually add attachments and send.
This process of sending document specific to a record (like Workorder, PO etc.) OR a Person (like an approver in workflow) can be automated using script.
Create an Action Launch Point, add Script, choose script launguage as 'python/jython' and write code as explained below .
- Import the MXServer and SqlFormat APIs; Use MXServer to get the communication template MboSet
-
Get the CommTemplate Mbo from MboSet;
Use CommTemplate.convertSendTo() method to get the email IDs of sendTo, cc,bcc etc; Usually, these details are retrieved from a Role associated to Communication template or Workflow. - Use SqlFormat.resolvecontent() method to replace the values of binding variables in subject, message.
-
We can use custom relationship to get a specific type of documents. (Example: DOCTYPE='TYPE-A' and
ownerid=:workorderid and ownertable='WORKORDER').
Then, use the default relationship from DOCLINKS to DOCINFO to retrieve document details.(URLNAME, URLTYPE)
Add the document path values (DOCINFO.URLNAME) to a string array. [] -
Finally, invoke the MXServer.SendEmail()
method with sender, subject, message and attachment details.
MXServer.sendEMail(sendTo, cc, bcc, sendFrom, subject,
message, replyTo, fileNames, urlNames)
Source Code: