Importance of Sandbox ruleset

One of the major problems that Pega projects face with time is build up of test rules within the official business rulesets. If not properly managed these rules could end up in the production environment which is not an ideal situation to have. But can we really stop creating test rules, for me the answer is no, because creating test rules is also an integral part of the iterative development process. So how can we maintain a clean development environment while also allowing the creation of test rules.

The answer is the Sandbox ruleset. By creating a separate ruleset only for test rules it is possible to have a clean development environment while allowing the creation of test rules in development process.

Following are the steps that have to be followed

  1. Create a sandbox ruleset and version
  2. Update ruleset restrictions in classes to include the sandbox ruleset
  3. Create a separate sandbox application rule and include the sandbox ruleset and put your main application as the Built on Application
  4. Create a sandbox access group and include the sandbox application
  5. Include the sandbox access group as an optional entry in the operator access group list

Now you will get the sandbox application as an optional application rule when you log in as a developer. So next time when you want to create a test rule, switch the application to the sandbox application and use the sandbox rule set to save your test rule.

If your team is not used to this process, it will take some time for them to adjust to this new way of working, but with time you will see better results.

Comments

  1. Nice one!!
    Really its a best practice to organize the rulesets for development and testing. Moreover it reaps better benefits on a long run!!

    ReplyDelete
  2. Can't you just put the test ruleset on top of the Application rulesets and use it ?

    ReplyDelete
  3. With that setup, Imagine a scenario where you check-in a test rule and then think about how rule resolution will act on that.

    There could be some unexpected behavior on the main application, if your checked-in test rule happen to have a name which is equal to a rule name in the main application.

    Thank you for the comment :)

    ReplyDelete
  4. good idea....and best practice to manage devrules away from test rule and kepp the code clean....:-)

    ReplyDelete
  5. This is a very helpful article. Thanks.

    But I have a question here.
    I would like to know whether you are referring this sandbox RuleSet to be created as common for all the developers who works for a particular application to save their test rules or is it better to keep a sandbox RuleSet for each developer separately?

    Because if we create one sandbox RuleSet as common for all the developers, test rules which are not removed / In progress/ Cleaned by the some developers might effect other developers.

    Thanks in advance! :)

    ReplyDelete
  6. Creating separate sandbox rulesets will have both pros and cons attached to it just as the one ruleset approach, the biggest problem would be to maintain the ruleset restrictions in classes, when you have a new sandbox ruleset which was not there while creating the class.

    So I think it is good to have one sandbox ruleset and maintain the test rules properly without abandoning the test rules ones the testing is done.

    Once the testing is finished, We should never have test rules saved and kept in the sandbox ruleset with the same name as original rule, if we want to keep the test rule for future we can have a naming convention to save as the test rule with different name but preserving the actual name as well (e.g DeveloperName+Rule Name).

    I would also like to see what others have to say on this, what would be the best way to handle this, and are there any more best practices out there on the same test rules issue.

    ReplyDelete
  7. Nice article!!

    But what if we have multiple applications on the same server?

    Probably we might have to create a sandbox rule set, application for each individual application. Is there any other approach to handle this?

    ReplyDelete

Post a Comment

Popular posts from this blog

Creating custom rules in PRPC

Creating custom rules in PRPC – Introduction

CSSA PDN Links Compilation