Localisation d'une pièce jointe à l'aide de swaref
Cette tâche vous permet de localiser les pièces jointes d'un message par l'extraction de l'URI du message et la suppression du cid: au début de la valeur extraite.
Pourquoi et quand exécuter cette tâche
Lorsqu'un message Web Services-Interoperability (WS-I) Attachments Profile Version 1.0 utilise une référence swaref pour désigner une pièce jointe, swaref peut faire référence à des pièces jointes associées ou non associées et swaref peut faire référence à une même pièce jointe plusieurs fois. Pour vous permettre de localiser la pièce jointe correcte, les technologies d'intégration de services stockent la valeur de l'URI qui est codée dans le message du graphique des données SDO du corps du message.
Lors du stockage de la valeur d'un élément (ou attribut) de type swaref dans le graphique des données, les technologies d'intégration de services stockent l'URI complet dans l'instance du message. Par conséquent, lorsque vous extrayez l'URI, vous devez retirer l'élément cid: du début de la valeur extraite afin de trouver l'ID de contenu de la pièce jointe référencée.
Exemple
L'exemple suivant indique comment utiliser la valeur d'un élément swaref afin de localiser la pièce jointe correcte. Cet exemple utilise l'élément WSDL RPC/Literal et le message SOAP de la section 4.4 de Web Services-Interoperability (WS-I) Attachments Profile Version 1.0 :
DataObject infoNode = graph.getRootObject().getDataObject("info");
String contentId = infoNode.getString("body/ClaimDetail/ClaimForm");
// Cut off the "cid:" part of the string
contentId = contentId.substring(4);
// Localication de la valeur de la pièce jointe
DataObject attachmentEntry =
infoNode.getDataObject("attachments[contentId=" + contentId + "]");
byte[] data = attachmentEntry.getBytes("data");