Adicionar um campo ao check-out do catálogo de serviços
Versão de lançamento: Yokohama
Atualizado 30 de jan. de 2025
2 min. de leitura
Este é um exemplo de adição de um campo Empresa ao check-out abaixo do campo Solicitado para usando macros de layout que não sejam de carrinho, ou seja, glide.sc.use_cart_layouts é falso.
Antes de Iniciar
Função necessária: administrador
Por Que e Quando Desempenhar Esta Tarefa
Figura 1. Solicitado para o campo
Este campo passará o valor desse campo para o campo Empresa da solicitação do Catálogo de serviços.
Este exemplo faz as seguintes suposições.
Este exemplo se refere a uma instância que usa a finalização de compra em duas etapas. Se a finalização de compra em duas etapas não estiver habilitada, habilite-a antes de começar.
Este exemplo preenche o campo Empresa no formulário de Solicitação do Catálogo de serviços. Se o campo não for exibido no formulário, configure o formulário antes de começar.
Procedimento
Vá para IU do sistema > Macros de IU e selecione servicecatalog_cart_template.
Encontre onde há variáveis ocultas declaradas e adicione a seguinte linha:
A macro "ui_reference" define um campo de referência. Existem várias macros para diferentes tipos de campo. Você pode ver exemplos desses tipos de campo em IU do sistema -> Macros de IU. Essas macros começam com 'ui_'. Para este exemplo, o campo de referência criado é chamado core_company.
Agora navegue até IU do sistema > Páginas de IU e selecione a Página de IU servicecatalog_checkout_one.
Adicione o script a seguir ao campo Script do cliente.
function setCartValue() {
var newField = gel('core_company');
var myCart = gel('cart_id');
var cart_item = new GlideRecord('sc_cart_item');
cart_item.addQuery('cart', myCart.value);
cart_item.query();
if(cart_item.next()) {
cart_item.hints = "<hints><entry key='sysparm_processing_hint' value='setfield:request.company=" + newField.value + "'/></hints>";
cart_item.update();
}
}
Para este exemplo, o campo de referência foi chamado core_companye o campo que está sendo preenchido na solicitação é company. Se campos diferentes forem usados:
Encontre esta linha: var company = gel('core_company'); e substitua core_company pelo nome do campo no check-out.
Na linha que começa com "cart_item.hints", substitua "request.company" pelo nome do campo a ser preenchido no tíquete de solicitação, em que "request" é a solicitação que está sendo gerada e "company" é o nome do campo.
Resultado
Quando um item é solicitado, o campo da empresa aparece no formulário Catálogo: