Проверка полей после того, как пользователь нажимает кнопку формы в Service Now

Я работаю над формой заявки на изменение с двумя кнопками формы: "Отправить" и "Запросить одобрение". Отправить - это способ вставить запись в таблицу. Однако билет будет двигаться только вперед, когда пользователь нажмет "Запрос на одобрение".

Я хочу наложить определенные ограничения ТОЛЬКО, когда пользователь нажимает кнопку "Подтверждение запроса". Под ограничениями я подразумеваю побуждение пользователя заполнить запланированную дату начала, дату окончания. Однако такое сообщение не должно появляться, когда пользователь нажимает кнопку "Отправить".

Один из способов сделать это - создать условия для наглядности через действие пользовательского интерфейса. Но я хочу, чтобы кнопка была видна всегда. Пожалуйста помоги

1 ответ

Решение

Вы можете настроить действие UI "Запросить утверждение" для запуска на клиенте (флажок "Клиент"), установите для поля Onclick значение requestApproval(); а затем используйте следующий код в качестве руководства для вашего тела скрипта. Это позволяет вашему пользовательскому интерфейсу работать в два этапа. На клиенте, где вы можете написать свою логику проверки, и на сервере (запускаемом gsftSubmit), когда ваша логика проверки прошла успешно.

По умолчанию в системе есть несколько действий пользовательского интерфейса, использующих этот тип кода. Выполните поиск действий пользовательского интерфейса, где "Script содержит gsftSubmit", чтобы увидеть другие примеры.

function requestApproval(){
   // Do your client side validation here 

   if (g_form.getValue('comments') == '') {
      return false;  //Abort submission if your validation fails
   }

   //Call the UI Action and skip the 'onclick' function
   gsftSubmit(null, g_form.getFormElement(), 'request_approval'); 
   // MUST call the 'Action name' set in this UI Action. 
   // Make sure this name doesn't conflict with an existing 
   // UI Action if this is a custom action. 
}

//Code that runs without 'onclick'
//Ensure call to server-side function with no browser errors
if (typeof window == 'undefined')
   serverResolve();

function serverResolve(){
   change_request.state = 1; 
   // other server side actions you wish to take 
}
Другие вопросы по тегам