Load Email messages attached to transaction Suites

2019-09-12 07:25发布

问题:

I'm trying to load up all of the emails that have been sent from a transaction via SuiteScript 2.0.

When I run

record.getSublists()

it returns the following:

["item","activeworkflows","workflowhistory","custom8","messages","contacts","activities","usernotes","systemnotes","mediaitem","links","cases","partners","events","calls","tasks"]

However, when I then try to run the following:

record.getSublist('messages');

I receive an error.

I need to be able to check the date of the last email sent so I can determine whether or not to send a follow-up email.

回答1:

The approach I typically take is to use the Search API to get this type of information:

require(['N/search'], function(search) {
  var result = search.create({
    type: 'transaction',
    filters: [
      ['internalid', search.Operator.ANYOF, id], 'AND',
      ['mainline', search.Operator.IS, 'T'], 'AND',
      ['messages.messagetype', search.Operator.ANYOF, 'EMAIL'], 'AND',
      ['messages.isincoming', search.Operator.IS, 'F']
    ],
    columns: [
      search.createColumn({name: 'internalid', summary: search.Summary.GROUP}),
      search.createColumn({name: 'messagedate', join: 'messages', summary: search.Summary.MAX}),
    ],
  }).run().getRange({ start: 0, end: 1 });

  var dateOfLastEmail = result[0].getValue({ name: 'messagedate', join: 'messages', summary: search.Summary.MAX });
});