This stored procedure can be executed to generate the next sequential purchase receipt number which can be used for both receivings transactions (Shipment and Shipment/Invoice) and invoices; the generated invoice was then added to the integration file which was then submitted to eConnect. I’ve written this stored procedure at least three times for different integrations, so thought it best to post it here so I don’t write it again.
-- drop stored proc if it exists
IF OBJECT_ID (N'usp_AZRCRV_GetNextPOPReceiptNumber', N'P') IS NOT NULL
DROP PROCEDURE usp_AZRCRV_GetNextPOPReceiptNumber
GO
-- create stored proc
CREATE PROCEDURE usp_AZRCRV_GetNextPOPReceiptNumber AS
/*
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 2.0 UK: England & Wales (CC BY-NC-SA 2.0 UK).
*/
BEGIN
DECLARE @return_value INT
DECLARE @I_vInc_Dec TINYINT = 1
DECLARE @O_vPOPRCTNM AS VARCHAR(17)
DECLARE @O_iErrorState INT
exec @return_value = taGetPurchReceiptNextNumber @I_vInc_Dec, @O_vPOPRCTNM = @O_vPOPRCTNM OUTPUT, @O_iErrorState = @O_iErrorState OUTPUT
SELECT @O_vPOPRCTNM
END
GO
-- grant execute permission on stored proc to DYNGRP
GRANT EXECUTE ON usp_AZRCRV_GetNextPOPReceiptNumber TO DYNGRP
GO
-- execute stored proc
EXEC usp_AZRCRV_GetNextPOPReceiptNumber
GO
The stored proc calls a Microsoft Dynamics GP stored procedure which actually does the work, so we are still getting the receipt number using standard functionality.