cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Power Apps
Power Apps

Re: The property expects Table values, but this rule produces incompatible Boolean values

Hey ExCessna,

 

Good job trying to get it right. It can be tricky to understand Swagger and JSON Schema.

 

Given the values in your 'schema' property it looks like the schema is not matching your response. Try using a json schema generator. Perhaps: http://jsonschema.net/previous/

You can paste an example of your response and it'll spit out a roughly correct schema for you.

 

It looks like your root response is an object, not an array. Also, you have the array's 'items' property having a 'type' of 'string'.

 

I think you just need to change line 36 to be: type: "object" and remove the surrounding schema (lines 34-35).

ExCessna Resolver I
Resolver I

Re: The property expects Table values, but this rule produces incompatible Boolean values

Still unsuccessful. First made the changes to 34-36 described above. This resulted in a message similar to but different than the previous message:

000-Error-Required property type is not present or not a string at definitions.png

The response in the Swagger Editor is successful and still returns the data I'm trying to get. I just can't get a successful connection established in PowerApps.

I also tried copying and pasting the response in the Swagger editor into the Input of JASONSchema.net. It is nearly the same except that it lists the properties of the items in alphabetical order. Is there something I should be looking for here?

 

Is there something unusual about the particular API I'm trying to connect to? Would the problem stem from the authorization method where the api_key is part of the path? Is this even allowed by the current PowerApps version?

 

When you say "the schema is not matching your response", should they both list the properties in the same order? It always seems they are in a different order. Or does the order of the properties not make a difference, just the names and types of properties?

 

I will keep trying various versions made with the JASONSchema.net output. 

Power Apps
Power Apps

Re: The property expects Table values, but this rule produces incompatible Boolean values

 

The order of properties does not make a difference. Only their names and types matter.

Unfortunately I cannot paste formatted content here, but can you please try the following 200 response (below):

 

(this is assuming that author_data and subject_ids are both arrays of objects, but it does not declare the schema of those objects, since the schema is not obvious from the sample response you included). 

 

"200": {

"description": "Successful Operation",
"schema": {
"type": "object",
"properties": {
"index_searched": {
"type": "string"
},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title_long": {
"type": "string"
},
"author_data": {
"type": "array",
"items": {
"type": "object"
}
},
"summary": {
"type": "string"
},
"physical_description_text": {
"type": "string"
},
"publisher_text": {
"type": "string"
},
"urls_text": {
"type": "string"
},
"publisher_name": {
"type": "string"
},
"publisher_id": {
"type": "string"
},
"language": {
"type": "string"
},
"title_latin": {
"type": "string"
},
"edition_info": {
"type": "string"
},
"dewey_decimal": {
"type": "string"
},
"isbn10": {
"type": "string"
},
"title": {
"type": "string"
},
"lcc_number": {
"type": "string"
},
"dewey_normal": {
"type": "string"
},
"marc_enc_level": {
"type": "string"
},
"notes": {
"type": "string"
},
"book_id": {
"type": "string"
},
"awards_text": {
"type": "string"
},
"isbn13": {
"type": "string"
},
"subject_ids": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
}
},

Radu Gruian [MSFT] ** PowerApps Staff

View solution in original post

ExCessna Resolver I
Resolver I

Re: The property expects Table values, but this rule produces incompatible Boolean values

Radu,

Thank you, thank you! I am able to make the connection at last! I cut and pasted the JSON file together using VS. Previously, I was trying to use the "Swagger JSON" from the "Generate Client" tab in the Swagger Editor. Is this the wrong thing to do? I am not sure why this didn't work...any ideas? Is it better to deal with a JSON file instead of YAML in the Swagger editor? What would you recommend for a beginner?

Much thanks to the PA Team for your help and not giving up despite my vague understanding of all of this. I have learned a lot in this process and hopefully am on the road to learning quite a bit more.

hpkeong Community Champion
Community Champion

Re: The property expects Table values, but this rule produces incompatible Boolean values

Hi

 

Question(2):

Since you want to return only the first record found (not a table), then I would suggest you to change to:

- LookUp and place in a TextBox.

(Both Filter and Search table that contains the same columns as the original table and the records that match the criteria.)

 

However, if to list out in Gallery with the ONLY matching record, use

Filter inside your items.

 

Question(3):

Scanning issues. 

I have also reported on the first day of BarCode scanning release in PowerApps Idea and others but yet to receive any reply on this, too. Hope PG can look into this.

hpkeong
Power Apps
Power Apps

Re: The property expects Table values, but this rule produces incompatible Boolean values

Fantastic! Glad to hear.

Radu Gruian [MSFT] ** PowerApps Staff
ExCessna Resolver I
Resolver I

