Missing data when inserting numeric data in a repeat

Wappler Version : 1.9.0
Operating System : Windows 10

Expected behavior

Importing a text file where some fields contain no data should not affect other records

Actual behavior

Subsequent records are affected - values which should be inserted are not inserted.

How to reproduce

I have a server action which imports a tab-separated text file into a MySQL database. There are 28 fields, including several numeric fields. In a number of cases fields may not necessarily contain data. To prevent MySQL errors in the case of numeric fields, I add a condition like this:

image

A customer has been using a similar import process on a website for several weeks and I haven’t heard of any problems. The relevant table in this case contains about 6000 records.

I was testing this import on some test data for another customer and was surprised that many records didn’t contain a value in the price field. I checked the data - there was one record from a total of about 500 which didn’t contain a price. I checked the file for anomalies and imported it directly into the database using Navicat - all the data was imported correctly.

It seems that if Wappler comes across a Null value in a numeric field (I’ve tested with float and int), no data from the following rows will be inserted. Here is the same data imported with Wappler (left) and Navicat (right):

image

The relevant part of the server connect action file is:

I would be grateful for any idea. This feature is critical for most sites I develop.

As far as I can see, using conditions in the insert step works - it prevents specific fields being inserted if they fail the condition - but only if a single record is being inserted. Used in a repeat, once the condition is not met, it is applied to subsequent records, whether or not they meet the condition - so valid data is omitted from the insert/import process. I’ve done some more tests and I’m pretty sure it’s a bug.

In the meantime, I’ve got round the problem using a different approach - by using default values rather than conditions. This works fine, but it would be useful to be able to use conditions too.