O artigo de hoje vai te mostrar como duplicar uma tabela no ServiceNow já que não existe (eu pelo menos não conheço) nenhum recurso nativo que faça isso.
Esta é a forma mais simples que eu achei até o momento para duplicar qualquer tabela. Altere as variáveis, execute num background script e pronto.
copyTable('incident', 'u_incident_facilities', 'task');
function copyTable(originalTable, newTable, extendTable) {
var grOrig = new GlideRecord(originalTable);
grOrig.initialize();
var td = GlideTableDescriptor.get(originalTable);
var displayName = td.getDisplayName();
var tLabel = grOrig.getLabel();
var creator = new TableDescriptor(newTable, tLabel);
if (extendTable) {
creator.setExtends(extendTable);
}
creator.setFields(grOrig);
creator.copyAttributes(td);
creator.setRoles(td);
creator.create();
creator.copyIndexes(originalTable, newTable);
}Explicando o código acima, criamos uma função que recebe 3 parâmetros, primeiro o nome da tabela base (a que vai ser copiada), depois o nome da tabela que será criada (a cópia), e por último se ela deve extender alguma outra tabela. Por exemplo a tabela “incident” extende “Task”, então se voce quiser manter essa hierarquia, passe o nome dessa tabela no terceiro argumento.
O código vai copiar os campos, atributos, definições e inclusive os indices da tabela original na sua nova tabela! Detalhe importante, não esqueça que o nome da sua nova tabela DEVE começar com “u_” para que fique claro que se trata de uma tabela customizada (boas práticas)!
Outro detalhe importante, a execução desse script não gera registros em UpdateSet!
Até a próxima!