Usando as propriedades SourceExpr e DestExpr
Na última seção, discutimos como adicionar instâncias de tabela a um mapeamento. Nesta seção, vamos ver como acessar os dados dos campos em uma tabela. E como usar valores constantes e filtros.
O módulo permite ler dados de campos de tabelas, sempre que houver uma propriedade SourceExpr (expressão de origem). O SourceExpr também pode ser usado para especificar valores constantes ou para chamar funções. Esta propriedade encontra-se nas linhas de dados de mapeamento do tipo de formato NAV e nas linhas de dados de mapeamentos de exportação. Mas esta propriedade também está disponível para parâmetros da função personalizada e para estender as mensagens de erro. Há mais opções, que discutiremos um pouco mais adiante nesta seção.
Para escrever dados nos campos da tabela existe uma outra propriedade chamada DestExpr (expressão de destino). Esta propriedade também permite que você verifique os dados em relação a um filtro especificado, em vez de armazená-los. Entraremos em detalhes daqui a pouco. É importante saber que você pode escrever dados em qualquer campo de uma instância de tabela, mesmo que a tabela Mode esteja definida como Read. Escrever numa tabela em modo de leitura chamará a lógica de validação do NAV, mas não modificamos o registo. Em nossas tabelas de buffer, você pode usar isso para armazenar um valor por um determinado tempo no mapeamento. Em outras tabelas dependerá da lógica de validação, se é seguro usar uma tabela em modo de leitura para armazenar dados temporariamente.
O SourceExpr Property
O tipo de fonte especifica que tipo de dados deseja ler. Os valores permitidos são:
Um valor constante que é inserido no mapeamento.
Um campo de uma instância de tabela, que é uma das linhas de mapeamento pai desta linha de mapeamento. Para ler um campo de soma, é necessário estar fora da instância da tabela, mas abaixo dela.
O usuário deseja ler dados de uma função interna ou personalizada.
Esta propriedade foi adicionada no Anveo EDI Connect 4.00.
Esta propriedade só está disponível se o SrcType estiver definido como Const. Esta propriedade especifica o tipo de dados do valor constante. É necessário selecionar o tipo de dados para evitar erros devido a diferentes locais utilizados durante a preparação e o tempo de execução. Na versão mais antiga, era necessário garantir que o locale durante a preparação fosse o mesmo que durante o tempo de execução para evitar, por exemplo, que os números fossem interpretados de forma diferente.
É possível selecionar entre os seguintes tipos de dados:
Um valor de texto constante.
Um texto que pode conter caracteres especiais, como um retorno de carro<CR> Há uma lista de todos os caracteres especiais suportados.
Um valor booleano, como True ou False.
Um valor de opção. Você deve usar o valor inteiro da opção no banco de dados.
Um valor inteiro (32 bits).
Um valor decimal.
Um valor inteiro grande (64 bits).
O valor contém uma duração.
O valor é um valor de código Dinâmico (apenas maiúsculas, não permite todos os caracteres).
Representa um valor de data.
Representa um valor de tempo.
Representa um valor combinado de data e hora.
Uma fórmula de data.
Um ID global único (GUID).
Esta propriedade só está disponível se o SrcType estiver definido como Const. Representa o valor constante que você deseja usar.
Esta propriedade só está disponível se o SrcType estiver definido como Function. Você pode usar o AssistEdit para especificar o objeto e a função. Se a função requer parâmetros, estes também serão SourceExpr, mas não suportam aninhamento de funções.
Esta propriedade só está disponível se o SrcType estiver definido como Field. Selecionar a instância de tabela a partir da qual os dados devem ser lidos. A tabela precisa ser um dos pais da linha de mapeamento atual, para ler os dados de um registro. Para ler os campos de soma, é necessário estar sob a instância de tabela, mas não um filho dela.
Esta propriedade só está disponível se o SrcType estiver definido como Field. Seleciona a coluna / campo a partir do qual deseja ler.
É possível especificar uma conversão de valor, para modificar o valor marcado para um valor fixado diferente. Há uma seção sobre como configurar traduções de valores.
O código da tradução do valor que deve ser usado.
O que deve acontecer, se o valor não for encontrado na tradução do valor.
O módulo não faz nada se a tradução estiver faltando. Utiliza o valor original sem tradução.
Emitir um valor vazio.
Adicione uma entrada de log de informações e utilize o valor original.
Adicionar uma entrada de log de advertência e utilizar o valor original.
Quebre o mapeamento imediatamente e registre um erro.
Criar uma entrada de log de erros e não concluir com êxito o mapeamento, mas continuar com o processamento para encontrar outros erros também.
Esta propriedade está oculta por defeito. Você pode especificar uma lista de valores permitidos e criar erros, iof você tenta exportar outro valor.
A lista de valores permitidos. Você pode usar o AssistEdit ou digitar os termos separados por vírgulas.
O que deve acontecer, se o valor da fonte não estiver na lista de valores permitidos.
Não utilizar a validação avançada e ignorar os valores da lista.
Criar uma entrada de log de informação.
Criar uma entrada de log de advertência.
Quebre o mapeamento imediatamente com uma mensagem de erro.
Retorna um erro no mapeamento de execução, mas continua a processar o mapeamento, para encontrar outros erros também.
A Propriedade DestExpr
Selecionar o destino para um valor. Os seguintes valores são válidos:
Empty significa que o valor é ignorado. Isso pode ser usado para ignorar campos em importações ou, por exemplo, para ignorar um valor de retorno de função.
O valor deve ser verificado contra um filtro Dynamics. Se o filtro não corresponder, o valor não é aceite. Dependendo do conversor, isso resultará em uma mensagem de erro ou em ignorar uma seção do mapeamento. Você aprenderá mais sobre o uso de filtros para conversores específicos na documentação de cada conversor.
O valor deve ser escrito em um campo de uma instância de tabela nesse mapeamento.
Esta propriedade só está disponível se o DestType estiver definido como Filter. O filtro Dynamics verifica o valor em relação ao qual o valor é verificado. O valor será interpretado como um valor de texto para aplicar o filtro. Um exemplo típico seria “BY|IV”, para permitir os valores “BY” e “IV”.
Esta propriedade só está disponível se o DestType estiver definido como Field. Seleciona a instância da tabela em que o valor deve ser escrito. A instância de tabela tem de ser um dos pais da linha de mapeamento atual.
Esta propriedade só está disponível se o DestType estiver definido como Field. O nome do campo/nome da coluna do campo de destino na tabela.
Esta propriedade só está disponível se o DestType estiver definido como Field. Esta propriedade está disponível apenas como uma propriedade avançada. Definir esta propriedade como False irá ignorar o gatilho de validação Microsoft Dynamics NAV 2016 para esse campo.
Seja muito cauteloso ao usar False. Você só deve desativar a validação após consultar um programador. Você não deve desativá-lo em nenhuma das tabelas Dynamics padrão, exceto que você realmente sabe o que está fazendo. Você pode tornar Microsoft Dynamics NAV 2016 inutilizável, ignorando o código de validação.
Esta propriedade só está disponível se o DestType estiver definido como Field e você estiver usando o conversor de NAV. Você pode encontrar mais informações na página do conversor.