Some PDIs are currently unavailable, and PDI actions are paused. View the latest updates here. Read More

Record Producer variable label change - How to preserve old question text for historical submissions

akhil makineni1
Tera Contributor

Hi Experts,

 

I have a Record Producer with a variable:

Question: What is your C Name?
Variable Name: c_name

 

Users have already submitted many records using this Record Producer.

Now the business wants to change the question label to:

 

What is Your Colleague Name?

 

My requirement is:

  • Existing submitted records should continue displaying:   What is your C Name?

  • New submissions should display: 

     

      What is Your Colleague Name?

I would like to know:

  1. Does ServiceNow store the question label historically at submission time, or does it always reference the current variable definition?
  2. Is there any OOTB mechanism to preserve the original variable label for previously submitted records?
  3. What is the recommended approach-creating a new variable, storing question labels in a custom table, or another design pattern?

Any best-practice recommendations would be appreciated.

4 REPLIES 4

Shiny-Syslabo
Tera Expert

まず、変数のラベル名を変更すると、履歴レコードの表示も変わります。

レコードプロデューサーの基本的な仕組みは、入力内容をマッピングしてターゲットテーブルにレコードを生成するように設計されたシンプルな入力インターフェースです。動的なウィンドウとして機能するため、質問文やデザインを変更すると、過去と現在のすべてのレコードの表示がまとめて更新されます。

優れた回避策は、既存のレコードプロデューサーをコピーして新しいバージョンを作成することです。

  1. 古いレコードプロデューサーを無効化(設定Active = false)して、ユーザーがそれを通して送信できないようにします。履歴レコードは引き続き古い変数を参照し、元の「あなたのCネームは何ですか?」というテキストを保持します。

  2. 更新されたラベル(「あなたの同僚の名前は何ですか?」)を使用して、新しいレコードプロデューサーを展開します。

バックエンドのデータ管理の観点から見ると、ターゲットテーブルは入力フォームの数を気にしないため、これは安全かつ効果的なアプローチと言えます。

Siddhesh Jadhav
Kilo Sage

Hi @akhil makineni1 ,

 

By default, ServiceNow does not preserve the variable label (question text) historically. The submitted value is stored, but the displayed question label is typically retrieved from the current variable definition.

To answer your questions:

  1. Does ServiceNow store the question label at submission time?

    • No. OOTB, ServiceNow stores the variable value, but the question text is generally referenced from the current variable definition. If you change the variable label, previously submitted records will also display the updated label.

  2. Is there an OOTB mechanism to preserve the original label for historical records?

    • No. There isn't an out-of-the-box feature that snapshots the variable label at the time of submission.

  3. What is the recommended approach?

    • If maintaining historical accuracy is important, the recommended approach is to create a new variable with the new label (for example, colleague_name) while retaining the existing variable (c_name) for historical records. This ensures that old submissions continue to display the original question, while new submissions use the updated label.

    • Alternatively, if you must reuse the same variable, you would need a custom solution (such as storing the question label at submission time in a custom field or table), but this is not an OOTB capability.

Using a new variable is generally considered the safest and most maintainable approach, especially when reporting and historical record integrity are important.

 

Thanks,
Siddhesh Jadhav

 

If this answers your question, please mark this response as Helpful and Accepted so it can help others facing the same issue.

Thanks for the response @Siddhesh Jadhav 
I agree with your points, it can be good option if only question needs to update.
Here, i just posted only one example.
But here we have nearly 300 questions on my record producer, and changes may come very frequently to update the questions.

BTW, Any idea about Smart Assessment Engine, is that feature(Versioning) available ?

Ankur Bawiskar
Tera Patron

@akhil makineni1 

If you change the variable label it will start showing new one on catalog form and older records in variable editor

You can dynamically change the label on older records using client script for that variable, you just need to determine when the new label was updated

Example: if you updated the label today 9th July so any records created before 9th July the client script will change the label and set it with What is your C Name?

g_form.setLabelOf('c_name', 'What is your C Name?'); 

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader