cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - New to the community? Learn how to post a question and get help from PTC and industry experts! X

Auto increment ID key Datatable from Mashup

tenegabi
12-Amethyst

Auto increment ID key Datatable from Mashup

Hello,

I want to add information from Mashup and I want to have an ID incremental from Mashup that is start from 1.

I try to find something but anything use some service. I have some services already and I don't want to do this incremental from service, I want to do it from Mashup.

 

Thank you.

10 REPLIES 10
Bikash_Panda
13-Aquamarine
(To:tenegabi)

@tenegabi  WIll GUID work for your requirement ?

Hello @Bikash_Panda ,

I don't know what to tell you, I have try already but it create this type of input: 9beb3c03-0af8-4642-82fa-1114dda72e10
I want to create only number and start from 1, it is simple to identify by users and by me. 

Thank you for the answer

Bikash_Panda
13-Aquamarine
(To:tenegabi)

In that case, you may take a look at,

https://github.com/carlescm/ThingWorxConcurrencyExtension

 

This will help you generate unique number, but each time it will increment the value. So if you increment the value and dont insert to datatable, then your values will not be consecutives though.

I am not able to download any Extension, the Policy of the company, so I need to use the Thingworx standard version. 

Bikash_Panda
13-Aquamarine
(To:tenegabi)

Then store the number in a property, persist it, increment it each time and insert to DataTable But you may have issues when mutiple users try to use that at the same time. You might get duplicate, need to test though

In this case is same like service, and is not helpful at all. That I don't want to do it. Because I have a lot of Things and services connected to Mashup and if exist something by default. I can use service, because I have already created. 

Not sure what you're trying to do and why it is a problem to call a service. Mashups are executed on the client machine, so there is no way to create a unique ID client side when you have multiple people access the mashup. How should the different clients know what the others are doing?

Services are executed server-side and they can coordinate this. You have to call a service anyway to update the information you added, so why not letting this service take care of it?

tenegabi
12-Amethyst
(To:Rocko)

I have expected to have already by default in Mashup.
I don't want to use the service because in Mashup, even if are more than 1 user already when the button is pressed ( for add new row ) can have a trigger that bring last ID number and add next one. Like GUID, but I want to know the numbers because I want to make another service that delete the data from Datatable if I have more than 100000 registration. 

 

Thank you. 

Use GUIDs and add timestamps to your data. Delete data based on the timestamp, e.g. "everything older than 1 month". Also, it looks like Streams would be a good storage mechanism for that -- they are keyed and timestamped by default.

 

It would help if you explain the use case you are trying to implement.

 

/ Constantine

mstarnaud
15-Moonstone
(To:tenegabi)

Hi Tenegabi.

 

I'm guessing the data will go in a DataTable entity? If that's the case I'm not sure what the best way would be, What I would do is on the Add service's Thing, I would put a property (like LastCreatedId) of type number and persistent, add every time the service adds a record I would look at that value and add 1. But I'm not sure it would be robust against odd scenarios, like concurrency.

 

If the data is stored in a database, there's a much easier way to do it. You can give the Identity setting to a column, this will do it automatically for you. Here's how you can set it with the wizard in MSSQL : 

mstarnaud_0-1732112926630.png

 

Announcements


Top Tags