SAP CPI iflow context details for current iflow
------------------------
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
import java.time.Instant;
import java.util.UUID;
import java.util.ArrayList;
def Message processData(Message message) {
def headers = message.getHeaders();
String UserProperties = headers.UserProperties
if(UserProperties == null) {
message.setHeader("correlationId", headers.SAP_MplCorrelationId)
message.setHeader("businessId", headers.SAP_MplCorrelationId)
message.setHeader("messageType", 'not set')
}else {
def String[] splittedArray = UserProperties.replace("{", "").replace("}", "").split(",");
ArrayList<String> flowContext = new ArrayList<String>();
for(int i=0; i<splittedArray.length; i++) {
flowContext.add(splittedArray[i]);
}
for(String value: flowContext) {
if(value.contains("x-business-app-name")) {
message.setHeader("prevBusinessName", value.substring(value.indexOf('=')+1,value.length()).toString());
println(value.substring(value.indexOf('=')+1,value.length()).toString());
}
if(value.contains("x-business-id")) {
message.setHeader("businessId", value.substring(value.indexOf('=')+1,value.length()).toString());
}
if(value.contains("x-correlation-id")) {
println(value.substring(value.indexOf('=')+1,value.length()).toString());
message.setHeader("correlationId", value.substring(value.indexOf('=')+1,value.length()).toString());
}
if(value.contains("x-message-schema")) {
println(value.substring(value.indexOf('=')+1,value.length()).toString());
message.setHeader("messageType", value.substring(value.indexOf('=')+1,value.length()).toString());
}
if(value.contains("x-tech-app-name")) {
message.setHeader("prevTechName", value.substring(value.indexOf('=')+1,value.length()).toString());
}
if(value.contains("x-transaction-id")) {
message.setHeader("prevTransactionId", value.substring(value.indexOf('=')+1,value.length()).toString());
}
}
}
message.setHeader("msgId", message.getProperty("SAP_MessageProcessingLogID"))
message.setHeader("currTransactionId", UUID.randomUUID())
message.setHeader("finalLog", false)
message.setHeader("platform", 'BTP')
message.setHeader("logLevel", 'info')
return message;
}