51
Views
12
Comments
[Excel_Library] Excel Library actions are too slow to use
Question
Excel_Library
Forge asset by OutSystems Labs

Hello,

We're migrating some apps to ODC, but we hit a wall with excel importing.

A single cell_read takes anywhere between 20-100ms, which makes an import that took barely a few seconds in O11 take several minutes in ODC. With cell_writes we were able to consolidate all writes into a single (huge) one, but there's no such option with cell_read. Just the excel problem alone is making me question the viability of ODC. And switching to a timer is a whole different can of worms that I'd like to avoid.

My question is, should I expect things to change? Will Excel receive actual support from Outsystems? Will the implementation of the library change? Or do we have to explain to our customers that excel imports now take 20x time in the brand new platform that we're trying to sell them?

2023-03-29 03-08-52
Andreas Eko
Staff

Hi Mehmet,

We will have read with range parameter, to accomodate this one. We will release after finish testing the new feature. 

Thank for your feedback

2023-03-29 03-08-52
Andreas Eko
Staff

Hi Mehmet,


A new version has been released to accommodate the feedback.

Thank You

2024-09-24_17-10-25.png
UserImage.jpg
Mehmet Taha Aydin

That's nice to hear, I'll try it out. Thank you.

UserImage.jpg
Mehmet Taha Aydin

Hello again,

Could the new Range_cellread action by any chance be ignoring the endcellcolumn variable and take endcellrow value for both row and column? After quite a lot of testing that seems to be the case.

Also as unrelated feedback, the action seems to be skipping empty cells, which makes predicting where each cell is on the returned value list difficult. What I think would be best is make the return into a list of rows, with each row as a list of values, and have an input parameter for whether empty cells should be skipped.

2023-03-29 03-08-52
Andreas Eko
Staff

Can you give me the example? Just want to make it more clear. 

Thank You

UserImage.jpg
Mehmet Taha Aydin

Here I'm trying to load in 15 rows x 5 columns, but as you can clearly see the action returns 225(15*15) cells, and goes to the second row at the 16th element, meaning it read 15 columns. I initially thought it was reading up to the last column regardless of end column, but no this file has more columns, the only explanation that I can see is that the end row number is also the end column. Feel free to let me know if I'm doing something wrong.



2023-03-29 03-08-52
Andreas Eko
Staff

I'm trying to test your requirements, and the result is expected. 

Can you share your Excel file?






Thank You

UserImage.jpg
Mehmet Taha Aydin

You are reading 5 columns because you only have 5 columns. Try having a 100 rows x 20 columns excel and try reading 15 rows x 5 columns that way.

2023-03-29 03-08-52
Andreas Eko
Staff

Thank you for the feedback @Mehmet Taha Aydin 

New version is release for this bug fix.

Let me know if any issue for this function. 


Regards,

Andreas

UserImage.jpg
Mehmet Taha Aydin

Thank you for the quick fix. 

Any opinion about my other suggestions? Making the result a list of rows that are a list of cells, and making ignoring empty cells an option instead of the default. In its current state it's really hard to predict where each cell will be on the result, especially when the cells may or may not be empty.

2023-03-29 03-08-52
Andreas Eko
Staff

Hi @Mehmet Taha Aydin 

Agree, ignoring empty cells make as an option.

If I change the list from list of row become cell, then it will be breaking changes for someone that already implement this fuctions.

The easy way to access the list (output) is using Cell Name. 

I'm open for any tought about this one.


Regards,

Andreas


UserImage.jpg
Mehmet Taha Aydin

For a function that was just implemented last week and didn't work as intended until yesterday, I think breaking changes isn't much of a concern. But it's usable with name or cell row-column especially when empty cells aren't ignored. It's up to you to decide which way is best. 


Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.