2 pièce(s) jointe(s)
Pas de fichiers dans mon dossier de sortie mais aucune erreur dans Biztalk ou de message "suspended"
Bonjour,
Je viens de débuter avec BizTalk et lorsque je dépose un fichier dans mon dossier d'entrée, je n'obtiens rien dans mon dossier de sortie et je n'ai aucune erreur venant de BizTalk. J'ai déjà fait d'autres petits tests avant et la cela fonctionnait, j'avais bien un fichier dans mon dossier de sortie. Les tests en question était un simple "copier/coller" de mon fichier XML pour voir si ma configuration fonctionnait et de l'extraction de données (Combien y a-t-il de propriétaires, de chats, créé un xml avec uniquement les propriétaires/les chats).
Voici mon contexte:
J'ai un fichier XML en entrée contenant des propriétaires et des chats (pour les besoins de l'exercice, j'ai créé ce fichier moi-même) et le but, dans un premier temps est d'extraire les propriétaires et de les mettre dans un fichier XML différent en sortie pour chacun des propriétaires.
Le fichier XML que j'ai créé se présente comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?xml version="1.0" encoding="UTF-8" ?>
<CatManager xmlns="http://Manager.CatManager">
<Owners>
<Owner>
.....
</Owner>
<Owner>
.....
</Owner>
</Owners>
<Cats>
<Cat>
.....
</Cat>
<Cat>
.....
</Cat>
</Cats> |
Les 2 schémas que j'ai créé:
CatManager.xsd
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <?xml version="1.0" encoding="utf-16" ?>
- <xs:schema xmlns="http://Manager.CatManager" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:cm="http://www.catmanager.fr/" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://Manager.CatManager" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="CatManager">
- <xs:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" name="Owners">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" name="Owner">
- <xs:complexType>
- <xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="OwnerID" type="xs:string" />
<xs:element name="Name" type="xs:string" />
<xs:element name="Location" type="xs:string" />
- <xs:element name="Phones">
- <xs:complexType>
- <xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Home" type="xs:long" />
<xs:element minOccurs="1" maxOccurs="1" name="Mobile" type="xs:long" />
<xs:element minOccurs="0" maxOccurs="1" name="Pro" type="xs:long" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
- <xs:element minOccurs="0" name="Cats">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" name="Cat">
- <xs:complexType>
- <xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="CatID" type="xs:string" />
<xs:element name="Name" type="xs:string" />
<xs:element name="Breed" type="xs:string" />
<xs:element name="Birthdate" type="xs:date" />
- <xs:element name="Colors">
- <xs:complexType>
- <xs:sequence>
<xs:element maxOccurs="1" name="Color1" type="xs:string" />
<xs:element minOccurs="0" name="Color2" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Neutered" type="xs:boolean" />
<xs:element name="OwnerID" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> |
Owners.xsd
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <?xml version="1.0" encoding="utf-16" ?>
- <xs:schema xmlns="http://Manager.Owners" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://Manager.Owners" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="Owners">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="Owner">
- <xs:complexType>
- <xs:sequence>
<xs:element name="OwnerID" type="xs:string" />
<xs:element name="Name" type="xs:string" />
<xs:element name="Location" type="xs:string" />
- <xs:element name="Phone">
- <xs:complexType>
- <xs:sequence>
<xs:element name="Home" type="xs:string" />
<xs:element name="Mobile" type="xs:string" />
<xs:element name="Pro" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema> |
Les variables que j'ai créé:
Pièce jointe 445881
Ports:
- prtExtractSingleOwner: Comunication direction est à "Send" | Communication Pattern est à "One-Way" | Port Type est à "Manager.prtExtractOwner"
- prtIN: Comunication direction est à "Receive" | Communication Pattern est à "One-Way" | Port Type est à "Manager.prtCtoO"
- prtOUT: Comunication direction est à "Send" | Communication Pattern est à "One-Way" | Port Type est à "Manager.prtCtoO"
Messages:
- msgIN: Message Type est à "Manager.CatManager"
- msgOUT: Message Type est à "Manager.Owners"
Variables:
- correlationID: String
- counter: Int32
- counterString: String
- responseCount: Int32
Port Type:
- prtCtoO: Communication Pattern est à "One-Way" | rqtCtoO: Message Type est à "Manager.CatManager"
- prtExtractOwner: Communication Pattern est à "One-Way" | rqtCtoO: Message Type est à "Manager.Owners"
Mon orchestration:
Pièce jointe 445871
Dans la shape "rcv XML":
Message: msgIN
Operation: prtIN.processCtoO.rqtCtoO
Dans la shape "Count Owners":
Code:
1 2 3
| responseCount = xpath(msgIN, "count(/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners' and namespace-uri()='']/*[local-name()='Owner' and namespace-uri()=''])");
counter = 1;
counterString = "1"; |
Dans la shape "Loop":
Code:
counter <= responseCount
Dans la shape "Construct SingleOwner":
Message Constructed: msgOUT
Dans la shape "Assign SingleOwner":
Code:
msgOUT = xpath(msgIN, "/*[local-name()='CatManager' and namespace-uri()='http://Manager.CatManager']/*[local-name()='Owners' and namespace-uri()='']/*[local-name()='Owner' and namespace-uri()=''][" + counterString + "]");
Dans la shape "Map to OUT":
Input Messages: msgIN
Map Name: Manager.ExtractOwners
Output Messages: msgOUT
Dans la shape "Increment counter":
Code:
1 2
| counter = counter + 1;
counterString = counter.ToString(); |
Dans la shape "sndOUTCtoO":
Message: msgOUT
Operation: prtExtractSingleOwner.processExtractOwner.rqtExtractOwner
Dans Biztalk, j'ai bien mes ports physiques qui sont créés et configurés, le "Receive Port" est en "One-Way" avec un "Receive Pipeline" qui est en "XMLReceive". Le "Send Port" est en "One-Way" avec un "Receive Pipeline" qui est en "PassThruTransmit".
Voilà j'espère avoir été suffisamment clair dans l'explication de mon problème. N'hésitez pas à me dire si vous avez besoin d'en savoir plus sur mon contexte.
Merci d'avance à ceux qui me répondront.