Quickest way to add test data in a module for a reactive web app

Hi there!

I'm trying to quickly add some test data inside of a module that will be exposed as a test API.

I tried using the bootstrap from excel action, but some of the columns weren't recognized, so I could only import half the data from there.

Then, I tried the 'data grid' application from the forge, but the UI components are traditional web, so it does't work.

What would be the best way to quickly edit multiple rows of data inside of the OutSystems database in order to create this test data?

Thanks in advance!

Marleen

Hi Marleen,

For a entity-by-entity approach I would prefer to bootstrap it using Excel as you did in your first attempt.

Why did some columns not get recognized? Most likely that is easy to fix.

If you have multiple related entities I would prefer to develop and import/export REST api, to upload or download the data into / from the OutSystems database. Than call this from a tool like POSTMAN or SOAPUI.

Note that both approache work good with limited set of data, if you are going to do a full data migration with miljions of records another strategy is required. But I think that is not what you try to achieve.

Regards,

Daniel

To create the JSON structure of the data you want to import you can use online tools like http://www.objgen.com/json?demo=true

Hi Daniël,

Thank you for your quick response!
I think the easiest option would be to add the data entity by entity.

For now, I only need to add very limited sets of data to three entities.

This is a screenshot of my Excel Sheet:

And this is what it looks like when I try to import the data.

What changes should I make to the Excel, so it will import the AllowPublisherAgreement Boolean, and the InformationURL?

Thanks in advance!

Hi,

First of all, do not include Id in your spreadsheet, unless the Id of the Reseller entity has Autonumber set to False.

Regarding the AllowPublisherAgreement boolean value, the only reason I can think of that the attribute of your entity is not of type boolean. I just did a quick test my self and the mapping occured correctly. What I noticed in my excel if I type true and false it is replaced with TRUE and FALSE. Maybe you try that too.

Regarding the InformationURL the mapping does not occur because you don't have an attribute with that name in your entity. The names of the Excel columns need to match the attribute Names. 

Also mostlikely your entity attribute has the default length of 50 characters, which for an url is many times not sufficient, check this and increase the length to for example 255. 

Regards,

Daniel

Hi Daniël,

Thanks for your message!

Indeed, changing my attribute to InformationURL (was Information - I missed that) did the trick for that one. I already had it at 300 characters so that was good.

The AllowPublisherAgreement didn't work though. When I type false and true in Excel, it doesn't change into TRUE and FALSE for me. Changing the text to all caps didn't change things. Must be an Excel thing?


EDIT: Ah GOT IT! Since I'm using a Dutch version of Excel, the True and False are translated.. I had to type 'waar' and 'onwaar'

I'll try to add all the data now - if I run into problems, I will add a response here.
Otherwise, I'll mark it as solved

Hi Daniël,

For the next table (Agreements), I have two references to other tables.

Will I need to create an API in order to add the data to that table?

Thanks in advance!

Solution

It worked - it would've been quicker to make a screen and enter them manually, but oh well.

These were the solutions that eventually worked:

  • Using the (translated) Excel names for 'true' and 'false'
  • Using column names in Excel identical to the attributes
  • Changing the OutSystems Entity foreign keys to 'integers', then bootstrapping the data from Excel, then changing the attributes back to the original foreign keys.

it's not ideal, but it worked.


Solution

Marleen Renders wrote:

It worked - it would've been quicker to make a screen and enter them manually, but oh well.


Good you worked it out.

I tough question if it is quicker to add it manually by a screen.

Think about bootstrapping data to other environements, doing this manually is manual work again.