
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 09-30-2021 09:32 AM
Scratchpad é tipo um biscoito OREO né... Oi?!
|
Sabe a deliciosa parte branca que une as duas partes de chocolate do biscoito OREO? Sim, com certeza você já experimentou.
E você sabe que relação isso poderia ter com programação Low-Code?
Nesse artigo vamos investigar as semelhanças entre esse delicioso recheio branco e o funcionamento do objeto Scratchpad.
|
|
|
Primeiro suponha que as duas partes de chocolate do biscoito são: o lado do cliente (Front-End) e o lado do Servidor (Back-End).
A parte da frente do chocolate é o Front-End, ou seja, são as coisas nas quais o usuário final interage para usar o Aplicativo. Aqui estamos falando, por exemplo, de formulários e listas.
A parte de trás do chocolate é o Back-End. É onde podemos estabelecer conexão com o banco de dados e recuperar registros de uma tabela.
O Scratchpad – a deliciosa parte branca que une os dois chocolates – fica alí no meio e faz com que o Front-End não tenha contato direto com o Back-End. Em outras palavras, um formulário não pode acessar diretamente os registros de uma tabela. É aí que o Scratchpad se mostra um recurso poderoso.
Cenário de Caso de Uso:
O requisito é que ao abrir um Formulário, seja gravado o cargo do usuário logado em um campo chamado Cargo que é do tipo String.
Passo 1) Vamos criar uma Business Rule que recupera essa informação da tabela de Usuários e “pendura” essa informação no objeto Scratchpad.
Passo 2) Vamos criar um Client Script para recuperar a informação no carregamento do formulário (evento onLoad) e armazenar no nosso campo Cargo. Vamos lá?!
Passo 1) Codificando a Business Rule.
/*
When: Display
Query: Yes
*/
(function executeRule(current, previous /*null when async*/) {
//Get User Title and make it available on Client side
var currentUserId = gs.getUserID();
var grUser = new GlideRecord('sys_user');
grUser.addQuery('sys_id',currentUserId);
grUser.query();
if (grUser.next()) {
g_scratchpad.meuCargo = grUser.title;
}
})(current, previous);
Passo 2) Codificando o Client Script para recuperar a informação assim que o formulário for aberto.
function onLoad() {
g_form.setValue('cargo', g_scratchpad.meuCargo);
}
Outro de Caso de Uso:
Outro dia um dev perguntou se ele podia tornar um campo do formulário somente-leitura caso o usuário logado não fizesse parte de um grupo específico. Adivinha de quem eu lembrei? Sim! Do objeto Scratchpad!
Primeiramente basta criar a Business Rule (Display) para armazenar uma variável do tipo verdadeiro/falso que vai conter se o usuário pertence a um grupo:
g_scratchpad.grp = gs.getUser().isMemberOf('Nome do Grupo');
Depois a gente consegue fazer esse teste em um Client Script:
function onLoad() {
if (!g_scratchpad.grp){
g_form.setReadOnly('nome_do_campo', true);
}
}
________________________
Carlos Camacho
https://www.linkedin.com/in/camachojunior
- 349 Views

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Legal,