【问题标题】:Where is the best place to store an application setting that needs to be updated frequently in ServiceNow在 ServiceNow 中存储需要经常更新的应用程序设置的最佳位置在哪里
【发布时间】:2019-06-28 14:11:11
【问题描述】:

我有一个预定的脚本执行,需要在运行之间保持一个值。每次运行都会更新它。使用gs.setProperty 似乎很自然,直到我遇到这个:

设置系统属性(sys_properties)时应小心 使用此方法,因为它会导致系统范围的缓存刷新。每次冲洗 在缓存重建时可能会导致系统性能下降。如果一个值必须 经常更新,它不应该被存储为系统属性。在 一般来说,您应该只将值放在 sys_properties 表中 不要经常更换。

创建一个单独的表来存储单个标量值似乎有点矫枉过正。有没有更好的存放地点?

【问题讨论】:

    标签: servicenow


    【解决方案1】:

    如果您在实例中需要,您可以设置首选项。另一个地方可能是事件表。使用 parm1 或 parm2 中的数据记录事件,并在下次运行时查询最近的事件。

    我会避免制作表格,因为这会影响某些客户的成本。我同意sys_properties

    var encrypter = new GlideEncrypter();
    var encrypted = encrypter.encrypt('Super Secret Phrase');
    gs.info('encrypted: ' + encrypted);
    var decrypted = encrypter.decrypt(encrypted);
    gs.info('decrypted: ' + decrypted);
    /**
    *** Script: encrypted: g/bXLJHa7xNRMKZEo5q/YtLMEdse36ED
    *** Script: decrypted: Super Secret Phrase
    */
    

    这样只有管理员才能真正读取这些数据。另外,如果我没记错的话,sysevent 表会在 7 天后被清除。您可以让作业在内存中删除该事件。

    【讨论】:

    • 事件表是个好主意,但值很敏感。我很惊讶 ServiceNow 没有经常更新标量值的机制。
    • 可以先加密值。我在答案中添加了一个示例,因为我似乎无法将代码 sn-ps 添加到 cmets
    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    相关资源
    最近更新 更多