BookmarkSubscribeRSS Feed
dianevictoriap
Calcite | Level 5

Hello,

 

I am trying to call an RTDM flow on a different server via RESTful call. Please see code below:

 

// @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1')
import groovyx.net.http.Method
import groovyx.net.http.RESTClient
import org.apache.http.entity.StringEntity
import groovyx.net.http.HttpResponseException

class callmpgPortout implements Runnable {
// Input variables
String MSISDN;
Date REQUEST_START_TIME;
String NP_TXN_ID;
String PORT_ID;
String LOG_ID;
String OLO;
String VARIABLE1;
String VARIABLE2;
String VARIABLE3;
String VARIABLE4;
String VARIABLE5;

// Output variables
String MSGCODE;
String MSGDESC;

private Long status;
public void run() {
def client = new RESTClient( 'http://sgbdcmpweb01:7980/RTDM/rest/runtime/decisions' )
def resp = client.post( path : '/mpgPortout' ,
query: [decisionId: 'mpgPortout'],
requestContentType : 'application/json',
body : '{ \n' +
' "clientTimeZone": "GMT",\n' +
' "version": 1,\n' +
' "inputs": {"MSISDN":MSISDN,"REQUEST_START_TIME":REQUEST_START_TIME,"NP_TXN_ID":NP_TXN_ID,"PORT_ID" : PORT_ID,"LOG_ID":LOG_ID,"OLO" : OLO,"VARIABLE1":VARIABLE1,"VARIABLE2":VARIABLE2,"VARIABLE3":VARIABLE3,"VARIABLE4":VARIABLE4,"VARIABLE5":VARIABLE5\n' +
' \t"TestPath" : 1\n' +
' }\n' +
'}'
)
status = resp.status;
}
public Long getStatus() {
return status;
}
}

 

However, I get this error:

 

com.sas.analytics.ph.RTDMException: Failure running user groovy activity
at com.sas.analytics.crm.rtdm.activities.GroovyClassActivity.execute(GroovyClassActivity.java:374)
at com.sas.rtdm.implementation.EventExecutor.execute(EventExecutor.java:243)
at com.sas.rtdm.implementation.TestExecutor.execute(TestExecutor.java:209)
at com.sas.rtdm.implementation.engine.ActivityNode._execute(ActivityNode.java:58)
at com.sas.rtdm.implementation.engine.ActivityNode._execute(ActivityNode.java:18)
at com.sas.rtdm.implementation.engine.SchedulableNode$1.call(SchedulableNode.java:89)
at com.sas.rtdm.implementation.engine.SchedulableNode$1.call(SchedulableNode.java:82)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: groovyx.net.http.HttpResponseException: Not Found
at groovyx.net.http.RESTClient.defaultFailureHandler(RESTClient.java:263)
at sun.reflect.GeneratedMethodAccessor272.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1210)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1077)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019)
at groovy.lang.Closure.call(Closure.java:426)
at groovyx.net.http.HTTPBuilder$1.handleResponse(HTTPBuilder.java:503)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:945)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:919)
at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:515)
at groovyx.net.http.RESTClient.post(RESTClient.java:141)
at groovyx.net.http.RESTClient$post.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at callmpgPortout.run(script15071903301131828657077.groovy:31)
at com.sas.analytics.crm.rtdm.activities.GroovyClassActivity.execute(GroovyClassActivity.java:362)
... 10 more
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.TestExecutor - TestExecutor shutting down.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.EventExecutor - EventExecutor shutting down.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.engine.concurrent.RTDMConcurrentExecutor - RTDMConcurrentExecutor shutting down.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.engine.concurrent.RTDMConcurrentExecutor - RTDMConcurrentExecutor shutdown complete.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.RTDMObjectFactory - RTDMObjectFactory shutting down.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.resource.ResourcePool - ResourcePool sync monitor shutting down.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.resource.ResourcePool - ResourcePool sync monitor shutdown complete.
2017-10-05 15:58:50,302 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.resource.JDBCConnectionPool - JDBCConnectionValidator shutdown flag set.
2017-10-05 15:58:50,338 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.resource.JDBCConnectionPool - Finished closing pool jdbc:sastkts://sgbdcmprtcapp01:24142
2017-10-05 15:58:50,338 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.resource.JDBCConnectionPool - JDBCConnectionPool for Resource $SAS_Activity_Resource shutdown complete.
2017-10-05 15:58:50,338 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.RTDMObjectFactory - RTDMObjectFactory shutdown complete.
2017-10-05 15:58:50,338 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.EventExecutor - EventExecutor shutdown complete.
2017-10-05 15:58:50,338 INFO sasdemo SASDSDesignRepository com.sas.rtdm.implementation.TestExecutor - TestExecutor shutdown complete.

 

Am I missing something?

 

Thanks.

1 REPLY 1
Dmitry_Alergant
Pyrite | Level 9

Hi,

 

First of all, this is a generic Groovy development question, it seems to have little to do with the fact that you are running it from RTDM. You could create a similar script (substituting some input parameters) with the same REST call and run it as a standalone Groovy program, and likely get the same issue.  Naturally, stackoverflow.com would be the place to ask.

 

A number of articles are being googled by "Groovy HttpResponseException Not Found". All point out to the issues in URL and Path formats.

 

Try this advice: https://stackoverflow.com/questions/33387753/groovy-grails-get-httpresponseexception-by-using-httpbu...

 

Would be creating a RESTClient for 'http://sgbdcmpweb01:7980/' URL, and using path 'RTDM/rest/runtime/decisions/mpgPortout' or something like that.

 

 

-------
Dmitriy Alergant, Tier One Analytics
How to improve email deliverability

SAS' Peter Ansbacher shows you how to use the dashboard in SAS Customer Intelligence 360 for better results.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 1 reply
  • 2001 views
  • 0 likes
  • 2 in conversation