NetSuite - удаление записей о времени

Кто-нибудь придумал, как удалить запись записи времени из записи расписания без фактического удаления расписания? Мой пример использования заключается в том, что я синхронизирую рабочее время от JIRA до NetSuite уже более года. Когда возникает ошибка или им нужно обновить свое время, моя интеграция просто удаляет ее и создает заново все. Никогда не проблема, так как табели рабочего времени еще не представлены или не утверждены, на данный момент.

Теперь мы установили этот пакет SuitePeople (к сожалению, работающие над этим менеджеры проектов ничего не тестировали...:/), который полностью изменил отслеживание времени. Помимо настраиваемых полей, которые больше не отображаются в столбцах (совершенно другая проблема), теперь они генерируют общие расписания для людей, чтобы показать выходной. Эти табели не могут быть удалены, а их записи не могут быть отредактированы (предположительно, так как они были созданы системой - по крайней мере, так говорит NetSuite).

Моя последняя надежда состоит в добавлении / редактировании / удалении записей ввода времени, когда добавлены дополнительные сгенерированные системой табели времени. Но всякий раз, когда я пытаюсь удалить запись времени, я получаю сообщение об ошибке, что timeentry не является допустимым типом записи (так как это подзапись).

Какие-нибудь мысли? Чувство полной растерянности здесь...

2 ответа

Решение

Оказалось, что мне нужно было выполнить это через 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;
  }
}

Это полезно знать, так как у меня есть прямая интеграция с рабочими журналами JIRA, но нет SuitePeople.

Можете ли вы отменить / отклонить расписание?

Другие вопросы по тегам