on 09-11-2017 7:28 PM
Hello,
I am trying to log payloads in an integration flow using the following code in a groovy script step:import com.sap.gateway.ip.core.customdev.util.Message;
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
def body = message.getBody(java.lang.String) as String;
def messageLog = messageLogFactory.getMessageLog(message);
if(messageLog != null){
messageLog.addAttachmentAsString("Payload", body, "text/plain");
}
return message;
}
When executing the integration flow the following error appears in monitoring:
Message processing failed.
java.lang.NoSuchMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.Log message payload() is applicable for argument types: (com.sap.gateway.ip.core.customdev.processor.MessageImpl) values: [com.sap.gateway.ip.core.customdev.processor.MessageImpl@5b15080c]
Does anyone have an idea what is causing this or if there is a problem in the code itself?
Thank you for your help!
Is there really a Need for logging the payload with Groovy script? I'm quite new to SCPI, so be lenient with me, if you happen to be able to reproduce the wanted message at any time, traceing might be easier, especially since it will persist payload at any message step. Backdraw would be, that it is only on for 10 minutes, so no Long term logging there.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Well there are two reasons why I would like to trace payload in the integration flow in the test environment:
1. Reproducing of the message is not easily possible on sender side
2. WebUI should be the central point of access for development / monitoring
Otherwise I agree with you.
Hi Florian,
Can you please post a screenshot which shows the details of your Groovy script artifact?
This piece of code works for me:
import com.sap.gateway.ip.core.customdev.util.Message;
def Message processData(Message message) {
def body = message.getBody(java.lang.String) as String;
def messageLog = messageLogFactory.getMessageLog(message);
if(messageLog != null){
messageLog.setStringProperty("Logging#1", "Printing Payload As Attachment")
messageLog.addAttachmentAsString("ResponsePayload1:", body, "text/plain");
}
return message;
}
Regards,
Prasanna
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Make sure you leave the field Script Function blank, as per my earlier screenshot.
User | Count |
---|---|
87 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.