USP_CMSSOLICITCODE_DATA_SYNC
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@MAXRECORDS | int | IN | |
@RECORDPROCESS | int | INOUT | |
@NOOFERRORS | int | INOUT |
Definition
Copy
CREATE procedure dbo.USP_CMSSOLICITCODE_DATA_SYNC
(
@MAXRECORDS int,
@RECORDPROCESS int = 0 output,
@NOOFERRORS int = 0 output
)
as
begin
declare @CONSENT as xml,
@TRANSACTIONID as int,
@CONSTITUENTID as uniqueidentifier = null,
@CHANGEAGENTID as uniqueidentifier,
@TEMPTRANID uniqueidentifier,
@CONSETNUPDATEID uniqueidentifier,
@ERRORMESSAGE as nvarchar(1024) = '';
declare @CONSENTSTATUS TABLE(ID uniqueidentifier, TRANSACTIONID int, TRANSACTIONGUIDID uniqueidentifier, CONSENT xml);
insert into @CONSENTSTATUS (ID, TRANSACTIONID, TRANSACTIONGUIDID, CONSENT)
select top(@MAXRECORDS) ID, TRANSACTIONID, TRANSACTIONGUIDID, CONSENT from CONSENTTRANSACTIONSTATUS where CONSENTUPDATE = 0;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
while exists (select 1 from @CONSENTSTATUS)
begin
begin try
select top 1 @TRANSACTIONID = TRANSACTIONID, @TEMPTRANID = TRANSACTIONGUIDID, @CONSETNUPDATEID = ID, @CONSENT = CONSENT
from @CONSENTSTATUS
order by ID asc
select @CONSTITUENTID = bmd.BILLTOCONSTITUENTID from CONSENTTRANSACTIONSTATUS cts
inner join MembershipTransactions t on t.ID = cts.TRANSACTIONID
inner join BATCHMEMBERSHIPDUES bmd on bmd.TRANSACTIONID = @TEMPTRANID
inner join BATCH b on b.ID = bmd.BATCHID
left join BATCHMEMBERSHIPDUESBATCHSYSTEMMESSAGES m on m.BATCHMEMBERSHIPDUESID = bmd.ID
where b.STATUSCODE = 1 and m.ID is null;
if (@CONSTITUENTID is not null and @CONSTITUENTID <> '00000000-0000-0000-0000-000000000000' and exists(select 1 from constituent where ID = @CONSTITUENTID))
begin
exec USP_ADDUPDATE_CONTACTCONSENT @CONSTITUENTID ,@CONSENT;
exec USP_ADDUPDATE_CONSENTTRANSACTIONSTATUS @TRANSACTIONID, @TEMPTRANID, 1;
set @RECORDPROCESS = @RECORDPROCESS + 1
end
delete from @CONSENTSTATUS where TRANSACTIONGUIDID = @TEMPTRANID;
end try
begin catch
set @NOOFERRORS = @NOOFERRORS + 1
delete from @CONSENTSTATUS where TRANSACTIONGUIDID = @TEMPTRANID;
set @ERRORMESSAGE = ERROR_MESSAGE();
exec dbo.spAddUpdate_Error 0, 'CMS Solicit Code Data Sync Business Process', @ERRORMESSAGE, null
end catch
end
return 0
end