Hi,
Do you have any working example how to consume Azure Machine Learning web service on BPMOnline BusinessProcess and Web Service function ?
thanks
Antonius
Like
Hello,
First, you need to set up an integration with Azure Machine Learning web service in the bpmonline. Please, see the documentation - https://academy.bpmonline.com/documents/administration/7-12/integration…
Then you can call the web service via [Call Web Service] process element in your business process - https://academy.bpmonline.com/documents/technic-bpms/7-12/call-web-serv…
Tetiana Markova,
thanks for your reply.
I tried to consume it using as per documentation but have no luck so far.
(1) tried the webservice using Postmand (works)
(2) try using BMOnline with same parameters
2 headers parameters
Key : Authorization
Authorization : Content-Type
1 body parameters
Json path : $
Data Type : text
is Array : No
Value : <copy from Postman raw body>
but it keep replying response 400
{"error":{"code":"BadArgument","message":"Invalid argument provided.","details":[{"code":"InputMismatchError","target":"input1","message":"Input data does not match input port schema."}]}}
how to fixed this ? am I missing something ?
thanks
Dear Antonius,
I don't see where you call the webservice. Perhaps, you didn't set a value to input1 parameter
Hi Antonius,
You should deploy an application on-site, create a web service call and test network via fiddler to see what request is sent to web service. The message you've got means that bpm'online sends a request in a format that differs from that you are expecting. Then you can set up parameters in a such way that will fit to Azure learning standard.
The other option will be creating a script task with calling that webservice from c# code. If you are a developer this is the best way because allows you to do more than built-in web service call.
Peter Vdovukhin,
Hi Peter,
thank you for your comment.
I follow your suggestion by creating a script task.
(1) [in process methods setting menu] add RestSharp name space
(2) [in script task] construct Json to be put in body parameter:
string json = JsonConvert.SerializeObject(data);
(3) [in script task] use RestClient to call web service and adding the necessary parameters
var client = new RestClient("https://xxxxx.xx.azureml.net/workspaces/xxxx/services/xxx/execute?api-version=2.0&format=swagger"); var request = new RestRequest(Method.POST); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Authorization", "Bearer FpIlxxxxxxxxxxxx"); request.AddParameter("undefined", json , ParameterType.RequestBody); IRestResponse response = client.Execute(request);
it works for me.
thanks !