FSN#27706 tracking op svn-id mogelijk

svn path=/Database/trunk/; revision=19536
This commit is contained in:
Peter Feij
2013-10-21 09:47:19 +00:00
parent 20d44a2176
commit b61404ca4f
2 changed files with 47 additions and 14 deletions

View File

@@ -5,6 +5,8 @@
CREATE OR REPLACE PACKAGE adm
AS
PROCEDURE systrackscript (n IN VARCHAR2, r IN VARCHAR2, force IN NUMBER);
PROCEDURE systrackscriptId (svnid IN VARCHAR2);
PROCEDURE systrackscriptId (svnid IN VARCHAR2, force IN NUMBER);
PROCEDURE trydrop (n IN VARCHAR2);
PROCEDURE tryalter (n IN VARCHAR2);
END adm;
@@ -16,8 +18,6 @@ AS
AS
revisionnr VARCHAR2 (60);
scriptname VARCHAR2 (60);
d1 adm_tracking.adm_tracking_name%TYPE;
d2 adm_tracking.adm_tracking_revision%TYPE;
BEGIN
-- Als force = 1 dan wordt onvoorwaardelijk getrackt, anders
-- wordt niet getrackt als deze (n,r) al eerder werd getrackt
@@ -50,6 +50,47 @@ AS
END IF;
END;
-- Voor SVN is dit handiger, vereist alleen de svn-id string
-- ($Id$)
PROCEDURE systrackscriptId (svnid IN VARCHAR2, force IN NUMBER)
AS
revisionnr VARCHAR2 (60);
scriptname VARCHAR2 (60);
tempstr VARCHAR2 (60);
BEGIN
-- op het gemakje ontleden
tempstr := REPLACE (svnid, '$Id: ', '');
tempstr := RTRIM(SUBSTR(tempstr, 1, instr(tempstr, ' ', 1, 2)));
-- is nu: ADM_PAC.SRC 19151
scriptname := RTRIM(SUBSTR(tempstr, 1, instr(tempstr, ' ', 1, 1))); -- ADM_PAC
revisionnr := SUBSTR(tempstr, instr(tempstr, ' ', 1, 1) + 1); -- 19151
IF force = 1
THEN
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision)
VALUES (scriptname, revisionnr);
ELSE
BEGIN
UPDATE adm_tracking
SET adm_tracking_date = SYSDATE, adm_tracking_osuser = SYS_CONTEXT ('USERENV', 'OS_USER')
WHERE UPPER (adm_tracking_name) = UPPER (scriptname)
AND UPPER (adm_tracking_revision) = UPPER (revisionnr);
IF SQL%ROWCOUNT = 0
THEN
INSERT INTO adm_tracking (adm_tracking_name, adm_tracking_revision)
VALUES (scriptname, revisionnr);
END IF;
END;
END IF;
END;
-- Trackt altijd
PROCEDURE systrackscriptId (svnid IN VARCHAR2)
AS
BEGIN
adm.systrackscriptId(svnid, 1);
END;
-- DDL. Probeert een object (TABLE, INDEX e.d.) te droppen, maar moppert niet als die niet bestond
-- Hiermee voorkomen we foutmeldingen in logfiles die niet erg zijn
PROCEDURE trydrop (n IN VARCHAR2)

View File

@@ -118,7 +118,6 @@ CREATE OR REPLACE PACKAGE fac AS
PROCEDURE registerversion (pmaj IN NUMBER, pmin IN NUMBER, ppatch IN VARCHAR2, pschema IN VARCHAR2, plang IN VARCHAR2);
PROCEDURE registercustversion (pcustid IN VARCHAR2, pcustnr IN NUMBER);
FUNCTION getdbversion RETURN VARCHAR2;
PROCEDURE systrackscript (n IN VARCHAR2, r IN VARCHAR2, force IN NUMBER);
PROCEDURE processemail (pfrom IN VARCHAR2, pto IN VARCHAR2, psubject IN VARCHAR2, pbody IN VARCHAR2, pextra IN VARCHAR2);
FUNCTION makehash (p_in VARCHAR2, method IN VARCHAR2 DEFAULT 'MD5') RETURN VARCHAR2;
FUNCTION testhash (p_hash VARCHAR2, p_in VARCHAR2) RETURN NUMBER;
@@ -3387,12 +3386,12 @@ CREATE OR REPLACE PACKAGE BODY fac AS
lsender := NULL;
END;
WHEN lxmlnode = 'message'
THEN
THEN
NULL; -- kan nog niet via tracking worden veroorzaakt (later: ontvangstbericht?)
ELSE
ELSE
NULL; -- force error?
END CASE;
END CASE;
fac.putnotificationsrtprio (pperslid_key,
lreceiver,
lcode,
@@ -3552,13 +3551,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
RETURN verstring;
END;
-- Slechts een synoniem meer
PROCEDURE systrackscript (n IN VARCHAR2, r IN VARCHAR2, force IN NUMBER)
AS
BEGIN
adm.systrackscript(n, r, force);
END;
-- Status: proven concept
PROCEDURE processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,