USP_BBWORKFLOW_SERVICE_SENDMESSAGE_TERMINATEWORKFLOW
Sends a TermianteWorkflowRequest message to the workflow service message queue.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BBWORKFLOWINSTANCEINFOID | uniqueidentifier | IN | |
@REASON | nvarchar(500) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE PROCEDURE dbo.USP_BBWORKFLOW_SERVICE_SENDMESSAGE_TERMINATEWORKFLOW
@BBWORKFLOWINSTANCEINFOID uniqueidentifier,
@REASON nvarchar(500),
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null
AS
IF @BBWORKFLOWINSTANCEINFOID IS NULL
BEGIN
RAISERROR ('@BBWORKFLOWINSTANCEINFOID parameter value is required to have a value in dbo.USP_BBWORKFLOW_SERVICE_SENDMESSAGE_TERMINATEWORKFLOW', 16,11);
RETURN 111;
END
DECLARE @msg xml;
SELECT @msg=dbo.UFN_BBWORKFLOW_SERVICE_BUILDMESSAGE_TERMINATEWORKFLOW(@BBWORKFLOWINSTANCEINFOID, @CHANGEAGENTID, @CURRENTAPPUSERID, @REASON);
IF @msg IS NULL
BEGIN
RAISERROR ('dbo.UFN_BBWORKFLOW_SERVICE_BUILDMESSAGE_TERMINATEWORKFLOW returned a null value', 16,22);
RETURN 222;
END
/* Log attempt to start */
DECLARE @LOGID uniqueidentifier=NEWID();
DECLARE @LOGMSG nvarchar(100) = N'Termination requested.';
EXEC dbo.USP_BBWORKFLOW_ADD_LOG_MESSAGE @LOGID, @CHANGEAGENTID, @BBWORKFLOWINSTANCEINFOID, 0, @LOGMSG, 1;
BEGIN TRY
/* Send message to Queue */
DECLARE @TARGETSERVICENAME nvarchar(128);
select @TARGETSERVICENAME = dbo.UFN_BBWORKFLOW_SERVICE_GET_SERVICE_NAME_FOR_SEND(@BBWORKFLOWINSTANCEINFOID);
DECLARE @CONVERSATIONID uniqueidentifier;
BEGIN DIALOG CONVERSATION @CONVERSATIONID
FROM SERVICE BBAPPFX_WORKFLOW_MESSAGE_INITIATOR_SERVICE
TO SERVICE @TARGETSERVICENAME -- 'BBAPPFX_WORKFLOW_MESSAGE_TARGET_SERVICE'
ON CONTRACT BBAPPFX_WORKFLOW_MESSAGE_CONTRACT
/* Use the internal BBWORKFLOWINSTANCEINFO table ID as the conversation group lock id. */
WITH RELATED_CONVERSATION_GROUP = @BBWORKFLOWINSTANCEINFOID ;
SEND ON CONVERSATION @CONVERSATIONID MESSAGE TYPE [BBAPPFX_WORKFLOW_TERMINATEWORKFLOW_MESSAGE] (@msg);
SET @LOGMSG = N'Terminate msg sent';
SET @LOGID= NEWID();
EXEC dbo.USP_BBWORKFLOW_ADD_LOG_MESSAGE @LOGID, @CHANGEAGENTID, @BBWORKFLOWINSTANCEINFOID, 0, @LOGMSG, 1;
END TRY
BEGIN CATCH
EXEC dbo.USP_RAISE_ERROR;
SET @LOGMSG = N'Terminate msg failed';
SET @LOGID= NEWID();
EXEC dbo.USP_BBWORKFLOW_ADD_LOG_MESSAGE @LOGID, @CHANGEAGENTID, @BBWORKFLOWINSTANCEINFOID, 0, @LOGMSG, 3;
RETURN 10;
END CATCH