#dominoforever Product Ideas Forum

 

Welcome to the #dominoforever Product Ideas Forum! The place where you can submit product ideas and enhancement request. We encourage you to participate by voting on, commenting on, and creating new ideas. All new ideas will be evaluated by HCL Product Management & Engineering teams, and the next steps will be communicated. While not all submitted ideas will be executed upon, community feedback will play a key role in influencing which ideas are and when they will be implemented.

For more information and upcoming events around #dominoforever, please visit our Destination Domino Page

Design Refresh handling of Agent (Scheduling) Properties option to only update program logic-leave server and schedule untouched.

We distribute our application and code changes to multiple customers with various topologies via standard  . NTF templates.

For scheduled agents in particular the behavior of Design Refresh creates a challenge since server names, enabled/disabled ,frequency and schedule properties vary per site.  Current behavior of Design Refresh is an "All or Nothing" proposition.  Under default settings each night, when designer runs, the agent is aligned completely with the Template definition which will reset schedules and other runtime settings (in addition to the code changes). 

The other option is to set the Design Property "Prohibit design refresh or replace to modify".  Since this option shuts off all updates, it become impossible to transmit code changes to a customer without manual intervention at each site.

While in practice, to minimize the impact of this situation, we attempt to keep the agent design as simple as possible , typically a single simple call into a script library ... it is inevitable a change will be needed at some point in time. Distribution of even a small code change to a schedule agent creates a lot of manual intervention at customer sites that should be unnecessary.

We either need designer task behavior to change when dealing with Agents or add a design property option to disable design refresh of Only the agent's runtime properties (server, schedule, enable/disabled). This would allow updates to the underlying program code as needed as part of the automated Designer task 

  • Avatar32.5fb70cce7410889e661286fd7f1897de Guest
  • Mar 1 2019
  • Attach files
  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    01 Mar 15:15

    You could use the Notes API to do a scheduled design replace (rather than relying on the design task to refresh a design) without disturbing scheduled agent settings, viz:

    Declare Function DesignReplace Lib "nnotes.dll" Alias "DesignReplace" ( ByVal ht As Long, ByVal hdb As Long, ByVal dw1 As Long, ByVal dw2 As Long, ByVal dw3 As Long, ByVal dw4 As Long ) As Integer

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    04 Mar 18:11

    This does sound like a good idea. Meanwhile, I suggest putting the bulk of your agent code into a script library so that your agent code can consist of one function call that you never need to change. Those can be protected from refresh, while still letting you update the library.

  • Avatar40.8f183f721a2c86cd98fddbbe6dc46ec9
    Guest commented
    04 Mar 18:57

    Some further thoughts. The items that control the server name and schedule are signed items. This means if design refresh fails to update them, the signature on the agent design note is invalid, and the agent will not run.

    We could make them unsigned items, but in that case, I'm concerned about increased security exposure. Currently, it requires the access of a server administrator to enable an agent to run with full privileges on the server. With this change, anyone with Developer access to any application on the server, could do that. They would be limited in that they could only use agents which had been signed with an authorized ID, but they have their pick of ANY agent that is so signed, which they could copy from another application, and they could make that code run at a time, on a server, and in a context the developer didn't intend.

    We're discussing whether this is acceptable. In the meantime, as an alternate workaround, you can set the agents to run "never", and set up their schedule using Program documents in the server address book:

    Program name: nserver.exe

    Command line: -c "Tell Amgr Run 'whatever.nsf' 'agentname"