pears.ComplianceTable
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
Original SQL
CREATE PROCEDURE "pears"."ComplianceTable"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ IN "pPersonID" CHAR(20),IN "pComplianceDomainID" CHAR(20) DEFAULT NULL,IN "AtDate" DATE DEFAULT NULL,IN "pClientCode" CHAR(12) DEFAULT NULL ) RESULT( "Description" CHAR(200),"LongDescription" long VARCHAR,"Behaviour" tinyint,"Status" tinyint,"Score" SMALLINT,"AchievedScore" SMALLINT,"Info" CHAR(100),"TagLocation" CHAR(3),"TagID" CHAR(3),"TagChoiceID" CHAR(4),"Type" CHAR(10) ) BEGIN -- Result.Status values 0=ok 1=fail 2=warn DECLARE "DupeCheck" long VARCHAR; DECLARE "Cnt" SMALLINT; DECLARE "bFound" tinyint; DECLARE LOCAL TEMPORARY TABLE "ComplianceTmpTbl"( "Description" CHAR(200) NULL, "LongDescription" long VARCHAR NULL, "Behaviour" tinyint NULL, "Status" tinyint NULL, "Score" SMALLINT NULL, "AchievedScore" SMALLINT NULL, "Info" CHAR(100) NULL, "SortOrder" SMALLINT NULL, "TagLocation" CHAR(3) NULL, "TagID" CHAR(3) NULL, "TagChoiceID" CHAR(4) NULL, "Type" CHAR(10) NULL,) NOT transactional; SET "AtDate" = "isnull"("AtDate",CURRENT DATE); --Explicit null may be passed in so we don't put the default on the parameter IF "pComplianceDomainID" IS NULL THEN FOR "PFOR" AS "PCUR" no scroll cursor FOR SELECT "ComplianceDomainID" FROM "CompliancePersonDomain" WHERE "PersonID" = "pPersonID" FOR READ ONLY do SET "bFound" = 1; CALL "ComplianceTableAdd"("pPersonID","ComplianceDomainID","AtDate","DupeCheck","Cnt","pClientCode") END FOR; IF "bFound" IS NULL THEN FOR "PFOR1" AS "PCUR1" no scroll cursor FOR SELECT "cd"."ComplianceDomainID" FROM "ComplianceDomain" AS "cd" JOIN "Search" AS "s" ON "cd"."DepartmentID" = "s"."DepartmentID" WHERE "s"."PersonID" = "pPersonID" AND "cd"."Name" LIKE 'Default%' AND("cd"."ClientTempComplianceCode" IS NULL OR "cd"."ClientTempComplianceCode" = "pClientCode") FOR READ ONLY do CALL "ComplianceTableAdd"("pPersonID","ComplianceDomainID","AtDate","DupeCheck","Cnt","pClientCode") END FOR END IF ELSE CALL "ComplianceTableAdd"("pPersonID","pComplianceDomainID","AtDate","DupeCheck","Cnt","pClientCode") END IF; SELECT "Description","LongDescription","Behaviour","Status","Score","AchievedScore","Info","TagLocation","TagID","TagChoiceID","Type" FROM "ComplianceTmpTbl" ORDER BY "SortOrder" ASC END GO COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."ComplianceTable" IS {CREATE PROCEDURE ComplianceTable /* Application Maintained Function / Procedure - DO NOT EDIT*/ ( IN "pPersonID" CHAR(20),IN "pComplianceDomainID" CHAR(20) DEFAULT NULL,IN "AtDate" DATE DEFAULT NULL,IN pClientCode CHAR(12) DEFAULT NULL ) RESULT( "Description" CHAR(200),"LongDescription" long VARCHAR,"Behaviour" tinyint,"Status" tinyint,"Score" SMALLINT,"AchievedScore" SMALLINT,"Info" CHAR(100),"TagLocation" CHAR(3),"TagID" CHAR(3),"TagChoiceID" CHAR(4), "Type" CHAR(10) ) BEGIN -- Result.Status values 0=ok 1=fail 2=warn DECLARE "DupeCheck" long VARCHAR; DECLARE "Cnt" SMALLINT; DECLARE "bFound" tinyint; DECLARE LOCAL TEMPORARY TABLE "ComplianceTmpTbl"( "Description" CHAR(200) NULL, "LongDescription" long VARCHAR NULL, "Behaviour" tinyint NULL, "Status" tinyint NULL, "Score" SMALLINT NULL, "AchievedScore" SMALLINT NULL, "Info" CHAR(100) NULL, "SortOrder" SMALLINT NULL, "TagLocation" CHAR(3) NULL, "TagID" CHAR(3) NULL, "TagChoiceID" CHAR(4) NULL, "Type" CHAR(10) NULL, ) NOT transactional; SET "AtDate" = "isnull"("AtDate",CURRENT DATE); --Explicit null may be passed in so we don't put the default on the parameter IF "pComplianceDomainID" IS NULL THEN FOR "PFOR" AS "PCUR" no scroll cursor FOR SELECT "ComplianceDomainID" FROM "CompliancePersonDomain" WHERE "PersonID" = "pPersonID" FOR READ ONLY do SET "bFound" = 1; CALL "ComplianceTableAdd"("pPersonID","ComplianceDomainID","AtDate","DupeCheck","Cnt",pClientCode) END FOR; IF "bFound" IS NULL THEN FOR "PFOR1" AS "PCUR1" no scroll cursor FOR SELECT "cd"."ComplianceDomainID" FROM "ComplianceDomain" AS "cd" JOIN "Search" AS "s" ON "cd"."DepartmentID" = "s"."DepartmentID" WHERE "s"."PersonID" = "pPersonID" AND "cd"."Name" LIKE 'Default%' AND (cd.ClientTempComplianceCode IS NULL OR cd.ClientTempComplianceCode=pClientCode) FOR READ ONLY do CALL "ComplianceTableAdd"("pPersonID","ComplianceDomainID","AtDate","DupeCheck","Cnt",pClientCode) END FOR END IF ELSE CALL "ComplianceTableAdd"("pPersonID","pComplianceDomainID","AtDate","DupeCheck","Cnt",pClientCode) END IF; SELECT "Description","LongDescription","Behaviour","Status","Score","AchievedScore","Info","TagLocation","TagID","TagChoiceID","Type" FROM "ComplianceTmpTbl" ORDER BY "SortOrder" ASC END }