Opções de mapeamento
Você pode mapear campos de várias maneiras, dependendo das circunstâncias da importação e se os dados devem ser transformados antes de serem carregados em uma tabela de produção.
Também é importante observar que qualquer operação de importação pode exigir o uso de vários métodos de mapeamento, e esses métodos podem ser prontamente usados em conjunto uns com os outros.
Utilitário de mapeamento automático
O método de mapeamento mais simples é quando todos os nomes de campo dos conjuntos de importação correspondem aos nomes dos campos nas tabelas de produção nas quais os dados serão transformados. Neste caso, basta clicar Mapear campos correspondentes automaticamente Na lista relacionada no formulário Mapa de transformação de tabela e confirme a correspondência apropriada. Se houver discrepâncias em termos de como os campos foram correspondidos automaticamente, use o utilitário de assistência de mapeamento para corrigi-los. Quando todos os campos forem correspondidos corretamente, clique em Transformação link relacionado para começar a transformar dados na tabela de destino.
Utilitário de Assistência de Mapeamento
Alterando o formato de data
| Formato de data | Descrição |
|---|---|
| dd-MM-aaaa | Dia-mês-ano |
| dd-MM-aaaa hh:mm:ss | Dia-mês-ano horas-minutos-seconds |
| dd-MM-aaaa hh:mm:ss z | Day-month-ano hours-minutes-seconds fuso horário |
| MM-dd-aaaa | Mês-dia-ano |
| MM-dd-aaaa hh:mm:ss | Mês-dia-ano horas-minutos-seconds |
| MM-dd-aaaa hh:mm:ss z | Mês-dia-ano horas-minutos-seconds fuso horário |
| aaaa-dd-MM | Ano-dia-mês |
| aaaa-MM-dd | Mês-dia |
| aaaa-MM-dd hh:mm:ss | Year-month-day hours-minutes-seconds |
Para indicar o formato de hora de 24 horas, especifique um formato de data personalizado usando HH:mm:ss em vez de hh:mm:ss.
Converter de um formato de data de 24 horas para 12 horas pode fazer com que os horários de 12:00 a 23:59 sejam formatados como 00:00 a 11:59.
Mapeamento para um campo de duração
- Calcule a duração a partir de uma data de início e de término
- Converta um valor de duração existente em um ServiceNow valor da duração
Calculando um valor de duração a partir de uma data de início e término
- Navegar até .
- Selecione o mapa de transformação para o qual você deseja calcular um valor de duração. Por exemplo, o Mapa de transformação de notificação que importa para a tabela Incidente.
- Selecione Executar script caixa de seleção.
- Insira JavaScript para transformar as datas de início e término em uma duração. Consulte o script de amostra.
- Clique em Atualizar.
target.duration = gs.dateDiff(source.u_start.getDisplayValue(), source.u_end.getDisplayValue(), false);Converta um valor de duração em um valor de duração da ServiceNow
- Navegar até .
- Selecione um mapa de transformação.
Por exemplo, o Mapa de transformação de notificação que importa para a tabela Incidente.
- Selecione Executar script caixa de seleção.
- Insira JavaScript para converter valores de duração existentes em um ServiceNow valores de duração. Consulte o script de amostra.
- Clique em Atualizar.
//Transform the value in source.u_duration from seconds to milliseconds
target.duration.setDateNumericValue(source.u_duration * 1000);//Transform the value in source.u_duration to ServiceNow format
target.duration.setDateNumericValue(source.u_duration);Usando um script para calcular um valor de origem
- O valor de origem não está no formato do valor de destino mapeado.
- Você deseja pesquisar um valor antes de mapear para o campo de destino.
- O valor de origem deve ser calculado a partir de vários campos.
- Você precisa criar um valor de aglutinação composto ou calculado no campo de destino.
Um script de origem espera que o valor calculado seja definido na variável global resposta .
Campos binários ou BLOB de mapeamento
ServiceNow Usa um processo especial para importar dados binários e binários de objetos grandes (BLOB) de fontes de dados JDBC. Todos os dados binários são convertidos automaticamente em um registro na tabela Anexo [sys_attachment] antes que a transformação ocorra. A tabela do conjunto de importação armazena somente o valor sys_id do registro do anexo no campo da tabela de importação, em vez do valor binário real. Por exemplo, suponha que você use um Fonte de dados JDBC para importar dados de um sistema da Central de serviços da CA, que armazena o valor de chave de cada registro como dados binários. Quando você importa os valores de chave da Central de serviços para um ServiceNow. ServiceNow o campo contém somente um Referência sys_id aos dados binários correspondentes na tabela Registro de anexo [sys_attachment] em vez dos dados binários reais.
EmAfter script. O script precisa ser executado em um EmAfter evento porque destino.sys_id o objeto só está disponível depois que os dados são colocados na tabela de conjunto de importação. Por exemplo, para mapear o anexo resultante para o registro de transformação de destino, você pode usar o script a seguir.var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field);
// the source field needs to be mapped to the source that is the BLOB
agr.query();
if(agr.next()) {
agr.table_name = "cmdb_ci"; // the target table of the transform map
agr.table_sys_id = target.sys_id; // the target record
agr.content_type = source.u_contentype;
// the content type string if available,
// this becomes the mime encoding when clicking an attachment link
agr.update(); // finally, move/re-attach the attachment to the target row }db_image execute o seguinte EmAfter script para exibir a imagem:var strTemp = source.u_file_name;
var fType = strTemp.substr(- 3);
var iCont = "" ;
if(fType == 'jpg') {
iCont = 'jpeg' ; }
else {
iCont = fType; }
var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field);
agr.query();
if(agr.next()) {
agr.table_name = "ZZ_YYdb_image";
agr.table_sys_id = target.sys_id;
agr.content_type = 'image/' + iCont;
agr.file_name = 'image';
agr.update(); }