Hello,
I need to build several Web API's that, besides doing their main purpose, register in the database the parameters received and the date & time that the call occurred (basically, a customized log). I've started by creating the web API's with their main purpose and then, in the same web API, to use the a!startprocess or a!writetodatastoreentity(), bu it doesn't work.
I've tried to isolate the problem and came to two main bottlenecks:
1) Can I call a smart service in web API's of the method GET?
2) Even if the method is post, is it possible, for example, to start a process AND write the data store entity in the same Web API?
Is there a way to do this?
Thank you
Discussion posts and replies are publicly visible
Hi susanan0001 as per my understanding, you need to change your implementation approach a bit. Instead of calling two smart service functions together, (while working with POST/PUT/DELETE but not GET API methods) try calling a!startprocess() which will trigger the target process model, pass necessary information as it's parameter and persist the data into the DB using Write to Data Store Entity Smart Service and then call the actual process, which you were trying to invoke. Hope this will help.
Yes we can call write the data store entity and start a process one in another in the Web API something like below a!writeToDataStoreEntity( dataStoreEntity: cons!DSE_NAME, valueToStore: local!constructRequest, onSuccess: a!startProcess( processModel: cons!PM_NAME, processParameters: { inputJason: a!toJson({ aa: fv!storedValues }) }, onSuccess: a!httpResponse( statusCode: 200, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson({ aa: fv!storedValues, bb: fv!processInfo }) ), onError: a!httpResponse( statusCode: 500, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson( { error: "There was an error starting the process" } ) ) ), onError: a!httpResponse( statusCode: 500, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson( { error: "There was an error writing to the data store" } ) ) )
a!writeToDataStoreEntity( dataStoreEntity: cons!DSE_NAME, valueToStore: local!constructRequest, onSuccess: a!startProcess( processModel: cons!PM_NAME, processParameters: { inputJason: a!toJson({ aa: fv!storedValues }) }, onSuccess: a!httpResponse( statusCode: 200, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson({ aa: fv!storedValues, bb: fv!processInfo }) ), onError: a!httpResponse( statusCode: 500, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson( { error: "There was an error starting the process" } ) ) ), onError: a!httpResponse( statusCode: 500, headers: { a!httpHeader( name: "Content-Type", value: "application/json" ) }, body: a!toJson( { error: "There was an error writing to the data store" } ) ) )