pears.WPKMaintainSetSwitchValue

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

Original SQL

CREATE PROCEDURE "pears"."WPKMaintainSetSwitchValue"( 
  /* Application Maintained Function / Procedure - DO NOT EDIT*/
  IN "SwitchID" CHAR(20),IN "SwitchLocation" CHAR(20),IN "SwitchSource" CHAR(1),IN "SwitchValue" long VARCHAR ) 
BEGIN
  DECLARE "param" CHAR(100);
  DECLARE "x" long VARCHAR;
  DECLARE "i" SMALLINT;
  DECLARE "tp" CHAR(1);
  DECLARE "oldvalue" long VARCHAR;
  DECLARE "wname" CHAR(100);
  IF "switchsource" NOT IN( 'L','P' ) THEN -- Only Literal and Params maintained in this way
    RETURN
  END IF;
  SELECT "WPKMaintainGetSwitchValue"("switchid","switchlocation","switchsource") INTO "oldvalue";
  SET "switchlocation" = "trim"("switchlocation");
  IF "switchlocation" = 'Global' OR "switchlocation" = '' THEN
    SET "switchlocation" = NULL
  END IF;
  IF "switchlocation" IS NOT NULL THEN
    DELETE FROM "wpkglobalswitchsetting" WHERE "wpkglobalswitchid" = "switchid" AND "location" = "switchlocation";
    IF "switchvalue" IS NOT NULL THEN
      INSERT INTO "wpkglobalswitchsetting"( "wpkglobalswitchid","location","value" ) VALUES( "switchid","switchlocation","switchvalue" ) 
    END IF
  ELSE IF "switchsource" = 'L' THEN
      DELETE FROM "wpkglobalswitchsetting" WHERE "wpkglobalswitchid" = "switchid" AND "location" = 'Global';
      IF "switchvalue" IS NOT NULL THEN
        INSERT INTO "wpkglobalswitchsetting"( "wpkglobalswitchid","location","value" ) VALUES( "switchid",'Global',"switchvalue" ) 
      END IF
    ELSE SELECT "value","datatype" INTO "x","tp" FROM "wpkglobalswitch" WHERE "wpkglobalswitchid" = "switchid";
      SET "i" = "charindex"(';',"x");
      IF "i" > 0 THEN
        SET "param" = "left"("x","i"-1)
      ELSE
        SET "param" = "x"
      END IF;
      IF "tp" = 'B' THEN
        IF "ucase"("left"("trim"("switchvalue"),1)) IN( '1','Y','T' ) THEN
          SET "switchvalue" = '1'
        ELSE
          SET "switchvalue" = '0'
        END IF END IF;
      EXECUTE IMMEDIATE WITH batch off "string"('update params set ',"param",'=switchvalue')
    END IF END IF;
  CALL "WPKTrackChange"('S','*');
  SELECT "name" INTO "wname" FROM "wpkglobalswitch" WHERE "wpkglobalswitchid" = "switchid";
  CALL "AuditLog"('SETTINGS',"switchid","wname","oldvalue","switchvalue")
END
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."WPKMaintainSetSwitchValue" IS 
{CREATE PROCEDURE WPKMaintainSetSwitchValue 
 
/* Application Maintained Function / Procedure - DO NOT EDIT*/
 
(IN SwitchID CHAR(20),IN SwitchLocation CHAR(20),IN SwitchSource CHAR(1),IN SwitchValue long VARCHAR)
BEGIN
  DECLARE param CHAR(100);
  DECLARE x long VARCHAR;
  DECLARE i SMALLINT;
  DECLARE tp CHAR(1);
  DECLARE oldvalue long VARCHAR;
  DECLARE wname CHAR(100);
  IF switchsource NOT IN('L','P') THEN -- Only Literal and Params maintained in this way
    RETURN
  END IF;
  SELECT WPKMaintainGetSwitchValue(switchid,switchlocation,switchsource) INTO oldvalue;
  SET switchlocation=TRIM(switchlocation);
  IF switchlocation = 'Global' OR switchlocation = '' THEN
    SET switchlocation=NULL
  END IF;
  IF switchlocation IS NOT NULL THEN
    DELETE FROM wpkglobalswitchsetting WHERE wpkglobalswitchid = switchid AND location = switchlocation;
    IF switchvalue IS NOT NULL THEN
      INSERT INTO wpkglobalswitchsetting(wpkglobalswitchid,location,VALUE) VALUES(switchid,switchlocation,switchvalue)
    END IF
  ELSE
    IF switchsource = 'L' THEN
      DELETE FROM wpkglobalswitchsetting WHERE wpkglobalswitchid = switchid AND location = 'Global';
      IF switchvalue IS NOT NULL THEN
        INSERT INTO wpkglobalswitchsetting(wpkglobalswitchid,location,VALUE) VALUES(switchid,'Global',switchvalue)
      END IF
    ELSE
      SELECT VALUE,datatype INTO x,tp FROM wpkglobalswitch WHERE wpkglobalswitchid = switchid;
      SET i=charindex(';',x);
      IF i > 0 THEN
        SET param="left"(x,i-1)
      ELSE
        SET param=x
      END IF;
      IF tp = 'B' THEN
        IF ucase("left"(TRIM(switchvalue),1)) IN('1','Y','T') THEN
          SET switchvalue='1'
        ELSE
          SET switchvalue='0'
        END IF
      END IF;
      EXECUTE IMMEDIATE WITH BATCH OFF string('update params set ',param,'=switchvalue')
    END IF
  END IF;
  CALL WPKTrackChange('S','*');
  SELECT name INTO wname FROM wpkglobalswitch WHERE wpkglobalswitchid = switchid;
  CALL AuditLog('SETTINGS', switchid,wname, oldvalue, switchvalue); 
END
}