I had an issue reported with purchase requisitions the other day. I logged on and did a little testing and then, a short wile later, got an email from the client asking about some workflow approval emails some managers had received.
The email to the approvers did not contain the word “test” anywhere in either the subject or body. This lead to me having a horrible moment when I thought I might have done my testing on live; I was able to confirm quickly that I had not.
After this I decided I had better knock a quick script together which the client could incorporate into their live to test copy.
The script is more engineered than it might otherwise need to be as I have included code to only do the update when it is running against a test company (flagged with <TEST> at the end of the Company Name) and where the email subject isn’t already prefixed with the word TEST:
/* Created by Ian Grieve of azurecurve|Ramblings of a Dynamics GP Consultant (https://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int). */ UPDATE ['Email Messages'] SET EmailMessageSubject = LEFT('TEST: ' + CAST(['Email Messages'].EmailMessageSubject AS CHAR(150)), 150) FROM SY04901 AS ['Email Messages'] INNER JOIN DYNAMICS..SY01500 AS ['Company Master'] ON ['Company Master'].INTERID = DB_NAME() WHERE ['Company Master'].CMPNYNAM LIKE '%<TEST>' AND LEFT(['Email Messages'].EmailMessageSubject, 4) <> 'TEST' GO
As always, before running a script against a database, make sure you understand the scirpt and have a good backup of the database.