Ana içeriğe atla

Groovy Script

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

// XML'i parse edilir
def parsedXml = new XmlSlurper().parseText(requestBodyTextFromClient)

// Body içindeki ilk element bulunur
def methodNode = parsedXml.'**'.find { it.parent().name() == 'Body' }

// <ELEMENT_NAME> element'inin body içindeki children elementte var olup olmadığını kontrol edilir
def <ELEMENT_NAME>Node = methodNode.children().find { it.name() == '<ELEMENT_NAME>' }

// Eğer <ELEMENT_NAME> elementi yoksa body içindeki alt eleman içine eklenir
if (!<ELEMENT_NAME>) {
  methodNode.appendNode {
    <ELEMENT_NAME>(' ')
  }
}

// XML'i serialize edilir.
requestBodyTextToTargetAPI = XmlUtil.serialize(parsedXml)

Açıklama

Bu script şu işlemleri gerçekleştirir:
  1. XML Parse: Request body’den gelen XML verisi parse edilir
  2. Body Element Bulma: Body içindeki ilk element bulunur
  3. Element Kontrolü: Belirtilen element’in var olup olmadığı kontrol edilir
  4. Element Ekleme: Eğer element yoksa, body içindeki alt eleman içine eklenir
  5. XML Serialize: Güncellenmiş XML serialize edilir
Bu script, request hattında (Request Policy) çalıştırılmalıdır çünkü requestBodyTextFromClient ve requestBodyTextToTargetAPI değişkenlerini kullanmaktadır. <ELEMENT_NAME> yerine gerçek element adını yazmanız gerekmektedir.