fixed stored procedure for consistency check to speed up processing
added history.recid to config
This commit is contained in:
parent
bcf31cdfa2
commit
11ba8ffa78
@ -2123,142 +2123,76 @@ select [dbo].[vefn_CheckAllXML](1)
|
||||
CREATE function [dbo].[vefn_CheckAllXML](@DocVersionID int)
|
||||
returns xml
|
||||
begin
|
||||
--temp table for max checkid
|
||||
declare @tChecks table (CheckID int)
|
||||
insert into @tChecks
|
||||
select max(cc.checkid) checkid from checks cc inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid where ss.isapproved = 1 group by rr.itemid
|
||||
--temp table for sibling itemid
|
||||
declare @tItems table (ItemID int)
|
||||
insert into @tItems
|
||||
select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0)
|
||||
--temp table for multi valued roids
|
||||
declare @mvROIDS table (ROID varchar(max))
|
||||
insert into @mvROIDS
|
||||
select roid from (select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue
|
||||
from checks cc cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)) t1 group by roid having count(*) > 1
|
||||
--temp table for multi valued transitionids
|
||||
declare @mvTransitions table (TransitionID int)
|
||||
insert into @mvTransitions
|
||||
select transitionid from (select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue
|
||||
from checks cc cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)) t1 group by transitionid having count(*) > 1
|
||||
--temp table for multi valued docids
|
||||
declare @mvLibDocs table (DocID int)
|
||||
insert into @mvLibDocs
|
||||
select docid from (select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate
|
||||
from checks cc cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)) t1 group by docid having count(*) > 1
|
||||
--temp table for roids
|
||||
declare @tROIDS table (ItemID int,ROID varchar(max),ROValue varchar(max),CheckID int)
|
||||
insert into @tROIDS
|
||||
select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue, cc.checkid
|
||||
from checks cc inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)
|
||||
--temp table for transitions
|
||||
declare @tTransitions table (ItemID int,TransitionID int,TransitionValue varchar(max),CheckID int)
|
||||
insert into @tTransitions
|
||||
select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue,cc.checkid
|
||||
from checks cc inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)
|
||||
--temp table for libdocs
|
||||
declare @tLibDocs table (ItemID int, DocID int, DocDate datetime,CheckID int)
|
||||
insert into @tLibDocs
|
||||
select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate,cc.checkid
|
||||
from checks cc inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)
|
||||
|
||||
--get all inconsitencies accross set
|
||||
declare @ChkXML xml
|
||||
set @ChkXML =
|
||||
(
|
||||
select
|
||||
(--ro inconsistencies accross set
|
||||
select ItemID,ROID,ROValue from
|
||||
(
|
||||
select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue
|
||||
from checks cc
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0))
|
||||
) ROCheck
|
||||
where roid in
|
||||
(
|
||||
--get roids that has more than 1 rovalue from distinct roid and rovalue from checks for latest checkid with approved stage for each itemid
|
||||
select roid from
|
||||
(
|
||||
--distinct roid and rovalue from checks for latest checkid with approved stage for each itemid
|
||||
select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue
|
||||
from checks cc
|
||||
cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
) t1
|
||||
group by roid having count(*) > 1
|
||||
)
|
||||
order by itemid
|
||||
select ROCheck.ItemID,ROCheck.ROID,ROCheck.ROValue from @tROIDS ROCheck
|
||||
inner join @tChecks tc on ROCheck.checkid = tc.checkid
|
||||
inner join @tItems ti on ROCheck.itemid = ti.itemid
|
||||
inner join @mvROIDS mv on ROCheck.roid = mv.roid
|
||||
order by ROCheck.itemid
|
||||
for xml auto,root('ROChecks'),type
|
||||
),
|
||||
--jcb
|
||||
(--transition inconsistencies accross set
|
||||
select ItemID,TransitionID,TransitionValue from
|
||||
(
|
||||
select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue
|
||||
from checks cc
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0))
|
||||
) TransitionCheck
|
||||
where transitionid in
|
||||
(
|
||||
--get transitionids that has more than 1 transitionvalue from distinct transitionid and transitionvalue from checks for latest checkid with approved stage for each itemid
|
||||
select transitionid from
|
||||
(
|
||||
--distinct docid and docdate from checks for latest checkid with approved stage for each itemid
|
||||
select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue
|
||||
from checks cc
|
||||
cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
) t1
|
||||
group by transitionid having count(*) > 1
|
||||
)
|
||||
order by itemid
|
||||
select TransitionCheck.ItemID,TransitionCheck.TransitionID,TransitionCheck.TransitionValue from @tTransitions TransitionCheck
|
||||
inner join @tChecks tc on TransitionCheck.checkid = tc.checkid
|
||||
inner join @tItems ti on TransitionCheck.itemid = ti.itemid
|
||||
inner join @mvTransitions mv on TransitionCheck.TransitionID = mv.TransitionID
|
||||
order by TransitionCheck.itemid
|
||||
for xml auto,root('TransitionChecks'),type
|
||||
),
|
||||
--end jcb
|
||||
(--libdoc inconsistencies accross set
|
||||
select ItemID,DocID,DocDate from
|
||||
(
|
||||
select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate
|
||||
from checks cc
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
and rr.itemid in (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0))
|
||||
) LibDocCheck
|
||||
where docid in
|
||||
(
|
||||
--get docids that has more than 1 docdate from distinct docid and docdate from checks for latest checkid with approved stage for each itemid
|
||||
select docid from
|
||||
(
|
||||
--distinct docid and docdate from checks for latest checkid with approved stage for each itemid
|
||||
select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate
|
||||
from checks cc
|
||||
cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)
|
||||
where cc.checkid in
|
||||
--latest checkid with approved stage for each itemid
|
||||
(
|
||||
select max(cc.checkid) checkid
|
||||
from checks cc
|
||||
inner join stages ss on cc.stageid = ss.stageid
|
||||
inner join revisions rr on cc.revisionid = rr.revisionid
|
||||
where ss.isapproved = 1
|
||||
group by rr.itemid
|
||||
)
|
||||
) t1
|
||||
group by docid having count(*) > 1
|
||||
)
|
||||
order by itemid
|
||||
select LibDocCheck.ItemID,LibDocCheck.DocID,LibDocCheck.DocDate from @tLibDocs LibDocCheck
|
||||
inner join @tChecks tc on LibDocCheck.checkid = tc.checkid
|
||||
inner join @tItems ti on LibDocCheck.itemid = ti.itemid
|
||||
inner join @mvLibDocs mv on LibDocCheck.docid = mv.docid
|
||||
order by LibDocCheck.itemid
|
||||
for xml auto,root('LibDocChecks'),type
|
||||
)
|
||||
for xml path(''),ROOT ('ConsistencyChecks'),type
|
||||
|
@ -408,6 +408,7 @@ namespace DataLoader
|
||||
DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString());
|
||||
|
||||
ConfigInfo ci = new ConfigInfo(null);
|
||||
ci.AddItem("History", "RecID", rid);
|
||||
ci.AddItem("Section", "OldType", stype);
|
||||
|
||||
|
||||
|
@ -27,6 +27,7 @@ namespace DataLoader
|
||||
|
||||
frmMain.UpdateLabels(0, 0, 1);
|
||||
ConfigInfo ci = new ConfigInfo(null);
|
||||
ci.AddItem("History", "RecID", Recid);
|
||||
string stptext = null;
|
||||
if (userid == null || userid == "") userid = "Migration";
|
||||
int tok = -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user