Plans de migration pour les objets avec liens incorporés dans du XML
Lors de la migration d'objets dont les références de clé étrangère sont capturées dans un champ XML de l'objet, des instructions subordonnées sont requises pour définir les références de clé étrangère, afin de permettre à l'assistant de migration de contenu de comprendre les relations. Cette situation est contraire à celle des clés étrangères directes, où l'assistant de migration de contenu peut déterminer les relations au moyen de contraintes. Les instructions remplissent deux rôles. La définition d'instructions garantit que les objets liés sont inclus dans la migration, le cas échéant. Si vous savez que les objets liés sont inclus en raison d'autres critères, les instructions permettent à l'assistant de migration de contenu de regrouper les objets liés en transactions. Ceci facilite le processus d'application lors de l'importation, afin de garantir que les objets associés sont regroupés. Cependant, le processus d'application comprend des étapes itératives pour essayer de surmonter des dépendances comme celle-ci, de sorte que la définition des instructions n'est pas essentielle à cette fin.
Des options permettant de créer des plans de migration avec liens incorporés dans le XML sont présentées ci-dessous :
- Une option consiste à utiliser l'objet métier logique spécifique dans l'instruction principale afin de définir l'objet que vous copiez. Avec cette option, les instructions subordonnées peuvent utiliser des critères XPath pour définir la clé étrangère associée. Lorsque cette approche est utilisée, un plan de migration distinct doit être créé pour chaque objet métier logique. (Pour plus d'informations, voir Comprendre le processus de filtrage des objets métier). Cette option s'utilise uniquement dans certains cas isolés.
- Une autre option consiste à créer un plan de migration qui utilise l'objet métier physique en tant qu'instruction principale, puis à inclure une instruction subordonnée pour le véritable objet métier logique, en utilisant une traversée SQL pour joindre l'objet à lui-même par sa clé primaire. Notez qu'avec cette technique, les enregistrements qui référencent l'objet métier logique seront toujours inclus une fois dans le fichier d'exportation. A ce stade, d'autres instructions subordonnées peuvent utiliser la notation XPath pour définir les données de la clé étrangère. Le fait d'utiliser l'objet métier physique en tant qu'instruction principale garantit que tous les enregistrements de l'objet de maintenance soient pris en compte. Les instructions subordonnées avec l'objet métier logique et les notations XPath s'appliquent uniquement aux enregistrements applicables à cet objet métier. Cette option s'avère utile pour les objets de maintenance qui contiennent un petit nombre d'objets métier logiques avec des clés étrangères disparates.
- Une autre option encore consiste à utiliser l'objet métier physique dans l'instruction principale, puis à utiliser des SQL bruts dans les critères de traversée de l'instruction subordonnée pour identifier les clés étrangères à l'aide de commandes de sous-chaîne. Une instruction subordonnée distincte est alors nécessaire pour chaque SQL correspondant à chaque occurrence d'élément. Cette technique offre les mêmes avantages que la précédente, en incluant tous les enregistrements de l'objet de maintenance dans la migration. Toutefois, cette technique peut s'avérer utile pour les objets de maintenance pour lesquels un grand nombre d'objets métier sont attendus, chacun d'entre eux comportant une ou plusieurs clés étrangères. Ceci s'avère particulièrement utile si de nombreux objets métier référencent une même clé étrangère. Dans ce cas, une seule instruction est requise pour cette clé étrangère. Notez qu'un seul plan de migration peut utiliser cette technique et la technique du XPath pour différents éléments.
Une requête de migration peut contenir plusieurs plans de migration pour un même objet de maintenance. Vous bénéficiez ainsi d'une certaine souplesse et d'une facilité de gestion à long terme, du fait que les techniques ci-dessus peuvent être utilisées dans plusieurs plans de migration. Examinons l'exemple suivant :
- Un produit fournit des objets métier standard avec des clés étrangères définies dans le champ XML et fournit des instructions au plan de migration approprié. Une implémentation peut étendre cet objet métier, voire créer son propre objet métier pour le même objet de maintenance, et inclure différentes clés étrangères supplémentaires dans le XML. Au lieu de dupliquer le plan de migration standard et d'ajouter des instructions pour les clés étrangères supplémentaires, l'implémentation peut créer un deuxième plan de migration pour l'objet de maintenance et y définir les clés étrangères supplémentaires. Une requête de migration comportant les deux plans de migration doit être définie. Dans ce cas, si l'implémentation n'a qu'un objet métier personnalisé, elle peut opter pour utiliser cet objet métier personnalisé pour jouer le rôle de l'instruction principale décrite ci-avant dans la première option.
