Profil: Biztalk 2009 Mise à jour 4 sur Windows 2008 Server SP2 (plate-forme de développement) Salut Lorsque vous utilisez XPath pour carte ma sortie en utilisant un Construct de message et une affectation de message avec le code suivant:Biztalk Obtenir erreur « NullPartException » lorsque vous utilisez XPath
sXPath = System.String.Format("/*[local-name()='ProcessSalesOrder' and namespace-uri()='http://www.TestSchemas.net/TestSchemas_V2_2/schemas']/*[local-name()='header' and namespace-uri()='http://www.TestSchemas.net/TestSchemas_V2_2/schemas']/*[local-name()='detail' and namespace-uri()='http://www.TestSchemas.net/TestSchemas_V2_2/schemas' and position()={0}]", nLoopCount);
System.Diagnostics.Debug.WriteLine(sXPath);
SingleInput = xpath(Input, sXPath);
Je reçois une exception dans l'Observateur d'événements; J'ai une simple orchestration avec un port de réception, un port d'envoi en utilisant deux schémas. J'obtiens le nombre d'enregistrements du "détail" non borné dans une variable appelée nRecordCount
et j'utilise un compteur de boucle dans le MessageLoop
pour incrémenter ce placé à la fin dans un objet Expression avec nLoopCount = nLoopCount + 1;
comme expression.
La structure de détail du 2ème schéma (Nom: SalesOrderDetail_V2_2.xsd) est le même que le 1er (Nom: SalesOrderRequest_V2_2.xsd), mais toutes les balises d'en-tête supprimés.
et le SalesOrderRequest_V2_2.xsd ci-dessous
Il semble comme une cheville carrée tente d'être mis en correspondance avec un trou rond. J'ai essayé de déboguer ceci mais échoue au code suivant dans le file0.cs au point montré ci-dessous;
Je ne peux pas trouver quelque chose d'utile dans le débogage Orchestration soit. Quelqu'un peut-il faire la lumière sur ce qui me manque peut-être quand j'utilise Xpath?
Le projet complet a été compressé et est disponible en téléchargement à l'adresse suivante
S'il vous plaît voir ce lien pour une solution possible. J'ai réussi à obtenir une solution réalisable si je modifie le fichier Structure de schéma (XSD).
Voici le lien: xpath - How to get Method B to work?
Salut Filburt, La réalité est que le projet et la structure ci-dessus fonctionne bien avec une simple définition de schéma XSD avec seulement cinq éléments sous le nœud de détail sans autres éléments d'en-tête. Si j'augmente la complexité des schémas XSD comme indiqué dans les captures d'écran avec de nombreux nœuds et éléments dans le nœud d'en-tête ainsi que dans le nœud de détail, alors j'obtiens la situation où je reçois l'erreur d'exception. Autant que je peux voir les deux schémas avec le noeud de détail sont identiques. – Chrisk
Dans le débogage, je peux voir la variable nRecordCount remplie avec le nombre correct d'éléments de détail dans l'expression GetRecordCount. Il entre dans le MessageLoop mais échoue au point où "SingleInput = xpath (Input, sXPath);" l'expression est exécutée. le message SingleInput est basé sur le schéma SalesOrderDetail et sXPath est le résultat de l'extraction de l'expression "System.String.Format ("/* [nom-local() = 'ProcessSalesOrder' et espace de noms ....... " – Chrisk
Je crois qu'il y a une incompatibilité entre l'utilisation de la fonction xpath que je ne peux pas résoudre en utilisant les schémas complexes de cette version de l'Orchestration que je possède.Il doit être simple mais je semble être aveugle sur celui-ci. – Chrisk