Planos de Migração para Objetos com Links de XML Incorporados
Ao migrar objetos nos quais referências de chave externa são capturadas no campo baseado em XML do objeto, instruções subordinadas são necessárias para definir as referências de chave externa para que o CMA compreenda os relacionamentos. Isso contrasta com chaves externas diretas, nas quais o CMA pode determinar os relacionamentos usando restrições. As instruções fornecem duas finalidades. A definição das instruções garante que os objetos relacionados sejam incluídos na migração, se for o caso. Se você souber que os objetos relacionados estão incluídos por causa de outros critérios, as instruções permitirão que o CMA agrupe objetos relacionados em transações. Isso ajuda no processo de aplicação no momento da importação para garantir que os objetos relacionados sejam mantidos agrupados. Contudo, o processo de aplicação inclui etapas iterativas para tentar superar dependências como essa, para que definir as instruções não seja fundamental para esse propósito.
A seguir estão opções para criar planos de migração com links de XML incorporados:
- Uma opção é usar o objeto de negócios lógico (negócios) específico na instrução primária para definir o objeto que você está copiando. Com essa opção, as instruções subordinadas podem usar critérios XPath para definir a chave externa relacionada. Quando essa abordagem for usada, um Plano de Migração separado deverá ser criado para cada objeto de negócios lógico. (Consulte mais informações em Noções Básicas sobre o Processo de Filtragem do Objeto de Negócios.) Essa opção seria usada somente em casos isolados.
- Outra opção é criar um plano de migração que usa o Objeto de Negócios Físico como instrução original e, em seguida, inclui uma instrução subordinada para o objeto de negócios lógico real usando SQL Transversal para unir o objeto a ele mesmo por meio de sua chave primária. Observe que, com essa técnica, os registros que fazem referência ao objeto de negócios lógico serão incluídos somente uma vez no arquivo de exportação. Nesse momento, as instruções subordinadas podem usar anotação XPath para definir os dados da chave externa. Usar o objeto de negócios físico como instrução primária garante que todos os registros no objeto de manutenção sejam considerados. As instruções subordinadas com o objeto de negócios lógico e as anotações XPath serão aplicadas somente aos registros aplicáveis àquele objeto de negócios. Essa opção é útil para objetos de manutenção com um número baixo de objetos de negócios lógicos com chaves externas diferentes.
- Outra opção é usar o objeto de negócios físico na instrução primária e usar os SQLs brutos nos critérios transversais da instrução subordinada para identificar as chaves externas usando comandos de substring. Uma Instrução Subordinada separada é necessária para cada SQL correspondente para cada ocorrência de elemento. Usar essa técnica tem as mesmas vantagens da anterior para que todos os registros do objeto de manutenção sejam incluídos na migração. Contudo, essa técnica pode ser útil para objetos de manutenção com um alto número de objetos de negócios esperados, nos quais cada um tem uma ou mais chaves externas. É especialmente útil se muitos objetos de negócios referenciarem a mesma chave externa. Então, somente uma instrução é necessária para aquela chave externa. Observe que um único plano de migração pode usar essa técnica e a técnica XPath para elementos diferentes.
Uma solicitação de migração pode ter diversos planos de migração para o mesmo objeto de manutenção. Isso permite certa flexibilidade e manutenção a longo prazo, já que as técnicas acima podem ser usadas em diversos planos de migração. Pense no seguinte exemplo:
- Um produto fornece objetos de negócios base com chaves externas definidas no campo XML e fornece o plano de migração apropriado com instruções. Uma implementação estende esse objeto de negócios ou talvez crie seu próprio objeto de negócios para o mesmo objeto de manutenção e inclua diferentes chaves externas adicionais no XML. Em vez de duplicar o plano-base de migração e adicionais outras instruções para as chaves externas adicionais, a implementação pode criar um segundo plano de migração para o objeto de manutenção com as chaves externas adicionais definidas. Uma solicitação de migração deve ser definida para incluir os dois planos de migração. Nesse caso, se a implementação tiver somente um objeto de negócios personalizado, é possível escolher usar o objeto de negócios personalizado como instrução primária conforme descrito acima na primeira opção.