Workflow - Manual do Usuário > Modelador > Automatização > Objetos > ReadWriteObject > <objeto>.copyAll(<origem>)

<objeto>.copyAll(<origem>)

Copia os valores de todas as propriedades de um objeto para outro. Considerando os seguintes itens:

<destino> <origem>
  Metadados definidos Sem definição
Metadados definidos <destino> <destino>
Sem definição <origem>

Depende se os objetos de origem e destino tem propriedades conhecidas*.

<destino> <origem>
  Conhecido Não conhecido
Conhecido <destino> <destino>
Não conhecido <origem> Não copia nada

Essa exceção é sempre aplicada quando nenhum dos objetos, origem e destino, possuem definição de metadados e, dessa forma, é necessário verificar em cada objeto se eles possuem ou não tipos conhecidos.

Quando o objeto de <destino> for conhecido é necessário ajustar comportamento.

 

Nota

Propriedades conhecidas são propriedades dinâmicas que por algum motivo é possível identificar o seu tipo, seja pela sua definição ou tentativa de acesso por parte do desenvolvedor. A identificação do seu tipo pode acontecer a partir dos seguintes casos:

  • Variáveis locais já criadas. Por padrão variáveis locais não são conhecidas, todavia, quando criadas, passam a serem conhecidas. Isso pois, para cria-las, é necessário definir informações da variável, tais como “nome” e “tipo”.
  • Propriedades em objetos sem definição de metadados que forem acessados. O acesso a um objeto, que até então, não possuía tipo definido, faz com que o seu tipo seja definido. Por exemplo, ao tentar acessar uma propriedade do retorno do executor, que por padrão não tem metadados definidos, é necessário definir um tipo para a busca dessa propriedade. A definição desse tipo para buscar o dado, define que esse é do tipo definido. A seguir estamos definindo que a variável de nome “usuário” é de um tipo conhecido, String: context.getTask().getOutput().getString(“usuario”)

Para saber quais são os objetos que possuem metadados definidos ou não consulte a tabela a seguir. Considerando que, o objeto citado abaixo é sempre o objeto retornado pela chamada das funções listadas abaixo.

Função Possui metadados definido
context.getVars(): <objeto> Sim
context.getTask().getLocalVars(): <objeto>

Não: quando adicionada variável.

Sim: quando for alterado o valor de uma variável definida anteriormente.

context.getTask().getInput(): <objeto> Não
context.getTask().getOutput(): <objeto> Não
context.utils.newWSMD.getInput(): <objeto> Não
context.utils.newWSMD.getOutput(): <objeto> Não

 

Sintaxe: <objeto>.copyAll(<origem>)

Parâmetros:

Nome Tipo Descrição
origem Object Objeto que será copiado ou receberá a copia de acordo com as regras acima.

Tipo de retorno: Sem retorno.

Exemplo de utilização:

Para ajudar a entender esses conceitos de objetos com metadados ou não, de propriedades conhecidas ou não, e ver como isso realmente funciona na prática. Seguem abaixo uma série de exemplos que atendem a maioria das possibilidades apresentadas na primeira tabela (sobre “Definição de metadados”).

Para facilitar a identificação, cada um dos exemplo possui a definição do objeto como sendo:

Este artigo ajudou você?