Я хочу проверить предыдущий статус в скрипте RT? - PullRequest
0 голосов
/ 04 октября 2018

my $TransactionPreviousStatus = $self->TicketObj->Status->OldValue:

Я думаю, что это должно дать старый статус, но я получаю текущий статус

Например:

Старыйstatus: open

Текущий статус: reply-pls

Поэтому, когда кто-то ответит на тикет, будет выполнен специальный сценарий, который должен изменить статус на старое значение (т. е. открыть) но опять же он возвращается к ответить-пожалуйста.

1 Ответ

0 голосов
/ 12 февраля 2019

Вы не можете вызвать OldValue для TicketObj, это метод транзакции.Поэтому, если я правильно понимаю ваши потребности, вам нужно написать сценарий, который запускает StatusChange && Correspondence, который устанавливает статус обратно.Это немного сложно.

AFAIK Вам необходимо создать пакетный скрипт, который запускается при переписке, а затем найти последнюю транзакцию StatusChange и вернуть ее обратно.Примерно так может работать:

Description: On correspond don't change the status
Condition: On Correspond
Action: User defined
Template: Blank
Stage: Batch
Custom action commit code:

my $transactions = $self->TicketObj->Transactions;
my $last_status;
while (my $transaction = $transactions->Next) {
  if ($transaction->Type eq "Status" ) {
    $last_status = $transaction;
  }
}
$self->TicketObj->SetStatus($last_status->OldValue);
...