Localizando um Anexo Usando swaref
Use esta tarefa para localizar anexos de mensagens recuperando a URI da mensagem e removendo cid: do início do valor recuperado.
Sobre Esta Tarefa
Quando uma mensagem do Web Services-Interoperability (WS-I) Attachments Profile Versão 1.0 utiliza um SOAP com referência de anexos (swaref) para se referir a um anexo, o swaref pode se referir aos anexos vinculados e não-vinculados e o swaref pode se referir a um único anexo várias vezes. Para permitir que você localize o anexo correto, as tecnologias de integração de serviços armazenam o valor de URI que é codificado na mensagem no gráfico de dados SDO para o corpo da mensagem.
Ao armazenar o valor de um elemento (ou atributo) do tipo swaref no gráfico de dados, as tecnologias de integração de serviços armazenam o URI completo da instância da mensagem. Portanto, ao recuperar a URI, remova cid: do início do valor recuperado para localizar o ID de Conteúdo do anexo referenciado.
Exemplo
O exemplo a seguir mostra como utilizar o valor de um elemento swaref para localizar o anexo correto. Este exemplo utiliza o RPC/Literal WSDL e a mensagem SOAP da seção 4.4 do Web Services-Interoperability (WS-I) Attachments Profile Versão 1.0:
DataObject infoNode = graph.getRootObject().getDataObject("info");
String contentId = infoNode.getString("body/ClaimDetail/ClaimForm");
// Remover o "cid:" parte da cadeia
contentId = contentId.substring(4);
// Localize o valor do anexo
DataObject attachmentEntry =
infoNode.getDataObject("attachments[contentId=" + contentId + "]");
byte[] data = attachmentEntry.getBytes("data");