NetSuite - 删除时间输入记录

时间:2018-05-02 12:30:56

标签: netsuite

有没有人想办法从时间表记录中删除时间输入记录,而不实际删除时间表?我的用例是我将JIRA的工作时间同步到NetSuite一年多了。当出现错误或需要更新时间时,我的集成只会删除它并重新创建所有内容。从来没有问题,因为时间表尚未提交或批准,此时。

现在,我们已经安装了这个SuitePeople捆绑包(遗憾的是,正在处理的项目经理没有测试任何东西......:/),这完全改变了时间跟踪。除了自定义字段不再显示在列中(完全不同的问题),它们现在生成通用时间表,供人们显示休假时间。这些时间表无法删除,他们的时间条目甚至无法编辑(大概是因为它们是由系统创建的 - 至少是NetSuite所说的)。

我最后的希望是在添加额外系统生成的时间表时添加/编辑/删除时间输入记录。但是,每当我尝试删除时间条目时,我都会收到错误,即timeentry不是有效的记录类型(因为它是一个子记录)。

有什么想法?感到完全不知所措......

2 个答案:

答案 0 :(得分:1)

我很高兴知道,因为我与JIRA工作日志直接集成,但没有SuitePeople。

您可以取消/拒绝时间表吗?

答案 1 :(得分:0)

原来我必须通过RESTlet运行它,其中SuiteScript能够直接搜索和删除时间条目记录。以下是该脚本的重要部分,以防任何人遇到此问题。

var timeEntrySearch=search.create({
  type:'timeentry',
  columns:[{name:'employee'},{name:'hours'},{name:'internalid'},{name:'memo'}],
  filters:[{name:'date',operator:'within',values:[startDate,endDate]},{name:'employee',operator:'is',values:[userID]}]
}).run().each(function(result){
  log.debug('results',JSON.stringify(result));
  var memoField=result.getValue({name:'memo'});
  if(memoField.indexOf('JIRA Time')!=-1){responseArray.push(result);}
  return true;
});

for(var el in responseArray){
  try{
    log.debug('Deleting',JSON.stringify(responseArray[el].id));
    record.delete({type:'timeentry',id:responseArray[el].id});
  }catch(deleteErr01){
    log.debug('ERROR[deleteErr01]',JSON.stringify(deleteErr01));
    continue;
  }
}