Ana içeriğe atla

Groovy Script

import groovy.xml.XmlSlurper
import groovy.xml.XmlUtil

//XmlSlurper (boolean validating, boolean namespaceAware)
var rootNode = new XmlSlurper(false, true).parseText(responseBodyTextToClient).declareNamespace('soapenv':'http://schemas.xmlsoap.org/soap/envelope/' , 'ns1':'http://url/services/method/' )

//soapEnv:Envelope ana nesnedir
def element=rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'

if(element == ''){
  //Alanın değeri yoksa node'u siler
  rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'.replaceNode { }
} else if (element.text().size() == 1){
  //Alandaki değerin uzunluğu 1 ise başına iki adet sıfır ekler
  rootNode.'soapenv:Body'.'ns1:anaDeger'.'ns1:altDeger'.replaceBody('00'+element.text())
}

responseBodyTextToClient = XmlUtil.serialize(rootNode)

Açıklama

Bu script şu işlemleri gerçekleştirir:
  1. XML Parse: Response body’den gelen SOAP mesajı parse edilir
  2. Element Kontrolü: Belirtilen element’in değeri kontrol edilir
  3. Node Silme: Eğer element boş ise node silinir
  4. Değer Değiştirme: Eğer element değeri 1 karakter ise başına “00” eklenir
  5. XML Serialize: Güncellenmiş XML serialize edilir
Bu script, response hattında (Response Policy) çalıştırılmalıdır çünkü responseBodyTextToClient değişkenini kullanmaktadır.