@@ -113,6 +113,13 @@ export class rpa_workflow_node {
113113 var json : string = msg . content . toString ( ) ;
114114 var data = JSON . parse ( json ) ;
115115 result . jwt = data . jwt ;
116+ var correlationId = msg . properties . correlationId ;
117+ if ( correlationId != null && this . messages [ correlationId ] != null ) {
118+ result = this . messages [ correlationId ] ;
119+ if ( data . payload . command == "invokecompleted" || data . payload . command == "invokefailed" || data . payload . command == "invokeaborted" || data . payload . command == "error" ) {
120+ delete this . messages [ correlationId ] ;
121+ }
122+ }
116123
117124 if ( data . payload . command == "invokecompleted" ) {
118125 result . payload = data . payload . data ;
@@ -131,9 +138,15 @@ export class rpa_workflow_node {
131138 NoderedUtil . HandleError ( this , error ) ;
132139 }
133140 }
141+ messages : any [ ] = [ ] ;
134142 async oninput ( msg : any ) {
135143 try {
136144 this . node . status ( { } ) ;
145+ var correlationId = Math . random ( ) . toString ( 36 ) . substr ( 2 , 9 ) ;
146+ this . messages [ correlationId ] = msg ;
147+ if ( msg . payload == null || typeof msg . payload == "string" || typeof msg . payload == "number" ) {
148+ msg . payload = { "data" : msg . payload } ;
149+ }
137150 var rpacommand = {
138151 command : "invoke" ,
139152 workflowid : this . config . workflow ,
@@ -143,7 +156,7 @@ export class rpa_workflow_node {
143156 jwt : msg . jwt ,
144157 payload : rpacommand
145158 }
146- this . con . SendMessage ( JSON . stringify ( data ) , this . config . queue ) ;
159+ this . con . SendMessage ( JSON . stringify ( data ) , this . config . queue , correlationId ) ;
147160 // var data: any = {};
148161 // data.payload = msg.payload;
149162 // data.jwt = msg.jwt;
0 commit comments