I have a requirement to link to an Appian record dashboard (entity-backed) from

I have a requirement to link to an Appian record dashboard (entity-backed) from an external system. I plan to retrieve the Record Opaque ID from the urlforrecord() function in process and write it to an Oracle DB. The external system will use this DB entry to build an intuitive URL for the record dashboard. My question is: 1) will this opaque ID remain unchanged in my environment, even after an engine restart? and 2) will this opaque ID change between environments (Dev, QA, Prod)?...

OriginalPostID-79734

OriginalPostID-79734

  Discussion posts and replies are publicly visible

  • In an Entity based record, you are using the PK of the record to build the dashboard. As long as the ID is the same, your URL will reach you to the correct dashboard - however, unless you have SSO enabled, the user will be presented with a log-in screen.
    With regards to the ID changing or remaining the same, this purely depends on your architecture. If the data is sourced from the same resource (i.e. your external system and Appian pointing to the same underlying DB table, then obviously, it will be the same. However, if you are copying the data from one DB to another, then it depends. If you bring the PK in, then it can remain the same. If you're generating a new PK, then it will almost certainly differ). Hope this helps.
  • Thanks Saytha, that's what I was looking for. I wanted to make sure I could store the Opaque ID and have that be a reliable way to access the record dashboard.
    Originally I thought the PK would be used to generate the record dashboard URL so I was surprised to see an Appian generated string.

    One last question: do you know if that Opaque ID is stored in the Appian-required metadata DB? It'd be great if it was so I didn't have to add another column to my DB. I looked but didn't see it in there.
  • The string you see is the representation of the primary key of the record store. Appian translates the string to the corresponding ID. So, if your OpaqueId is the primary key of the table on which the Record is based, then using URlToRecord(Record_Type, OpaqueId) will get you the URL that'll take you directly to the record (with the above caveat)