SQL Scripts for Microsoft Dynamics GP: Select Workflow Comments for Work Status Batches

Microsoft Dynamics GPThis script is part of the SQL Scripts for Microsoft Dynamics GP where I will be posted the scripts I wrote against Microsoft Dynamics GP over the 19 years before I stopped working with Dynamics GP.

This script will return all unposted batches and the workflow approval comments which have been entered; it was used within a customisation of workflow in Dynamics GP which allowed the returned comment to be added to the workflow approval notification emails.

/*
Created by Ian Grieve of azurecurve | Ramblings of an IT Professional (http://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). */
WITH COMMENTS AS ( SELECT ['Posting Definitions Master'].BACHNUMB ,['Posting Definitions Master'].BCHSOURC ,CASE WHEN LEFT(CAST(['Workflow History'].Workflow_Comments AS VARCHAR(2000)), 54) = 'The workflow was automatically rejected by the system.' THEN 'SYSTEM' ELSE LTRIM(RTRIM(SUBSTRING(REPLACE(['Workflow History'].Workflow_History_User, '\', REPLICATE(' ', LEN(['Workflow History'].Workflow_History_User))), (1) * LEN(['Workflow History'].Workflow_History_User)+1, LEN(['Workflow History'].Workflow_History_User)))) END + ', ' + FORMAT(['Workflow History'].Workflow_Completion_Date, 'dd/MM/yyyy') + ' ' + FORMAT(['Workflow History'].Workflow_Completion_Time, 'T', 'en-US') + ': ' + CASE ['Workflow History'].Workflow_Action WHEN 1 THEN 'SUBMITTED' WHEN 2 THEN 'RESUBMITTED' WHEN 3 THEN 'APPROVED' WHEN 4 THEN 'TASK COMPLETED' WHEN 5 THEN 'REJECTED' WHEN 6 THEN 'DELEGATED' WHEN 7 THEN 'RECALLED' WHEN 8 THEN 'ESCALATED' WHEN 9 THEN 'EDITED' WHEN 10 THEN 'FINAL APPROVED' END + ' ' + RTRIM(['Workflow Instance Master'].WfBusObjKey) + '. ' + RTRIM(CAST(ISNULL(['Workflow History'].Workflow_Comments,'') AS VARCHAR(8000))) AS Comment ,ROW_NUMBER() OVER (PARTITION BY ['Posting Definitions Master'].BACHNUMB, ['Posting Definitions Master'].BCHSOURC ORDER BY Workflow_Completion_Date DESC,Workflow_Completion_Time DESC) AS RowNumber FROM SY00500 AS ['Posting Definitions Master'] INNER JOIN WFI10002 AS ['Workflow Instance Master'] ON ['Workflow Instance Master'].WfBusObjKey = RTRIM(['Posting Definitions Master'].BACHNUMB) + '~' + RTRIM(['Posting Definitions Master'].BCHSOURC) + '~' + FORMAT(['Posting Definitions Master'].CREATDDT, 'yyyy/M/dd') + '~' + FORMAT(['Posting Definitions Master'].TIME1, 'HH:mm:ss') LEFT JOIN WF30100 AS ['Workflow History'] ON ['Workflow History'].WorkflowInstanceID = ['Workflow Instance Master'].WorkflowInstanceID WHERE ['Workflow Instance Master'].WfBusObjKey = RTRIM(BACHNUMB) + '~' + RTRIM(BCHSOURC) + '~' + FORMAT(CREATDDT, 'yyyy/M/dd') + '~' + FORMAT(TIME1, 'HH:mm:ss') AND CAST(['Workflow History'].Workflow_Comments AS VARCHAR(2000)) <> 'No approval is required for this step.' AND CAST(['Workflow History'].Workflow_Comments AS VARCHAR(2000)) <> 'No action is required for this step.' AND CAST(['Workflow History'].Workflow_Comments AS VARCHAR(2000)) <> '' ) SELECT ['Posting Definitions Master'].BCHSOURC ,['Posting Definitions Master'].BACHNUMB ,(STUFF(( SELECT CHAR(10) + COMMENTS.Comment FROM COMMENTS WHERE COMMENTS.BACHNUMB = ['Posting Definitions Master'].BACHNUMB AND COMMENTS.BCHSOURC = ['Posting Definitions Master'].BCHSOURC ORDER BY COMMENTS.RowNumber DESC FOR XML PATH('') ), 1, 1, '') ) AS Comments ,'' AS CMMTTEXT FROM SY00500 AS ['Posting Definitions Master']

What should we write about next?

If there is a topic which fits the typical ones of this site, which you would like to see me write about, please use the form, below, to submit your idea.

Your Name

Your Email

Suggested Topic

Suggestion Details

Looking for support or consultancy with Microsoft Dynamics GP?

I no longer work with Microsoft Dynamics GP, but the last company I worked for was ISC Software in the UK; if you’re looking for support or consultancy services with Microsoft Dynamics GP you can contact them here.

Leave a Reply

Your email address will not be published. Required fields are marked *