cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
jiwanovski
Advocate II
Advocate II

Custom API and Gallery

Hi everybody,

I have setup a custom connector. This connector have to different actions: One GET and one POST.

When I test the connector itself, it looks ok. For example I get this as response from GET:

{

"@odata.context": "ODataUrl",
"value": [
{
"@odata.etag": "W/\"JzM2O3VoTUFBQUo3LzBzQVZBQXdBREFBTUFBeEFESUFPQUFBQUFBQTc7Nzk3OTU4NDA7Jw==\"",
"ID": "afa4e204-3917-43d8-bd68-00e5d4513248",
"No": "000001",
"Name": "Mister Test"
},
{
"@odata.etag": "W/\"JzM2O3VoTUFBQUo3LzBzQVZBQXdBREFBTUFBd0FEQUFNZ0FBQUFBQTc7Nzk1NjI1NjA7Jw==\"",
"ID": "9f8e532f-bcfc-42a2-8760-01e7d63531dc",
"No": "000002",
"Name": "Miss Test"
}

}

 

Now I want to use this in a gallery. But actual I cannot add my custom connector as source of my gallery.

Can anyone help? Do I have to change anything in my custom connector?

 

When I try to trigger just my POST Action (it is also working when I test my custom connector itself) I receive an http 404 error. My custom connector has a basic authentication. 

11 REPLIES 11
yukonn
Advocate III
Advocate III

Hi @jiwanovski,

 

I'm not sure how you add CustomApi to gallery. Could you try to use below sample.

 

Inside gallery "Items" property.

 

YourCustomAPI.GetOperationId().value

 

CustomApi GetOperationId with parameter

YourCustomAPI.GetOperationId({'$select':"Name"}).value

Or

Inside OnVisible of Screen

 

ClearCollect(ScrName_Coll_Name,YourCustomAPI.GetOperationId().value)

CustomApi GetOperationId with parameter

ClearCollect(ScrName_Coll_Name,YourCustomAPI.GetOperationId({'$select':"Name"}).value)

Use ScrName_Coll_Name inside gallery "Items" property.

 

Regards,

 

 

@yukonn

Thanks for your help. 

When I try to use the ".value" I receive the message that . is not supported there...

 

Any idea for this?

hi @jiwanovski,

 

Is it possible to share the swagger information at here?

 

Regards,

 

seadude
Memorable Member
Memorable Member

Hi there @jiwanovski.

  • Where are you testing the GET and POST? In the custom connector "test" area or in Postman/another tool?
  • Generally, I like my responses to be neat and as "un-nested" as possible. You may want to format your response a bit to make things easier.
  • After that, Collect or ClearCollect(colMyPOSTResponse, api.call({everything:"yes", indeed: "everything"}))
  • Once your response is in a collection, its very easy to add it to the Gallery Items property

Hope this helps!

v-xida-msft
Community Support
Community Support

Hi @jiwanovski,

Could you please share a bit more about the formula within the Items property of the Gallery control?

Could you please share a more details about the OpenAPI definition file of your custom connector?

Further, could you please share more details about the error message within your app?

I agree with @yukonn's thought almost. If you have defined the response type within your OpenAPI definition file as a object, you could use the following formula to reference the "value" property:

YourCustomAPI.GetOperationID().value

Please check if you have defined proper Response Type within your OpenAPI definition file.

In addition, please share more details about the result the YourCustomAPI.GetOperationID() formula returned. You could consider take a try to save the result the YourCustomAPI.GetOperationID() formula returned into a Collection, and share the data structure of this Collection to me.

The standard OpenAPI definition file structure as below:

https://procsi.blob.core.windows.net/docs/SentimentDemo.openapi_definition.json

More details about customizing a connector within PowerApps, please check the following article:

https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/register-custom-api

 

Best regards,

Kris

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi everbody,

thank you for your information! @seadude @yukonn@v-xida-msft

As information:

- I testet in Postman and in test sector of custom connector and there I received no error.

- I could not change the main part of the response. In this context we use Microsoft Dynamics NAV API features. So the basic format is defined by Microsoft itself. In PowerApps we cannot use the standard Dynamics NAV Connector because we cannot Post any actions there. With the Dynamics NAV API features we can do this. And this is "just" an ODATA web service.. So we should be able to use a custom connector 🙂

 

I have made a small process on my issue. Right now I can select the .value in my PowerApp.

I think the fault was, that I haven't added the response 200. 

Right now I still have the problem, that I receive a 404 error when I click on a button of my PowerApp which uses a action of the custom connector.

 

The Button has the following OnSelect Value: TestBiblioView.GerContacts("application/json").value

 

Here is the swagger information 

{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "TestBiblioView",
"description": "TestBiblioView"
},
"host": "biblioview.XXXX.com:1234",
"basePath": "/",
"schemes": [
"https"
],
"consumes": [],
"produces": [
"application/json"
],
"paths": {
"/URL/BiblioViewContacts": {
"get": {
"summary": "GerContacts",
"description": "GerContacts",
"operationId": "GerContacts",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"type": "string",
"default": " application/json",
"description": "Content-Type"
}
],
"responses": {
"200": {
"description": "200",
"schema": {
"type": "object",
"properties": {
"@odata.context": {
"type": "string",
"description": "@odata.context"
},
"value": {
"type": "array",
"items": {
"type": "object",
"properties": {
"@odata.etag": {
"type": "string",
"description": "@odata.etag"
},
"ID": {
"type": "string",
"description": "ID"
},
"No": {
"type": "string",
"description": "No"
},
"Name": {
"type": "string",
"description": "Name"
}
}
},
"description": "value"
}
}
}
}
}
}
},
"/url/Microsoft.NAV.DoTest": {
"post": {
"summary": "PostTest",
"description": "PostTest",
"operationId": "PostTest",
"parameters": [
{
"name": "Content-Type",
"in": "header",
"required": true,
"type": "string",
"default": " application/json",
"description": "Content-Type"
},
{
"name": "body",
"in": "body",
"schema": {
"type": "string"
},
"required": true
}
],
"responses": {
"200": {
"description": "200",
"schema": {
"type": "string"
}
}
}
}
},
"/url/BiblioViewContacts(afa4e204-3917-43d8-bd68-00e5d4513248)": {
"get": {
"summary": "ShowSingleContact",
"description": "ShowSingleContact",
"operationId": "ShowSingleContact",
"parameters": [],
"responses": {
"200": {
"description": "200",
"schema": {
"type": "object",
"properties": {
"@odata.context": {
"type": "string",
"description": "@odata.context"
},
"@odata.etag": {
"type": "string",
"description": "@odata.etag"
},
"ID": {
"type": "string",
"description": "ID"
},
"No": {
"type": "string",
"description": "No"
},
"Name": {
"type": "string",
"description": "Name"
}
}
}
}
}
}
}
},
"definitions": {},
"parameters": {},
"responses": {},
"securityDefinitions": {
"basic_auth": {
"type": "basic"
}
},
"security": [],
"tags": []
}

 

 

The error message in PowerApps is:

Error "TestBiblioView.GerContacts": { "statusCode": 404, "message": "Resource not found" }

Hi @jiwanovski,

 

Which navision version are you using? Navision 2018 and BC only support the API. The rest does not support the API. Standard Connector does not support post/put from powerapp but you can use with flow to do the action (post/put).

Anyway can you access your odata/api service from out side of your office/client network?

 

Regards,

Yukon

v-xida-msft
Community Support
Community Support

Hi @jiwanovski,

The URL Path is case sensitive within OpenAPI definition file. Please check if you have provided/typed proper URL path for the specific Action (on your side, it is GerContacts) that you defined within your OpenAPI definition file:10.JPG

 

 

Best regards,

Kris

Community Support Team _ Kris Dai
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
PA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Power Query PA Forum 768x460.png

Check it out!

Did you know that you can visit the Power Query Forum in Power BI and now Power Apps

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

PowerPlatform 768x460.png

Microsoft Learn

Check out our new Discover Your Career Path blog post series and get all the details.

Users online (1,296)