Re: The property expects Table values, but this rule produces incompatible Boolean values

OK! Now I'm able to generate valid connectors for the API (and probably for other APIs as well). For those future users who might be interested, much of the problem stems from using the "Generate Client", "Swagger JSON" output of the Swagger Editor and assumed it was valid JSON to upload into the PA Add Connection feature. It is NOT and I could not get the "Download JSON" feature in the editor to do anything (something else I don't understand). But if the Swagger YAML is pasted into an online YAML to JSON converter, a PA friendly JSON results.

 

So now another problem with this particular API surfaced:

1. The API wants an ISBN passed to it within a function. So the Data Source is currently "BookByISBN.GetISBNSearch(ISBN needed here), where "ISBN needed here" is a text string.

2. Unfortunately, as hpkeong has pointed out, the data source returns a single record, not a table. The Filter function and the LookUp functions are both designed to work with tables to "find" a single record, from what I understand, and I have not been able to use them successfully with either a Text Box or a Gallery. Errors were returned indicating it was looking for a table to be returned but incompatible record values are returned.

3. The Display Form has been successful in at least acting like PA is trying to retrieve the response. The following statement allows selection of the columns in the data source

BookByISBN.GetISBNSearch(Scanned_ISBN).data.title".  The "data.title" extension should not be there, but it does seem to indicate that PA is working with the API connection.  (see screen print below)

000-400 Error.png400 Bad Request Error

"Scanned_ISBN.Text" is the ISBN number in a Text Box. The error message is "The service returned an error: BookByISBN!GetISBNSearch: 400 Request Header or Cookie Too Large 400 Bad Request  Request Header or Cookie Too Large nginx 1.6.1" 

An Internet search indicates the solution if this is returned on a web page is usually to clear the browser cache and try again. What causes this in PowerApps? How can I fix it?

Power Apps
Power Apps

Re: The property expects Table values, but this rule produces incompatible Boolean values

 

Is Scanned_ISBN a text input control? If so, what you are passing into the function seems correct (Scanned_ISBN.Text), so the request should go through successfully.

 

If you have Fiddler installed, it would be great if you could capture a trace of that single call (what request is issued, and what the response is). We may be able to understand the problem by looking at that trace.

 

Also if you have the ability to watch what happens on the service side (if you own the service) -- e.g. via logs, telemetry, or debugging, that would also be helpful in tracking down the issue.

 

Basically at this point it seems like you are doing the correct thing on the PowerAps side, however either the request is malformed, or the service is unprepared to deal with one or more constructs folded in that request.

 

Radu Gruian [MSFT] ** PowerApps Staff
ExCessna Resolver I
Resolver I

Re: The property expects Table values, but this rule produces incompatible Boolean values

Radu,

Yes, I have an Input Text box capturing the EAN barcode scan or a manual entry of the ISBN. I have tried passing both Scanned_ISBN and Scanned_ISBN.Text in the function and get the "Bad request" error message with both.

 

I don't own the service, so that option is out.

 

I'm not familiar with what you mean by " the service is unprepared to deal with one or more constructs folded in that request" but would it have anything to do with the "author_data" array and/or the "subject_ids" array whose schema I don't yet know?

 

I have installed Fiddler and am now trying to figure out how to use it. Browsing to new sites with Edge results in "Can't connect to the proxy server" message and indicates I need to change something in the Proxy Settings. Chrome continues to work, so I'm able to send you this message. So far, I created a Loopback Exemption for PowerApps and placed the Fiddler Root Certificate in the machine's Trusted Root store, as described here.

 

I don't know whether the following is a trace or just a log file of http requests and responses, but here is a screen capture of what was logged when I clicked on "BookByISBN.GetISBNSearch(Scanned_ISBN.Text).data.title" when recreating the error. This time, I got the following error...slightly different..."The service returned an error: BookByISBN!GetISBNSearch: { "statusCode": 404, "message": "Resource not found" }.

000-Fiddler log 1c.png

If this is not what you've mentioned above, please let me know how to capture it and I will. Thank you!

ExCessna Resolver I
Resolver I

Re: The property expects Table values, but this rule produces incompatible Boolean values

Whoops! I realized I hadn't scanned a barcode, so here is the result:

000-Fiddler log 1d.png

The error message is the one originally described, not the one described in the previous post.

Helpful resources

Announcements
MBAS Gallery 2020

MBAS Gallery 2020

Watch Microsoft Business Applications Summit sessions on-demand.

firstImage

New Ranks and Rank Icons released on April 21!

The time has come: We are finally able to share more details on the brand-new ranks coming to the Power Apps Community!

Top Solution Authors
Top Kudoed Authors
Users online (6,670)