1. Source Control
    • Interesting, I'll have to read up on that. Sounds like it might be what I'm looking for.
  2. Code
    • This is excellent; thanks for sharing. I tried out your approach and it looks to accomplish the same goal in a much more readable/maintainable way.
  3. Ensemble
    • This is also great. I was able to include a check in my HandleResponse() hook to set ..Retry = 1 if a retry was necessary, and a check in my PopulatePayload() hook to use a secondary set of user credentials if ..RetryCount > 1.

Much appreciation,

Nathan

Hey Eduard, thanks for the tips! Regarding your points:

  1. Source control
    • Good idea, I'll plan to include these as separate class files. I originally had these as a single xml file so it could be imported all at once if anyone wanted to try it, but I agree it would be much easier for people to read and view the changes if these were separated out.
  2. Code
    • I modified SendFormDataArray to allow setting the ContentType of the http request through the Operation Settings. The stock EnsLib.HTTP.OutboundAdapter didn't expose this property (to my knowledge) and the external REST API required the ContentType of the request to be 'application/json'. Do you have any suggestions on possible alternatives I could pursue if this is not the best practice?
    • I had commented the small section of code that was changed with "/* Begin DLS Modification */" and "*/ End DLS Modification */", but it's probably hard to tell since there's no syntax highlighting in the xml file.
    • Nice tip, I'll plan to use $CLASSNAME() instead moving forward.
  3. Ensemble
    • I took a look at the documentation you shared, but I'm not sure if that would accomplish what I set out to do with my error handling. I didn't include this in my post, but the main reason I added the retry hooks to DLS.REST.OperationV2 was so that I could retry the request with different criteria (such as different user credentials) in the case of an initial failure. Do you know if there are ways to do this with the stock Retry Interval and Failure Timeout in Ensemble?

Thanks for all the feedback,

Nathan