Discussion (9)4
Log in or sign up to continue

Say you have the same code (Production) running on different servers - for example, a local instance on a developers own machine, a test server used for system testing and a production server.

Your code accesses an external web-service. The actual web-service will be different for each system - maybe a mock service for the developer, a test version of the web-service for the test system and a production version for your production server. Then the URL for accessing the web-service would be different for each one.

In your code you have a setting on the business operation in your production that connects to the web-service. The value of this setting can be set from the System Defaults Settings page, and will contain different values between the servers.

This allows you to separate out settings that will be the same across all servers, and settings that will differ between servers - settings that are the same on all servers can be set on the services/processes/operations themselves, settings that differ will be set via system defaults.

Please also see https://community.intersystems.com/post/system-default-settings-versus-p... to try and understand how easy it is for a system-specific setting to get overridden by a setting added to the XData block of the prodclass. Then, if you're not super-careful about how you transfer the prodclass between environments you can inadvertently end up with the live production talking to the test interfaces.