I have found users don’t always read the logs from the Adaptus EDI Module anymore in Sage Line 500.
There are a few reasons why orders get stuck, the most common is a customer has sent a duplicate EDI file although one was caused by incorrect product supersession setup causing an endless loop.
USE <Affected Sage Company MSSQL Database> GO CREATE procedure [dbo].[usp_email_edi_held_orders] AS -- ============================================= -- Author: Christopher Smith -- Create date: 01/08/2017 -- Description: The procedure looks for orders held in the EDI IN Intermediary Tables -- Changes: -- 1.0.1 - 02/08/2017 - Added dateformat dmy as when run was reporting "Conversion failed when converting date and/or time from character string.". Ensured all date values were cast as datetime as well. -- 1.0.2 - 11/04/2019 - Corrected the Sales Order lookup to check the invoice customer instead of delivery customer on opheadm -- ============================================= -- exec [dbo].[usp_email_edi_held_orders] -- ============================================= -------------------------------------------------------------------------------------------------------------------------- print 'Change to DMY format' -------------------------------------------------------------------------------------------------------------------------- SET DATEFORMAT dmy; -------------------------------------------------------------------------------------------------------------------------- print 'Populate temp table' -------------------------------------------------------------------------------------------------------------------------- Create Table #results( customer VARCHAR(8), existingorderno varchar(10), received_date char(8), customer_order VARCHAR(20), "filename" char(30), warehouse char(2), product char(20), long_description char(40), required_quantity int ) insert into #results (customer,received_date,customer_order,"filename",warehouse,product,long_description,required_quantity) SELECT customer,received_date,customer_order,"filename",warehouse,product,long_description,required_quantity FROM "scheme"."eiorhdm" t1 INNER JOIN "scheme"."eiordtm" t2 ON t1.key_code = LEFT(t2.key_code,LEN(RTRIM(t1.key_code))) WHERE t1.update_status = 'h' and CAST(received_date as datetime) BETWEEN CAST(GETDATE() -7 as datetime) and CAST(GETDATE() as datetime) -------------------------------------------------------------------------------------------------------------------------- print 'Check if need to send email' -------------------------------------------------------------------------------------------------------------------------- if (select count(*) AS nos from #results) = 0 begin print 'No Email to Send' goto END1 end -------------------------------------------------------------------------------------------------------------------------- print 'Check if existing SOP number exists and update table' -------------------------------------------------------------------------------------------------------------------------- update t1 set t1.existingorderno = t2.order_no from #results t1 INNER JOIN scheme.opheadm(nolock) t2 ON t1.customer_order = t2.customer_order_no and t1.customer = t2.invoice_customer update #results set existingorderno = 'NOMATCH' from #results where existingorderno IS NULL -------------------------------------------------------------------------------------------------------------------------- print 'Create HTML for Email' -------------------------------------------------------------------------------------------------------------------------- DECLARE @tableHTML NVARCHAR(MAX) ; SET @tableHTML = N'<H1>Orders held in the EDI IN Intermediary Tables</H1>' + N'<font size="5" face="arial" color="red"> <H2>Please review orders held in the EDI IN module, if the order held does not match an existing order further checks may need to be done</H2></font>' + N'<table border="1">' + N'<tr><th>Customer No</th><th>Existing SO No</th>' + N'<th>Customer Order No</th><th>EDI Filename</th><th>Received Date</th>' + N'<th>WH</th><th>Product</th>' + N'<th>Description</th><th>Qty</th>' + CAST ( ( select td = customer,'', td = existingorderno,'', td = customer_order,'', td = "filename",'', td = received_date,'', td = warehouse,'', td = product,'', td = long_description,'', td = required_quantity from #results order by customer, customer_order FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) + N'</table>' + N'<p> </p>' + N'<p> </p>' + N'<p>Regards.</p>' + N'<p> </p>' + N'<p>usp_email_edi_held_orders</p>' -------------------------------------------------------------------------------------------------------------------------- print 'Send Email' -------------------------------------------------------------------------------------------------------------------------- EXEC msdb.dbo.sp_send_dbmail @profile_name = '<SQL Email Profile>', @recipients = '<Recipients>', @copy_recipients = '<Copy_Address>', @body = @tableHTML, @body_format = 'HTML', @subject = 'Orders held in the EDI IN Intermediary Tables' END1: