pears.ComplianceTable

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

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
}
  • database/procedures/pears_compliancetable.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1