Merge branch 'DEVELOP_BE'
diff --git a/backendSettings.json b/backendSettings.json
index 5014a61..267442a 100644
--- a/backendSettings.json
+++ b/backendSettings.json
@@ -7,6 +7,28 @@
       "endAfterReleased": false,
       "skipInWork": false
   },
-  "emailTemplateAddressesForNotification": "approvedEmailTemplate, cancelledEmailTemplate",
-  "reloadMailAddressesInMin": 1
+  "emailTemplateAddressesForNotification": "approvedEmailTemplate, cancelledEmailTemplate, rejectedEmailTemplate",
+  "reloadMailAddressesInMin": 1,
+  "appointmentRepetition": [
+    {
+      "id": 1,
+      "name": "einmalig"
+    },
+	{
+      "id": 2,
+      "name": "täglich"
+    },
+    {
+      "id": 3,
+      "name": "wöchentlich"
+    },
+    {
+      "id": 4,
+      "name": "monatlich"
+    },
+    {
+      "id": 5,
+      "name": "jährlich"
+    }
+  ]
 }
\ No newline at end of file
diff --git a/db/migrations/V0_35__CREATE_PLGM_DB.sql b/db/migrations/V0_35__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..136f71b
--- /dev/null
+++ b/db/migrations/V0_35__CREATE_PLGM_DB.sql
@@ -0,0 +1,3670 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Table TBL_LOCK added, table HTBL_LOCK added incl. Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155', 'hugo', 'Abteilung 1',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004', 'otto', 'Abteilung 3',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222', 'otto', 'Abteilung 4',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 7',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004', 'hugo', 'Abteilung 5',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155', 'bruno', 'Abteilung 0',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222', 'otto', 'Abteilung 76',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 1',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222', 'hugo', 'Abteilung 100',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004', 'otto', 'Abteilung 15',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155', 'bruno', 'Abteilung 14',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004', 'bruno', 'Abteilung 1',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222', 'jasper', 'Abteilung 167',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  target_state character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  RESPONSIBLE_ONSITE_NAME character varying (256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying (256),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TARGET_STATE character varying (256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TARGET_STATE,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TARGET_STATE,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TARGET_STATE,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TARGET_STATE,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TARGET_STATE,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TARGET_STATE,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.RESPONSIBLE_ONSITE_NAME,OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_36__CREATE_PLGM_DB.sql b/db/migrations/V0_36__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..f6e33f0
--- /dev/null
+++ b/db/migrations/V0_36__CREATE_PLGM_DB.sql
@@ -0,0 +1,3677 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Table TBL_LOCK added, table HTBL_LOCK added incl. Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155', 'hugo', 'Abteilung 1',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004', 'otto', 'Abteilung 3',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222', 'otto', 'Abteilung 4',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 7',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004', 'hugo', 'Abteilung 5',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155', 'bruno', 'Abteilung 0',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222', 'otto', 'Abteilung 76',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 1',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222', 'hugo', 'Abteilung 100',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004', 'otto', 'Abteilung 15',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155', 'bruno', 'Abteilung 14',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004', 'bruno', 'Abteilung 1',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222', 'jasper', 'Abteilung 167',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time timestamp without time zone,
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  RESPONSIBLE_ONSITE_NAME character varying (256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying (256),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME timestamp without time zone,
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.RESPONSIBLE_ONSITE_NAME,OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_37__CREATE_PLGM_DB.sql b/db/migrations/V0_37__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..6ca69e1
--- /dev/null
+++ b/db/migrations/V0_37__CREATE_PLGM_DB.sql
@@ -0,0 +1,3677 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Table TBL_LOCK added, table HTBL_LOCK added incl. Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155', 'hugo', 'Abteilung 1',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004', 'otto', 'Abteilung 3',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222', 'otto', 'Abteilung 4',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 7',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004', 'hugo', 'Abteilung 5',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155', 'bruno', 'Abteilung 0',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222', 'otto', 'Abteilung 76',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 1',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222', 'hugo', 'Abteilung 100',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004', 'otto', 'Abteilung 15',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155', 'bruno', 'Abteilung 14',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004', 'bruno', 'Abteilung 1',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222', 'jasper', 'Abteilung 167',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  RESPONSIBLE_ONSITE_NAME character varying (256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying (256),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.RESPONSIBLE_ONSITE_NAME,OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_38__CREATE_PLGM_DB.sql b/db/migrations/V0_38__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..cde134c
--- /dev/null
+++ b/db/migrations/V0_38__CREATE_PLGM_DB.sql
@@ -0,0 +1,3681 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Index HUSER_INDEX added
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155', 'hugo', 'Abteilung 1',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004', 'otto', 'Abteilung 3',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222', 'otto', 'Abteilung 4',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 7',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004', 'hugo', 'Abteilung 5',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155', 'bruno', 'Abteilung 0',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222', 'otto', 'Abteilung 76',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 1',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222', 'hugo', 'Abteilung 100',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004', 'otto', 'Abteilung 15',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155', 'bruno', 'Abteilung 14',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004', 'bruno', 'Abteilung 1',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222', 'jasper', 'Abteilung 167',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  RESPONSIBLE_ONSITE_NAME character varying (256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying (256),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.RESPONSIBLE_ONSITE_NAME,OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_39__CREATE_PLGM_DB.sql b/db/migrations/V0_39__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..b26ffcf
--- /dev/null
+++ b/db/migrations/V0_39__CREATE_PLGM_DB.sql
@@ -0,0 +1,3690 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Index HUSER_INDEX added
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155', 'hugo', 'Abteilung 1',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004', 'otto', 'Abteilung 3',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222', 'otto', 'Abteilung 4',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 7',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004', 'hugo', 'Abteilung 5',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155', 'bruno', 'Abteilung 0',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222', 'otto', 'Abteilung 76',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155', 'hugo', 'Abteilung 1',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222', 'hugo', 'Abteilung 100',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004', 'otto', 'Abteilung 15',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155', 'bruno', 'Abteilung 14',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004', 'bruno', 'Abteilung 1',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center, responsible_onsite_name, responsible_onsite_department,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222', 'jasper', 'Abteilung 167',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  RESPONSIBLE_ONSITE_NAME character varying (256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying (256),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.RESPONSIBLE_ONSITE_NAME,NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,RESPONSIBLE_ONSITE_NAME,RESPONSIBLE_ONSITE_DEPARTMENT,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.RESPONSIBLE_ONSITE_NAME,OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_40__CREATE_PLGM_DB.sql b/db/migrations/V0_40__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..8024d50
--- /dev/null
+++ b/db/migrations/V0_40__CREATE_PLGM_DB.sql
@@ -0,0 +1,3692 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Index HUSER_INDEX added
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_13', 'Monitor kaputt', 'Monitor', 'Monitor defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 12,
+            'Monitor', 'K-222',
+            'hugo', 'Asperg', 'wöchentlich', '2018-10-20 15:15:00',
+            5, '2018-10-15 15:00:00', '2018-10-16 16:30:00',
+            '2018-10-17 14:00:00', '2018-10-23 20:15:00',
+            '2018-10-20 15:15:00', '2018-10-21 15:45:00', '2018-10-22 13:00:00',
+            '2018-10-24 16:00:00', 'in 8 Tagen', 'Den Monitor austauschen', 4,
+            1, 'jasper', 4, '2018-10-15 15:00:00',
+            'bruno', 3, '2018-10-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Monitor', 'Monitor', '2', 'cim', 'cim Beschreibung',
+            '2018-10-16 16:30:00', '2018-10-17 14:00:00',
+            'Beschreibung', 13, 'Hugo', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_41__CREATE_PLGM_DB.sql b/db/migrations/V0_41__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..bbe4c5e
--- /dev/null
+++ b/db/migrations/V0_41__CREATE_PLGM_DB.sql
@@ -0,0 +1,3662 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Index HUSER_INDEX added
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_42__CREATE_PLGM_DB.sql b/db/migrations/V0_42__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..495876f
--- /dev/null
+++ b/db/migrations/V0_42__CREATE_PLGM_DB.sql
@@ -0,0 +1,3664 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Field COLOR_CODE added in Table REF_GM_STATUS, HREF_GM_STATUS, Insert-, Delete-, and Update-Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system','09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system','17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+  COLOR_CODE character varying(20),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_43__CREATE_PLGM_DB.sql b/db/migrations/V0_43__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..a908476
--- /dev/null
+++ b/db/migrations/V0_43__CREATE_PLGM_DB.sql
@@ -0,0 +1,3664 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Field COLOR_CODE added in Table REF_GM_STATUS, HREF_GM_STATUS, Insert-, Delete-, and Update-Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system', '#79b61c', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system', '#6db12d', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system', '#990000', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system', '#60ab3f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system', '#54a650', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system', '#379979', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system', '#990000', '17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_sequence timestamp without time zone,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  planned_endtime_last_singlemeasure timestamp without time zone,
+  planned_endtime_gridmeasure timestamp without time zone,
+  starttime_first_sequence timestamp without time zone,
+  starttime_first_singlemeasure timestamp without time zone,
+  endtime_last_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-11 15:00:00', '2018-06-12 16:30:00',
+            '2018-06-13 14:00:00', '2018-06-19 20:15:00',
+            '2018-06-16 15:15:00', '2018-06-17 15:45:00', '2018-06-18 13:00:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-12 15:00:00', '2018-06-13 16:30:00',
+            '2018-06-14 14:00:00', '2018-06-20 20:15:00',
+            '2018-06-17 15:15:00', '2018-06-18 15:45:00', '2018-06-19 13:00:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-13 15:00:00', '2018-06-14 16:30:00',
+            '2018-06-15 14:00:00', '2018-06-21 20:15:00',
+            '2018-06-18 15:15:00', '2018-06-19 15:45:00', '2018-06-20 13:00:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-09 15:00:00', '2018-07-10 16:30:00',
+            '2018-07-11 14:00:00', '2018-07-17 20:15:00',
+            '2018-07-14 15:15:00', '2018-07-15 15:45:00', '2018-07-16 13:00:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-09 15:00:00', '2018-06-10 16:30:00',
+            '2018-06-11 14:00:00', '2018-06-17 20:15:00',
+            '2018-06-14 15:15:00', '2018-06-15 15:45:00', '2018-06-16 13:00:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-10 15:00:00', '2018-06-11 16:30:00',
+            '2018-06-12 14:00:00', '2018-06-18 20:15:00',
+            '2018-06-15 15:15:00', '2018-06-16 15:45:00', '2018-06-17 13:00:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-09 15:00:00', '2018-08-10 16:30:00',
+            '2018-08-11 14:00:00', '2018-08-17 20:15:00',
+            '2018-08-14 15:15:00', '2018-08-15 15:45:00', '2018-08-16 13:00:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-07 15:00:00', '2018-06-08 16:30:00',
+            '2018-06-09 14:00:00', '2018-06-15 20:15:00',
+            '2018-06-12 15:15:00', '2018-06-13 15:45:00', '2018-06-14 13:00:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_sequence, planned_starttime_first_singlemeasure,
+            planned_endtime_last_singlemeasure, planned_endtime_gridmeasure,
+            starttime_first_sequence, starttime_first_singlemeasure, endtime_last_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-15 15:00:00', '2018-06-16 16:30:00',
+            '2018-06-17 14:00:00', '2018-06-23 20:15:00',
+            '2018-06-20 15:15:00', '2018-06-21 15:45:00', '2018-06-22 13:00:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+  COLOR_CODE character varying(20),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_GRIDMEASURE timestamp without time zone,
+  STARTTIME_FIRST_SEQUENCE timestamp without time zone,
+  STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_LAST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SEQUENCE,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_LAST_SINGLEMEASURE,NEW.PLANNED_ENDTIME_GRIDMEASURE,NEW.STARTTIME_FIRST_SEQUENCE,NEW.STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_LAST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SEQUENCE,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,PLANNED_ENDTIME_LAST_SINGLEMEASURE,PLANNED_ENDTIME_GRIDMEASURE,STARTTIME_FIRST_SEQUENCE,STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_LAST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SEQUENCE,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_LAST_SINGLEMEASURE,OLD.PLANNED_ENDTIME_GRIDMEASURE,OLD.STARTTIME_FIRST_SEQUENCE,OLD.STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_LAST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_44__CREATE_PLGM_DB.sql b/db/migrations/V0_44__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..f8edb14
--- /dev/null
+++ b/db/migrations/V0_44__CREATE_PLGM_DB.sql
@@ -0,0 +1,3604 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Field COLOR_CODE added in Table REF_GM_STATUS, HREF_GM_STATUS, Insert-, Delete-, and Update-Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_DEPARTMENT CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_DEPARTMENT_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_USER_DEPARTMENT
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 3
+  CACHE 1;
+ALTER TABLE public.REF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_USER_DEPARTMENT
+(
+  id integer NOT NULL DEFAULT nextval('REF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_user_department_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_USER_DEPARTMENT
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_USER_DEPARTMENT TO plgm_service;
+
+
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Schnelle Truppe', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Aufsicht', 'testuser', '12.04.2018','testuser', '12.04.2018');
+INSERT INTO public.ref_user_department(
+            name, create_user, create_date, mod_user, mod_date)
+    VALUES ('Abt. Wartung', 'testuser', '12.04.2018','testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system', '#79b61c', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system', '#6db12d', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system', '#990000', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system', '#60ab3f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system', '#54a650', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system', '#379979', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system', '#990000', '17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 4, '2018-06-09 15:00:00',
+            'otto', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-12 16:30:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 3, '2018-06-11 15:00:00',
+            'jasper', 4, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-13 16:30:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 4, '2018-06-12 15:00:00',
+            'otto', 4, '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-14 16:30:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 4, '2018-06-13 15:00:00',
+            'otto', 5, '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-10 16:30:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 5, '2018-07-09 15:00:00',
+            'otto', 3, '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 4, '2018-06-07 15:00:00',
+            'claudio', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 3, '2018-08-09 15:00:00',
+            'bruno', 5, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 4, '2018-06-09 15:00:00',
+            'dagmar', 3, '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-11 16:30:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 5, '2018-06-10 15:00:00',
+            'claudio', 5, '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 3, '2018-08-09 15:00:00',
+            'otto', 3, '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 5, '2018-06-07 15:00:00',
+            'otto', 3, '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-16 16:30:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 4, '2018-06-15 15:00:00',
+            'bruno', 3, '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_USER_DEPARTMENT Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_USER_DEPARTMENT
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_USER_DEPARTMENT_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_USER_DEPARTMENT_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_USER_DEPARTMENT
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_USER_DEPARTMENT TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+  COLOR_CODE character varying(20),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_INSERT_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_USER_DEPARTMENT (
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_UPDATE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_USER_DEPARTMENT DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_USER_DEPARTMENT (
+
+						  ID,NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_USER_DEPARTMENT_DELETE_TRG ON PUBLIC.REF_USER_DEPARTMENT;
+
+CREATE TRIGGER REF_USER_DEPARTMENT_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_USER_DEPARTMENT
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_USER_DEPARTMENT_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+
+
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_45__CREATE_PLGM_DB.sql b/db/migrations/V0_45__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..8be300c
--- /dev/null
+++ b/db/migrations/V0_45__CREATE_PLGM_DB.sql
@@ -0,0 +1,3392 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Field COLOR_CODE added in Table REF_GM_STATUS, HREF_GM_STATUS, Insert-, Delete-, and Update-Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system', '#79b61c', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system', '#6db12d', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system', '#990000', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system', '#60ab3f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system', '#54a650', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system', '#379979', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system', '#1c8d9f', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system', '#0281c4', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system', '#990000', '17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 'Abteilung abc', '2018-06-09 15:00:00',
+            'otto', 'Abteilung abc', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-12 16:30:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 'Abteilung cde', '2018-06-11 15:00:00',
+            'jasper', 'Abteilung cde', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-13 16:30:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 'Abteilung xyz', '2018-06-12 15:00:00',
+            'otto', 'Abteilung abc', '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-14 16:30:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 'Abteilung abc', '2018-06-13 15:00:00',
+            'otto', 'Abteilung syx', '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-10 16:30:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 'Abteilung lmn', '2018-07-09 15:00:00',
+            'otto', 'Abteilung lmn', '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 'Abteilung lmn', '2018-06-07 15:00:00',
+            'claudio', 'Abteilung lmn', '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 'Abteilung lmn', '2018-08-09 15:00:00',
+            'bruno', 'Abteilung lmn', '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 'Abteilung opq', '2018-06-09 15:00:00',
+            'dagmar', 'Abteilung opq', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-11 16:30:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 'Abteilung opq', '2018-06-10 15:00:00',
+            'claudio', 'Abteilung opq', '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 'Abteilung opq', '2018-08-09 15:00:00',
+            'otto', 'Abteilung opq', '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 'Abteilung opq', '2018-06-07 15:00:00',
+            'otto', 'Abteilung opq', '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-16 16:30:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 'Abteilung opq', '2018-06-15 15:00:00',
+            'bruno', 'Abteilung opq', '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung','Otto','Abteilung abc', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung def',1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung ghi',1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 'Otto','Abteilung jkl',2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 'Otto','Abteilung mno',3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 'Otto','Abteilung pqr',4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung stu',5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung vwx',5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 'Otto','Abteilung yz',6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+  COLOR_CODE character varying(20),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/db/migrations/V0_46__CREATE_PLGM_DB.sql b/db/migrations/V0_46__CREATE_PLGM_DB.sql
new file mode 100644
index 0000000..5e884db
--- /dev/null
+++ b/db/migrations/V0_46__CREATE_PLGM_DB.sql
@@ -0,0 +1,3392 @@
+/*
+**********
+********************************************************************
+* Copyright © 2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+*/
+--Field COLOR_CODE added in Table REF_GM_STATUS, HREF_GM_STATUS, Insert-, Delete-, and Update-Triggers
+
+-- ---------------------------------------------
+-- DROPS
+-- ---------------------------------------------
+DROP TABLE IF EXISTS public.TBL_STEPS;
+DROP SEQUENCE IF EXISTS public.TBL_STEPS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS public.TBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_LOCK CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_LOCK_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_USER_SETTINGS CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_USER_SETTINGS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_COST_CENTER CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_COST_CENTER_ID_SEQ;
+
+DROP TABLE IF EXISTS public.TBL_GRIDMEASURE CASCADE;
+DROP SEQUENCE IF EXISTS public.TBL_GRIDMEASURE_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_BRANCH_LEVEL CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_BRANCH_LEVEL_ID_SEQ;
+
+DROP TABLE IF EXISTS public.REF_GM_STATUS CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_GM_STATUS_ID_SEQ;
+
+DROP TABLE IF EXISTS public.tbl_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_measure_documents CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_measure_documents_id_seq;
+
+DROP TABLE IF EXISTS public.tbl_id_counter CASCADE;
+DROP SEQUENCE IF EXISTS public.tbl_id_counter_id_seq;
+
+DROP TABLE IF EXISTS public.REF_TERRITORY CASCADE;
+DROP SEQUENCE IF EXISTS public.REF_TERRITORY_ID_SEQ;
+
+
+DROP INDEX IF EXISTS public.huser_index;
+
+-- ---------------------------------------------
+-- TABLE REF_TERRITORY
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_TERRITORY_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_TERRITORY
+(
+  id integer NOT NULL DEFAULT nextval('REF_TERRITORY_ID_SEQ'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_TERRITORY_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_TERRITORY
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_TERRITORY TO plgm_service;
+
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Nord', 'Region Nord', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('Ost', 'Region Ost', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.REF_TERRITORY(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('SUED', 'Region SUED', 'testuser','12.04.2018','testuser','12.04.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_LOCK
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.TBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.TBL_LOCK_ID_SEQ
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_lock
+(
+  id integer NOT NULL DEFAULT nextval('TBL_LOCK_ID_SEQ'::regclass),
+  key integer NOT NULL, -- Id from tbl_gridmeasure
+  username character varying(50) NOT NULL,
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_lock_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_lock
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_lock TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_lock_unique_key ON public.tbl_lock (key ASC, info ASC );
+
+-- ---------------------------------------------
+-- TABLE TBL_USER_SETTINGS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_user_settings_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_user_settings_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_user_settings
+(
+  id integer NOT NULL DEFAULT nextval('tbl_user_settings_id_seq'::regclass),
+  username character varying(50) NOT NULL,
+  setting_type character varying(50),
+  value character varying(4096),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_user_settings_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_user_settings
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_user_settings TO plgm_service;
+
+CREATE UNIQUE INDEX tbl_user_set_unique_key ON public.tbl_user_settings (username ASC, setting_type ASC );
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_ID_COUNTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_id_counter_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_id_counter_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_id_counter
+(
+  id integer NOT NULL DEFAULT nextval('tbl_id_counter_id_seq'::regclass),
+  counter integer NOT NULL,
+  counter_type character varying(256),
+  info character varying(256),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_id_counter_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_id_counter
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_id_counter TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_COST_CENTER
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.REF_COST_CENTER_ID_SEQ
+   INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.REF_COST_CENTER_ID_SEQ
+  OWNER TO plgm_service;
+
+
+CREATE TABLE public.REF_COST_CENTER
+(
+  id integer NOT NULL DEFAULT nextval('REF_COST_CENTER_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT REF_COST_CENTER_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_COST_CENTER
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.REF_COST_CENTER TO plgm_service;
+
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-155', 'Kostenstelle der Abteilung abc', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-004', 'Kostenstelle der Abteilung xyz', 'testuser','12.04.2018','testuser','12.04.2018');
+INSERT INTO public.ref_cost_center(
+            name, description, create_user, create_date, mod_user, mod_date)
+    VALUES ('K-222', 'Kostenstelle der Abteilung hij', 'testuser','12.04.2018','testuser','12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_BRANCH
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_BRANCH
+(
+  ID integer NOT NULL DEFAULT nextval('REF_BRANCH_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  DESCRIPTION character varying(255),
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone  NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_BRANCH_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_BRANCH TO PLGM_SERVICE;
+
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('S', 'Strom', '#fc6042','testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('G', 'Gas', '#fdea64', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('F', 'Fernwärme', '#2cc990', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.ref_branch(name, description, color_code, create_user, create_date, mod_user, mod_date)
+    VALUES ('W', 'Wasser', '#2c82c9', 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+-- ---------------------------------------------
+-- TABLE REF_BRANCH_LEVEL
+-- ---------------------------------------------
+CREATE SEQUENCE public.ref_branch_level_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.ref_branch_level_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.ref_branch_level
+(
+  id integer NOT NULL DEFAULT nextval('ref_branch_level_id_seq'::regclass),
+  name character varying(50) NOT NULL,
+  description character varying(255),
+  fk_ref_branch integer NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT ref_branch_level_pkey PRIMARY KEY (id),
+  CONSTRAINT FK_REF_BRANCH_LEVEL__REF_BRANCH FOREIGN KEY (FK_REF_BRANCH)
+      REFERENCES public.REF_BRANCH (ID) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.ref_branch_level
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.ref_branch_level TO plgm_service;
+
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level1', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level2', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Strom Level3', 'eine Beschreibung', 1, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level1', 'eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Gas Level2', 'noch eine Beschreibung', 2, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+INSERT INTO public.REF_BRANCH_LEVEL(
+            name, description, fk_ref_branch, create_user, create_date, mod_user, mod_date)
+    VALUES ('Fernwärme Level3', 'und noch eine Beschreibung', 3, 'testuser', '12.04.2018', 'testuser', '12.04.2018');
+
+-- ---------------------------------------------
+-- TABLE REF_GM_STATUS
+-- ---------------------------------------------
+CREATE SEQUENCE public.REF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.REF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.REF_GM_STATUS
+(
+  ID integer NOT NULL DEFAULT nextval('REF_GM_STATUS_ID_SEQ'::regclass),
+  NAME character varying(50) NOT NULL,
+  COLOR_CODE character varying(20),
+  CREATE_USER character varying(100) NOT NULL,
+  CREATE_DATE timestamp without time zone NOT NULL,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT REF_GM_STATUS_PKEY PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE public.REF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_GM_STATUS TO PLGM_SERVICE;
+
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (0,'Neu','system', 'rgba(121,182,28,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (1,'Beantragt','system', 'rgba(109,177,45,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (2,'Storniert','system', 'rgba(153,0,0,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (3,'Zur Genehmigung','system', 'rgba(96,171,63,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (4,'Genehmigt','system', 'rgba(84,166,80,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (5,'Angefordert','system', 'rgba(69,159,101,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (6,'Freigegeben','system', 'rgba(55,153,121,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (7,'Schalten aktiv','system', 'rgba(41,146,141,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (8,'In Arbeit','system', 'rgba(28,141,159,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (9,'Arbeit beendet','system', 'rgba(12,133,182,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (10,'Maßnahme beendet','system', 'rgba(2,129,196,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (11,'Geschlossen','system', 'rgba(2,129,196,1)', '09.04.2018','system','09.04.2018');
+INSERT INTO
+  public.REF_GM_STATUS(id, name, create_user, color_code, create_date, mod_user, mod_date)
+VALUES
+  (12,'Abgelehnt','system', 'rgba(153,0,0,1)', '17.06.2018','system','17.06.2018');
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_GRIDMEASURE
+-- ---------------------------------------------
+-- REQUESTER_NAME COLUMN DELETED--
+CREATE SEQUENCE public.TBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE public.TBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE public.tbl_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_gridmeasure_id_seq'::regclass),
+  id_descriptive character varying(50),
+  title character varying(256),
+  affected_resource character varying(256),
+  remark character varying(1024),
+  email_addresses character varying(1024),
+  fk_ref_gm_status integer,
+  switching_object character varying(256),
+  cost_center character varying(50),
+  approval_by character varying(256),
+  area_of_switching character varying(256),
+  appointment_repetition character varying(100),
+  appointment_startdate timestamp without time zone,
+  appointment_numberof integer,
+  planned_starttime_first_singlemeasure timestamp without time zone,
+  endtime_gridmeasure timestamp without time zone,
+  time_of_reallocation character varying(100),
+  description character varying(1024),
+  fk_ref_branch integer,
+  fk_ref_branch_level integer,
+  create_user character varying(100) NOT NULL,
+  create_user_department character varying(100),
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_user_department character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_gridmeasure__gm_status FOREIGN KEY (fk_ref_gm_status)
+      REFERENCES public.ref_gm_status (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch FOREIGN KEY (fk_ref_branch)
+      REFERENCES public.ref_branch (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION,
+  CONSTRAINT fk_gridmeasure__branch_level FOREIGN KEY (fk_ref_branch_level)
+      REFERENCES public.ref_branch_level (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_gridmeasure TO plgm_service;
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_1', 'Kabel erneuern', 'Kabel', 'Kabel defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 0,
+            'Kabel', 'K-155',
+            'otto', 'Frankfurt', 'einmalig', '2018-06-14 15:15:00',
+            7, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Das Kabel austauschen', 1,
+            1, 'otto', 'Abteilung abc', '2018-06-09 15:00:00',
+            'otto', 'Abteilung abc', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_2', 'Lampe erneuern', 'Lampe', 'Lampe defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 1,
+            'Lampe', 'K-004',
+            'jasper', 'Mannheim', 'einmalig', '2018-06-16 15:15:00',
+            3, '2018-06-12 16:30:00',
+            '2018-06-20 16:00:00', 'in zwei Tagen', 'Die Lampe austauschen', 2,
+            1, 'jasper', 'Abteilung cde', '2018-06-11 15:00:00',
+            'jasper', 'Abteilung cde', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_3', 'Transformator erneuern', 'Transformator', 'Transformator defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 2,
+            'Transformator', 'K-222',
+            'hugo', 'Murr', 'täglich', '2018-06-17 15:15:00',
+            6, '2018-06-13 16:30:00',
+            '2018-06-21 16:00:00', 'in 8 Tagen', 'Den Transformator austauschen', 4,
+            1, 'hugo', 'Abteilung xyz', '2018-06-12 15:00:00',
+            'otto', 'Abteilung abc', '2018-06-17 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_4', 'Transformator ersetzen', 'Transformator', 'Transformator kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 3,
+            'Transformator', 'K-155',
+            'otto', 'Stuttgart', 'einmalig', '2018-06-18 15:15:00',
+            3, '2018-06-14 16:30:00',
+            '2018-06-22 16:00:00', 'in 9 Tagen', 'Den Transformator austauschen', 3,
+            1, 'otto', 'Abteilung abc', '2018-06-13 15:00:00',
+            'otto', 'Abteilung syx', '2018-06-18 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_5', 'Gas Station', 'Station', 'Station defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 4,
+            'Station', 'K-004',
+            'otto', 'Ludwigsburg', 'wöchentlich', '2018-07-14 15:15:00',
+            1, '2018-07-10 16:30:00',
+            '2018-07-18 16:00:00', 'in zwei Wochen', 'Die Gas Station untersuchen', 2,
+            1, 'otto', 'Abteilung lmn', '2018-07-09 15:00:00',
+            'otto', 'Abteilung lmn', '2018-07-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_6', 'Stuhl mit drei Beinen', 'Stuhl', 'Stuhl kaputt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 5,
+            'Stuhl', 'K-155',
+            'otto', 'Hamburg', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Stuhl austauschen', 4,
+            1, 'claudio', 'Abteilung lmn', '2018-06-07 15:00:00',
+            'claudio', 'Abteilung lmn', '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_7', 'Kabel vergrößern', 'Kabel', 'Kabel zu kurz', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 6,
+            'Kabel', 'K-222',
+            'dagmar', 'Steinheim', 'einmalig', '2018-08-14 15:15:00',
+            27, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in zwei Wochen', 'Das Kabel vergrößern', 3,
+            1, 'claudio', 'Abteilung lmn', '2018-08-09 15:00:00',
+            'bruno', 'Abteilung lmn', '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_8', 'Transformator austauschen', 'Transformator', 'Transformator 160 Grads', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 7,
+            'Transformator', 'K-155',
+            'dagmar', 'Murr', 'täglich', '2018-06-14 15:15:00',
+            6, '2018-06-10 16:30:00',
+            '2018-06-18 16:00:00', 'in zwei Tagen', 'Den Transformator austauschen', 1,
+            1, 'dagmar', 'Abteilung opq', '2018-06-09 15:00:00',
+            'dagmar', 'Abteilung opq', '2018-06-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_9', 'Alles kaputt', 'Alles', 'Alles defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 8,
+            'Alles', 'K-222',
+            'otto', 'Berlin', 'einmalig', '2018-06-15 15:15:00',
+            2, '2018-06-11 16:30:00',
+            '2018-06-19 16:00:00', 'in zwei Jahren', 'Alles wegwerfen', 2,
+            3, 'bruno', 'Abteilung opq', '2018-06-10 15:00:00',
+            'claudio', 'Abteilung opq', '2018-06-15 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_10', 'Schalter erneuern', 'Schalter', 'Schalter defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 9,
+            'Schalter', 'K-004',
+            'hugo', 'Kassel', 'einmalig', '2018-08-14 15:15:00',
+            9, '2018-08-10 16:30:00',
+            '2018-08-18 16:00:00', 'in 6 Tagen', 'Den Schalter austauschen', 1,
+            1, 'dagmar', 'Abteilung opq', '2018-08-09 15:00:00',
+            'otto', 'Abteilung opq', '2018-08-14 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_11', 'Rechner austauschen', 'Rechner', 'Rechner defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 10,
+            'Rechner', 'K-155',
+            'claudio', 'Murr', 'einmalig', '2018-06-12 15:15:00',
+            3, '2018-06-08 16:30:00',
+            '2018-06-16 16:00:00', 'in zwei Tagen', 'Den Rechner austauschen', 4,
+            1, 'hugo', 'Abteilung opq', '2018-06-07 15:00:00',
+            'otto', 'Abteilung opq', '2018-06-12 15:15:00');
+
+INSERT INTO public.tbl_gridmeasure(
+            id_descriptive, title, affected_resource, remark, email_addresses, fk_ref_gm_status,
+            switching_object, cost_center,
+            approval_by, area_of_switching, appointment_repetition, appointment_startdate,
+            appointment_numberof, planned_starttime_first_singlemeasure,
+            endtime_gridmeasure, time_of_reallocation, description, fk_ref_branch,
+            fk_ref_branch_level, create_user, create_user_department, create_date,
+            mod_user, mod_user_department, mod_date)
+    VALUES ('2018_12', 'Maschine untersuchen', 'Maschine', 'Maschine defekt', 'mailingListRecipient@test.de; mailingList2Recipient@test.de', 11,
+            'Maschine', 'K-004',
+            'otto', 'Ludwigsburg', 'einmalig', '2018-06-20 15:15:00',
+            5, '2018-06-16 16:30:00',
+            '2018-06-24 16:00:00', 'in 8 Tagen', 'Die Maschine austauschen', 1,
+            1, 'bruno', 'Abteilung opq', '2018-06-15 15:00:00',
+            'bruno', 'Abteilung opq', '2018-06-20 15:15:00');
+
+
+
+
+-- ---------------------------------------------
+-- TABLE TBL_SINGLE_GRIDMEASURE
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_single_gridmeasure_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_single_gridmeasure_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_single_gridmeasure
+(
+  id integer NOT NULL DEFAULT nextval('tbl_single_gridmeasure_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  title character varying(256),
+  switching_object character varying(256),
+  cim_id character varying(256),
+  cim_name character varying(256),
+  cim_description character varying(1024),
+  planned_starttime_singlemeasure timestamp without time zone,
+  planned_endtime_singlemeasure timestamp without time zone,
+  description character varying(1024),
+  responsible_onsite_name character varying(256),
+  responsible_onsite_department character varying(256),
+  network_control character varying(256),
+  fk_tbl_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_single_gridmeasure_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_single_gridmeasure__gridmeasure FOREIGN KEY (fk_tbl_gridmeasure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_single_gridmeasure
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_single_gridmeasure TO plgm_service;
+
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department, fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe ausschalten', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung','Otto','Abteilung abc', 1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Kabel kürzen', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung def',1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (3, 'Transformator tauschen', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung ghi',1, 'Otto', '01.07.2018', 'Otto',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Lampe erneuern', 'Lampe', '2', 'cim', 'cim Beschreibung',
+            '2018-06-12 16:30:00', '2018-06-13 14:00:00',
+            'Beschreibung', 'Otto','Abteilung jkl',2, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-13 16:30:00', '2018-06-14 14:00:00',
+            'Beschreibung', 'Otto','Abteilung mno',3, 'Hugo', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-14 16:30:00', '2018-06-15 14:00:00',
+            'Beschreibung', 'Otto','Abteilung pqr',4, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Gas', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung stu',5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Gas 2', 'Gas', '2', 'cim', 'cim Beschreibung',
+            '2018-07-10 16:30:00', '2018-07-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung vwx',5, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Stuhl', 'Stuhl', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 'Otto','Abteilung yz',6, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Kabel', 'Kabel', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',7, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Transformator', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Transformator 2', 'Transformator', '2', 'cim', 'cim Beschreibung',
+            '2018-06-10 16:30:00', '2018-06-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',8, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Alles', 'Alles', '2', 'cim', 'cim Beschreibung',
+            '2018-06-11 16:30:00', '2018-06-12 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',9, 'Otto', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Schalter', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (2, 'Schalter 2', 'Schalter', '2', 'cim', 'cim Beschreibung',
+            '2018-08-10 16:30:00', '2018-08-11 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',10, 'Otto', '01.07.2018', 'Hugo',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Rechner', 'Rechner', '2', 'cim', 'cim Beschreibung',
+            '2018-06-08 16:30:00', '2018-06-09 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',11, 'Jasper', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+INSERT INTO public.tbl_single_gridmeasure(
+            sortorder, title, switching_object, cim_id, cim_name, cim_description,
+            planned_starttime_singlemeasure, planned_endtime_singlemeasure,
+            description, responsible_onsite_name, responsible_onsite_department,fk_tbl_gridmeasure, create_user, create_date, mod_user,
+            mod_date)
+    VALUES (1, 'Maschine', 'Maschine', '2', 'cim', 'cim Beschreibung',
+            '2018-06-16 16:30:00', '2018-06-17 14:00:00',
+            'Beschreibung', 'Otto','Abteilung abc',12, 'Hugo', '01.07.2018', 'Jasper',
+            '01.07.2018');
+
+
+-- ---------------------------------------------
+-- TABLE TBL_STEPS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_steps_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_steps_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_steps
+(
+  id integer NOT NULL DEFAULT nextval('tbl_steps_id_seq'::regclass),
+  sortorder integer NOT NULL,
+  switching_object character varying(256),
+  type character varying(256),
+  present_time character varying(256),
+  present_state character varying(256),
+  target_state character varying(256),
+  operator character varying(256),
+  fk_tbl_single_gridmeasure integer NOT NULL,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_steps_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_steps__single_gridmeasure FOREIGN KEY (fk_tbl_single_gridmeasure)
+      REFERENCES public.tbl_single_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_steps
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_steps TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE REF_VERSION
+-- ---------------------------------------------
+
+DROP TABLE IF EXISTS public.REF_VERSION;
+
+CREATE TABLE public.REF_VERSION
+(
+  id integer NOT NULL,
+  version character varying(100) NOT NULL,
+  CONSTRAINT ref_version_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.REF_VERSION
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE public.REF_VERSION TO PLGM_SERVICE;
+
+INSERT INTO REF_VERSION VALUES (1, '0.0.1_PG');
+
+-- ---------------------------------------------
+-- TABLE TBL_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_documents_id_seq'::regclass),
+  document_name character varying(260),
+  document bytea,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_documents_pkey PRIMARY KEY (id)
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_documents TO plgm_service;
+
+
+-- ---------------------------------------------
+-- TABLE TBL_MEASURE_DOCUMENTS
+-- ---------------------------------------------
+
+CREATE SEQUENCE public.tbl_measure_documents_id_seq
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+ALTER TABLE public.tbl_measure_documents_id_seq
+  OWNER TO plgm_service;
+
+CREATE TABLE public.tbl_measure_documents
+(
+  id integer NOT NULL DEFAULT nextval('tbl_measure_documents_id_seq'::regclass),
+  fk_tbl_measure integer,
+  fk_tbl_documents integer,
+  create_user character varying(100) NOT NULL,
+  create_date timestamp without time zone NOT NULL,
+  mod_user character varying(100),
+  mod_date timestamp without time zone,
+  CONSTRAINT tbl_measure_documents_pkey PRIMARY KEY (id),
+  CONSTRAINT fk_tbl_measure_documents_measure FOREIGN KEY (fk_tbl_measure)
+      REFERENCES public.tbl_gridmeasure (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE CASCADE,
+  CONSTRAINT fk_tbl_measure_documents_documents FOREIGN KEY (fk_tbl_documents)
+      REFERENCES public.tbl_documents (id) MATCH SIMPLE
+      ON UPDATE NO ACTION ON DELETE NO ACTION
+)
+WITH (
+  OIDS=FALSE
+);
+ALTER TABLE public.tbl_measure_documents
+  OWNER TO plgm_service;
+GRANT ALL ON TABLE public.tbl_measure_documents TO plgm_service;
+
+
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- HISTORY-TABLES
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- PUBLIC.HREF_TERRITORY Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_TERRITORY;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_TERRITORY_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_TERRITORY_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_TERRITORY_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_TERRITORY
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_TERRITORY_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_TERRITORY_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_TERRITORY
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_TERRITORY TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_LOCK Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_LOCK;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_LOCK_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_LOCK_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_LOCK_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_LOCK
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_LOCK_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  KEY integer,
+  USERNAME character varying (50),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_LOCK_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_LOCK
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_LOCK TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_USER_SETTINGS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_USER_SETTINGS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_USER_SETTINGS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_USER_SETTINGS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_USER_SETTINGS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  USERNAME character varying (50),
+  SETTING_TYPE character varying (50),
+  VALUE character varying(4096),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_USER_SETTINGS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_USER_SETTINGS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_USER_SETTINGS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_COST_CENTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_COST_CENTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_COST_CENTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_COST_CENTER
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_COST_CENTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_COST_CENTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_COST_CENTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_COST_CENTER TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  COLOR_CODE character varying (20),
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH TO PLGM_SERVICE;
+
+-- PUBLIC.HREF_BRANCH_LEVEL Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_BRANCH_LEVEL
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_BRANCH_LEVEL_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying (50),
+  DESCRIPTION character varying (255),
+  FK_REF_BRANCH integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_BRANCH_LEVEL_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_BRANCH_LEVEL
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_BRANCH_LEVEL TO PLGM_SERVICE;
+
+
+-- PUBLIC.HREF_GM_STATUS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HREF_GM_STATUS;
+DROP SEQUENCE IF EXISTS PUBLIC.HREF_GM_STATUS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HREF_GM_STATUS
+(
+  HID integer NOT NULL DEFAULT nextval('HREF_GM_STATUS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  NAME character varying(50),
+  COLOR_CODE character varying(20),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HREF_GM_STATUS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HREF_GM_STATUS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HREF_GM_STATUS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+-- REQUESTER_NAME COLUMN DELETED--
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  ID_DESCRIPTIVE character varying (50),
+  TITLE character varying (256),
+  AFFECTED_RESOURCE character varying (256),
+  REMARK character varying (1024),
+  EMAIL_ADDRESSES character varying(1024),
+  FK_REF_GM_STATUS integer,
+  SWITCHING_OBJECT character varying (256),
+  COST_CENTER character varying (50),
+  APPROVAL_BY character varying (256),
+  AREA_OF_SWITCHING character varying (256),
+  APPOINTMENT_REPETITION character varying (100),
+  APPOINTMENT_STARTDATE timestamp without time zone,
+  APPOINTMENT_NUMBEROF integer,
+  PLANNED_STARTTIME_FIRST_SINGLEMEASURE timestamp without time zone,
+  ENDTIME_GRIDMEASURE timestamp without time zone,
+  TIME_OF_REALLOCATION character varying (100),
+  DESCRIPTION character varying (1024),
+  FK_REF_BRANCH integer,
+  FK_REF_BRANCH_LEVEL integer,
+  CREATE_USER_DEPARTMENT character varying (100),
+  MOD_USER_DEPARTMENT character varying (100),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_GRIDMEASURE TO PLGM_SERVICE;
+
+CREATE INDEX HUSER_INDEX ON PUBLIC.HTBL_GRIDMEASURE (HUSER);
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'otto',12,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'otto',12,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'otto',12,3, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'otto',12,4, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'otto',12,5, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'otto',12,6, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'otto',12,7, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'otto',12,8, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:09:00', 'otto',12,9, 'admin', '2018-06-11 14:09:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:10:00', 'otto',12,10, 'admin', '2018-06-11 14:10:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:11:00', 'otto',12,11, 'admin', '2018-06-11 14:11:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:55:00', 'admin',13,0, 'admin', '2018-07-01 14:55:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:56:00', 'admin',13,1, 'admin', '2018-07-01 14:56:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,3, 'admin', '2018-07-01 14:57:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-07-01 14:57:00', 'admin',13,12, 'admin', '2018-07-01 14:57:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:00:00', 'admin',11,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:01:00', 'admin',11,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:02:00', 'admin',11,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:03:00', 'admin',11,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:04:00', 'admin',11,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:05:00', 'admin',11,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:06:00', 'admin',11,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:07:00', 'admin',11,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:08:00', 'admin',11,9, 'admin', '2018-06-11 14:08:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (1, '2018-06-11 14:09:00', 'admin',11,10, 'admin', '2018-06-11 14:09:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',10,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',10,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',10,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',10,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',10,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',10,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',10,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',10,8, 'admin', '2018-06-11 14:07:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:08:00', 'admin',10,9, 'admin', '2018-06-11 14:08:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',9,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',9,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',9,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',9,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',9,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',9,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',9,7, 'admin', '2018-06-11 14:06:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:07:00', 'admin',9,8, 'admin', '2018-06-11 14:07:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',8,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',8,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',8,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',8,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',8,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',8,6, 'admin', '2018-06-11 14:05:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:06:00', 'admin',8,7, 'admin', '2018-06-11 14:06:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',7,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',7,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',7,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',7,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',7,5, 'admin', '2018-06-11 14:04:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:05:00', 'admin',7,6, 'admin', '2018-06-11 14:05:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',6,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',6,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',6,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',6,4, 'admin', '2018-06-11 14:03:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:04:00', 'admin',6,5, 'admin', '2018-06-11 14:04:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',5,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',5,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',5,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',5,4, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',4,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',4,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',4,3, 'admin', '2018-06-11 14:02:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',3,0, 'admin', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',3,1, 'admin', '2018-06-11 14:01:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:02:00', 'admin',3,3, 'admin', '2018-06-11 14:02:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:03:00', 'admin',3,2, 'admin', '2018-06-11 14:03:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:00:00', 'admin',2,0, 'jasper', '2018-06-11 14:00:00');
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',2,1, 'jasper', '2018-06-11 14:01:00');
+
+
+INSERT INTO public.htbl_gridmeasure(haction, hdate, huser, id, fk_ref_gm_status, mod_user, mod_date)
+VALUES (2, '2018-06-11 14:01:00', 'admin',1,0, 'otto', '2018-06-11 14:01:00');
+
+-- PUBLIC.HTBL_ID_COUNTER Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_ID_COUNTER;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_ID_COUNTER_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_ID_COUNTER
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_ID_COUNTER_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  COUNTER integer,
+  COUNTER_TYPE character varying (256),
+  INFO character varying (256),
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_ID_COUNTER_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_ID_COUNTER
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_ID_COUNTER TO PLGM_SERVICE;
+
+
+
+-- PUBLIC.HTBL_SINGLE_GRIDMEASURE Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+
+
+CREATE TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_SINGLE_GRIDMEASURE_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  TITLE character varying (256),
+  SWITCHING_OBJECT character varying (256),
+  CIM_ID character varying (256),
+  CIM_NAME character varying (256),
+  CIM_DESCRIPTION character varying (1024),
+  RESPONSIBLE_ONSITE_NAME character varying(256),
+  RESPONSIBLE_ONSITE_DEPARTMENT character varying(256),
+  NETWORK_CONTROL character varying (256),
+  PLANNED_STARTTIME_SINGLEMEASURE timestamp without time zone,
+  PLANNED_ENDTIME_SINGLEMEASURE timestamp without time zone,
+  DESCRIPTION character varying (1024),
+  FK_TBL_GRIDMEASURE integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_SINGLE_GRIDMEASURE_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_SINGLE_GRIDMEASURE TO PLGM_SERVICE;
+
+
+
+
+-- PUBLIC.HTBL_STEPS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_STEPS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_STEPS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_STEPS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_STEPS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_STEPS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_STEPS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  SORTORDER integer,
+  SWITCHING_OBJECT character varying (256),
+  TYPE character varying(256),
+  PRESENT_TIME character varying(256),
+  PRESENT_STATE character varying(256),
+  TARGET_STATE character varying (256),
+  OPERATOR character varying(256),
+  FK_TBL_SINGLE_GRIDMEASURE integer,
+  CREATE_USER character varying (100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying (100),
+  MOD_DATE timestamp without time zone,
+
+  CONSTRAINT HTBL_STEPS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_STEPS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_STEPS TO PLGM_SERVICE;
+
+
+-- PUBLIC.HTBL_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  DOCUMENT_NAME character varying (260),
+  DOCUMENT bytea,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_DOCUMENTS TO PLGM_SERVICE;
+
+-- PUBLIC.HTBL_MEASURE_DOCUMENTS Automatic generanted History Table DDL --
+-- <GENERATED CODE!>
+
+DROP TABLE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS;
+DROP SEQUENCE IF EXISTS PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ;
+
+CREATE SEQUENCE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  INCREMENT 1
+  MINVALUE 1
+  MAXVALUE 9223372036854775807
+  START 1
+  CACHE 1;
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS_ID_SEQ
+  OWNER TO PLGM_SERVICE;
+
+CREATE TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+(
+  HID integer NOT NULL DEFAULT nextval('HTBL_MEASURE_DOCUMENTS_ID_SEQ'::regclass),
+  HACTION integer NOT NULL,
+  HDATE timestamp without time zone NOT NULL,
+  HUSER character varying(100),
+
+  ID integer,
+  FK_TBL_MEASURE integer,
+  FK_TBL_DOCUMENTS integer,
+
+  CREATE_USER character varying(100),
+  CREATE_DATE timestamp without time zone,
+  MOD_USER character varying(100),
+  MOD_DATE timestamp without time zone,
+  CONSTRAINT HTBL_MEASURE_DOCUMENTS_PKEY PRIMARY KEY (HID)
+)
+WITH (
+  OIDS=FALSE
+);
+
+ALTER TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS
+  OWNER TO PLGM_SERVICE;
+GRANT ALL ON TABLE PUBLIC.HTBL_MEASURE_DOCUMENTS TO PLGM_SERVICE;
+
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+-- TRIGGER
+-- ----------------------------------------------------------------------------
+-- ----------------------------------------------------------------------------
+
+-- ---------------------------------------------
+-- TRIGGER REF_TERRITORY
+-- ---------------------------------------------
+
+
+-- PUBLIC.REF_TERRITORY INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_INSERT_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_TERRITORY (
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_UPDATE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_TERRITORY DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_TERRITORY (
+
+						  ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_TERRITORY_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_TERRITORY_DELETE_TRG ON PUBLIC.REF_TERRITORY;
+
+CREATE TRIGGER REF_TERRITORY_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_TERRITORY
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_TERRITORY_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_INSERT_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_ID_COUNTER (
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.COUNTER,NEW.COUNTER_TYPE,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_UPDATE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_ID_COUNTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_ID_COUNTER (
+
+						  ID,COUNTER,COUNTER_TYPE,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.COUNTER,OLD.COUNTER_TYPE,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_ID_COUNTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_ID_COUNTER_DELETE_TRG ON PUBLIC.TBL_ID_COUNTER;
+
+CREATE TRIGGER TBL_ID_COUNTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_ID_COUNTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_ID_COUNTER_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION, RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION, NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT,NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.TITLE,NEW.SWITCHING_OBJECT,NEW.CIM_ID,NEW.CIM_NAME,NEW.CIM_DESCRIPTION,NEW.PLANNED_STARTTIME_SINGLEMEASURE,NEW.PLANNED_ENDTIME_SINGLEMEASURE,NEW.DESCRIPTION,NEW.RESPONSIBLE_ONSITE_NAME, NEW.RESPONSIBLE_ONSITE_DEPARTMENT,NEW.NETWORK_CONTROL,NEW.FK_TBL_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_SINGLE_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_SINGLE_GRIDMEASURE (
+
+						  ID,SORTORDER,TITLE,SWITCHING_OBJECT,CIM_ID,CIM_NAME,CIM_DESCRIPTION,PLANNED_STARTTIME_SINGLEMEASURE,PLANNED_ENDTIME_SINGLEMEASURE,DESCRIPTION,RESPONSIBLE_ONSITE_NAME, RESPONSIBLE_ONSITE_DEPARTMENT, NETWORK_CONTROL,FK_TBL_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.TITLE,OLD.SWITCHING_OBJECT,OLD.CIM_ID,OLD.CIM_NAME,OLD.CIM_DESCRIPTION,OLD.PLANNED_STARTTIME_SINGLEMEASURE,OLD.PLANNED_ENDTIME_SINGLEMEASURE,OLD.DESCRIPTION,OLD.RESPONSIBLE_ONSITE_NAME, OLD.RESPONSIBLE_ONSITE_DEPARTMENT,OLD.NETWORK_CONTROL,OLD.FK_TBL_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_SINGLE_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_SINGLE_GRIDMEASURE;
+
+CREATE TRIGGER TBL_SINGLE_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_SINGLE_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_SINGLE_GRIDMEASURE_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.TBL_STEPS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR, FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE, NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR, NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_INSERT_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_STEPS (
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.SORTORDER,NEW.SWITCHING_OBJECT,NEW.TYPE,NEW.PRESENT_TIME, NEW.PRESENT_STATE, NEW.TARGET_STATE, NEW.OPERATOR,NEW.FK_TBL_SINGLE_GRIDMEASURE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_UPDATE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_STEPS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_STEPS (
+
+						  ID,SORTORDER,SWITCHING_OBJECT,TYPE,PRESENT_TIME, PRESENT_STATE, TARGET_STATE, OPERATOR,FK_TBL_SINGLE_GRIDMEASURE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.SORTORDER,OLD.SWITCHING_OBJECT,OLD.TYPE,OLD.PRESENT_TIME, OLD.PRESENT_STATE, OLD.TARGET_STATE, OLD.OPERATOR,OLD.FK_TBL_SINGLE_GRIDMEASURE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_STEPS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_STEPS_DELETE_TRG ON PUBLIC.TBL_STEPS;
+
+CREATE TRIGGER TBL_STEPS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_STEPS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_STEPS_DELETE_TRG();
+
+
+-- PUBLIC.TBL_LOCK INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_LOCK_INSERT_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_LOCK (
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.KEY,NEW.USERNAME,NEW.INFO,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_UPDATE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_LOCK DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_LOCK (
+
+						  ID,KEY,USERNAME,INFO,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.KEY,OLD.USERNAME,OLD.INFO,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_LOCK_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_LOCK_DELETE_TRG ON PUBLIC.TBL_LOCK;
+
+CREATE TRIGGER TBL_LOCK_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_LOCK
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_LOCK_DELETE_TRG();
+
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_INSERT_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_USER_SETTINGS (
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.USERNAME,NEW.SETTING_TYPE,NEW.VALUE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_UPDATE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_USER_SETTINGS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_USER_SETTINGS (
+
+						  ID,USERNAME,SETTING_TYPE,VALUE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.USERNAME,OLD.SETTING_TYPE,OLD.VALUE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_USER_SETTINGS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_USER_SETTINGS_DELETE_TRG ON PUBLIC.TBL_USER_SETTINGS;
+
+CREATE TRIGGER TBL_USER_SETTINGS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_USER_SETTINGS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_USER_SETTINGS_DELETE_TRG();
+
+
+-- PUBLIC.HREF_COST_CENTER INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_INSERT_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_INSERT_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HHREF_COST_CENTER (
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.HID,NEW.HACTION,NEW.HDATE,NEW.HUSER,NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_UPDATE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_UPDATE_TRG();
+
+
+
+-- PUBLIC.HREF_COST_CENTER DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HHREF_COST_CENTER (
+
+						  HID,HACTION,HDATE,HUSER,ID,NAME,DESCRIPTION,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.HID,OLD.HACTION,OLD.HDATE,OLD.HUSER,OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.HREF_COST_CENTER_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS HREF_COST_CENTER_DELETE_TRG ON PUBLIC.HREF_COST_CENTER;
+
+CREATE TRIGGER HREF_COST_CENTER_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.HREF_COST_CENTER
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.HREF_COST_CENTER_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_INSERT_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_UPDATE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH (
+						  ID,NAME,DESCRIPTION,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_DELETE_TRG ON PUBLIC.REF_BRANCH;
+
+CREATE TRIGGER REF_BRANCH_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_DELETE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_INSERT_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_BRANCH_LEVEL (
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_UPDATE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_BRANCH_LEVEL DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_BRANCH_LEVEL (
+
+						  ID,NAME,DESCRIPTION,FK_REF_BRANCH,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_BRANCH_LEVEL_DELETE_TRG ON PUBLIC.REF_BRANCH_LEVEL;
+
+CREATE TRIGGER REF_BRANCH_LEVEL_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_BRANCH_LEVEL
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_BRANCH_LEVEL_DELETE_TRG();
+
+
+
+
+
+-- PUBLIC.REF_GM_STATUS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_INSERT_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_INSERT_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HREF_GM_STATUS (
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.NAME,NEW.COLOR_CODE,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_UPDATE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_UPDATE_TRG();
+
+
+
+-- PUBLIC.REF_GM_STATUS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HREF_GM_STATUS (
+
+						  ID,NAME,COLOR_CODE,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.NAME,OLD.COLOR_CODE,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.REF_GM_STATUS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS REF_GM_STATUS_DELETE_TRG ON PUBLIC.REF_GM_STATUS;
+
+CREATE TRIGGER REF_GM_STATUS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.REF_GM_STATUS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.REF_GM_STATUS_DELETE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_INSERT_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_GRIDMEASURE (
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.ID_DESCRIPTIVE,NEW.TITLE,NEW.AFFECTED_RESOURCE,NEW.REMARK,NEW.EMAIL_ADDRESSES,NEW.FK_REF_GM_STATUS,NEW.SWITCHING_OBJECT,NEW.COST_CENTER,NEW.APPROVAL_BY,NEW.AREA_OF_SWITCHING,NEW.APPOINTMENT_REPETITION,NEW.APPOINTMENT_STARTDATE,NEW.APPOINTMENT_NUMBEROF,NEW.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,NEW.ENDTIME_GRIDMEASURE,NEW.TIME_OF_REALLOCATION,NEW.DESCRIPTION,NEW.FK_REF_BRANCH,NEW.FK_REF_BRANCH_LEVEL,NEW.CREATE_USER,NEW.CREATE_USER_DEPARTMENT,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_USER_DEPARTMENT,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_UPDATE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_GRIDMEASURE DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_GRIDMEASURE (
+
+						  ID,ID_DESCRIPTIVE,TITLE,AFFECTED_RESOURCE,REMARK,EMAIL_ADDRESSES,FK_REF_GM_STATUS,SWITCHING_OBJECT,COST_CENTER,APPROVAL_BY,AREA_OF_SWITCHING,APPOINTMENT_REPETITION,APPOINTMENT_STARTDATE,APPOINTMENT_NUMBEROF,PLANNED_STARTTIME_FIRST_SINGLEMEASURE,ENDTIME_GRIDMEASURE,TIME_OF_REALLOCATION,DESCRIPTION,FK_REF_BRANCH,FK_REF_BRANCH_LEVEL,CREATE_USER,CREATE_USER_DEPARTMENT,CREATE_DATE,MOD_USER,MOD_USER_DEPARTMENT,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.ID_DESCRIPTIVE,OLD.TITLE,OLD.AFFECTED_RESOURCE,OLD.REMARK,OLD.EMAIL_ADDRESSES,OLD.FK_REF_GM_STATUS,OLD.SWITCHING_OBJECT,OLD.COST_CENTER,OLD.APPROVAL_BY,OLD.AREA_OF_SWITCHING,OLD.APPOINTMENT_REPETITION,OLD.APPOINTMENT_STARTDATE,OLD.APPOINTMENT_NUMBEROF,OLD.PLANNED_STARTTIME_FIRST_SINGLEMEASURE,OLD.ENDTIME_GRIDMEASURE,OLD.TIME_OF_REALLOCATION,OLD.DESCRIPTION,OLD.FK_REF_BRANCH,OLD.FK_REF_BRANCH_LEVEL,OLD.CREATE_USER,OLD.CREATE_USER_DEPARTMENT,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_USER_DEPARTMENT,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_GRIDMEASURE_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_GRIDMEASURE_DELETE_TRG ON PUBLIC.TBL_GRIDMEASURE;
+
+CREATE TRIGGER TBL_GRIDMEASURE_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_GRIDMEASURE
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_GRIDMEASURE_DELETE_TRG();
+
+
+-- PUBLIC.TBL_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_DOCUMENTS (
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.DOCUMENT_NAME,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_DOCUMENTS (
+
+						  ID,DOCUMENT_NAME,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.DOCUMENT_NAME,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_DOCUMENTS;
+
+CREATE TRIGGER TBL_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_DOCUMENTS_DELETE_TRG();
+
+
+
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS INSERT TRIGGER --
+-- <GENERATED CODE!>
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				 (
+
+						  NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+
+                          1,
+						  current_timestamp,
+					      NEW.CREATE_USER );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG()
+  OWNER TO PLGM_SERVICE;
+
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_INSERT_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_INSERT_TRG
+  BEFORE INSERT
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_INSERT_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS UPDATE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 			    (
+	                      NEW.ID,NEW.FK_TBL_MEASURE,NEW.FK_TBL_DOCUMENTS,NEW.CREATE_USER,NEW.CREATE_DATE,NEW.MOD_USER,NEW.MOD_DATE,
+                          2,
+						  current_timestamp,
+					      NEW.MOD_USER
+					    );
+
+        RETURN NEW;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_UPDATE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_UPDATE_TRG
+  BEFORE UPDATE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_UPDATE_TRG();
+
+
+
+-- PUBLIC.TBL_MEASURE_DOCUMENTS DELETE TRIGGER --
+-- <GENERATED CODE!>
+
+CREATE OR REPLACE FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  RETURNS trigger AS
+$BODY$
+    BEGIN
+    IF TG_OP = 'DELETE' THEN
+	INSERT INTO HTBL_MEASURE_DOCUMENTS (
+
+						  ID,FK_TBL_MEASURE,FK_TBL_DOCUMENTS,CREATE_USER,CREATE_DATE,MOD_USER,MOD_DATE,
+
+						  HACTION,
+						  HDATE,
+						  HUSER
+						 )
+	VALUES 				(
+						  OLD.ID,OLD.FK_TBL_MEASURE,OLD.FK_TBL_DOCUMENTS,OLD.CREATE_USER,OLD.CREATE_DATE,OLD.MOD_USER,OLD.MOD_DATE,
+
+                          3,
+						  current_timestamp,
+					      OLD.MOD_USER );
+	END IF;
+
+        RETURN OLD;
+    END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+ALTER FUNCTION PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG()
+  OWNER TO PLGM_SERVICE;
+
+DROP TRIGGER IF EXISTS TBL_MEASURE_DOCUMENTS_DELETE_TRG ON PUBLIC.TBL_MEASURE_DOCUMENTS;
+
+CREATE TRIGGER TBL_MEASURE_DOCUMENTS_DELETE_TRG
+  BEFORE DELETE
+  ON PUBLIC.TBL_MEASURE_DOCUMENTS
+  FOR EACH ROW
+  EXECUTE PROCEDURE PUBLIC.TBL_MEASURE_DOCUMENTS_DELETE_TRG();
diff --git a/get_started.txt b/deploy/get_started.txt
similarity index 100%
rename from get_started.txt
rename to deploy/get_started.txt
diff --git a/devlocal.yml b/devlocal.yml
index 8aa45cd..f062f10 100644
--- a/devlocal.yml
+++ b/devlocal.yml
@@ -3,6 +3,16 @@
 portalFeLoginURL: http://localhost:8080/portalFE/#/login
 whiteListDocumenttypes: application/pdf,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,image/png,image/jpeg
 
+rabbitmqConfiguration:
+  host: 172.18.22.160
+  port: 5672
+  user: admin
+  password: admin
+  exchangeName: openk-pgm-exchange
+  autoSetup: true
+  queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
+
+
 dbConn:
   driver: org.postgresql.Driver
   url: jdbc:postgresql://172.18.22.160:5432/PlannedGridMeasuresDev
diff --git a/devserver.yml b/devserver.yml
index 8fe6043..40b6e5c 100644
--- a/devserver.yml
+++ b/devserver.yml
@@ -2,6 +2,16 @@
 portalBaseURL: http://localhost:8880/portal/rest/beservice
 portalFeLoginURL: http://172.18.22.160:8880/portalFE/#/login
 whiteListDocumenttypes: application/pdf,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,image/png,image/jpeg
+
+rabbitmqConfiguration:
+  host: localhost
+  port: 5672
+  user: admin
+  password: admin
+  exchangeName: openk-pgm-exchange
+  autoSetup: true
+  queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
+
 dbConn:
   driver: org.postgresql.Driver
   url: jdbc:postgresql://172.18.22.160:5432/PlannedGridMeasuresDev
diff --git a/emailConfiguration/emailTemplates/activeEmailTemplate.txt b/emailConfiguration/emailTemplates/activeEmailTemplate.txt
index 8fd4686..6eeaf36 100644
--- a/emailConfiguration/emailTemplates/activeEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/activeEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: active1Recipient@test.de, active2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Schalten aktiv geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Schalten aktiv geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/appliedEmailTemplate.txt b/emailConfiguration/emailTemplates/appliedEmailTemplate.txt
index b69fb77..e98a321 100644
--- a/emailConfiguration/emailTemplates/appliedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/appliedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: applied1Recipient@test.de, applied2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Beantragt geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Beantragt geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/approvedEmailTemplate.txt b/emailConfiguration/emailTemplates/approvedEmailTemplate.txt
index 27c72b1..41837cd 100644
--- a/emailConfiguration/emailTemplates/approvedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/approvedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: approved1Recipient@test.de, approved2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Genehmigt geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Genehmigt geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/canceledEmailTemplate.txt b/emailConfiguration/emailTemplates/canceledEmailTemplate.txt
index 78bc41a..744debd 100644
--- a/emailConfiguration/emailTemplates/canceledEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/canceledEmailTemplate.txt
@@ -1,6 +1,6 @@
-To: canceled1Recipient@test.de, canceled2Recipient@test.de
+To: canceled1Recipient@test.de, canceled2Recipient@test.de, approved1Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Storniert geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Storniert geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/closedEmailTemplate.txt b/emailConfiguration/emailTemplates/closedEmailTemplate.txt
index fbd09af..b6e7b55 100644
--- a/emailConfiguration/emailTemplates/closedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/closedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: closed1Recipient@test.de, closed2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Geschlossen geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Geschlossen geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/finishedEmailTemplate.txt b/emailConfiguration/emailTemplates/finishedEmailTemplate.txt
index f08d661..d286fb2 100644
--- a/emailConfiguration/emailTemplates/finishedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/finishedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: finished1Recipient@test.de, finished2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Maßnahme beendet geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Maßnahme beendet geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/forapprovalEmailTemplate.txt b/emailConfiguration/emailTemplates/forapprovalEmailTemplate.txt
index e5d2b50..a461da5 100644
--- a/emailConfiguration/emailTemplates/forapprovalEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/forapprovalEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: forapproval1Recipient@test.de, forapproval2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Zur Genehmigung geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Zur Genehmigung geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/inworkEmailTemplate.txt b/emailConfiguration/emailTemplates/inworkEmailTemplate.txt
index 060080b..4340b1f 100644
--- a/emailConfiguration/emailTemplates/inworkEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/inworkEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: inwork1Recipient@test.de, inwork2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status In Arbeit geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status In Arbeit geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/rejectedEmailTemplate.txt b/emailConfiguration/emailTemplates/rejectedEmailTemplate.txt
index 397488d..e616be2 100644
--- a/emailConfiguration/emailTemplates/rejectedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/rejectedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: rejected1Recipient@test.de, rejected2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde zurückgewiesen.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde zurückgewiesen.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/releasedEmailTemplate.txt b/emailConfiguration/emailTemplates/releasedEmailTemplate.txt
index 338c5a4..623c812 100644
--- a/emailConfiguration/emailTemplates/releasedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/releasedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: released1Recipient@test.de, released2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Freigegeben geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Freigegeben geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/requestedEmailTemplate.txt b/emailConfiguration/emailTemplates/requestedEmailTemplate.txt
index c26687b..22dbc21 100644
--- a/emailConfiguration/emailTemplates/requestedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/requestedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: requested1Recipient@test.de, requested2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Angefordert geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Angefordert geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfiguration/emailTemplates/workfinishedEmailTemplate.txt b/emailConfiguration/emailTemplates/workfinishedEmailTemplate.txt
index 83e42c0..d832979 100644
--- a/emailConfiguration/emailTemplates/workfinishedEmailTemplate.txt
+++ b/emailConfiguration/emailTemplates/workfinishedEmailTemplate.txt
@@ -1,6 +1,6 @@
 To: workfinished1Recipient@test.de, workfinished2Recipient@test.de
 CC: test1CCRecipient@test.de, test2CCRecipient@test.de
-Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $plannedEndtimeLastSinglemeasure$ wurde in den Status Arbeit beendet geändert.
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Arbeit beendet geändert.
 
 Body:
 Sehr geehrte Damen und Herren,
diff --git a/emailConfigurationTest/emailTemplates/finishedEmailTemplateTest.txt b/emailConfigurationTest/emailTemplates/finishedEmailTemplateTest.txt
new file mode 100644
index 0000000..b31ebec
--- /dev/null
+++ b/emailConfigurationTest/emailTemplates/finishedEmailTemplateTest.txt
@@ -0,0 +1,15 @@
+To: test1Recipient@test.de, test2Recipient@test.de
+CC: testCCRecipient@test.de, test2CCRecipient@test.de
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde in den Status Maßnahme beendet geändert.
+
+Body:
+TEST
+Sehr geehrte Damen und Herren,
+
+die im Betreff genannte Maßnahme ist über folgenden Link erreichbar:
+
+$directMeasureLink$
+
+Mit freundlichen Grüßen
+
+Ihre Admin-Meister-Team der PTA GmbH
\ No newline at end of file
diff --git a/emailConfigurationTest/emailTemplates/rejectedEmailTemplateTest.txt b/emailConfigurationTest/emailTemplates/rejectedEmailTemplateTest.txt
new file mode 100644
index 0000000..dfe9ec6
--- /dev/null
+++ b/emailConfigurationTest/emailTemplates/rejectedEmailTemplateTest.txt
@@ -0,0 +1,15 @@
+To: test1Recipient@test.de, test2Recipient@test.de
+CC: testCCRecipient@test.de, test2CCRecipient@test.de
+Subject: Die Maßnahme "$gridMeasureTitle$" mit Beginn: "$plannedStarttimeFirstSinglemeasure$" und Ende: $endtimeGridmeasure$ wurde zurückgewiesen.
+
+Body:
+TEST
+Sehr geehrte Damen und Herren,
+
+die im Betreff genannte Maßnahme ist über folgenden Link erreichbar:
+
+$directMeasureLink$
+
+Mit freundlichen Grüßen
+
+Ihre Admin-Meister-Team der PTA GmbH
\ No newline at end of file
diff --git a/emailConfigurationTest/mailTemplatesPaths.json b/emailConfigurationTest/mailTemplatesPaths.json
index bfdf746..8305795 100644
--- a/emailConfigurationTest/mailTemplatesPaths.json
+++ b/emailConfigurationTest/mailTemplatesPaths.json
@@ -7,9 +7,9 @@
   "activeEmailTemplate": "",
   "inworkEmailTemplate": "",
   "workfinishedEmailTemplate": "",
-  "finishedEmailTemplate": "",
+  "finishedEmailTemplate": "emailConfigurationTest/emailTemplates/finishedEmailTemplateTest.txt",
   "closedEmailTemplate": "emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt",
 
   "cancelledEmailTemplate": "",
-  "rejectedEmailTemplate": ""
+  "rejectedEmailTemplate": "emailConfigurationTest/emailTemplates/rejectedEmailTemplateTest.txt"
 }
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index e639cb6..e1837c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,8 +52,9 @@
         <asciidoctorj-version>1.5.4</asciidoctorj-version>
         <asciidoctorj-diagram-versions>1.5.4.1</asciidoctorj-diagram-versions>
         <jruby-complete-version>1.7.21</jruby-complete-version>
-        <javax.mail.version>1.4</javax.mail.version>
+        <javax.mail.version>1.4.3</javax.mail.version>
         <greenmail.version>1.5.7</greenmail.version>
+        <rabbitmq.version>5.2.0</rabbitmq.version>
 
         <database.url>jdbc:postgresql://172.18.22.160:5432/PlannedGridMeasuresDev</database.url>
         <database.user>postgres</database.user>
@@ -176,6 +177,13 @@
             <version>${greenmail.version}</version>
             <scope>test</scope>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client -->
+        <dependency>
+            <groupId>com.rabbitmq</groupId>
+            <artifactId>amqp-client</artifactId>
+            <version>${rabbitmq.version}</version>
+        </dependency>
+
     </dependencies>
 
     <build>
@@ -325,11 +333,6 @@
                         <version>${asciidoctorj-pdf-version}</version>
                     </dependency>
                     <dependency>
-                        <groupId>org.jruby</groupId>
-                        <artifactId>jruby-complete</artifactId>
-                        <version>${jruby-complete-version}</version>
-                    </dependency>
-                    <dependency>
                         <groupId>org.asciidoctor</groupId>
                         <artifactId>asciidoctorj</artifactId>
                         <version>${asciidoctorj-version}</version>
diff --git a/prodserver.yml b/prodserver.yml
index 16970c3..aade14a 100644
--- a/prodserver.yml
+++ b/prodserver.yml
@@ -3,6 +3,13 @@
 portalFeLoginURL: http://172.18.22.160:8880/portalFE/#/login
 whiteListDocumenttypes: application/pdf,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,image/png,image/jpeg
 
+rabbitmqConfiguration:
+  host: localhost
+  port: 5672
+  user: admin
+  password: admin
+  exchangeName: openk-pgm-exchange
+  autoSetup: true
 
 dbConn:
   driver: org.postgresql.Driver
diff --git a/qserver.yml b/qserver.yml
index 08c68bf..e6d2a7f 100644
--- a/qserver.yml
+++ b/qserver.yml
@@ -3,6 +3,13 @@
 portalFeLoginURL: http://169.50.13.154/portalFE/#/login
 whiteListDocumenttypes: application/pdf,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel.sheet.macroEnabled.12,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-word.document.macroEnabled.12,image/png,image/jpeg
 
+rabbitmqConfiguration:
+  host: localhost
+  port: 15672
+  user: openk
+  password: openk
+  exchangeName: openk-pgm-exchange
+  autoSetup: true
 
 dbConn:
   driver: org.postgresql.Driver
diff --git a/roleAccessConfiguration/role-access-definition.json b/roleAccessConfiguration/role-access-definition.json
index 3b51740..97cd86a 100644
--- a/roleAccessConfiguration/role-access-definition.json
+++ b/roleAccessConfiguration/role-access-definition.json
@@ -136,12 +136,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
 
             ]
         },
@@ -202,12 +207,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -269,12 +279,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -334,12 +349,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -398,12 +418,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -462,12 +487,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -525,12 +555,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -588,12 +623,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -647,12 +687,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -708,12 +753,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         },
         {
@@ -769,12 +819,17 @@
                 "stepAffectedResources",
                 "stepSwitchingObject",
                 "stepTargetState",
+                "stepPresentState",
+                "stepPresentTime",
+                "stepType",
+                "stepOperator",
                 "useResourceBtn",
                 "addStepBtn",
                 "createInvertedStep",
                 "deleteSingleGridMeasureBtn",
                 "emailAddress",
-                "addEmailDistributionEntryBtn"
+                "addEmailDistributionEntryBtn",
+                "networkControl"
             ]
         }
     ],
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index 55af5d4..9225e92 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -19,7 +19,7 @@
 :source-highlighter: highlightjs
 :highlightjs-theme: solarized_dark
 
-This documentation bases on ARC42-Template (v7.0):
+This documentation is based on the ARC42-Template (v7.0):
 
 <<<
 
@@ -27,7 +27,7 @@
 
 === Requirements Overview
 
-The module 'Planned Grid Measures' should support the network operators by managing the required maintenance and repair work.
+The module 'Planned Grid Measures' supports the network operators by managing the required maintenance and repair work.
 It has to provide an overview of all planned grid measures including its actual status. For that the service engineers must be
 able to update the status of their tasks by using mobile clients (smartphone or tablet pc). To get an unique planning
 of a grid measure, it is required to select the affected resources out of the network operator's inventory (network topology).
@@ -39,7 +39,7 @@
 * "Anfragespezifikation Modul Geplante Netzmaßnahme" from 12-09-2017.
 
 === Quality Goals
-The module 'Planned Grid Measures' represents a user module that bases on the architecture platform of openKONSEQUENZ. The main quality
+The module 'Planned Grid Measures' represents a user module that is based on the architecture platform of openKONSEQUENZ. The main quality
 goals of the platform are:
 
 * *Flexibility* The reference platform shall grant that different systems and modules from different vendors/developers can interact and interoperate, and may be exchanged or recombined.
@@ -78,22 +78,26 @@
 [options="header,footer"]
 |=========================================================
 |Role/Name|Contact|Expectations
-|Product Owner (represents the Distribution System Operators)|Rainer Fuhrmann, Benjamin Woboril, Oliver Tantu|The software must fulfil their functional and nonfunctional Requirements.
+|Product Owner (represents the Distribution System Operators)|Rainer Fuhrmann, Benjamin Woboril, Oliver Tantu|The software must fulfil their functional and nonfunctional requirements.
 |Module Developer|Michel Alessandrini, Jonas Tewolde, Frank Dietrich|All relevant business and technical information must be available for implementing the software.
-|External Reviewer (represents the AC/QC)|Heiko Oberländer, Alexander Langold|The software and the documentation is realized according the Quality and Architecture Handbook of openKONSEQUENZ.
+|External Reviewer (represents the AC/QC)|Heiko Oberländer, Alexander Langold|The software and the documentation is realized according to the Quality and Architecture Handbook of openKONSEQUENZ.
 |External Reviewer (represents the Eclipse-Requirements)|Angelika  Wittek|The software is  licensed under the EPL 2.0. It must be validated that all requirements are fulfilled.
 |System Integrator|n.n.|A documentation for the integration of the module in the DSO specific environments must be available.
 |=========================================================
 
 == Architecture Constraints
 
-TODO: LINK zum Eclipse Repository anpassen
-
 The main architecture constraints are:
 
 * *Public License* The module must be available under the “Eclipse Public License 2.0”.
 * *Availability* The source code of the module must be accessible to any interested person/company.
-Therefore the project is published at https://projects.eclipse.org/projects/technology.elogbook
+
+Therefore the project is published under the following repositories:
+•https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.mics.centralService
+•https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.mics.homeService
+•https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.plannedGridMeasures.backend
+•https://git.eclipse.org/r/openk-usermodules/org.eclipse.openk-usermodules.plannedGridMeasures.frontend
+
 * *Standardization* The module must use standardized data structures (CIM) [if available] and the reference platform.
 
 === Technical Constraints
@@ -106,16 +110,16 @@
 [options="header,footer"]
 |========================================================
 |Component|Constraints
-|Basis components of the reference platform
+|Base components of the reference platform
 a|* Application Server Tomcat
 * JPA EclipseLink
 * Database PostgreSQL
 
-|Enterprise Service Bus
+|Enterprise service bus
 a|* ESB Talend
 * Communication via RESTful Webservices
 
-|Programming Language Frontend
+|Programming language frontend
 a|* Angular
 * Bootstrap
 * jQuery
@@ -127,7 +131,7 @@
 |Java QA environment
 a| * Sonarqube 5.6.6
 
-|Programming Language
+|Programming language
 a|* Backend: Java 1.8
 * Frontend: Angular 4.0.0 (Javascript, Typescript, HTML5, CSS3)
 
@@ -138,7 +142,7 @@
 a|* Backend: Maven
 * Frontend: NodeJS + Angular/cli
 
-|Libraries, Frameworks,Components
+|Libraries, frameworks, components
 a|* Used Libraries/Frameworks have to be compatible to the Eclipse Public License
 
 |Architecture Documentation
@@ -162,7 +166,6 @@
 
 
 ==== Libraries
-TODO: Bibliotheken und Versionen am Ende des Projekts aktualisieren
 
 The following libraries are used:
 
@@ -170,18 +173,27 @@
 [options="header,footer"]
 |=========================================================
 |Name of the library|Version|Artefact-id|Usage|License|Tier
-|Node.js|6.10.0 LTS||JavaScript Runtime (server side)|MIT License|Frontend
-|npm (in Node.js enthalten)|3.10.10||Node Package Manager (package manager for libraries)|Artistic License 2.0|Frontend
-|Angular|4.0.0||UI-Framework|MIT License|Frontend
-|Angular Material|2.0.0-beta.2||Angular Material Design Components|MIT License|Frontend
-|Bootstrap|3.3.7||CSS-Framework |MIT License|Frontend
-|jQuery|3.1.1||JavaScript Bibliothek|MIT License|Frontend
-|ng2-daterangepicker|1.0.4||Angular 2 Daterangepicker Component|MIT License|Frontend
-|Moment.js|2.16.0||JavaScript library for date and time processing|MIT License|Frontend
-|core-js|2.4.1||JavaScript Polyfill for angular support within older browsers|MIT License|Frontend
-|rxjs|5.0.1||JavaScript Polyfill for Observables|Apache License 2.0|Frontend
-|TS-helpers|1.1.1||Helper library for compiling typescript|MIT License|Frontend
-|zone.js|0.7.2||JavaScript Polyfill for asynchronous data binding|MIT License|Frontend
+
+
+|io.dropwizard.dropwizard|1.3.1
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+|io.dropwizard.dropwizard-core|0.9.2
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>io.dropwizard</groupId>
+    <artifactId>dropwizard-core</artifactId>
+</dependency>
+----
+||Apache License 2.0|Backend
+
 |org.apache.httpcomponents.httpclient|4.5.3
 a|
 [source,xml]
@@ -189,132 +201,70 @@
 <dependency>
     <groupId>org.apache.httpcomponents</groupId>
     <artifactId>httpclient</artifactId>
-    <version>4.5.3</version>
+    <version>${httpclient.version}</version>
 </dependency>
 ----
-|Backend, Http-Client|Apache 2.0|Backend
+||Apache License 2.0|Backend
 
-|org.json.json|20160810
-
-a|
-[source,xml]
-----
-<dependency>
-    <groupId>org.json</groupId>
-    <artifactId>json</artifactId>
-    <version>20160810</version>
-</dependency>
-----
-|Backend - Json functionality|Json|Backend
-
-|org.jboss.resteasy.resteasy-jaxrs|3.0.21_Final
-a|
-[source,xml]
-----
-<dependency>
-    <groupId>org.jboss.resteasy</groupId>
-    <artifactId>resteasy-jaxrs</artifactId>
-    <version>3.0.21.Final</version>
-</dependency>
-----
-|Backend - RestServer|Apache 2.0 / CC0.1.0/ Public|Backend
-
-|org.jboss.resteasy.jaxrs-api|3.0.12.Final
-a|
-[source,xml]
-----
-<dependency>
-    <groupId>org.jboss.resteasy</groupId>
-    <artifactId>jaxrs-api</artifactId>
-    <version>3.0.12.Final</version>
-</dependency>
-----
-|Rest-Server|Apache 2.0|Backend
-
-|javax.servlet.servlet-api|3.0.1
-a|
-[source,xml]
-----
-<dependency>
-    <groupId>javax.servlet</groupId>
-    <artifactId>servlet-api</artifactId>
-    <version>3.0.1</version>
-</dependency>
-----
-|Backend - Logging Servlet |CDDL GLP 2.0|Backend
-
-|com.google.code.gson.gson|2.8.0
+|com.google.code.gson|2.8.0
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>com.google.code.gson</groupId>
     <artifactId>gson</artifactId>
-    <version>2.8.0</version>
+    <version>${gson-version}</version>
 </dependency>
 ----
-|Backend Json de-serialization|Apache 2.0|Backend
-
-|log4j.log4j|1.2.17
-a|
-[source,xml]
-----
-<dependency>
-    <groupId>log4j</groupId>
-    <artifactId>log4j</artifactId>
-    <version>1.2.17</version>
-</dependency>
-----
-|Backend logging|Apache 2.0|Backend
+||Apache License 2.0|Backend
 
 |commons-io|2.5
 a|
 [source,xml]
 ----
 <dependency>
-    <groupId>commons-io</groupId>
     <artifactId>commons-io</artifactId>
-    <version>2.5</version>
+    <version>${commons-io.version}</version>
 </dependency>
 ----
-|IO utils|Apache 2.0
+||Apache License 2.0|Backend
 
-|org.eclipse.persistence.eclipselink|2.6.4|Backend
+|org.eclipse.persistence.eclipselink|2.6.4
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>org.eclipse.persistence</groupId>
     <artifactId>eclipselink</artifactId>
-    <version>2.6.4</version>
+    <version>${eclipselink-version}</version>
 </dependency>
 ----
-|JPA implementation|EDL 1.0 EPL 1.0|Backend
+||Eclipse Public License|Backend
 
-|postgresql.postgresql|9.1-901-1.jdbc4
+|postgresql.postgresql|9.1-901-1.jdbc
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>postgresql</groupId>
     <artifactId>postgresql</artifactId>
-    <version>9.1-901-1.jdbc4</version>
+    <version>${postgresql-version}</version>
 </dependency>
 ----
-|DB driver|BSD|Backend
+||New BSD License|Backend
 
 |junit.junit|4.12
-
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
-    <version>4.12</version>
+    <version>${junit.version}</version>
+    <scope>test</scope>
 </dependency>
 ----
-|Unit testing|EPL 1.0|Backend
+||Eclipse Public License|Backend
 
 |org.easymock.easymock|3.4
 a|
@@ -323,22 +273,23 @@
 <dependency>
     <groupId>org.easymock</groupId>
     <artifactId>easymock</artifactId>
-    <version>3.4</version>
+    <version>${easymock.version}</version>
 </dependency>
 ----
-|Unit testing|Apache 2.0|Backend
+||Apache License 2.0|Backend
 
-|org.powermock.powermock-api-easymock|1.6.6
+|org.powermock.powermock|3.4
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>org.powermock</groupId>
     <artifactId>powermock-api-easymock</artifactId>
-    <version>1.6.6</version>
+    <version>${powermock-api-easymock.version}</version>
+    <scope>test</scope>
 </dependency>
 ----
-|Unit testing|Apache 2.0|Backend
+||Apache License 2.0|Backend
 
 |org.jacoco.jacoco-maven-plugin|0.7.9
 a|
@@ -347,22 +298,1140 @@
 <dependency>
     <groupId>org.jacoco</groupId>
     <artifactId>jacoco-maven-plugin</artifactId>
-    <version>0.7.9</version>
+    <version>${jacoco-maven-plugin.version}</version>
+    <exclusions>
+         <exclusion>
+             <groupId>commons-beanutils</groupId>
+             <artifactId>commons-beanutils</artifactId>
+         </exclusion>
+             <exclusion>
+                  <groupId>commons-logging</groupId>
+                  <artifactId>commons-logging</artifactId>
+             </exclusion>
+         </exclusions>
 </dependency>
 ----
-|Test coverage|EPL 1.0|Backend
+||Eclipse Public License|Backend
 
-|javax.mail.mail|1.4
+|angular2-uuid|1.1.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|core-js|2.4.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|arc42 template|
+a|
+[source,xml]
+----
+
+----
+||MIT License|Sonstiges (Dokumentation, etc.)
+
+|Source Sans Pro|
+a|
+[source,xml]
+----
+
+----
+||SIL OPEN FONT LICENSE Version 1.1|Frontend
+
+|dependencies/@angular/animations|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/cdk|5.2.5
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/common|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/compiler|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/core|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/forms|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/http|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/platform-browser|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/platform-browser-dynamic|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@angular/router|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/@auth0/angular-jwt|1.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|agdependencies/ag-grid|18.0.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/ag-grid-angular|18.0.1
+a|
+[source,xml]
+----
+
+----
+|||Frontend
+
+|dependencies/ajv|6.5.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/angular-calendar|0.23.7
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/bootstrap|3.3.7
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/bootstrap-toggle|2.2.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/classlist.js|1.1.20150312
+a|
+[source,xml]
+----
+
+----
+||The Unlicense|Frontend
+
+|dependencies/dependencies/core-js|2.5.7
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/file-saver|1.3.8
+a|
+[source,xml]
+----
+<dependency>
+
+</dependency>
+----
+||MIT License|Frontend
+
+|dependencies/font-awesome|4.7.0
+a|
+[source,xml]
+----
+<dependency>
+
+</dependency>
+----
+||OFL-1.1 AND MIT|Frontend
+
+|dependencies/jquery|3.3.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/ng2-daterangepicker|2.0.12
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/popper.js|1.14.3
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+|dependencies/rxjs|5.5.11
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Frontend
+
+
+|dependencies/web-animations-js|2.3.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|dependencies/zone.js|0.8.26
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular-devkit/build-angular|0.6.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular-devkit/build-optimizer|0.6.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular-devkit/core|0.6.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|Dependencies/@angular-devkit/schematics|0.6.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular/cli|6.0.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular/compiler-cli|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@angular/language-service|5.2.11
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|dependencies/web-animations-js|2.3.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/bootstrap|4.1.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/file-saver|1.3.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/jasmine|2.8.8
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/jasminewd2|2.0.3
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/jquery|3.3.4
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/@types/node|6.0.113
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/codelyzer|4.4.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/jasmine-core|2.8.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/jasmine-spec-reporter|4.2.1
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Frontend
+
+
+|devDependencies/karma|2.0.4
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/karma-chrome-launcher|2.2.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|evDependencies/karma-coverage-istanbul-reporter|1.4.3
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/karma-jasmine|1.1.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/karma-jasmine-html-reporter|0.2.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/karma-junit-reporter|1.2.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/protractor|5.3.2
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/ts-node|4.1.0
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/tslint|5.9.1
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|devDependencies/typescript|2.5.3
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Frontend
+
+
+|SpinnerKit|1.2.5
+a|
+[source,xml]
+----
+
+----
+||MIT License|Frontend
+
+
+|swagger-jersey2-jaxrs|1.5.12
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>io.swagger</groupId>
+    <artifactId>swagger-jersey2-jaxrs</artifactId>
+    <version>${swagger-jersey2-jaxrs}</version>
+    <scope>compile</scope>
+    <exclusions>
+         <exclusion>
+              <groupId>com.google.code.findbugs</groupId>
+              <artifactId>annotations</artifactId>
+         </exclusion>
+    </exclusions>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|log4j|1.2.17
+a|
+[source,xml]
+----
+
+----
+|||Backend
+
+
+|powermock-api-easymock|1.6.6
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.powermock</groupId>
+    <artifactId>powermock-api-easymock</artifactId>
+    <version>${powermock-api-easymock.version}</version>
+    <scope>test</scope>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|jacoco-maven-plugin|0.7.9
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.jacoco</groupId>
+    <artifactId>jacoco-maven-plugin</artifactId>
+    <version>${jacoco-maven-plugin.version}</version>
+    <exclusions>
+         <exclusion>
+              <groupId>commons-beanutils</groupId>
+              <artifactId>commons-beanutils</artifactId>
+         </exclusion>
+         <exclusion>
+              <groupId>commons-logging</groupId>
+              <artifactId>commons-logging</artifactId>
+         </exclusion>
+    </exclusions>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|sonar-maven-plugin|3.2
+a|
+[source,xml]
+----
+<plugin>
+     <groupId>org.sonarsource.scanner.maven</groupId>
+     <artifactId>sonar-maven-plugin</artifactId>
+     <version>${sonar-maven-plugin.version}</version>
+</plugin>
+----
+||LGPL|Backend
+
+
+|flyway-maven-plugin|4.2.0
+a|
+[source,xml]
+----
+<plugin>
+    <groupId>org.flywaydb</groupId>
+    <artifactId>flyway-maven-plugin</artifactId>
+    <version>${flyway-maven-plugin-version}</version>
+    <configuration>
+        <sqlMigrationSeparator>__</sqlMigrationSeparator>
+        <locations>
+            <location>filesystem:db/migrations/</location>
+        </locations>
+        <url>${database.url}</url>
+        <user>${database.user}</user>
+        <password>${database.password}</password>
+        <schemas>
+            <schema>public</schema>
+        </schemas>
+
+    </configuration>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-compiler-plugin|3.6.1
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-compiler-plugin</artifactId>
+    <version>${maven-compiler-plugin-version}</version>
+    <configuration>
+        <source>${java-source-target-version}</source>
+        <target>${java-source-target-version}</target>
+    </configuration>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-jar-plugin|3.0.2
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-jar-plugin</artifactId>
+    <version>${maven-jar-plugin-version}</version>
+    <configuration>
+        <archive>
+            <manifest>
+                <addClasspath>true</addClasspath>
+                <mainClass>${mainClass}</mainClass>
+            </manifest>
+        </archive>
+    </configuration>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-project-info-reports-plugin|3.0.0
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-project-info-reports-plugin</artifactId>
+    <version>${maven-project-info-reports-plugin-version}</version>
+    <configuration>
+        <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+        <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
+    </configuration>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-war-plugin|2.1
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+
+|maven-shade-plugin|2.4.1
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-shade-plugin</artifactId>
+    <version>${maven-shade-plugin.version}</version>
+    <configuration>
+        <createDependencyReducedPom>true</createDependencyReducedPom>
+        <transformers>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+                <mainClass>${mainClass}</mainClass>
+            </transformer>
+        </transformers>
+        <!-- exclude signed Manifests -->
+        <filters>
+            <filter>
+                <artifact>*:*</artifact>
+                <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                </excludes>
+            </filter>
+        </filters>
+    </configuration>
+    <executions>
+        <execution>
+            <phase>package</phase>
+            <goals>
+                <goal>shade</goal>
+            </goals>
+        </execution>
+    </executions>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-javadoc-plugin|2.10.3
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-javadoc-plugin</artifactId>
+    <version>${maven-javadoc-plugin-version}</version>
+    <executions>
+        <execution>
+            <id>attach-javadocs</id>
+            <goals>
+                <goal>jar</goal>
+            </goals>
+        </execution>
+    </executions>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|maven-source-plugin|2.4
+a|
+[source,xml]
+----
+<plugin>
+    <artifactId>maven-source-plugin</artifactId>
+    <version>${maven-source-plugin-version}</version>
+    <executions>
+        <execution>
+            <id>attach-sources</id>
+            <goals>
+                <goal>jar</goal>
+            </goals>
+        </execution>
+    </executions>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|io.swagger|1.5.12
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>io.swagger</groupId>
+    <artifactId>swagger-jersey2-jaxrs</artifactId>
+    <version>${swagger-jersey2-jaxrs}</version>
+    <scope>compile</scope>
+    <exclusions>
+        <exclusion>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>annotations</artifactId>
+        </exclusion>
+    </exclusions>
+</dependency>
+----
+|||Backend
+
+
+|swagger-maven-plugin|3.1.6
+a|
+[source,xml]
+----
+<plugin>
+    <groupId>com.github.kongchen</groupId>
+    <artifactId>swagger-maven-plugin</artifactId>
+    <version>${swagger-maven-plugin-version}</version>
+    <configuration>
+        <skipSwaggerGeneration>false</skipSwaggerGeneration>
+        <apiSources>
+            <apiSource>
+                <springmvc>false</springmvc>
+                <locations>
+                    <location>org.eclipse.openk</location>
+                </locations>
+                <schemes>
+                    <shema>http</shema>
+                </schemes>
+                <host>localhost:9050</host>
+                <basePath>/mics/gridMeasures</basePath>
+                <info>
+                    <title>plannedGridMeasures@openK - Backend REST-Service documentation</title>
+                    <version>v1</version>
+                    <description>This documentation contains the description of all used REST services.</description>
+                    <termsOfService>
+                        .
+                    </termsOfService>
+                    <contact>
+                        <email>nn@pta.de</email>
+                        <name></name>
+                    </contact>
+                    <license>
+                        <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
+                        <name>Apache 2.0</name>
+                    </license>
+                </info>
+                <outputFormats>yaml</outputFormats>
+                <templatePath>${basedir}/templates/strapdown.html.hbs</templatePath>
+                <outputPath>target/generated-docs/swaggerInterfaceDocumentation.html</outputPath>
+                <swaggerDirectory>target/generated-docs</swaggerDirectory>
+                <securityDefinitions>
+                    <securityDefinition>
+                        <json>/securityDefinitions.json</json>
+                    </securityDefinition>
+                </securityDefinitions>
+            </apiSource>
+        </apiSources>
+    </configuration>
+    <executions>
+        <execution>
+            <phase>compile</phase>
+            <goals>
+                <goal>generate</goal>
+            </goals>
+        </execution>
+    </executions>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|java-jwt|3.2.0
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>com.auth0</groupId>
+    <artifactId>java-jwt</artifactId>
+    <version>${java-jwt-version}</version>
+</dependency>
+----
+|||Backend
+
+
+|gson|2.8.5
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>com.google.code.gson</groupId>
+    <artifactId>gson</artifactId>
+    <version>${gson-version}</version>
+</dependency>
+----
+|||Backend
+
+
+|commons-codec|1.11
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>commons-codec</groupId>
+    <artifactId>commons-codec</artifactId>
+    <version>${commons-codec-version}</version>
+</dependency>
+----
+|||Backend
+
+
+|eclipselink|2.6.4
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.eclipse.persistence</groupId>
+    <artifactId>eclipselink</artifactId>
+    <version>${eclipselink-version}</version>
+</dependency>
+----
+||Eclipse Public License|Backend
+
+
+|postgresql|9.1-901-1.jdbc4
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>postgresql</groupId>
+    <artifactId>postgresql</artifactId>
+    <version>${postgresql-version}</version>
+</dependency>
+----
+|||Backend
+
+
+|asciidoctor-maven-plugin|1.5.3
+a|
+[source,xml]
+----
+<plugin>
+    <groupId>org.asciidoctor</groupId>
+    <artifactId>asciidoctor-maven-plugin</artifactId>
+    <version>${asciidoctor-maven-plugin-version}</version>
+    <dependencies>
+        <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctorj-pdf</artifactId>
+            <version>${asciidoctorj-pdf-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jruby</groupId>
+            <artifactId>jruby-complete</artifactId>
+            <version>${jruby-complete-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctorj</artifactId>
+            <version>${asciidoctorj-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.asciidoctor</groupId>
+            <artifactId>asciidoctorj-diagram</artifactId>
+            <version>${asciidoctorj-diagram-versions}</version>
+        </dependency>
+    </dependencies>
+    <configuration>
+        <sourceDirectory>src/main/asciidoc</sourceDirectory>
+        <requires>
+            <require>asciidoctor-diagram</require>
+        </requires>
+        <attributes>
+            <imagesoutdir>${project.build.directory}/generated-docs/images</imagesoutdir>
+            <imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
+        </attributes>
+    </configuration>
+    <executions>
+
+        <execution>
+            <id>output-html</id>
+            <phase>generate-resources</phase>
+            <goals>
+                <goal>process-asciidoc</goal>
+            </goals>
+            <configuration>
+                <skip>${skip.asciidoc}</skip>
+                <imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
+                <requires>
+                    <require>asciidoctor-diagram</require>
+                </requires>
+                <sourceHighlighter>coderay</sourceHighlighter>
+                <backend>html</backend>
+                <doctype>book</doctype>
+                <imagesDir>./images</imagesDir>
+            </configuration>
+        </execution>
+        <!--execution>
+            <id>output-pdf</id>
+            <phase>generate-resources</phase>
+            <goals>
+                <goal>process-asciidoc</goal>
+            </goals>
+            <configuration>
+                <skip>${skip.asciidoc}</skip>
+                <imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
+                <requires>
+                    <require>asciidoctor-diagram</require>
+                </requires>
+                <sourceHighlighter>coderay</sourceHighlighter>
+                <backend>pdf</backend>
+                <doctype>book</doctype>
+                <imagesDir>./images</imagesDir>
+                <attributes>
+                    <icons>font</icons>
+                    <pagenums />
+                    <toc />
+                    <idprefix />
+                    <idseparator>-</idseparator>
+                </attributes>
+            </configuration>
+        </execution-->
+    </executions>
+</plugin>
+----
+||Apache License 2.0|Backend
+
+
+|asciidoctorj-pdf|1.5.0-alpha.11
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.asciidoctor</groupId>
+    <artifactId>asciidoctorj-pdf</artifactId>
+    <version>${asciidoctorj-pdf-version}</version>
+</dependency>
+----
+||MIT License|Backend
+
+
+|asciidoctorj|1.5.4
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.asciidoctor</groupId>
+    <artifactId>asciidoctorj</artifactId>
+    <version>${asciidoctorj-version}</version>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|asciidoctorj-diagram|1.5.4.1
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.asciidoctor</groupId>
+    <artifactId>asciidoctorj-diagram</artifactId>
+    <version>${asciidoctorj-diagram-versions}</version>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|jruby-complete|1.7.21
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>org.jruby</groupId>
+    <artifactId>jruby-complete</artifactId>
+    <version>${jruby-complete-version}</version>
+</dependency>
+----
+|||Backend
+
+
+|javax.mail|1.4.3
 a|
 [source,xml]
 ----
 <dependency>
     <groupId>javax.mail</groupId>
     <artifactId>mail</artifactId>
-    <version>1.4</version>
+    <version>${javax.mail.version}</version>
 </dependency>
 ----
-|Mail|CDDL GLP 2.0|Backend
+||Apache License 2.0|Backend
+
+
+|greenmail|1.5.7
+a|
+[source,xml]
+----
+<dependency>
+    <groupId>com.icegreen</groupId>
+    <artifactId>greenmail</artifactId>
+    <version>${greenmail.version}</version>
+    <scope>test</scope>
+</dependency>
+----
+||Apache License 2.0|Backend
+
+
+|powermock-module-junit4|1.7.3
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+
+|javax.servlet-api|3.1.0
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+
+|jaxrs-ri|2.22.1
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+
+|jackson-annotations|2.5.4
+a|
+[source,xml]
+----
+
+----
+||Apache License 2.0|Backend
+
+
+|RabbitMQ AMQP client|5.2.0
+a|
+[source,xml]
+----
+<<dependency>
+     <groupId>com.rabbitmq</groupId>
+     <artifactId>amqp-client</artifactId>
+     <version>${rabbitmq.version}</version>
+ </dependency>
+----
+||Apache License 2.0|Backend
+
+
 |=========================================================
 
 == System Scope and Context
@@ -432,7 +1501,7 @@
 * RESTful web services are used as interface-technology.
 * Each external interface (interfaces between modules or external systems) has to be documented.
 * Dependencies of modules to services realized by other modules have to be specified and documented explicitly.
-* When CIM is not appropriate (like access management), other standards in their respective domain shall be taken into account first to avoid proprietary and inaccurate interfaces. The interface has also be documented in the overall openKONSEQUENZ interface profile and it should use REST & XML.
+* When CIM is not appropriate (like access management), other standards in their respective domain shall be taken into account first to avoid proprietary and inaccurate interfaces. The interface has to be documented in the overall openKONSEQUENZ interface profile and it should use REST & XML.
 
 The interfaces of the module 'Planned Grid Measures' are described in the interface documentation.
 
@@ -452,7 +1521,7 @@
 
 The module 'Planned Grid Measures' contains two components (see figure 2):
 
-. *UI* - Represents the graphical user interface and consumes the services from the Business logic component via RESTful webservices.
+. *UI* - Represents the graphical user interface and consumes the services from the business logic component via RESTful webservices.
 . *Business Logic* - Realizes the business functionality and the data storage of the module. The
 module itself is split up in several components due to the requirement to use
 microservices.
@@ -473,11 +1542,11 @@
 ----
 
 
-Bases on the abstract concept mentioned above, the following figure shows the concrete realization of the main components.
+Based on the abstract concept mentioned above, the following figure shows the concrete realization of the main components.
 The mapping from the abstract to the concrete view is as follows:
 
 . UI
- - plannedGridMeasuresFE-SPA
+ - plannedGridMeasuresFE
 . Business Logic
  - MICS-HOME: (project independent webapplication)
  - MICS-CENTRAL: (project independent service distribution and
@@ -536,7 +1605,7 @@
 The communication between WebBrowser and Apache Tomcat is established via HTTP/HTTPS.
 ApacheTomcat is connected to the data source (PostgresDBMS) via TCP/IP.
 
-The structure of the backend is based on microservices. To do so we are using "Dropwizard" framework.
+The structure of the backend is based on microservices. To realize this, the "Dropwizard" framework is used.
 Dropwizard is an open source Java framework for developing high-performance RESTful backends.
 Dropwizard provides the most useful Java libraries, which you need to deploy a RESTful application, into one embedded application package.
 The most important are:
@@ -553,24 +1622,24 @@
 
  * Metrics: Dropwizard has support for monitoring using the metrics library. It provides unparalleled insight into what our code does in production.
 
-==== plannedGridMeasureFE SPA
+==== plannedGridMeasureFE
 
 This component implements the presentation logic for the *planned-grid-measures*-module using the *Angular*-TypeScript
 framework. The Frontend is a so called *Single Page Application* (SPA) because
 it behaves like a single HTML-page. 
 
 
-==== planned-grid-measures.jar (Backend tier)
+==== planned-grid-measures.jar (backend tier)
 
 This component implements the business functionality of the planned grid measures. And it provides services, that the
-GridMeasureFE – SPA can use the functions in the frontend.
+plannedGridMeasureFE can use the functions in the frontend.
 
 The "Dropwizard" framework is used to implement this application.
 
-==== mics-central.jar (Backend tier)
+==== mics-central.jar (backend tier)
 
 This component knows all relevant microservices. The microservices are configured here
-and organized in "distribution clusters". Every Microservice has a unique name
+and organized in "distribution clusters". Every microservice has a unique name
 which identifies it. The main task of the "Mics-Central" is to receive a service request (for example from the
 "Mics-Home" application) and to resolve the call. Knowing all configured services, the central
 finds the matching service for the request using the "name", and forwards the request information. The
@@ -580,11 +1649,11 @@
 
 We are using Dropwizard metrics to implement health checks.
 
-==== mics-home.war (Backend tier)
+==== mics-home.war (backend tier)
 
-This component receives all service-calls from the frontend. It is placed parallel to the
-Frontend-SPA with the same HTTP-host and the same Port. Any configuration for the
-frontend is done in it's home application.
+This component receives all service-calls from the frontend. It is placed in parallel to the
+Frontend-SPA with the same HTTP-host and the same port. Any configuration for the
+frontend is done in its home application.
 
 ==== PlannedGridMeasuresDev-DB (Database tier)
 
@@ -592,22 +1661,22 @@
 change data in the database.
 
 The PlannedGridMeasuresDev-DB runs on a Postgres DBMS.
-(The decision to use the Postgres DBMS was made by the openKONSEQUENCE archtecture committee)
+(The decision to use the Postgres DBMS was made by the openKONSEQUENZ architecture committee)
 
 The pleannedGridMeasures needs information from the system "SCADA". Therefore, it must provide an interface for receiving the according data, see figure 1.
 (see below "Import functionality")
 
 === Level 2
 
-==== GridMeasureFE – SPA (Frontend tier)
+==== PlannedGridMeasureFE (frontend tier)
 
 The frontend component implements the concept of a single-page application (SPA). The framework used is Angular5.
 
-It divides the GridMeasureFE into three layers:
+It divides the PlannedGridMeasureFE into three layers:
 
-. *Components* - The components (Pages, Lists, Dialogs, Common Comp.) represent the presentation layer and the control layer. A component contains the control logic (.ts-file), an HTML-fragment as presentation description (.html-file) and a style definition (.css-file).
+. *Components* - The components (pages, lists, dialogs, common comp.) represent the presentation layer and the control layer. A component contains the control logic (.ts-file), an HTML-fragment as presentation description (.html-file) and a style definition (.css-file).
 . *Services* - The service component communicates with the interfaces of the backend via HTTP requests by using the model component.
-. *Model* - The model corresponds to the View-Model of the backend tier.
+. *Model* - The model corresponds to the view-model of the backend tier.
 
 .Frontend tier
 [options="header,footer"]
@@ -642,13 +1711,13 @@
 ----
 
 
-==== planned-grid-measures.war (Backend tier)
+==== planned-grid-measures.war (backend tier)
 
 The backend tier contains five components which can be summarized in three layers:
 
 . *Presentation layer* - Represented by
  .. REST-Srv
- .. View Model
+ .. View model
 . *Controller layer* - Represented by
  ..	Controller
 .	*Model layer* - Represented by
@@ -687,7 +1756,7 @@
 DAO --> PlannedGridMeasuresDB
 ----
 
-==== PlannedGridMeasures-DB (Database tier)
+==== PlannedGridMeasures-DB (database tier)
 
 The PlannedGridMeasures-DB is realized as a relational database system.
 
@@ -738,15 +1807,15 @@
 json file (see below).
 
 - emailTemplateAddressesForNotification: Mail-addresses enlisted in these email-templates
-  will automatically show up in the field 'E-Mail-Adresse' in a new Gridmeasure.
+  will automatically show up in the field 'E-Mail-Adresse' in a new grid measure.
 
 - reloadMailAddressesInMin: There is a routine to load all available mail-addresses from
-  the database to a cache (for autocomplete function of mail-addresses). Here is set, in which
+  the database into a cache (for autocomplete functionality of mail addresses). Here is set, in which
   time-intervall this routine shall start again (in minutes).
 
 
 
-In Backend tier we are using a JSON file to configure
+In he backend a JSON file is used to configure
 the editing rights of a role and
 the controlling rights of a user accordingly to the grid measure status.
 
@@ -818,22 +1887,22 @@
     ]
 }
 
-There are two objects in this JSON file. The first one (*editRoles*) controls
-which statutes (with status is meaning a grid measure with a specific status e.g New or Applied)
-can a role edit and the second (*controls*) which buttons and fields are active
+There are two objects in this JSON file. The first one (*editRoles*) determins
+which statuses (that means which grid measure with a specific status e.g New or Applied)
+a role is allowed to edit. The second (*controls*) determins which buttons and fields are active
 in the grid measure detail page for each status.
 
-** *editRoles*: this object is an array. There are as many elements as the roles.
+** *editRoles*: this object is an array. There are as many elements as roles.
 Each element of this array has two members.
-The *name* member contains the role of the user and the *gridMeasureStatusIds* contains the grid measures statuses,
-which this role can edit.
-The second member is an array, which means that a user-role can edit more than one statuses.
+The *name* member contains the name of the role.
+The *gridMeasureStatusIds* member contains the grid measures statuses,
+which this role is allowed to edit. This member is an array, which means that a user-role can edit more than one status.
 
-** *controls*: this object is also an array. This array has as many
-elements as the statuses are. Each of these elements has three members.
+** *controls*: this object is also an array. It has as many
+elements as there are statuses. Each of these elements has three members.
 The first one, *gridMeasureStatusId*, is the status of the grid measure.
-For each status are the active buttons (*activeButtons*) and
-the inactive fields (*inactiveFields*) defined. Both, buttons and fields, are arrays.
+For each status the active buttons (*activeButtons*) and
+the inactive fields (*inactiveFields*) are defined. Both, buttons and fields, are arrays.
 
 [TIP]
 The workflow switches can be used to toggle the visibility of buttons.
@@ -843,11 +1912,11 @@
 
 
 
-==== E-Mail Configuration
-The E-Mail is been configured in the Backend tier. There are 3 steps for the E-Mail Configuration:
+==== E-Mail configuration
+The E-Mail is configured in the backend tier. There are 3 steps for the E-Mail configuration:
 
-. *SMTP Settings* are configured in the according yml-file found in the root folder of the microservice.
-  (For Example:  'prodserver.yml' is located next to 'planned-grid-measures.jar')
+. *SMTP settings* are configured in the according yml-file found in the root folder of the microservice.
+  (For example:  'prodserver.yml' is located next to 'planned-grid-measures.jar')
   "sender" is the general email sender address for every e-mail.
 
 [source, yml]
@@ -861,8 +1930,8 @@
 }
 
 [start=2]
-. *E-Mail Templatepaths* are configured in the 'mailTemplatesPaths.json' to be found in the folder 'emailConfiguration' also
-  which is found in the root folder.
+. *E-Mail template paths* are configured in the 'mailTemplatesPaths.json' in the folder 'emailConfiguration'. This can be
+ found in the root folder.
 
 
 [source, json]
@@ -874,8 +1943,8 @@
 }
 
 [start=3]
-. These *E-Mail-Templates* are to be found where you have configured them in Step 2.
-  These Templates are txt-files which have to have the following structure:
+. These *E-Mail-Templates* can be found where you have configured them in step 2.
+  These templates are txt-files which must have the following structure:
 
 ....
 To: test1Recipient@test.de, test2Recipient@test.de
@@ -892,18 +1961,18 @@
 
 Mit freundlichen Grüßen
 
-Ihre Entwickler-Team der PTA GmbH
+Ihr Entwickler-Team der PTA GmbH
 ....
 
-*Structure Keywords* are `To:` ,`CC:`,`Subject:`, and `Body:`. After `Body:` is where you put the content of your E-Mail the other
+*Structure keywords* are `To:` ,`CC:`,`Subject:`, and `Body:`. After `Body:` is where you put the content of your E-Mail the other
 keywords are self-explanatory.
 
-Then you have also *Content Keywords* starting and ending with a dollar sign like '$directMeasureLink$'
+Then you have also *Content keywords* starting and ending in a dollar sign like '$directMeasureLink$'
 these keywords will be replaced according to their scope of application.
 
-*Content Keywords List*
+*Content keywords list*
 
-.Content Keywords
+.Content keywords
 |===
 |Keyword |Explanation
 
@@ -918,16 +1987,76 @@
 
 |===
 
+==== RabbitMQ Configuration
+
+. *Prerequisites:*
+
+RabbitMQ Server is already installed and running
+
+It is recommend to enable the 'Management Plugin' to be able to use the Web UI
+(http://www.rabbitmq.com/management.html)
+
+The initial user and password for the Web-UI is '"guest"' but you need to create
+a new user since the initial user can  only connect via 'localhost'.
+
+Create new user with admin rights.
+
+[start=2]
+. *RabbitMQ Configuration in the backend tier*
+
+RabbitMQ is configured in the according yml-file found in the root folder of the microservice.
+(For Example: prodserver.yml is located next to planned-grid-measures.jar)
+
+[source, yml]
+{
+  ...
+  rabbitmqConfiguration:
+    host: 172.18.22.160
+    port: 5672
+    user: admin
+    password: admin
+    exchangeName: openk-pgm-exchange
+    autoSetup: true
+    queueNames : pgm-applied-queue, pgm-forapproval-queue, pgm-canceled-queue, pgm-approved-queue, pgm-rejected-queue, pgm-requested-queue, pgm-released-queue, pgm-finished-queue, pgm-closed-queue
+  ...
+}
+
+- 'host' : Host adress of RabbitMQ Server
+- 'port' : Port of RabbitMQ Server (Default: 5672)
+- 'user' : Username you create in Step 1 (Prerequisites)
+- 'password' : Password belonging to user you create in step 1 (Prerequisites)
+- 'exchangeName' : The name of the 'Exchange' (https://www.rabbitmq.com/tutorials/tutorial-three-python.html)
+- 'autoSetup' : If set to 'true' the Autosetup will fire once on application start.
+
+Autosetup means the Planned Grid Measure Microservice will create the Exchange according to the name defined one line
+above. All needed Queues will be created and bind to the Exchange.
+
+The automatically created queues and their belonging routing keys are, according to the 'queueNames' parameter mentioned above:
+
+[source]
+Queuename: pgm-applied-queue    | Routing key:  applied
+Queuename: pgm-canceled-queue   | Routing key:  canceled
+Queuename: pgm-approved-queue   | Routing key:  approved
+Queuename: pgm-rejected-queue   | Routing key:  rejected
+Queuename: pgm-requested-queue  | Routing key:  requested
+Queuename: pgm-released-queue   | Routing key:  released
+Queuename: pgm-finished-queue   | Routing key:  finished
+Queuename: pgm-closed-queue     | Routing key:  closed
+
+If 'autosetup' is set to 'false' you have to create the exchange, queues and bindings manually.
+
+CAUTION: You still have to use the same routing keys above If 'autosetup' is set to 'false'
+(Example: 'applied' for the Applied-Queue).
 
 
-== Runtime View
+== Runtime view
 
-=== Login / Authentication
+=== Login / authentication
 
 
-There is no login page, since the openK-Portal-Application is responsible for Authentication and
+There is no login page, since the openK-Portal-Application is responsible for authentication and
 the whole SSO (single sign on) process.
-Therefore the elogbook application has to be started by providing a valid authentication token.
+Therefore the application has to be started by providing a valid authentication token.
 This token is a JWT (JSON Web Token).
 
 .plannedGridMeasure application is called by the *portal* application. The User is already logged in
@@ -970,16 +2099,16 @@
 
 image::massnahme_durchfuehren_u_abschliessen_2.png[]
 
-When the rest service"storeGridMeasure" is called on the backend, the process resumes at the
+When the rest service "storeGridMeasure" is called on the backend, the process resumes at the
 process step that corresponds to the existing status (in the database) of the "GridMeasure"
 to be saved.
 
-Example: The gridmeasure with id 5 has the status "FOR_APPROVAL" in the database.
-Now the rest service "storeGridMeasure" is called with a gridmeasure (id=5) having the status "cancelled"
+Example: the gridmeasure with id 5 has the status "FOR_APPROVAL" in the database.
+Now the rest service "storeGridMeasure" is called with a grid measure (id=5) having the status "cancelled"
 (="storniert") in the given object.
 
-Because gridmeasure 5 still has the status "FOR_APPROVAL" in the database, the process resumes at
-"<FOR_APPROVAL> Maßnahmeantrag und Ablauf prüfen". The next decision is made looking at the status
+Because grid measure 5 still has the status "FOR_APPROVAL" in the database, the process resumes at
+"<FOR_APPROVAL> Maßnahmeantrag und Ablauf prüfen". The next decision is made by looking at the status
 of the grid measure object, passed to the service "storeGridMeasure" (which is "CANCELLED"). This results in "firing"
 PORT2 in the diagram, etc
 
@@ -989,7 +2118,7 @@
 
 The Frontend SPA is built as a folder, that contains all the required files for
 the application. When deploying the frontend application, the content of the "dist"-folder
-within the Frontend development-directory has to be copied into the
+within the frontend development-directory has to be copied into the
 target-directory of the apache-tomcat:
 
  <Apache-Tomcat>/webapps/plannedGridMeasuresFE
@@ -1015,12 +2144,13 @@
 
 . Grid territories - The grid-territories have to be configured in the DB-Table *ref_grid_territory*
 
-Please modify the "03_config_DB_*.sql" script (in "<elogbook backend project dir>\db\postgreSQL" ) to change the
-configuration. (This file is contained in the *oracle* folder as well.
+Please modify the "V0_<latest>__CREATE_PLGM_DB.sql" script (in "<grid-measures-mics-backend project
+dir>\db\migrations" ) to change the
+configuration. (This file is contained in the *oracle* folder as well.)
 
 ===== Configuration of the webserver
 
-There exists the file *context.xml* in the "conf" subdirectory (*<TOMCAT>/conf*) of the target apache tomcat installation.
+There is a file *context.xml* in the "conf" subdirectory (*<TOMCAT>/conf*) of the target apache tomcat installation.
 Add the following parameter and resource in order to access the correct mics-home configuration:
 
 .context.xml
@@ -1059,14 +2189,21 @@
 
 ==== GIT-Repository
 
-Frontend Repository:
-http://git.eclipse.org/c/elogbook/elogbookFE.git/
+Central service repository
+http://http://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.mics.centralService.git/
 
-Backend Repository (containing this documentation and the db creation scripts)
-http://git.eclipse.org/c/elogbook/elogbook.git/
+Home service repository
+http://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.mics.homeService.git/
 
 
-=== Continuous Deployment
+Frontend repository:
+http://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.plannedGridMeasures.frontend.git/
+
+Backend repository (containing this documentation and the database creation scripts)
+http://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.plannedGridMeasures.backend.git/
+
+
+=== Continuous deployment
 
 The continuous deployment is realized on two platforms:
 
@@ -1081,18 +2218,18 @@
 
 The running development is exclusively made on the Snapshot-Branch. Every time
 a developer checks in (pushes) code to the repository, an automatic build
-starts on the hudson ci-server. If the Snapshot-build is successful, then
-outcome of that build is directly deployed on the Dev-Environment.
+starts on the hudson ci-server. If the Snapshot-build is successful, then the result
+of that build is directly deployed on the Dev-environment.
 
-At the end of a scrum sprint or when a big userstory is realized, all
+At the end of a scrum sprint or when a big user story is realized, all
 the code changes are merged from the *Snapshot*-Branch to the *Trunc*.
 This automatically triggers the build and the deployment on the
-Q-Environment.
+Q-environment.
 
 
-== Design Decisions
+== Design decisions
 
-All architecture decisions based on the Architecture Committee Handbook. There are no deviations.
+All architecture decisions are based on the Architecture Committee Handbook. There are no deviations.
 
 == Risks and Technical Debts
 
@@ -1106,12 +2243,12 @@
 [options="header,footer"]
 |========================================================
 |Short|Long|German|Description
-|AC|Architecture Committee|Architektur-Komittee|Gives Framework and Constraints according to architecture for oK projects.
+|AC|Architecture Committee|Architektur-Komittee|Gives framework and constraints according to architecture for oK projects.
 |CNCU|Central Network Control Unit||
 |DAO|Data Access Objects||
 |DSO|Distribution System Operator|Verteilnetz-betreiber (VNB)|Manages the distribution network for energy, gas or water.
-|EPL|Eclipse Public License||Underlying license model for Eclipse projects like elogbook@openK
-|ESB|Enterprise Service Bus||Central instance for exchange of data to overcome point-to-point connections.
+|EPL|Eclipse Public License||Underlying license model for Eclipse projects like planned-grid-measures@openK
+|ESB|Enterprise Service Bus||Central instance to exchange data to overcome point-to-point connections.
 |GNM|Geplante Netzmaßnahme||German name of the module 'Planned Grid Measures'
 |oK|openKONSEQUENZ|openKONSEQUENZ|Name of the consortium of DSOs
 |QC|Quality Committee|Qualitätskomitee|Gives framework and constraints according to quality for oK projects.
diff --git a/src/main/asciidoc/howto/howtoBuild.adoc b/src/main/asciidoc/howto/howtoBuild.adoc
index 9f45d43..bdf60a7 100644
--- a/src/main/asciidoc/howto/howtoBuild.adoc
+++ b/src/main/asciidoc/howto/howtoBuild.adoc
@@ -9,7 +9,7 @@
 *
 ******************************************************************************
 ////
-= openKonsequenz - How to build the module "eLogbook@openK"
+= openKonsequenz - How to build the module "plannedGridMeasures@openK"
 :Date: 2017-11-17
 :Revision: 1
 :icons:
@@ -31,7 +31,7 @@
 === Install Graphviz
 Graphviz is open source graph visualization software. You need this software because of auto-generated graphics in the documentations.
 
-* Download and install Graphviz from http://www.graphviz.org/Download_windows.php
+* Download and install Graphviz from https://graphviz.gitlab.io/_pages/Download/Download_windows.html
 * If not, set the PATH variable
 
  Name of variable: GRAPHVIZ_DOT
@@ -47,7 +47,7 @@
 * Download Node.js 6.10.3 from https://nodejs.org/download/release/v6.10.3/ by clicking on a xxx.msi image for windows.
 * Run the downloaded Node.js .msi Installer - including accepting the license, selecting the destination, and authenticating for the install.
 This requires Administrator privileges, and you may need to authenticate
-* To ensure Node.js has been installed, run the following in your terminal - you should get something like v6.10.0
+* To ensure Node.js has been installed, run the following in your terminal which should show you the installed version. (For example: v6.10.0)
 
 [source,command]
 ----
@@ -56,7 +56,7 @@
 {blank}
 
 === Update the npm Angular-CLI client
-This package manager comes bundled with Node.js and its good to have the latest version.
+This package manager comes bundled with Node.js and it is good to have the latest version.
 
 * Open a command line and navigate to the root folder of the frontend project
 * Run the following commands (the version is defined in the package.json file):
diff --git a/src/main/asciidoc/howto/howtoRun.adoc b/src/main/asciidoc/howto/howtoRun.adoc
index 8e6902b..ca98764 100644
--- a/src/main/asciidoc/howto/howtoRun.adoc
+++ b/src/main/asciidoc/howto/howtoRun.adoc
@@ -30,7 +30,8 @@
 
 == Prerequisites
 
-* *To see this application running you have to run Portal application too.* The reason is the authentication, which happened in the Portal login phase.
+* *Portal (Auth n Auth) application has to be installed and configured.* The Portal is the entrypoint
+for this module and mandatory for its authentification.
 
 ==== Install and Configure Apache Tomcat
 Tomcat is an open-source Java Servlet Container and provides a "pure Java" HTTP web server environment in which Java code can run.
@@ -44,19 +45,17 @@
 b. Dont forget to save it.
 
 
-TIP: For more informations check *Deployment View* Chapter in *http://87.128.212.254:8880/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]*.
+TIP: For more informations check *Deployment View* Chapter in *http://169.50.13.154/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]*.
 
 ** Tomcat also needs the database driver to be placed in `<tomcat>/lib`. Find it in the project file `deploy/lib/`*postgresql-xxx.jar*.
 
-TIP: It's recommend to install a service for starting and stopping the Apache Tomcat.
+TIP: It is recommend to install a service for starting and stopping the Apache Tomcat.
 
 ==== Install and Configure a PostgreSQL database
 
-* A developing and administrating software for databases
+To work with a postgreSQL database pgAdmin is suggested
 
-** To work with a postgreSQL database is pgAdmin suggested
-
-1. Download and install pgAdmin (version 3 is used during developing process) from:
+1. Download and install pgAdmin (we suggest "Version 3" since it performs better than "Version 4") from:
         https://www.pgadmin.org/download/
 2. Create a database and adapt the `<tomcat>/conf/`*context.xml* file to your database (look at *Install and Configure Apache Tomcat*).
 
@@ -64,15 +63,15 @@
 
   /db/migrations/V0_XX__CREATE_PLGM_DB.sql
 
-TIP: It's recommend to install a service for starting and stopping the PostgreSQL database.
+TIP: It is recommend to install a service for starting and stopping the PostgreSQL database.
 
-TIP: For detailed instructions look at *http://87.128.212.254:8880/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]*.
+TIP: For detailed instructions look at *http://169.50.13.154/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]*.
 
 == How to deploy and run the Backend
 To run the backend you need to have installed and configured Apache Tomcat (look at *Install and Configure Apache Tomcat*).
-The Backend exists of 3 Artifacts:
+The Backend consists of 3 Artifacts:
 
-** One Web Application Archive (war) file which is deployed on a Apache Tomcat
+** One Web Application Archive (war) file which is deployed on an Apache Tomcat
 *** MicsHomeService (*mics-home-service.war*)
 ** Two Java Archives (jar) started as Microservices
 *** MicsCentralService Backend-Microservice (*mics-central-service.jar*)
@@ -80,9 +79,11 @@
 
 
 === Deploy MicsHomeService (war-file) and start Apache Tomcat
-Tomcat needs the Web Application Archive (war) file. Either you got it through a successfully maven build or via zip from a Jenkins source.
+Tomcat needs the Web Application Archive (war) file. Get it from a successfully maven build or via zip from a Jenkins source.
 
-1. Copy the *mics-home-service.war* file from the `/target` folder of project "MicsHomeService" (zip or maven-build) in the `<tomcat>/webapps` file. If there is a folder named *mics-home-service*, delete it before.
+1. Copy the *mics-home-service.war* file from the `/target` folder of
+project "MicsHomeService" (zip or maven-build) to the `<tomcat>/webapps` folder.
+If there is already a folder named *mics-home-service* you have to delete it.
 2. Navigate to your `apache-tomcat-8.5.24\bin` folder and start Tomcat by clicking on *startup.bat* (Windows) or executing *startup.sh* (Linux).
 * Tomcat's default port is *8080*.
 
@@ -117,14 +118,15 @@
 === Deploy and start Microservices
 
 ==== Microservices File Structures
-Doesn't matter if you got the artifacts as a zip file from a Jenkins source or as a maven built result (look at *howtoBuild*),
-the final structure and existence of the files/folders has to look like the following layout (see File/Folder Structure below) after you deployed it to your choosen
+No matter where the artifacts are from, a zip file from a Jenkins source or from a maven built
+result (look at *howtoBuild*), the final structure and existence of the files/folders has to look
+like the following layout (see File/Folder Structure below) after you deployed it to your chosen
 folder.
 
 a. If you got it as zip it should already has the correct structure after extraction. (ignore b.)
 b. If you have a maven built:
-* The needed jar-file is always in the `/target` folder of the related project folder after a successfully maven build (look at *howtoBuild*).
-The other needed files and folders are in the root folder `/` of the related project after a successfully maven build.
+* The needed jar-file is always in the `/target` folder of the related project folder after a successful maven build (look at *howtoBuild*).
+The other files and folders needed are in the root folder `/` of the related project after a successful maven build.
 
 ==== MicsCentralService Backend-Microservice
 
@@ -136,7 +138,7 @@
 ----
 ===== Configuring and starting the microservice
 The name of `*.yml` file can be changed but you have to use the same file as starting parameter when starting
-the microservice later on. In our example it's `serviceConfig_QA.yml`.
+the microservice later on. In our example it is `serviceConfig_QA.yml`.
 
 *serviceConfig_QA.yml*
 ----
@@ -216,23 +218,23 @@
 ----
 
 
-** "name" : Name of the service (must not be changed, since it hardwired in the client-applications!)
+** "name" : Name of the service (must not be changed, since it is hardwired in the client-applications!)
 ** "protocol" : HTTP or HTTPS
 ** "host" : IP of the server where the service can be reached
 ** "urlPath" : (must not be changed)
-** "portApp" : Port of the service. For example for `mics-central-service` its `9010` because thats what we
- configured in the related `serviceConfig_QA.yml` under `applicationConnectors` -> `type` and `port`.
+** "portApp" : Port of the service. For example for `mics-central-service` it is `9010` because that is
+what we configured in the related `serviceConfig_QA.yml` under `applicationConnectors` -> `type` and `port`.
 ** "portHealth": Port of the dropWizard-Health-Service.
 ** "description" : Description of the service
 
 The microservice can now be started via Java-Runtime in a console from your <yourChoosenFolder_MicsCentralService>:
 
-Remeber to use the *.yml file whaterver you renamed it to as parameter like below, in our example it's `serviceConfig_QA.yml`:
+Remember to use the *.yml file as parameter like below, in our example it is `serviceConfig_QA.yml`:
 ----
 java -jar mics-central-service.jar server serviceConfig_QA.yml
 ----
 
-TIP: It's recommend to install this java microservice execution as a service.
+TIP: It is recommend to install this execution as a service.
 
 ==== PlannedGridMeasures Backend-Microservice
 
@@ -246,7 +248,7 @@
 ----
 ===== Configuring and starting the microservice
 The name of `*.yml` file can be changed but you have to use the same file as starting parameter when starting
-the microservice later on. In our example it's `qserver.yml`.
+the microservice later on. In our example it is `qserver.yml`.
 
 *qserver.yml*
 ----
@@ -297,20 +299,21 @@
 
 
 The microservice can now be started via Java-Runtime in a console from your <yourChoosenFolder_PlannedGridMeasures>.
-Remeber to use the *.yml file whaterver you renamed it to as parameter like below, in our example it's `qserver.yml`:
+Remember to use the *.yml file as parameter like below, in our example it is `qserver.yml`:
 
 ----
 java -jar planned-grid-measures.jar server qserver.yml
 ----
 
-TIP: It's recommend to install this java microservice execution as a service.
+TIP: It is recommend to install this execution as a service.
 
-TIP: Look at the *http://87.128.212.254:8880/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]* for informations about the services.
+TIP: Look at the *http://169.50.13.154/gridMeasuresADoc/architectureDocumentation.html[PlannedGridMeasures Architecture Documentation]* for informations about the services.
 
 == How to deploy and run the Frontend
-Go to `<tomcat>/webapps` folder, if there is a folder named *plannedGridMeasures*, delete it before.
-If you got it from a Jenkins source as zip extract the content to the `<tomcat>/webapps` folder.
-If you have a maven-build, copy the content of the `dist` folder in the project folder of "PlannedGridMeasures Frontend" to `<tomcat>/webapps/plannedGridMeasures`.
+Go to `<tomcat>/webapps` folder, if there is already a folder named *plannedGridMeasures* delete it.
+You can get the Frontend sources as a artifact (zip) from Jenkins or by a maven-build.
+If you get the artifact from Jenkins as zip extract the content to the `<tomcat>/webapps` folder.
+If you do a maven-build, copy the content of the `dist` folder in the project folder of "PlannedGridMeasures Frontend" to `<tomcat>/webapps/plannedGridMeasures`.
 
 Nevertheless guarantee the following file/folder structure after extraction/copying:
 ----
diff --git a/src/main/asciidoc/images/abbrechen.png b/src/main/asciidoc/images/abbrechen.png
new file mode 100644
index 0000000..cf98a3a
--- /dev/null
+++ b/src/main/asciidoc/images/abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/images/abmelden.png b/src/main/asciidoc/images/abmelden.png
new file mode 100644
index 0000000..1a8799f
--- /dev/null
+++ b/src/main/asciidoc/images/abmelden.png
Binary files differ
diff --git a/src/main/asciidoc/images/auge-symbol.png b/src/main/asciidoc/images/auge-symbol.png
new file mode 100644
index 0000000..6bb5e6f
--- /dev/null
+++ b/src/main/asciidoc/images/auge-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/beantragen.png b/src/main/asciidoc/images/beantragen.png
new file mode 100644
index 0000000..88044aa
--- /dev/null
+++ b/src/main/asciidoc/images/beantragen.png
Binary files differ
diff --git a/src/main/asciidoc/images/button_tabelle_kalender.jpg b/src/main/asciidoc/images/button_tabelle_kalender.jpg
new file mode 100644
index 0000000..92a33ce
--- /dev/null
+++ b/src/main/asciidoc/images/button_tabelle_kalender.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/dateien_hochladen.png b/src/main/asciidoc/images/dateien_hochladen.png
new file mode 100644
index 0000000..c07d4be
--- /dev/null
+++ b/src/main/asciidoc/images/dateien_hochladen.png
Binary files differ
diff --git a/src/main/asciidoc/images/einzelmassnahme-loeschen.png b/src/main/asciidoc/images/einzelmassnahme-loeschen.png
new file mode 100644
index 0000000..f74a18c
--- /dev/null
+++ b/src/main/asciidoc/images/einzelmassnahme-loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/images/email-verteiler.png b/src/main/asciidoc/images/email-verteiler.png
new file mode 100644
index 0000000..52966ce
--- /dev/null
+++ b/src/main/asciidoc/images/email-verteiler.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_grau.png b/src/main/asciidoc/images/erinnerung_datum_grau.png
new file mode 100644
index 0000000..069c12f
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_grau.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_orange.png b/src/main/asciidoc/images/erinnerung_datum_orange.png
new file mode 100644
index 0000000..f59a47b
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_orange.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_datum_rot.jpg b/src/main/asciidoc/images/erinnerung_datum_rot.jpg
new file mode 100644
index 0000000..d5b4a64
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_datum_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_grau.png b/src/main/asciidoc/images/erinnerung_glocke_grau.png
new file mode 100644
index 0000000..d4ea274
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_grau.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_orange.png b/src/main/asciidoc/images/erinnerung_glocke_orange.png
new file mode 100644
index 0000000..918723f
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_orange.png
Binary files differ
diff --git a/src/main/asciidoc/images/erinnerung_glocke_rot.jpg b/src/main/asciidoc/images/erinnerung_glocke_rot.jpg
new file mode 100644
index 0000000..1ce63ec
--- /dev/null
+++ b/src/main/asciidoc/images/erinnerung_glocke_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/images/filter_speichern.png b/src/main/asciidoc/images/filter_speichern.png
new file mode 100644
index 0000000..5a7d08a
--- /dev/null
+++ b/src/main/asciidoc/images/filter_speichern.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm-erstellen.png b/src/main/asciidoc/images/gnm-erstellen.png
new file mode 100644
index 0000000..88a9eb9
--- /dev/null
+++ b/src/main/asciidoc/images/gnm-erstellen.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_detail.png b/src/main/asciidoc/images/gnm_detail.png
new file mode 100644
index 0000000..b154645
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_detail.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_einzelmassnahme.png b/src/main/asciidoc/images/gnm_einzelmassnahme.png
new file mode 100644
index 0000000..9a59e79
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_einzelmassnahme.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_gesamt.png b/src/main/asciidoc/images/gnm_gesamt.png
new file mode 100644
index 0000000..9e618c5
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_gesamt.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_header.png b/src/main/asciidoc/images/gnm_header.png
new file mode 100644
index 0000000..51a256a
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_header.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_kalenderuebersicht.png b/src/main/asciidoc/images/gnm_kalenderuebersicht.png
new file mode 100644
index 0000000..fc7d4d9
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_kalenderuebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_schrittsequenz.png b/src/main/asciidoc/images/gnm_schrittsequenz.png
new file mode 100644
index 0000000..3e11ee6
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_schrittsequenz.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_schrittsequenz_tabelle.png b/src/main/asciidoc/images/gnm_schrittsequenz_tabelle.png
new file mode 100644
index 0000000..8ea36e3
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_schrittsequenz_tabelle.png
Binary files differ
diff --git a/src/main/asciidoc/images/gnm_uebersichtstabelle.png b/src/main/asciidoc/images/gnm_uebersichtstabelle.png
new file mode 100644
index 0000000..abd0f3a
--- /dev/null
+++ b/src/main/asciidoc/images/gnm_uebersichtstabelle.png
Binary files differ
diff --git a/src/main/asciidoc/images/kalender_tag.png b/src/main/asciidoc/images/kalender_tag.png
new file mode 100644
index 0000000..dfb4aad
--- /dev/null
+++ b/src/main/asciidoc/images/kalender_tag.png
Binary files differ
diff --git a/src/main/asciidoc/images/kalender_woche.png b/src/main/asciidoc/images/kalender_woche.png
new file mode 100644
index 0000000..11b59a1
--- /dev/null
+++ b/src/main/asciidoc/images/kalender_woche.png
Binary files differ
diff --git a/src/main/asciidoc/images/massnahme_durchfuehren_u_abschliessen_1.png b/src/main/asciidoc/images/massnahme_durchfuehren_u_abschliessen_1.png
index b797b5c..6b6fdbd 100644
--- a/src/main/asciidoc/images/massnahme_durchfuehren_u_abschliessen_1.png
+++ b/src/main/asciidoc/images/massnahme_durchfuehren_u_abschliessen_1.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung_erfolgreich.png b/src/main/asciidoc/images/meldung_erfolgreich.png
new file mode 100644
index 0000000..06fac8f
--- /dev/null
+++ b/src/main/asciidoc/images/meldung_erfolgreich.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung_fehler.png b/src/main/asciidoc/images/meldung_fehler.png
new file mode 100644
index 0000000..6413db7
--- /dev/null
+++ b/src/main/asciidoc/images/meldung_fehler.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung_hinweis.png b/src/main/asciidoc/images/meldung_hinweis.png
new file mode 100644
index 0000000..e64fc27
--- /dev/null
+++ b/src/main/asciidoc/images/meldung_hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/images/netzmassnahme_duplizieren.png b/src/main/asciidoc/images/netzmassnahme_duplizieren.png
new file mode 100644
index 0000000..dbef084
--- /dev/null
+++ b/src/main/asciidoc/images/netzmassnahme_duplizieren.png
Binary files differ
diff --git a/src/main/asciidoc/images/oeffnen-modul.png b/src/main/asciidoc/images/oeffnen-modul.png
new file mode 100644
index 0000000..c6ef04c
--- /dev/null
+++ b/src/main/asciidoc/images/oeffnen-modul.png
Binary files differ
diff --git a/src/main/asciidoc/images/rueckschaltung-planen.png b/src/main/asciidoc/images/rueckschaltung-planen.png
new file mode 100644
index 0000000..11a2080
--- /dev/null
+++ b/src/main/asciidoc/images/rueckschaltung-planen.png
Binary files differ
diff --git a/src/main/asciidoc/images/speichern.png b/src/main/asciidoc/images/speichern.png
new file mode 100644
index 0000000..d24aeb4
--- /dev/null
+++ b/src/main/asciidoc/images/speichern.png
Binary files differ
diff --git a/src/main/asciidoc/images/sperrung_aufheben.png b/src/main/asciidoc/images/sperrung_aufheben.png
new file mode 100644
index 0000000..a6b960f
--- /dev/null
+++ b/src/main/asciidoc/images/sperrung_aufheben.png
Binary files differ
diff --git a/src/main/asciidoc/images/statuswechsel-uebersicht.png b/src/main/asciidoc/images/statuswechsel-uebersicht.png
new file mode 100644
index 0000000..daf23e2
--- /dev/null
+++ b/src/main/asciidoc/images/statuswechsel-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/stift-symbol.png b/src/main/asciidoc/images/stift-symbol.png
new file mode 100644
index 0000000..c892d04
--- /dev/null
+++ b/src/main/asciidoc/images/stift-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/stornieren-deaktiviert.png b/src/main/asciidoc/images/stornieren-deaktiviert.png
new file mode 100644
index 0000000..353e592
--- /dev/null
+++ b/src/main/asciidoc/images/stornieren-deaktiviert.png
Binary files differ
diff --git a/src/main/asciidoc/images/stornieren.png b/src/main/asciidoc/images/stornieren.png
new file mode 100644
index 0000000..66caec6
--- /dev/null
+++ b/src/main/asciidoc/images/stornieren.png
Binary files differ
diff --git a/src/main/asciidoc/images/stornieren_kommentar.png b/src/main/asciidoc/images/stornieren_kommentar.png
new file mode 100644
index 0000000..58c7e17
--- /dev/null
+++ b/src/main/asciidoc/images/stornieren_kommentar.png
Binary files differ
diff --git a/src/main/asciidoc/images/tabellen-filter.png b/src/main/asciidoc/images/tabellen-filter.png
new file mode 100644
index 0000000..d1aa03e
--- /dev/null
+++ b/src/main/asciidoc/images/tabellen-filter.png
Binary files differ
diff --git a/src/main/asciidoc/images/vordefinierte_filter.png b/src/main/asciidoc/images/vordefinierte_filter.png
new file mode 100644
index 0000000..1f2ac0b
--- /dev/null
+++ b/src/main/asciidoc/images/vordefinierte_filter.png
Binary files differ
diff --git a/src/main/asciidoc/originalfiles/massnahme_durchfuehren_u_abschliessen_1.bpmn b/src/main/asciidoc/originalfiles/massnahme_durchfuehren_u_abschliessen_1.bpmn
index 04e73fe..8ca271f 100644
--- a/src/main/asciidoc/originalfiles/massnahme_durchfuehren_u_abschliessen_1.bpmn
+++ b/src/main/asciidoc/originalfiles/massnahme_durchfuehren_u_abschliessen_1.bpmn
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.11.3">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.16.2">
   <bpmn:collaboration id="Collaboration_12wz08v">
     <bpmn:participant id="Participant_0otw9c4" name="Antragsteller" processRef="Process_1" />
     <bpmn:participant id="Participant_1p95h6s" name="Maßnahmeantrag" processRef="Process_0j08xuw" />
@@ -13,6 +13,7 @@
     <bpmn:messageFlow id="MessageFlow_19dm73r" sourceRef="IntermediateThrowEvent_1inljg0" targetRef="Participant_0otw9c4" />
     <bpmn:messageFlow id="MessageFlow_03ewhg8" sourceRef="IntermediateThrowEvent_1inljg0" targetRef="Participant_010bjd5" />
     <bpmn:messageFlow id="MessageFlow_1m2y84z" sourceRef="EndEvent_0ymfux1" targetRef="Participant_0otw9c4" />
+    <bpmn:messageFlow id="MessageFlow_17595r5" sourceRef="EndEvent_0ymfux1" targetRef="Participant_010bjd5" />
   </bpmn:collaboration>
   <bpmn:process id="Process_1" isExecutable="true" />
   <bpmn:process id="Process_0j08xuw" isExecutable="false">
@@ -128,8 +129,8 @@
         <dc:Bounds x="123" y="597" width="1231" height="70" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="MessageFlow_1l1mp73_di" bpmnElement="MessageFlow_1l1mp73">
-        <di:waypoint xsi:type="dc:Point" x="286" y="98" />
-        <di:waypoint xsi:type="dc:Point" x="286" y="271" />
+        <di:waypoint x="286" y="98" />
+        <di:waypoint x="286" y="271" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="256" y="177.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -144,15 +145,15 @@
         <dc:Bounds x="321" y="249" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0ktqb7q_di" bpmnElement="SequenceFlow_0ktqb7q">
-        <di:waypoint xsi:type="dc:Point" x="304" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="321" y="289" />
+        <di:waypoint x="304" y="289" />
+        <di:waypoint x="321" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="267.5" y="267" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_17449rm_di" bpmnElement="SequenceFlow_17449rm">
-        <di:waypoint xsi:type="dc:Point" x="421" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="445" y="289" />
+        <di:waypoint x="421" y="289" />
+        <di:waypoint x="445" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="388" y="267" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -167,15 +168,15 @@
         <dc:Bounds x="1003" y="249" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_02vwa01_di" bpmnElement="SequenceFlow_02vwa01">
-        <di:waypoint xsi:type="dc:Point" x="881" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="1003" y="289" />
+        <di:waypoint x="881" y="289" />
+        <di:waypoint x="1003" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="897" y="267" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_0lmpuxm_di" bpmnElement="MessageFlow_0lmpuxm">
-        <di:waypoint xsi:type="dc:Point" x="863" y="307" />
-        <di:waypoint xsi:type="dc:Point" x="863" y="597" />
+        <di:waypoint x="863" y="307" />
+        <di:waypoint x="863" y="597" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="833" y="445" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -187,15 +188,15 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1w0wd0p_di" bpmnElement="SequenceFlow_1w0wd0p">
-        <di:waypoint xsi:type="dc:Point" x="1103" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="1125" y="289" />
+        <di:waypoint x="1103" y="289" />
+        <di:waypoint x="1125" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1069" y="267" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1unnid8_di" bpmnElement="SequenceFlow_1unnid8">
-        <di:waypoint xsi:type="dc:Point" x="1150" y="264" />
-        <di:waypoint xsi:type="dc:Point" x="1150" y="205" />
+        <di:waypoint x="1150" y="264" />
+        <di:waypoint x="1150" y="205" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1114" y="230.4237288135593" width="73" height="28" />
         </bpmndi:BPMNLabel>
@@ -207,23 +208,23 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="MessageFlow_1kg5s6u_di" bpmnElement="MessageFlow_1kg5s6u">
-        <di:waypoint xsi:type="dc:Point" x="1150" y="169" />
-        <di:waypoint xsi:type="dc:Point" x="1150" y="98" />
+        <di:waypoint x="1150" y="169" />
+        <di:waypoint x="1150" y="98" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1120" y="126.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_0rutzwg_di" bpmnElement="MessageFlow_0rutzwg">
-        <di:waypoint xsi:type="dc:Point" x="1150" y="205" />
-        <di:waypoint xsi:type="dc:Point" x="1150" y="597" />
+        <di:waypoint x="1150" y="205" />
+        <di:waypoint x="1150" y="597" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1120" y="394" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_02hfotj_di" bpmnElement="SequenceFlow_02hfotj">
-        <di:waypoint xsi:type="dc:Point" x="1150" y="314" />
-        <di:waypoint xsi:type="dc:Point" x="1150" y="413" />
-        <di:waypoint xsi:type="dc:Point" x="1120" y="413" />
+        <di:waypoint x="1150" y="314" />
+        <di:waypoint x="1150" y="413" />
+        <di:waypoint x="1120" y="413" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1133" y="351" width="83" height="28" />
         </bpmndi:BPMNLabel>
@@ -235,22 +236,22 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="MessageFlow_0egiz49_di" bpmnElement="MessageFlow_0egiz49">
-        <di:waypoint xsi:type="dc:Point" x="974" y="431" />
-        <di:waypoint xsi:type="dc:Point" x="974" y="597" />
+        <di:waypoint x="974" y="431" />
+        <di:waypoint x="974" y="597" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="944" y="507" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_1cdmhoz_di" bpmnElement="MessageFlow_1cdmhoz">
-        <di:waypoint xsi:type="dc:Point" x="974" y="395" />
-        <di:waypoint xsi:type="dc:Point" x="974" y="98" />
+        <di:waypoint x="974" y="395" />
+        <di:waypoint x="974" y="98" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="944" y="239.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1i3z6t7_di" bpmnElement="SequenceFlow_1i3z6t7">
-        <di:waypoint xsi:type="dc:Point" x="1175" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="1239" y="289" />
+        <di:waypoint x="1175" y="289" />
+        <di:waypoint x="1239" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1208.8945652740833" y="264.4237288135593" width="11" height="14" />
         </bpmndi:BPMNLabel>
@@ -262,15 +263,15 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="MessageFlow_19dm73r_di" bpmnElement="MessageFlow_19dm73r">
-        <di:waypoint xsi:type="dc:Point" x="1257" y="271" />
-        <di:waypoint xsi:type="dc:Point" x="1257" y="98" />
+        <di:waypoint x="1257" y="271" />
+        <di:waypoint x="1257" y="98" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1227" y="177.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_03ewhg8_di" bpmnElement="MessageFlow_03ewhg8">
-        <di:waypoint xsi:type="dc:Point" x="1257" y="307" />
-        <di:waypoint xsi:type="dc:Point" x="1257" y="597" />
+        <di:waypoint x="1257" y="307" />
+        <di:waypoint x="1257" y="597" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1227" y="445" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -282,8 +283,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0rbrfmo_di" bpmnElement="SequenceFlow_0rbrfmo">
-        <di:waypoint xsi:type="dc:Point" x="956" y="413" />
-        <di:waypoint xsi:type="dc:Point" x="210" y="413" />
+        <di:waypoint x="956" y="413" />
+        <di:waypoint x="210" y="413" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="538" y="391" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -295,8 +296,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_04zp5fs_di" bpmnElement="SequenceFlow_04zp5fs">
-        <di:waypoint xsi:type="dc:Point" x="1275" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="1292" y="289" />
+        <di:waypoint x="1275" y="289" />
+        <di:waypoint x="1292" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="1238.5" y="267" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -308,8 +309,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0pgzax1_di" bpmnElement="SequenceFlow_0pgzax1">
-        <di:waypoint xsi:type="dc:Point" x="1084" y="413" />
-        <di:waypoint xsi:type="dc:Point" x="992" y="413" />
+        <di:waypoint x="1084" y="413" />
+        <di:waypoint x="992" y="413" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="993" y="391" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -321,8 +322,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1puvmik_di" bpmnElement="SequenceFlow_1puvmik">
-        <di:waypoint xsi:type="dc:Point" x="765" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="845" y="289" />
+        <di:waypoint x="765" y="289" />
+        <di:waypoint x="845" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="757.2657286891737" y="267" width="81" height="14" />
         </bpmndi:BPMNLabel>
@@ -334,17 +335,17 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0u4snq8_di" bpmnElement="SequenceFlow_0u4snq8">
-        <di:waypoint xsi:type="dc:Point" x="740" y="264" />
-        <di:waypoint xsi:type="dc:Point" x="740" y="235" />
-        <di:waypoint xsi:type="dc:Point" x="740" y="235" />
-        <di:waypoint xsi:type="dc:Point" x="740" y="205" />
+        <di:waypoint x="740" y="264" />
+        <di:waypoint x="740" y="235" />
+        <di:waypoint x="740" y="235" />
+        <di:waypoint x="740" y="205" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="708" y="233.906636024131" width="64" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="MessageFlow_1m2y84z_di" bpmnElement="MessageFlow_1m2y84z">
-        <di:waypoint xsi:type="dc:Point" x="740" y="169" />
-        <di:waypoint xsi:type="dc:Point" x="740" y="98" />
+        <di:waypoint x="740" y="169" />
+        <di:waypoint x="740" y="98" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="710" y="126.5" width="90" height="14" />
         </bpmndi:BPMNLabel>
@@ -356,8 +357,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1uwbemv_di" bpmnElement="SequenceFlow_1uwbemv">
-        <di:waypoint xsi:type="dc:Point" x="495" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="579" y="289" />
+        <di:waypoint x="495" y="289" />
+        <di:waypoint x="579" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="527" y="267" width="20" height="14" />
         </bpmndi:BPMNLabel>
@@ -369,8 +370,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0m63nnm_di" bpmnElement="SequenceFlow_0m63nnm">
-        <di:waypoint xsi:type="dc:Point" x="629" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="715" y="289" />
+        <di:waypoint x="629" y="289" />
+        <di:waypoint x="715" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="662" y="267" width="20" height="14" />
         </bpmndi:BPMNLabel>
@@ -388,17 +389,17 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1d87js5_di" bpmnElement="SequenceFlow_1d87js5">
-        <di:waypoint xsi:type="dc:Point" x="470" y="314" />
-        <di:waypoint xsi:type="dc:Point" x="470" y="537" />
-        <di:waypoint xsi:type="dc:Point" x="1292" y="537" />
+        <di:waypoint x="470" y="314" />
+        <di:waypoint x="470" y="537" />
+        <di:waypoint x="1292" y="537" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="479" y="358" width="9" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1flkn86_di" bpmnElement="SequenceFlow_1flkn86">
-        <di:waypoint xsi:type="dc:Point" x="604" y="314" />
-        <di:waypoint xsi:type="dc:Point" x="604" y="484" />
-        <di:waypoint xsi:type="dc:Point" x="1292" y="484" />
+        <di:waypoint x="604" y="314" />
+        <di:waypoint x="604" y="484" />
+        <di:waypoint x="1292" y="484" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="614" y="358" width="9" height="14" />
         </bpmndi:BPMNLabel>
@@ -410,8 +411,8 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_10rg81i_di" bpmnElement="SequenceFlow_10rg81i">
-        <di:waypoint xsi:type="dc:Point" x="210" y="289" />
-        <di:waypoint xsi:type="dc:Point" x="268" y="289" />
+        <di:waypoint x="210" y="289" />
+        <di:waypoint x="268" y="289" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="239" y="267" width="0" height="14" />
         </bpmndi:BPMNLabel>
@@ -423,13 +424,17 @@
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_024p0l7_di" bpmnElement="SequenceFlow_024p0l7">
-        <di:waypoint xsi:type="dc:Point" x="210" y="364" />
-        <di:waypoint xsi:type="dc:Point" x="286" y="364" />
-        <di:waypoint xsi:type="dc:Point" x="286" y="307" />
+        <di:waypoint x="210" y="364" />
+        <di:waypoint x="286" y="364" />
+        <di:waypoint x="286" y="307" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="203" y="342" width="90" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="MessageFlow_17595r5_di" bpmnElement="MessageFlow_17595r5">
+        <di:waypoint x="740" y="205" />
+        <di:waypoint x="740" y="597" />
+      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn:definitions>
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
new file mode 100644
index 0000000..992b9a3
--- /dev/null
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
@@ -0,0 +1,1057 @@
+= Benutzerhandbuch: Geplante Netzmaßnahmen
+
+<<<
+
+
+* Version: 0.2
+* Datum: 14.09.2018
+* Status: zur Prüfung
+
+<<<
+
+:Author: Dr. Michel Alessandrini
+:Email: michel.alessandrini@pta.de
+
+:Date: 2018-09-14
+:Revision: 0.2
+
+:icons:
+
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+:lang: de
+:encoding: utf-8
+
+:imagesdir: ../images
+:iconsdir: ../images/icons
+
+:toc:
+:toclevels: 4
+:toc-title: Inhaltsverzeichnis
+:toc-placement!:
+:sectanchors:
+:numbered:
+
+toc::[]
+
+<<<
+
+== Sinn und Zweck des Moduls Geplante Netzmaßnahmen
+
+Das Modul Geplante Netzmaßnahme ist ein User-Modul der openKONSEQUENZ.
+
+Mit diesem Modul hat ein Netzbetreiber jederzeit alle geplanten
+Netzmaßnahmen inklusive der aktuellen Status im Überblick.
+
+Dabei wird jede geplante Netzmaßnahme durch einen
+vordefinierten Prozess von der Planung über die Genehmigung und die
+Durchführung bis zum Abschluss der Maßnahme gesteuert. Die einzelnen
+Prozesschritte sind entsprechend der Verantwortungsbereiche eines
+Unternehmens an Benutzerrollen gebunden.
+
+Zur Planung von Einzelmaßnahmen und deren Schrittsequenzen können aktuelle
+Netzzustände angezeigt werden.
+
+<<<
+
+== Übersicht
+
+[[uebersicht-benutzerrollen]]
+=== Benutzerrollen und Aufgaben
+Zur Bearbeitung von geplanten Netzmaßnahnmen sind folgende Benutzerrollen
+definiert.
+
+==== Maßnahmen-Antragsteller
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<gnm-erstellen,Darf neue Geplante Netzmaßnahmen anlegen>>
+* <<ansicht-bearbeitung-gnm,Darf Geplante Netzmaßnahmen im Status "Neu" bearbeiten>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Neu" nach "Beantragt" durchführen>>
+* <<statuswechsel-stornieren,Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren>>
+
+==== Maßnahmen-Planer
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<ansicht-bearbeitung-gnm,Darf Geplante Netzmaßnahmen im Status "Beantragt" bearbeiten>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Beantragt" nach "Zur Genehmigung" durchführen>>
+* <<statuswechsel-stornieren,Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren>>
+
+==== Maßnahmen-Genehmiger
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Zur Genehmigung" nach "Genehmigt" durchführen>>
+* <<gnm-zurueckweisen,Darf Geplante Netzmaßnahmen im Status "Zur Genehmigung" zurückweisen und damit den Status wieder auf den Status "Beantragt" zurücksetzen>>
+* <<statuswechsel-stornieren,Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren>>
+
+==== Maßnahmen-Anforderer
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Genehmigt" nach "Angefordert" durchführen>>
+* <<statuswechsel-stornieren,Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren>>
+
+==== Maßnahmen-Freigeber
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Angefordert" nach "Freigegeben" durchführen>>
+* <<gnm-zurueckweisen,Darf Geplante Netzmaßnahmen im Status "Angefordert" zurückweisen und damit den Status wieder auf den Status "Beantragt" zurücksetzen>>
+* <<statuswechsel-stornieren,Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren>>
+
+==== Maßnahmen-Ausführer
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Freigegeben" nach "Schalten aktiv" durchführen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Schalten aktiv" nach "In Arbeit" durchführen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "In Arbeit" nach "Arbeit beendet" durchführen>>
+
+==== Maßnahmen-Fertigsteller
+* <<uebersicht-aller-gnm,Darf alle Geplanten Netzmaßnahmen sehen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Arbeit beendet" nach "Maßnahme beendet" durchführen>>
+* <<statuswechsel-allgemein,Darf den Statuswechsel von "Maßnahme beendet" nach "Geschlossen" durchführen>>
+
+==== Administrator
+* Darf alles
+* Darf zusätzlich Konfigurationen vornehmen (Details sind in technischer Dokumentation beschrieben)
+** Optionale Status im Prozess
+** Mailvorlagen für Benachrichtigungen (bei Ziel-Status "Genehmigt", "Storniert", "Zurückgewiesen")
+** Basis eMail-Verteilerlisten
+** Unterstützte Dateiformate
+** Zeitfenster für Erinnerungen
+
+[[uebersicht-statuszustaende]]
+=== Statuszustände
+Zur Bearbeitung von geplanten Netzmaßnahnmen sind folgende Status
+definiert.
+
+.Hinweis zu den optionalen Status:
+* Je nach Konfiguration des Systems sind keine, einzelne oder alle optionalen
+  Status in der Anwendung aktiv.
+* Diese Einstellung kann nur der Administrator anpassen.
+
+[[gnm-zurueckweisen]]
+.Hinweis zum Zurückweisen von Geplanten Netzmaßnahmen
+* Die Geplante Netzmaßnahme wurde von einer definierten Stelle geprüft und zurückgewiesen. Die
+  Geplante Netzmaßnahme kann nach Korrektur voraussichtlich durchgeführt
+  werden.
+* Beim Zurückweisen von Geplanten Netzmaßnahmen wird der Status wieder auf
+  "Beantragt" zurückgesetzt
+
+==== Neu
+* Die Geplante Netzmaßnahme ist angelegt.
+* Ggf. sind betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+  Geplanten Netzmaßnahme erfasst.
+
+==== Beantragt
+* Der Titel der Geplanten Netzmaßnahme ist fix.
+* Ggf. sind betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+  Geplanten Netzmaßnahme erfasst.
+
+==== Zur Genehmigung _(optional)_
+* Die Geplante Netzmaßnahme ist vollständig geplant und kann zur Genehnmigung
+  vorgelegt werden.
+* Betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+  Geplanten Netzmaßnahme sind erfasst.
+* Einzelmaßnahmen und Schrittsequenzen sind mit konkreten Werten geplant.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" eingetragen werden.
+
+.Optional
+* Dieser Status kann durch den Administrator deaktiviert werden.
+* Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.
+
+==== Genehmigt _(optional als Endstatus)_
+* Die Geplante Netzmaßnahme wurde von einer definierten Stelle geprüft und
+  genehmigt.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Genehmigungsvermerke können über das Feld "Bemerkungen" erfasst werden.
+
+.Optional als Endstatus
+* Dieser Status kann durch den Administrator als Endstatus gesetzt werden.
+* Wenn dieser Status als Endstatus gesetzt ist, werden die folgenden Status
+  übersprungen, so dass der nächste Status "Maßnahme beendet" ist.
+
+==== Angefordert _(optional)_
+* Die Geplante Netzmaßnahme wird am Tag der Ausführung angefordert.
+* Die ausführende Instanz (z.B. Schaltmeister) ist identifiziert und bereit
+  die Geplante Netzmaßnahme durchzuführen.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Bearbeitungsvermerke können über das Feld "Bemerkungen" erfasst werden.
+
+.Optional
+* Dieser Status kann durch den Administrator deaktiviert werden.
+* Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.
+
+==== Freigegeben _(optional als Endstatus)_
+* Der Netzzustand erlaubt die Durchführung der Schaltung.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" erfasst werden.
+
+.Optional als Endstatus
+* Dieser Status kann durch den Administrator als Endstatus gesetzt werden.
+* Wenn dieser Status als Endstatus gesetzt ist, werden die folgenden Status
+  übersprungen, so dass der nächste Status "Maßnahme beendet" ist.
+
+==== Schalten aktiv
+* Die Schaltung hat begonnen (mindestens der erste Schritt einer Schrittsequenz
+  ist ausgeführt).
+* Die Schrittsequenz wird in der festgelegten Reihenfolge ausgeführt.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" erfasst werden.
+
+==== In Arbeit _(optional)_
+* Der angeforderte Schaltzustand ist hergestellt worden.
+* Für diesen Status kann auch die vorherige Vergabe von entsprechenden
+  Erlaubnissen (Verfügungserlaubnis usw.) erforderlich sein, die manuell
+  gesetzt werden können.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" erfasst werden.
+
+.Optional
+* Dieser Status kann durch den Administrator deaktiviert werden.
+* Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.
+
+==== Arbeit beendet
+* Die Arbeiten sind beendet.
+* Die erteilten Erlaubnisse etc. sind zurückgegeben worden.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" erfasst werden.
+
+==== Maßnahme beendet
+* Der für den Abschluss des Vorgangs definierte Schaltzustand (in der Regel
+  der ursprüngliche Schaltzustand) ist hergestellt.
+* Die erfassten Daten können nicht mehr geändert werden.
+* Hinweise können über das Feld "Bemerkungen" erfasst werden.
+
+==== Geschlossen
+* Alle notwendigen Dokumentationen sind vorgenommen worden.
+* Die erfassten Daten können nicht mehr geändert werden.
+
+==== Storniert
+* Die Geplante Netzmaßnahme kann oder soll nicht weiterbearbeitet werden.
+* Geplante Netzmaßnahmen dürfen nur aus den Status "Neu", "Beantragt",
+  "Zur Genehmigung", "Genehmigt" storniert werden.
+* Der Stornogrund ist im Feld "Bemerkungen" erfasst.
+* Die erfassten Daten können nicht mehr geändert werden.
+
+
+=== Gesamtprozess
+Der gesamte Prozessablauf über den Lebenszyklus einer Geplanten Netzmaßnahme
+ist im folgenden Prozessdiagramm dargestellt. Aufgrund besserer Lesbarkeit
+ist der Prozess in drei zusammenhängenen Prozessabschnitten aufgeteilt.
+
+.Prozessübersicht (Abschnitt 1: "Neu" bis "Genehmigt")
+[options="header,footer"]
+image::massnahme_planen_und_genehmigen_1.png[]
+
+.Prozessübersicht (Abschnitt 2: "Angefordert" bis "Freigegeben")
+[options="header,footer"]
+image::massnahme_durchfuehren_u_abschliessen_1.png[]
+
+.Prozessübersicht (Abschnitt 3: "Schalten aktiv" bis "Geschlossen")
+[options="header,footer"]
+image::massnahme_durchfuehren_u_abschliessen_2.png[]
+
+<<<
+
+== Benutzerdialoge
+
+=== Allgemeine Hinweise
+Die Anwendung ist für folgende Endgeräte optimiert:
+
+* Desktop-PC
+* Tablet
+
+Es sind folgende Browser unterstützt:
+
+* Microsoft Internet Explorer
+* Google Chrome
+* Firefox Quantum
+
+Die Bildschirmauflösung bzw. die Fenstergröße des Browsers sollte folgende Werte nicht unterschreiten:
+
+* 1.024 x 768 Pixel
+
+
+[[uebersicht-aller-gnm]]
+=== Übersicht aller Geplanten Netzmaßnahmen
+Die Übersichtsseite stellt standardmäßig alle Geplanten Netzmaßnahmen
+in einer Tabelle dar. Bei Bedarf können die Geplanten Netzmaßnahmen aber auch in
+einer Kalender-Ansicht angezeigt werden.
+
+.Umschalten zwischen Tabellen- und Kalender-Ansicht
+[options="header,footer"]
+image::button_tabelle_kalender.jpg[]
+
+==== Tabellen-Ansicht
+Das Modul Geplante Netzmaßnahme startet immer in der Tabellen-Ansicht.
+
+.Übersicht der Geplanten Netzmaßnahmen in der Tabellen-Ansicht
+[options="header,footer"]
+image::gnm_uebersichtstabelle.png[]
+
+Die Übersichtstabelle zeigt zu jeder Geplanten Netzmaßnahme folgende Informationen an:
+
+.Felder in der Tabellenübersicht
+[options="header,footer"]
+|=========================================================
+|Feld|Erläuterung
+|Beginnt am
+a|
+ * Entspricht dem Wert aus "Beginn der ersten geplanten Einzelmaßnahme"
+
+|Nummer (ID)
+a|
+
+* Automatisch generierte eindeutige Nummer der Geplanten Netzmaßnahme
+
+|Sparte
+a|
+
+* S: Strom (Hintergrundfarbe: rot)
+* G: Gas (gelb)
+* W: Wasser (blau)
+* F: Fernwärme (grün)
+
+|Titel der Maßnahme
+a|
+
+* Bezeichnung der Geplanten Netzmaßnahme
+
+|Name des Erstellers
+a|
+
+* Name des Maßnahmen-Antragstellers
+
+|Betroffenes Objekt / Betriebsmittel
+a|
+
+* Das in der Geplanten Netzmaßnahme betroffene Betriebsmittel
+
+|Status
+a|
+
+* siehe Abschnitt <<uebersicht-statuszustaende>>
+
+|=========================================================
+
+Jede Geplante Netzmaßnahme kann je nach Benutzerrolle und Status der Maßnahme
+direkt aus der Tabelle angezeigt, bearbeitet oder storniert werden.
+
+.Auge-Symbol zum Anzeigen einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::auge-symbol.png[]
+
+.Stift-Symbol zum Bearbeiten einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::stift-symbol.png[]
+
+.Stornieren-Symbol zum Stornieren einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::stornieren.png[]
+
+.Deaktiviertes Stornieren-Symbol
+[options="header,footer"]
+image::stornieren-deaktiviert.png[]
+
+Mit den vordefinierten Filtern "Meine Vorgänge", "Geschlossene" und "Stornierte",
+sowie über die Filter der Tabelle selbst, können beliebige individuelle
+Filterkombinationen erstellt und gespeichert werden. Details dazu sind im Abschnitt
+<<allg-funktionen-uebersicht-aller-gnm>> beschrieben.
+
+[[gnm-erstellen]]
+Ist ein Benutzer mit der Benutzerrolle "Maßnahmen-Antragsteller" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Netzmaßnahme erstellen" eine neue
+Geplante Netzmaßnahme anzulegen.
+
+.Schaltfläche zum Erstellen von Geplanten Netzmaßnahmen
+[options="header,footer"]
+image::gnm-erstellen.png[]
+
+Alternativ kann über die Funktion "Netzmaßnahme duplizieren" eine neue Geplante
+Netzmaßnahme angelegt werden, siehe Abschnitt <<gnm-duplizieren>>.
+
+==== Kalender-Ansicht
+Der Kalender stellt drei Ansichten zur Verfügungen, um die Einzelmaßnahmen der
+Geplanten Netzmaßnahmenkalendarisch anzuzeigen. Die Auswahl erfolgt über die
+entsprechenden Schaltflächen
+auf der rechten Seite.
+
+. Monatsansicht
+. Wochenansicht
+. Tagesansicht
+
+Innerhalb der jeweiligen Ansichten besteht die Möglichkeit zum Nächsten, zum
+Vorherigen oder zum Aktuellen Darstellungszeitraum zu wechseln. Dies erfolgt
+über die entsprechenden Schaltflächen auf der linken Seite.
+
+Der im Kalender dargestellte Zeitraum einer Einzelmaßnahme basiert auf folgenden
+Werten:
+
+* Beginn der  geplanten Einzelmaßnahme
+* Ende der geplanten Einzelmaßnahme
+
+Mit einem Klick auf die dargestellt Einzelmaßnahme kann die zugehörige Geplante
+Netzmaßnahme direkt aus dem Kalender zum Anzeigen (Auge-Symbol)
+oder zum Bearbeiten (Stift-Symbol) - je nach Berechtigung des Benutzers - geöffnet
+werden.
+
+Ist ein Benutzer mit der Benutzerrolle "Maßnahmen-Antragsteller" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Netzmaßnahme erstellen" eine neue
+Geplante Netzmaßnahme anzulegen, siehe Absatz <<gnm-erstellen>>.
+
+===== Monatsansicht
+In der Monatsansicht ist jede Einzelmaßnahme mit einen roten Punkt dargestellt
+und zwar für jeden Tag innerhalb des Zeitraums der Einzelmaßnahme. Die rot
+umkreiste Zahl zeigt die Anzahl der Einzelmaßnahmen für den jeweiligen
+Kalendertag an.
+
+.Monatsansicht im Kalender
+[options="header,footer"]
+image::gnm_kalenderuebersicht.png[]
+
+Um zu erkennen, welche Einzelmaßnahmen sich hinter den roten Punkten verbergen,
+reicht ein Klick auf den entsprechenden Kalendertag aus. Anschließend öffnet
+sich ein Bereich unterhalb des ausgewählten Kalendertags und zeigt die Titel der
+Einzelmaßnahmen an. Mit einem Klick auf die Einzelmaßnahme lässt sich die
+zugehörige Geplante Netzmaßnahme direkt zur Ansicht oder zum Bearbeiten öffnen.
+
+===== Wochenansicht
+In der Wochenansicht sind alle, im jeweils angezeigten Zeitraum, Einzelmaßnahmen
+dargestellt.
+
+.Wochenansicht im Kalender
+[options="header,footer"]
+image::kalender_woche.png[]
+
+Mit einem Klick auf die Einzelmaßnahme lässt sich die zugehörige Geplante
+Netzmaßnahme direkt zur Ansicht oder zum Bearbeiten öffnen.
+
+===== Tagesansicht
+In der Tagesansicht sind die Einzelmaßnahmen minutengenau angezeigt.
+Wenn eine Netzmaßnahme über mehrere Tage geplant ist, so werden alle Tage, die
+nicht dem Start- oder Endtag entsprechen, jeweils von 0:00 bis 24:00 Uhr
+dargestellt.
+
+.Tagesansicht im Kalender
+[options="header,footer"]
+image::kalender_tag.png[]
+
+Mit einem Klick auf die Geplante Netzmaßnahme lässt sich diese direkt zur Ansicht
+oder zum Bearbeiten öffnen.
+
+[[ansicht-bearbeitung-gnm]]
+=== Ansicht und Bearbeitung einer Geplanten Netzmaßnahme
+Die Ansicht einer Geplanten Netzmaßnahme teilt sich in mehrere Bereiche auf:
+
+. Netzmaßnahme (Basis-Informationen)
+. Details der Netzmaßnahme
+.. Maßnahme
+.. Einzelmaßnahmen und Schrittsequenzen
+. E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen
+. Statuswechsel (Änderungshistorie)
+
+.Ansicht einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::gnm_gesamt.png[]
+
+Durch einen Klick auf die Bezeichnung ("Netzmaßnahme", "Details der Netzmaßnahmen",
+"E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen, Statuswechsel")
+können die einzelnen Bereiche auf- und zugeklappt werden.
+
+Um Änderungen an den Geplanten Netzmaßnahmen, Einzelmaßnahmen oder Schrittsequenzen
+zu sichern, ist die Schaltfläche "Speichern" zu klicken. Der Benutzerdialog der
+Geplanten Netzmaßnahmen schließt sich und anschließend erscheint die Tabellen-Ansicht.
+Zudem wird das erfolgreiche Speichern über eine Meldung bestätigt,
+siehe Abschnitt <<meldungen-hinweise>>.
+
+.Schaltfläche zum Speichern der Änderungen
+[options="header,footer"]
+image::speichern.png[]
+
+Um Änderungen nicht zu speichern ist die Schaltfläche "Abbrechen" zu klicken. Damit
+werden alle Anpassungen verworfen und zur Tabellen-Ansicht zurückgekehrt.
+
+.Schaltfläche zum Abbrechen der Bearbeitung ohne Speichern
+[options="header,footer"]
+image::abbrechen.png[]
+
+CAUTION: Die Funktion "Datei hochladen" speichert Dateien immer direkt nach dem Upload,
+unabhängig davon ob die Schaltfläche "Speichern" oder "Abbrechen" geklickt wurde.
+
+Statuswechsel werden über die entsprechenden Schaltflächen angeboten. Die Anzeige
+ist dabei abhängig vom Status der Geplanten Netzmaßnahme sowie der Konfiguration
+des Prozesses. Als Beispiel ist im Folgenden die Schaltfläche für den
+Statuswechsel nach "Beantragt" dargestellt. Die weiteren Status sind im Abschnitt
+<<uebersicht-statuszustaende>> ersichtlich.
+
+.Schaltfläche zum Statuswechsel (Beispiel: Beantragen)
+[options="header,footer"]
+image::beantragen.png[]
+
+Details zum Duplizieren von Geplanten Netzmaßnahmen befinden sich im Abschnitt
+<<gnm-duplizieren>>.
+
+==== Netzmaßnahme (Basis-Informationen)
+Die Basisinformationen einer Geplanten Netzmaßnahme befinden sich im oberen
+Teil des Benutzerdialogs. Dieser Teil ist feststehend, um die grundlegenden
+Daten einer Maßnahme immer im Blick zu behalten.
+
+Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.
+
+.Basis-Informationen einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::gnm_header.png[]
+
+Eine Geplante Netzmaßnahme (Teil: Basisinformationen) besitzt folgende Attibute:
+
+.Attribute einer Geplanten Netzmaßnahme (Teil: Basisinformationen)
+[options="header,footer"]
+|=========================================================
+|Attribut                     |Pflichtfeld(*) |Inhaltsart      |Bearbeitbar im Status |Beschreibung
+|Nummer (ID)                  |-              |Generiert       |-                     |Eindeutige Nummer im Format: JJMMTT_<Lfd-Nr.>
+|Sparte                       |nein           |Auswahlfeld     |Neu, Beantragt        |Strom, Gas, Wasser, Fernwärme
+|Ebene                        |nein           |Auswahlfeld     |Neu, Beantragt        |In Abhängigkeit zur Auswahl "Sparte" weitere Eigenschaften
+|Gebiet (Region) der Maßnahme |ja             |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Status                       |-              |Automatisch     |-                     |Status im Prozessablauf
+|Titel der Maßnahme           |ja             |Textfeld        |Neu                   |Sprechende Bezeichnung der Geplanten Netzmaßnahme
+|Antragsteller                |-              |Automatisch     |-                     |Angemeldeter Maßnahmen-Antragsteller beim Anlegen der Maßnahme
+|Abteilung Antragsteller      |ja             |Textfeld        |Neu                   |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Kostenstelle                 |ja             |Textfeld        |Neu, Beantragt         |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.
+
+==== Details einer Netzmaßnahme
+Die Detailinformationen einer Geplanten Netzmaßnahme befinden sich im mittleren
+Teil des Benutzerdialogs. Dieser Teil ist scrollbar, um alle Details erfassen
+und sehen zu können.
+
+.Details-Informationen einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::gnm_detail.png[]
+
+Dieser Bereich ist nochmals durch Reiter unterteilt in:
+
+* Maßnahme
+* Einzelmaßnahme 1
+* Optional: Einzelmaßnahme 2 (bis 10)
+
+Die Details einer Geplanten Netzmaßnahme befinden sich im Reiter "Maßnahme"
+und bestehen aus folgenden Attributen:
+
+.Attribute einer Geplanten Netzmaßnahme (Teil: Detailinformationen)
+[options="header,footer"]
+|=========================================================
+|Attribut                                    |Pflichtfeld(*) |Bearbeitbar im Status |Inhaltsart      |Beschreibung
+|Beginn der ersten geplanten Einzelmaßnahme  |-              |-                     |Automatisch     |Wird übernommen aus Feld "Beginn der geplanten Einzelmaßnahme" vom Reiter "Einzelmaßnahme 1"
+|Ende der Netzmaßnahme                       |-              |-                     |Automatisch     |Wird übernommen aus Feld "Ende der geplanten Einzelmaßnahme" vom Reiter mit der höchsten Nummer "Einzelmaßnahme 1 (ggf. bis 10)"
+|Betroffenes Objekt/Betriebsmittel           |ja             |Neu, Beantragt        |Textfeld        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Häufigkeit                                  |ja             |Neu, Beantragt        |Zahl            |Anzahl der Wiederholungen
+|Wiederholung                                |ja             |Neu, Beantragt        |Auswahl-Liste   |täglich, wöchentlich, monatlich, jährlich
+|Wiederbereitstellungszeit                   |ja             |Neu, Beantragt        |Textfeld        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Beschreibung der Maßnahme                   |ja             |Neu, Beantragt        |Textfeld        |Beschreibende Erläuterung als Freitext
+|Bemerkungen                                 |nein           |alle ausser Geschlossen|Textfeld        |Bemerkungen, z.B. für Statuswechsel oder Genehmigungsvermerke
+|Anhang                                      |nein           |Neu, Beantragt        |Dateiablage     |Erforderliche Dateien zur Ergänzung der Geplanten Netzmaßnahme
+|Letzter Bearbeiter                          |-              |-                     |Automatisch     |Aktuell angemeldeter Benutzer
+|Abteilung letzter Bearbeiter                |ja             |Neu                   |Textfeld        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.
+
+In den Reitern "Einzelmaßnahme 1 (bis 10)" befinden sich die Details zu
+Einzelmaßnahmen und Schrittsequenzen. Die Erläuterungen dazu sind im folgenden
+Abschnitt dargestellt.
+
+[[einzelmassnahme-schrittsequenz]]
+==== Ansicht Einzelmaßnahme und Schrittsequenzen
+Eine Geplante Netzmaßnahme besteht aus mindestens einer und maximal
+zehn Einzelmaßnahmen. Initial ist immer eine Einzelmaßnahme angelegt.
+
+Eine zweite Einzelmaßnahme macht zum Beispiel Sinn, um Rückschaltungen zu planen. Dazu
+wird die ausgewählte Einzelmaßnahme mitsamt ihren Inhalten kopiert und die dort
+erfassten Schrittsequenzen in umgekehrter Reihenfolge geplant. Anschließend sind
+nur noch kleine manuelle Anpassungen notwendig, um die Rückschaltungsplanung zu finalisieren.
+Als Hilfsmittel existiert die Schaltfläche "Rückschaltung planen", die eine
+neue Einzelmaßnahme mit der Bezeichnung "Rückschaltung von <Titel der Einzelmaßnahme>"
+anlegt.
+
+.Schaltfläche zur Erstellung einer Rückschaltung
+[options="header,footer"]
+image::rueckschaltung-planen.png[]
+
+Wenn mehr als eine Einzelmaßnahme existiert, also mehr als ein Reiter mit der
+Bezeichnung "Einzelmaßnahme" vorhanden ist, sortiert das System die Einzelmaßnahmen
+automatisch (Nach Klick auf die Schaltfläche "Speichern" oder bei einem Statuswechsel).
+In der "Einzelmaßnahme 1" befindet sich somit zeitlich immer die erste Einzelmaßnahme.
+D.h. der "Beginn der geplanten Einzelmaßnahme" ist im Vergleich zu den anderen
+Einzelmaßnahmen am ehesten. In der Einzelmaßnahme mit der höchsten Nummer ist
+folglich immer die letzte beginnende Einzelmaßnahme enthalten.
+
+Wenn mehr als eine Einzelmaßnahme existiert, ist das Löschen von Einzelmaßnahmen
+möglich. Dazu ist die zu löschende Einzelmaßnahe auszuwählen und anschließend
+die Schaltfläche "Einzelmaßnahme löschen" zu klicken. Die Einzelmaßnahme wird
+anschließend ohne Rückmeldung entfernt.
+
+.Schaltfläche zum Löschen einer Einzelmaßnahme
+[options="header,footer"]
+image::einzelmassnahme-loeschen.png[]
+
+===== Einzelmaßnahme
+Im Reiter "Einzelmaßnahme 1 (bis 10)" sind im oberen Bereich die Basisinformation
+einer Einzelmaßnahme dargestellt.
+
+.Informationen einer Einzelmaßnahme
+[options="header,footer"]
+image::gnm_einzelmassnahme.png[]
+
+Eine Einzelmaßnahme besitzt folgende Attibute:
+
+.Attribute einer Einzelmaßnahme
+[options="header,footer"]
+|=========================================================
+|Attribut                            |Pflichtfeld(*) |Inhaltsart      |Bearbeitbar im Status |Beschreibung
+|Titel der Einzelmaßnahme            |ja             |Textfeld        |Neu, Beantragt        |Sprechende Bezeichnung der Einzelmaßnahme
+|Beginn der geplanten Einzelmaßnahme |ja             |Datum-Zeit      |Neu, Beantragt        |Geplanter Startzeitpunkt der Einzelmaßnahme
+|Ende der geplanten Einzelmaßnahme   |ja             |Datum-Zeit      |Neu, Beantragt        |Geplanter Endzeitpunkt der Einzelmaßnahme
+|Betroffenes Objekt/Betriebsmittel   |-              |Automatisch     |-                     |Wird übernommen aus "Betroffenes Objekt/Betriebsmittel" der Netzmaßnahme
+|Verantwortlicher Vor-Ort            |ja             |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Abteilung Verantwortlicher Vor-Ort  |nein           |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Netzführung/Netzservice/Genehmiger  |nein           |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Beschreibung                        |ja             |Textfeld        |Neu, Beantragt        |Beschreibende Erläuterung als Freitext
+|=========================================================
+
+(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.
+
+===== Schrittsequenz
+Im unteren Bereich befinden sich die Schrittsequenzen einer Einzelmaßnahme. Auf
+linken Seite können Schrittsequenzen erfasst werden.
+
+.Informationen einer Schrittsequenz
+[options="header,footer"]
+image::gnm_schrittsequenz.png[]
+
+Eine Schrittsequenz (als Teil einer Einzelmaßnahme) besitzt folgende Attibute:
+
+.Attribute einer Schrittsequenz
+[options="header,footer"]
+|=========================================================
+|Attribut              |Pflichtfeld(*) |Inhaltsart      |Bearbeitbar im Status |Beschreibung
+|Betriebsmittel-Gruppe |nein           |Auswahl-Liste   |Neu, Beantragt        |Informationen werden aus dem Leitsystem geladen.
+                                                                                Nach Auswahl wird Wert in Feld "Betriebsmittel" übernommen.
+|Betriebsmittel        |nein           |Auswahl-Baum    |Neu, Beantragt        |Wird übernommen aus "Betriebsmittel-Gruppe".
+                                                                                Über Baumstruktur das betroffene Betriebsmittel auswählen.
+                                                                                Ausgewähltes Betriebsmittel wird in Feld "Objekt der Schaltung" übernommen.
+|Objekt der Schaltung  |ja             |Textfeld        |Neu, Beantragt        |Wird übernommen aus "Betriebsmittel-Gruppe".
+                                                                                Alternativ: Eingabe als Freitext.
+|Ist-Zustand           |nein           |Textfeld        |Neu, Beantragt       |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Soll-Zustand          |nein           |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Ist-Zeit              |nein           |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Typ                   |nein           |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|Ausführender          |nein          |Textfeld        |Neu, Beantragt        |Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich
+|=========================================================
+
+(*) Pflichtfeld um eine Schrittsequenz über die Schaltfläche "Schritt hinzufügen" anlegen zu können.
+
+Auf der rechten Seite befinden sich alle erfassten Schrittsequenzen in der korrekten
+Reihenfolge für die spätere Umsetzung. Bei Bedarf kann die Reihenfolge der Einzelschritte
+durch einfaches Verschieben angepasst werden. Eine Anpassung der Werte ist
+ebenfalls direkt in der Tabelle möglich, indem das entsprechende Feld angeklickt
+und bearbeitet wird.
+
+.Übersicht aller Schrittsequenzen einer Einzelmaßnahme
+[options="header,footer"]
+image::gnm_schrittsequenz_tabelle.png[]
+
+
+==== eMail-Verteiler
+Details zum E-Mail Verteiler, siehe Abschnitt <<email-benachrichtigung-statuswechsel>>
+
+==== Änderungshistorie der Statuswechsel
+Alle Statuswechsel werden dokumentiert und können innerhalb einer Geplanten Netzmaßnahme
+im Bereich "Statuswechsel" durch Klicken auf die gleichnamige Bezeichnung
+"Statuswechsel" angezeigt werden.
+
+.Übersicht der Statuswechsel einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::statuswechsel-uebersicht.png[]
+
+Dort sind Datum und Uhrzeit, die Statuswechsel-Zustände sowie der jeweilige
+Bearbeiter der Geplanten Maßnahme ersichtlich.
+
+<<<
+
+== Benachrichtigungen und Erinnerungen
+
+[[email-benachrichtigung-statuswechsel]]
+=== eMail-Benachrichtigung bei Statuswechsel
+Es wird eine automatische eMail-Benachrichtigung versendet, wenn folgende
+Ziel-Status erreicht werden:
+
+* Genehmigt
+* Storniert
+* Zurückgewiesen
+
+Die Adresssaten sind über die E-Mail Verteilerliste für Status Genehmigt,
+Storniert und Zurückgewiesen definiert.
+
+Die individuelle Anpassung der Verteilerliste ist im Abschnitt
+<<email-verteiler-anpassen>>
+beschrieben.
+
+=== Erinnerungsfunktion für anstehende und fällige Netzmaßnahmen
+Damit anstehende und fällige Geplante Netzmaßnahmen leicht erkannt werden können,
+setzt das Modul zwei optische Hilfsmittel um:
+
+. Farbliches Glocken-Symbol in der Kopfzeile
+. Farbliche Darstellung des Datums "Beginn am" in der Übersichtstabelle "Aktuelle Netzmaßnahmen"
+
+Die Entscheidung, ob eine Erinnerung notwendig ist, basiert auf folgenden Kriterien:
+
+* Es werden nur Geplante Netzmaßnahmen in den Status "Neu", "Beantragt" und
+  "Zur Genehmigung" berücksichtigt.
+* Der "Beginn der ersten geplanten Einzelmaßnahme" wird in Bezug zum jeweils
+  aktuellen Zeitpunkt gesetzt. Anhand dessen erfolgt die Erinnerung gemäß der
+  folgenden Tabelle.
+
+.Erinnerungen
+[options="header,footer"]
+|=========================================================
+|Symbol|Beginnt am|Erinnerung
+
+a|
+image::erinnerung_glocke_grau.png[]
+
+a|
+image::erinnerung_datum_grau.png[]
+|Keine Geplante Netzmaßnahme ist fällig oder startet in den nächsten 48 Stunden.
+
+a|
+image::erinnerung_glocke_orange.png[]
+
+a|
+image::erinnerung_datum_orange.png[]
+|Mindestens eine Geplante Netzmaßnahme sollte in den nächsten 48 Stunden beginnen.
+
+a|
+image::erinnerung_glocke_rot.jpg[]
+
+a|
+image::erinnerung_datum_rot.jpg[]
+|Mindestens eine Geplante Netzmaßnahme sollte bereits gestartet sein.
+
+|=========================================================
+
+[[meldungen-hinweise]]
+=== Hinweise und Meldungen nach Benutzeraktionen
+Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:
+
+. über den Erfolg der Aktion zu informieren,
+. Handlungsanweisungen zu geben,
+. über Fehler des Systems zu informieren.
+
+==== Erfolg einer Aktion
+Positive Meldungen sind grün hinterlegt und werden u.a. in folgenden Fällen angezeigt:
+
+* Neu-Anlage von Geplanten Netzmaßnahmen
+* Statuswechseln
+* Duplizieren von Geplanten Netzmaßnahmen
+
+.Meldung nach erfolgreichem Anlegen einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::meldung_erfolgreich.png[]
+
+Diese Meldungen bleiben für zehn Sekunden sichtbar und verschwinden dann wieder
+automatisch.
+
+==== Handlungsanweisung
+In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:
+
+* Fehlenden Informationen (Pflichtfelder füllen)
+
+.Hinweis Pflichtfelder
+[options="header,footer"]
+image::meldung_hinweis.png[]
+
+Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden.
+
+==== Fehlermeldungen
+Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:
+
+* Speichern fehlgeschlagen
+* Web Services nicht verfügbar
+
+.Fehlermeldung
+[options="header,footer"]
+image::meldung_fehler.png[]
+
+Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.
+
+<<<
+
+== Allgemeine Funktionen
+
+[[allg-funktionen-uebersicht-aller-gnm]]
+=== In der Übersicht aller Geplanten Netzmaßnahmen
+
+[[vordefinierte-filter]]
+==== Vordefinierte Filter
+In der Tabellen-Ansicht sind drei Filer vordefiniert, die über eine
+Schalterleiste im Tabellenkopf ein- und ausgestellt werden können:
+
+.Vordefinierte Filter
+[options="header,footer"]
+image::vordefinierte_filter.png[]
+
+Bei Betätigung eines Filters erfolgt unmittelbar eine Aktualisierung der angezeigten
+Geplanten Netzmaßnahmen in der Tabelle.
+
+. Meine Vorgänge
+** In der Tabelle werden nur Geplante Netzmaßnahmen angezeigt, bei denen der
+   aktuelle Benutzer zu irgendeiner Zeit involviert war.
+** Eine Kombination mit den Filtern "Geschlossene" und "Stornierte" ist nicht möglich.
+   Diese Filter sind deaktiviert bzw. werden automatisch deaktiviert.
+. Geschlossene
+** In der Tabelle werden zusätzlich alle geschlossenen Geplanten Netzßmaßnahmen
+   angezeigt.
+** Eine Kombination mit dem Filter "Meine Vorgänge" ist nicht möglich. Sollte der
+   Filter "Meine Vorgänge" ausgewählt sein, so muss dieser zunächst deaktiviert werden.
+   Anschließend kann der Filter "Geschlossene" aktiviert werden.
+** Eine Kombination mit dem Filter "Storniert" ist möglich.
+. Stornierte
+** In der Tabelle werden zusätzlich alle stornierten Geplanten Netzßmaßnahmen
+   angezeigt.
+** Eine Kombination mit dem Filter "Meine Vorgänge" ist nicht möglich. Sollte der
+   Filter "Meine Vorgänge" ausgewählt sein, so muss dieser zunächst deaktiviert werden.
+   Anschließend kann der Filter "Geschlossene" aktiviert werden.
+** Eine Kombination mit dem Filter "Geschlossene" ist möglich.
+
+
+==== Filtern und Sortieren von Tabellenspalten
+Mit den Filtern in der Übersichtstabelle werden nicht relevante Inhalte ausgeblendet.
+Es kann in einer Spalte gefiltert werden, wie in der Abbildung dargestellt.
+Es können aber auch Filter in mehrern Spalten gleichzeitig definiert werden,
+um noch gezieltere Suchen durchzuführen.
+
+.Filter in der Übersichtstabelle
+[options="header,footer"]
+image::tabellen-filter.png[]
+
+Um den Filter zu entfernen, müssen lediglich die zuvor erfassten Filterkriterien
+entfernt werden.
+
+==== Filtereinstellungen speichern
+Jeder Benutzer hat die Möglichkeit seinen individuellen Filter zu speichern. Dies erfolgt
+über die Schaltfläche "Filter Speichern" im Tabellenkopf.
+
+.Schaltfläche zum Speichern des aktuellen Filters
+[options="header,footer"]
+image::filter_speichern.png[]
+
+Die Schaltfläche "Filter Speichern" ist solange deaktiviert, bis eine Änderung an
+den Filtereinstellung vornommen wird. Soll der aktuelle Filter dauerhaft gespeichert werden,
+so ist ein Klick auf die Schaltfläche "Filter Speichern" notwendig. Damit ist
+der neue Filter als Standardeinstellung für den aktuellen Benutzer gesetzt.
+
+Folgende Filter-Einstellungen werden gespeichert:
+
+* Vordefinierte Filter
+* Reihenfolge der Tabellenspalten
+* Filter innerhalb der Tabelle
+
+
+=== Bei der Bearbeitung von Geplanten Netzmaßnahmen
+
+==== Dateien hochladen, anzeigen und entfernen
+Zu jeder Geplanten Netzmaßnahme können bis zu 10 Dateien (mit jeweils maximal
+20 MB Größe) hochgeladen und gespeichert werden.
+
+Dazu existiert in jeder Geplanten Netzmaßnahme im Bereich "Details der Netzmaßnahme"
+folgender Bereich zum Verwalten von Dateien:
+
+.Dateien hochladen und ansehen
+[options="header,footer"]
+image::dateien_hochladen.png[]
+
+===== Datei hochladen
+Dateien können nur in den Status "Neu" und "Beantragt" hochgeladen werden.
+
+Die Schaltfläche "Datei auswählen" öffent einen Dialog zur Auswahl einer Datei
+im Dateisystem. Alternativ kann eine Datei per Drag and Drop in den Bereich
+"Datei ziehen und hier ablegen" gezogen werden. Anschließend ist der Dateiname
+im grauen Feld unter "Anhang" sichtbar und die Schaltfläche "Datei hochladen"
+aktiviert. Mit einem Klick auf "Datei hochladen" erfolgt der Upload. Anschließend
+erscheint die erfolgreich hochgeladene Datei in der Liste.
+
+CAUTION: Sollte der Dateiname bereits in der Liste hochgeladener Dateien enthalten
+sein, so wird die vorhandene Datei ohne Rückfrage mit der neu hochzuladenden Datei
+überschrieben.
+
+CAUTION: Das Hinzufügen der Datei erfolgt unabhängig vom Klick auf "Speichern".
+
+Folgende Dateiformate können hochgeladen werden:
+
+.Unterstützte Dateiformate(*)
+[options="footer"]
+|=========================================================
+| pdf | xls | doc
+| png | xlsx | docx
+| jpg | xlsm | docm
+|=========================================================
+
+(*) Sollte eine Unterstützung weiterer Dateiformate notwendig sein, so kann dies
+der Administrator in der Konfiguration anpassen.
+
+===== Datei anzeigen
+Hochgeladene Dateien können in jedem Status angezeigt werden.
+
+Mit einem Klick auf den Dateinamen öffnet sich die Datei in einem externen
+Programm, das für den entsprechenden Dateitypen definiert ist. Ggf. erscheint
+zusätzlich eine Meldung vom Browser.
+
+===== Datei entfernen
+Hochgeladene Dateien können nur im Status "Neu" entfernt werden.
+
+Mit einem Klick auf das rote Kreuz hinter dem entsprechenden Dateinamen wird
+die Datei ohne Rückfrage entfernt.
+
+CAUTION: Das Entfernen der Datei erfolgt unabhängig vom Klick auf "Speichern".
+
+[[email-verteiler-anpassen]]
+==== eMail-Verteiler für Status Genehmigt, Storniert und Zurückgewiesen anpassen
+Die Adressaten der eMail-Benachrichtigung werden auf zwei Ebenen definiert:
+
+. Der Administrator konfiguriert die Adressaten in der System-Konfiguration.
+  Die Benutzer können diese Daten nicht ändern.
+. Die Benutzer mit den Rollen "Maßnahmen-Antragsteller" und "Maßnahmen-Planer" können
+  in der Geplanten Netzmaßnahme unter
+  E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen
+  selbst eMail-Adressen hinzufügen oder entfernen. Dazu muss lediglich eine
+  gültige eMail-Adresse eingetragen und per Klick auf "E-Mail-Adresse hinzufügen"
+  übernommen werden.
+
+CAUTION: Der angepasste eMail-Verteiler gilt jeweils nur für die eine
+Geplante Netzmaßnahme.
+
+.Individueller eMail-Verteiler für eine Geplante Netzmaßnahme
+[options="header,footer"]
+image::email-verteiler.png[]
+
+
+==== Statuswechsel durchführen
+
+[[statuswechsel-allgemein]]
+===== Allgemeine Statuswechsel
+Statuswechsel erfolgen grundsätzlich über die entsprechende Schaltfläche innerhalb
+einer Geplanten Netzmaßnahme. Je nach Status der Geplanten Netzmaßnahme und
+der Benutzerrolle des angemeldeten Benutzers wird die jeweils gültige
+Schaltfläche für den Statuswechsel angezeigt, wie z.B. beim Wechsel des Status
+zu "Beantragt".
+
+.Schaltfläche für Wechsel zum Status "Beantragen"
+[options="header,footer"]
+image::beantragen.png[]
+
+[[statuswechsel-stornieren]]
+===== Stornieren von Geplanten Netzmaßnahmen
+Die einzige Ausnahme bildet das Stornieren von Geplanten Netzmaßnahmen. Hier erfolgt
+der Statuswechsel in der Tabellen-Ansicht. Dort wird in der Liste bei der entsprechenden
+Geplanten Netzmaßnahme die Stornieren-Schaltfläche geklickt, die im Folgenden
+dargestellt ist.
+
+.Schaltfläche zum Stornieren einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::stornieren.png[]
+
+Anschließend muss eine Begründung für das Stornieren der Geplanten Netzmaßnahme
+eingetragen und mit einem Klick auf "Bestätigen" finalisert werden.
+
+.Begründung für das Stornieren einer Geplanten Netzmaßnahme erfassen
+[options="header,footer"]
+image::stornieren_kommentar.png[]
+
+===== Weitere Details
+Eine Übersicht welche Statuswechsel welche Benutzerrolle durchführen darf,
+befindet sich im Abschnitt <<uebersicht-benutzerrollen>>.
+
+
+[[gnm-duplizieren]]
+=== Geplante Netzmaßnahme duplizieren
+Jede Geplante Netzmaßnahme (unabhängig vom Status) kann dupliziert
+werden, um die Neuanlage einer Geplanten Netzmaßnahme zu vereinfachen.
+Dazu ist die als Grundlage dienende Geplante Netzmaßnahme,
+entweder über das Auge- oder das Stift-Symbol, zu öffnen. Innerhalb der Geplanten
+Netzmaßnahme befindet sich die Schaltfläche "Netzmaßnahme duplizieren".
+
+.Schaltfläche zum Duplizieren einer Geplanten Netzmaßnahme
+[options="header,footer"]
+image::netzmassnahme_duplizieren.png[]
+
+Mit Klick auf die Schaltfläche "Netzmaßnahme duplizieren" öffnet sich eine
+neue Geplante Netzmaßnahme, die bereits mit den Inhalten der zuvor ausgewählten
+Netzmaßnahme gespeichert wurde.
+
+Grundsätzlich sind die Inhalte identisch. Lediglich bei folgenden Felder existieren
+Unterschiede:
+
+.Feld-Anpassungen beim Duplizieren von Geplanten Netzmaßnahmen
+[options="header,footer"]
+|=========================================================
+| Feld                            |Anpassung
+| Titel der Maßnahme              | Geändert in "Kopie von <Titel der Maßnahme>""
+| Nummer (ID)                     | Neu generiert
+| Status                          | Geändert auf "Neu"
+| Angehängte Dateien              | Entfernt
+| E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen| Geändert auf Standard-Verteiler
+| Statuswechsel-Hisotrie          | Entfernt
+|=========================================================
+
+
+=== Weitere Funktionen
+
+==== Modul "Geplante Netzmaßnahme" aus Portal starten
+Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Geplante Netzmaßnahme" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Geplante Netzmaßnahme"
+in einem neuen Fenster.
+
+.Kachel zum Starten des Moduls "Geplante Netzmaßnahme"
+[options="header,footer"]
+image::oeffnen-modul.png[]
+
+==== Benutzersperre aufheben
+Sobald ein Benutzer eine Geplante Netzmaßnahme zum Bearbeiten (über das Stift-Symbol)
+öffnet, ist diese Geplante Netznaßnahme für andere Benutzer im Zeitraum der Bearbeitung
+gesperrt. Wenn ein anderer Benutzer nun in diesem Zeitraum die gleiche Geplante
+Netzmaßnahme zum Bearbeiten öffnet, erscheint ein Hinweis. Dieser enthält neben
+dem Namen des anderen Bearbeiters auch die Möglichkeit die Sperre gleich aufzuheben.
+
+.Sperrung durch einen anderen Benutzer aufheben
+[options="header,footer"]
+image::sperrung_aufheben.png[]
+
+Beim Klick auf die Schaltfläche "Sperrung aufheben" wird die Bearbeitung für diese
+Geplante Netzmaßnahme freigeschalten und der Benutzer kann seine Änderungen an der
+geplanten Netzmaßnahme durchführen und speichern.
+
+CAUTION: Der andere Bearbeiter erhält keinen Hinweis, dass die Sperrung aufgehoben wurde.
+D.h. es muss organisatorisch sichergestellt werden, dass der andere Bearbeiter
+die Geplante Netzmaßnahme nicht im gleichen Zeitraum weiter bearbeitet.
+
+
+==== Abmelden
+Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.
+
+.Abmelden vom openKONSEQUENZ-System
+[options="header,footer"]
+image::abmelden.png[]
+
+CAUTION: Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul Geplante
+Netznahme, sondern die Abmeldung vom Portal. D.h. alle parallel geöffneten
+openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Bereitschaftsplanung) werden
+automatisch mit abgemeldet.
+
+Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Geplante Netzmaßnahnme zu schließen.
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
new file mode 100644
index 0000000..39b10c8
--- /dev/null
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
@@ -0,0 +1,2725 @@
+  <html>
+    <head>
+      <meta charset="utf-8">
+      <title>Benutzerhandbuch: Geplante NetzmaßnahmenGet to know Atom!</title>
+      <style>
+        #wrapper {width: 960px; margin: 0 auto;}
+        /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
+/* Remove comment around @import statement below when using as a custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
+audio,canvas,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+[hidden],template{display:none}
+script{display:none!important}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+body{margin:0}
+a{background:transparent}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
+input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+body{-webkit-font-smoothing:antialiased}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.spread{width:100%}
+p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:none}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol,ul.no-bullet,ol.no-bullet{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ul.no-bullet{list-style:none}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite:before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7;font-weight:bold}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+body{tab-size:4}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
+.clearfix:after,.float-group:after{clear:both}
+*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed}
+pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menu{color:rgba(0,0,0,.8)}
+b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
+b.button:before{content:"[";padding:0 3px 0 2px}
+b.button:after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
+#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
+#content{margin-top:1.25em}
+#content:before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
+#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span:before{content:"\00a0\2013\00a0"}
+#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark:before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber:after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
+@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+.sect1{padding-bottom:.625em}
+@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
+.sect1+.sect1{border-top:1px solid #efefed}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
+.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
+.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
+.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
+.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
+@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
+@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
+.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
+.listingblock:hover code[data-lang]:before{display:block}
+.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
+.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
+table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
+table.pyhltable td.code{padding-left:.75em;padding-right:0}
+pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
+pre.pygments .lineno{display:inline-block;margin-right:.25em}
+table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
+.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
+.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
+.quoteblock .quoteblock blockquote:before{display:none}
+.verseblock{margin:0 1em 1.25em 1em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
+.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
+.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
+table.tableblock{max-width:100%;border-collapse:separate}
+table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all th.tableblock,table.grid-all td.tableblock{border-width:0 1px 1px 0}
+table.grid-all tfoot>tr>th.tableblock,table.grid-all tfoot>tr>td.tableblock{border-width:1px 1px 0 0}
+table.grid-cols th.tableblock,table.grid-cols td.tableblock{border-width:0 1px 0 0}
+table.grid-all *>tr>.tableblock:last-child,table.grid-cols *>tr>.tableblock:last-child{border-right-width:0}
+table.grid-rows th.tableblock,table.grid-rows td.tableblock{border-width:0 0 1px 0}
+table.grid-all tbody>tr:last-child>th.tableblock,table.grid-all tbody>tr:last-child>td.tableblock,table.grid-all thead:last-child>tr>th.tableblock,table.grid-rows tbody>tr:last-child>th.tableblock,table.grid-rows tbody>tr:last-child>td.tableblock,table.grid-rows thead:last-child>tr>th.tableblock{border-bottom-width:0}
+table.grid-rows tfoot>tr>th.tableblock,table.grid-rows tfoot>tr>td.tableblock{border-width:1px 0 0 0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot{border-width:1px 0}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+td>div.verse{white-space:pre}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.unstyled,ol.unnumbered,ul.checklist,ul.none{list-style-type:none}
+ul.unstyled,ol.unnumbered,ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1em;font-size:.85em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{width:1em;position:relative;top:1px}
+ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
+ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
+ul.inline>li>*{display:block}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist>table tr>td:first-of-type{padding:0 .75em;line-height:1}
+.colist>table tr>td:last-of-type{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
+.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background-color:#00fafa}
+.black{color:#000}
+.black-background{background-color:#000}
+.blue{color:#0000bf}
+.blue-background{background-color:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background-color:#fa00fa}
+.gray{color:#606060}
+.gray-background{background-color:#7d7d7d}
+.green{color:#006000}
+.green-background{background-color:#007d00}
+.lime{color:#00bf00}
+.lime-background{background-color:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background-color:#7d0000}
+.navy{color:#000060}
+.navy-background{background-color:#00007d}
+.olive{color:#606000}
+.olive-background{background-color:#7d7d00}
+.purple{color:#600060}
+.purple-background{background-color:#7d007d}
+.red{color:#bf0000}
+.red-background{background-color:#fa0000}
+.silver{color:#909090}
+.silver-background{background-color:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background-color:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background-color:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background-color:#fafa00}
+span.icon>.fa{cursor:default}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]:after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@media print{@page{margin:1.25cm .75cm}
+*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]:after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
+.sect1{padding-bottom:0!important}
+.sect1+.sect1{border:0!important}
+#header>h1:first-child{margin-top:1.25rem}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span:before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]:before{display:block}
+#footer{background:none!important;padding:0 .9375em}
+#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+
+      </style>
+      <link href='https://fonts.googleapis.com/css?family=Noto+Serif' rel='stylesheet' type='text/css'>
+      <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
+      <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
+      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/default.min.css">
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/asciidoc.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/yaml.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/dockerfile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/makefile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/go.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/rust.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/haskell.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/typescript.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scss.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/less.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/handlebars.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/groovy.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scala.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/bash.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/ini.min.js"></script>
+      <script>hljs.initHighlightingOnLoad();</script>
+    </head>
+    <body>
+      <div id="wrapper">
+        <div class="article">
+          <h1 id="__asciidoctor-preview-440__">Benutzerhandbuch: Geplante Netzmaßnahmen</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div style="page-break-after: always;"></div>
+<div id="__asciidoctor-preview-482__" class="ulist">
+<ul>
+<li>
+<p>Version: 0.2</p>
+</li>
+<li>
+<p>Datum: 14.09.2018</p>
+</li>
+<li>
+<p>Status: zur Prüfung</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+<!-- toc disabled -->
+<div style="page-break-after: always;"></div>
+</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_sinn_und_zweck_des_moduls_geplante_netzma_nahmen">1. Sinn und Zweck des Moduls Geplante Netzmaßnahmen</a></li>
+<li><a href="#__bersicht">2. Übersicht</a>
+<ul class="sectlevel2">
+<li><a href="#uebersicht-benutzerrollen">2.1. Benutzerrollen und Aufgaben</a></li>
+<li><a href="#uebersicht-statuszustaende">2.2. Statuszustände</a></li>
+<li><a href="#_gesamtprozess">2.3. Gesamtprozess</a></li>
+</ul>
+</li>
+<li><a href="#_benutzerdialoge">3. Benutzerdialoge</a>
+<ul class="sectlevel2">
+<li><a href="#_allgemeine_hinweise">3.1. Allgemeine Hinweise</a></li>
+<li><a href="#uebersicht-aller-gnm">3.2. Übersicht aller Geplanten Netzmaßnahmen</a></li>
+<li><a href="#ansicht-bearbeitung-gnm">3.3. Ansicht und Bearbeitung einer Geplanten Netzmaßnahme</a></li>
+</ul>
+</li>
+<li><a href="#_benachrichtigungen_und_erinnerungen">4. Benachrichtigungen und Erinnerungen</a>
+<ul class="sectlevel2">
+<li><a href="#email-benachrichtigung-statuswechsel">4.1. eMail-Benachrichtigung bei Statuswechsel</a></li>
+<li><a href="#_erinnerungsfunktion_f_r_anstehende_und_f_llige_netzma_nahmen">4.2. Erinnerungsfunktion für anstehende und fällige Netzmaßnahmen</a></li>
+<li><a href="#meldungen-hinweise">4.3. Hinweise und Meldungen nach Benutzeraktionen</a></li>
+</ul>
+</li>
+<li><a href="#_allgemeine_funktionen">5. Allgemeine Funktionen</a>
+<ul class="sectlevel2">
+<li><a href="#allg-funktionen-uebersicht-aller-gnm">5.1. In der Übersicht aller Geplanten Netzmaßnahmen</a></li>
+<li><a href="#_bei_der_bearbeitung_von_geplanten_netzma_nahmen">5.2. Bei der Bearbeitung von Geplanten Netzmaßnahmen</a></li>
+<li><a href="#gnm-duplizieren">5.3. Geplante Netzmaßnahme duplizieren</a></li>
+<li><a href="#_weitere_funktionen">5.4. Weitere Funktionen</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_sinn_und_zweck_des_moduls_geplante_netzma_nahmen"><a class="anchor" href="#_sinn_und_zweck_des_moduls_geplante_netzma_nahmen"></a>1. Sinn und Zweck des Moduls Geplante Netzmaßnahmen</h2>
+<div class="sectionbody">
+<div id="__asciidoctor-preview-618__" class="paragraph">
+<p>Das Modul Geplante Netzmaßnahme ist ein User-Modul der openKONSEQUENZ.</p>
+</div>
+<div id="__asciidoctor-preview-622__" class="paragraph">
+<p>Mit diesem Modul hat ein Netzbetreiber jederzeit alle geplanten
+Netzmaßnahmen inklusive der aktuellen Status im Überblick.</p>
+</div>
+<div id="__asciidoctor-preview-626__" class="paragraph">
+<p>Dabei wird jede geplante Netzmaßnahme durch einen
+vordefinierten Prozess von der Planung über die Genehmigung und die
+Durchführung bis zum Abschluss der Maßnahme gesteuert. Die einzelnen
+Prozesschritte sind entsprechend der Verantwortungsbereiche eines
+Unternehmens an Benutzerrollen gebunden.</p>
+</div>
+<div id="__asciidoctor-preview-630__" class="paragraph">
+<p>Zur Planung von Einzelmaßnahmen und deren Schrittsequenzen können aktuelle
+Netzzustände angezeigt werden.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="__bersicht"><a class="anchor" href="#__bersicht"></a>2. Übersicht</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="uebersicht-benutzerrollen"><a class="anchor" href="#uebersicht-benutzerrollen"></a>2.1. Benutzerrollen und Aufgaben</h3>
+<div id="__asciidoctor-preview-662__" class="paragraph">
+<p>Zur Bearbeitung von geplanten Netzmaßnahnmen sind folgende Benutzerrollen
+definiert.</p>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_antragsteller"><a class="anchor" href="#_ma_nahmen_antragsteller"></a>2.1.1. Maßnahmen-Antragsteller</h4>
+<div id="__asciidoctor-preview-680__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#gnm-erstellen">Darf neue Geplante Netzmaßnahmen anlegen</a></p>
+</li>
+<li>
+<p><a href="#ansicht-bearbeitung-gnm">Darf Geplante Netzmaßnahmen im Status "Neu" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Neu" nach "Beantragt" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_planer"><a class="anchor" href="#_ma_nahmen_planer"></a>2.1.2. Maßnahmen-Planer</h4>
+<div id="__asciidoctor-preview-748__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#ansicht-bearbeitung-gnm">Darf Geplante Netzmaßnahmen im Status "Beantragt" bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Beantragt" nach "Zur Genehmigung" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_genehmiger"><a class="anchor" href="#_ma_nahmen_genehmiger"></a>2.1.3. Maßnahmen-Genehmiger</h4>
+<div id="__asciidoctor-preview-806__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Zur Genehmigung" nach "Genehmigt" durchführen</a></p>
+</li>
+<li>
+<p><a href="#gnm-zurueckweisen">Darf Geplante Netzmaßnahmen im Status "Zur Genehmigung" zurückweisen und damit den Status wieder auf den Status "Beantragt" zurücksetzen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_anforderer"><a class="anchor" href="#_ma_nahmen_anforderer"></a>2.1.4. Maßnahmen-Anforderer</h4>
+<div id="__asciidoctor-preview-864__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Genehmigt" nach "Angefordert" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_freigeber"><a class="anchor" href="#_ma_nahmen_freigeber"></a>2.1.5. Maßnahmen-Freigeber</h4>
+<div id="__asciidoctor-preview-912__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Angefordert" nach "Freigegeben" durchführen</a></p>
+</li>
+<li>
+<p><a href="#gnm-zurueckweisen">Darf Geplante Netzmaßnahmen im Status "Angefordert" zurückweisen und damit den Status wieder auf den Status "Beantragt" zurücksetzen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-stornieren">Darf Geplante Netzmaßnahmen in den Status "Neu", "Beantragt", "Zur Genehmigung", "Genehmigt" stornieren</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_ausf_hrer"><a class="anchor" href="#_ma_nahmen_ausf_hrer"></a>2.1.6. Maßnahmen-Ausführer</h4>
+<div id="__asciidoctor-preview-972__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Freigegeben" nach "Schalten aktiv" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Schalten aktiv" nach "In Arbeit" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "In Arbeit" nach "Arbeit beendet" durchführen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahmen_fertigsteller"><a class="anchor" href="#_ma_nahmen_fertigsteller"></a>2.1.7. Maßnahmen-Fertigsteller</h4>
+<div id="__asciidoctor-preview-1030__" class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-gnm">Darf alle Geplanten Netzmaßnahmen sehen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Arbeit beendet" nach "Maßnahme beendet" durchführen</a></p>
+</li>
+<li>
+<p><a href="#statuswechsel-allgemein">Darf den Statuswechsel von "Maßnahme beendet" nach "Geschlossen" durchführen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_administrator"><a class="anchor" href="#_administrator"></a>2.1.8. Administrator</h4>
+<div id="__asciidoctor-preview-1074__" class="ulist">
+<ul>
+<li>
+<p>Darf alles</p>
+</li>
+<li>
+<p>Darf zusätzlich Konfigurationen vornehmen (Details sind in technischer Dokumentation beschrieben)</p>
+<div id="__asciidoctor-preview-1110__" class="ulist">
+<ul>
+<li>
+<p>Optionale Status im Prozess</p>
+</li>
+<li>
+<p>Mailvorlagen für Benachrichtigungen (bei Ziel-Status "Genehmigt", "Storniert", "Zurückgewiesen")</p>
+</li>
+<li>
+<p>Basis eMail-Verteilerlisten</p>
+</li>
+<li>
+<p>Unterstützte Dateiformate</p>
+</li>
+<li>
+<p>Zeitfenster für Erinnerungen</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="uebersicht-statuszustaende"><a class="anchor" href="#uebersicht-statuszustaende"></a>2.2. Statuszustände</h3>
+<div id="__asciidoctor-preview-1176__" class="paragraph">
+<p>Zur Bearbeitung von geplanten Netzmaßnahnmen sind folgende Status
+definiert.</p>
+</div>
+<div id="__asciidoctor-preview-1184__" class="ulist">
+<div class="title">Hinweis zu den optionalen Status:</div>
+<ul>
+<li>
+<p>Je nach Konfiguration des Systems sind keine, einzelne oder alle optionalen
+Status in der Anwendung aktiv.</p>
+</li>
+<li>
+<p>Diese Einstellung kann nur der Administrator anpassen.</p>
+</li>
+</ul>
+</div>
+<div id="gnm-zurueckweisen" class="ulist">
+<div class="title">Hinweis zum Zurückweisen von Geplanten Netzmaßnahmen</div>
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme wurde von einer definierten Stelle geprüft und zurückgewiesen. Die
+Geplante Netzmaßnahme kann nach Korrektur voraussichtlich durchgeführt
+werden.</p>
+</li>
+<li>
+<p>Beim Zurückweisen von Geplanten Netzmaßnahmen wird der Status wieder auf
+"Beantragt" zurückgesetzt</p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="_neu"><a class="anchor" href="#_neu"></a>2.2.1. Neu</h4>
+<div id="__asciidoctor-preview-1262__" class="ulist">
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme ist angelegt.</p>
+</li>
+<li>
+<p>Ggf. sind betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+Geplanten Netzmaßnahme erfasst.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_beantragt"><a class="anchor" href="#_beantragt"></a>2.2.2. Beantragt</h4>
+<div id="__asciidoctor-preview-1302__" class="ulist">
+<ul>
+<li>
+<p>Der Titel der Geplanten Netzmaßnahme ist fix.</p>
+</li>
+<li>
+<p>Ggf. sind betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+Geplanten Netzmaßnahme erfasst.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_zur_genehmigung_em_optional_em"><a class="anchor" href="#_zur_genehmigung_em_optional_em"></a>2.2.3. Zur Genehmigung <em>(optional)</em></h4>
+<div id="__asciidoctor-preview-1364__" class="ulist">
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme ist vollständig geplant und kann zur Genehnmigung
+vorgelegt werden.</p>
+</li>
+<li>
+<p>Betroffene Betriebsmittel, Zeitpunkte und die Dauer der
+Geplanten Netzmaßnahme sind erfasst.</p>
+</li>
+<li>
+<p>Einzelmaßnahmen und Schrittsequenzen sind mit konkreten Werten geplant.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" eingetragen werden.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-1432__" class="ulist">
+<div class="title">Optional</div>
+<ul>
+<li>
+<p>Dieser Status kann durch den Administrator deaktiviert werden.</p>
+</li>
+<li>
+<p>Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_genehmigt_em_optional_als_endstatus_em"><a class="anchor" href="#_genehmigt_em_optional_als_endstatus_em"></a>2.2.4. Genehmigt <em>(optional als Endstatus)</em></h4>
+<div id="__asciidoctor-preview-1490__" class="ulist">
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme wurde von einer definierten Stelle geprüft und
+genehmigt.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Genehmigungsvermerke können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-1532__" class="ulist">
+<div class="title">Optional als Endstatus</div>
+<ul>
+<li>
+<p>Dieser Status kann durch den Administrator als Endstatus gesetzt werden.</p>
+</li>
+<li>
+<p>Wenn dieser Status als Endstatus gesetzt ist, werden die folgenden Status
+übersprungen, so dass der nächste Status "Maßnahme beendet" ist.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_angefordert_em_optional_em"><a class="anchor" href="#_angefordert_em_optional_em"></a>2.2.5. Angefordert <em>(optional)</em></h4>
+<div id="__asciidoctor-preview-1592__" class="ulist">
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme wird am Tag der Ausführung angefordert.</p>
+</li>
+<li>
+<p>Die ausführende Instanz (z.B. Schaltmeister) ist identifiziert und bereit
+die Geplante Netzmaßnahme durchzuführen.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Bearbeitungsvermerke können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-1644__" class="ulist">
+<div class="title">Optional</div>
+<ul>
+<li>
+<p>Dieser Status kann durch den Administrator deaktiviert werden.</p>
+</li>
+<li>
+<p>Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_freigegeben_em_optional_als_endstatus_em"><a class="anchor" href="#_freigegeben_em_optional_als_endstatus_em"></a>2.2.6. Freigegeben <em>(optional als Endstatus)</em></h4>
+<div id="__asciidoctor-preview-1702__" class="ulist">
+<ul>
+<li>
+<p>Der Netzzustand erlaubt die Durchführung der Schaltung.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-1738__" class="ulist">
+<div class="title">Optional als Endstatus</div>
+<ul>
+<li>
+<p>Dieser Status kann durch den Administrator als Endstatus gesetzt werden.</p>
+</li>
+<li>
+<p>Wenn dieser Status als Endstatus gesetzt ist, werden die folgenden Status
+übersprungen, so dass der nächste Status "Maßnahme beendet" ist.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_schalten_aktiv"><a class="anchor" href="#_schalten_aktiv"></a>2.2.7. Schalten aktiv</h4>
+<div id="__asciidoctor-preview-1780__" class="ulist">
+<ul>
+<li>
+<p>Die Schaltung hat begonnen (mindestens der erste Schritt einer Schrittsequenz
+ist ausgeführt).</p>
+</li>
+<li>
+<p>Die Schrittsequenz wird in der festgelegten Reihenfolge ausgeführt.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_in_arbeit_em_optional_em"><a class="anchor" href="#_in_arbeit_em_optional_em"></a>2.2.8. In Arbeit <em>(optional)</em></h4>
+<div id="__asciidoctor-preview-1862__" class="ulist">
+<ul>
+<li>
+<p>Der angeforderte Schaltzustand ist hergestellt worden.</p>
+</li>
+<li>
+<p>Für diesen Status kann auch die vorherige Vergabe von entsprechenden
+Erlaubnissen (Verfügungserlaubnis usw.) erforderlich sein, die manuell
+gesetzt werden können.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-1914__" class="ulist">
+<div class="title">Optional</div>
+<ul>
+<li>
+<p>Dieser Status kann durch den Administrator deaktiviert werden.</p>
+</li>
+<li>
+<p>Wenn dieser Status deaktiviert ist, wird er einfach übersprungen.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_arbeit_beendet"><a class="anchor" href="#_arbeit_beendet"></a>2.2.9. Arbeit beendet</h4>
+<div id="__asciidoctor-preview-1950__" class="ulist">
+<ul>
+<li>
+<p>Die Arbeiten sind beendet.</p>
+</li>
+<li>
+<p>Die erteilten Erlaubnisse etc. sind zurückgegeben worden.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_ma_nahme_beendet"><a class="anchor" href="#_ma_nahme_beendet"></a>2.2.10. Maßnahme beendet</h4>
+<div id="__asciidoctor-preview-2008__" class="ulist">
+<ul>
+<li>
+<p>Der für den Abschluss des Vorgangs definierte Schaltzustand (in der Regel
+der ursprüngliche Schaltzustand) ist hergestellt.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+<li>
+<p>Hinweise können über das Feld "Bemerkungen" erfasst werden.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_geschlossen"><a class="anchor" href="#_geschlossen"></a>2.2.11. Geschlossen</h4>
+<div id="__asciidoctor-preview-2058__" class="ulist">
+<ul>
+<li>
+<p>Alle notwendigen Dokumentationen sind vorgenommen worden.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_storniert"><a class="anchor" href="#_storniert"></a>2.2.12. Storniert</h4>
+<div id="__asciidoctor-preview-2092__" class="ulist">
+<ul>
+<li>
+<p>Die Geplante Netzmaßnahme kann oder soll nicht weiterbearbeitet werden.</p>
+</li>
+<li>
+<p>Geplante Netzmaßnahmen dürfen nur aus den Status "Neu", "Beantragt",
+"Zur Genehmigung", "Genehmigt" storniert werden.</p>
+</li>
+<li>
+<p>Der Stornogrund ist im Feld "Bemerkungen" erfasst.</p>
+</li>
+<li>
+<p>Die erfassten Daten können nicht mehr geändert werden.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_gesamtprozess"><a class="anchor" href="#_gesamtprozess"></a>2.3. Gesamtprozess</h3>
+<div id="__asciidoctor-preview-2152__" class="paragraph">
+<p>Der gesamte Prozessablauf über den Lebenszyklus einer Geplanten Netzmaßnahme
+ist im folgenden Prozessdiagramm dargestellt. Aufgrund besserer Lesbarkeit
+ist der Prozess in drei zusammenhängenen Prozessabschnitten aufgeteilt.</p>
+</div>
+<div id="__asciidoctor-preview-2166__" class="imageblock">
+<div class="content">
+<img src="../images/massnahme_planen_und_genehmigen_1.png" alt="massnahme planen und genehmigen 1.png">
+</div>
+<div class="title">Figure 1. Prozessübersicht (Abschnitt 1: "Neu" bis "Genehmigt")</div>
+</div>
+<div id="__asciidoctor-preview-2182__" class="imageblock">
+<div class="content">
+<img src="../images/massnahme_durchfuehren_u_abschliessen_1.png" alt="massnahme durchfuehren u abschliessen 1.png">
+</div>
+<div class="title">Figure 2. Prozessübersicht (Abschnitt 2: "Angefordert" bis "Freigegeben")</div>
+</div>
+<div id="__asciidoctor-preview-2198__" class="imageblock">
+<div class="content">
+<img src="../images/massnahme_durchfuehren_u_abschliessen_2.png" alt="massnahme durchfuehren u abschliessen 2.png">
+</div>
+<div class="title">Figure 3. Prozessübersicht (Abschnitt 3: "Schalten aktiv" bis "Geschlossen")</div>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_benutzerdialoge"><a class="anchor" href="#_benutzerdialoge"></a>3. Benutzerdialoge</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_allgemeine_hinweise"><a class="anchor" href="#_allgemeine_hinweise"></a>3.1. Allgemeine Hinweise</h3>
+<div id="__asciidoctor-preview-2232__" class="paragraph">
+<p>Die Anwendung ist für folgende Endgeräte optimiert:</p>
+</div>
+<div id="__asciidoctor-preview-2238__" class="ulist">
+<ul>
+<li>
+<p>Desktop-PC</p>
+</li>
+<li>
+<p>Tablet</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-2260__" class="paragraph">
+<p>Es sind folgende Browser unterstützt:</p>
+</div>
+<div id="__asciidoctor-preview-2266__" class="ulist">
+<ul>
+<li>
+<p>Microsoft Internet Explorer</p>
+</li>
+<li>
+<p>Google Chrome</p>
+</li>
+<li>
+<p>Firefox Quantum</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-2298__" class="paragraph">
+<p>Die Bildschirmauflösung bzw. die Fenstergröße des Browsers sollte folgende Werte nicht unterschreiten:</p>
+</div>
+<div id="__asciidoctor-preview-2304__" class="ulist">
+<ul>
+<li>
+<p>1.024 x 768 Pixel</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="uebersicht-aller-gnm"><a class="anchor" href="#uebersicht-aller-gnm"></a>3.2. Übersicht aller Geplanten Netzmaßnahmen</h3>
+<div id="__asciidoctor-preview-2328__" class="paragraph">
+<p>Die Übersichtsseite stellt standardmäßig alle Geplanten Netzmaßnahmen
+in einer Tabelle dar. Bei Bedarf können die Geplanten Netzmaßnahmen aber auch in
+einer Kalender-Ansicht angezeigt werden.</p>
+</div>
+<div id="__asciidoctor-preview-2342__" class="imageblock">
+<div class="content">
+<img src="../images/button_tabelle_kalender.jpg" alt="button tabelle kalender.jpg">
+</div>
+<div class="title">Figure 4. Umschalten zwischen Tabellen- und Kalender-Ansicht</div>
+</div>
+<div class="sect3">
+<h4 id="_tabellen_ansicht"><a class="anchor" href="#_tabellen_ansicht"></a>3.2.1. Tabellen-Ansicht</h4>
+<div id="__asciidoctor-preview-2358__" class="paragraph">
+<p>Das Modul Geplante Netzmaßnahme startet immer in der Tabellen-Ansicht.</p>
+</div>
+<div id="__asciidoctor-preview-2372__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_uebersichtstabelle.png" alt="gnm uebersichtstabelle.png">
+</div>
+<div class="title">Figure 5. Übersicht der Geplanten Netzmaßnahmen in der Tabellen-Ansicht</div>
+</div>
+<div id="__asciidoctor-preview-2378__" class="paragraph">
+<p>Die Übersichtstabelle zeigt zu jeder Geplanten Netzmaßnahme folgende Informationen an:</p>
+</div>
+<table id="__asciidoctor-preview-2396__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 1. Felder in der Tabellenübersicht</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Feld</th>
+<th class="tableblock halign-left valign-top">Erläuterung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>siehe Abschnitt <a href="#uebersicht-statuszustaende">Statuszustände</a></p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beginnt am</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>Entspricht dem Wert aus "Beginn der ersten geplanten Einzelmaßnahme"</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nummer (ID)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>Automatisch generierte eindeutige Nummer der Geplanten Netzmaßnahme</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sparte</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>S: Strom (Hintergrundfarbe: rot)</p>
+</li>
+<li>
+<p>G: Gas (gelb)</p>
+</li>
+<li>
+<p>W: Wasser (blau)</p>
+</li>
+<li>
+<p>F: Fernwärme (grün)</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel der Maßnahme</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>Bezeichnung der Geplanten Netzmaßnahme</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name des Erstellers</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>Name des Maßnahmen-Antragstellers</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Betroffenes Objekt / Betriebsmittel</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="ulist">
+<ul>
+<li>
+<p>Das in der Geplanten Netzmaßnahme betroffene Betriebsmittel</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-2662__" class="paragraph">
+<p>Jede Geplante Netzmaßnahme kann je nach Benutzerrolle und Status der Maßnahme
+direkt aus der Tabelle angezeigt, bearbeitet oder storniert werden.</p>
+</div>
+<div id="__asciidoctor-preview-2676__" class="imageblock">
+<div class="content">
+<img src="../images/auge-symbol.png" alt="auge symbol.png">
+</div>
+<div class="title">Figure 6. Auge-Symbol zum Anzeigen einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-2692__" class="imageblock">
+<div class="content">
+<img src="../images/stift-symbol.png" alt="stift symbol.png">
+</div>
+<div class="title">Figure 7. Stift-Symbol zum Bearbeiten einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-2708__" class="imageblock">
+<div class="content">
+<img src="../images/stornieren.png" alt="stornieren.png">
+</div>
+<div class="title">Figure 8. Stornieren-Symbol zum Stornieren einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-2724__" class="imageblock">
+<div class="content">
+<img src="../images/stornieren-deaktiviert.png" alt="stornieren deaktiviert.png">
+</div>
+<div class="title">Figure 9. Deaktiviertes Stornieren-Symbol</div>
+</div>
+<div id="__asciidoctor-preview-2730__" class="paragraph">
+<p>Mit den vordefinierten Filtern "Meine Vorgänge", "Geschlossene" und "Stornierte",
+sowie über die Filter der Tabelle selbst, können beliebige individuelle
+Filterkombinationen erstellt und gespeichert werden. Details dazu sind im Abschnitt
+<a href="#allg-funktionen-uebersicht-aller-gnm">In der Übersicht aller Geplanten Netzmaßnahmen</a> beschrieben.</p>
+</div>
+<div id="gnm-erstellen" class="paragraph">
+<p>Ist ein Benutzer mit der Benutzerrolle "Maßnahmen-Antragsteller" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Netzmaßnahme erstellen" eine neue
+Geplante Netzmaßnahme anzulegen.</p>
+</div>
+<div id="__asciidoctor-preview-2750__" class="imageblock">
+<div class="content">
+<img src="../images/gnm-erstellen.png" alt="gnm erstellen.png">
+</div>
+<div class="title">Figure 10. Schaltfläche zum Erstellen von Geplanten Netzmaßnahmen</div>
+</div>
+<div id="__asciidoctor-preview-2756__" class="paragraph">
+<p>Alternativ kann über die Funktion "Netzmaßnahme duplizieren" eine neue Geplante
+Netzmaßnahme angelegt werden, siehe Abschnitt <a href="#gnm-duplizieren">Geplante Netzmaßnahme duplizieren</a>.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_kalender_ansicht"><a class="anchor" href="#_kalender_ansicht"></a>3.2.2. Kalender-Ansicht</h4>
+<div id="__asciidoctor-preview-2772__" class="paragraph">
+<p>Der Kalender stellt drei Ansichten zur Verfügungen, um die Einzelmaßnahmen der
+Geplanten Netzmaßnahmenkalendarisch anzuzeigen. Die Auswahl erfolgt über die
+entsprechenden Schaltflächen
+auf der rechten Seite.</p>
+</div>
+<div id="__asciidoctor-preview-2778__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Monatsansicht</p>
+</li>
+<li>
+<p>Wochenansicht</p>
+</li>
+<li>
+<p>Tagesansicht</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-2810__" class="paragraph">
+<p>Innerhalb der jeweiligen Ansichten besteht die Möglichkeit zum Nächsten, zum
+Vorherigen oder zum Aktuellen Darstellungszeitraum zu wechseln. Dies erfolgt
+über die entsprechenden Schaltflächen auf der linken Seite.</p>
+</div>
+<div id="__asciidoctor-preview-2814__" class="paragraph">
+<p>Der im Kalender dargestellte Zeitraum einer Einzelmaßnahme basiert auf folgenden
+Werten:</p>
+</div>
+<div id="__asciidoctor-preview-2820__" class="ulist">
+<ul>
+<li>
+<p>Beginn der  geplanten Einzelmaßnahme</p>
+</li>
+<li>
+<p>Ende der geplanten Einzelmaßnahme</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-2842__" class="paragraph">
+<p>Mit einem Klick auf die dargestellt Einzelmaßnahme kann die zugehörige Geplante
+Netzmaßnahme direkt aus dem Kalender zum Anzeigen (Auge-Symbol)
+oder zum Bearbeiten (Stift-Symbol) - je nach Berechtigung des Benutzers - geöffnet
+werden.</p>
+</div>
+<div id="__asciidoctor-preview-2846__" class="paragraph">
+<p>Ist ein Benutzer mit der Benutzerrolle "Maßnahmen-Antragsteller" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Netzmaßnahme erstellen" eine neue
+Geplante Netzmaßnahme anzulegen, siehe Absatz <a href="#gnm-erstellen">[gnm-erstellen]</a>.</p>
+</div>
+<div class="sect4">
+<h5 id="_monatsansicht"><a class="anchor" href="#_monatsansicht"></a>Monatsansicht</h5>
+<div id="__asciidoctor-preview-2858__" class="paragraph">
+<p>In der Monatsansicht ist jede Einzelmaßnahme mit einen roten Punkt dargestellt
+und zwar für jeden Tag innerhalb des Zeitraums der Einzelmaßnahme. Die rot
+umkreiste Zahl zeigt die Anzahl der Einzelmaßnahmen für den jeweiligen
+Kalendertag an.</p>
+</div>
+<div id="__asciidoctor-preview-2872__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_kalenderuebersicht.png" alt="gnm kalenderuebersicht.png">
+</div>
+<div class="title">Figure 11. Monatsansicht im Kalender</div>
+</div>
+<div id="__asciidoctor-preview-2878__" class="paragraph">
+<p>Um zu erkennen, welche Einzelmaßnahmen sich hinter den roten Punkten verbergen,
+reicht ein Klick auf den entsprechenden Kalendertag aus. Anschließend öffnet
+sich ein Bereich unterhalb des ausgewählten Kalendertags und zeigt die Titel der
+Einzelmaßnahmen an. Mit einem Klick auf die Einzelmaßnahme lässt sich die
+zugehörige Geplante Netzmaßnahme direkt zur Ansicht oder zum Bearbeiten öffnen.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_wochenansicht"><a class="anchor" href="#_wochenansicht"></a>Wochenansicht</h5>
+<div id="__asciidoctor-preview-2892__" class="paragraph">
+<p>In der Wochenansicht sind alle, im jeweils angezeigten Zeitraum, Einzelmaßnahmen
+dargestellt.</p>
+</div>
+<div id="__asciidoctor-preview-2906__" class="imageblock">
+<div class="content">
+<img src="../images/kalender_woche.png" alt="kalender woche.png">
+</div>
+<div class="title">Figure 12. Wochenansicht im Kalender</div>
+</div>
+<div id="__asciidoctor-preview-2912__" class="paragraph">
+<p>Mit einem Klick auf die Einzelmaßnahme lässt sich die zugehörige Geplante
+Netzmaßnahme direkt zur Ansicht oder zum Bearbeiten öffnen.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_tagesansicht"><a class="anchor" href="#_tagesansicht"></a>Tagesansicht</h5>
+<div id="__asciidoctor-preview-2926__" class="paragraph">
+<p>In der Tagesansicht sind die Einzelmaßnahmen minutengenau angezeigt.
+Wenn eine Netzmaßnahme über mehrere Tage geplant ist, so werden alle Tage, die
+nicht dem Start- oder Endtag entsprechen, jeweils von 0:00 bis 24:00 Uhr
+dargestellt.</p>
+</div>
+<div id="__asciidoctor-preview-2940__" class="imageblock">
+<div class="content">
+<img src="../images/kalender_tag.png" alt="kalender tag.png">
+</div>
+<div class="title">Figure 13. Tagesansicht im Kalender</div>
+</div>
+<div id="__asciidoctor-preview-2946__" class="paragraph">
+<p>Mit einem Klick auf die Geplante Netzmaßnahme lässt sich diese direkt zur Ansicht
+oder zum Bearbeiten öffnen.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="ansicht-bearbeitung-gnm"><a class="anchor" href="#ansicht-bearbeitung-gnm"></a>3.3. Ansicht und Bearbeitung einer Geplanten Netzmaßnahme</h3>
+<div id="__asciidoctor-preview-2966__" class="paragraph">
+<p>Die Ansicht einer Geplanten Netzmaßnahme teilt sich in mehrere Bereiche auf:</p>
+</div>
+<div id="__asciidoctor-preview-2972__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Netzmaßnahme (Basis-Informationen)</p>
+</li>
+<li>
+<p>Details der Netzmaßnahme</p>
+<div id="__asciidoctor-preview-3004__" class="olist loweralpha">
+<ol class="loweralpha" type="a">
+<li>
+<p>Maßnahme</p>
+</li>
+<li>
+<p>Einzelmaßnahmen und Schrittsequenzen</p>
+</li>
+</ol>
+</div>
+</li>
+<li>
+<p>E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen</p>
+</li>
+<li>
+<p>Statuswechsel (Änderungshistorie)</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-3054__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_gesamt.png" alt="gnm gesamt.png">
+</div>
+<div class="title">Figure 14. Ansicht einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-3060__" class="paragraph">
+<p>Durch einen Klick auf die Bezeichnung ("Netzmaßnahme", "Details der Netzmaßnahmen",
+"E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen, Statuswechsel")
+können die einzelnen Bereiche auf- und zugeklappt werden.</p>
+</div>
+<div id="__asciidoctor-preview-3064__" class="paragraph">
+<p>Um Änderungen an den Geplanten Netzmaßnahmen, Einzelmaßnahmen oder Schrittsequenzen
+zu sichern, ist die Schaltfläche "Speichern" zu klicken. Der Benutzerdialog der
+Geplanten Netzmaßnahmen schließt sich und anschließend erscheint die Tabellen-Ansicht.
+Zudem wird das erfolgreiche Speichern über eine Meldung bestätigt,
+siehe Abschnitt <a href="#meldungen-hinweise">Hinweise und Meldungen nach Benutzeraktionen</a>.</p>
+</div>
+<div id="__asciidoctor-preview-3078__" class="imageblock">
+<div class="content">
+<img src="../images/speichern.png" alt="speichern.png">
+</div>
+<div class="title">Figure 15. Schaltfläche zum Speichern der Änderungen</div>
+</div>
+<div id="__asciidoctor-preview-3084__" class="paragraph">
+<p>Um Änderungen nicht zu speichern ist die Schaltfläche "Abbrechen" zu klicken. Damit
+werden alle Anpassungen verworfen und zur Tabellen-Ansicht zurückgekehrt.</p>
+</div>
+<div id="__asciidoctor-preview-3098__" class="imageblock">
+<div class="content">
+<img src="../images/abbrechen.png" alt="abbrechen.png">
+</div>
+<div class="title">Figure 16. Schaltfläche zum Abbrechen der Bearbeitung ohne Speichern</div>
+</div>
+<div id="__asciidoctor-preview-3106__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Die Funktion "Datei hochladen" speichert Dateien immer direkt nach dem Upload,
+unabhängig davon ob die Schaltfläche "Speichern" oder "Abbrechen" geklickt wurde.
+</td>
+</tr>
+</table>
+</div>
+<div id="__asciidoctor-preview-3110__" class="paragraph">
+<p>Statuswechsel werden über die entsprechenden Schaltflächen angeboten. Die Anzeige
+ist dabei abhängig vom Status der Geplanten Netzmaßnahme sowie der Konfiguration
+des Prozesses. Als Beispiel ist im Folgenden die Schaltfläche für den
+Statuswechsel nach "Beantragt" dargestellt. Die weiteren Status sind im Abschnitt
+<a href="#uebersicht-statuszustaende">Statuszustände</a> ersichtlich.</p>
+</div>
+<div id="__asciidoctor-preview-3124__" class="imageblock">
+<div class="content">
+<img src="../images/beantragen.png" alt="beantragen.png">
+</div>
+<div class="title">Figure 17. Schaltfläche zum Statuswechsel (Beispiel: Beantragen)</div>
+</div>
+<div id="__asciidoctor-preview-3130__" class="paragraph">
+<p>Details zum Duplizieren von Geplanten Netzmaßnahmen befinden sich im Abschnitt
+<a href="#gnm-duplizieren">Geplante Netzmaßnahme duplizieren</a>.</p>
+</div>
+<div class="sect3">
+<h4 id="_netzma_nahme_basis_informationen"><a class="anchor" href="#_netzma_nahme_basis_informationen"></a>3.3.1. Netzmaßnahme (Basis-Informationen)</h4>
+<div id="__asciidoctor-preview-3152__" class="paragraph">
+<p>Die Basisinformationen einer Geplanten Netzmaßnahme befinden sich im oberen
+Teil des Benutzerdialogs. Dieser Teil ist feststehend, um die grundlegenden
+Daten einer Maßnahme immer im Blick zu behalten.</p>
+</div>
+<div id="__asciidoctor-preview-3156__" class="paragraph">
+<p>Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.</p>
+</div>
+<div id="__asciidoctor-preview-3170__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_header.png" alt="gnm header.png">
+</div>
+<div class="title">Figure 18. Basis-Informationen einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-3176__" class="paragraph">
+<p>Eine Geplante Netzmaßnahme (Teil: Basisinformationen) besitzt folgende Attibute:</p>
+</div>
+<table id="__asciidoctor-preview-3194__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 2. Attribute einer Geplanten Netzmaßnahme (Teil: Basisinformationen)</caption>
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Bearbeitbar im Status</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Kostenstelle</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nummer (ID)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Generiert</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Eindeutige Nummer im Format: JJMMTT_&lt;Lfd-Nr.&gt;</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sparte</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Strom, Gas, Wasser, Fernwärme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ebene</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">In Abhängigkeit zur Auswahl "Sparte" weitere Eigenschaften</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Gebiet (Region) der Maßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status im Prozessablauf</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel der Maßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sprechende Bezeichnung der Geplanten Netzmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Antragsteller</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Angemeldeter Maßnahmen-Antragsteller beim Anlegen der Maßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Abteilung Antragsteller</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-3576__" class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_details_einer_netzma_nahme"><a class="anchor" href="#_details_einer_netzma_nahme"></a>3.3.2. Details einer Netzmaßnahme</h4>
+<div id="__asciidoctor-preview-3596__" class="paragraph">
+<p>Die Detailinformationen einer Geplanten Netzmaßnahme befinden sich im mittleren
+Teil des Benutzerdialogs. Dieser Teil ist scrollbar, um alle Details erfassen
+und sehen zu können.</p>
+</div>
+<div id="__asciidoctor-preview-3610__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_detail.png" alt="gnm detail.png">
+</div>
+<div class="title">Figure 19. Details-Informationen einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-3616__" class="paragraph">
+<p>Dieser Bereich ist nochmals durch Reiter unterteilt in:</p>
+</div>
+<div id="__asciidoctor-preview-3622__" class="ulist">
+<ul>
+<li>
+<p>Maßnahme</p>
+</li>
+<li>
+<p>Einzelmaßnahme 1</p>
+</li>
+<li>
+<p>Optional: Einzelmaßnahme 2 (bis 10)</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-3654__" class="paragraph">
+<p>Die Details einer Geplanten Netzmaßnahme befinden sich im Reiter "Maßnahme"
+und bestehen aus folgenden Attributen:</p>
+</div>
+<table id="__asciidoctor-preview-3672__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 3. Attribute einer Geplanten Netzmaßnahme (Teil: Detailinformationen)</caption>
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Bearbeitbar im Status</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Abteilung letzter Bearbeiter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beginn der ersten geplanten Einzelmaßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wird übernommen aus Feld "Beginn der geplanten Einzelmaßnahme" vom Reiter "Einzelmaßnahme 1"</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ende der Netzmaßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wird übernommen aus Feld "Ende der geplanten Einzelmaßnahme" vom Reiter mit der höchsten Nummer "Einzelmaßnahme 1 (ggf. bis 10)"</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Betroffenes Objekt/Betriebsmittel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Häufigkeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zahl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anzahl der Wiederholungen</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wiederholung</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl-Liste</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">täglich, wöchentlich, monatlich, jährlich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wiederbereitstellungszeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibung der Maßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibende Erläuterung als Freitext</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Bemerkungen</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">alle ausser Geschlossen</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Bemerkungen, z.B. für Statuswechsel oder Genehmigungsvermerke</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anhang</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Dateiablage</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Erforderliche Dateien zur Ergänzung der Geplanten Netzmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Letzter Bearbeiter</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Aktuell angemeldeter Benutzer</p></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-4124__" class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.</p>
+</div>
+<div id="__asciidoctor-preview-4128__" class="paragraph">
+<p>In den Reitern "Einzelmaßnahme 1 (bis 10)" befinden sich die Details zu
+Einzelmaßnahmen und Schrittsequenzen. Die Erläuterungen dazu sind im folgenden
+Abschnitt dargestellt.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="einzelmassnahme-schrittsequenz"><a class="anchor" href="#einzelmassnahme-schrittsequenz"></a>3.3.3. Ansicht Einzelmaßnahme und Schrittsequenzen</h4>
+<div id="__asciidoctor-preview-4144__" class="paragraph">
+<p>Eine Geplante Netzmaßnahme besteht aus mindestens einer und maximal
+zehn Einzelmaßnahmen. Initial ist immer eine Einzelmaßnahme angelegt.</p>
+</div>
+<div id="__asciidoctor-preview-4148__" class="paragraph">
+<p>Eine zweite Einzelmaßnahme macht zum Beispiel Sinn, um Rückschaltungen zu planen. Dazu
+wird die ausgewählte Einzelmaßnahme mitsamt ihren Inhalten kopiert und die dort
+erfassten Schrittsequenzen in umgekehrter Reihenfolge geplant. Anschließend sind
+nur noch kleine manuelle Anpassungen notwendig, um die Rückschaltungsplanung zu finalisieren.
+Als Hilfsmittel existiert die Schaltfläche "Rückschaltung planen", die eine
+neue Einzelmaßnahme mit der Bezeichnung "Rückschaltung von &lt;Titel der Einzelmaßnahme&gt;"
+anlegt.</p>
+</div>
+<div id="__asciidoctor-preview-4162__" class="imageblock">
+<div class="content">
+<img src="../images/rueckschaltung-planen.png" alt="rueckschaltung planen.png">
+</div>
+<div class="title">Figure 20. Schaltfläche zur Erstellung einer Rückschaltung</div>
+</div>
+<div id="__asciidoctor-preview-4168__" class="paragraph">
+<p>Wenn mehr als eine Einzelmaßnahme existiert, also mehr als ein Reiter mit der
+Bezeichnung "Einzelmaßnahme" vorhanden ist, sortiert das System die Einzelmaßnahmen
+automatisch (Nach Klick auf die Schaltfläche "Speichern" oder bei einem Statuswechsel).
+In der "Einzelmaßnahme 1" befindet sich somit zeitlich immer die erste Einzelmaßnahme.
+D.h. der "Beginn der geplanten Einzelmaßnahme" ist im Vergleich zu den anderen
+Einzelmaßnahmen am ehesten. In der Einzelmaßnahme mit der höchsten Nummer ist
+folglich immer die letzte beginnende Einzelmaßnahme enthalten.</p>
+</div>
+<div id="__asciidoctor-preview-4172__" class="paragraph">
+<p>Wenn mehr als eine Einzelmaßnahme existiert, ist das Löschen von Einzelmaßnahmen
+möglich. Dazu ist die zu löschende Einzelmaßnahe auszuwählen und anschließend
+die Schaltfläche "Einzelmaßnahme löschen" zu klicken. Die Einzelmaßnahme wird
+anschließend ohne Rückmeldung entfernt.</p>
+</div>
+<div id="__asciidoctor-preview-4186__" class="imageblock">
+<div class="content">
+<img src="../images/einzelmassnahme-loeschen.png" alt="einzelmassnahme loeschen.png">
+</div>
+<div class="title">Figure 21. Schaltfläche zum Löschen einer Einzelmaßnahme</div>
+</div>
+<div class="sect4">
+<h5 id="_einzelma_nahme"><a class="anchor" href="#_einzelma_nahme"></a>Einzelmaßnahme</h5>
+<div id="__asciidoctor-preview-4202__" class="paragraph">
+<p>Im Reiter "Einzelmaßnahme 1 (bis 10)" sind im oberen Bereich die Basisinformation
+einer Einzelmaßnahme dargestellt.</p>
+</div>
+<div id="__asciidoctor-preview-4216__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_einzelmassnahme.png" alt="gnm einzelmassnahme.png">
+</div>
+<div class="title">Figure 22. Informationen einer Einzelmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-4222__" class="paragraph">
+<p>Eine Einzelmaßnahme besitzt folgende Attibute:</p>
+</div>
+<table id="__asciidoctor-preview-4240__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 4. Attribute einer Einzelmaßnahme</caption>
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Bearbeitbar im Status</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibung</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beschreibende Erläuterung als Freitext</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel der Einzelmaßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sprechende Bezeichnung der Einzelmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beginn der geplanten Einzelmaßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum-Zeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geplanter Startzeitpunkt der Einzelmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ende der geplanten Einzelmaßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum-Zeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geplanter Endzeitpunkt der Einzelmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Betroffenes Objekt/Betriebsmittel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Automatisch</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">-</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wird übernommen aus "Betroffenes Objekt/Betriebsmittel" der Netzmaßnahme</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Verantwortlicher Vor-Ort</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Abteilung Verantwortlicher Vor-Ort</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Netzführung/Netzservice/Genehmiger</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-4586__" class="paragraph">
+<p>(*) Pflichtfeld um einen Statuswechsel nach "Beantragt" durchführen zu können.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_schrittsequenz"><a class="anchor" href="#_schrittsequenz"></a>Schrittsequenz</h5>
+<div id="__asciidoctor-preview-4600__" class="paragraph">
+<p>Im unteren Bereich befinden sich die Schrittsequenzen einer Einzelmaßnahme. Auf
+linken Seite können Schrittsequenzen erfasst werden.</p>
+</div>
+<div id="__asciidoctor-preview-4614__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_schrittsequenz.png" alt="gnm schrittsequenz.png">
+</div>
+<div class="title">Figure 23. Informationen einer Schrittsequenz</div>
+</div>
+<div id="__asciidoctor-preview-4620__" class="paragraph">
+<p>Eine Schrittsequenz (als Teil einer Einzelmaßnahme) besitzt folgende Attibute:</p>
+</div>
+<table id="__asciidoctor-preview-4638__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 5. Attribute einer Schrittsequenz</caption>
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+<col style="width: 20%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld(*)</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Bearbeitbar im Status</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ausführender</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Betriebsmittel-Gruppe</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl-Liste</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Informationen werden aus dem Leitsystem geladen.
+                                                                                Nach Auswahl wird Wert in Feld "Betriebsmittel" übernommen.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Betriebsmittel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl-Baum</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wird übernommen aus "Betriebsmittel-Gruppe".
+                                                                                Über Baumstruktur das betroffene Betriebsmittel auswählen.
+                                                                                Ausgewähltes Betriebsmittel wird in Feld "Objekt der Schaltung" übernommen.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Objekt der Schaltung</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Wird übernommen aus "Betriebsmittel-Gruppe".
+                                                                                Alternativ: Eingabe als Freitext.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ist-Zustand</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Soll-Zustand</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ist-Zeit</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Typ</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu, Beantragt</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Freie Eingabe oder Auswahl eines vorherigen Eintrags möglich</p></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-4984__" class="paragraph">
+<p>(*) Pflichtfeld um eine Schrittsequenz über die Schaltfläche "Schritt hinzufügen" anlegen zu können.</p>
+</div>
+<div id="__asciidoctor-preview-4988__" class="paragraph">
+<p>Auf der rechten Seite befinden sich alle erfassten Schrittsequenzen in der korrekten
+Reihenfolge für die spätere Umsetzung. Bei Bedarf kann die Reihenfolge der Einzelschritte
+durch einfaches Verschieben angepasst werden. Eine Anpassung der Werte ist
+ebenfalls direkt in der Tabelle möglich, indem das entsprechende Feld angeklickt
+und bearbeitet wird.</p>
+</div>
+<div id="__asciidoctor-preview-5002__" class="imageblock">
+<div class="content">
+<img src="../images/gnm_schrittsequenz_tabelle.png" alt="gnm schrittsequenz tabelle.png">
+</div>
+<div class="title">Figure 24. Übersicht aller Schrittsequenzen einer Einzelmaßnahme</div>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_email_verteiler"><a class="anchor" href="#_email_verteiler"></a>3.3.4. eMail-Verteiler</h4>
+<div id="__asciidoctor-preview-5022__" class="paragraph">
+<p>Details zum E-Mail Verteiler, siehe Abschnitt <a href="#email-benachrichtigung-statuswechsel">eMail-Benachrichtigung bei Statuswechsel</a></p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="__nderungshistorie_der_statuswechsel"><a class="anchor" href="#__nderungshistorie_der_statuswechsel"></a>3.3.5. Änderungshistorie der Statuswechsel</h4>
+<div id="__asciidoctor-preview-5042__" class="paragraph">
+<p>Alle Statuswechsel werden dokumentiert und können innerhalb einer Geplanten Netzmaßnahme
+im Bereich "Statuswechsel" durch Klicken auf die gleichnamige Bezeichnung
+"Statuswechsel" angezeigt werden.</p>
+</div>
+<div id="__asciidoctor-preview-5056__" class="imageblock">
+<div class="content">
+<img src="../images/statuswechsel-uebersicht.png" alt="statuswechsel uebersicht.png">
+</div>
+<div class="title">Figure 25. Übersicht der Statuswechsel einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-5062__" class="paragraph">
+<p>Dort sind Datum und Uhrzeit, die Statuswechsel-Zustände sowie der jeweilige
+Bearbeiter der Geplanten Maßnahme ersichtlich.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_benachrichtigungen_und_erinnerungen"><a class="anchor" href="#_benachrichtigungen_und_erinnerungen"></a>4. Benachrichtigungen und Erinnerungen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="email-benachrichtigung-statuswechsel"><a class="anchor" href="#email-benachrichtigung-statuswechsel"></a>4.1. eMail-Benachrichtigung bei Statuswechsel</h3>
+<div id="__asciidoctor-preview-5100__" class="paragraph">
+<p>Es wird eine automatische eMail-Benachrichtigung versendet, wenn folgende
+Ziel-Status erreicht werden:</p>
+</div>
+<div id="__asciidoctor-preview-5106__" class="ulist">
+<ul>
+<li>
+<p>Genehmigt</p>
+</li>
+<li>
+<p>Storniert</p>
+</li>
+<li>
+<p>Zurückgewiesen</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-5138__" class="paragraph">
+<p>Die Adresssaten sind über die E-Mail Verteilerliste für Status Genehmigt,
+Storniert und Zurückgewiesen definiert.</p>
+</div>
+<div id="__asciidoctor-preview-5142__" class="paragraph">
+<p>Die individuelle Anpassung der Verteilerliste ist im Abschnitt
+<a href="#email-verteiler-anpassen">eMail-Verteiler für Status Genehmigt, Storniert und Zurückgewiesen anpassen</a>
+beschrieben.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_erinnerungsfunktion_f_r_anstehende_und_f_llige_netzma_nahmen"><a class="anchor" href="#_erinnerungsfunktion_f_r_anstehende_und_f_llige_netzma_nahmen"></a>4.2. Erinnerungsfunktion für anstehende und fällige Netzmaßnahmen</h3>
+<div id="__asciidoctor-preview-5172__" class="paragraph">
+<p>Damit anstehende und fällige Geplante Netzmaßnahmen leicht erkannt werden können,
+setzt das Modul zwei optische Hilfsmittel um:</p>
+</div>
+<div id="__asciidoctor-preview-5178__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Farbliches Glocken-Symbol in der Kopfzeile</p>
+</li>
+<li>
+<p>Farbliche Darstellung des Datums "Beginn am" in der Übersichtstabelle "Aktuelle Netzmaßnahmen"</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-5200__" class="paragraph">
+<p>Die Entscheidung, ob eine Erinnerung notwendig ist, basiert auf folgenden Kriterien:</p>
+</div>
+<div id="__asciidoctor-preview-5206__" class="ulist">
+<ul>
+<li>
+<p>Es werden nur Geplante Netzmaßnahmen in den Status "Neu", "Beantragt" und
+"Zur Genehmigung" berücksichtigt.</p>
+</li>
+<li>
+<p>Der "Beginn der ersten geplanten Einzelmaßnahme" wird in Bezug zum jeweils
+aktuellen Zeitpunkt gesetzt. Anhand dessen erfolgt die Erinnerung gemäß der
+folgenden Tabelle.</p>
+</li>
+</ul>
+</div>
+<table id="__asciidoctor-preview-5254__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 6. Erinnerungen</caption>
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Symbol</th>
+<th class="tableblock halign-left valign-top">Beginnt am</th>
+<th class="tableblock halign-left valign-top">Erinnerung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_glocke_rot.jpg" alt="erinnerung glocke rot.jpg">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_datum_rot.jpg" alt="erinnerung datum rot.jpg">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Mindestens eine Geplante Netzmaßnahme sollte bereits gestartet sein.</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_glocke_grau.png" alt="erinnerung glocke grau.png">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_datum_grau.png" alt="erinnerung datum grau.png">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Keine Geplante Netzmaßnahme ist fällig oder startet in den nächsten 48 Stunden.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_glocke_orange.png" alt="erinnerung glocke orange.png">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="imageblock">
+<div class="content">
+<img src="../images/erinnerung_datum_orange.png" alt="erinnerung datum orange.png">
+</div>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Mindestens eine Geplante Netzmaßnahme sollte in den nächsten 48 Stunden beginnen.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="meldungen-hinweise"><a class="anchor" href="#meldungen-hinweise"></a>4.3. Hinweise und Meldungen nach Benutzeraktionen</h3>
+<div id="__asciidoctor-preview-5468__" class="paragraph">
+<p>Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:</p>
+</div>
+<div id="__asciidoctor-preview-5474__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>über den Erfolg der Aktion zu informieren,</p>
+</li>
+<li>
+<p>Handlungsanweisungen zu geben,</p>
+</li>
+<li>
+<p>über Fehler des Systems zu informieren.</p>
+</li>
+</ol>
+</div>
+<div class="sect3">
+<h4 id="_erfolg_einer_aktion"><a class="anchor" href="#_erfolg_einer_aktion"></a>4.3.1. Erfolg einer Aktion</h4>
+<div id="__asciidoctor-preview-5518__" class="paragraph">
+<p>Positive Meldungen sind grün hinterlegt und werden u.a. in folgenden Fällen angezeigt:</p>
+</div>
+<div id="__asciidoctor-preview-5524__" class="ulist">
+<ul>
+<li>
+<p>Neu-Anlage von Geplanten Netzmaßnahmen</p>
+</li>
+<li>
+<p>Statuswechseln</p>
+</li>
+<li>
+<p>Duplizieren von Geplanten Netzmaßnahmen</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-5566__" class="imageblock">
+<div class="content">
+<img src="../images/meldung_erfolgreich.png" alt="meldung erfolgreich.png">
+</div>
+<div class="title">Figure 26. Meldung nach erfolgreichem Anlegen einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-5572__" class="paragraph">
+<p>Diese Meldungen bleiben für zehn Sekunden sichtbar und verschwinden dann wieder
+automatisch.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_handlungsanweisung"><a class="anchor" href="#_handlungsanweisung"></a>4.3.2. Handlungsanweisung</h4>
+<div id="__asciidoctor-preview-5586__" class="paragraph">
+<p>In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:</p>
+</div>
+<div id="__asciidoctor-preview-5592__" class="ulist">
+<ul>
+<li>
+<p>Fehlenden Informationen (Pflichtfelder füllen)</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-5614__" class="imageblock">
+<div class="content">
+<img src="../images/meldung_hinweis.png" alt="meldung hinweis.png">
+</div>
+<div class="title">Figure 27. Hinweis Pflichtfelder</div>
+</div>
+<div id="__asciidoctor-preview-5620__" class="paragraph">
+<p>Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_fehlermeldungen"><a class="anchor" href="#_fehlermeldungen"></a>4.3.3. Fehlermeldungen</h4>
+<div id="__asciidoctor-preview-5634__" class="paragraph">
+<p>Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:</p>
+</div>
+<div id="__asciidoctor-preview-5640__" class="ulist">
+<ul>
+<li>
+<p>Speichern fehlgeschlagen</p>
+</li>
+<li>
+<p>Web Services nicht verfügbar</p>
+</li>
+</ul>
+</div>
+<div id="__asciidoctor-preview-5672__" class="imageblock">
+<div class="content">
+<img src="../images/meldung_fehler.png" alt="meldung fehler.png">
+</div>
+<div class="title">Figure 28. Fehlermeldung</div>
+</div>
+<div id="__asciidoctor-preview-5678__" class="paragraph">
+<p>Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_allgemeine_funktionen"><a class="anchor" href="#_allgemeine_funktionen"></a>5. Allgemeine Funktionen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="allg-funktionen-uebersicht-aller-gnm"><a class="anchor" href="#allg-funktionen-uebersicht-aller-gnm"></a>5.1. In der Übersicht aller Geplanten Netzmaßnahmen</h3>
+<div class="sect3">
+<h4 id="vordefinierte-filter"><a class="anchor" href="#vordefinierte-filter"></a>5.1.1. Vordefinierte Filter</h4>
+<div id="__asciidoctor-preview-5724__" class="paragraph">
+<p>In der Tabellen-Ansicht sind drei Filer vordefiniert, die über eine
+Schalterleiste im Tabellenkopf ein- und ausgestellt werden können:</p>
+</div>
+<div id="__asciidoctor-preview-5738__" class="imageblock">
+<div class="content">
+<img src="../images/vordefinierte_filter.png" alt="vordefinierte filter.png">
+</div>
+<div class="title">Figure 29. Vordefinierte Filter</div>
+</div>
+<div id="__asciidoctor-preview-5744__" class="paragraph">
+<p>Bei Betätigung eines Filters erfolgt unmittelbar eine Aktualisierung der angezeigten
+Geplanten Netzmaßnahmen in der Tabelle.</p>
+</div>
+<div id="__asciidoctor-preview-5750__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Meine Vorgänge</p>
+<div id="__asciidoctor-preview-5768__" class="ulist">
+<ul>
+<li>
+<p>In der Tabelle werden nur Geplante Netzmaßnahmen angezeigt, bei denen der
+aktuelle Benutzer zu irgendeiner Zeit involviert war.</p>
+</li>
+<li>
+<p>Eine Kombination mit den Filtern "Geschlossene" und "Stornierte" ist nicht möglich.
+Diese Filter sind deaktiviert bzw. werden automatisch deaktiviert.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Geschlossene</p>
+<div id="__asciidoctor-preview-5816__" class="ulist">
+<ul>
+<li>
+<p>In der Tabelle werden zusätzlich alle geschlossenen Geplanten Netzßmaßnahmen
+angezeigt.</p>
+</li>
+<li>
+<p>Eine Kombination mit dem Filter "Meine Vorgänge" ist nicht möglich. Sollte der
+Filter "Meine Vorgänge" ausgewählt sein, so muss dieser zunächst deaktiviert werden.
+Anschließend kann der Filter "Geschlossene" aktiviert werden.</p>
+</li>
+<li>
+<p>Eine Kombination mit dem Filter "Storniert" ist möglich.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Stornierte</p>
+<div id="__asciidoctor-preview-5872__" class="ulist">
+<ul>
+<li>
+<p>In der Tabelle werden zusätzlich alle stornierten Geplanten Netzßmaßnahmen
+angezeigt.</p>
+</li>
+<li>
+<p>Eine Kombination mit dem Filter "Meine Vorgänge" ist nicht möglich. Sollte der
+Filter "Meine Vorgänge" ausgewählt sein, so muss dieser zunächst deaktiviert werden.
+Anschließend kann der Filter "Geschlossene" aktiviert werden.</p>
+</li>
+<li>
+<p>Eine Kombination mit dem Filter "Geschlossene" ist möglich.</p>
+</li>
+</ul>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_filtern_und_sortieren_von_tabellenspalten"><a class="anchor" href="#_filtern_und_sortieren_von_tabellenspalten"></a>5.1.2. Filtern und Sortieren von Tabellenspalten</h4>
+<div id="__asciidoctor-preview-5934__" class="paragraph">
+<p>Mit den Filtern in der Übersichtstabelle werden nicht relevante Inhalte ausgeblendet.
+Es kann in einer Spalte gefiltert werden, wie in der Abbildung dargestellt.
+Es können aber auch Filter in mehrern Spalten gleichzeitig definiert werden,
+um noch gezieltere Suchen durchzuführen.</p>
+</div>
+<div id="__asciidoctor-preview-5948__" class="imageblock">
+<div class="content">
+<img src="../images/tabellen-filter.png" alt="tabellen filter.png">
+</div>
+<div class="title">Figure 30. Filter in der Übersichtstabelle</div>
+</div>
+<div id="__asciidoctor-preview-5954__" class="paragraph">
+<p>Um den Filter zu entfernen, müssen lediglich die zuvor erfassten Filterkriterien
+entfernt werden.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_filtereinstellungen_speichern"><a class="anchor" href="#_filtereinstellungen_speichern"></a>5.1.3. Filtereinstellungen speichern</h4>
+<div id="__asciidoctor-preview-5970__" class="paragraph">
+<p>Jeder Benutzer hat die Möglichkeit seinen individuellen Filter zu speichern. Dies erfolgt
+über die Schaltfläche "Filter Speichern" im Tabellenkopf.</p>
+</div>
+<div id="__asciidoctor-preview-5984__" class="imageblock">
+<div class="content">
+<img src="../images/filter_speichern.png" alt="filter speichern.png">
+</div>
+<div class="title">Figure 31. Schaltfläche zum Speichern des aktuellen Filters</div>
+</div>
+<div id="__asciidoctor-preview-5990__" class="paragraph">
+<p>Die Schaltfläche "Filter Speichern" ist solange deaktiviert, bis eine Änderung an
+den Filtereinstellung vornommen wird. Soll der aktuelle Filter dauerhaft gespeichert werden,
+so ist ein Klick auf die Schaltfläche "Filter Speichern" notwendig. Damit ist
+der neue Filter als Standardeinstellung für den aktuellen Benutzer gesetzt.</p>
+</div>
+<div id="__asciidoctor-preview-5994__" class="paragraph">
+<p>Folgende Filter-Einstellungen werden gespeichert:</p>
+</div>
+<div id="__asciidoctor-preview-6000__" class="ulist">
+<ul>
+<li>
+<p>Vordefinierte Filter</p>
+</li>
+<li>
+<p>Reihenfolge der Tabellenspalten</p>
+</li>
+<li>
+<p>Filter innerhalb der Tabelle</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_bei_der_bearbeitung_von_geplanten_netzma_nahmen"><a class="anchor" href="#_bei_der_bearbeitung_von_geplanten_netzma_nahmen"></a>5.2. Bei der Bearbeitung von Geplanten Netzmaßnahmen</h3>
+<div class="sect3">
+<h4 id="_dateien_hochladen_anzeigen_und_entfernen"><a class="anchor" href="#_dateien_hochladen_anzeigen_und_entfernen"></a>5.2.1. Dateien hochladen, anzeigen und entfernen</h4>
+<div id="__asciidoctor-preview-6074__" class="paragraph">
+<p>Zu jeder Geplanten Netzmaßnahme können bis zu 10 Dateien (mit jeweils maximal
+20 MB Größe) hochgeladen und gespeichert werden.</p>
+</div>
+<div id="__asciidoctor-preview-6078__" class="paragraph">
+<p>Dazu existiert in jeder Geplanten Netzmaßnahme im Bereich "Details der Netzmaßnahme"
+folgender Bereich zum Verwalten von Dateien:</p>
+</div>
+<div id="__asciidoctor-preview-6092__" class="imageblock">
+<div class="content">
+<img src="../images/dateien_hochladen.png" alt="dateien hochladen.png">
+</div>
+<div class="title">Figure 32. Dateien hochladen und ansehen</div>
+</div>
+<div class="sect4">
+<h5 id="_datei_hochladen"><a class="anchor" href="#_datei_hochladen"></a>Datei hochladen</h5>
+<div id="__asciidoctor-preview-6108__" class="paragraph">
+<p>Dateien können nur in den Status "Neu" und "Beantragt" hochgeladen werden.</p>
+</div>
+<div id="__asciidoctor-preview-6112__" class="paragraph">
+<p>Die Schaltfläche "Datei auswählen" öffent einen Dialog zur Auswahl einer Datei
+im Dateisystem. Alternativ kann eine Datei per Drag and Drop in den Bereich
+"Datei ziehen und hier ablegen" gezogen werden. Anschließend ist der Dateiname
+im grauen Feld unter "Anhang" sichtbar und die Schaltfläche "Datei hochladen"
+aktiviert. Mit einem Klick auf "Datei hochladen" erfolgt der Upload. Anschließend
+erscheint die erfolgreich hochgeladene Datei in der Liste.</p>
+</div>
+<div id="__asciidoctor-preview-6118__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Sollte der Dateiname bereits in der Liste hochgeladener Dateien enthalten
+sein, so wird die vorhandene Datei ohne Rückfrage mit der neu hochzuladenden Datei
+überschrieben.
+</td>
+</tr>
+</table>
+</div>
+<div id="__asciidoctor-preview-6124__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Hinzufügen der Datei erfolgt unabhängig vom Klick auf "Speichern".
+</td>
+</tr>
+</table>
+</div>
+<div id="__asciidoctor-preview-6128__" class="paragraph">
+<p>Folgende Dateiformate können hochgeladen werden:</p>
+</div>
+<table id="__asciidoctor-preview-6146__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 7. Unterstützte Dateiformate(*)</caption>
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">jpg</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">xlsm</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">docm</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">pdf</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">xls</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">doc</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">png</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">xlsx</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">docx</p></td>
+</tr>
+</tbody>
+</table>
+<div id="__asciidoctor-preview-6224__" class="paragraph">
+<p>(*) Sollte eine Unterstützung weiterer Dateiformate notwendig sein, so kann dies
+der Administrator in der Konfiguration anpassen.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_datei_anzeigen"><a class="anchor" href="#_datei_anzeigen"></a>Datei anzeigen</h5>
+<div id="__asciidoctor-preview-6240__" class="paragraph">
+<p>Hochgeladene Dateien können in jedem Status angezeigt werden.</p>
+</div>
+<div id="__asciidoctor-preview-6244__" class="paragraph">
+<p>Mit einem Klick auf den Dateinamen öffnet sich die Datei in einem externen
+Programm, das für den entsprechenden Dateitypen definiert ist. Ggf. erscheint
+zusätzlich eine Meldung vom Browser.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_datei_entfernen"><a class="anchor" href="#_datei_entfernen"></a>Datei entfernen</h5>
+<div id="__asciidoctor-preview-6260__" class="paragraph">
+<p>Hochgeladene Dateien können nur im Status "Neu" entfernt werden.</p>
+</div>
+<div id="__asciidoctor-preview-6264__" class="paragraph">
+<p>Mit einem Klick auf das rote Kreuz hinter dem entsprechenden Dateinamen wird
+die Datei ohne Rückfrage entfernt.</p>
+</div>
+<div id="__asciidoctor-preview-6270__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Entfernen der Datei erfolgt unabhängig vom Klick auf "Speichern".
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="email-verteiler-anpassen"><a class="anchor" href="#email-verteiler-anpassen"></a>5.2.2. eMail-Verteiler für Status Genehmigt, Storniert und Zurückgewiesen anpassen</h4>
+<div id="__asciidoctor-preview-6288__" class="paragraph">
+<p>Die Adressaten der eMail-Benachrichtigung werden auf zwei Ebenen definiert:</p>
+</div>
+<div id="__asciidoctor-preview-6294__" class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Der Administrator konfiguriert die Adressaten in der System-Konfiguration.
+Die Benutzer können diese Daten nicht ändern.</p>
+</li>
+<li>
+<p>Die Benutzer mit den Rollen "Maßnahmen-Antragsteller" und "Maßnahmen-Planer" können
+in der Geplanten Netzmaßnahme unter
+E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen
+selbst eMail-Adressen hinzufügen oder entfernen. Dazu muss lediglich eine
+gültige eMail-Adresse eingetragen und per Klick auf "E-Mail-Adresse hinzufügen"
+übernommen werden.</p>
+</li>
+</ol>
+</div>
+<div id="__asciidoctor-preview-6330__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Der angepasste eMail-Verteiler gilt jeweils nur für die eine
+Geplante Netzmaßnahme.
+</td>
+</tr>
+</table>
+</div>
+<div id="__asciidoctor-preview-6344__" class="imageblock">
+<div class="content">
+<img src="../images/email-verteiler.png" alt="email verteiler.png">
+</div>
+<div class="title">Figure 33. Individueller eMail-Verteiler für eine Geplante Netzmaßnahme</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_statuswechsel_durchf_hren"><a class="anchor" href="#_statuswechsel_durchf_hren"></a>5.2.3. Statuswechsel durchführen</h4>
+<div class="sect4">
+<h5 id="statuswechsel-allgemein"><a class="anchor" href="#statuswechsel-allgemein"></a>Allgemeine Statuswechsel</h5>
+<div id="__asciidoctor-preview-6374__" class="paragraph">
+<p>Statuswechsel erfolgen grundsätzlich über die entsprechende Schaltfläche innerhalb
+einer Geplanten Netzmaßnahme. Je nach Status der Geplanten Netzmaßnahme und
+der Benutzerrolle des angemeldeten Benutzers wird die jeweils gültige
+Schaltfläche für den Statuswechsel angezeigt, wie z.B. beim Wechsel des Status
+zu "Beantragt".</p>
+</div>
+<div id="__asciidoctor-preview-6388__" class="imageblock">
+<div class="content">
+<img src="../images/beantragen.png" alt="beantragen.png">
+</div>
+<div class="title">Figure 34. Schaltfläche für Wechsel zum Status "Beantragen"</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="statuswechsel-stornieren"><a class="anchor" href="#statuswechsel-stornieren"></a>Stornieren von Geplanten Netzmaßnahmen</h5>
+<div id="__asciidoctor-preview-6406__" class="paragraph">
+<p>Die einzige Ausnahme bildet das Stornieren von Geplanten Netzmaßnahmen. Hier erfolgt
+der Statuswechsel in der Tabellen-Ansicht. Dort wird in der Liste bei der entsprechenden
+Geplanten Netzmaßnahme die Stornieren-Schaltfläche geklickt, die im Folgenden
+dargestellt ist.</p>
+</div>
+<div id="__asciidoctor-preview-6420__" class="imageblock">
+<div class="content">
+<img src="../images/stornieren.png" alt="stornieren.png">
+</div>
+<div class="title">Figure 35. Schaltfläche zum Stornieren einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-6426__" class="paragraph">
+<p>Anschließend muss eine Begründung für das Stornieren der Geplanten Netzmaßnahme
+eingetragen und mit einem Klick auf "Bestätigen" finalisert werden.</p>
+</div>
+<div id="__asciidoctor-preview-6440__" class="imageblock">
+<div class="content">
+<img src="../images/stornieren_kommentar.png" alt="stornieren kommentar.png">
+</div>
+<div class="title">Figure 36. Begründung für das Stornieren einer Geplanten Netzmaßnahme erfassen</div>
+</div>
+</div>
+<div class="sect4">
+<h5 id="_weitere_details"><a class="anchor" href="#_weitere_details"></a>Weitere Details</h5>
+<div id="__asciidoctor-preview-6458__" class="paragraph">
+<p>Eine Übersicht welche Statuswechsel welche Benutzerrolle durchführen darf,
+befindet sich im Abschnitt <a href="#uebersicht-benutzerrollen">Benutzerrollen und Aufgaben</a>.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="gnm-duplizieren"><a class="anchor" href="#gnm-duplizieren"></a>5.3. Geplante Netzmaßnahme duplizieren</h3>
+<div id="__asciidoctor-preview-6478__" class="paragraph">
+<p>Jede Geplante Netzmaßnahme (unabhängig vom Status) kann dupliziert
+werden, um die Neuanlage einer Geplanten Netzmaßnahme zu vereinfachen.
+Dazu ist die als Grundlage dienende Geplante Netzmaßnahme,
+entweder über das Auge- oder das Stift-Symbol, zu öffnen. Innerhalb der Geplanten
+Netzmaßnahme befindet sich die Schaltfläche "Netzmaßnahme duplizieren".</p>
+</div>
+<div id="__asciidoctor-preview-6492__" class="imageblock">
+<div class="content">
+<img src="../images/netzmassnahme_duplizieren.png" alt="netzmassnahme duplizieren.png">
+</div>
+<div class="title">Figure 37. Schaltfläche zum Duplizieren einer Geplanten Netzmaßnahme</div>
+</div>
+<div id="__asciidoctor-preview-6498__" class="paragraph">
+<p>Mit Klick auf die Schaltfläche "Netzmaßnahme duplizieren" öffnet sich eine
+neue Geplante Netzmaßnahme, die bereits mit den Inhalten der zuvor ausgewählten
+Netzmaßnahme gespeichert wurde.</p>
+</div>
+<div id="__asciidoctor-preview-6502__" class="paragraph">
+<p>Grundsätzlich sind die Inhalte identisch. Lediglich bei folgenden Felder existieren
+Unterschiede:</p>
+</div>
+<table id="__asciidoctor-preview-6520__" class="tableblock frame-all grid-all spread">
+<caption class="title">Table 8. Feld-Anpassungen beim Duplizieren von Geplanten Netzmaßnahmen</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Feld</th>
+<th class="tableblock halign-left valign-top">Anpassung</th>
+</tr>
+</thead>
+<tfoot>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Statuswechsel-Hisotrie</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Entfernt</p></td>
+</tr>
+</tfoot>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel der Maßnahme</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geändert in "Kopie von &lt;Titel der Maßnahme&gt;""</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nummer (ID)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Neu generiert</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Status</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geändert auf "Neu"</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Angehängte Dateien</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Entfernt</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">E-Mail Verteiler für Status Genehmigt, Storniert und Zurückgewiesen</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geändert auf Standard-Verteiler</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_weitere_funktionen"><a class="anchor" href="#_weitere_funktionen"></a>5.4. Weitere Funktionen</h3>
+<div class="sect3">
+<h4 id="_modul_geplante_netzma_nahme_aus_portal_starten"><a class="anchor" href="#_modul_geplante_netzma_nahme_aus_portal_starten"></a>5.4.1. Modul "Geplante Netzmaßnahme" aus Portal starten</h4>
+<div id="__asciidoctor-preview-6654__" class="paragraph">
+<p>Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Geplante Netzmaßnahme" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Geplante Netzmaßnahme"
+in einem neuen Fenster.</p>
+</div>
+<div id="__asciidoctor-preview-6668__" class="imageblock">
+<div class="content">
+<img src="../images/oeffnen-modul.png" alt="oeffnen modul.png">
+</div>
+<div class="title">Figure 38. Kachel zum Starten des Moduls "Geplante Netzmaßnahme"</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_benutzersperre_aufheben"><a class="anchor" href="#_benutzersperre_aufheben"></a>5.4.2. Benutzersperre aufheben</h4>
+<div id="__asciidoctor-preview-6686__" class="paragraph">
+<p>Sobald ein Benutzer eine Geplante Netzmaßnahme zum Bearbeiten (über das Stift-Symbol)
+öffnet, ist diese Geplante Netznaßnahme für andere Benutzer im Zeitraum der Bearbeitung
+gesperrt. Wenn ein anderer Benutzer nun in diesem Zeitraum die gleiche Geplante
+Netzmaßnahme zum Bearbeiten öffnet, erscheint ein Hinweis. Dieser enthält neben
+dem Namen des anderen Bearbeiters auch die Möglichkeit die Sperre gleich aufzuheben.</p>
+</div>
+<div id="__asciidoctor-preview-6700__" class="imageblock">
+<div class="content">
+<img src="../images/sperrung_aufheben.png" alt="sperrung aufheben.png">
+</div>
+<div class="title">Figure 39. Sperrung durch einen anderen Benutzer aufheben</div>
+</div>
+<div id="__asciidoctor-preview-6706__" class="paragraph">
+<p>Beim Klick auf die Schaltfläche "Sperrung aufheben" wird die Bearbeitung für diese
+Geplante Netzmaßnahme freigeschalten und der Benutzer kann seine Änderungen an der
+geplanten Netzmaßnahme durchführen und speichern.</p>
+</div>
+<div id="__asciidoctor-preview-6712__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Der andere Bearbeiter erhält keinen Hinweis, dass die Sperrung aufgehoben wurde.
+D.h. es muss organisatorisch sichergestellt werden, dass der andere Bearbeiter
+die Geplante Netzmaßnahme nicht im gleichen Zeitraum weiter bearbeitet.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_abmelden"><a class="anchor" href="#_abmelden"></a>5.4.3. Abmelden</h4>
+<div id="__asciidoctor-preview-6726__" class="paragraph">
+<p>Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.</p>
+</div>
+<div id="__asciidoctor-preview-6740__" class="imageblock">
+<div class="content">
+<img src="../images/abmelden.png" alt="abmelden.png">
+</div>
+<div class="title">Figure 40. Abmelden vom openKONSEQUENZ-System</div>
+</div>
+<div id="__asciidoctor-preview-6748__" class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul Geplante
+Netznahme, sondern die Abmeldung vom Portal. D.h. alle parallel geöffneten
+openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Bereitschaftsplanung) werden
+automatisch mit abgemeldet.
+</td>
+</tr>
+</table>
+</div>
+<div id="__asciidoctor-preview-6752__" class="paragraph">
+<p>Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Geplante Netzmaßnahnme zu schließen.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+        </div>
+      </div>
+    </body>
+  </html>
diff --git a/src/main/java/org/eclipse/openk/PlannedGridMeasuresApplication.java b/src/main/java/org/eclipse/openk/PlannedGridMeasuresApplication.java
index edde80b..30c0f8b 100644
--- a/src/main/java/org/eclipse/openk/PlannedGridMeasuresApplication.java
+++ b/src/main/java/org/eclipse/openk/PlannedGridMeasuresApplication.java
@@ -20,6 +20,7 @@
 import org.eclipse.openk.common.util.ResourceLoaderBase;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.InitMailAddressCacheJob;
+import org.eclipse.openk.core.controller.InitRabbitMqSetup;
 import org.eclipse.openk.db.dao.EntityHelper;
 import org.eclipse.openk.health.DBIsPresentHealthCheck;
 import org.eclipse.openk.health.MailConfigurationHealthCheck;
@@ -88,6 +89,9 @@
 
         InitMailAddressCacheJob initMailAddressCacheJob = new InitMailAddressCacheJob();
         initMailAddressCacheJob.init();
+
+        InitRabbitMqSetup initRabbitMqSetup = new InitRabbitMqSetup();
+        initRabbitMqSetup.init();
     }
 
     private BackendSettings getBackendSettings() {
diff --git a/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java b/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
index 80ba2a9..99220e9 100644
--- a/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
+++ b/src/main/java/org/eclipse/openk/PlannedGridMeasuresConfiguration.java
@@ -13,10 +13,110 @@
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.dropwizard.Configuration;
+import org.eclipse.openk.core.controller.MailAddressCache;
 import org.hibernate.validator.constraints.NotEmpty;
 
+import java.util.*;
+
 public class PlannedGridMeasuresConfiguration extends Configuration {
 
+    public static class RabbitmqConfiguration {
+
+        @JsonProperty
+        private String host;
+
+        @JsonProperty
+        private String port;
+
+        @JsonProperty
+        private String user;
+
+        @JsonProperty
+        private String password;
+
+        @JsonProperty
+        private String exchangeName;
+
+        @JsonProperty
+        private boolean autoSetup;
+
+        @JsonProperty
+        private String queueNames;
+
+
+
+        public String getHost() {
+            return host;
+        }
+
+        public void setHost(String host) {
+            this.host = host;
+        }
+
+        public String getPort() {
+            return port;
+        }
+
+        public void setPort(String port) {
+            this.port = port;
+        }
+
+        public String getUser() {
+            return user;
+        }
+
+        public void setUser(String user) {
+            this.user = user;
+        }
+
+        public String getPassword() {
+            return password;
+        }
+
+        public void setPassword(String password) {
+            this.password = password;
+        }
+
+        public String getExchangeName() {
+            return exchangeName;
+        }
+
+        public void setExchangeName(String exchangeName) {
+            this.exchangeName = exchangeName;
+        }
+
+        public boolean isAutoSetup() {
+            return autoSetup;
+        }
+
+        public void setAutoSetup(boolean autoSetup) {
+            this.autoSetup = autoSetup;
+        }
+
+        public String getQueueNames() { return queueNames; }
+
+        public void setQueueNames(String queueNames) { this.queueNames = queueNames; }
+
+        public List<String> getQueueNamesAsList() {
+
+            List<String> singleQueueNameList = new ArrayList<>();
+            Set<String> singleQueueNameUniqueSet = new HashSet<>();
+            List<String> singleQueueNameUniqueList;
+
+            String queueNamesString = getQueueNames();
+            queueNamesString = queueNamesString.replace(";", ",");
+            String[] singleQueueNames = queueNamesString.split(",");
+
+            singleQueueNameList.addAll(Arrays.asList(singleQueueNames));
+            singleQueueNameList.replaceAll(String::trim);
+
+            singleQueueNameUniqueSet.addAll(singleQueueNameList);
+
+            singleQueueNameUniqueList = new ArrayList<>(singleQueueNameUniqueSet);
+            return singleQueueNameUniqueList;
+        }
+    }
+
     public static class EmailConfiguration {
         @JsonProperty
         private String smtpHost;
@@ -112,6 +212,8 @@
 
     private EmailConfiguration emailConfiguration;
 
+    @JsonProperty
+    private RabbitmqConfiguration rabbitmqConfiguration;
 
     @JsonProperty
     public String getPortalBaseURL() { return this.portalBaseURL; }
@@ -162,4 +264,13 @@
     public void setPortalFeLoginURL(String portalFeLoginURL) {
         this.portalFeLoginURL = portalFeLoginURL;
     }
+
+
+    public RabbitmqConfiguration getRabbitmqConfiguration() {
+        return rabbitmqConfiguration;
+    }
+
+    public void setRabbitmqConfiguration(RabbitmqConfiguration rabbitmqConfiguration) {
+        this.rabbitmqConfiguration = rabbitmqConfiguration;
+    }
 }
diff --git a/src/main/java/org/eclipse/openk/api/BackendSettings.java b/src/main/java/org/eclipse/openk/api/BackendSettings.java
index 9337cf2..5a87a32 100644
--- a/src/main/java/org/eclipse/openk/api/BackendSettings.java
+++ b/src/main/java/org/eclipse/openk/api/BackendSettings.java
@@ -78,6 +78,31 @@
     }
   }
 
+  public static class AppointmentRepetition {
+
+    @JsonProperty
+    private Integer id;
+
+    @JsonProperty
+    private String name;
+
+    public Integer getId() {
+      return id;
+    }
+
+    public void setId(Integer id) {
+      this.id = id;
+    }
+
+    public String getName() {
+      return name;
+    }
+
+    public void setName(String name) {
+      this.name = name;
+    }
+  }
+
   @JsonProperty
   private Integer reminderPeriod;
 
@@ -89,6 +114,9 @@
 
   private BpmnGridConfig bpmnGridConfig;
 
+  @JsonProperty
+  private AppointmentRepetition[] appointmentRepetition;
+
   public Integer getReminderPeriod() {
     return reminderPeriod;
   }
@@ -112,4 +140,12 @@
   public String getEmailTemplateAddressesForNotification() { return emailTemplateAddressesForNotification; }
 
   public void setEmailTemplateAddressesForNotification(String emailTemplateAddressesForNotification) { this.emailTemplateAddressesForNotification = emailTemplateAddressesForNotification; }
+
+  public AppointmentRepetition[] getAppointmentRepetition() {
+    return appointmentRepetition;
+  }
+
+  public void setAppointmentRepetition(AppointmentRepetition[] appointmentRepetition) {
+    this.appointmentRepetition = appointmentRepetition;
+  }
 }
diff --git a/src/main/java/org/eclipse/openk/api/Calender.java b/src/main/java/org/eclipse/openk/api/Calender.java
new file mode 100644
index 0000000..9225e67
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/api/Calender.java
@@ -0,0 +1,68 @@
+/**
+ ******************************************************************************
+ * Copyright © 2018 PTA GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ *
+ *     http://www.eclipse.org/legal/epl-v10.html
+ *
+ ******************************************************************************
+ */
+package org.eclipse.openk.api;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Date;
+
+public class Calender {
+
+    @JsonProperty
+    private Integer gridMeasureId;
+
+    @JsonProperty
+    private String gridMeasureTitle;
+
+    @JsonProperty
+    private Integer gridMeasureStatusId;
+
+    @JsonProperty
+    private Integer singleGridMeasureId;
+
+    @JsonProperty
+    private String singleGridMeasureTitle;
+
+    @JsonProperty
+    private Date plannedStarttimSinglemeasure;
+
+    @JsonProperty
+    private Date plannedEndtimeSinglemeasure;
+
+
+    public Integer getGridMeasureId() { return gridMeasureId; }
+
+    public void setGridMeasureId(Integer gridMeasureId) { this.gridMeasureId = gridMeasureId; }
+
+    public Integer getSingleGridMeasureId() { return singleGridMeasureId; }
+
+    public void setSingleGridMeasureId(Integer singleGridMeasureId) { this.singleGridMeasureId = singleGridMeasureId; }
+
+    public String getGridMeasureTitle() { return gridMeasureTitle; }
+
+    public void setGridMeasureTitle(String gridMeasureTitle) { this.gridMeasureTitle = gridMeasureTitle; }
+
+    public Integer getGridMeasureStatusId() { return gridMeasureStatusId; }
+
+    public void setGridMeasureStatusId(Integer gridMeasureStatusId) { this.gridMeasureStatusId = gridMeasureStatusId; }
+
+    public String getSingleGridMeasureTitle() { return singleGridMeasureTitle; }
+
+    public void setSingleGridMeasureTitle(String singleGridMeasureTitle) { this.singleGridMeasureTitle = singleGridMeasureTitle; }
+
+    public Date getPlannedStarttimSinglemeasure() { return plannedStarttimSinglemeasure; }
+
+    public void setPlannedStarttimSinglemeasure(Date plannedStarttimSinglemeasure) { this.plannedStarttimSinglemeasure = plannedStarttimSinglemeasure; }
+
+    public Date getPlannedEndtimeSinglemeasure() { return plannedEndtimeSinglemeasure; }
+
+    public void setPlannedEndtimeSinglemeasure(Date plannedEndtimeSinglemeasure) { this.plannedEndtimeSinglemeasure = plannedEndtimeSinglemeasure; }
+}
diff --git a/src/main/java/org/eclipse/openk/api/FilterObject.java b/src/main/java/org/eclipse/openk/api/FilterObject.java
index f2f1996..d864173 100644
--- a/src/main/java/org/eclipse/openk/api/FilterObject.java
+++ b/src/main/java/org/eclipse/openk/api/FilterObject.java
@@ -13,6 +13,8 @@
 
 public class FilterObject {
 
+    private boolean onlyUsersGMsDesired;
+
     private boolean isClosedStatusActive;
 
     private boolean isCanceledStatusActive;
@@ -32,4 +34,8 @@
     public void setCanceledStatusActive(boolean canceledStatusActive) {
         isCanceledStatusActive = canceledStatusActive;
     }
+
+    public boolean isOnlyUsersGMsDesired() {return onlyUsersGMsDesired; }
+
+    public void setOnlyUsersGMsDesired(boolean onlyUsersGMsDesired) {this.onlyUsersGMsDesired = onlyUsersGMsDesired; }
 }
diff --git a/src/main/java/org/eclipse/openk/api/GmStatus.java b/src/main/java/org/eclipse/openk/api/GmStatus.java
index 7565dff..0e78a89 100644
--- a/src/main/java/org/eclipse/openk/api/GmStatus.java
+++ b/src/main/java/org/eclipse/openk/api/GmStatus.java
@@ -27,6 +27,10 @@
     @MapDbModelField
     private String name;
 
+    @JsonProperty
+    @MapDbModelField
+    private String colorCode;
+
 
     public Integer getId() { return id; }
 
@@ -35,4 +39,8 @@
     public String getName() { return name; }
 
     public void setName(String name) { this.name = name; }
+
+    public String getColorCode() { return colorCode; }
+
+    public void setColorCode(String colorCode) { this.colorCode = colorCode; }
 }
diff --git a/src/main/java/org/eclipse/openk/api/GridMeasure.java b/src/main/java/org/eclipse/openk/api/GridMeasure.java
index fa6e3e0..7d4ac8c 100644
--- a/src/main/java/org/eclipse/openk/api/GridMeasure.java
+++ b/src/main/java/org/eclipse/openk/api/GridMeasure.java
@@ -84,14 +84,6 @@
 
     @JsonProperty
     @MapDbModelField
-    private String responsibleOnSiteName;
-
-    @JsonProperty
-    @MapDbModelField
-    private String responsibleOnSiteDepartment;
-
-    @JsonProperty
-    @MapDbModelField
     private String approvalBy;
 
     @JsonProperty
@@ -112,34 +104,10 @@
 
     @JsonProperty
     @MapDbModelField
-    private Date plannedStarttimeFirstSequence;
-
-    @JsonProperty
-    @MapDbModelField
     private Date plannedStarttimeFirstSinglemeasure;
 
     @JsonProperty
     @MapDbModelField
-    private Date plannedEndtimeLastSinglemeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date plannedEndtimeGridmeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date starttimeFirstSequence;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date starttimeFirstSinglemeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date endtimeLastSinglemeasure;
-
-    @JsonProperty
-    @MapDbModelField
     private Date endtimeGridmeasure;
 
     @JsonProperty
@@ -208,14 +176,6 @@
 
     public void setCostCenter(String costCenter) { this.costCenter = costCenter; }
 
-    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
-
-    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
-
-    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
-
-    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
-
     public String getApprovalBy() { return approvalBy; }
 
     public void setApprovalBy(String approvalBy) { this.approvalBy = approvalBy; }
@@ -236,34 +196,10 @@
 
     public void setAppointmentNumberOf(Integer appointmentNumberOf) { this.appointmentNumberOf = appointmentNumberOf; }
 
-    public Date getPlannedStarttimeFirstSequence() { return plannedStarttimeFirstSequence; }
-
-    public void setPlannedStarttimeFirstSequence(Date plannedStarttimeFirstSequence) { this.plannedStarttimeFirstSequence = plannedStarttimeFirstSequence; }
-
     public Date getPlannedStarttimeFirstSinglemeasure() { return plannedStarttimeFirstSinglemeasure; }
 
     public void setPlannedStarttimeFirstSinglemeasure(Date plannedStarttimeFirstSinglemeasure) { this.plannedStarttimeFirstSinglemeasure = plannedStarttimeFirstSinglemeasure; }
 
-    public Date getPlannedEndtimeLastSinglemeasure() { return plannedEndtimeLastSinglemeasure; }
-
-    public void setPlannedEndtimeLastSinglemeasure(Date plannedEndtimeFirstSinglemeasure) { this.plannedEndtimeLastSinglemeasure = plannedEndtimeFirstSinglemeasure; }
-
-    public Date getPlannedEndtimeGridmeasure() { return plannedEndtimeGridmeasure; }
-
-    public void setPlannedEndtimeGridmeasure(Date plannedEndtimeGridmeasure) { this.plannedEndtimeGridmeasure = plannedEndtimeGridmeasure; }
-
-    public Date getStarttimeFirstSequence() { return starttimeFirstSequence; }
-
-    public void setStarttimeFirstSequence(Date starttimeFirstSequence) { this.starttimeFirstSequence = starttimeFirstSequence; }
-
-    public Date getStarttimeFirstSinglemeasure() { return starttimeFirstSinglemeasure; }
-
-    public void setStarttimeFirstSinglemeasure(Date starttimeFirstSinglemeasure) { this.starttimeFirstSinglemeasure = starttimeFirstSinglemeasure; }
-
-    public Date getEndtimeLastSinglemeasure() { return endtimeLastSinglemeasure; }
-
-    public void setEndtimeLastSinglemeasure(Date endtimeFirstSinglemeasure) { this.endtimeLastSinglemeasure = endtimeFirstSinglemeasure; }
-
     public Date getEndtimeGridmeasure() { return endtimeGridmeasure; }
 
     public void setEndtimeGridmeasure(Date endtimeGridmeasure) { this.endtimeGridmeasure = endtimeGridmeasure; }
diff --git a/src/main/java/org/eclipse/openk/api/HGridMeasure.java b/src/main/java/org/eclipse/openk/api/HGridMeasure.java
index 5b291db..084bf3b 100644
--- a/src/main/java/org/eclipse/openk/api/HGridMeasure.java
+++ b/src/main/java/org/eclipse/openk/api/HGridMeasure.java
@@ -96,14 +96,6 @@
 
     @JsonProperty
     @MapDbModelField
-    private String responsibleOnSiteName;
-
-    @JsonProperty
-    @MapDbModelField
-    private String responsibleOnSiteDepartment;
-
-    @JsonProperty
-    @MapDbModelField
     private String approvalBy;
 
     @JsonProperty
@@ -124,31 +116,8 @@
 
     @JsonProperty
     @MapDbModelField
-    private Date plannedStarttimeFirstSequence;
-
-    @JsonProperty
-    @MapDbModelField
     private Date plannedStarttimeFirstSinglemeasure;
 
-    @JsonProperty
-    @MapDbModelField
-    private Date plannedEndtimeLastSinglemeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date plannedEndtimeGridmeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date starttimeFirstSequence;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date starttimeFirstSinglemeasure;
-
-    @JsonProperty
-    @MapDbModelField
-    private Date endtimeLastSinglemeasure;
 
     @JsonProperty
     @MapDbModelField
@@ -248,14 +217,6 @@
 
     public void setCostCenter(String costCenter) { this.costCenter = costCenter; }
 
-    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
-
-    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
-
-    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
-
-    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
-
     public String getApprovalBy() { return approvalBy; }
 
     public void setApprovalBy(String approvalBy) { this.approvalBy = approvalBy; }
@@ -276,34 +237,10 @@
 
     public void setAppointmentNumberOf(Integer appointmentNumberOf) { this.appointmentNumberOf = appointmentNumberOf; }
 
-    public Date getPlannedStarttimeFirstSequence() { return plannedStarttimeFirstSequence; }
-
-    public void setPlannedStarttimeFirstSequence(Date plannedStarttimeFirstSequence) { this.plannedStarttimeFirstSequence = plannedStarttimeFirstSequence; }
-
     public Date getPlannedStarttimeFirstSinglemeasure() { return plannedStarttimeFirstSinglemeasure; }
 
     public void setPlannedStarttimeFirstSinglemeasure(Date plannedStarttimeFirstSinglemeasure) { this.plannedStarttimeFirstSinglemeasure = plannedStarttimeFirstSinglemeasure; }
 
-    public Date getPlannedEndtimeLastSinglemeasure() { return plannedEndtimeLastSinglemeasure; }
-
-    public void setPlannedEndtimeLastSinglemeasure(Date plannedEndtimeFirstSinglemeasure) { this.plannedEndtimeLastSinglemeasure = plannedEndtimeFirstSinglemeasure; }
-
-    public Date getPlannedEndtimeGridmeasure() { return plannedEndtimeGridmeasure; }
-
-    public void setPlannedEndtimeGridmeasure(Date plannedEndtimeGridmeasure) { this.plannedEndtimeGridmeasure = plannedEndtimeGridmeasure; }
-
-    public Date getStarttimeFirstSequence() { return starttimeFirstSequence; }
-
-    public void setStarttimeFirstSequence(Date starttimeFirstSequence) { this.starttimeFirstSequence = starttimeFirstSequence; }
-
-    public Date getStarttimeFirstSinglemeasure() { return starttimeFirstSinglemeasure; }
-
-    public void setStarttimeFirstSinglemeasure(Date starttimeFirstSinglemeasure) { this.starttimeFirstSinglemeasure = starttimeFirstSinglemeasure; }
-
-    public Date getEndtimeLastSinglemeasure() { return endtimeLastSinglemeasure; }
-
-    public void setEndtimeLastSinglemeasure(Date endtimeFirstSinglemeasure) { this.endtimeLastSinglemeasure = endtimeFirstSinglemeasure; }
-
     public Date getEndtimeGridmeasure() { return endtimeGridmeasure; }
 
     public void setEndtimeGridmeasure(Date endtimeGridmeasure) { this.endtimeGridmeasure = endtimeGridmeasure; }
diff --git a/src/main/java/org/eclipse/openk/api/SingleGridmeasure.java b/src/main/java/org/eclipse/openk/api/SingleGridmeasure.java
index e4f457e..654546e 100644
--- a/src/main/java/org/eclipse/openk/api/SingleGridmeasure.java
+++ b/src/main/java/org/eclipse/openk/api/SingleGridmeasure.java
@@ -54,6 +54,18 @@
     private String description;
 
     @JsonProperty
+    @MapDbModelField
+    private String responsibleOnSiteName;
+
+    @JsonProperty
+    @MapDbModelField
+    private String responsibleOnSiteDepartment;
+
+    @JsonProperty
+    @MapDbModelField
+    private String networkControl;
+
+    @JsonProperty
     @MapDbModelField( fieldName = "fkTblGridmeasure")
     private Integer gridmeasureId;
 
@@ -93,6 +105,18 @@
 
     public void setDescription(String dscription) { this.description = dscription; }
 
+    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
+
+    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
+
+    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
+
+    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
+
+    public String getNetworkControl() { return networkControl; }
+
+    public void setNetworkControl(String networkControl) { this.networkControl = networkControl; }
+
     public Integer getGridmeasureId() { return gridmeasureId; }
 
     public void setGridmeasureId(Integer gridmeasureId) { this.gridmeasureId = gridmeasureId; }
diff --git a/src/main/java/org/eclipse/openk/api/Steps.java b/src/main/java/org/eclipse/openk/api/Steps.java
index ffe3131..26f71dc 100644
--- a/src/main/java/org/eclipse/openk/api/Steps.java
+++ b/src/main/java/org/eclipse/openk/api/Steps.java
@@ -16,6 +16,8 @@
 import org.eclipse.openk.common.mapper.generic.annotations.MapDbModelField;
 import org.eclipse.openk.db.model.TblSteps;
 
+import java.util.Date;
+
 @MapDbModelClass(classType = TblSteps.class)
 public class Steps {
 
@@ -33,9 +35,25 @@
 
     @JsonProperty
     @MapDbModelField
+    private String type;
+
+    @JsonProperty
+    @MapDbModelField
+    private String presentTime;
+
+    @JsonProperty
+    @MapDbModelField
+    private String presentState;
+
+    @JsonProperty
+    @MapDbModelField
     private String targetState;
 
     @JsonProperty
+    @MapDbModelField
+    private String operator;
+
+    @JsonProperty
     @MapDbModelField( fieldName = "fkTblSingleGridmeasure")
     private Integer singleGridmeasureId;
 
@@ -56,6 +74,22 @@
 
     public void setSwitchingObject(String switchingObject) { this.switchingObject = switchingObject; }
 
+    public String getType() { return type; }
+
+    public void setType(String type) { this.type = type; }
+
+    public String getPresentTime() { return presentTime; }
+
+    public void setPresentTime(String presentTime) { this.presentTime = presentTime; }
+
+    public String getPresentState() { return presentState; }
+
+    public void setPresentState(String presentState) { this.presentState = presentState; }
+
+    public String getOperator() { return operator; }
+
+    public void setOperator(String operator) { this.operator = operator; }
+
     public String getTargetState() {
         return targetState;
     }
diff --git a/src/main/java/org/eclipse/openk/api/UserDepartment.java b/src/main/java/org/eclipse/openk/api/Territory.java
similarity index 74%
rename from src/main/java/org/eclipse/openk/api/UserDepartment.java
rename to src/main/java/org/eclipse/openk/api/Territory.java
index 1e9d21b..6c96785 100644
--- a/src/main/java/org/eclipse/openk/api/UserDepartment.java
+++ b/src/main/java/org/eclipse/openk/api/Territory.java
@@ -14,10 +14,10 @@
 import com.fasterxml.jackson.annotation.JsonProperty;
 import org.eclipse.openk.common.mapper.generic.annotations.MapDbModelClass;
 import org.eclipse.openk.common.mapper.generic.annotations.MapDbModelField;
-import org.eclipse.openk.db.model.RefUserDepartment;
+import org.eclipse.openk.db.model.RefTerritory;
 
-@MapDbModelClass(classType = RefUserDepartment.class)
-public class UserDepartment {
+@MapDbModelClass(classType = RefTerritory.class)
+public class Territory {
 
     @JsonProperty
     @MapDbModelField
@@ -27,6 +27,10 @@
     @MapDbModelField
     private String name;
 
+    @JsonProperty
+    @MapDbModelField
+    private String description;
+
     public Integer getId() { return id; }
 
     public void setId(Integer id) { this.id = id; }
@@ -35,4 +39,8 @@
 
     public void setName(String name) { this.name = name; }
 
-}
\ No newline at end of file
+    public String getDescription() { return description; }
+
+    public void setDescription(String description) { this.description = description; }
+
+}
diff --git a/src/main/java/org/eclipse/openk/common/Globals.java b/src/main/java/org/eclipse/openk/common/Globals.java
index b689f9d..b1676b0 100644
--- a/src/main/java/org/eclipse/openk/common/Globals.java
+++ b/src/main/java/org/eclipse/openk/common/Globals.java
@@ -11,6 +11,9 @@
 */
 package org.eclipse.openk.common;
 
+import java.util.Arrays;
+import java.util.List;
+
 public final class Globals {
 
     public static final String HEADER_JSON_UTF8 = "application/json; charset=utf-8";
diff --git a/src/main/java/org/eclipse/openk/common/util/DateUtils.java b/src/main/java/org/eclipse/openk/common/util/DateUtils.java
index 8b067ba..91f1ecd 100644
--- a/src/main/java/org/eclipse/openk/common/util/DateUtils.java
+++ b/src/main/java/org/eclipse/openk/common/util/DateUtils.java
@@ -12,19 +12,25 @@
 
 package org.eclipse.openk.common.util;
 
+import org.apache.log4j.Logger;
+import org.eclipse.openk.common.Globals;
+
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.Instant;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.util.Date;
 import java.util.Locale;
-import org.apache.log4j.Logger;
-import org.eclipse.openk.common.Globals;
 
 public class DateUtils {
 
+  private DateUtils(){
+
+  };
+
   public static final Logger LOGGER = Logger.getLogger(DateUtils.class.getName());
 
   private static final String DATEFORMAT = "yyyy-MM-dd'T'HH:mm:ss";
@@ -55,4 +61,8 @@
     return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.of(Globals.DATE_ZONE_ID_EUROPE)).toLocalDate();
   }
 
+  public static LocalDateTime asLocalDateTime(Date date) {
+    return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.of(Globals.DATE_ZONE_ID_EUROPE)).toLocalDateTime();
+  }
+
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/base/tasks/ServiceTask.java b/src/main/java/org/eclipse/openk/core/bpmn/base/tasks/ServiceTask.java
index e47dfb9..e60ac37 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/base/tasks/ServiceTask.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/base/tasks/ServiceTask.java
@@ -11,10 +11,23 @@
 */
 package org.eclipse.openk.core.bpmn.base.tasks;
 
+import com.rabbitmq.client.BuiltinExchangeType;
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
 import org.apache.log4j.Logger;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.common.Globals;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.ProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
+import org.eclipse.openk.core.messagebroker.Producer;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeoutException;
 
 public abstract class ServiceTask <T extends ProcessSubject> extends BaseTask<T> {
     private static final Logger logger = Logger.getLogger(ServiceTask.class.getName());
@@ -38,4 +51,35 @@
         enterStep( model );
     }
 
+    public Producer createMessageQueueProducer() throws ProcessException {
+        return new Producer();
+    }
+
+    public void createMessageQueue(String queueName) throws ProcessException {
+
+        logger.debug("createMessageQueue called");
+        PlannedGridMeasuresConfiguration.RabbitmqConfiguration rabbitmqConfiguration = BackendConfig.getInstance().getRabbitmqConfiguration();
+        Map<String, Object> args = new HashMap<>();
+        args.put("x-queue-mode", "lazy");
+
+        ConnectionFactory factory = createRabbitFactory(rabbitmqConfiguration);
+        try (Connection connection = factory.newConnection();
+             Channel channel = connection.createChannel()) {
+            channel.queueDeclare(queueName, true, false, false, args);
+            String routingKey = queueName.split("-")[1];
+            channel.queueBind(queueName, rabbitmqConfiguration.getExchangeName(), routingKey);
+        } catch (TimeoutException | IOException e) {
+            logger.error("Error in createMessageQueue", e);
+        }
+    }
+
+
+    private static ConnectionFactory createRabbitFactory(PlannedGridMeasuresConfiguration.RabbitmqConfiguration rabbitmqConfiguration) {
+        ConnectionFactory factory = new ConnectionFactory();
+        factory.setHost(rabbitmqConfiguration.getHost());
+        factory.setPassword(rabbitmqConfiguration.getPassword());
+        factory.setUsername(rabbitmqConfiguration.getUser());
+        factory.setPort(Integer.parseInt(rabbitmqConfiguration.getPort()));
+        return factory;
+    }
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/PlgmGrid.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/PlgmGrid.java
index 6b6c34d..0ace804 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/PlgmGrid.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/PlgmGrid.java
@@ -11,20 +11,57 @@
 */
 package org.eclipse.openk.core.bpmn.gridmeasure;
 
+import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.END_AFTER_APPROVED;
+import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.END_AFTER_RELEASED;
+import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.SKIP_FOR_APPROVAL;
+import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.SKIP_IN_WORK;
+import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.SKIP_REQUESTING;
+import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.NO;
+import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.PORT1;
+import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.PORT2;
+import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.PORT3;
+import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.YES;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.ACTIVE;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.APPLIED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.APPROVED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.CLOSED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.FINISHED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.FOR_APPROVAL;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.IN_WORK;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.NEW;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.RELEASED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.REQUESTED;
+import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.WORK_FINISHED;
+
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.ProcessGrid;
 import org.eclipse.openk.core.bpmn.base.ProcessTask;
 import org.eclipse.openk.core.bpmn.base.tasks.DecisionTask;
 import org.eclipse.openk.core.bpmn.base.tasks.EndPointTask;
-import org.eclipse.openk.core.bpmn.gridmeasure.tasks.*;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ConfigDecisionTask;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideAnotherSinglemeasure;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideMeasureApplied;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideMeasureApproved;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideMeasureNotNeededOrRequested;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideMeasurePossible;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.DecideMeasureReleased;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.MeasureNew;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceImportData;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureAppliedMessageQ;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureApproved;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureCanceled;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureClosed;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureFinished;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureForApproval;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureRejected;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureReleased;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.ServiceMeasureRequested;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.StoreStatusServiceTask;
+import org.eclipse.openk.core.bpmn.gridmeasure.tasks.UIStoreMeasureTask;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
 
-import static org.eclipse.openk.api.BackendSettings.BpmnGridConfig.*;
-import static org.eclipse.openk.core.bpmn.base.tasks.DecisionTask.OutputPort.*;
-import static org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState.*;
-
 public class PlgmGrid extends ProcessGrid {
     private static Logger logger = Logger.getLogger(PlgmGrid.class);
     public PlgmGrid() {
@@ -45,14 +82,14 @@
 
             ProcessTask measureNew = register(NEW, new MeasureNew());
             DecisionTask decideApplied = new DecideMeasureApplied();
-            ProcessTask sendMailOnApplied = new ServiceMeasureSendMail(BackendConfig.getInstance().getEmailTemplatePaths().getAppliedEmailTemplate());
+            ProcessTask sendToMessageQOnApplied = new ServiceMeasureAppliedMessageQ(BackendConfig.getInstance().getEmailTemplatePaths().getAppliedEmailTemplate());
             ProcessTask measureApplied = register(APPLIED,
                     new UIStoreMeasureTask("State APPLIED UI Task", true));
             DecisionTask decideMeasurePossible = new DecideMeasurePossible();
             ProcessTask sendMailForApproval = new ServiceMeasureForApproval();
             DecisionTask decideSkipApproval = new ConfigDecisionTask(SKIP_FOR_APPROVAL);
             ProcessTask setMeasureToApproved = new StoreStatusServiceTask(APPROVED);
-            ProcessTask sendMailOnCancelled = new ServiceMeasureCanceled();
+            ProcessTask sendMailOnCanceledAndMessageQ = new ServiceMeasureCanceled();
             DecisionTask decideEndAfterApproval = new ConfigDecisionTask(END_AFTER_APPROVED);
             DecisionTask decideSkipRequesting = new ConfigDecisionTask(SKIP_REQUESTING);
             ProcessTask setMeasureToActive = new StoreStatusServiceTask(ACTIVE);
@@ -60,16 +97,16 @@
                     new UIStoreMeasureTask("State FOR_APPROVAL UI Task", true));
             DecisionTask decideApproved = new DecideMeasureApproved();
             ProcessTask setMeasureToApplied = new StoreStatusServiceTask(APPLIED);
-            ProcessTask sendMailApproved = new ServiceMeasureApproved();
-            ProcessTask sendMailRejected = new ServiceMeasureRejected();
+            ProcessTask sendMailApprovedAndMessageQ = new ServiceMeasureApproved();
+            ProcessTask sendMailRejectedAndMessageQ = new ServiceMeasureRejected();
             ProcessTask measureApproved = register(APPROVED,
                 new UIStoreMeasureTask("State APPROVED UI Task", true));
             DecisionTask decideMeasureRequested = new DecideMeasureNotNeededOrRequested();
-            ProcessTask sendMailRequested = new ServiceMeasureRequested();
+            ProcessTask sendToMessageQueueRequested = new ServiceMeasureRequested();
             ProcessTask measureRequested = register(REQUESTED,
                 new UIStoreMeasureTask("State REQUESTED UI Task", true));
             DecisionTask decideReleased = new DecideMeasureReleased();
-            ProcessTask sendMailReleased = new ServiceMeasureReleased();
+            ProcessTask sendMailReleasedAndMessageQ = new ServiceMeasureReleased();
             ProcessTask measureReleased = register(RELEASED,
                     new UIStoreMeasureTask("State RELEASED UI Task", true));
             DecisionTask decideEndAfterReleasedTask = new ConfigDecisionTask(END_AFTER_RELEASED);
@@ -89,52 +126,52 @@
             ProcessTask importData3 = new ServiceImportData();
             ProcessTask importData4 = new ServiceImportData();
             DecisionTask decideAnotherSinglemeasure = new DecideAnotherSinglemeasure();
-            ProcessTask sendMailFinished = new ServiceMeasureFinished();
-            ProcessTask sendMailClosed = new ServiceMeasureClosed();
+            ProcessTask sendMailFinishedAndMessageQ = new ServiceMeasureFinished();
+            ProcessTask sendMailClosedAndMessageQ = new ServiceMeasureClosed();
             EndPointTask endPoint = new EndPointTask("PLGM Endpoint");
 
             // Connect
             measureNew.connectOutputTo(decideApplied);
-            decideApplied.connectOutputTo(PORT1, sendMailOnApplied);
+            decideApplied.connectOutputTo(PORT1, sendToMessageQOnApplied);
             decideApplied.connectOutputTo(PORT2, measureNew);
-            decideApplied.connectOutputTo(PORT3, sendMailOnCancelled);
-            sendMailOnCancelled.connectOutputTo(endPoint);
-            sendMailOnApplied.connectOutputTo(measureApplied);
+            decideApplied.connectOutputTo(PORT3, sendMailOnCanceledAndMessageQ);
+            sendMailOnCanceledAndMessageQ.connectOutputTo(endPoint);
+            sendToMessageQOnApplied.connectOutputTo(measureApplied);
             measureApplied.connectOutputTo(decideMeasurePossible);
             decideMeasurePossible.connectOutputTo(YES, sendMailForApproval);
-            decideMeasurePossible.connectOutputTo(NO, sendMailOnCancelled);
-            sendMailOnCancelled.connectOutputTo(endPoint);
+            decideMeasurePossible.connectOutputTo(NO, sendMailOnCanceledAndMessageQ);
+            sendMailOnCanceledAndMessageQ.connectOutputTo(endPoint);
             sendMailForApproval.connectOutputTo(decideSkipApproval);
             decideSkipApproval.connectOutputTo(YES, setMeasureToApproved );
             decideSkipApproval.connectOutputTo(NO, measureForApproval);
             setMeasureToApproved.connectOutputTo(measureApproved);
             measureForApproval.connectOutputTo(decideApproved);
-            decideApproved.connectOutputTo(PORT1, sendMailApproved);
-            decideApproved.connectOutputTo(PORT2, sendMailOnCancelled);
+            decideApproved.connectOutputTo(PORT1, sendMailApprovedAndMessageQ);
+            decideApproved.connectOutputTo(PORT2, sendMailOnCanceledAndMessageQ);
             decideApproved.connectOutputTo(PORT3, setMeasureToApplied);
-            sendMailApproved.connectOutputTo(measureApproved);
-            setMeasureToApplied.connectOutputTo(sendMailRejected);
-            sendMailRejected.connectOutputTo(measureApplied);
+            sendMailApprovedAndMessageQ.connectOutputTo(measureApproved);
+            setMeasureToApplied.connectOutputTo(sendMailRejectedAndMessageQ);
+            sendMailRejectedAndMessageQ.connectOutputTo(measureApplied);
             measureApproved.connectOutputTo(decideEndAfterApproval);
             decideEndAfterApproval.connectOutputTo(NO, decideSkipRequesting);
             decideEndAfterApproval.connectOutputTo(YES, setMeasureToClosed);
             decideSkipRequesting.connectOutputTo(NO, decideMeasureRequested);
             decideSkipRequesting.connectOutputTo(YES, setMeasureToActive);
-            decideMeasureRequested.connectOutputTo(YES, sendMailOnCancelled);
-            decideMeasureRequested.connectOutputTo(NO, sendMailRequested);
-            sendMailRequested.connectOutputTo(measureRequested);
+            decideMeasureRequested.connectOutputTo(YES, sendMailOnCanceledAndMessageQ);
+            decideMeasureRequested.connectOutputTo(NO, sendToMessageQueueRequested);
+            sendToMessageQueueRequested.connectOutputTo(measureRequested);
             measureRequested.connectOutputTo(decideReleased);
-            decideReleased.connectOutputTo(PORT1, sendMailReleased);
+            decideReleased.connectOutputTo(PORT1, sendMailReleasedAndMessageQ);
             decideReleased.connectOutputTo(PORT2, setMeasureToApplied);
-            decideReleased.connectOutputTo(DecisionTask.OutputPort.PORT3, sendMailOnCancelled);
-            sendMailReleased.connectOutputTo(measureReleased);
-            setMeasureToApplied.connectOutputTo(sendMailRejected);
-            sendMailRejected.connectOutputTo(measureApplied);
+            decideReleased.connectOutputTo(DecisionTask.OutputPort.PORT3, sendMailOnCanceledAndMessageQ);
+            sendMailReleasedAndMessageQ.connectOutputTo(measureReleased);
+            setMeasureToApplied.connectOutputTo(sendMailRejectedAndMessageQ);
+            sendMailRejectedAndMessageQ.connectOutputTo(measureApplied);
             setMeasureToActive.connectOutputTo(decideEndAfterReleasedTask);
             measureReleased.connectOutputTo(decideEndAfterReleasedTask);
             decideEndAfterReleasedTask.connectOutputTo(NO, importData1);
             decideEndAfterReleasedTask.connectOutputTo(YES, setMeasureToClosed);
-            setMeasureToClosed.connectOutputTo(sendMailClosed);
+            setMeasureToClosed.connectOutputTo(sendMailClosedAndMessageQ);
             importData1.connectOutputTo(measureActive);
             measureActive.connectOutputTo(decideSkipInWorkTask);
             decideSkipInWorkTask.connectOutputTo(NO, importData2);
@@ -142,14 +179,14 @@
             importData2.connectOutputTo(measureInWork);
             measureInWork.connectOutputTo(importData3);
             importData3.connectOutputTo(measureWorkFinished);
-            setMeasureToFinishedTask.connectOutputTo(sendMailFinished);
+            setMeasureToFinishedTask.connectOutputTo(sendMailFinishedAndMessageQ);
             measureWorkFinished.connectOutputTo(importData4);
             importData4.connectOutputTo(decideAnotherSinglemeasure);
             decideAnotherSinglemeasure.connectOutputTo(YES, measureApproved);
-            decideAnotherSinglemeasure.connectOutputTo(NO, sendMailFinished);
-            sendMailFinished.connectOutputTo(measureFinished);
-            measureFinished.connectOutputTo(sendMailClosed);
-            sendMailClosed.connectOutputTo(endPoint);
+            decideAnotherSinglemeasure.connectOutputTo(NO, sendMailFinishedAndMessageQ);
+            sendMailFinishedAndMessageQ.connectOutputTo(measureFinished);
+            measureFinished.connectOutputTo(sendMailClosedAndMessageQ);
+            sendMailClosedAndMessageQ.connectOutputTo(endPoint);
     }
 
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/DecideAnotherSinglemeasure.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/DecideAnotherSinglemeasure.java
index 483d8d3..97d03b8 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/DecideAnotherSinglemeasure.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/DecideAnotherSinglemeasure.java
@@ -13,9 +13,7 @@
 
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
-import org.eclipse.openk.core.bpmn.base.ProcessState;
 import org.eclipse.openk.core.bpmn.base.tasks.DecisionTask;
-import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMail.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQ.java
similarity index 60%
rename from src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMail.java
rename to src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQ.java
index a7e2ba1..f823a6b 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMail.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQ.java
@@ -11,22 +11,22 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
-public class ServiceMeasureSendMail extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureSendMail.class.getName());
+public class ServiceMeasureAppliedMessageQ extends ServiceTask<PlgmProcessSubject> {
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureAppliedMessageQ.class.getName());
 
     private String emailTemplatePath;
 
-    public ServiceMeasureSendMail(String emailTemplatePath) {
+    public ServiceMeasureAppliedMessageQ(String emailTemplatePath) {
         super("Service task 'send mail'");
         this.emailTemplatePath = emailTemplatePath;
     }
@@ -38,11 +38,21 @@
             EmailManager emailManager = new PgmEmail(model, emailTemplatePath, false);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureSendMail onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureAppliedMessageQ onLeaveStep", e);
             throw new ProcessException("Error in ServiceMeasureApplied onLeaveStep (EmailManager)");
         }
 
-        logger.debug(">>execute: Send Mail on 'beantragt'");
+        LOGGER.debug(">>execute: Send Mail on 'beantragt'");
+
+        createMessageQueue("pgm-applied-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "applied");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApproved.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApproved.java
index 4e60a70..c3c0d77 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApproved.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApproved.java
@@ -11,6 +11,7 @@
 */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -19,12 +20,11 @@
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
 public class ServiceMeasureApproved extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureApproved.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureApproved.class.getName());
 
     public ServiceMeasureApproved() {
         super("Service task 'genehmigt'");
@@ -39,10 +39,20 @@
             EmailManager emailManager = new PgmEmail(model, template, true);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureApproved onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureApproved onLeaveStep", e);
             throw new ProcessException("Error in ServiceMeasureApproved onLeaveStep (EmailManager)");
         }
-        logger.debug(">>execute: Send Mail on 'genehmigt'");
+        LOGGER.debug(">>execute: Send Mail on 'genehmigt'");
+
+        createMessageQueue("pgm-approved-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "approved");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureApproved onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureApproved onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceled.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceled.java
index 48f41f6..c1fd4e7 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceled.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceled.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -19,12 +20,11 @@
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
 public class ServiceMeasureCanceled extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureApproved.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureApproved.class.getName());
 
     public ServiceMeasureCanceled() {
         super("Service task 'storniert'");
@@ -39,10 +39,21 @@
             EmailManager emailManager = new PgmEmail(model, template, true);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureCanceled onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureCanceled onLeaveStep (EmailManager)", e);
             throw new ProcessException("Error in ServiceMeasureCanceled onLeaveStep (EmailManager)");
         }
-        logger.debug(">>execute: Send Mail on 'storniert'");
+        LOGGER.debug(">>execute: Send Mail on 'storniert'");
+
+        createMessageQueue("pgm-canceled-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "canceled");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
+
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosed.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosed.java
index 84c3dbe..0aef8f3 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosed.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosed.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
@@ -18,12 +19,11 @@
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
 public class ServiceMeasureClosed extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureClosed.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureClosed.class.getName());
 
     public ServiceMeasureClosed() {
         super("Service task 'geschlossen'");
@@ -36,11 +36,20 @@
             EmailManager emailManager = new PgmEmail(model, BackendConfig.getInstance().getEmailTemplatePaths().getClosedEmailTemplate(), false);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureClosed onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureClosed onLeaveStep", e);
             throw new ProcessException("Error in ServiceMeasureClosed onLeaveStep (EmailManager)");
         }
+        LOGGER.debug(">>execute: Send Mail on 'closed'");
 
-        logger.debug(">>execute: Send Mail on 'closed'");
+        createMessageQueue("pgm-closed-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "closed");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureClosed onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureClosed onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinished.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinished.java
index a251834..46b6d89 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinished.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinished.java
@@ -11,20 +11,43 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailManager;
+import org.eclipse.openk.core.controller.PgmEmail;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 public class ServiceMeasureFinished extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureFinished.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureFinished.class.getName());
     public ServiceMeasureFinished() {
         super("Service task 'Beendet'");
     }
 
     @Override
     protected void onLeaveStep(PlgmProcessSubject model) throws ProcessException {
-        logger.debug(">>execute: Send Mail on 'Beendet'");
+        try {
+            EmailManager emailManager = new PgmEmail(model, BackendConfig.getInstance().getEmailTemplatePaths().getFinishedEmailTemplate(), false);
+            emailManager.sendEmail();
+        } catch (MessagingException e) {
+            LOGGER.error("Error in ServiceMeasureFinished onLeaveStep", e);
+            throw new ProcessException("Error in ServiceMeasureFinished onLeaveStep (EmailManager)");
+        }
+        LOGGER.debug(">>execute: Send Mail on 'Beendet'");
+
+        createMessageQueue("pgm-finished-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "finished");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureFinished onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureFinished onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
+
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApproval.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApproval.java
index a40074d..17600ac 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApproval.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApproval.java
@@ -15,6 +15,7 @@
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 public class ServiceMeasureForApproval extends ServiceTask<PlgmProcessSubject> {
     private static final Logger logger= Logger.getLogger(ServiceMeasureForApproval.class.getName());
@@ -25,6 +26,15 @@
 
     @Override
     protected void onLeaveStep(PlgmProcessSubject model) throws ProcessException {
-        logger.debug(">>execute: Send Mail on 'zur Genehmigung'");
+
+        createMessageQueue("pgm-forapproval-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "forapproval");
+        } catch (Exception e) {
+            logger.error("Error in ServiceMeasureForApproval onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureForApproval onLeaveStep (RabbitMQ)");
+        }
+        logger.debug(">>execute: basicPublish RabbitMQ");
     }
 }
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejected.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejected.java
index b90df78..a0c0b05 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejected.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejected.java
@@ -11,21 +11,47 @@
 */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
-import org.eclipse.openk.core.bpmn.base.ProcessSubject;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailManager;
+import org.eclipse.openk.core.controller.PgmEmail;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
-public class ServiceMeasureRejected extends ServiceTask {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureRejected.class.getName());
+public class ServiceMeasureRejected extends ServiceTask<PlgmProcessSubject> {
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureRejected.class.getName());
     public ServiceMeasureRejected() {
         super("Service task 'zurückgewiesen'");
     }
 
     @Override
-    protected void onLeaveStep(ProcessSubject model) throws ProcessException {
-        logger.debug(">>execute: Send Mail on 'zurückgewiesen'");
+    protected void onLeaveStep(PlgmProcessSubject model) throws ProcessException {
+
+        try {
+            EmailTemplatePaths paths = BackendConfig.getInstance().getEmailTemplatePaths();
+            String template = paths.getRejectedEmailTemplate();
+            EmailManager emailManager = new PgmEmail(model, template, true);
+            emailManager.sendEmail();
+        } catch (MessagingException e) {
+            LOGGER.error("Error in ServiceMeasureRejected onLeaveStep (EmailManager)", e);
+            throw new ProcessException("Error in ServiceMeasureRejected onLeaveStep (EmailManager)");
+        }
+        LOGGER.debug(">>execute: Send Mail on 'zurückgewiesen'");
+
+        createMessageQueue("pgm-rejected-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "rejected");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureCanceled onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleased.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleased.java
index df7eb43..6dffcd0 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleased.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleased.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
@@ -18,12 +19,11 @@
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 
 public class ServiceMeasureReleased extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureApplied.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureApplied.class.getName());
 
     public ServiceMeasureReleased() {
         super("Service task 'freigegeben'");
@@ -36,11 +36,20 @@
             EmailManager emailManager = new PgmEmail(model, BackendConfig.getInstance().getEmailTemplatePaths().getReleasedEmailTemplate(), false);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureReleased onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureReleased onLeaveStep", e);
             throw new ProcessException("Error in ServiceMeasureReleased onLeaveStep (EmailManager)");
         }
+        LOGGER.debug(">>execute: Send Mail on 'freigegeben'");
 
-        logger.debug(">>execute: Send Mail on 'freigegeben'");
+        createMessageQueue("pgm-released-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "released");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureReleased onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureReleased onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequested.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequested.java
index 9f1fd69..b2a15cd 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequested.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequested.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import javax.mail.MessagingException;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.ServiceTask;
@@ -18,11 +19,10 @@
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailManager;
 import org.eclipse.openk.core.controller.PgmEmail;
-
-import javax.mail.MessagingException;
+import org.eclipse.openk.core.messagebroker.Producer;
 
 public class ServiceMeasureRequested extends ServiceTask<PlgmProcessSubject> {
-    private static final Logger logger= Logger.getLogger(ServiceMeasureForApproval.class.getName());
+    private static final Logger LOGGER = Logger.getLogger(ServiceMeasureForApproval.class.getName());
     public ServiceMeasureRequested() {
         super("Service task 'Angefordert'");
     }
@@ -35,11 +35,20 @@
             EmailManager emailManager = new PgmEmail(model, BackendConfig.getInstance().getEmailTemplatePaths().getRequestedEmailTemplate(), false);
             emailManager.sendEmail();
         } catch (MessagingException e) {
-            logger.error("Error in ServiceMeasureRequested onLeaveStep", e);
+            LOGGER.error("Error in ServiceMeasureRequested onLeaveStep", e);
             throw new ProcessException("Error in ServiceMeasureRequested onLeaveStep (EmailManager)");
         }
+        LOGGER.debug(">>execute: Send Mail on 'Angefordert'");
 
-        logger.debug(">>execute: Send Mail on 'Angefordert'");
+        createMessageQueue("pgm-requested-queue");
+
+        try (Producer prod = createMessageQueueProducer()) {
+            prod.sendMessageAsJson(model.getGridMeasure(), "requested");
+        } catch (Exception e) {
+            LOGGER.error("Error in ServiceMeasureRequested onLeaveStep (RabbitMQ)", e);
+            throw new ProcessException("Error in ServiceMeasureRequested onLeaveStep (RabbitMQ)");
+        }
+        LOGGER.debug(">>execute: basicPublish RabbitMQ");
     }
 
 
diff --git a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelper.java b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelper.java
index b747bc8..d55c9bd 100644
--- a/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelper.java
+++ b/src/main/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelper.java
@@ -42,6 +42,8 @@
 import javax.persistence.EntityManager;
 import java.time.Instant;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 
@@ -74,9 +76,11 @@
 
             TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao(em);
             List<SingleGridmeasure> newSingleGms = new ArrayList<>();
-            if(!listSg.isEmpty()) {
 
+            if (listSg != null && !listSg.isEmpty()) {
+                sortSingleGridMeasuresByDate(vmGm);
                 processExistingSingleGridMeasureList(model, changedGM.getId(), em, listSg, sgmDao, newSingleGms);
+
             }
             else{
                 //Anlegen einer Leermassnahme
@@ -94,6 +98,24 @@
         }
     }
 
+    private GridMeasure sortSingleGridMeasuresByDate(GridMeasure gridMeasure) {
+        List<SingleGridmeasure> singleGridmeasures = gridMeasure.getListSingleGridmeasures();
+
+        Collections.sort(singleGridmeasures, new Comparator<SingleGridmeasure>() {
+            public int compare(SingleGridmeasure sgm1, SingleGridmeasure sgm2) {
+                if (sgm1.getPlannedStarttimeSinglemeasure() == null || sgm2.getPlannedStarttimeSinglemeasure() == null)
+                    return 0;
+                return sgm1.getPlannedStarttimeSinglemeasure().compareTo(sgm2.getPlannedStarttimeSinglemeasure());
+            }
+        });
+        for (SingleGridmeasure sgm: singleGridmeasures) {
+            sgm.setSortorder(singleGridmeasures.indexOf(sgm) + 1);
+        }
+
+        gridMeasure.setListSingleGridmeasures(singleGridmeasures);
+        return gridMeasure;
+    }
+
     private void processExistingSingleGridMeasureList(PlgmProcessSubject model,
                                                       Integer changedGmId,
                                                       AutoCloseEntityManager em,
@@ -230,7 +252,6 @@
         tblGm.setIdDescriptive(getNextDescriptiveId(em, tblGm));
         tblGm.setCreateDate(Date.from(Instant.now()));
         tblGm.setCreateUser(tblGm.getModUser());
-        tblGm.setCreateUserDepartment(tblGm.getModUserDepartment());
 
         return updateMeasureInDb(tblGm, gmDao);
     }
diff --git a/src/main/java/org/eclipse/openk/core/controller/BackendConfig.java b/src/main/java/org/eclipse/openk/core/controller/BackendConfig.java
index 3a44fea..0ca2693 100644
--- a/src/main/java/org/eclipse/openk/core/controller/BackendConfig.java
+++ b/src/main/java/org/eclipse/openk/core/controller/BackendConfig.java
@@ -11,19 +11,19 @@
  */
 package org.eclipse.openk.core.controller;
 
+import static org.eclipse.openk.common.JsonGeneratorBase.getGson;
+
 import edu.emory.mathcs.backport.java.util.Arrays;
+import java.util.ArrayList;
+import java.util.List;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration.EmailConfiguration;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration.RabbitmqConfiguration;
 import org.eclipse.openk.api.BackendSettings;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.common.util.ResourceLoaderBase;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.eclipse.openk.common.JsonGeneratorBase.getGson;
-
 
 public class BackendConfig {
     private static final Logger logger = Logger.getLogger(BackendConfig.class);
@@ -31,24 +31,26 @@
     private String portalFeLoginUrl;
     private List<String> whiteListDocumenttypes = new ArrayList<>();
     private EmailConfiguration emailConfiguration;
+    private RabbitmqConfiguration rabbitmqConfiguration;
 
     private EmailTemplatePaths emailTemplatePaths;
     private BackendSettings backendSettings;
 
-    private static Object lock = new Object();
+    private static final Object LOCK = new Object();
 
     private static BackendConfig instance;
 
     private BackendConfig() {}
 
     public static void configure(PlannedGridMeasuresConfiguration configurationFromYaml, BackendSettings backendSettings) {
-        synchronized (lock) {
+        synchronized (LOCK) {
             if (instance == null) {
                 instance = new BackendConfig();
                 instance.init();
                 instance.portalBaseUrl = configurationFromYaml.getPortalBaseURL();
                 instance.portalFeLoginUrl = configurationFromYaml.getPortalFeLoginURL();
                 instance.backendSettings = backendSettings;
+                instance.rabbitmqConfiguration = configurationFromYaml.getRabbitmqConfiguration();
                 return;
             }
             logger.warn("BackendConfig initialized more than once!");
@@ -56,7 +58,7 @@
     }
 
     public static BackendConfig getInstance() {
-        synchronized (lock ) {
+        synchronized (LOCK) {
             if( instance == null ) {
                 String errormsg = "BackendConfig accessed without being initialized!";
                 logger.error(errormsg);
@@ -136,4 +138,11 @@
         instance = null;
     }
 
+    public RabbitmqConfiguration getRabbitmqConfiguration() {
+        return rabbitmqConfiguration;
+    }
+
+    public void setRabbitmqConfiguration(RabbitmqConfiguration rabbitmqConfiguration) {
+        this.rabbitmqConfiguration = rabbitmqConfiguration;
+    }
 }
diff --git a/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java b/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
index 4ed2e0a..dd2007e 100644
--- a/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
+++ b/src/main/java/org/eclipse/openk/core/controller/GridMeasureBackendController.java
@@ -17,18 +17,36 @@
 import org.eclipse.openk.api.*;
 import org.eclipse.openk.common.mapper.GridMeasureMapper;
 import org.eclipse.openk.common.mapper.generic.GenericApiToDbMapper;
+import org.eclipse.openk.common.util.DateUtils;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.ProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmGrid;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
-import org.eclipse.openk.db.dao.*;
+import org.eclipse.openk.db.dao.AutoCloseEntityManager;
+import org.eclipse.openk.db.dao.EntityHelper;
+import org.eclipse.openk.db.dao.HTblGridMeasureDao;
+import org.eclipse.openk.db.dao.RefVersionDao;
+import org.eclipse.openk.db.dao.TblDocumentsDao;
+import org.eclipse.openk.db.dao.TblGridMeasureDao;
+import org.eclipse.openk.db.dao.TblLockDao;
+import org.eclipse.openk.db.dao.TblMeasureDocumentsDao;
+import org.eclipse.openk.db.dao.TblSingleGridmeasureDao;
+import org.eclipse.openk.db.dao.TblStepsDao;
 import org.eclipse.openk.db.model.*;
 
 import javax.persistence.EntityManager;
 import java.time.Instant;
-import java.util.*;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 public class GridMeasureBackendController {
     protected static final Logger logger = Logger.getLogger(GridMeasureBackendController.class);
@@ -65,8 +83,7 @@
         }
     }
 
-    public List<GridMeasure> getGridMeasures(FilterObject filterObject)  {
-
+    public List<GridMeasure> getGridMeasures(String username, FilterObject filterObject)  {
 
         List<GridMeasure> vmList = new java.util.ArrayList<>();
 
@@ -77,7 +94,7 @@
             List<TblGridMeasure> mList = new ArrayList<>();
 
             if (filterObject != null) {
-                mList = filterGridMeasures(filterObject, gmDao, mList);
+                mList = filterGridMeasures(username, filterObject, gmDao, mList);
             }
             else {
                 mList = gmDao.getGridMeasuresInTx();
@@ -91,18 +108,30 @@
         return vmList;
     }
 
-    private List<TblGridMeasure> filterGridMeasures(FilterObject filterObject, TblGridMeasureDao gmDao, List<TblGridMeasure> mList) {
-        if (filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
-            mList = gmDao.getGridMeasuresInTx();
+    private List<TblGridMeasure> filterGridMeasures(String username,FilterObject filterObject, TblGridMeasureDao gmDao, List<TblGridMeasure> mList) {
+        //alle GMs
+        if(!filterObject.isOnlyUsersGMsDesired()){
+            if (filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresInTx();
+            } else if (filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue());
+            } else if (!filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue());
+            } else if (!filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue(), PlgmProcessState.CANCELED.getStatusValue());
+            }
         }
-        else if (filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
-            mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue());
-        }
-        else if (!filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
-            mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue());
-        }
-        else if (!filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
-            mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue(), PlgmProcessState.CANCELED.getStatusValue());
+        //nur die den User betreffenden GMs
+        else {
+            if (filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresByUserName(username);
+            } else if (filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresByUserNameExcludingStatus(username, PlgmProcessState.CLOSED.getStatusValue());
+            } else if (!filterObject.isCanceledStatusActive() && filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresByUserNameExcludingStatus(username, PlgmProcessState.CANCELED.getStatusValue());
+            } else if (!filterObject.isCanceledStatusActive() && !filterObject.isClosedStatusActive()) {
+                mList = gmDao.getGridMeasuresByUserNameExcludingStatus(username, PlgmProcessState.CLOSED.getStatusValue(), PlgmProcessState.CANCELED.getStatusValue());
+            }
         }
         return mList;
     }
@@ -172,9 +201,9 @@
         Date now = new Date();
 
         List<Integer> relevantStatusList = new ArrayList<>();
-        relevantStatusList.add(0);
-        relevantStatusList.add(1);
-        relevantStatusList.add(3);
+        relevantStatusList.add(PlgmProcessState.NEW.getStatusValue());
+        relevantStatusList.add(PlgmProcessState.APPLIED.getStatusValue());
+        relevantStatusList.add(PlgmProcessState.FOR_APPROVAL.getStatusValue());
 
         List<String> relevantUserRolesList = getRelevantRolesForUser(token);
 
@@ -195,11 +224,52 @@
                     //check auf Unterschreitung der reminderPeriod
                     long nowLong = now.getTime();
                     if( gm.getPlannedStarttimeFirstSinglemeasure() != null ) {
+                        LocalDateTime dateTimeNow = LocalDateTime.now();
+                        LocalDateTime localDateTimeEnd = dateTimeNow.plusHours(reminderPeriod);
+                        LocalDateTime dateTimeToCompare = DateUtils.asLocalDateTime(gm.getPlannedStarttimeFirstSinglemeasure());
+
+                        if (dateTimeNow.compareTo(dateTimeToCompare) <= 0 &&
+                                localDateTimeEnd.compareTo(dateTimeToCompare) >= 0){
+                            returnList.add(gm.getId());
+                        }
+                    }
+                }
+            }
+        }
+
+        return returnList;
+    }
+
+    public List<Integer> getExpiredReminders(String token)  throws HttpStatusException {
+        List<Integer> returnList = new ArrayList<>();
+        List<Integer> relevantStatusForUserList = new ArrayList<>();
+        Date now = new Date();
+
+        List<Integer> relevantStatusList = new ArrayList<>();
+        relevantStatusList.add(PlgmProcessState.NEW.getStatusValue());
+        relevantStatusList.add(PlgmProcessState.APPLIED.getStatusValue());
+        relevantStatusList.add(PlgmProcessState.FOR_APPROVAL.getStatusValue());
+
+        List<String> relevantUserRolesList = getRelevantRolesForUser(token);
+
+        if(!relevantUserRolesList.isEmpty()){
+            relevantStatusForUserList = getRelevantStatusForRoles(relevantUserRolesList);
+        }
+
+        relevantStatusForUserList.retainAll(relevantStatusList);
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblGridMeasureDao gmDao = createTblGridMeasureDao(em);
+
+            for(Integer status: relevantStatusForUserList){
+                List<TblGridMeasure> gmList = gmDao.getGridMeasuresByStatusId(status);
+                for(TblGridMeasure gm: gmList) {
+                    //check auf Überschreitung der jetzigen Zeit
+                    long nowLong = now.getTime();
+                    if( gm.getPlannedStarttimeFirstSinglemeasure() != null ) {
                         long starttimeLong = gm.getPlannedStarttimeFirstSinglemeasure().getTime();
                         long diff = starttimeLong - nowLong;
-                        long diffHours = diff / (60 * 60 * 1000);
-
-                        if (diffHours > 0 && diffHours < reminderPeriod) {
+                        if (diff < 0) {
                             returnList.add(gm.getId());
                         }
                     }
@@ -681,6 +751,114 @@
         }
     }
 
+    public List<String> getResponsiblesOnSiteFromSingleGridmeasures(){
+        List<String> responsiblesOnSiteList = new ArrayList<>();
+        Set<String> responsiblesOnSiteUniqueSet = new HashSet<>();
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblSingleGridmeasureDao gmDao = createTblSingleGridmeasureDao(em);
+            responsiblesOnSiteList = gmDao.getResponsiblesOnSite();
+        }
+
+        responsiblesOnSiteUniqueSet.addAll(responsiblesOnSiteList);
+        responsiblesOnSiteUniqueSet.remove(null);
+        return new ArrayList<>(responsiblesOnSiteUniqueSet);
+    }
+
+    public List<String> getUserDepartmentsCreated()  {
+        List<String> userDepartmentsList = new ArrayList<>();
+        Set<String> userDepartmentsUniqueSet = new HashSet<>();
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblGridMeasureDao gmDao = createTblGridMeasureDao(em);
+            userDepartmentsList = gmDao.getUserDepartmentsCreated();
+        }
+
+        userDepartmentsUniqueSet.addAll(userDepartmentsList);
+        userDepartmentsUniqueSet.remove(null);
+        return new ArrayList<>(userDepartmentsUniqueSet);
+    }
+
+
+    public List<String> getUserDepartmentsModified()  {
+        List<String> userDepartmentsList = new ArrayList<>();
+        Set<String> userDepartmentsUniqueSet = new HashSet<>();
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblGridMeasureDao gmDao = createTblGridMeasureDao(em);
+            userDepartmentsList = gmDao.getUserDepartmentsModified();
+        }
+
+        userDepartmentsUniqueSet.addAll(userDepartmentsList);
+        userDepartmentsUniqueSet.remove(null);
+        return new ArrayList<>(userDepartmentsUniqueSet);
+    }
+
+
+    public List<String> getNetworkControlsFromSingleGridmeasures(){
+        List<String> networkControlsList = new ArrayList<>();
+        Set<String> networkControlsUniqueSet = new HashSet<>();
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao(em);
+            networkControlsList = sgmDao.getNetworkControls();
+        }
+
+        networkControlsUniqueSet.addAll(networkControlsList);
+        networkControlsUniqueSet.remove(null);
+        return new ArrayList<>(networkControlsUniqueSet);
+    }
+
+    public List<Calender> getCalender() {
+
+        List<TblGridMeasure> mList;
+        List<TblSingleGridmeasure> sgmList;
+        List<Calender> calenderList = new ArrayList<>();
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblGridMeasureDao gmDao = createTblGridMeasureDao(em);
+            TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao(em);
+            mList = gmDao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue(), PlgmProcessState.CANCELED.getStatusValue());
+
+            for (TblGridMeasure m : mList) {
+                sgmList = sgmDao.getSingleGridmeasuresByGmIdInTx(m.getId());
+
+                for (TblSingleGridmeasure sgm : sgmList) {
+
+                    Calender calenderItem = new Calender();
+
+                    calenderItem.setGridMeasureId(m.getId());
+                    calenderItem.setGridMeasureTitle(m.getTitle());
+                    calenderItem.setGridMeasureStatusId(m.getFkRefGmStatus());
+                    calenderItem.setSingleGridMeasureId(sgm.getId());
+                    calenderItem.setSingleGridMeasureTitle(sgm.getTitle());
+                    calenderItem.setPlannedStarttimSinglemeasure(sgm.getPlannedStarttimeSinglemeasure());
+                    calenderItem.setPlannedEndtimeSinglemeasure(sgm.getPlannedEndtimeSinglemeasure());
+
+                    calenderList.add(calenderItem);
+                }
+            }
+        }
+        return calenderList;
+    }
+
+    public List<String> getUserDepartmentsResponsibleOnSite()  {
+        List<String> userDepartmentsList = new ArrayList<>();
+        Set<String> userDepartmentsUniqueSet = new HashSet<>();
+
+
+        try (AutoCloseEntityManager em = createEm()) {
+            TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao(em);
+            userDepartmentsList = sgmDao.getUserDepartmentsResponsibleOnSite();
+        }
+
+        userDepartmentsUniqueSet.addAll(userDepartmentsList);
+        userDepartmentsUniqueSet.remove(null);
+        return new ArrayList<>(userDepartmentsUniqueSet);
+    }
+
+
+
     protected TblSingleGridmeasureDao createTblSingleGridmeasureDao(EntityManager em) { return new TblSingleGridmeasureDao(em); }
 
     protected TblGridMeasureDao createTblGridMeasureDao(EntityManager em) { return new TblGridMeasureDao(em); }
diff --git a/src/main/java/org/eclipse/openk/core/controller/InitMailAddressCacheJob.java b/src/main/java/org/eclipse/openk/core/controller/InitMailAddressCacheJob.java
index 387c733..d5e6034 100644
--- a/src/main/java/org/eclipse/openk/core/controller/InitMailAddressCacheJob.java
+++ b/src/main/java/org/eclipse/openk/core/controller/InitMailAddressCacheJob.java
@@ -18,10 +18,10 @@
 
 public class InitMailAddressCacheJob {
 
-    private static final Logger LOGGEER = Logger.getLogger(GridMeasureBackendController.class);
+    private static final Logger LOGGER = Logger.getLogger(GridMeasureBackendController.class);
 
     public void init()  {
-        LOGGEER.debug("InitMailAddressCollectionJob called");
+        LOGGER.debug("InitMailAddressCollectionJob called");
         TimerTask timerTask = new MailAddressCacheTimerTask();
         Timer timer = new Timer();
 
diff --git a/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java b/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java
new file mode 100644
index 0000000..0c09619
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/core/controller/InitRabbitMqSetup.java
@@ -0,0 +1,82 @@
+/*
+ * *****************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *      http://www.eclipse.org/legal/epl-v10.html
+ *
+ * *****************************************************************************
+ */
+
+package org.eclipse.openk.core.controller;
+
+import com.rabbitmq.client.BuiltinExchangeType;
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.concurrent.TimeoutException;
+import org.apache.log4j.Logger;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration.RabbitmqConfiguration;
+import org.eclipse.openk.common.Globals;
+
+public class InitRabbitMqSetup {
+
+    private static final Logger LOGGER = Logger.getLogger(GridMeasureBackendController.class);
+
+    public void init()  {
+        LOGGER.debug("InitRabbitMqSetup called");
+        RabbitmqConfiguration rabbitmqConfiguration = BackendConfig.getInstance().getRabbitmqConfiguration();
+        if (rabbitmqConfiguration == null) {
+            LOGGER.warn("InitRabbitMqSetup: No RabbitmqConfiguration found!");
+            return;
+        }
+        if (!rabbitmqConfiguration.isAutoSetup()) {
+            LOGGER.debug("InitRabbitMqSetup canceled > Autosetup is off");
+            return;
+        }
+        ConnectionFactory factory = createRabbitFactory(rabbitmqConfiguration);
+        try (Connection connection = factory.newConnection();
+            Channel channel = connection.createChannel()) {
+
+            // durable = true
+            channel.exchangeDeclare(rabbitmqConfiguration.getExchangeName(), BuiltinExchangeType.DIRECT, true);
+
+            Map<String, Object> args = new HashMap<>();
+            args.put("x-queue-mode", "lazy");
+
+            List<String> queueNames = rabbitmqConfiguration.getQueueNamesAsList();
+
+            for (String queueName : queueNames) {
+                channel.queueDeclare(queueName, true, false, false, args);
+                String routingKey = queueName.split("-")[1];
+                channel.queueBind(queueName, rabbitmqConfiguration.getExchangeName(), routingKey);
+            }
+
+        } catch (TimeoutException | IOException e) {
+            LOGGER.error("Error in InitRabbitMqSetup", e);
+        }
+    }
+
+
+
+
+    private static ConnectionFactory createRabbitFactory(RabbitmqConfiguration rabbitmqConfiguration) {
+        ConnectionFactory factory = new ConnectionFactory();
+        factory.setHost(rabbitmqConfiguration.getHost());
+        factory.setPassword(rabbitmqConfiguration.getPassword());
+        factory.setUsername(rabbitmqConfiguration.getUser());
+        factory.setPort(Integer.parseInt(rabbitmqConfiguration.getPort()));
+        return factory;
+    }
+
+
+}
diff --git a/src/main/java/org/eclipse/openk/core/controller/MasterDataBackendController.java b/src/main/java/org/eclipse/openk/core/controller/MasterDataBackendController.java
index 40f4f90..fb72019 100644
--- a/src/main/java/org/eclipse/openk/core/controller/MasterDataBackendController.java
+++ b/src/main/java/org/eclipse/openk/core/controller/MasterDataBackendController.java
@@ -13,38 +13,17 @@
 
 import org.apache.log4j.Logger;
 import org.eclipse.jetty.http.HttpStatus;
-import org.eclipse.openk.api.BackendSettings;
-import org.eclipse.openk.api.Branch;
-import org.eclipse.openk.api.BranchLevel;
-import org.eclipse.openk.api.CostCenter;
-import org.eclipse.openk.api.GmStatus;
-import org.eclipse.openk.api.UserDepartment;
-import org.eclipse.openk.api.UserSettings;
+import org.eclipse.openk.api.*;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.common.mapper.generic.GenericApiToDbMapper;
 import org.eclipse.openk.common.util.ResourceLoaderBase;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
-import org.eclipse.openk.db.dao.AutoCloseEntityManager;
-import org.eclipse.openk.db.dao.EntityHelper;
-import org.eclipse.openk.db.dao.RefBranchDao;
-import org.eclipse.openk.db.dao.RefBranchLevelDao;
-import org.eclipse.openk.db.dao.RefCostCenterDao;
-import org.eclipse.openk.db.dao.RefGmStatusDao;
-import org.eclipse.openk.db.dao.RefUserDepartmentDao;
-import org.eclipse.openk.db.dao.TblUserSettingsDao;
-import org.eclipse.openk.db.model.RefBranch;
-import org.eclipse.openk.db.model.RefBranchLevel;
-import org.eclipse.openk.db.model.RefCostCenter;
-import org.eclipse.openk.db.model.RefGmStatus;
-import org.eclipse.openk.db.model.RefUserDepartment;
-import org.eclipse.openk.db.model.TblUserSettings;
+import org.eclipse.openk.db.dao.*;
+import org.eclipse.openk.db.model.*;
 
 import javax.persistence.EntityManager;
 import java.time.Instant;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 import static org.eclipse.openk.common.JsonGeneratorBase.getGson;
 
@@ -53,6 +32,7 @@
 
     public List<String> getEmailAddressesFromTemplates()  {
         List<String> recipientAddressesAllList = new ArrayList<>();
+        Set<String> recipientAddressesUniqueList = new HashSet<>();
 
         //fetch names of relevant emailTemplates
         BackendSettings bSettings = BackendConfig.getInstance().getBackendSettings();
@@ -110,7 +90,11 @@
         }
 
         recipientAddressesAllList.replaceAll(String::trim);
-        return recipientAddressesAllList;
+        recipientAddressesUniqueList.addAll(recipientAddressesAllList);
+        List<String> retList= new ArrayList<>(recipientAddressesUniqueList);
+
+        Collections.sort(retList);
+        return retList;
     }
 
     public List<Branch> getBranches()  {
@@ -126,13 +110,14 @@
         return vmList;
     }
 
-    public List<BranchLevel> getBranchLevels()  {
+
+    public List<BranchLevel> getBranchLevelsByBranch(int id)  {
         List<BranchLevel> vmList = new java.util.ArrayList<>();
 
         try (AutoCloseEntityManager em = createEm()) {
             RefBranchLevelDao blDao = createRefBranchLevelDao(em);
 
-            List<RefBranchLevel>mList = blDao.getBranchLevelsInTx();
+            List<RefBranchLevel>mList = blDao.getBranchLevelsByBranchId(id);
             GenericApiToDbMapper mapper = new GenericApiToDbMapper();
             mList.forEach(m -> vmList.add(mapper.mapToViewModel(BranchLevel.class, m) ) );
         }
@@ -166,15 +151,17 @@
         return vmList;
     }
 
-    public List<UserDepartment> getUserDepartments()  {
-        List<UserDepartment> vmList = new java.util.ArrayList<>();
 
-        try (AutoCloseEntityManager em = createEm()) {
-            RefUserDepartmentDao userDepartmentDao = createRefUserDepartmentDao(em);
 
-            List<RefUserDepartment>mList = userDepartmentDao.getUserDepartmentsInTx();
+    public List<Territory> getTerritories()  {
+        List<Territory> vmList = new java.util.ArrayList<>();
+
+        try (AutoCloseEntityManager em = createEm()){
+            RefTerritoryDao territoryDao = createRefTerritoryDao(em);
+
+            List<RefTerritory>mList = territoryDao.getTerritoriesInTx();
             GenericApiToDbMapper mapper = new GenericApiToDbMapper();
-            mList.forEach(m -> vmList.add(mapper.mapToViewModel(UserDepartment.class, m)));
+            mList.forEach(m -> vmList.add(mapper.mapToViewModel(Territory.class, m)));
         }
         return vmList;
     }
@@ -250,7 +237,7 @@
         return new RefCostCenterDao(em);
     }
 
-    protected RefUserDepartmentDao createRefUserDepartmentDao(EntityManager em) { return new RefUserDepartmentDao(em); }
+    protected RefTerritoryDao createRefTerritoryDao(EntityManager em) { return new RefTerritoryDao(em); }
 
     protected TblUserSettingsDao createRefUserSettingsDao(EntityManager em) { return new TblUserSettingsDao(em); }
 
diff --git a/src/main/java/org/eclipse/openk/core/controller/PgmEmail.java b/src/main/java/org/eclipse/openk/core/controller/PgmEmail.java
index 7005ffc..0f1083a 100644
--- a/src/main/java/org/eclipse/openk/core/controller/PgmEmail.java
+++ b/src/main/java/org/eclipse/openk/core/controller/PgmEmail.java
@@ -72,11 +72,11 @@
       contentReplaceMap.put("$plannedStarttimeFirstSinglemeasure$", formattedDate);
     }
 
-    Date plannedEndtimeLastSinglemeasure = currentGridMeasure.getPlannedEndtimeLastSinglemeasure();
-    if(plannedEndtimeLastSinglemeasure != null) {
+    Date endtimeGridmeasure = currentGridMeasure.getEndtimeGridmeasure();
+    if(endtimeGridmeasure != null) {
       DateFormat dfmt = new SimpleDateFormat(SUBJECT_DATE_PATTERN_APPLIED);
-      String formattedDate = dfmt.format(plannedEndtimeLastSinglemeasure);
-      contentReplaceMap.put("$plannedEndtimeLastSinglemeasure$", formattedDate);
+      String formattedDate = dfmt.format(endtimeGridmeasure);
+      contentReplaceMap.put("$endtimeGridmeasure$", formattedDate);
     }
 
     String remark = currentGridMeasure.getRemark();
diff --git a/src/main/java/org/eclipse/openk/core/messagebroker/MessageBroker.java b/src/main/java/org/eclipse/openk/core/messagebroker/MessageBroker.java
new file mode 100644
index 0000000..64c3f44
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/core/messagebroker/MessageBroker.java
@@ -0,0 +1,59 @@
+/*
+ * *****************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *      http://www.eclipse.org/legal/epl-v10.html
+ *
+ * *****************************************************************************
+ */
+
+package org.eclipse.openk.core.messagebroker;
+
+
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
+import java.io.IOException;
+import java.util.concurrent.TimeoutException;
+import org.apache.log4j.Logger;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.controller.BackendConfig;
+
+public abstract class MessageBroker implements AutoCloseable{
+
+  private static final Logger LOGGER = Logger.getLogger(MessageBroker.class.getName());
+
+  protected Channel channel;
+  protected Connection connection;
+
+  public MessageBroker() throws ProcessException {
+    //Create a connection factory
+    ConnectionFactory factory = new ConnectionFactory();
+
+    //hostname of your rabbitmq server
+    factory.setHost(BackendConfig.getInstance().getRabbitmqConfiguration().getHost());
+    factory.setPassword(BackendConfig.getInstance().getRabbitmqConfiguration().getPassword());
+    factory.setUsername(BackendConfig.getInstance().getRabbitmqConfiguration().getUser());
+    factory.setPort(Integer.parseInt(BackendConfig.getInstance().getRabbitmqConfiguration().getPort()));
+
+    try {
+      //getting a connection
+      connection = factory.newConnection();
+
+      //creating a channel
+      channel = connection.createChannel();
+    } catch (IOException | TimeoutException e) {
+      LOGGER.error("Error in MessageBroker Constructor (RabbitMQ)", e);
+      throw new ProcessException("Error in MessageBroker Constructor (RabbitMQ)");
+    }
+  }
+
+  @Override
+  public void close() throws Exception {
+    this.channel.close();
+    this.connection.close();
+  }
+}
diff --git a/src/main/java/org/eclipse/openk/core/messagebroker/Producer.java b/src/main/java/org/eclipse/openk/core/messagebroker/Producer.java
new file mode 100644
index 0000000..e2817eb
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/core/messagebroker/Producer.java
@@ -0,0 +1,64 @@
+/*
+ * *****************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *      http://www.eclipse.org/legal/epl-v10.html
+ *
+ * *****************************************************************************
+ */
+
+package org.eclipse.openk.core.messagebroker;
+
+import com.rabbitmq.client.AMQP.BasicProperties;
+import com.rabbitmq.client.AMQP.BasicProperties.Builder;
+import java.io.IOException;
+import org.apache.log4j.Logger;
+import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.common.JsonGeneratorBase;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.controller.BackendConfig;
+
+public class Producer extends MessageBroker {
+
+  private static final Logger LOGGER = Logger.getLogger(Producer.class.getName());
+
+  private final String exchangeName;
+
+  public Producer() throws ProcessException {
+    this.exchangeName =  BackendConfig.getInstance().getRabbitmqConfiguration().getExchangeName();
+  }
+
+  public void sendMessageAsJson(GridMeasure gridMeasure, String routingKey) throws ProcessException {
+    BasicProperties basicProperties = new Builder().contentType("application/json").deliveryMode(2).priority(0).build();
+    String jsonString = JsonGeneratorBase.getGson().toJson(createPayload(gridMeasure));
+    try {
+      channel.basicPublish(exchangeName,routingKey, basicProperties, jsonString.getBytes("UTF-8"));
+    } catch (IOException e) {
+      LOGGER.error("Error in sendMessageAsJson (RabbitMQ)", e);
+      throw new ProcessException("Error in sendMessageAsJson (RabbitMQ)");
+    }
+  }
+
+  public void sendMessageAsString(String message, String routingKey) throws ProcessException {
+    BasicProperties basicProperties = new Builder().contentType("text/plain").deliveryMode(2).priority(0).build();
+    try {
+      channel.basicPublish(exchangeName, routingKey, basicProperties, message.getBytes());
+    } catch (IOException e) {
+      LOGGER.error("Error in sendMessageAsString (RabbitMQ)", e);
+      throw new ProcessException("Error in sendMessageAsString (RabbitMQ)");
+    }
+  }
+
+  private GridMeasure createPayload(GridMeasure originalGm) {
+    GridMeasure payload = new GridMeasure();
+    payload.setTitle(originalGm.getTitle());
+    payload.setId(originalGm.getId());
+    payload.setPlannedStarttimeFirstSinglemeasure(originalGm.getPlannedStarttimeFirstSinglemeasure());
+    payload.setSwitchingObject(originalGm.getSwitchingObject());
+    payload.setAffectedResource(originalGm.getAffectedResource());
+    return payload;
+  }
+}
diff --git a/src/main/java/org/eclipse/openk/db/dao/HTblGridMeasureDao.java b/src/main/java/org/eclipse/openk/db/dao/HTblGridMeasureDao.java
index 0536f38..19ac929 100644
--- a/src/main/java/org/eclipse/openk/db/dao/HTblGridMeasureDao.java
+++ b/src/main/java/org/eclipse/openk/db/dao/HTblGridMeasureDao.java
@@ -32,8 +32,7 @@
             String selectString = "from HTblGridMeasure t WHERE t.id = :gmId ORDER BY t.fkRefGmStatus DESC";
             Query q = getEM().createQuery(selectString);
             q.setParameter("gmId", gmId);
-
-            return refreshModelCollection(q.getResultList());
+            return (List<HTblGridMeasure>) q.getResultList();
         } catch (Exception t) {
             LOGGER.error(t.getMessage());
             return null; // NOSONAR We decide to use null logic
diff --git a/src/main/java/org/eclipse/openk/db/dao/RefBranchLevelDao.java b/src/main/java/org/eclipse/openk/db/dao/RefBranchLevelDao.java
index e2140ed..bb53751 100644
--- a/src/main/java/org/eclipse/openk/db/dao/RefBranchLevelDao.java
+++ b/src/main/java/org/eclipse/openk/db/dao/RefBranchLevelDao.java
@@ -26,10 +26,22 @@
         super(em);
     }
 
-    public List<RefBranchLevel> getBranchLevelsInTx() {
+//    public List<RefBranchLevel> getBranchLevelsInTx() {
+//        try {
+//            String selectString = "from RefBranchLevel t";
+//            Query q = getEM().createQuery(selectString);
+//            return (List<RefBranchLevel>) q.getResultList();
+//        } catch (Exception t) {
+//            LOGGER.error(t.getMessage());
+//            return null; // NOSONAR We decide to use null logic
+//        }
+//    }
+
+    public List<RefBranchLevel> getBranchLevelsByBranchId(int id) {
         try {
-            String selectString = "from RefBranchLevel t";
+            String selectString = "from RefBranchLevel t where t.fkRefBranch = :Id";
             Query q = getEM().createQuery(selectString);
+            q.setParameter("Id", id);
             return (List<RefBranchLevel>) q.getResultList();
         } catch (Exception t) {
             LOGGER.error(t.getMessage());
diff --git a/src/main/java/org/eclipse/openk/db/dao/RefUserDepartmentDao.java b/src/main/java/org/eclipse/openk/db/dao/RefTerritoryDao.java
similarity index 67%
rename from src/main/java/org/eclipse/openk/db/dao/RefUserDepartmentDao.java
rename to src/main/java/org/eclipse/openk/db/dao/RefTerritoryDao.java
index 697e1b9..71c3b0d 100644
--- a/src/main/java/org/eclipse/openk/db/dao/RefUserDepartmentDao.java
+++ b/src/main/java/org/eclipse/openk/db/dao/RefTerritoryDao.java
@@ -11,29 +11,30 @@
  */
 package org.eclipse.openk.db.dao;
 
-import org.eclipse.openk.db.model.RefUserDepartment;
+import org.eclipse.openk.db.model.RefTerritory;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
 import java.util.List;
 
-public class RefUserDepartmentDao extends GenericDaoJpa<RefUserDepartmentDao, Integer>{
-    public RefUserDepartmentDao() {
+public class RefTerritoryDao extends GenericDaoJpa<RefTerritory, Integer>{
+    public RefTerritoryDao() {
         super();
     }
 
-    public RefUserDepartmentDao(EntityManager em) {
+    public RefTerritoryDao(EntityManager em) {
         super(em);
     }
 
-    public List<RefUserDepartment> getUserDepartmentsInTx() {
+    public List<RefTerritory> getTerritoriesInTx() {
         try {
-            String selectString = "from RefUserDepartment t";
+            String selectString = "from RefTerritory t";
             Query q = getEM().createQuery(selectString);
-            return (List<RefUserDepartment>) q.getResultList();
+            return (List<RefTerritory>) q.getResultList();
         } catch (Exception t) {
             LOGGER.error(t.getMessage());
             return null; // NOSONAR We decide to use null logic
         }
     }
 }
+
diff --git a/src/main/java/org/eclipse/openk/db/dao/TblGridMeasureDao.java b/src/main/java/org/eclipse/openk/db/dao/TblGridMeasureDao.java
index 4b16cb5..fe53793 100644
--- a/src/main/java/org/eclipse/openk/db/dao/TblGridMeasureDao.java
+++ b/src/main/java/org/eclipse/openk/db/dao/TblGridMeasureDao.java
@@ -11,10 +11,12 @@
  */
 package org.eclipse.openk.db.dao;
 
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.db.model.TblGridMeasure;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -110,4 +112,79 @@
         }
     }
 
+
+    public List<TblGridMeasure> getGridMeasuresByUserName(String username) {
+        try {
+            String selectString = "from TblGridMeasure t where t.id IN (select distinct t.id from TblGridMeasure t INNER JOIN HTblGridMeasure h ON t.id = h.id WHERE h.hUser = :UserName)";
+            Query q = getEM().createQuery(selectString);
+            q.setParameter("UserName", username);
+
+            return refreshModelCollection(q.getResultList());
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+            return null; // NOSONAR We decide to use null logic
+        }
+    }
+
+    public List<TblGridMeasure> getGridMeasuresByUserNameExcludingStatus(String username, Integer statusId) {
+        try {
+            String selectString = "from TblGridMeasure t where t.id IN (select distinct t.id from TblGridMeasure t INNER JOIN HTblGridMeasure h ON t.id = h.id WHERE h.hUser = :UserName) AND t.fkRefGmStatus <> :fkRefGmStatus ";
+            Query q = getEM().createQuery(selectString);
+            q.setParameter("UserName", username);
+            q.setParameter(FK_REF_GM_STATUS, statusId);
+
+            return refreshModelCollection(q.getResultList());
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+            return null; // NOSONAR We decide to use null logic
+        }
+    }
+
+    public List<TblGridMeasure> getGridMeasuresByUserNameExcludingStatus(String username, Integer statusId1, Integer statusId2) {
+        try {
+            String selectString = "from TblGridMeasure t where t.id IN (select distinct t.id from TblGridMeasure t INNER JOIN HTblGridMeasure h ON t.id = h.id WHERE h.hUser = :UserName) AND t.fkRefGmStatus NOT IN (:fkRefGmStatus1, :fkRefGmStatus2)";
+            Query q = getEM().createQuery(selectString);
+            q.setParameter("UserName", username);
+            q.setParameter("fkRefGmStatus1", statusId1);
+            q.setParameter("fkRefGmStatus2", statusId2);
+
+            return refreshModelCollection(q.getResultList());
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+            return null; // NOSONAR We decide to use null logic
+        }
+    }
+
+    public List<String> getUserDepartmentsCreated() {
+        List<String> retList = new ArrayList<>();
+        try {
+            String selectString = "select t.createUserDepartment from TblGridMeasure t";
+            Query q = getEM().createQuery(selectString);
+
+            return (List<String>)q.getResultList();
+
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+        }
+        return retList;
+    }
+
+    public List<String> getUserDepartmentsModified() {
+        List<String> retList = new ArrayList<>();
+        try {
+            String selectString = "select t.modUserDepartment from TblGridMeasure t";
+            Query q = getEM().createQuery(selectString);
+
+            return (List<String>)q.getResultList();
+
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+        }
+        return retList;
+    }
+
+
+
+
+
 }
\ No newline at end of file
diff --git a/src/main/java/org/eclipse/openk/db/dao/TblSingleGridmeasureDao.java b/src/main/java/org/eclipse/openk/db/dao/TblSingleGridmeasureDao.java
index 63a7dc6..8d492c8 100644
--- a/src/main/java/org/eclipse/openk/db/dao/TblSingleGridmeasureDao.java
+++ b/src/main/java/org/eclipse/openk/db/dao/TblSingleGridmeasureDao.java
@@ -15,6 +15,7 @@
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
+import java.util.ArrayList;
 import java.util.List;
 
 public class TblSingleGridmeasureDao extends GenericDaoJpa<TblSingleGridmeasure, Integer>{
@@ -51,58 +52,49 @@
         }
     }
 
- /*   public TblSingleGridmeasure storeSingleGm(TblSingleGridmeasure newTblSg, String changeUser) throws HttpStatusException{
-        getEM().getTransaction().begin();
-
-        newTblSg.setModUser(changeUser);
-        newTblSg.setModDate(Date.from(Instant.now()));
-        if( newTblSg.getCreateDate() == null ) {
-            newTblSg.setCreateDate(newTblSg.getModDate());
-        }
-        TblSingleGridmeasure ret = null;
-        if( newTblSg.getId() == null ) {
-            ret = createSinglemeasureInDb(newTblSg);
-        }
-        else {
-            TblSingleGridmeasure aktSg = findByIdInTx(TblSingleGridmeasure.class, newTblSg.getId());
-            if( aktSg != null) {
-                // entity should exist before it is updated
-                newTblSg.setCreateDate(aktSg.getCreateDate());
-                newTblSg.setCreateUser(aktSg.getCreateUser());
-                newTblSg.setId(aktSg.getId());
-
-                ret = updateSingleGridmeasureInDb(newTblSg);
-            }
-            else {
-                String errText = "Cannot update an entity that does not exist. ID="+newTblSg.getId();
-                LOGGER.error(errText);
-                throw new HttpStatusException(HttpStatus.SC_NOT_FOUND, errText) ;
-            }
-        }
-
-        getEM().getTransaction().commit();
-        return ret;
-    }
-
-    private TblSingleGridmeasure createSinglemeasureInDb(TblSingleGridmeasure tblSgm) throws HttpStatusException{
-        tblSgm.setCreateDate(Date.from(Instant.now()));
-        tblSgm.setCreateUser(tblSgm.getModUser());
-
-        return updateSingleGridmeasureInDb(tblSgm);
-    }
-
-    private TblSingleGridmeasure updateSingleGridmeasureInDb(TblSingleGridmeasure tblSgm) throws HttpStatusException{
+    public List<String> getResponsiblesOnSite() {
+        List<String> retList = new ArrayList<>();
         try {
-            return mergeInTx(tblSgm);
+            String selectString = "select t.responsibleOnSiteName from TblSingleGridmeasure t";
+            Query q = getEM().createQuery(selectString);
 
-        } catch (Exception e) {
-            String errorText = tblSgm != null ?
-                    "Error storing singleGridmeasureEntity:" + JsonGeneratorBase.getGson().toJson(tblSgm) :
-                    "Cannot store empty gridMeasure";
+            return (List<String>)q.getResultList();
 
-            LOGGER.error(errorText, e);
-            throw new HttpStatusException(HttpStatus.SC_INTERNAL_SERVER_ERROR);
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
         }
-    }*/
+        return retList;
+    }
+
+
+
+    public List<String> getNetworkControls() {
+        List<String> retList = new ArrayList<>();
+        try {
+            String selectString = "select t.networkControl from TblSingleGridmeasure t";
+            Query q = getEM().createQuery(selectString);
+
+            return (List<String>)q.getResultList();
+
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+        }
+        return retList;
+    }
+
+    public List<String> getUserDepartmentsResponsibleOnSite() {
+        List<String> retList = new ArrayList<>();
+        try {
+            String selectString = "select t.responsibleOnSiteDepartment from TblSingleGridmeasure t";
+            Query q = getEM().createQuery(selectString);
+
+            return (List<String>)q.getResultList();
+
+        } catch (Exception t) {
+            LOGGER.error(t.getMessage());
+        }
+        return retList;
+    }
+
 }
 
diff --git a/src/main/java/org/eclipse/openk/db/model/HTblGridMeasure.java b/src/main/java/org/eclipse/openk/db/model/HTblGridMeasure.java
index 321e374..92e5daa8 100644
--- a/src/main/java/org/eclipse/openk/db/model/HTblGridMeasure.java
+++ b/src/main/java/org/eclipse/openk/db/model/HTblGridMeasure.java
@@ -71,12 +71,6 @@
     @Column (name= "cost_center")
     private String costCenter;
 
-    @Column (name= "responsible_onsite_name")
-    private String responsibleOnSiteName;
-
-    @Column (name= "responsible_onsite_department")
-    private String responsibleOnSiteDepartment;
-
     @Column (name= "approval_by")
     private String approvalBy;
 
@@ -92,27 +86,9 @@
     @Column (name= "appointment_numberof")
     private Integer appointmentNumberOf;
 
-    @Column (name= "planned_starttime_first_sequence")
-    private Date plannedStarttimeFirstSequence;
-
     @Column (name= "planned_starttime_first_singlemeasure")
     private Date plannedStarttimeFirstSinglemeasure;
 
-    @Column (name= "planned_endtime_last_singlemeasure")
-    private Date plannedEndtimeLastSinglemeasure;
-
-    @Column (name= "planned_endtime_gridmeasure")
-    private Date plannedEndtimeGridmeasure;
-
-    @Column (name= "starttime_first_sequence")
-    private Date starttimeFirstSequence;
-
-    @Column (name= "starttime_first_singlemeasure")
-    private Date starttimeFirstSinglemeasure;
-
-    @Column (name= "endtime_last_singlemeasure")
-    private Date endtimeLastSinglemeasure;
-
     @Column (name= "endtime_gridmeasure")
     private Date endtimeGridmeasure;
 
@@ -211,14 +187,6 @@
 
     public void setCostCenter(String costCenter) { this.costCenter = costCenter; }
 
-    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
-
-    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
-
-    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
-
-    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
-
     public String getApprovalBy() { return approvalBy; }
 
     public void setApprovalBy(String approvalBy) { this.approvalBy = approvalBy; }
@@ -239,34 +207,10 @@
 
     public void setAppointmentNumberOf(Integer appointmentNumberOf) { this.appointmentNumberOf = appointmentNumberOf; }
 
-    public Date getPlannedStarttimeFirstSequence() { return plannedStarttimeFirstSequence; }
-
-    public void setPlannedStarttimeFirstSequence(Date plannedStarttimeFirstSequence) { this.plannedStarttimeFirstSequence = plannedStarttimeFirstSequence; }
-
     public Date getPlannedStarttimeFirstSinglemeasure() { return plannedStarttimeFirstSinglemeasure; }
 
     public void setPlannedStarttimeFirstSinglemeasure(Date plannedStarttimeFirstSinglemeasure) { this.plannedStarttimeFirstSinglemeasure = plannedStarttimeFirstSinglemeasure; }
 
-    public Date getPlannedEndtimeLastSinglemeasure() { return plannedEndtimeLastSinglemeasure; }
-
-    public void setPlannedEndtimeLastSinglemeasure(Date plannedEndtimeLastSinglemeasure) { this.plannedEndtimeLastSinglemeasure = plannedEndtimeLastSinglemeasure; }
-
-    public Date getPlannedEndtimeGridmeasure() { return plannedEndtimeGridmeasure; }
-
-    public void setPlannedEndtimeGridmeasure(Date plannedEndtimeGridmeasure) { this.plannedEndtimeGridmeasure = plannedEndtimeGridmeasure; }
-
-    public Date getStarttimeFirstSequence() { return starttimeFirstSequence; }
-
-    public void setStarttimeFirstSequence(Date starttimeFirstSequence) { this.starttimeFirstSequence = starttimeFirstSequence; }
-
-    public Date getStarttimeFirstSinglemeasure() { return starttimeFirstSinglemeasure; }
-
-    public void setStarttimeFirstSinglemeasure(Date starttimeFirstSinglemeasure) { this.starttimeFirstSinglemeasure = starttimeFirstSinglemeasure; }
-
-    public Date getEndtimeLastSinglemeasure() { return endtimeLastSinglemeasure; }
-
-    public void setEndtimeLastSinglemeasure(Date endtimeLastSinglemeasure) { this.endtimeLastSinglemeasure = endtimeLastSinglemeasure; }
-
     public Date getEndtimeGridmeasure() { return endtimeGridmeasure; }
 
     public void setEndtimeGridmeasure(Date endtimeGridmeasure) { this.endtimeGridmeasure = endtimeGridmeasure; }
diff --git a/src/main/java/org/eclipse/openk/db/model/RefGmStatus.java b/src/main/java/org/eclipse/openk/db/model/RefGmStatus.java
index e702d8b..7c9eadc 100644
--- a/src/main/java/org/eclipse/openk/db/model/RefGmStatus.java
+++ b/src/main/java/org/eclipse/openk/db/model/RefGmStatus.java
@@ -39,6 +39,9 @@
     @Column(name = "name")
     private String name;
 
+    @Column(name = "color_code")
+    private String colorCode;
+
     @Column(name = "create_user")
     private String createUser;
 
@@ -60,6 +63,10 @@
 
     public void setName(String name) { this.name = name; }
 
+    public String getColorCode() { return colorCode; }
+
+    public void setColorCode(String colorCode) { this.colorCode = colorCode; }
+
     public String getCreateUser() { return createUser; }
 
     public void setCreateUser(String createUser) { this.createUser = createUser; }
diff --git a/src/main/java/org/eclipse/openk/db/model/RefUserDepartment.java b/src/main/java/org/eclipse/openk/db/model/RefTerritory.java
similarity index 75%
rename from src/main/java/org/eclipse/openk/db/model/RefUserDepartment.java
rename to src/main/java/org/eclipse/openk/db/model/RefTerritory.java
index 87099c6..c87b6da 100644
--- a/src/main/java/org/eclipse/openk/db/model/RefUserDepartment.java
+++ b/src/main/java/org/eclipse/openk/db/model/RefTerritory.java
@@ -11,6 +11,7 @@
  */
 package org.eclipse.openk.db.model;
 
+import java.io.Serializable;
 import java.util.Date;
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -22,21 +23,25 @@
 import javax.persistence.Table;
 
 /**
- * The persistent class for the "REF_USER_DEPARTMENT database table.
+ * The persistent class for the "REF_TERRITORY" database table.
  */
 @Entity
-@Table(name = "ref_user_department", schema = "public")
-@NamedQuery(name = "RefUserDepartment.findAll", query = "SELECT r FROM RefUserDepartment r")
-public class RefUserDepartment {
+@Table(name = "ref_territory", schema = "public")
+@NamedQuery(name = "RefTerritory.findAll", query = "SELECT r FROM RefTerritory r")
+public class RefTerritory implements Serializable{
+
     @Id
-    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "REF_USER_DEPARTMENT_ID_SEQ")
-    @SequenceGenerator(name = "REF_USER_DEPARTMENT_ID_SEQ", sequenceName = "REF_USER_DEPARTMENT_ID_SEQ", allocationSize = 1)
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "REF_TERRITORY_ID_SEQ")
+    @SequenceGenerator(name = "REF_TERRITORY_ID_SEQ", sequenceName = "REF_TERRITORY_ID_SEQ", allocationSize = 1)
     @Column(name = "id", updatable = false)
     private Integer id;
 
     @Column(name = "name")
     private String name;
 
+    @Column(name = "description")
+    private String description;
+
     @Column(name = "create_user")
     private String createUser;
 
@@ -57,6 +62,10 @@
 
     public void setName(String name) { this.name = name; }
 
+    public String getDescription() { return description; }
+
+    public void setDescription(String description) { this.description = description; }
+
     public String getCreateUser() { return createUser; }
 
     public void setCreateUser(String createUser) { this.createUser = createUser; }
@@ -73,3 +82,4 @@
 
     public void setModDate(Date modDate) { this.modDate = modDate; }
 }
+
diff --git a/src/main/java/org/eclipse/openk/db/model/TblGridMeasure.java b/src/main/java/org/eclipse/openk/db/model/TblGridMeasure.java
index 868a619..db85275 100644
--- a/src/main/java/org/eclipse/openk/db/model/TblGridMeasure.java
+++ b/src/main/java/org/eclipse/openk/db/model/TblGridMeasure.java
@@ -55,12 +55,6 @@
     @Column (name= "cost_center")
     private String costCenter;
 
-    @Column (name= "responsible_onsite_name")
-    private String responsibleOnSiteName;
-
-    @Column (name= "responsible_onsite_department")
-    private String responsibleOnSiteDepartment;
-
     @Column (name= "approval_by")
     private String approvalBy;
 
@@ -76,27 +70,9 @@
     @Column (name= "appointment_numberof")
     private Integer appointmentNumberOf;
 
-    @Column (name= "planned_starttime_first_sequence")
-    private Date plannedStarttimeFirstSequence;
-
     @Column (name= "planned_starttime_first_singlemeasure")
     private Date plannedStarttimeFirstSinglemeasure;
 
-    @Column (name= "planned_endtime_last_singlemeasure")
-    private Date plannedEndtimeLastSinglemeasure;
-
-    @Column (name= "planned_endtime_gridmeasure")
-    private Date plannedEndtimeGridmeasure;
-
-    @Column (name= "starttime_first_sequence")
-    private Date starttimeFirstSequence;
-
-    @Column (name= "starttime_first_singlemeasure")
-    private Date starttimeFirstSinglemeasure;
-
-    @Column (name= "endtime_last_singlemeasure")
-    private Date endtimeLastSinglemeasure;
-
     @Column (name= "endtime_gridmeasure")
     private Date endtimeGridmeasure;
 
@@ -167,14 +143,6 @@
 
     public void setCostCenter(String costCenter) { this.costCenter = costCenter; }
 
-    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
-
-    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
-
-    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
-
-    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
-
     public String getApprovalBy() { return approvalBy; }
 
     public void setApprovalBy(String approvalBy) { this.approvalBy = approvalBy; }
@@ -195,34 +163,10 @@
 
     public void setAppointmentNumberOf(Integer appointmentNumberOf) { this.appointmentNumberOf = appointmentNumberOf; }
 
-    public Date getPlannedStarttimeFirstSequence() { return plannedStarttimeFirstSequence; }
-
-    public void setPlannedStarttimeFirstSequence(Date plannedStarttimeFirstSequence) { this.plannedStarttimeFirstSequence = plannedStarttimeFirstSequence; }
-
     public Date getPlannedStarttimeFirstSinglemeasure() { return plannedStarttimeFirstSinglemeasure; }
 
     public void setPlannedStarttimeFirstSinglemeasure(Date plannedStarttimeFirstSinglemeasure) { this.plannedStarttimeFirstSinglemeasure = plannedStarttimeFirstSinglemeasure; }
 
-    public Date getPlannedEndtimeLastSinglemeasure() { return plannedEndtimeLastSinglemeasure; }
-
-    public void setPlannedEndtimeLastSinglemeasure(Date plannedEndtimeLastSinglemeasure) { this.plannedEndtimeLastSinglemeasure = plannedEndtimeLastSinglemeasure; }
-
-    public Date getPlannedEndtimeGridmeasure() { return plannedEndtimeGridmeasure; }
-
-    public void setPlannedEndtimeGridmeasure(Date plannedEndtimeGridmeasure) { this.plannedEndtimeGridmeasure = plannedEndtimeGridmeasure; }
-
-    public Date getStarttimeFirstSequence() { return starttimeFirstSequence; }
-
-    public void setStarttimeFirstSequence(Date starttimeFirstSequence) { this.starttimeFirstSequence = starttimeFirstSequence; }
-
-    public Date getStarttimeFirstSinglemeasure() { return starttimeFirstSinglemeasure; }
-
-    public void setStarttimeFirstSinglemeasure(Date starttimeFirstSinglemeasure) { this.starttimeFirstSinglemeasure = starttimeFirstSinglemeasure; }
-
-    public Date getEndtimeLastSinglemeasure() { return endtimeLastSinglemeasure; }
-
-    public void setEndtimeLastSinglemeasure(Date endtimeLastSinglemeasure) { this.endtimeLastSinglemeasure = endtimeLastSinglemeasure; }
-
     public Date getEndtimeGridmeasure() { return endtimeGridmeasure; }
 
     public void setEndtimeGridmeasure(Date endtimeGridmeasure) { this.endtimeGridmeasure = endtimeGridmeasure; }
diff --git a/src/main/java/org/eclipse/openk/db/model/TblSingleGridmeasure.java b/src/main/java/org/eclipse/openk/db/model/TblSingleGridmeasure.java
index daa9591..9d5a0a7 100644
--- a/src/main/java/org/eclipse/openk/db/model/TblSingleGridmeasure.java
+++ b/src/main/java/org/eclipse/openk/db/model/TblSingleGridmeasure.java
@@ -64,6 +64,15 @@
     @Column (name= "description")
     private String description;
 
+    @Column (name= "responsible_onsite_name")
+    private String responsibleOnSiteName;
+
+    @Column (name= "responsible_onsite_department")
+    private String responsibleOnSiteDepartment;
+
+    @Column (name= "network_control")
+    private String networkControl;
+
     @Column (name= "fk_tbl_gridmeasure")
     private Integer fkTblGridmeasure;
 
@@ -121,6 +130,20 @@
 
     public void setDescription(String description) { this.description = description; }
 
+    public static long getSerialVersionUID() { return serialVersionUID; }
+
+    public String getResponsibleOnSiteName() { return responsibleOnSiteName; }
+
+    public void setResponsibleOnSiteName(String responsibleOnSiteName) { this.responsibleOnSiteName = responsibleOnSiteName; }
+
+    public String getResponsibleOnSiteDepartment() { return responsibleOnSiteDepartment; }
+
+    public void setResponsibleOnSiteDepartment(String responsibleOnSiteDepartment) { this.responsibleOnSiteDepartment = responsibleOnSiteDepartment; }
+
+    public String getNetworkControl() { return networkControl; }
+
+    public void setNetworkControl(String networkControl) { this.networkControl = networkControl; }
+
     public Integer getFkTblGridmeasure() { return fkTblGridmeasure; }
 
     public void setFkTblGridmeasure(Integer fkTblGridmeasure) { this.fkTblGridmeasure = fkTblGridmeasure; }
diff --git a/src/main/java/org/eclipse/openk/db/model/TblSteps.java b/src/main/java/org/eclipse/openk/db/model/TblSteps.java
index fc33a59..4a09f3d 100644
--- a/src/main/java/org/eclipse/openk/db/model/TblSteps.java
+++ b/src/main/java/org/eclipse/openk/db/model/TblSteps.java
@@ -44,9 +44,21 @@
     @Column(name = "switching_object")
     private String switchingObject;
 
+    @Column(name = "type")
+    private String type;
+
+    @Column(name = "present_time")
+    private String presentTime;
+
+    @Column(name = "present_state")
+    private String presentState;
+
     @Column(name = "target_state")
     private String targetState;
 
+    @Column(name = "operator")
+    private String operator;
+
     @Column (name= "fk_tbl_single_gridmeasure")
     private Integer fkTblSingleGridmeasure;
 
@@ -80,6 +92,24 @@
         this.switchingObject = switchingObject;
     }
 
+    public static long getSerialVersionUID() { return serialVersionUID; }
+
+    public String getType() { return type; }
+
+    public void setType(String type) { this.type = type; }
+
+    public String getPresentTime() { return presentTime; }
+
+    public void setPresentTime(String presentTime) { this.presentTime = presentTime; }
+
+    public String getPresentState() { return presentState; }
+
+    public void setPresentState(String presentState) { this.presentState = presentState; }
+
+    public String getOperator() { return operator; }
+
+    public void setOperator(String operator) { this.operator = operator; }
+
     public String getTargetState() {
         return targetState;
     }
@@ -92,9 +122,7 @@
         return fkTblSingleGridmeasure;
     }
 
-    public void setFkTblSingleGridmeasure(Integer fkTblSingleGridmeasure) {
-        this.fkTblSingleGridmeasure = fkTblSingleGridmeasure;
-    }
+    public void setFkTblSingleGridmeasure(Integer fkTblSingleGridmeasure) { this.fkTblSingleGridmeasure = fkTblSingleGridmeasure; }
 
     public String getCreateUser() { return createUser; }
 
diff --git a/src/main/java/org/eclipse/openk/resources/MasterDataResource.java b/src/main/java/org/eclipse/openk/resources/MasterDataResource.java
index 280ec3d..8ba0542 100644
--- a/src/main/java/org/eclipse/openk/resources/MasterDataResource.java
+++ b/src/main/java/org/eclipse/openk/resources/MasterDataResource.java
@@ -62,15 +62,18 @@
                 .getBranches());
     }
 
-    @ApiOperation(value = "BranchLevels", notes = "This service gets all BranchLevels from the Database")
-    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = BranchLevel.class,reference = "#/definitions/BranchLevels") } )
+    @ApiOperation(value = "BranchLevels", notes = "This service gets all BranchLevels for a certain branch from the Database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = BranchLevel.class,reference = "#/definitions/BranchLevel") } )
     @GET
-    @Path("/getBranchLevels")
+    @Path("/getBranchLevelsByBranch/{branchId}")
     @Produces(MediaType.APPLICATION_JSON)
     @Timed
-    public Response getBranchLevels(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+    public Response getBranchLevelsByBranch(@ApiParam(name ="Authorization", value ="JWT Token", required =true)
+                                   @HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt,
+                                   @ApiParam(name ="id", value ="id", required =true)
+                                   @PathParam("branchId") String branchId) {
         return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new MasterDataBackendController()
-                .getBranchLevels());
+                .getBranchLevelsByBranch(Integer.parseInt(branchId)));
     }
 
     @ApiOperation(value = "GmStatus", notes = "This service gets all possible Status from the Database")
@@ -95,15 +98,17 @@
                 .getCostCenters());
     }
 
-    @ApiOperation(value = "UserDepartment", notes = "This service gets all possible User-Departments from the Database")
-    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = UserDepartment.class,reference = "#/definitions/UserDepartment") } )
+
+
+    @ApiOperation(value = "Territory", notes = "This service retrieves all territories as Strings from the Database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = Territory.class,reference = "#/definitions/Territory") } )
     @GET
-    @Path("/getUserDepartments")
+    @Path("/getTerritories")
     @Produces(MediaType.APPLICATION_JSON)
     @Timed
-    public Response getUserDepartments(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+    public Response getTerritories(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
         return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new MasterDataBackendController()
-                .getUserDepartments());
+                .getTerritories());
     }
 
     @ApiOperation(value = "UserSettings", notes = "This service gets all User-Settings for the given Username from the Database")
diff --git a/src/main/java/org/eclipse/openk/resources/PlannedGridMeasuresResource.java b/src/main/java/org/eclipse/openk/resources/PlannedGridMeasuresResource.java
index 43f7d6c..0d4068f 100644
--- a/src/main/java/org/eclipse/openk/resources/PlannedGridMeasuresResource.java
+++ b/src/main/java/org/eclipse/openk/resources/PlannedGridMeasuresResource.java
@@ -24,6 +24,7 @@
 import org.apache.http.HttpStatus;
 import org.apache.log4j.Logger;
 import org.eclipse.openk.api.BackendSettings;
+import org.eclipse.openk.api.Calender;
 import org.eclipse.openk.api.Document;
 import org.eclipse.openk.api.FilterObject;
 import org.eclipse.openk.api.GridMeasure;
@@ -120,10 +121,10 @@
 
         FilterObject filterObjectPro = JsonGeneratorBase.getGson().fromJson(filterObject, FilterObject.class);
         return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
-                .getGridMeasures(filterObjectPro));
+                .getGridMeasures(modusr, filterObjectPro));
     }
 
-    @ApiOperation(value = "Get grid measure", notes = "This service retrieves a grid measure from the database using the id")
+    @ApiOperation(value = "Get grid measure", notes = "This service retrieves a grid measure from the database using the id and a filter-object")
     @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = GridMeasure.class,reference = "#/definitions/GridMeasure") } )
     @GET
     @Path("/getGridMeasure/{id}")
@@ -138,6 +139,19 @@
                 .getGridMeasureById(Integer.parseInt(id)));
     }
 
+    @ApiOperation(value = "Get Calender", notes = "This service gets single gridmeasures for the calender view")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = Calender.class,reference = "#/definitions/Calender") } )
+    @GET
+    @Path("/getCalender")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getCalender(@ApiParam(name ="Authorization", value ="JWT Token", required =true)
+                                    @HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getCalender());
+    }
+
 
     @ApiOperation(value = "Get Current Reminders", notes = "This service retrieves a list of Gridmeasure-Ids")
     @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = GridMeasure.class,reference = "#/definitions/GridMeasure") } )
@@ -152,6 +166,19 @@
                 .getCurrentReminders(jwt));
     }
 
+    @ApiOperation(value = "Get Expired Reminders", notes = "This service retrieves a list of Gridmeasure-Ids")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = GridMeasure.class,reference = "#/definitions/GridMeasure") } )
+    @GET
+    @Path("/getExpiredReminders")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getExpiredReminders(@ApiParam(name ="Authorization", value ="JWT Token", required =true)
+                                        @HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getExpiredReminders(jwt));
+    }
+
 
     @ApiOperation(value = "Upload a grid measure document", notes = "This service uploads and stores a document in the database")
     @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = Document.class,reference = "#/definitions/Document") } )
@@ -360,6 +387,64 @@
                 .setGridConfig(isSkipForApproval, isEndAfterApproved, isSkipRequesting, isEndAfterReleased, isSkipInWork));
     }
 
+
+    @ApiOperation(value = "responsibles on-site", notes = "This service retrieves all responsibles on-site from single gridmeasures in the database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = String.class,reference = "#/definitions/GridMeasure.responsibleOnSiteName") } )
+    @GET
+    @Path("/getResponsiblesOnSiteFromSingleGridmeasures")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getResponsiblesOnSiteFromSingleGridmeasures(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getResponsiblesOnSiteFromSingleGridmeasures());
+    }
+
+
+    @ApiOperation(value = "network controls", notes = "This service retrieves all network controls as Strings from the database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = String.class,reference = "#/definitions/SingleGridmeasure.networkControl") } )
+    @GET
+    @Path("/getNetworkControlsFromSingleGridmeasures")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getNetworkControlsFromSingleGridmeasures(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getNetworkControlsFromSingleGridmeasures());
+    }
+
+    @ApiOperation(value = "user departments", notes = "This service gets all known User-Departments for the field responsible_onsite_department as Strings from the database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = String.class) } )
+    @GET
+    @Path("/getUserDepartmentsResponsibleOnSite")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getUserDepartmentsResponsibleOnSite(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getUserDepartmentsResponsibleOnSite());
+    }
+
+    @ApiOperation(value = "user departments", notes = "This service gets all known User-Departments for the field create_user_department as Strings from the database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = String.class) } )
+    @GET
+    @Path("/getUserDepartmentsCreated")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getUserDepartmentsCreated(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getUserDepartmentsCreated());
+    }
+
+    @ApiOperation(value = "user departments", notes = "This service gets all known User-Departments for the field mod_user_department as Strings from the database")
+    @ApiResponses( value ={ @ApiResponse(code = 200, message = "OK", response = String.class) } )
+    @GET
+    @Path("/getUserDepartmentsModified")
+    @Produces(MediaType.APPLICATION_JSON)
+    @Timed
+    public Response getUserDepartmentsModified(@ApiParam(name ="Authorization", value ="JWT Token", required =true)@HeaderParam(Globals.KEYCLOAK_AUTH_TAG) String jwt) {
+        return invokeRunnable(jwt, SecureType.NORMAL, modusr -> new GridMeasureBackendController()
+                .getUserDepartmentsModified());
+    }
+
+
     private Response responseFromException(Exception e) {
         int errcode;
         String retJson;
diff --git a/src/test/java/org/eclipse/openk/TestUtils/BackendConfigTestHelper.java b/src/test/java/org/eclipse/openk/TestUtils/BackendConfigTestHelper.java
deleted file mode 100644
index 9857c30..0000000
--- a/src/test/java/org/eclipse/openk/TestUtils/BackendConfigTestHelper.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * *****************************************************************************
- *  Copyright © 2018 PTA GmbH.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *
- *      http://www.eclipse.org/legal/epl-v10.html
- *
- * *****************************************************************************
- */
-
-package org.eclipse.openk.TestUtils;
-
-import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.api.BackendSettings;
-import org.eclipse.openk.api.BackendSettingsTest;
-import org.eclipse.openk.core.controller.BackendConfig;
-
-public class BackendConfigTestHelper {
-
-  public static void initDefaultBackendConfig(){
-    BackendConfig.resetBackendConfigUnitTests();
-    BackendSettings bs = BackendSettingsTest.getBackendSettings();
-    PlannedGridMeasuresConfiguration measuresConfiguration = new PlannedGridMeasuresConfiguration();
-    measuresConfiguration.setPortalBaseURL("portalBaseUrlMock");
-    BackendConfig.configure(measuresConfiguration, bs);
-  }
-
-
-}
diff --git a/src/test/java/org/eclipse/openk/TestUtils/TestHelper.java b/src/test/java/org/eclipse/openk/TestUtils/TestHelper.java
new file mode 100644
index 0000000..6cec61f
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/TestUtils/TestHelper.java
@@ -0,0 +1,63 @@
+/*
+ * *****************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *      http://www.eclipse.org/legal/epl-v10.html
+ *
+ * *****************************************************************************
+ */
+
+package org.eclipse.openk.TestUtils;
+
+import java.io.IOException;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration.RabbitmqConfiguration;
+import org.eclipse.openk.api.BackendSettings;
+import org.eclipse.openk.api.BackendSettingsTest;
+import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailmanagerTest;
+
+public class TestHelper {
+
+  public static void initDefaultBackendConfig(){
+    BackendConfig.resetBackendConfigUnitTests();
+
+    RabbitmqConfiguration rabbitmqConfiguration = new RabbitmqConfiguration();
+    rabbitmqConfiguration.setUser("admin");
+    rabbitmqConfiguration.setPassword("admin");
+    rabbitmqConfiguration.setExchangeName("openk-pgm-exchange");
+    rabbitmqConfiguration.setHost("MockHost");
+    rabbitmqConfiguration.setPort("5672");
+
+    BackendSettings bs = BackendSettingsTest.getBackendSettings();
+    PlannedGridMeasuresConfiguration measuresConfiguration = new PlannedGridMeasuresConfiguration();
+    measuresConfiguration.setRabbitmqConfiguration(rabbitmqConfiguration);
+    measuresConfiguration.setPortalBaseURL("portalBaseUrlMock");
+    BackendConfig.configure(measuresConfiguration, bs);
+  }
+
+  public static GridMeasure createGridMeasure(int statusValue) {
+    GridMeasure gm = new GridMeasure();
+    gm.setId(3);
+    gm.setTitle("Yo Title");
+    gm.setStatusId(statusValue);
+    java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
+    java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
+    gm.setPlannedStarttimeFirstSinglemeasure(date);
+    return gm;
+  }
+
+  public static PlgmProcessSubject createProcessSubject(int statusValue){
+    GridMeasure gm = createGridMeasure(statusValue);
+    PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
+    subject.setGridMeasure(gm);
+    return subject;
+  }
+
+}
diff --git a/src/test/java/org/eclipse/openk/api/BackendSettingsTest.java b/src/test/java/org/eclipse/openk/api/BackendSettingsTest.java
index 27ba9bf..31d71f5 100644
--- a/src/test/java/org/eclipse/openk/api/BackendSettingsTest.java
+++ b/src/test/java/org/eclipse/openk/api/BackendSettingsTest.java
@@ -101,6 +101,41 @@
         assertEquals(backendSettings.isSkipInWork(), backendSettings2.isSkipInWork());
     }
 
+    ///////////////////////////
+
+
+    @Test
+    public void testGetIdForAppointmentRepetition()throws IOException {
+        BackendSettings.AppointmentRepetition backendSettings = new BackendSettings.AppointmentRepetition();
+        backendSettings.setId(1);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(backendSettings);
+
+        BackendSettings.AppointmentRepetition backendSettings2 = om.readValue(jsonString, BackendSettings.AppointmentRepetition.class);
+
+        assertEquals(backendSettings.getId(), backendSettings2.getId());
+    }
+
+    @Test
+    public void testGetNameForAppointmentRepetition()throws IOException {
+        BackendSettings.AppointmentRepetition backendSettings = new BackendSettings.AppointmentRepetition();
+        backendSettings.setName("täglich");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(backendSettings);
+
+        BackendSettings.AppointmentRepetition backendSettings2 = om.readValue(jsonString, BackendSettings.AppointmentRepetition.class);
+
+        assertEquals(backendSettings.getName(), backendSettings2.getName());
+    }
+
+
+    ////////////////////////
+
+
+
+
     public static BackendSettings getBackendSettings() {
         ResourceLoaderBase loaderBase = new ResourceLoaderBase();
         String backendSettingsString = loaderBase.loadFromPath("./backendSettings.json");
diff --git a/src/test/java/org/eclipse/openk/api/CalenderTest.java b/src/test/java/org/eclipse/openk/api/CalenderTest.java
new file mode 100644
index 0000000..53831e8
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/api/CalenderTest.java
@@ -0,0 +1,121 @@
+/**
+ ******************************************************************************
+ * Copyright © 2018 PTA GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ *
+ *     http://www.eclipse.org/legal/epl-v10.html
+ *
+ ******************************************************************************
+ */
+package org.eclipse.openk.api;
+
+import static org.junit.Assert.assertEquals;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.util.Date;
+
+import org.junit.Test;
+
+public class CalenderTest {
+
+    @Test
+    public void testGetGridMeasureId()throws IOException {
+        Calender calender = new Calender();
+        calender.setGridMeasureId(5);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getGridMeasureId(), calender2.getGridMeasureId());
+    }
+
+    @Test
+    public void testGetGridMeasureTitle()throws IOException {
+        Calender calender = new Calender();
+        calender.setGridMeasureTitle("Test 5");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getGridMeasureTitle(), calender2.getGridMeasureTitle());
+    }
+
+    @Test
+    public void testGetGridMeasureStatusId()throws IOException {
+        Calender calender = new Calender();
+        calender.setGridMeasureStatusId(3);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getGridMeasureStatusId(), calender2.getGridMeasureStatusId());
+    }
+
+    @Test
+    public void testGetSingleGridMeasureId()throws IOException {
+        Calender calender = new Calender();
+        calender.setSingleGridMeasureId(2);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getSingleGridMeasureId(), calender2.getSingleGridMeasureId());
+    }
+
+    @Test
+    public void testGetSingleGridMeasureTitle()throws IOException {
+        Calender calender = new Calender();
+        calender.setSingleGridMeasureTitle("Test Single 2");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getSingleGridMeasureTitle(), calender2.getSingleGridMeasureTitle());
+    }
+
+    @Test
+    public void testGetPlannedStarttimSinglemeasure()throws IOException {
+        Calender calender = new Calender();
+
+        java.util.Date plannedStarttimeSinglemeasure = new Date(System.currentTimeMillis());
+        calender.setPlannedStarttimSinglemeasure(plannedStarttimeSinglemeasure);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getPlannedStarttimSinglemeasure(), calender2.getPlannedStarttimSinglemeasure());
+    }
+
+    @Test
+    public void testGetPlannedEndtimeSinglemeasure()throws IOException {
+        Calender calender = new Calender();
+
+        java.util.Date plannedEndtimeSinglemeasure = new Date(System.currentTimeMillis());
+        calender.setPlannedEndtimeSinglemeasure(plannedEndtimeSinglemeasure);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(calender);
+
+        Calender calender2 = om.readValue(jsonString, Calender.class);
+
+        assertEquals(calender.getPlannedEndtimeSinglemeasure(), calender2.getPlannedEndtimeSinglemeasure());
+    }
+
+
+}
+
diff --git a/src/test/java/org/eclipse/openk/api/GmStatusTest.java b/src/test/java/org/eclipse/openk/api/GmStatusTest.java
index fe2d75e..a1047b5 100644
--- a/src/test/java/org/eclipse/openk/api/GmStatusTest.java
+++ b/src/test/java/org/eclipse/openk/api/GmStatusTest.java
@@ -45,4 +45,17 @@
         assertEquals(status.getName(), status2.getName());
     }
 
+    @Test
+    public void testGetColorCode()throws IOException {
+        GmStatus status = new GmStatus();
+        status.setColorCode("#222222");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(status);
+
+        GmStatus status2 = om.readValue(jsonString, GmStatus.class);
+
+        assertEquals(status.getColorCode(), status2.getColorCode());
+    }
+
 }
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/api/GridmeasureTest.java b/src/test/java/org/eclipse/openk/api/GridmeasureTest.java
index 1f757e7..06779ec 100644
--- a/src/test/java/org/eclipse/openk/api/GridmeasureTest.java
+++ b/src/test/java/org/eclipse/openk/api/GridmeasureTest.java
@@ -125,32 +125,6 @@
     }
 
     @Test
-    public void testGetResponsibleOnSiteName()throws IOException {
-        GridMeasure gm = new GridMeasure();
-        gm.setResponsibleOnSiteName("Rudi Responsible");
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getResponsibleOnSiteName(), gm2.getResponsibleOnSiteName());
-    }
-
-    @Test
-    public void testGetResponsibleOnSiteDepartment()throws IOException {
-        GridMeasure gm = new GridMeasure();
-        gm.setResponsibleOnSiteDepartment("Department YY");
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getResponsibleOnSiteDepartment(), gm2.getResponsibleOnSiteDepartment());
-    }
-
-    @Test
     public void testGetApprovalBy()throws IOException {
         GridMeasure gm = new GridMeasure();
         gm.setApprovalBy("Adam Approver");
@@ -219,21 +193,6 @@
     }
 
     @Test
-    public void testGetPlannedStarttimeFirstSequence()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date datePlannedStarttimeFirstSequence = new Date(System.currentTimeMillis());
-        gm.setPlannedStarttimeFirstSequence(datePlannedStarttimeFirstSequence);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getPlannedStarttimeFirstSequence(), gm2.getPlannedStarttimeFirstSequence());
-    }
-
-    @Test
     public void testGetPlannedStarttimeFirstSinglemeasure()throws IOException {
         GridMeasure gm = new GridMeasure();
 
@@ -249,82 +208,6 @@
     }
 
     @Test
-    public void testGetPlannedEndtimeLastSinglemeasure()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date datePlannedEndtimeLastSinglemeasure = new Date(System.currentTimeMillis());
-        gm.setPlannedEndtimeLastSinglemeasure(datePlannedEndtimeLastSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getPlannedEndtimeLastSinglemeasure(), gm2.getPlannedEndtimeLastSinglemeasure());
-    }
-
-    @Test
-    public void testGetPlannedEndtimeGridmeasure()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date datePlannedEndtimeGridmeasure = new Date(System.currentTimeMillis());
-        gm.setPlannedEndtimeGridmeasure(datePlannedEndtimeGridmeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getPlannedEndtimeGridmeasure(), gm2.getPlannedEndtimeGridmeasure());
-    }
-
-    @Test
-    public void testGetStarttimeFirstSequence()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date dateStarttimeFirstSequence = new Date(System.currentTimeMillis());
-        gm.setStarttimeFirstSequence(dateStarttimeFirstSequence);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getStarttimeFirstSequence(), gm2.getStarttimeFirstSequence());
-    }
-
-
-    @Test
-    public void testGetStarttimeFirstSinglemeasure()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date dateStarttimeFirstSinglemeasure = new Date(System.currentTimeMillis());
-        gm.setStarttimeFirstSinglemeasure(dateStarttimeFirstSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getStarttimeFirstSinglemeasure(), gm2.getStarttimeFirstSinglemeasure());
-    }
-
-    @Test
-    public void testGetEndtimeLastSinglemeasure()throws IOException {
-        GridMeasure gm = new GridMeasure();
-
-        java.util.Date dateEndtimeLastSinglemeasure = new Date(System.currentTimeMillis());
-        gm.setEndtimeLastSinglemeasure(dateEndtimeLastSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(gm);
-
-        GridMeasure gm2 = om.readValue(jsonString, GridMeasure.class);
-
-        assertEquals(gm.getEndtimeLastSinglemeasure(), gm2.getEndtimeLastSinglemeasure());
-    }
-
-    @Test
     public void testGetEndtimeGridmeasure()throws IOException {
         GridMeasure gm = new GridMeasure();
 
diff --git a/src/test/java/org/eclipse/openk/api/HGridMeasureTest.java b/src/test/java/org/eclipse/openk/api/HGridMeasureTest.java
index 2a570a5..e5549d7 100644
--- a/src/test/java/org/eclipse/openk/api/HGridMeasureTest.java
+++ b/src/test/java/org/eclipse/openk/api/HGridMeasureTest.java
@@ -166,32 +166,6 @@
     }
 
     @Test
-    public void testGetResponsibleOnSiteName()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-        hgm.setResponsibleOnSiteName("Rudi Responsible");
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getResponsibleOnSiteName(), hgm2.getResponsibleOnSiteName());
-    }
-
-    @Test
-    public void testGetResponsibleOnSiteDepartment()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-        hgm.setResponsibleOnSiteDepartment("Department YY");
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getResponsibleOnSiteDepartment(), hgm2.getResponsibleOnSiteDepartment());
-    }
-
-    @Test
     public void testGetApprovalBy()throws IOException {
         HGridMeasure hgm = new HGridMeasure();
         hgm.setApprovalBy("Adam Approver");
@@ -259,20 +233,7 @@
         assertEquals(hgm.getAppointmentNumberOf(), hgm2.getAppointmentNumberOf());
     }
 
-    @Test
-    public void testGetPlannedStarttimeFirstSequence()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
 
-        Date datePlannedStarttimeFirstSequence = new Date(System.currentTimeMillis());
-        hgm.setPlannedStarttimeFirstSequence(datePlannedStarttimeFirstSequence);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getPlannedStarttimeFirstSequence(), hgm2.getPlannedStarttimeFirstSequence());
-    }
 
     @Test
     public void testGetPlannedStarttimeFirstSinglemeasure()throws IOException {
@@ -288,67 +249,6 @@
 
         assertEquals(hgm.getPlannedStarttimeFirstSinglemeasure(), hgm2.getPlannedStarttimeFirstSinglemeasure());
     }
-
-    @Test
-    public void testGetPlannedEndtimeLastSinglemeasure()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-
-        Date datePlannedEndtimeLastSinglemeasure = new Date(System.currentTimeMillis());
-        hgm.setPlannedEndtimeLastSinglemeasure(datePlannedEndtimeLastSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getPlannedEndtimeLastSinglemeasure(), hgm2.getPlannedEndtimeLastSinglemeasure());
-    }
-
-    @Test
-    public void testGetStarttimeFirstSequence()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-
-        Date dateStarttimeFirstSequence = new Date(System.currentTimeMillis());
-        hgm.setStarttimeFirstSequence(dateStarttimeFirstSequence);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getStarttimeFirstSequence(), hgm2.getStarttimeFirstSequence());
-    }
-
-
-    @Test
-    public void testGetStarttimeFirstSinglemeasure()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-
-        Date dateStarttimeFirstSinglemeasure = new Date(System.currentTimeMillis());
-        hgm.setStarttimeFirstSinglemeasure(dateStarttimeFirstSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getStarttimeFirstSinglemeasure(), hgm2.getStarttimeFirstSinglemeasure());
-    }
-
-    @Test
-    public void testGetEndtimeLastSinglemeasure()throws IOException {
-        HGridMeasure hgm = new HGridMeasure();
-
-        Date dateEndtimeLastSinglemeasure = new Date(System.currentTimeMillis());
-        hgm.setEndtimeLastSinglemeasure(dateEndtimeLastSinglemeasure);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(hgm);
-
-        HGridMeasure hgm2 = om.readValue(jsonString, HGridMeasure.class);
-
-        assertEquals(hgm.getEndtimeLastSinglemeasure(), hgm2.getEndtimeLastSinglemeasure());
-    }
     
 
     @Test
diff --git a/src/test/java/org/eclipse/openk/api/SingleGridmeasureTest.java b/src/test/java/org/eclipse/openk/api/SingleGridmeasureTest.java
index 7f147f1..70ef4bd 100644
--- a/src/test/java/org/eclipse/openk/api/SingleGridmeasureTest.java
+++ b/src/test/java/org/eclipse/openk/api/SingleGridmeasureTest.java
@@ -119,6 +119,32 @@
         assertEquals(sgm.getDescription(), sgm2.getDescription());
     }
 
+    @Test
+    public void testGetResponsibleOnSiteName()throws IOException {
+        SingleGridmeasure sgm = new SingleGridmeasure();
+        sgm.setResponsibleOnSiteName("Rudi Responsible");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(sgm);
+
+        SingleGridmeasure sgm2 = om.readValue(jsonString, SingleGridmeasure.class);
+
+        assertEquals(sgm.getResponsibleOnSiteName(), sgm2.getResponsibleOnSiteName());
+    }
+
+    @Test
+    public void testGetResponsibleOnSiteDepartment()throws IOException {
+        SingleGridmeasure sgm = new SingleGridmeasure();
+        sgm.setResponsibleOnSiteDepartment("Department YY");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(sgm);
+
+        SingleGridmeasure sgm2 = om.readValue(jsonString, SingleGridmeasure.class);
+
+        assertEquals(sgm.getResponsibleOnSiteDepartment(), sgm2.getResponsibleOnSiteDepartment());
+    }
+
 }
 
 
diff --git a/src/test/java/org/eclipse/openk/api/TerritoryTest.java b/src/test/java/org/eclipse/openk/api/TerritoryTest.java
new file mode 100644
index 0000000..b478bd6
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/api/TerritoryTest.java
@@ -0,0 +1,61 @@
+/**
+ ******************************************************************************
+ * Copyright © 2018 PTA GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ *
+ *     http://www.eclipse.org/legal/epl-v10.html
+ *
+ ******************************************************************************
+ */
+package org.eclipse.openk.api;
+
+import static org.junit.Assert.assertEquals;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import org.junit.Test;
+
+public class TerritoryTest {
+
+    @Test
+    public void testGetId()throws IOException {
+        Territory territory = new Territory();
+        territory.setId(6);
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(territory);
+
+        Territory territory2 = om.readValue(jsonString, Territory.class);
+
+        assertEquals(territory.getId(), territory2.getId());
+    }
+
+    @Test
+    public void testGetName()throws IOException {
+        Territory territory = new Territory();
+        territory.setName("territoryName");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(territory);
+
+        Territory territory2 = om.readValue(jsonString, Territory.class);
+
+        assertEquals(territory.getName(), territory2.getName());
+    }
+
+    @Test
+    public void testGetDescription()throws IOException {
+        Territory territory = new Territory();
+        territory.setDescription("Territory Description");
+
+        ObjectMapper om = new ObjectMapper();
+        String jsonString = om.writeValueAsString(territory);
+
+        Territory territory2 = om.readValue(jsonString, Territory.class);
+
+        assertEquals(territory.getDescription(), territory2.getDescription());
+    }
+}
+
diff --git a/src/test/java/org/eclipse/openk/api/UserDepartmentTest.java b/src/test/java/org/eclipse/openk/api/UserDepartmentTest.java
deleted file mode 100644
index 902aaf7..0000000
--- a/src/test/java/org/eclipse/openk/api/UserDepartmentTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- ******************************************************************************
- * Copyright © 2018 PTA GmbH.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- *
- *     http://www.eclipse.org/legal/epl-v10.html
- *
- ******************************************************************************
- */
-package org.eclipse.openk.api;
-
-import static org.junit.Assert.assertEquals;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.IOException;
-import org.junit.Test;
-
-public class UserDepartmentTest {
-
-    @Test
-    public void testGetId()throws IOException {
-        UserDepartment userDepartment = new UserDepartment();
-        userDepartment.setId(78);
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(userDepartment);
-
-        UserDepartment userDepartment2 = om.readValue(jsonString, UserDepartment.class);
-
-        assertEquals(userDepartment.getId(), userDepartment2.getId());
-    }
-
-    @Test
-    public void testGetName()throws IOException {
-        UserDepartment userDepartment = new UserDepartment();
-        userDepartment.setName("UserDepartmentName");
-
-        ObjectMapper om = new ObjectMapper();
-        String jsonString = om.writeValueAsString(userDepartment);
-
-        UserDepartment userDepartment2 = om.readValue(jsonString, UserDepartment.class);
-
-        assertEquals(userDepartment.getName(), userDepartment2.getName());
-    }
-
-}
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/common/mapper/GridMeasureMapperTest.java b/src/test/java/org/eclipse/openk/common/mapper/GridMeasureMapperTest.java
index b232aaa..7609910 100644
--- a/src/test/java/org/eclipse/openk/common/mapper/GridMeasureMapperTest.java
+++ b/src/test/java/org/eclipse/openk/common/mapper/GridMeasureMapperTest.java
@@ -117,20 +117,12 @@
         mGm.setRemark("Remark");
         mGm.setSwitchingObject("Transformator");
         mGm.setCostCenter("centre di costa brava");
-        mGm.setResponsibleOnSiteName("Robin Responsible");
-        mGm.setResponsibleOnSiteDepartment("Department ABC");
         mGm.setApprovalBy("Armin Approver");
         mGm.setAreaOfSwitching("Northeast");
         mGm.setAppointmentRepetition("monthly");
         mGm.setAppointmentStartdate(tsAppointmenStartdate);
         mGm.setAppointmentNumberOf(6);
-        mGm.setPlannedStarttimeFirstSequence(tsPlannedStarttimeFirstSequence);
         mGm.setPlannedStarttimeFirstSinglemeasure(tsPlannedStarttimeFirstSinglemeasure);
-        mGm.setPlannedEndtimeLastSinglemeasure(tsPlannedEndtimeLastSinglemeasure);
-        mGm.setPlannedEndtimeGridmeasure(tsPlannedEndtimeGridmeasure);
-        mGm.setStarttimeFirstSequence(tsStarttimeFirstSequence);
-        mGm.setStarttimeFirstSinglemeasure(tsStarttimeFirstSinglemeasure);
-        mGm.setEndtimeLastSinglemeasure(tsEndtimeLastSinglemeasure);
         mGm.setEndtimeGridmeasure(tsEndtimeGridmeasure);
         mGm.setTimeOfReallocation(tsTimeOfReallocation);
         mGm.setDescription("This is a description");
@@ -164,20 +156,12 @@
         vmGm.setRemark("Remark");
         vmGm.setSwitchingObject("Transformator");
         vmGm.setCostCenter("centre di costa brava");
-        vmGm.setResponsibleOnSiteName("Robin Responsible");
-        vmGm.setResponsibleOnSiteDepartment("Department ABC");
         vmGm.setApprovalBy("Armin Approver");
         vmGm.setAreaOfSwitching("Northeast");
         vmGm.setAppointmentRepetition("monthly");
         vmGm.setAppointmentStartdate(tsAppointmenStartdate);
         vmGm.setAppointmentNumberOf(6);
-        vmGm.setPlannedStarttimeFirstSequence(tsPlannedStarttimeFirstSequence);
         vmGm.setPlannedStarttimeFirstSinglemeasure(tsPlannedStarttimeFirstSinglemeasure);
-        vmGm.setPlannedEndtimeLastSinglemeasure(tsPlannedEndtimeLastSinglemeasure);
-        vmGm.setPlannedEndtimeGridmeasure(tsPlannedEndtimeGridmeasure);
-        vmGm.setStarttimeFirstSequence(tsStarttimeFirstSequence);
-        vmGm.setStarttimeFirstSinglemeasure(tsStarttimeFirstSinglemeasure);
-        vmGm.setEndtimeLastSinglemeasure(tsEndtimeLastSinglemeasure);
         vmGm.setEndtimeGridmeasure(tsEndtimeGridmeasure);
         vmGm.setTimeOfReallocation(tsTimeOfReallocation);
         vmGm.setDescription("This is a description");
@@ -214,20 +198,12 @@
         assertEquals(mGm.getRemark(), testmodel.getRemark());
         assertEquals(mGm.getSwitchingObject(), testmodel.getSwitchingObject());
         assertEquals(mGm.getCostCenter(), testmodel.getCostCenter());
-        assertEquals(mGm.getResponsibleOnSiteName(), testmodel.getResponsibleOnSiteName());
-        assertEquals(mGm.getResponsibleOnSiteDepartment(), testmodel.getResponsibleOnSiteDepartment());
         assertEquals(mGm.getApprovalBy(), testmodel.getApprovalBy());
         assertEquals(mGm.getAreaOfSwitching(), testmodel.getAreaOfSwitching());
         assertEquals(mGm.getAppointmentRepetition(), testmodel.getAppointmentRepetition());
         assertEquals(mGm.getAppointmentStartdate(), testmodel.getAppointmentStartdate());
         assertEquals(mGm.getAppointmentNumberOf(), testmodel.getAppointmentNumberOf());
-        assertEquals(mGm.getPlannedStarttimeFirstSequence(), testmodel.getPlannedStarttimeFirstSequence());
         assertEquals(mGm.getPlannedStarttimeFirstSinglemeasure(), testmodel.getPlannedStarttimeFirstSinglemeasure());
-        assertEquals(mGm.getPlannedEndtimeLastSinglemeasure(), testmodel.getPlannedEndtimeLastSinglemeasure());
-        assertEquals(mGm.getPlannedEndtimeGridmeasure(), testmodel.getPlannedEndtimeGridmeasure());
-        assertEquals(mGm.getStarttimeFirstSequence(), testmodel.getStarttimeFirstSequence());
-        assertEquals(mGm.getStarttimeFirstSinglemeasure(), testmodel.getStarttimeFirstSinglemeasure());
-        assertEquals(mGm.getEndtimeLastSinglemeasure(), testmodel.getEndtimeLastSinglemeasure());
         assertEquals(mGm.getEndtimeGridmeasure(), testmodel.getEndtimeGridmeasure());
         assertEquals(mGm.getTimeOfReallocation(), testmodel.getTimeOfReallocation());
         assertEquals(mGm.getDescription(), testmodel.getDescription());
@@ -251,20 +227,12 @@
         assertEquals(vmGm.getRemark(), testVmodel.getRemark());
         assertEquals(vmGm.getSwitchingObject(), testVmodel.getSwitchingObject());
         assertEquals(vmGm.getCostCenter(), testVmodel.getCostCenter());
-        assertEquals(vmGm.getResponsibleOnSiteName(), testVmodel.getResponsibleOnSiteName());
-        assertEquals(vmGm.getResponsibleOnSiteDepartment(), testVmodel.getResponsibleOnSiteDepartment());
         assertEquals(vmGm.getApprovalBy(), testVmodel.getApprovalBy());
         assertEquals(vmGm.getAreaOfSwitching(), testVmodel.getAreaOfSwitching());
         assertEquals(vmGm.getAppointmentRepetition(), testVmodel.getAppointmentRepetition());
         assertEquals(vmGm.getAppointmentStartdate(), testVmodel.getAppointmentStartdate());
         assertEquals(vmGm.getAppointmentNumberOf(), testVmodel.getAppointmentNumberOf());
-        assertEquals(vmGm.getPlannedStarttimeFirstSequence(), testVmodel.getPlannedStarttimeFirstSequence());
         assertEquals(vmGm.getPlannedStarttimeFirstSinglemeasure(), testVmodel.getPlannedStarttimeFirstSinglemeasure());
-        assertEquals(vmGm.getPlannedEndtimeLastSinglemeasure(), testVmodel.getPlannedEndtimeLastSinglemeasure());
-        assertEquals(vmGm.getPlannedEndtimeGridmeasure(), testVmodel.getPlannedEndtimeGridmeasure());
-        assertEquals(vmGm.getStarttimeFirstSequence(), testVmodel.getStarttimeFirstSequence());
-        assertEquals(vmGm.getStarttimeFirstSinglemeasure(), testVmodel.getStarttimeFirstSinglemeasure());
-        assertEquals(vmGm.getEndtimeLastSinglemeasure(), testVmodel.getEndtimeLastSinglemeasure());
         assertEquals(vmGm.getEndtimeGridmeasure(), testVmodel.getEndtimeGridmeasure());
         assertEquals(vmGm.getTimeOfReallocation(), testVmodel.getTimeOfReallocation());
         assertEquals(vmGm.getDescription(), testVmodel.getDescription());
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ConfigDecisionTaskTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ConfigDecisionTaskTest.java
index 0f591c9..023e5b5 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ConfigDecisionTaskTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ConfigDecisionTaskTest.java
@@ -11,7 +11,7 @@
  */
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.tasks.DecisionTask;
 import org.eclipse.openk.core.controller.BackendConfig;
@@ -26,7 +26,7 @@
 
     @Before
     public void initSettings() {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
     }
 
     @Test
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQTest.java
new file mode 100644
index 0000000..08fc82f
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedMessageQTest.java
@@ -0,0 +1,142 @@
+
+/*
+ * ***************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *            http://www.eclipse.org/legal/epl-v10.html
+ *
+ * ***************************************************************************
+ */
+
+package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
+
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import com.icegreen.greenmail.util.GreenMail;
+import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.TestUtils.TestHelper;
+import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class ServiceMeasureAppliedMessageQTest {
+
+    private class ServiceMeasureAppliedMessageQTestable extends ServiceMeasureAppliedMessageQ {
+
+        public Producer testProducer;
+
+        public ServiceMeasureAppliedMessageQTestable(String emailTemplatePath) {
+            super(emailTemplatePath);
+        }
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+                return testProducer;
+        }
+    }
+
+    private static GreenMail mailServer;
+    String templatePath = "emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt";
+
+    @BeforeClass
+    public static void beforeAll() throws IOException {
+        TestHelper.initDefaultBackendConfig();
+        ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
+        setup.setServerStartupTimeout(3000);
+        mailServer = new GreenMail(setup);
+    }
+
+    @Before
+    public void prepareTests() throws Exception {
+        // mock email-configuration
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
+        setTestTemplateEmail("emailConfigurationTest/emailTemplates/approvedEmailTemplateTest.txt");
+        BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
+        mailServer.start();
+    }
+
+    @After
+    public void afterTest() {
+        mailServer.stop();
+    }
+
+    @Test
+    public void serviceMeasureSendMailTest() throws Exception{
+        GridMeasure gm = new GridMeasure();
+        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
+
+        ServiceMeasureAppliedMessageQ ma = new ServiceMeasureAppliedMessageQ(templatePath);
+
+        assertNotNull(ma);
+    }
+
+    @Test
+    public void serviceMeasureSendMailTestOnLeaveStep() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureAppliedMessageQTestable ma = new ServiceMeasureAppliedMessageQTestable(templatePath);
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureAppliedMessageQTestable ma = new ServiceMeasureAppliedMessageQTestable(templatePath);
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
+        mailServer.stop();
+        GridMeasure gm = TestHelper.createGridMeasure(PlgmProcessState.CLOSED.getStatusValue());
+        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
+        subject.setGridMeasure(gm);
+
+        ServiceMeasureAppliedMessageQ ma = new ServiceMeasureAppliedMessageQ("emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt");
+
+        ma.onLeaveStep(subject);
+    }
+
+    private void setTestTemplateEmail(String templatePath) {
+        EmailTemplatePaths templatePaths = new EmailTemplatePaths();
+        templatePaths.setClosedEmailTemplate(templatePath);
+        BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
+    }
+
+    private PlannedGridMeasuresConfiguration.EmailConfiguration createEmailConfiguration() throws IOException {
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
+        emailConfiguration.setPort(EmailmanagerTest.port()+"");
+        emailConfiguration.setSmtpHost("localhost");
+        emailConfiguration.setSender("testCaseSender@test.de");
+        return emailConfiguration;
+    }
+}
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedTest.java
index bdc8392..a06020c 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureAppliedTest.java
@@ -16,7 +16,7 @@
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -38,7 +38,7 @@
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -89,19 +89,8 @@
     @Test (expected = ProcessException.class)
     public void serviceMeasureAppliedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
         mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.APPLIED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
         ServiceMeasureApplied  ma = new ServiceMeasureApplied();
-
-        ma.onLeaveStep(subject);
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.APPLIED.getStatusValue()));
     }
 
     private void setTestTemplateEmail(String templatePath) {
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApprovedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApprovedTest.java
index ab782c5..335cb51 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApprovedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureApprovedTest.java
@@ -13,28 +13,47 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
-import org.junit.*;
-
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 public class ServiceMeasureApprovedTest {
+
+    private class ServiceMeasureApprovedTestable extends ServiceMeasureApproved {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
     private static GreenMail mailServer;
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -42,7 +61,6 @@
 
     @Before
     public void prepareTests() throws Exception {
-        // BackendConfig.configure("portalBaseUrlMock", null);
         // mock email-configuration
         PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
         setTestTemplateEmail("emailConfigurationTest/emailTemplates/approvedEmailTemplateTest.txt");
@@ -60,25 +78,45 @@
         GridMeasure gm = new GridMeasure();
         PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
 
-        ServiceMeasureApproved  ma = new ServiceMeasureApproved();
+        ServiceMeasureApproved ma = new ServiceMeasureApproved();
 
         assertNotNull(ma);
     }
 
-    //@Ignore
     @Test
     public void serviceMeasureApprovedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.APPROVED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureApprovedTestable ma = new ServiceMeasureApprovedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.APPROVED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureApprovedTestable ma = new ServiceMeasureApprovedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
+        mailServer.stop();
+        GridMeasure gm = TestHelper.createGridMeasure(PlgmProcessState.CLOSED.getStatusValue());
         PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
         subject.setGridMeasure(gm);
 
-        ServiceMeasureApproved  ma = new ServiceMeasureApproved();
+        ServiceMeasureApprovedTestable ma = new ServiceMeasureApprovedTestable();
 
         ma.onLeaveStep(subject);
     }
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceledTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceledTest.java
index eb363f6..2068561 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceledTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureCanceledTest.java
@@ -13,10 +13,17 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -24,18 +31,29 @@
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
-import org.junit.*;
-
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 public class ServiceMeasureCanceledTest {
+
+    private class ServiceMeasureCanceledTestable extends ServiceMeasureCanceled {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
     private static GreenMail mailServer;
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -43,7 +61,6 @@
 
     @Before
     public void prepareTests() throws Exception {
-        // BackendConfig.configure("portalBaseUrlMock", null);
         // mock email-configuration
         PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
         setTestTemplateEmail("emailConfigurationTest/emailTemplates/canceledEmailTemplateTest.txt");
@@ -61,44 +78,42 @@
         GridMeasure gm = new GridMeasure();
         PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
 
-        ServiceMeasureCanceled  mc = new ServiceMeasureCanceled();
+        ServiceMeasureCanceled mc = new ServiceMeasureCanceled();
 
         assertNotNull(mc);
     }
 
     @Test
     public void serviceMeasureCanceledTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CANCELED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ServiceMeasureCanceled  mc = new ServiceMeasureCanceled();
+        ServiceMeasureCanceledTestable ma = new ServiceMeasureCanceledTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CANCELED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        mc.onLeaveStep(subject);
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureCanceledTestable ma = new ServiceMeasureCanceledTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
     }
 
     @Test (expected = ProcessException.class)
     public void serviceMeasureCanceledTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
         mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CANCELED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
         ServiceMeasureCanceled mc = new ServiceMeasureCanceled();
-
-        mc.onLeaveStep(subject);
+        mc.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CANCELED.getStatusValue()));
     }
 
     private void setTestTemplateEmail(String templatePath) {
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosedTest.java
index bb34134..dc9dce6 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureClosedTest.java
@@ -13,10 +13,17 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -24,22 +31,29 @@
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
-
 public class ServiceMeasureClosedTest {
 
+    private class ServiceMeasureClosedTestable extends ServiceMeasureClosed {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
     private static GreenMail mailServer;
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -73,37 +87,35 @@
 
     @Test
     public void serviceMeasureClosedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CLOSED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ServiceMeasureClosed  ma = new ServiceMeasureClosed();
+        ServiceMeasureClosedTestable ma = new ServiceMeasureClosedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ma.onLeaveStep(subject);
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureClosedTestable ma = new ServiceMeasureClosedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
     }
 
     @Test (expected = ProcessException.class)
     public void serviceMeasureClosedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
         mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CLOSED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
         ServiceMeasureClosed  ma = new ServiceMeasureClosed();
-
-        ma.onLeaveStep(subject);
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
     }
 
     private void setTestTemplateEmail(String templatePath) {
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinishedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinishedTest.java
index 3fddc57..7e02232 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinishedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureFinishedTest.java
@@ -13,14 +13,68 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import com.icegreen.greenmail.util.GreenMail;
+import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration.EmailConfiguration;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-import static junit.framework.TestCase.assertNotNull;
-
 public class ServiceMeasureFinishedTest {
 
+    private class ServiceMeasureFinishedTestable extends ServiceMeasureFinished {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
+    private static GreenMail mailServer;
+
+    @BeforeClass
+    public static void beforeAll() throws IOException {
+        TestHelper.initDefaultBackendConfig();
+        ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
+        setup.setServerStartupTimeout(3000);
+        mailServer = new GreenMail(setup);
+    }
+
+    @Before
+    public void prepareTests() throws Exception {
+        // mock email-configuration
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
+        setTestTemplateEmail("emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt");
+        BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
+        mailServer.start();
+
+    }
+
+    @After
+    public void afterTest() {
+        mailServer.stop();
+    }
+
     @Test
     public void serviceMeasureFinishedTest() throws Exception{
         GridMeasure gm = new GridMeasure();
@@ -33,13 +87,48 @@
 
     @Test
     public void serviceMeasureFinishedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ServiceMeasureFinished  ma = new ServiceMeasureFinished();
+        ServiceMeasureFinishedTestable ma = new ServiceMeasureFinishedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.FINISHED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ma.onLeaveStep(subject);
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureFinishedTestable ma = new ServiceMeasureFinishedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureFinishedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
+        mailServer.stop();
+        ServiceMeasureFinishedTestable ma = new ServiceMeasureFinishedTestable();
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.FINISHED.getStatusValue()));
+    }
+
+    private void setTestTemplateEmail(String templatePath) {
+        EmailTemplatePaths templatePaths = new EmailTemplatePaths();
+        templatePaths.setFinishedEmailTemplate(templatePath);
+        BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
+    }
+
+    private PlannedGridMeasuresConfiguration.EmailConfiguration createEmailConfiguration() throws IOException {
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
+        emailConfiguration.setPort(EmailmanagerTest.port()+"");
+        emailConfiguration.setSmtpHost("localhost");
+        emailConfiguration.setSender("testCaseSender@test.de");
+        return emailConfiguration;
     }
 }
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApprovalTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApprovalTest.java
index 9b50e7a..4f6127d 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApprovalTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureForApprovalTest.java
@@ -13,14 +13,67 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import com.icegreen.greenmail.util.GreenMail;
+import com.icegreen.greenmail.util.ServerSetup;
+import org.easymock.EasyMock;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
+import java.io.IOException;
+
 import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
 
 public class ServiceMeasureForApprovalTest {
 
+    private class ServiceMeasureForApprovalTestable extends ServiceMeasureForApproval {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
+    private static GreenMail mailServer;
+
+    @BeforeClass
+    public static void beforeAll() throws IOException {
+        TestHelper.initDefaultBackendConfig();
+        ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
+        setup.setServerStartupTimeout(3000);
+        mailServer = new GreenMail(setup);
+    }
+
+    @Before
+    public void prepareTests() throws Exception {
+        // mock email-configuration
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
+        setTestTemplateEmail("emailConfigurationTest/emailTemplates/approvedEmailTemplateTest.txt");
+        BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
+        mailServer.start();
+    }
+
+    @After
+    public void afterTest() {
+        mailServer.stop();
+    }
+
     @Test
     public void serviceMeasureForApprovalTest() throws Exception{
         GridMeasure gm = new GridMeasure();
@@ -33,13 +86,29 @@
 
     @Test
     public void serviceMeasureForApprovalTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ServiceMeasureForApproval  ma = new ServiceMeasureForApproval();
+        ServiceMeasureForApprovalTest.ServiceMeasureForApprovalTestable ma = new ServiceMeasureForApprovalTest.ServiceMeasureForApprovalTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.FOR_APPROVAL.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ma.onLeaveStep(subject);
+
+    private void setTestTemplateEmail(String templatePath) {
+        EmailTemplatePaths templatePaths = new EmailTemplatePaths();
+        templatePaths.setApprovedEmailTemplate(templatePath);
+        BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
+    }
+
+    private PlannedGridMeasuresConfiguration.EmailConfiguration createEmailConfiguration() throws IOException {
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
+        emailConfiguration.setPort(EmailmanagerTest.port()+"");
+        emailConfiguration.setSmtpHost("localhost");
+        emailConfiguration.setSender("testCaseSender@test.de");
+        return emailConfiguration;
     }
 }
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejectedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejectedTest.java
index d0b8587..0087f6f 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejectedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRejectedTest.java
@@ -13,33 +13,121 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
+import com.icegreen.greenmail.util.GreenMail;
+import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
+import org.eclipse.openk.PlannedGridMeasuresConfiguration;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
+import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.core.bpmn.base.ProcessException;
+import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
+import org.eclipse.openk.core.controller.BackendConfig;
+import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
-import static junit.framework.TestCase.assertNotNull;
-
 public class ServiceMeasureRejectedTest {
 
+    private class ServiceMeasureRejectedTestable extends ServiceMeasureRejected {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
+    private static GreenMail mailServer;
+
+    @BeforeClass
+    public static void beforeAll() throws IOException {
+        TestHelper.initDefaultBackendConfig();
+        ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
+        setup.setServerStartupTimeout(3000);
+        mailServer = new GreenMail(setup);
+    }
+
+    @Before
+    public void prepareTests() throws Exception {
+        // mock email-configuration
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
+        setTestTemplateEmail("emailConfigurationTest/emailTemplates/rejectedEmailTemplateTest.txt");
+        BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
+        mailServer.start();
+
+    }
+
+    @After
+    public void afterTest() {
+        mailServer.stop();
+    }
+
     @Test
     public void serviceMeasureRejectedTest() throws Exception{
         GridMeasure gm = new GridMeasure();
         PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
 
-        ServiceMeasureRejected  ma = new ServiceMeasureRejected();
+        ServiceMeasureRejected ma = new ServiceMeasureRejected();
 
         assertNotNull(ma);
     }
 
     @Test
     public void serviceMeasureRejectedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ServiceMeasureRejected  ma = new ServiceMeasureRejected();
+        ServiceMeasureRejectedTestable ma = new ServiceMeasureRejectedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.REJECTED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ma.onLeaveStep(subject);
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
+
+        ServiceMeasureRejectedTestable ma = new ServiceMeasureRejectedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
+    }
+
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureRejectedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
+        mailServer.stop();
+        ServiceMeasureRejectedTestable ma = new ServiceMeasureRejectedTestable();
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.REJECTED.getStatusValue()));
+    }
+
+    private void setTestTemplateEmail(String templatePath) {
+        EmailTemplatePaths templatePaths = new EmailTemplatePaths();
+        templatePaths.setRejectedEmailTemplate(templatePath);
+        BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
+    }
+
+    private PlannedGridMeasuresConfiguration.EmailConfiguration createEmailConfiguration() throws IOException {
+        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
+        emailConfiguration.setPort(EmailmanagerTest.port()+"");
+        emailConfiguration.setSmtpHost("localhost");
+        emailConfiguration.setSender("testCaseSender@test.de");
+        return emailConfiguration;
     }
 }
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleasedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleasedTest.java
index 619b38b..3eabd21 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleasedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureReleasedTest.java
@@ -13,10 +13,17 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -24,22 +31,29 @@
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
-
 public class ServiceMeasureReleasedTest {
 
+    private class ServiceMeasureReleasedTestable extends ServiceMeasureReleased {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
     private static GreenMail mailServer;
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -72,38 +86,36 @@
 
     @Test
     public void serviceMeasureReleasedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.APPLIED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
+        ServiceMeasureReleasedTestable ma = new ServiceMeasureReleasedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.RELEASED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ServiceMeasureReleased  ma = new ServiceMeasureReleased();
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ma.onLeaveStep(subject);
+        ServiceMeasureReleasedTestable ma = new ServiceMeasureReleasedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
     }
 
     @Test (expected = ProcessException.class)
     public void serviceMeasureReleasedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
         mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.RELEASED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
         ServiceMeasureReleased  ma = new ServiceMeasureReleased();
 
-        ma.onLeaveStep(subject);
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.RELEASED.getStatusValue()));
     }
 
     private void setTestTemplateEmail(String templatePath) {
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequestedTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequestedTest.java
index 196bf52..a0c4ebf 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequestedTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureRequestedTest.java
@@ -13,10 +13,17 @@
 
 package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
 
+import static junit.framework.TestCase.assertNotNull;
+import static org.easymock.EasyMock.expectLastCall;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
+import java.io.IOException;
+import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
@@ -24,22 +31,29 @@
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
+import org.eclipse.openk.core.messagebroker.Producer;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
-
 public class ServiceMeasureRequestedTest {
 
+    private class ServiceMeasureRequestedTestable extends ServiceMeasureRequested {
+
+        public Producer testProducer;
+
+        @Override
+        public Producer createMessageQueueProducer() throws ProcessException {
+            return testProducer;
+        }
+    }
+
     private static GreenMail mailServer;
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
@@ -69,39 +83,37 @@
     }
 
     @Test
-    public void serviceMeasureRequestedTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.APPLIED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
+    public void serviceMeasureReleasedTestOnLeaveStep() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
+        ServiceMeasureRequestedTestable ma = new ServiceMeasureRequestedTestable();
+        ma.testProducer = producerMock;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.REQUESTED.getStatusValue()));
+        verify(producerMock);
+    }
 
-        ServiceMeasureRequested  ma = new ServiceMeasureRequested();
+    @Test (expected = ProcessException.class)
+    public void serviceMeasureSendMailTestOnLeaveStepProducerNull() throws Exception{
+        Producer producerMock = EasyMock.createNiceMock(Producer.class);
+        producerMock.sendMessageAsJson(new GridMeasure(),"testRoutingKey");
+        expectLastCall().andVoid().anyTimes();
+        replay(producerMock);
 
-        ma.onLeaveStep(subject);
+        ServiceMeasureRequestedTestable ma = new ServiceMeasureRequestedTestable();
+        ma.testProducer = null;
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.CLOSED.getStatusValue()));
+        verify(producerMock);
     }
 
     @Test (expected = ProcessException.class)
     public void serviceMeasureRequestedTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
         mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.RELEASED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
         ServiceMeasureRequested  ma = new ServiceMeasureRequested();
 
-        ma.onLeaveStep(subject);
+        ma.onLeaveStep(TestHelper.createProcessSubject(PlgmProcessState.REQUESTED.getStatusValue()));
     }
 
     private void setTestTemplateEmail(String templatePath) {
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMailTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMailTest.java
deleted file mode 100644
index 29ea832..0000000
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/ServiceMeasureSendMailTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-
-/*
- * ***************************************************************************
- *  Copyright © 2018 PTA GmbH.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *
- *            http://www.eclipse.org/legal/epl-v10.html
- *
- * ***************************************************************************
- */
-
-package org.eclipse.openk.core.bpmn.gridmeasure.tasks;
-
-import com.icegreen.greenmail.util.GreenMail;
-import com.icegreen.greenmail.util.ServerSetup;
-import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
-import org.eclipse.openk.api.GridMeasure;
-import org.eclipse.openk.api.mail.EmailTemplatePaths;
-import org.eclipse.openk.core.bpmn.base.ProcessException;
-import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
-import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
-import org.eclipse.openk.core.controller.BackendConfig;
-import org.eclipse.openk.core.controller.EmailmanagerTest;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import java.io.IOException;
-
-import static junit.framework.TestCase.assertNotNull;
-
-public class ServiceMeasureSendMailTest {
-    private static GreenMail mailServer;
-    String templatePath = "emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt";
-
-    @BeforeClass
-    public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
-        ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
-        setup.setServerStartupTimeout(3000);
-        mailServer = new GreenMail(setup);
-    }
-
-    @Before
-    public void prepareTests() throws Exception {
-        // mock email-configuration
-        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
-
-        setTestTemplateEmail(templatePath);
-        BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
-        mailServer.start();
-
-    }
-
-    @After
-    public void afterTest() {
-        mailServer.stop();
-    }
-
-    @Test
-    public void serviceMeasureSendMailTest() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-
-        ServiceMeasureSendMail  ma = new ServiceMeasureSendMail(templatePath);
-
-        assertNotNull(ma);
-    }
-
-    @Test
-    public void serviceMeasureSendMailTestOnLeaveStep() throws Exception{
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CLOSED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
-        ServiceMeasureSendMail  ma = new ServiceMeasureSendMail(templatePath);
-
-        ma.onLeaveStep(subject);
-    }
-
-    @Test (expected = ProcessException.class)
-    public void serviceMeasureSendMailTestOnLeaveStepExceptionIfMailServerNotStarted() throws Exception{
-        mailServer.stop();
-        GridMeasure gm = new GridMeasure();
-        gm.setId(3);
-        gm.setTitle("Yo Title");
-        gm.setStatusId(PlgmProcessState.CLOSED.getStatusValue());
-        java.time.LocalDateTime ldtdate = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
-        java.sql.Timestamp date = java.sql.Timestamp.valueOf(ldtdate);
-        gm.setPlannedStarttimeFirstSinglemeasure(date);
-        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gm, "fd");
-        subject.setGridMeasure(gm);
-
-        ServiceMeasureSendMail  ma = new ServiceMeasureSendMail("emailConfigurationTest/emailTemplates/closedEmailTemplateTest.txt");
-
-        ma.onLeaveStep(subject);
-    }
-
-    private void setTestTemplateEmail(String templatePath) {
-        EmailTemplatePaths templatePaths = new EmailTemplatePaths();
-        templatePaths.setClosedEmailTemplate(templatePath);
-        BackendConfig.getInstance().setEmailTemplatePaths(templatePaths);
-    }
-
-    private PlannedGridMeasuresConfiguration.EmailConfiguration createEmailConfiguration() throws IOException {
-        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
-        emailConfiguration.setPort(EmailmanagerTest.port()+"");
-        emailConfiguration.setSmtpHost("localhost");
-        emailConfiguration.setSender("testCaseSender@test.de");
-        return emailConfiguration;
-    }
-}
diff --git a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelperTest.java b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelperTest.java
index 08fa21d..00909fd 100644
--- a/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelperTest.java
+++ b/src/test/java/org/eclipse/openk/core/bpmn/gridmeasure/tasks/util/GridMeasureStorageHelperTest.java
@@ -479,4 +479,44 @@
         Whitebox.invokeMethod(task, "setMeasureStatusAndStore", 66, "fd",
                 PlgmProcessState.APPLIED);
     }
+
+    @Test
+    public void testStoreGridMeasure_WithSingleGridMEasuresBySorting() throws Exception {
+        TestableStorageHelper task = prepareStoreMeasureFromViewModel();
+
+        GridMeasure gmViewModel = new GridMeasure();
+        List<SingleGridmeasure> sGmList = new ArrayList<SingleGridmeasure>();
+
+        SingleGridmeasure sgm = new SingleGridmeasure();
+        sgm.setId(1);
+        sgm.setSortorder(2);
+        java.time.LocalDateTime date1 = java.time.LocalDateTime.parse("2018-04-22T18:00:00");
+        java.sql.Timestamp tsDate1 = java.sql.Timestamp.valueOf(date1);
+        sgm.setPlannedStarttimeSinglemeasure(tsDate1);
+        sgm.setTitle("title 1");
+
+        SingleGridmeasure sgm2 = new SingleGridmeasure();
+        sgm2.setId(2);
+        sgm2.setSortorder(1);
+        java.time.LocalDateTime date2 = java.time.LocalDateTime.parse("2018-02-22T18:00:00");
+        java.sql.Timestamp tsDate2 = java.sql.Timestamp.valueOf(date2);
+        sgm2.setPlannedStarttimeSinglemeasure(tsDate2);
+        sgm2.setTitle("title 2");
+
+        sGmList.add(sgm);
+        sGmList.add(sgm2);
+        gmViewModel.setListSingleGridmeasures(sGmList);
+        PlgmProcessSubject subject = PlgmProcessSubject.fromGridMeasure(gmViewModel, "fd");
+
+        EntityManager em = createEM();
+        task.idCounterDao = createTblIdCounterDaoMock(em, null);
+
+        Whitebox.invokeMethod(task, "storeMeasureFromViewModel", subject);
+
+        assertEquals((Integer)gmViewModel.getListSingleGridmeasures().get(0).getSortorder(), (Integer)1);
+        assertEquals(gmViewModel.getListSingleGridmeasures().get(0).getPlannedStarttimeSinglemeasure(), tsDate2);
+
+        assertEquals((Integer)gmViewModel.getListSingleGridmeasures().get(1).getSortorder(), (Integer)2);
+        assertEquals(gmViewModel.getListSingleGridmeasures().get(1).getPlannedStarttimeSinglemeasure(), tsDate1);
+    }
 }
diff --git a/src/test/java/org/eclipse/openk/core/controller/EmailmanagerTest.java b/src/test/java/org/eclipse/openk/core/controller/EmailmanagerTest.java
index 6f441f4..65a7e37 100644
--- a/src/test/java/org/eclipse/openk/core/controller/EmailmanagerTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/EmailmanagerTest.java
@@ -16,7 +16,7 @@
 import com.icegreen.greenmail.util.ServerSetup;
 import org.apache.commons.lang3.time.DateUtils;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration.EmailConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
@@ -63,7 +63,7 @@
 
     @Before
     public void prepareTests() throws Exception {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         // mock email-configuration
         EmailConfiguration emailConfiguration = createEmailConfiguration();
         BackendConfig.getInstance().setEmailConfiguration(emailConfiguration);
diff --git a/src/test/java/org/eclipse/openk/core/controller/GridConfigButtonManipulatorTest.java b/src/test/java/org/eclipse/openk/core/controller/GridConfigButtonManipulatorTest.java
index b8ff6d4..55576a0 100644
--- a/src/test/java/org/eclipse/openk/core/controller/GridConfigButtonManipulatorTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/GridConfigButtonManipulatorTest.java
@@ -11,7 +11,7 @@
  */
 package org.eclipse.openk.core.controller;
 
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.BackendSettings;
 import org.eclipse.openk.common.util.ResourceLoaderBase;
 import org.junit.Before;
@@ -24,7 +24,7 @@
 
     @Before
     public void initSettings() {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
     }
 
     @Test
diff --git a/src/test/java/org/eclipse/openk/core/controller/GridMeasureBackendControllerTest.java b/src/test/java/org/eclipse/openk/core/controller/GridMeasureBackendControllerTest.java
index 87d7e4a..048fa18 100644
--- a/src/test/java/org/eclipse/openk/core/controller/GridMeasureBackendControllerTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/GridMeasureBackendControllerTest.java
@@ -11,17 +11,12 @@
  */
 package org.eclipse.openk.core.controller;
 
+import junit.framework.TestCase;
 import org.apache.http.HttpStatus;
 import org.easymock.EasyMock;
-import org.easymock.internal.MocksControl;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration.EmailConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
-import org.eclipse.openk.api.Document;
-import org.eclipse.openk.api.FilterObject;
-import org.eclipse.openk.api.GridMeasure;
-import org.eclipse.openk.api.HGridMeasure;
-import org.eclipse.openk.api.Lock;
-import org.eclipse.openk.api.VersionInfo;
+import org.eclipse.openk.TestUtils.TestHelper;
+import org.eclipse.openk.api.*;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.bpmn.base.ProcessException;
 import org.eclipse.openk.core.bpmn.base.ProcessGrid;
@@ -30,25 +25,11 @@
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessState;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
-import org.eclipse.openk.db.dao.AutoCloseEntityManager;
-import org.eclipse.openk.db.dao.HTblGridMeasureDao;
-import org.eclipse.openk.db.dao.RefVersionDao;
-import org.eclipse.openk.db.dao.TblDocumentsDao;
-import org.eclipse.openk.db.dao.TblGridMeasureDao;
-import org.eclipse.openk.db.dao.TblLockDao;
-import org.eclipse.openk.db.dao.TblMeasureDocumentsDao;
-import org.eclipse.openk.db.dao.TblSingleGridmeasureDao;
-import org.eclipse.openk.db.dao.TblStepsDao;
-import org.eclipse.openk.db.model.HTblGridMeasure;
-import org.eclipse.openk.db.model.RefVersion;
-import org.eclipse.openk.db.model.TblDocuments;
-import org.eclipse.openk.db.model.TblGridMeasure;
-import org.eclipse.openk.db.model.TblLock;
-import org.eclipse.openk.db.model.TblMeasureDocuments;
-import org.eclipse.openk.db.model.TblSingleGridmeasure;
-import org.eclipse.openk.db.model.TblSteps;
+import org.eclipse.openk.db.dao.*;
+import org.eclipse.openk.db.model.*;
 import org.eclipse.openk.resources.PlannedGridMeasuresResource;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.powermock.api.easymock.PowerMock;
 import org.powermock.reflect.Whitebox;
@@ -83,7 +64,7 @@
 
     @Before
     public void prepareTests() throws Exception {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
 
         // mock email-configuration
         EmailConfiguration emailConfiguration = new EmailConfiguration();
@@ -247,7 +228,7 @@
 
         Calendar gCal3 = new GregorianCalendar();
         gCal3.add(Calendar.DATE, -1);
-        Date yesterday = gCal2.getTime();
+        Date yesterday = gCal3.getTime();
 
         TblGridMeasure mGm1 = new TblGridMeasure();
         mGm1.setId(1);
@@ -270,7 +251,7 @@
         mGm3.setId(3);
         mGm3.setIdDescriptive("22");
         mGm3.setTitle("Title3");
-        mGm3.setFkRefGmStatus(3);
+        mGm3.setFkRefGmStatus(0);
         mGm3.setPlannedStarttimeFirstSinglemeasure(yesterday);
         mList.add(mGm3);
 
@@ -295,6 +276,16 @@
         mailAddressesList.add("testuser2@test.com, testuser3@test.com");
         mailAddressesList.add("testuser3@test.com, testuser4@test.com");
 
+        List<String> userDepartmentsCreatedList  = new ArrayList<>();
+        userDepartmentsCreatedList.add("Department abc");
+        userDepartmentsCreatedList.add("Department def");
+        userDepartmentsCreatedList.add("Department ghi");
+
+        List<String> userDepartmentsModifiedList  = new ArrayList<>();
+        userDepartmentsModifiedList.add("Department jkl");
+        userDepartmentsModifiedList.add("Department mno");
+        userDepartmentsModifiedList.add("Department pqr");
+
 
         TblGridMeasureDao dao = EasyMock.createMock(TblGridMeasureDao.class);
         expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
@@ -303,12 +294,24 @@
         expect(dao.getGridMeasuresByStatusId(anyInt())).andReturn(mList).anyTimes();
         expect(dao.getGridMeasuresExcludingStatusInTx(anyInt())).andReturn(mList).anyTimes();
         expect(dao.getGridMeasuresExcludingStatusInTx(anyInt(), anyInt())).andReturn(mList).anyTimes();
+
+        expect(dao.getGridMeasuresByUserName(anyString())).andReturn(mList).anyTimes();
+        expect(dao.getGridMeasuresByUserNameExcludingStatus(anyString(),anyInt())).andReturn(mList).anyTimes();
+        expect(dao.getGridMeasuresByUserNameExcludingStatus(anyString(),anyInt(), anyInt())).andReturn(mList).anyTimes();
+
         expect(dao.getMailAddressesFromGridmeasures()).andReturn(mailAddressesList).anyTimes();
+
+        expect(dao.getUserDepartmentsCreated()).andReturn(userDepartmentsCreatedList).anyTimes();
+        expect(dao.getUserDepartmentsModified()).andReturn(userDepartmentsModifiedList).anyTimes();
+
+
         replay( dao );
         verify( dao );
         return dao;
     }
 
+
+
     private TblGridMeasureDao createTblGridMeasureDaoStatus() {
 
         java.util.List<TblGridMeasure> mList = new ArrayList<TblGridMeasure>();
@@ -368,11 +371,18 @@
         mSgm1.setCimId("2");
         mList.add(mSgm1);
 
+        List<String> userDepartments = new ArrayList<String>();
+        userDepartments.add("Truppe1");
+        userDepartments.add("Truppe2");
+        userDepartments.add("Truppe3");
+
         TblSingleGridmeasureDao dao = EasyMock.createMock(TblSingleGridmeasureDao.class);
         expect( dao.findByIdInTx(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
         expect( dao.findById(anyObject(), anyInt())).andReturn(mList.get(0)).anyTimes();
-        expect( dao.getSingleGridmeasuresByGmIdInTx(1)).andReturn(mList).anyTimes();
+        expect( dao.getSingleGridmeasuresByGmIdInTx(anyInt())).andReturn(mList).anyTimes();
         expect( dao.getSingleGridmeasuresInTx()).andReturn(mList).anyTimes();
+        expect( dao.getUserDepartmentsResponsibleOnSite()).andReturn(userDepartments).anyTimes();
+
         replay( dao );
         verify( dao );
         return dao;
@@ -741,7 +751,12 @@
         TblGridMeasureDao dao = createTblGridMeasureDao();
         tbc.tblGridMeasureDao = dao;
 
-        List<GridMeasure> retList = tbc.getGridMeasures(null);
+        FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(false);
+        filterObject.setCanceledStatusActive(false);
+        filterObject.setClosedStatusActive(false);
+
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
         List<TblGridMeasure> orgList = dao.getGridMeasuresInTx();
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
@@ -754,10 +769,11 @@
         TblGridMeasureDao dao = createTblGridMeasureDao();
         tbc.tblGridMeasureDao = dao;
         FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(false);
         filterObject.setCanceledStatusActive(true);
         filterObject.setClosedStatusActive(true);
 
-        List<GridMeasure> retList = tbc.getGridMeasures(filterObject);
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
         List<TblGridMeasure> orgList = dao.getGridMeasuresInTx();
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
@@ -770,10 +786,11 @@
         TblGridMeasureDao dao = createTblGridMeasureDao();
         tbc.tblGridMeasureDao = dao;
         FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(false);
         filterObject.setCanceledStatusActive(true);
         filterObject.setClosedStatusActive(false);
 
-        List<GridMeasure> retList = tbc.getGridMeasures(filterObject);
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo",filterObject);
         List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CLOSED.getStatusValue());
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
@@ -784,10 +801,11 @@
         TblGridMeasureDao dao = createTblGridMeasureDao();
         tbc.tblGridMeasureDao = dao;
         FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(false);
         filterObject.setCanceledStatusActive(false);
         filterObject.setClosedStatusActive(true);
 
-        List<GridMeasure> retList = tbc.getGridMeasures(filterObject);
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
         List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue());
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
@@ -798,16 +816,77 @@
         TblGridMeasureDao dao = createTblGridMeasureDao();
         tbc.tblGridMeasureDao = dao;
         FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(false);
         filterObject.setCanceledStatusActive(false);
         filterObject.setClosedStatusActive(false);
 
-        List<GridMeasure> retList = tbc.getGridMeasures(filterObject);
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
         List<TblGridMeasure> orgList = dao.getGridMeasuresExcludingStatusInTx(PlgmProcessState.CANCELED.getStatusValue(), PlgmProcessState.CLOSED.getStatusValue());
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
     }
 
     @Test
+    public void testGetGridMeasuresOnlyUsersGMs() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        tbc.tblGridMeasureDao = dao;
+        FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(true);
+        filterObject.setCanceledStatusActive(true);
+        filterObject.setClosedStatusActive(true);
+
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
+        List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
+        assertEquals(orgList.size(), retList.size());
+        assertEquals(orgList.get(2).getId(), retList.get(2).getId());
+    }
+
+    @Test
+    public void testGetGridMeasuresOnlyUsersGMsWithoutClosed() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        tbc.tblGridMeasureDao = dao;
+        FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(true);
+        filterObject.setCanceledStatusActive(true);
+        filterObject.setClosedStatusActive(false);
+
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
+        List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
+        assertEquals(orgList.size(), retList.size());
+        assertEquals(orgList.get(2).getId(), retList.get(2).getId());
+    }
+
+    @Test
+    public void testGetGridMeasuresOnlyUsersGMsWithoutCanceled() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        tbc.tblGridMeasureDao = dao;
+        FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(true);
+        filterObject.setCanceledStatusActive(false);
+        filterObject.setClosedStatusActive(true);
+
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
+        List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
+        assertEquals(orgList.size(), retList.size());
+        assertEquals(orgList.get(2).getId(), retList.get(2).getId());
+    }
+
+    @Test
+    public void testGetGridMeasuresOnlyUsersGMsWithoutCanceledAndClosed() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        tbc.tblGridMeasureDao = dao;
+        FilterObject filterObject = new FilterObject();
+        filterObject.setOnlyUsersGMsDesired(true);
+        filterObject.setCanceledStatusActive(false);
+        filterObject.setClosedStatusActive(false);
+
+        List<GridMeasure> retList = tbc.getGridMeasures("testhugo", filterObject);
+        List<TblGridMeasure> orgList = dao.getGridMeasuresByUserName("testhugo");
+        assertEquals(orgList.size(), retList.size());
+        assertEquals(orgList.get(2).getId(), retList.get(2).getId());
+    }
+
+    @Test
     public void testGetGridMeasureById() throws Exception {
         TblGridMeasureDao dao = createTblGridMeasureDao();
         TblSingleGridmeasureDao sgmDao = createTblSingleGridmeasureDao();
@@ -1046,6 +1125,20 @@
     }
 
     @Test
+    public void testgGetExpiredReminders() throws Exception {
+        List remindersList = new ArrayList();
+
+        TblGridMeasureDao mockedGmDao = createTblGridMeasureDao();
+        TestableGridMeasureBackendController tbc = new TestableGridMeasureBackendController();
+        tbc.tblGridMeasureDao = mockedGmDao;
+
+        remindersList = tbc.getExpiredReminders(jwtString);
+
+        assertTrue(remindersList != null);
+        assertTrue(!remindersList.isEmpty());
+    }
+
+    @Test
     public void testCheckLock_locked() throws Exception {
         TblLockDao mockedDao = createTblLockDao();
 
@@ -1127,16 +1220,81 @@
         mailAddressesList.add("testuser3@test.com, testuser4@test.com");
 
         MailAddressCache cacheMock = PowerMock.createNiceMock(MailAddressCache.class);
-        expect(cacheMock.getMailAddresses()).andReturn(mailAddressesList);
 
+        expect(cacheMock.getMailAddresses()).andReturn(mailAddressesList);
         replay(cacheMock);
 
         be.mailAddressCache = cacheMock;
         List<String> retList = be.getMailAddressesFromGridmeasures();
         assertTrue(retList != null);
-        //Todo: Warum funktioniert das nicht?
-        //assertEquals( retList.size(), 3 );
+    }
 
+    @Test
+    public void testGetResponsiblesOnSiteFromSingleGridmeasures(){
+
+        TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
+
+        List<String> sList = new ArrayList<>(3);
+        sList.add("Heini");
+        sList.add("Martha");
+        sList.add("Luis");
+
+        TblSingleGridmeasureDao daoMock = PowerMock.createNiceMock(TblSingleGridmeasureDao.class);
+        expect(daoMock.getResponsiblesOnSite()).andReturn(sList);
+
+        replay(daoMock);
+
+        be.tblSingleGridmeasureDao = daoMock;
+        assertEquals( be.getResponsiblesOnSiteFromSingleGridmeasures().size(), 3 );
+    }
+
+
+    @Test
+    public void testGetCalender() {
+
+        TestableGridMeasureBackendController be = new TestableGridMeasureBackendController();
+
+        TblGridMeasureDao mockedGmDao = createTblGridMeasureDao();
+        be.tblGridMeasureDao = mockedGmDao;
+
+        TblSingleGridmeasureDao mockedSgmDao = createTblSingleGridmeasureDao();
+        be.tblSingleGridmeasureDao = mockedSgmDao;
+
+        assertEquals( be.getCalender().size(),5);
+
+    }
+
+    @Test
+    public void testGetUserDepartmentsResponsibleOnSite() throws Exception {
+        TblSingleGridmeasureDao dao = createTblSingleGridmeasureDao();
+        GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
+        tbc.tblSingleGridmeasureDao = dao;
+
+        List<String> retList = tbc.getUserDepartmentsResponsibleOnSite();
+        List<String> orgList = dao.getUserDepartmentsResponsibleOnSite();
+        TestCase.assertEquals(orgList.size(), retList.size());
+    }
+
+    @Test
+    public void testGetUserDepartmentsCreated() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
+        tbc.tblGridMeasureDao = dao;
+
+        List<String> retList = tbc.getUserDepartmentsCreated();
+        List<String> orgList = dao.getUserDepartmentsCreated();
+        TestCase.assertEquals(orgList.size(), retList.size());
+    }
+
+    @Test
+    public void testGetUserDepartmentsModified() throws Exception {
+        TblGridMeasureDao dao = createTblGridMeasureDao();
+        GridMeasureBackendControllerTest.TestableGridMeasureBackendController tbc = new GridMeasureBackendControllerTest.TestableGridMeasureBackendController();
+        tbc.tblGridMeasureDao = dao;
+
+        List<String> retList = tbc.getUserDepartmentsModified();
+        List<String> orgList = dao.getUserDepartmentsModified();
+        TestCase.assertEquals(orgList.size(), retList.size());
     }
 
 
diff --git a/src/test/java/org/eclipse/openk/core/controller/MasterDataBackendControllerTest.java b/src/test/java/org/eclipse/openk/core/controller/MasterDataBackendControllerTest.java
index 9f93cd6..7bb03cc 100644
--- a/src/test/java/org/eclipse/openk/core/controller/MasterDataBackendControllerTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/MasterDataBackendControllerTest.java
@@ -13,12 +13,7 @@
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.anyString;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
+import static org.easymock.EasyMock.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -26,30 +21,12 @@
 import javax.persistence.EntityTransaction;
 import org.apache.http.HttpStatus;
 import org.easymock.EasyMock;
-import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
-import org.eclipse.openk.api.Branch;
-import org.eclipse.openk.api.BranchLevel;
-import org.eclipse.openk.api.CostCenter;
-import org.eclipse.openk.api.GmStatus;
-import org.eclipse.openk.api.UserDepartment;
-import org.eclipse.openk.api.UserSettings;
-import org.eclipse.openk.api.mail.EmailTemplatePaths;
+import org.eclipse.openk.TestUtils.TestHelper;
+import org.eclipse.openk.api.*;
 import org.eclipse.openk.common.mapper.generic.GenericApiToDbMapper;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
-import org.eclipse.openk.db.dao.AutoCloseEntityManager;
-import org.eclipse.openk.db.dao.RefBranchDao;
-import org.eclipse.openk.db.dao.RefBranchLevelDao;
-import org.eclipse.openk.db.dao.RefCostCenterDao;
-import org.eclipse.openk.db.dao.RefGmStatusDao;
-import org.eclipse.openk.db.dao.RefUserDepartmentDao;
-import org.eclipse.openk.db.dao.TblUserSettingsDao;
-import org.eclipse.openk.db.model.RefBranch;
-import org.eclipse.openk.db.model.RefBranchLevel;
-import org.eclipse.openk.db.model.RefCostCenter;
-import org.eclipse.openk.db.model.RefGmStatus;
-import org.eclipse.openk.db.model.RefUserDepartment;
-import org.eclipse.openk.db.model.TblUserSettings;
+import org.eclipse.openk.db.dao.*;
+import org.eclipse.openk.db.model.*;
 import org.junit.Before;
 import org.junit.Test;
 import org.powermock.api.easymock.PowerMock;
@@ -61,7 +38,7 @@
 
     @Before
     public void prepareTests() throws Exception {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
 
         //mock email-configuration
 //        PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = new PlannedGridMeasuresConfiguration.EmailConfiguration();
@@ -93,7 +70,7 @@
         public RefGmStatusDao statusDao;
         public RefBranchDao branchDao;
         public RefBranchLevelDao branchLevelDao;
-        public RefUserDepartmentDao userDepartmentDao;
+        public RefTerritoryDao territoryDao;
         public RefCostCenterDao costCenterDao;
         public TblUserSettingsDao userSettingsDao;
 
@@ -155,16 +132,6 @@
             }
         }
 
-        @Override
-        protected RefUserDepartmentDao createRefUserDepartmentDao( EntityManager em ) {
-            if( userDepartmentDao != null ) {
-                return userDepartmentDao;
-            }
-            else {
-                return super.createRefUserDepartmentDao(em);
-            }
-        }
-
 
         @Override
         protected RefCostCenterDao createRefCostCenterDao( EntityManager em ) {
@@ -177,6 +144,16 @@
         }
 
         @Override
+        protected RefTerritoryDao createRefTerritoryDao( EntityManager em ) {
+            if( territoryDao != null ) {
+                return territoryDao;
+            }
+            else {
+                return super.createRefTerritoryDao(em);
+            }
+        }
+
+        @Override
         protected TblUserSettingsDao createRefUserSettingsDao( EntityManager em ) {
             if( userSettingsDao != null ) {
                 return userSettingsDao;
@@ -249,7 +226,7 @@
         mList.add(refBranchLevel3);
 
         RefBranchLevelDao dao = EasyMock.createMock(RefBranchLevelDao.class);
-        expect( dao.getBranchLevelsInTx() ).andReturn(mList).anyTimes();
+        expect( dao.getBranchLevelsByBranchId(anyInt()) ).andReturn(mList).anyTimes();
         replay( dao );
         verify( dao );
         return dao;
@@ -308,27 +285,28 @@
         return dao;
     }
 
-    private RefUserDepartmentDao createRefUserDepartmentDao() {
 
-        java.util.List<RefUserDepartment> mList = new ArrayList<RefUserDepartment>();
+    private RefTerritoryDao createRefTerritoryDao() {
 
-        RefUserDepartment refUserDepartment1 = new RefUserDepartment();
-        refUserDepartment1.setId(1);
-        refUserDepartment1.setName("Testname1");
-        mList.add(refUserDepartment1);
+        java.util.List<RefTerritory> mList = new ArrayList<RefTerritory>();
 
-        RefUserDepartment refUserDepartment2 = new RefUserDepartment();
-        refUserDepartment2.setId(2);
-        refUserDepartment2.setName("Testname2");
-        mList.add(refUserDepartment2);
+        RefTerritory refTerritory1 = new RefTerritory();
+        refTerritory1.setId(1);
+        refTerritory1.setName("Nord");
+        mList.add(refTerritory1);
 
-        RefUserDepartment refUserDepartment3 = new RefUserDepartment();
-        refUserDepartment3.setId(3);
-        refUserDepartment3.setName("Testname3");
-        mList.add(refUserDepartment3);
+        RefTerritory refTerritory2 = new RefTerritory();
+        refTerritory2.setId(2);
+        refTerritory2.setName("Ost");
+        mList.add(refTerritory2);
 
-        RefUserDepartmentDao dao = EasyMock.createMock(RefUserDepartmentDao.class);
-        expect( dao.getUserDepartmentsInTx() ).andReturn(mList).anyTimes();
+        RefTerritory refTerritory3 = new RefTerritory();
+        refTerritory3.setId(3);
+        refTerritory3.setName("Süd");
+        mList.add(refTerritory3);
+
+        RefTerritoryDao dao = EasyMock.createMock(RefTerritoryDao.class);
+        expect( dao.getTerritoriesInTx() ).andReturn(mList).anyTimes();
         replay( dao );
         verify( dao );
         return dao;
@@ -398,13 +376,13 @@
     }
 
     @Test
-    public void testGetBranchLevels() throws Exception {
+    public void testGetBranchLevelsByBranch() throws Exception {
         RefBranchLevelDao dao = createRefBranchLevelDao(); //MockDao
         MasterDataBackendControllerTest.TestableMasterDataBackendController tbc = new MasterDataBackendControllerTest.TestableMasterDataBackendController();
         tbc.branchLevelDao = dao; //MockDao
 
-        List<BranchLevel> retList = tbc.getBranchLevels(); //Aufruf Methode der Testklasse
-        List<RefBranchLevel> orgList = dao.getBranchLevelsInTx(); //Mock Models
+        List<BranchLevel> retList = tbc.getBranchLevelsByBranch(3); //Aufruf Methode der Testklasse
+        List<RefBranchLevel> orgList = dao.getBranchLevelsByBranchId(3); //Mock Models
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
         assertEquals(orgList.get(1).getDescription(), retList.get(1).getDescription());
@@ -437,14 +415,15 @@
         assertEquals(orgList.get(1).getName(), retList.get(1).getName());
     }
 
-    @Test
-    public void testGetUserDepartments() throws Exception {
-        RefUserDepartmentDao dao = createRefUserDepartmentDao();
-        MasterDataBackendControllerTest.TestableMasterDataBackendController tbc = new MasterDataBackendControllerTest.TestableMasterDataBackendController();
-        tbc.userDepartmentDao = dao;
 
-        List<UserDepartment> retList = tbc.getUserDepartments();
-        List<RefUserDepartment> orgList = dao.getUserDepartmentsInTx();
+    @Test
+    public void testGetTerritories() throws Exception {
+        RefTerritoryDao dao = createRefTerritoryDao();
+        MasterDataBackendControllerTest.TestableMasterDataBackendController tbc = new MasterDataBackendControllerTest.TestableMasterDataBackendController();
+        tbc.territoryDao = dao;
+
+        List<Territory> retList = tbc.getTerritories();
+        List<RefTerritory> orgList = dao.getTerritoriesInTx();
         assertEquals(orgList.size(), retList.size());
         assertEquals(orgList.get(2).getId(), retList.get(2).getId());
         assertEquals(orgList.get(1).getName(), retList.get(1).getName());
diff --git a/src/test/java/org/eclipse/openk/core/controller/PgmEmailTest.java b/src/test/java/org/eclipse/openk/core/controller/PgmEmailTest.java
index 48ff03c..5f8f8fc 100644
--- a/src/test/java/org/eclipse/openk/core/controller/PgmEmailTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/PgmEmailTest.java
@@ -13,7 +13,7 @@
 
 import org.easymock.EasyMock;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.core.bpmn.gridmeasure.PlgmProcessSubject;
 import org.eclipse.openk.core.communication.RestServiceWrapper;
 import org.eclipse.openk.core.exceptions.HttpStatusException;
@@ -104,7 +104,7 @@
         emaily.setSender("Sendros@sandbank.se");
         emaily.setSmtpHost("Horst");
 
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         BackendConfig.getInstance().setEmailConfiguration(emaily);
         PlgmProcessSubject model = PlgmProcessSubject.fromGridMeasure(null, "_fd");
         model.setJwt("Bear Haferkamp");
diff --git a/src/test/java/org/eclipse/openk/core/controller/TokenManagerTest.java b/src/test/java/org/eclipse/openk/core/controller/TokenManagerTest.java
index 177b027..2ce8f54 100644
--- a/src/test/java/org/eclipse/openk/core/controller/TokenManagerTest.java
+++ b/src/test/java/org/eclipse/openk/core/controller/TokenManagerTest.java
@@ -11,7 +11,7 @@
 */
 package org.eclipse.openk.core.controller;
 
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.auth2.model.JwtPayload;
 import org.eclipse.openk.auth2.util.JwtHelper;
 import org.eclipse.openk.common.Globals;
@@ -39,7 +39,7 @@
 
     @Before
 	public void init() {
-		BackendConfigTestHelper.initDefaultBackendConfig();
+		TestHelper.initDefaultBackendConfig();
 		this.tokenManager = TokenManager.getInstance();
 	}
 
diff --git a/src/test/java/org/eclipse/openk/db/model/HTblGridMeasureTest.java b/src/test/java/org/eclipse/openk/db/model/HTblGridMeasureTest.java
index c92577e..05af817 100644
--- a/src/test/java/org/eclipse/openk/db/model/HTblGridMeasureTest.java
+++ b/src/test/java/org/eclipse/openk/db/model/HTblGridMeasureTest.java
@@ -54,7 +54,7 @@
         assertEquals("Remark", hTblGridMeasure.getRemark());
 
         hTblGridMeasure.setFkRefGmStatus(8);
-        org.junit.Assert.assertEquals((Integer)8, hTblGridMeasure.getFkRefGmStatus());
+        assertEquals((Integer)8, hTblGridMeasure.getFkRefGmStatus());
 
         hTblGridMeasure.setSwitchingObject("Transformator");
         assertEquals("Transformator", hTblGridMeasure.getSwitchingObject());
@@ -62,12 +62,6 @@
         hTblGridMeasure.setCostCenter("costa punta");
         assertEquals("costa punta", hTblGridMeasure.getCostCenter());
 
-        hTblGridMeasure.setResponsibleOnSiteName("Rick Responsible");
-        assertEquals("Rick Responsible", hTblGridMeasure.getResponsibleOnSiteName());
-
-        hTblGridMeasure.setResponsibleOnSiteDepartment("Department ZZ");
-        assertEquals("Department ZZ", hTblGridMeasure.getResponsibleOnSiteDepartment());
-
         hTblGridMeasure.setApprovalBy("Abel Approver");
         assertEquals("Abel Approver", hTblGridMeasure.getApprovalBy());
 
@@ -83,42 +77,13 @@
         org.junit.Assert.assertEquals(tsAppointmentStartdate, hTblGridMeasure.getAppointmentStartdate());
 
         hTblGridMeasure.setAppointmentNumberOf(5);
-
-        java.time.LocalDateTime ldtPlannedStarttimeFirstSequence = java.time.LocalDateTime.parse("2018-04-23T19:00:00");
-        java.sql.Timestamp tsPlannedStarttimeFirstSequence = java.sql.Timestamp.valueOf(ldtPlannedStarttimeFirstSequence);
-        hTblGridMeasure.setPlannedStarttimeFirstSequence(tsPlannedStarttimeFirstSequence);
-        org.junit.Assert.assertEquals(tsPlannedStarttimeFirstSequence, hTblGridMeasure.getPlannedStarttimeFirstSequence());
+        assertEquals((Integer)5, hTblGridMeasure.getAppointmentNumberOf());
 
         java.time.LocalDateTime ldtPlannedStarttimeFirstSinglemeasure = java.time.LocalDateTime.parse("2018-04-24T20:00:00");
         java.sql.Timestamp tsPlannedStarttimeFirstSinglemeasure = java.sql.Timestamp.valueOf(ldtPlannedStarttimeFirstSinglemeasure);
         hTblGridMeasure.setPlannedStarttimeFirstSinglemeasure(tsPlannedStarttimeFirstSinglemeasure);
         org.junit.Assert.assertEquals(tsPlannedStarttimeFirstSinglemeasure, hTblGridMeasure.getPlannedStarttimeFirstSinglemeasure());
 
-        java.time.LocalDateTime ldtPlannedEndtimeLastSinglemeasure = java.time.LocalDateTime.parse("2018-04-25T21:00:00");
-        java.sql.Timestamp tsPlannedEndtimeLastSinglemeasure = java.sql.Timestamp.valueOf(ldtPlannedEndtimeLastSinglemeasure);
-        hTblGridMeasure.setPlannedEndtimeLastSinglemeasure(tsPlannedEndtimeLastSinglemeasure);
-        org.junit.Assert.assertEquals(tsPlannedEndtimeLastSinglemeasure, hTblGridMeasure.getPlannedEndtimeLastSinglemeasure());
-
-        java.time.LocalDateTime ldtPlannedEndtimeGridmeasure = java.time.LocalDateTime.parse("2018-04-26T22:00:00");
-        java.sql.Timestamp tsPlannedEndtimeGridmeasure = java.sql.Timestamp.valueOf(ldtPlannedEndtimeGridmeasure);
-        hTblGridMeasure.setPlannedEndtimeGridmeasure(tsPlannedEndtimeGridmeasure);
-        org.junit.Assert.assertEquals(tsPlannedEndtimeGridmeasure, hTblGridMeasure.getPlannedEndtimeGridmeasure());
-
-        java.time.LocalDateTime ldtStarttimeFirstSequence = java.time.LocalDateTime.parse("2018-04-27T23:00:00");
-        java.sql.Timestamp tsStarttimeFirstSequence = java.sql.Timestamp.valueOf(ldtStarttimeFirstSequence);
-        hTblGridMeasure.setStarttimeFirstSequence(tsStarttimeFirstSequence);
-        org.junit.Assert.assertEquals(tsStarttimeFirstSequence, hTblGridMeasure.getStarttimeFirstSequence());
-
-        java.time.LocalDateTime ldtStarttimeFirstSinglemeasure = java.time.LocalDateTime.parse("2018-04-28T01:00:00");
-        java.sql.Timestamp tsStarttimeFirstSinglemeasure = java.sql.Timestamp.valueOf(ldtStarttimeFirstSinglemeasure);
-        hTblGridMeasure.setStarttimeFirstSinglemeasure(tsStarttimeFirstSinglemeasure);
-        org.junit.Assert.assertEquals(tsStarttimeFirstSinglemeasure, hTblGridMeasure.getStarttimeFirstSinglemeasure());
-
-        java.time.LocalDateTime ldtEndtimeLastSinglemeasure = java.time.LocalDateTime.parse("2018-04-29T02:00:00");
-        java.sql.Timestamp tsEndtimeLastSinglemeasure = java.sql.Timestamp.valueOf(ldtEndtimeLastSinglemeasure);
-        hTblGridMeasure.setEndtimeLastSinglemeasure(tsEndtimeLastSinglemeasure);
-        org.junit.Assert.assertEquals(tsEndtimeLastSinglemeasure, hTblGridMeasure.getEndtimeLastSinglemeasure());
-
         java.time.LocalDateTime ldtEndtimeGridmeasure = java.time.LocalDateTime.parse("2018-04-30T03:00:00");
         java.sql.Timestamp tsEndtimeGridmeasure = java.sql.Timestamp.valueOf(ldtEndtimeGridmeasure);
         hTblGridMeasure.setEndtimeGridmeasure(tsEndtimeGridmeasure);
diff --git a/src/test/java/org/eclipse/openk/db/model/RefGmStatusTest.java b/src/test/java/org/eclipse/openk/db/model/RefGmStatusTest.java
index ff41fa1..5b43609 100644
--- a/src/test/java/org/eclipse/openk/db/model/RefGmStatusTest.java
+++ b/src/test/java/org/eclipse/openk/db/model/RefGmStatusTest.java
@@ -30,6 +30,9 @@
         refGmStatus.setName("Statusname");
         assertEquals("Statusname", refGmStatus.getName());
 
+        refGmStatus.setColorCode("#111111");
+        assertEquals("#111111", refGmStatus.getColorCode());
+
         java.time.LocalDateTime ldtCreated = java.time.LocalDateTime.parse("2018-03-20T15:00:00");
         java.sql.Timestamp tsCreated = java.sql.Timestamp.valueOf(ldtCreated);
         refGmStatus.setCreateDate(tsCreated);
diff --git a/src/test/java/org/eclipse/openk/db/model/RefTerritoryTest.java b/src/test/java/org/eclipse/openk/db/model/RefTerritoryTest.java
new file mode 100644
index 0000000..2c8c712
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/db/model/RefTerritoryTest.java
@@ -0,0 +1,54 @@
+/*
+ * ***************************************************************************
+ *  Copyright © 2018 PTA GmbH.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *
+ *            http://www.eclipse.org/legal/epl-v10.html
+ *
+ * ***************************************************************************
+ */
+package org.eclipse.openk.db.model;
+
+import org.junit.Test;
+
+import static junit.framework.TestCase.assertEquals;
+
+public class RefTerritoryTest {
+
+    @Test
+    public void testGettersAndSetters() {
+
+        RefTerritory refTerritory = new RefTerritory();
+
+        refTerritory.setId(1);
+        assertEquals((Integer)1, refTerritory.getId());
+
+        refTerritory.setName("hugo");
+        assertEquals("hugo", refTerritory.getName());
+
+        refTerritory.setDescription("description");
+        assertEquals("description", refTerritory.getDescription());
+
+        refTerritory.setCreateUser("Create User");
+        assertEquals("Create User", refTerritory.getCreateUser());
+
+        java.time.LocalDateTime ldtCreate = java.time.LocalDateTime.parse("2018-08-20T15:00:00");
+        java.sql.Timestamp tsCreate = java.sql.Timestamp.valueOf(ldtCreate);
+
+        refTerritory.setCreateDate(tsCreate);
+        org.junit.Assert.assertEquals(tsCreate, refTerritory.getCreateDate());
+
+        refTerritory.setModUser("Modifiing User");
+        assertEquals("Modifiing User", refTerritory.getModUser());
+
+        java.time.LocalDateTime ldtMod = java.time.LocalDateTime.parse("2018-08-21T16:00:00");
+        java.sql.Timestamp tsMod = java.sql.Timestamp.valueOf(ldtMod);
+
+        refTerritory.setModDate(tsMod);
+        org.junit.Assert.assertEquals(tsMod, refTerritory.getModDate());
+    }
+
+}
+
diff --git a/src/test/java/org/eclipse/openk/db/model/RefUserDepartmentTest.java b/src/test/java/org/eclipse/openk/db/model/RefUserDepartmentTest.java
deleted file mode 100644
index b8a3a20..0000000
--- a/src/test/java/org/eclipse/openk/db/model/RefUserDepartmentTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- ******************************************************************************
- * Copyright © 2018 PTA GmbH.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- *
- *     http://www.eclipse.org/legal/epl-v10.html
- *
- ******************************************************************************
- */
-package org.eclipse.openk.db.model;
-
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-
-public class RefUserDepartmentTest {
-
-    @Test
-    public void testGettersAndSetters() {
-
-        RefUserDepartment refUserDepartment = new RefUserDepartment();
-
-        refUserDepartment.setId(6);
-        assertEquals((Integer)6, refUserDepartment.getId());
-
-        refUserDepartment.setName("UserDepartmentName");
-        assertEquals("UserDepartmentName", refUserDepartment.getName());
-
-        java.time.LocalDateTime ldtCreated = java.time.LocalDateTime.parse("2018-04-16T13:00:00");
-        java.sql.Timestamp tsCreated = java.sql.Timestamp.valueOf(ldtCreated);
-        refUserDepartment.setCreateDate(tsCreated);
-        org.junit.Assert.assertEquals(tsCreated, refUserDepartment.getCreateDate());
-
-        refUserDepartment.setCreateUser("Cathie Creator");
-        assertEquals("Cathie Creator", refUserDepartment.getCreateUser());
-
-        java.time.LocalDateTime ldtModified = java.time.LocalDateTime.parse("2018-04-16T14:00:00");
-        java.sql.Timestamp tsModified = java.sql.Timestamp.valueOf(ldtModified);
-        refUserDepartment.setModDate(tsModified);
-        org.junit.Assert.assertEquals(tsModified, refUserDepartment.getModDate());
-
-        refUserDepartment.setModUser("Martin Modifier");
-        assertEquals("Martin Modifier", refUserDepartment.getModUser());
-
-    }
-}
diff --git a/src/test/java/org/eclipse/openk/db/model/TblGridMeasureTest.java b/src/test/java/org/eclipse/openk/db/model/TblGridMeasureTest.java
index 9d455c5..b0e3696 100644
--- a/src/test/java/org/eclipse/openk/db/model/TblGridMeasureTest.java
+++ b/src/test/java/org/eclipse/openk/db/model/TblGridMeasureTest.java
@@ -39,6 +39,9 @@
         tblGridmeasure.setRemark("Remark");
         assertEquals("Remark", tblGridmeasure.getRemark());
 
+        tblGridmeasure.setEmailAddresses("test@email.de");
+        assertEquals("test@email.de", tblGridmeasure.getEmailAddresses());
+
         tblGridmeasure.setFkRefGmStatus(8);
         org.junit.Assert.assertEquals((Integer)8, tblGridmeasure.getFkRefGmStatus());
 
@@ -48,12 +51,6 @@
         tblGridmeasure.setCostCenter("costa punta");
         assertEquals("costa punta", tblGridmeasure.getCostCenter());
 
-        tblGridmeasure.setResponsibleOnSiteName("Rick Responsible");
-        assertEquals("Rick Responsible", tblGridmeasure.getResponsibleOnSiteName());
-
-        tblGridmeasure.setResponsibleOnSiteDepartment("Department ZZ");
-        assertEquals("Department ZZ", tblGridmeasure.getResponsibleOnSiteDepartment());
-
         tblGridmeasure.setApprovalBy("Abel Approver");
         assertEquals("Abel Approver", tblGridmeasure.getApprovalBy());
 
@@ -70,41 +67,11 @@
 
         tblGridmeasure.setAppointmentNumberOf(5);
 
-        java.time.LocalDateTime ldtPlannedStarttimeFirstSequence = java.time.LocalDateTime.parse("2018-04-23T19:00:00");
-        java.sql.Timestamp tsPlannedStarttimeFirstSequence = java.sql.Timestamp.valueOf(ldtPlannedStarttimeFirstSequence);
-        tblGridmeasure.setPlannedStarttimeFirstSequence(tsPlannedStarttimeFirstSequence);
-        org.junit.Assert.assertEquals(tsPlannedStarttimeFirstSequence, tblGridmeasure.getPlannedStarttimeFirstSequence());
-
         java.time.LocalDateTime ldtPlannedStarttimeFirstSinglemeasure = java.time.LocalDateTime.parse("2018-04-24T20:00:00");
         java.sql.Timestamp tsPlannedStarttimeFirstSinglemeasure = java.sql.Timestamp.valueOf(ldtPlannedStarttimeFirstSinglemeasure);
         tblGridmeasure.setPlannedStarttimeFirstSinglemeasure(tsPlannedStarttimeFirstSinglemeasure);
         org.junit.Assert.assertEquals(tsPlannedStarttimeFirstSinglemeasure, tblGridmeasure.getPlannedStarttimeFirstSinglemeasure());
 
-        java.time.LocalDateTime ldtPlannedEndtimeLastSinglemeasure = java.time.LocalDateTime.parse("2018-04-25T21:00:00");
-        java.sql.Timestamp tsPlannedEndtimeLastSinglemeasure = java.sql.Timestamp.valueOf(ldtPlannedEndtimeLastSinglemeasure);
-        tblGridmeasure.setPlannedEndtimeLastSinglemeasure(tsPlannedEndtimeLastSinglemeasure);
-        org.junit.Assert.assertEquals(tsPlannedEndtimeLastSinglemeasure, tblGridmeasure.getPlannedEndtimeLastSinglemeasure());
-
-        java.time.LocalDateTime ldtPlannedEndtimeGridmeasure = java.time.LocalDateTime.parse("2018-04-26T22:00:00");
-        java.sql.Timestamp tsPlannedEndtimeGridmeasure = java.sql.Timestamp.valueOf(ldtPlannedEndtimeGridmeasure);
-        tblGridmeasure.setPlannedEndtimeGridmeasure(tsPlannedEndtimeGridmeasure);
-        org.junit.Assert.assertEquals(tsPlannedEndtimeGridmeasure, tblGridmeasure.getPlannedEndtimeGridmeasure());
-
-        java.time.LocalDateTime ldtStarttimeFirstSequence = java.time.LocalDateTime.parse("2018-04-27T23:00:00");
-        java.sql.Timestamp tsStarttimeFirstSequence = java.sql.Timestamp.valueOf(ldtStarttimeFirstSequence);
-        tblGridmeasure.setStarttimeFirstSequence(tsStarttimeFirstSequence);
-        org.junit.Assert.assertEquals(tsStarttimeFirstSequence, tblGridmeasure.getStarttimeFirstSequence());
-
-        java.time.LocalDateTime ldtStarttimeFirstSinglemeasure = java.time.LocalDateTime.parse("2018-04-28T01:00:00");
-        java.sql.Timestamp tsStarttimeFirstSinglemeasure = java.sql.Timestamp.valueOf(ldtStarttimeFirstSinglemeasure);
-        tblGridmeasure.setStarttimeFirstSinglemeasure(tsStarttimeFirstSinglemeasure);
-        org.junit.Assert.assertEquals(tsStarttimeFirstSinglemeasure, tblGridmeasure.getStarttimeFirstSinglemeasure());
-
-        java.time.LocalDateTime ldtEndtimeLastSinglemeasure = java.time.LocalDateTime.parse("2018-04-29T02:00:00");
-        java.sql.Timestamp tsEndtimeLastSinglemeasure = java.sql.Timestamp.valueOf(ldtEndtimeLastSinglemeasure);
-        tblGridmeasure.setEndtimeLastSinglemeasure(tsEndtimeLastSinglemeasure);
-        org.junit.Assert.assertEquals(tsEndtimeLastSinglemeasure, tblGridmeasure.getEndtimeLastSinglemeasure());
-
         java.time.LocalDateTime ldtEndtimeGridmeasure = java.time.LocalDateTime.parse("2018-04-30T03:00:00");
         java.sql.Timestamp tsEndtimeGridmeasure = java.sql.Timestamp.valueOf(ldtEndtimeGridmeasure);
         tblGridmeasure.setEndtimeGridmeasure(tsEndtimeGridmeasure);
diff --git a/src/test/java/org/eclipse/openk/db/model/TblSingleGridMeasureTest.java b/src/test/java/org/eclipse/openk/db/model/TblSingleGridMeasureTest.java
index 3c1abf7..f5f1b06 100644
--- a/src/test/java/org/eclipse/openk/db/model/TblSingleGridMeasureTest.java
+++ b/src/test/java/org/eclipse/openk/db/model/TblSingleGridMeasureTest.java
@@ -48,6 +48,15 @@
         tblSingleGridmeasure.setDescription("des");
         assertEquals("des", tblSingleGridmeasure.getDescription());
 
+        tblSingleGridmeasure.setResponsibleOnSiteName("Rick Responsible");
+        assertEquals("Rick Responsible", tblSingleGridmeasure.getResponsibleOnSiteName());
+
+        tblSingleGridmeasure.setResponsibleOnSiteDepartment("Department ZZ");
+        assertEquals("Department ZZ", tblSingleGridmeasure.getResponsibleOnSiteDepartment());
+
+        tblSingleGridmeasure.setNetworkControl("Adam");
+        assertEquals("Adam", tblSingleGridmeasure.getNetworkControl());
+
         tblSingleGridmeasure.setFkTblGridmeasure(4);
         assertEquals((Integer)4, tblSingleGridmeasure.getFkTblGridmeasure());
 
diff --git a/src/test/java/org/eclipse/openk/db/model/TblStepsTest.java b/src/test/java/org/eclipse/openk/db/model/TblStepsTest.java
index a3a829e..b9fc157 100644
--- a/src/test/java/org/eclipse/openk/db/model/TblStepsTest.java
+++ b/src/test/java/org/eclipse/openk/db/model/TblStepsTest.java
@@ -33,6 +33,18 @@
         tblSteps.setSwitchingObject("tool");
         assertEquals("tool", tblSteps.getSwitchingObject());
 
+        tblSteps.setType("type");
+        assertEquals("type", tblSteps.getType());
+
+        tblSteps.setPresentTime("presentTime");
+        assertEquals("presentTime", tblSteps.getPresentTime());
+
+        tblSteps.setPresentState("presentState");
+        assertEquals("presentState", tblSteps.getPresentState());
+
+        tblSteps.setOperator("operator");
+        assertEquals("operator", tblSteps.getOperator());
+
         tblSteps.setTargetState("target");
         assertEquals("target", tblSteps.getTargetState());
 
diff --git a/src/test/java/org/eclipse/openk/health/MailConfigurationHealthCheckTest.java b/src/test/java/org/eclipse/openk/health/MailConfigurationHealthCheckTest.java
index c2f73cf..7f9fc49 100644
--- a/src/test/java/org/eclipse/openk/health/MailConfigurationHealthCheckTest.java
+++ b/src/test/java/org/eclipse/openk/health/MailConfigurationHealthCheckTest.java
@@ -16,7 +16,7 @@
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
@@ -39,7 +39,7 @@
 
     @BeforeClass
     public static void beforeAll() throws IOException {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         ServerSetup setup = new ServerSetup(EmailmanagerTest.port() , "localhost", ServerSetup.PROTOCOL_SMTP);
         setup.setServerStartupTimeout(3000);
         mailServer = new GreenMail(setup);
diff --git a/src/test/java/org/eclipse/openk/health/MailServerPresentHealthCheckTest.java b/src/test/java/org/eclipse/openk/health/MailServerPresentHealthCheckTest.java
index 92ecc14..cb55b13 100644
--- a/src/test/java/org/eclipse/openk/health/MailServerPresentHealthCheckTest.java
+++ b/src/test/java/org/eclipse/openk/health/MailServerPresentHealthCheckTest.java
@@ -16,7 +16,7 @@
 import com.icegreen.greenmail.util.GreenMail;
 import com.icegreen.greenmail.util.ServerSetup;
 import org.eclipse.openk.PlannedGridMeasuresConfiguration;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.mail.EmailTemplatePaths;
 import org.eclipse.openk.core.controller.BackendConfig;
 import org.eclipse.openk.core.controller.EmailmanagerTest;
@@ -47,7 +47,7 @@
 
     @Before
     public void prepareTests() throws Exception {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         // mock email-configuration
         PlannedGridMeasuresConfiguration.EmailConfiguration emailConfiguration = createEmailConfiguration();
 
diff --git a/src/test/java/org/eclipse/openk/resources/MasterDataResourceTest.java b/src/test/java/org/eclipse/openk/resources/MasterDataResourceTest.java
index 230b60b..c116722 100644
--- a/src/test/java/org/eclipse/openk/resources/MasterDataResourceTest.java
+++ b/src/test/java/org/eclipse/openk/resources/MasterDataResourceTest.java
@@ -12,7 +12,7 @@
 package org.eclipse.openk.resources;
 
 import org.easymock.EasyMock;
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GmStatus;
 import org.eclipse.openk.api.UserSettings;
 import org.eclipse.openk.core.controller.MasterDataBackendController;
@@ -33,7 +33,7 @@
 
     @Before
     public void createGridMeasure() {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         TokenManager.getInstance();
     }
 
@@ -50,13 +50,8 @@
     }
 
     @Test
-    public void testGetUserDepartments() {
-        Response r = new MasterDataResource().getUserDepartments("LET_ME_IN");
-        assertNotNull( r );
-    }
-    @Test
     public void testGetBranchLevels() {
-        Response r = new MasterDataResource().getBranchLevels("LET_ME_IN");
+        Response r = new MasterDataResource().getBranchLevelsByBranch("LET_ME_IN", "1");
         assertNotNull( r );
     }
 
@@ -67,6 +62,13 @@
     }
 
     @Test
+    public void testGeTerritories() {
+        Response r = new MasterDataResource().getTerritories("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+
+    @Test
     public void testStoreUserSettings_update() throws HttpStatusException{
 
         UserSettings us = createUserSetting();
@@ -112,23 +114,13 @@
         assertNotNull( r );
     }
 
-    /*@Test
-    public void testUploadDocuments() {
-        InputStream is = new InputStream() {
-            @Override
-            public int read() throws IOException {
-                return 0;
-            }
-        };
-        FormDataContentDisposition fdcd = null;
-        java.time.LocalDateTime ldtCreated = java.time.LocalDateTime.parse("2018-04-20T16:00:00");
-
-        try {
-            fdcd = new FormDataContentDisposition("header", "name", "boom.txt", ldtCreated, ldtCreated, ldtCreated, 4);
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-        Response r = new MasterDataResource().uploadGridMeasureAttachments("token", is, fdcd);
+    @Test
+    public void testGetEmailAddressesFromTemplates() {
+        Response r = new MasterDataResource().getEmailAddressesFromTemplates("LET_ME_IN");
         assertNotNull( r );
-    }*/
+    }
+
+
+
+
 }
diff --git a/src/test/java/org/eclipse/openk/resources/PlannedGridMeasuresResourcesTest.java b/src/test/java/org/eclipse/openk/resources/PlannedGridMeasuresResourcesTest.java
index 6872118..00c3374 100644
--- a/src/test/java/org/eclipse/openk/resources/PlannedGridMeasuresResourcesTest.java
+++ b/src/test/java/org/eclipse/openk/resources/PlannedGridMeasuresResourcesTest.java
@@ -11,7 +11,7 @@
  */
 package org.eclipse.openk.resources;
 
-import org.eclipse.openk.TestUtils.BackendConfigTestHelper;
+import org.eclipse.openk.TestUtils.TestHelper;
 import org.eclipse.openk.api.GridMeasure;
 import org.eclipse.openk.common.Globals;
 import org.eclipse.openk.core.controller.BaseWebService;
@@ -22,6 +22,8 @@
 
 import javax.ws.rs.core.Response;
 
+import java.util.List;
+
 import static junit.framework.TestCase.assertNotNull;
 import static org.junit.Assert.assertEquals;
 
@@ -32,7 +34,7 @@
 
     @Before
     public void createGridMeasure() {
-        BackendConfigTestHelper.initDefaultBackendConfig();
+        TestHelper.initDefaultBackendConfig();
         TokenManager.getInstance();
 
         gm.setId(4);
@@ -82,6 +84,12 @@
     }
 
     @Test
+    public void testGetExpiredReminders() {
+        Response r = new PlannedGridMeasuresResource().getExpiredReminders("token");
+        assertNotNull( r );
+    }
+
+    @Test
     public void testUploadGridMeasureAttachments() {
         Response r = new PlannedGridMeasuresResource().uploadGridMeasureAttachments("token", "1", "{\n" +
                 "    \"id\": 7}");
@@ -165,4 +173,48 @@
         assertNotNull( r );
     }
 
+    @Test
+    public void testGetResponsiblesOnSiteFromGridmeasures()  {
+        Response r = new PlannedGridMeasuresResource().getResponsiblesOnSiteFromSingleGridmeasures("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+    @Test
+    public void testGetUserDepartmentsResponsibleOnSite()  {
+        Response r = new PlannedGridMeasuresResource().getUserDepartmentsResponsibleOnSite("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+    @Test
+    public void testGetUserDepartmentsCreated()  {
+        Response r = new PlannedGridMeasuresResource().getUserDepartmentsCreated("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+    @Test
+    public void testGetUserDepartmentsModified()  {
+        Response r = new PlannedGridMeasuresResource().getUserDepartmentsModified("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+    @Test
+    public void testGetNetworkControlsFromSingleGridmeasures()  {
+        Response r = new PlannedGridMeasuresResource().getNetworkControlsFromSingleGridmeasures("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+    @Test
+    public void testGetCalender()  {
+        Response r = new PlannedGridMeasuresResource().getCalender("LET_ME_IN");
+        assertNotNull( r );
+    }
+
+//    @Test
+//    public void testGetUserDepartments() {
+//        Response r = new PlannedGridMeasuresResource().getUserDepartmentsFromSingleGridmeasures("LET_ME_IN");
+//        assertNotNull( r );
+//    }
+
+
+
 }