I always flag the use of these s as “proceed with caution.” These services can be helpful certainly, but can be very disruptive when mistakenly left enabled. Especially if they get enabled in prod. Can be difficult to detect/track down. And the effect can be catastrophic.
An approach that may help: create “*_Test” packages that correspond to each “real” package. For example:
MyPackage
MyPackage_Test
In the _Test package is where you place all the helpers need to test/debug. Save/restore pipeline. Static test values. Whatever. Then you step through the _Test service to debug the “real” services. This has a number of advantages, including not cluttering the primary code with test code. The _Test packages never get deployed outside of dev.
Elaborating a bit more on naming down the tree, say you have this package with folders and services.
MyPackage (top-level folder, within the MyPackage package)
..Folder1
....serviceA
....serviceB
..Folder2
....serviceX
....serviceY
You’d create a test package for this: MyPackage_Test
MyPackage_Test (top-level folder, within the MyPackage_Test package)
..Folder1
....serviceA (folder, not a service)
......serviceA_normal ("happy path" test, calls MyPackage.Folder1:serviceA with whatever inputs you want)
......serviceA_invalidDate (check behavior when input is invalid)
......serviceA_nullValues (check behavior when no inputs)
....serviceB
......serviceB_normal
..Folder2
....serviceX
......serviceX_normal
....serviceY
......serviceY_normal
We use this approach with a custom-made unit test framework. Works reasonably well, though as with most approaches managing the test data can be a pain.
HTH.
#Integration-Server-and-ESB#Service-Designer#webMethods