When using a “Create Object” Action, is it possible to configure an incrementing primary key? That is, each new objects primary key is the most recently created object's primary key +1.
Possible to have a Create Object Action with an auto-incrementing primary key?
432 Views Asked by kevpl541991 At
1
There are 1 best solutions below
Related Questions in PALANTIR-FOUNDRY
- Has the hubble:icon Type Class been deprecated?
- Quiver pivot table from linked Object sets
- Manipulate GeoJSON Data via Typescript Function in Palantir Foundry
- Rest API: Is there any endpoint that provides dataset lineage info?
- Create charts in workshop based on two objects
- Using a Code Repo to call a Webhook created in Palantir Foundry
- How do you manage static data in Palantir Foundry?
- How do I get values from Palantir Foundry Workshop app into a PDF?
- What object types are avaliable for export on <hostname>/phonograph2-export/api/?
- Run Docker Containers on an Existing Kubernetes Cluster on Palantir Foundry
- Delete all rows with duplicate values in column in Palantir Foundry Countor
- Use of ngraph.path library in Palantir - Foundry
- Generate PDF files using transforms api in code repositories and save to foundry
- Palantir Foundry - Making http request and capturing JSON response
- How to publish a Spark ML pyspark.ml.PipelineModel object in code repositories?
Related Questions in FOUNDRY-ACTIONS
- Derived field in object types
- How can I apply an Action to more than one object in a Workshop table?
- Why can I not select my action as an inline action?
- Is there a way to set an object property to a relative time in the future in a Palantir Foundry Action?
- Can I send Action Notifications to non-Foundry users?
- How do I send notifications depending on different conditions via Foundry Actions?
- How can I enforce constraints on dates in action forms?
- How do you store user email or username instead of RID in action types?
- How can I configure an action that creates a variable number of objects?
- How can I prompt a user to confirm before submitting an Action?
- Is it possible to set an Actions submission criteria that prevents submission if an object has more than a certain number of linked objects?
- Is it possible to set an Actions Submission Criteria that prevents submission if an array parameter is empty?
- How do I update an array property in a Palantir Foundry Ontology edit Function?
- How do I configure an Action to record the current timestamp or current user?
- How can I use an Action parameter to set a property value to null?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
It is possible to configure an incrementing number based on the current highest value found in existing objects. However, I would not recommend using an incrementing integer as your primary key for the object.
Generating an auto-incrementing integer
There are two approaches to generating an auto-incrementing number. Both involve writing a custom Function to create the object within the Action. Within the Function, you can either:
This is a useful pattern to leverage in many workflows, such as ticketing applications.
Choosing a Primary Key
As a best practice, primary keys should not be coupled to semantically meaningful information about an object. Your primary key should not contain information that is relevant to user workflows. For example, in a ticketing workflow, ticket number formats may change. Updating the value of primary keys is an unnecessary amount of work, while updating the value of a typical string or integer column is feasible.
Therefore, it's recommended that primary keys are uniquely generated UUIDs stored in string columns (ex:
ticket_id), while auto-incrementing numbers are stored in column(s) named after what the number represents (ex:ticket_number).Generating a UUID
The best practice for generating primary keys when creating new objects via Actions is to create a UUID String.
When using the Create Object rule inside of an Action, you can specify the typeclass
actions::generate_uuidon the parameter to generate a random UUID every time the Action is submitted.To do this inside of a Function-backed Action, you can follow the Functions documentation on adding a dependency. For uuid package, this means adding the following to your package.json:
If you use newer versions of the uuid package it will fail to execute in Functions because of a feature removed in the library here.
After doing this, make sure to click the small banner in the package.json editor window that allows you to get packages from public npm. By default this is disabled.
Then in your code you can add something like: