Read csv data file

Hello,

I would like to ask regarding reading excel CSV files.
Basically we have raw data csv files and would like tulip to read my csv file and store the data into the tulip table. (from the tulip side, I will create variable, table etc. the name will be exactly same from my csv file. eg, Model, Time, Value 01, Value 02 etc etc.)
Just want to store that csv files data into tulip variable and shows it on tulip table.
Is this feature possible to do at the moment using tulip?

this will be my csv file
image
and upload csv data into tulip table
image

Thanks

Hey @MTT-

You can certainly do this from the table’s page (see guide here), which might fit the bill for your needs.

A couple limitations:

  1. The table needs to be created and needs to have columns added to correspond to your csv columns, they cant be automatically created on import.
  2. Thought this approach, there isnt a way to automatically do this importing on a specific cadence (every 6hr go pull data from my csv)
  3. This can’t be done directly from a Tulip app.

The approach when 1 of these 3 things is a blocker is to use the Tulip tables API, this allows you to push data into tables from any other system that supports Rest APIs. I used this approach extensivly as a Tulip customer from Python to populate a table with tons of data from a csv file. More information on the APi is here, and example python code snippets to hit the Tulip Tables api is available here

Pete

Note:The above linked code hasn’t gone through the standard code review process, so use it with caution.

Good day @Pete_Hartnett,

Thanks a lot for the information. I have tried using the method which allow me to upload the .csv file through table page and I’m able to do it.

As you mentioned, there is a limitation which I cannot be upload from tulip app.
I’m a little bit confused on using the API.

For my case, my .csv file will be from PC only (so do i still need to use API?)
I just want operator to upload that csv file through tulip app (because I believe operator won’t be able to access table page, so only way for them is to use tulip app) .
For the above case do I still need to use API? if API is the only option, is there any video that I can refer to? thanks

Hey @MTT -

A little more context around API’s-

API’s are just a door we expose for external systems to read or write data to/from Tulip. The code I linked is just some example code where I am going through that door with Python (which is a pretty universal programming language)

Now onto your usecase -

Right now this isnt possible directly from a Tulip app, but there is a bunch of work going on in the platform right now that is the precursor to being able to enable this functionality. To achieve this there are 2 main blockers I see:

  1. A file type variable for your file to be stored in
  2. A mechanism to parse this data into a table. This would be possible with Custom Widgets, but without 1, we can’t build 2.

We are moving towards completing 1, which will enable 2, but I can’t commit to a date just yet for its completion.

Pete

Hey @Pete_Hartnett ,

Thanks for the replies, guess I have to use the function of uploading the csv file through tables at the moment

Hey @Pete_Hartnett ,

Would like to check with you, can this method work for my case?

Thanks.

Hey @MTT -

This could totally work, I am unsure of a mechanism to upload a csv automatically to O365 sheets, but any data there could be accessed by Tulip. Same goes with Google Sheets, or any other platform that exposes API endpoints (sans a few very odd APIs that connectors can’t currently hit).

Pete

@Pete_Hartnett Now that #1 is a live function, has anyone created a Custom Widget to solve #2?

Hey @jboyle -

Thanks for your patience! this one slipped through last week.

Dug into this a bit this morning and ran into a technical limitation that we have already written into a ticket. In short, app files are stored in a S3 bucket, but these files are private, so they need to be signed to be accessible in a custom widget. There is a request in flight to make this possible, but it isn’t just yet.

Pete

I’m trying to think about a few work around here, at least for “not huge” csv files…

Here’s my questions:

  1. What is the maximum number of characters that can fit in a text variable?
  2. Is there a way to utilize RegEx to parse pasted in data to separate it into “lines”?
  3. Can the data be turned into an array type that I could pop to create individual records?

EDIT: My interest is planners would like to upload their orders into Tulip rather than have to scan all the needed barcodes on every order individually as a stop gap until we can integrate with SAP when we upgrade to 4/HANA next year.

It’s definitely possible to parse csv text. The trigger to know here is this one–

If you are comfortable with looping, you can hypothetically do this same process for each line of the csv file to parse records into a table or into a local object variable.

Might be some details I am glazing over but it’s possible. Just ugly.

1 Like