USP_BBWORKFLOW_SERVICE_SENDMESSAGE_STARTWORKFLOW
Sends a StartWorkflowRequest message to the workflow service message queue.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BBWORKFLOWINSTANCEINFOID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE PROCEDURE dbo.USP_BBWORKFLOW_SERVICE_SENDMESSAGE_STARTWORKFLOW
@BBWORKFLOWINSTANCEINFOID uniqueidentifier,
@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_STARTWORKFLOW', 16,11);
RETURN 111;
END
DECLARE @msg xml;
SELECT @msg=dbo.UFN_BBWORKFLOW_SERVICE_BUILDMESSAGE_STARTWORKFLOW(@BBWORKFLOWINSTANCEINFOID, @CHANGEAGENTID, @CURRENTAPPUSERID );
IF @msg IS NULL
BEGIN
RAISERROR ('dbo.UFN_BBWORKFLOW_SERVICE_BUILDMESSAGE_STARTWORKFLOW returned a null value', 16,22);
RETURN 222;
END
/* Log attempt to start */
DECLARE @LOGID uniqueidentifier=NEWID();
DECLARE @LOGMSG nvarchar(100) = N'Start 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_START_MESSAGE (@msg);
SET @LOGMSG = N'Start 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'Start msg failed';
SET @LOGID= NEWID();
EXEC dbo.USP_BBWORKFLOW_ADD_LOG_MESSAGE @LOGID, @CHANGEAGENTID, @BBWORKFLOWINSTANCEINFOID, 0, @LOGMSG, 3;
RETURN 9;
END CATCH