ServiceNow: доступ к схеме параметров виджета в mdDialog

Я клонировал форму виджета OOTB, назвал ее widget-form-md и создал дополнительную схему параметров для hideRelatedLists:

введите описание изображения здесь

У меня есть отдельный виджет, в который встроена моя клонированная форма widget-form-md, и я надеюсь отобразить его через модальное окно Material Design. Мой клиентский скрипт для модального окна выглядит так:

function x ($scope, $location, spUtil, amb, $mdDialog, $http, $window, $rootScope, $timeout){
var c = this;

c.newRequest = function() {
$mdDialog.show({
contentElement: '#hr_request',
parent: angular.element(document.body),
clickOutsideToClose:true
});
spUtil.get("widget-form-md", {
request_name: 'hr_request',
view: 'hr_request',
table: 'x_dnf_federal_hr_e_federal_hr_cases'
}).then(function(response) {
c.hr_request = response;
});
};
}

Каков правильный синтаксис для передачи моей схемы параметров в spUtil? я пробовал

spUtil.get("widget-form-md", {
request_name: 'hr_request',
hideRelatedLists: true
view: 'hr_request',
table: 'x_dnf_federal_hr_e_federal_hr_cases'
})

и

spUtil.get("widget-form-md", {
request_name: 'hr_request',
options: {hideRelatedLists:true},
view: 'hr_request',
table: 'x_dnf_federal_hr_e_federal_hr_cases'
})

Ни один из них не работал, и я не могу найти там никакой документации о том, как это сделать. Какие-либо предложения? Спасибо!


person Dave    schedule 27.02.2018    source источник


Ответы (1)


Во-первых: для настройки виджета через таблицу используется схема параметров: https://dxsherpa.com/blogs/widget-options-schema-in-service-portal/

Решение отсутствующих параметров, которые не отображаются в параметрах вызываемых виджетов, было здесь: https://community.servicenow.com/community?id=community_question&sys_id=ea83c365dbd8dbc01dcaf3231f9619d2

Когда виджет вызывается с помощью spUtil (клиент), доступ к переданным параметрам осуществляется с помощью «ввода».

Когда виджет вызывается с помощью $ sp (сервер), доступ к переданным параметрам осуществляется с помощью "параметров".

После вызова виджета с помощью spUtil у нас есть данные на сервере во входном объекте. Поэтому на сервере вызываемого виджета:

data.requestName = input.request_name;
data.hideRelatedLists = input.hideRelatedLists;
// or the short version, if widget also gets parameters from URL and options:
data.requestName = $sp.getParameter('requestName ') || options.requestName || input.requestName;

Жаль, что это не описано в официальной документации для него: https://developer.servicenow.com/app.do#!/api_doc?v=london&id=spUtilAPI.

person Gordon Mohrin    schedule 16.04.2019