SAP CPI Groovy Exception Status Code setzen

You are here:
← All Topics

SAP CPI bietet Ihnen die Möglichkeit Groovy Skripts zu verwenden. In dem von uns entwickelten SAP Standard Training WDEI1 zeigen wir Ihnen wie Sie Groovy richtig verwenden.

Im nachfolgenden Coding zeigen wir Ihnen, wie Sie in Groovy Skript in einem Exception Subprocess den HTTP Status Code setzen können. Wir haben dazu dem Groovy Script einen Content Modifier vorgeschaltet, der die beiden Variablen ${exception.stacktrace} und ${exception.message} in die Exchange Properties exStacktrace und exMessage speichert. Das Groovy Skript setzt im Body eine XML Nachricht, in der diese beiden Exchange Properties gekapselt sind. Dazu verwenden wird den MarkupBuilder aus dem groovy.xml Paket.

Infos zum WDEI1 Training

Der SAP WDEI1  bietet Ihnen eine 5-tägige praxisnahe Einführung in Entwicklung, Architektur und Sicherheit der SAP Cloud Platform Integration.

Groovy HTTP Status Code setzen

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

import groovy.xml.MarkupBuilder;

def Message processData(Message message) {
    //Body 
    def body     = message.getBody();
    def props    = message.getProperties();
        
    def exStacktrace = props.get("exStacktrace");
    def exMessage = props.get("exMessage");
    
    def stringWriter = new StringWriter();
    def exceptionBuiler = new MarkupBuilder(stringWriter);
    
    exceptionBuiler.exception {
        exceptionMessage(exMessage)
        stacktrace(exStacktrace)
    }
    
    message.setHeader("Content-Type", "application/xml")
    message.setHeader("CamelHttpResponseCode", 500)
    
    message.setBody(stringWriter.toString());
    return message;
}