Files
mip/Data/BulkLoad/EFT/Nominations/plsql/cg$system_users.bdy

1901 lines
74 KiB
Plaintext

CREATE OR REPLACE PACKAGE BODY cg$SYSTEM_USERS IS
PROCEDURE validate_mandatory(cg$val_rec IN cg$row_type,
loc IN VARCHAR2 DEFAULT '');
PROCEDURE up_autogen_columns(cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type,
operation IN VARCHAR2 DEFAULT 'INS',
do_denorm IN BOOLEAN DEFAULT TRUE);
PROCEDURE err_msg(msg IN VARCHAR2,
type IN INTEGER,
loc IN VARCHAR2 DEFAULT '');
--------------------------------------------------------------------------------
-- Name: raise_uk_not_updateable
--
-- Description: Raise appropriate error when unique key updated
--
-- Parameters: none
--------------------------------------------------------------------------------
PROCEDURE raise_uk_not_updateable(uk IN VARCHAR2) IS
BEGIN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_UNIQUE_KEY_UPDATE, cg$errors.ERR_UK_UPDATE, uk),
'E',
'API',
cg$errors.API_UNIQUE_KEY_UPDATE,
'cg$SYSTEM_USERS.raise_uk_not_updateable');
cg$errors.raise_failure;
END raise_uk_not_updateable;
--------------------------------------------------------------------------------
-- Name: raise_fk_not_transferable
--
-- Description: Raise appropriate error when foreign key updated
--
-- Parameters: none
--------------------------------------------------------------------------------
PROCEDURE raise_fk_not_transferable(fk IN VARCHAR2) IS
BEGIN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_FOREIGN_KEY_TRANS, cg$errors.ERR_FK_TRANS, fk),
'E',
'API',
cg$errors.API_FOREIGN_KEY_TRANS,
'cg$SYSTEM_USERS.raise_fk_not_transferable');
cg$errors.raise_failure;
END raise_fk_not_transferable;
--------------------------------------------------------------------------------
-- Name: up_autogen_columns
--
-- Description: Specific autogeneration of column values and conversion to
-- uppercase
--
-- Parameters: cg$rec Record of row to be manipulated
-- cg$ind Indicators for row
-- operation Procedure where this procedure was called
--------------------------------------------------------------------------------
PROCEDURE up_autogen_columns(cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type,
operation IN VARCHAR2 DEFAULT 'INS',
do_denorm IN BOOLEAN DEFAULT TRUE) IS
BEGIN
IF (operation = 'INS') THEN
BEGIN
IF (cg$ind.SYUS_ID = FALSE
OR cg$rec.SYUS_ID is NULL) THEN
SELECT SYUS_SEQ.nextval
INTO cg$rec.SYUS_ID
FROM DUAL;
cg$ind.SYUS_ID := TRUE;
END IF;
EXCEPTION WHEN others THEN
cg$errors.push(SQLERRM, 'E', 'ORA', SQLCODE,
'cg$SYSTEM_USERS.up_autogen.SYUS_ID.OTHERS');
cg$errors.raise_failure;
END;
cg$rec.CREATED_ON := sysdate; -- Server Derived Date Created
NULL;
ELSE -- (operation = 'UPD')
NULL;
END IF; -- (operation = 'INS') ELSE (operation = 'UPD')
-- Statements executed for both 'INS' and 'UPD'
cg$rec.UPDATED_BY := caco_utilities.get_syus_id; -- Server Derived Derivation Expression
cg$rec.CREATED_BY := caco_utilities.get_syus_id; -- Server Derived Derivation Expression
cg$rec.UPDATED_ON := sysdate; -- Server Derived Date Modified (TAPI preference MODINS = Y)
cg$rec.CERTIFICATE_SERIAL := upper(cg$rec.CERTIFICATE_SERIAL);
EXCEPTION
WHEN no_data_found THEN
NULL;
WHEN others THEN
cg$errors.push( SQLERRM, 'E', 'ORA', SQLCODE,
'cg$SYSTEM_USERS.up_autogen_columns');
cg$errors.raise_failure;
END up_autogen_columns;
--------------------------------------------------------------------------------
-- Name: validate_mandatory
--
-- Description: Checks all mandatory columns are not null and raises appropriate
-- error if not satisfied
--
-- Parameters: cg$val_rec Record of row to be checked
-- loc Place where this procedure was called for error
-- trapping
--------------------------------------------------------------------------------
PROCEDURE validate_mandatory(cg$val_rec IN cg$row_type,
loc IN VARCHAR2 DEFAULT '') IS
BEGIN
IF (cg$val_rec.CREATED_BY IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P80CREATED_BY),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.SYUS_ID IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P10SYUS_ID),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.DB_USERNAME IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P20DB_USERNAME),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.FIRST_NAME IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P30FIRST_NAME),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.LAST_NAME IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P40LAST_NAME),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.CONTACT_TELEPHONE IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P50CONTACT_TELEPHONE),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.CONTACT_FAX IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P60CONTACT_FAX),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.PERIOD_START IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P70PERIOD_START),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.CREATED_ON IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P90CREATED_ON),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.INTE_ID IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P170INTE_ID),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.CUST_ID IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P180CUST_ID),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.USER_LOCKED IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P210USER_LOCKED),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
IF (cg$val_rec.LANGUAGE IS NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_MAND_COLUMN_ISNULL, cg$errors.VAL_MAND, P230LANGUAGE),
'E',
'API',
cg$errors.API_MAND_COLUMN_ISNULL,
loc);
END IF;
NULL;
END validate_mandatory;
--------------------------------------------------------------------------------
-- Name: validate_foreign_keys
--
-- Description: Checks all mandatory columns are not null and raises appropriate
-- error if not satisfied
--
-- Parameters: cg$rec Record of row to be checked
--------------------------------------------------------------------------------
PROCEDURE validate_foreign_keys_ins(cg$rec IN cg$row_type) IS
fk_check INTEGER;
BEGIN
NULL;
END;
PROCEDURE validate_foreign_keys_upd( cg$rec IN cg$row_type,
cg$old_rec IN cg$row_type,
cg$ind IN cg$ind_type) IS
fk_check INTEGER;
BEGIN
NULL;
END;
PROCEDURE validate_foreign_keys_del(cg$rec IN cg$row_type) IS
fk_check INTEGER;
BEGIN
NULL;
END;
--------------------------------------------------------------------------------
-- Name: slct
--
-- Description: Selects into the given parameter all the attributes for the row
-- given by the primary key
--
-- Parameters: cg$sel_rec Record of row to be selected into using its PK
--------------------------------------------------------------------------------
PROCEDURE slct(cg$sel_rec IN OUT cg$row_type) IS
BEGIN
IF cg$sel_rec.the_rowid is null THEN
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
, rowid
INTO cg$sel_rec.UPDATED_BY
, cg$sel_rec.CREATED_BY
, cg$sel_rec.SYUS_ID
, cg$sel_rec.DB_USERNAME
, cg$sel_rec.FIRST_NAME
, cg$sel_rec.LAST_NAME
, cg$sel_rec.CONTACT_TELEPHONE
, cg$sel_rec.CONTACT_FAX
, cg$sel_rec.PERIOD_START
, cg$sel_rec.CREATED_ON
, cg$sel_rec.DESIGNATION
, cg$sel_rec.DESCRIPTION
, cg$sel_rec.PERIOD_END
, cg$sel_rec.TITLE
, cg$sel_rec.UPDATED_ON
, cg$sel_rec.EMAIL_ADDRESS
, cg$sel_rec.INTE_ID
, cg$sel_rec.CUST_ID
, cg$sel_rec.PASSWORD_EXPIRES
, cg$sel_rec.GRACE_LOGINS
, cg$sel_rec.USER_LOCKED
, cg$sel_rec.PASSWORD
, cg$sel_rec.LANGUAGE
, cg$sel_rec.MOBILE_TEL_NUMBER
, cg$sel_rec.CERTIFICATE_SERIAL
,cg$sel_rec.the_rowid
FROM SYSTEM_USERS
WHERE SYUS_ID = cg$sel_rec.SYUS_ID;
ELSE
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
, rowid
INTO cg$sel_rec.UPDATED_BY
, cg$sel_rec.CREATED_BY
, cg$sel_rec.SYUS_ID
, cg$sel_rec.DB_USERNAME
, cg$sel_rec.FIRST_NAME
, cg$sel_rec.LAST_NAME
, cg$sel_rec.CONTACT_TELEPHONE
, cg$sel_rec.CONTACT_FAX
, cg$sel_rec.PERIOD_START
, cg$sel_rec.CREATED_ON
, cg$sel_rec.DESIGNATION
, cg$sel_rec.DESCRIPTION
, cg$sel_rec.PERIOD_END
, cg$sel_rec.TITLE
, cg$sel_rec.UPDATED_ON
, cg$sel_rec.EMAIL_ADDRESS
, cg$sel_rec.INTE_ID
, cg$sel_rec.CUST_ID
, cg$sel_rec.PASSWORD_EXPIRES
, cg$sel_rec.GRACE_LOGINS
, cg$sel_rec.USER_LOCKED
, cg$sel_rec.PASSWORD
, cg$sel_rec.LANGUAGE
, cg$sel_rec.MOBILE_TEL_NUMBER
, cg$sel_rec.CERTIFICATE_SERIAL
,cg$sel_rec.the_rowid
FROM SYSTEM_USERS
WHERE rowid = cg$sel_rec.the_rowid;
END IF;
EXCEPTION WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.slct.others');
cg$errors.raise_failure;
END slct;
--------------------------------------------------------------------------------
-- Name: cascade_update
--
-- Description: Updates all child tables affected by a change to SYSTEM_USERS
--
-- Parameters: cg$rec Record of SYSTEM_USERS current values
-- cg$old_rec Record of SYSTEM_USERS previous values
--------------------------------------------------------------------------------
PROCEDURE cascade_update(cg$new_rec IN OUT cg$row_type,
cg$old_rec IN cg$row_type) IS
BEGIN
NULL;
END cascade_update;
--------------------------------------------------------------------------------
-- Name: validate_domain_cascade_update
--
-- Description: Implement the Domain Key Constraint Cascade Updates Resticts rule
-- of each child table that references this tableSYSTEM_USERS
--
-- Parameters: cg$old_rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE validate_domain_cascade_update( cg$old_rec IN cg$row_type ) IS
dk_check INTEGER;
BEGIN
NULL;
END validate_domain_cascade_update;
-----------------------------------------------------------------------------------------
-- Name: domain_cascade_update
--
-- Description: Implement the Domain Key Constraint Cascade Updates rules of each
-- child table that references this table SYSTEM_USERS
--
-- Parameters: cg$new_rec New values for SYSTEM_USERS's domain key constraint columns
-- cg$new_ind Indicates changed SYSTEM_USERS's domain key constraint columns
-- cg$old_rec Current values for SYSTEM_USERS's domain key constraint columns
-----------------------------------------------------------------------------------------
PROCEDURE domain_cascade_update(cg$new_rec IN OUT cg$row_type,
cg$new_ind IN OUT cg$ind_type,
cg$old_rec IN cg$row_type) IS
BEGIN
NULL;
END domain_cascade_update;
--------------------------------------------------------------------------------
-- Name: cascade_delete
--
-- Description: Delete all child tables affected by a delete to SYSTEM_USERS
--
-- Parameters: cg$rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE cascade_delete(cg$old_rec IN OUT cg$row_type)
IS
BEGIN
NULL;
END cascade_delete;
--------------------------------------------------------------------------------
-- Name: domain_cascade_delete
--
-- Description: Implement the Domain Key Constraint Cascade Delete rules of each
-- child table that references this tableSYSTEM_USERS
--
-- Parameters: cg$old_rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE domain_cascade_delete( cg$old_rec IN cg$row_type )
IS
BEGIN
NULL;
END domain_cascade_delete;
--------------------------------------------------------------------------------
-- Name: validate_domain_cascade_delete
--
-- Description: Implement the Domain Key Constraint Cascade Delete Restricts rule
-- of each child table that references this tableSYSTEM_USERS
--
-- Parameters: cg$old_rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE validate_domain_cascade_delete(cg$old_rec IN cg$row_type)
IS
dk_check INTEGER;
BEGIN
NULL;
END validate_domain_cascade_delete;
--------------------------------------------------------------------------------
-- Name: validate_arc
--
-- Description: Checks for adherence to arc relationship
--
-- Parameters: cg$rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE validate_arc(cg$rec IN OUT cg$row_type) IS
i NUMBER;
BEGIN
NULL;
END validate_arc;
--------------------------------------------------------------------------------
-- Name: validate_domain
--
-- Description: Checks against reference table for values lying in a domain
--
-- Parameters: cg$rec Record of SYSTEM_USERS current values
--------------------------------------------------------------------------------
PROCEDURE validate_domain(cg$rec IN OUT cg$row_type,
cg$ind IN cg$ind_type DEFAULT cg$ind_true)
IS
dummy NUMBER;
found BOOLEAN;
no_tabview EXCEPTION;
PRAGMA EXCEPTION_INIT(no_tabview, -942);
BEGIN
found := false;
IF (cg$ind.TITLE AND cg$rec.TITLE IS NOT NULL) THEN
FOR c IN (SELECT RV_LOW_VALUE, RV_HIGH_VALUE FROM CG_REF_CODES WHERE RV_DOMAIN = 'TITLE' )
LOOP
IF ( c.RV_HIGH_VALUE IS NULL
AND cg$rec.TITLE = c.RV_LOW_VALUE )
OR ( c.RV_HIGH_VALUE IS NOT NULL
AND cg$rec.TITLE BETWEEN c.RV_LOW_VALUE AND c.RV_HIGH_VALUE )
THEN
found := true;
EXIT;
END IF;
END LOOP;
IF ( NOT found ) THEN
cg$errors.push( cg$errors.MsgGetText(cg$errors.API_RV_LOOKUP_FAIL,
cg$errors.APIMSG_RV_LOOKUP_FAIL,
cg$rec.TITLE,'SYSTEM_USERS','TITLE'),
'E',
'API',
cg$errors.API_RV_LOOKUP_FAIL,
'cg$SYSTEM_USERS.v_domain.no_data_found' );
cg$errors.raise_failure;
END IF;
END IF;
found := false;
IF (cg$ind.LANGUAGE AND cg$rec.LANGUAGE IS NOT NULL) THEN
FOR c IN (SELECT RV_LOW_VALUE, RV_HIGH_VALUE FROM CG_REF_CODES WHERE RV_DOMAIN = 'LANGUAGE' )
LOOP
IF ( c.RV_HIGH_VALUE IS NULL
AND cg$rec.LANGUAGE = c.RV_LOW_VALUE )
OR ( c.RV_HIGH_VALUE IS NOT NULL
AND cg$rec.LANGUAGE BETWEEN c.RV_LOW_VALUE AND c.RV_HIGH_VALUE )
THEN
found := true;
EXIT;
END IF;
END LOOP;
IF ( NOT found ) THEN
cg$errors.push( cg$errors.MsgGetText(cg$errors.API_RV_LOOKUP_FAIL,
cg$errors.APIMSG_RV_LOOKUP_FAIL,
cg$rec.LANGUAGE,'SYSTEM_USERS','LANGUAGE'),
'E',
'API',
cg$errors.API_RV_LOOKUP_FAIL,
'cg$SYSTEM_USERS.v_domain.no_data_found' );
cg$errors.raise_failure;
END IF;
END IF;
NULL;
EXCEPTION
WHEN cg$errors.cg$error THEN
cg$errors.raise_failure;
WHEN no_tabview THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_RV_TAB_NOT_FOUND,
cg$errors.APIMSG_RV_TAB_NOT_FOUND,
'CG_REF_CODES','SYSTEM_USERS'),
'E',
'API',
cg$errors.API_RV_TAB_NOT_FOUND,
'cg$SYSTEM_USERS.v_domain.no_reftable_found');
cg$errors.raise_failure;
WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.v_domain.others');
cg$errors.raise_failure;
END validate_domain;
--------------------------------------------------------------------------------
-- Name: err_msg
--
-- Description: Pushes onto stack appropriate user defined error message
-- depending on the rule violated
--
-- Parameters: msg Oracle error message
-- type Type of violation e.g. check_constraint: ERR_CHECK_CON
-- loc Place where this procedure was called for error
-- trapping
--------------------------------------------------------------------------------
PROCEDURE err_msg(msg IN VARCHAR2,
type IN INTEGER,
loc IN VARCHAR2 DEFAULT '') IS
con_name VARCHAR2(240);
BEGIN
con_name := cg$errors.parse_constraint(msg, type);
IF (con_name = 'SYUS_PK') THEN
cg$errors.push(nvl(SYUS_PK
,cg$errors.MsgGetText(cg$errors.API_PK_CON_VIOLATED
,cg$errors.APIMSG_PK_VIOLAT
,'SYUS_PK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_PK_CON_VIOLATED,
loc);
ELSIF (con_name = 'SYUS_CERT_UK') THEN
cg$errors.push(nvl(SYUS_CERT_UK
,cg$errors.MsgGetText(cg$errors.API_UQ_CON_VIOLATED
,cg$errors.APIMSG_UK_VIOLAT
,'SYUS_CERT_UK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_UQ_CON_VIOLATED,
loc);
ELSIF (con_name = 'SYUS_UK') THEN
cg$errors.push(nvl(SYUS_UK
,cg$errors.MsgGetText(cg$errors.API_UQ_CON_VIOLATED
,cg$errors.APIMSG_UK_VIOLAT
,'SYUS_UK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_UQ_CON_VIOLATED,
loc);
ELSIF (con_name = 'SYUS_CUIN_FK') THEN
cg$errors.push(nvl(SYUS_CUIN_FK
,cg$errors.MsgGetText(cg$errors.API_FK_CON_VIOLATED
,cg$errors.APIMSG_FK_VIOLAT
,'SYUS_CUIN_FK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_FK_CON_VIOLATED,
loc);
ELSIF (con_name = 'SYUS_CUST_FK') THEN
cg$errors.push(nvl(SYUS_CUST_FK
,cg$errors.MsgGetText(cg$errors.API_FK_CON_VIOLATED
,cg$errors.APIMSG_FK_VIOLAT
,'SYUS_CUST_FK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_FK_CON_VIOLATED,
loc);
ELSIF (con_name = 'SYUS_INTE_FK') THEN
cg$errors.push(nvl(SYUS_INTE_FK
,cg$errors.MsgGetText(cg$errors.API_FK_CON_VIOLATED
,cg$errors.APIMSG_FK_VIOLAT
,'SYUS_INTE_FK'
,'SYSTEM_USERS')),
'E',
'API',
cg$errors.API_FK_CON_VIOLATED,
loc);
ELSE
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
loc);
END IF;
END err_msg;
--------------------------------------------------------------------------------
-- Name: doLobs
--
-- Description: This function is updating lob columns
--
-- Parameters: cg$rec Record of row to be inserted
-- cg$ind Record of columns specifically set
--------------------------------------------------------------------------------
PROCEDURE doLobs(cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type) IS
BEGIN
NULL;
END doLobs;
--------------------------------------------------------------------------------
-- Name: ins
--
-- Description: API insert procedure
--
-- Parameters: cg$rec Record of row to be inserted
-- cg$ind Record of columns specifically set
-- do_ins Whether we want the actual INSERT to occur
--------------------------------------------------------------------------------
PROCEDURE ins(cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type,
do_ins IN BOOLEAN DEFAULT TRUE) IS
cg$tmp_rec cg$row_type;
-- Constant default values
D210_USER_LOCKED CONSTANT SYSTEM_USERS.USER_LOCKED%TYPE := 'Y';
D230_LANGUAGE CONSTANT SYSTEM_USERS.LANGUAGE%TYPE := 'EN';
BEGIN
-- Application_logic Pre-Insert <<Start>>
-- Application_logic Pre-Insert << End >>
-- Defaulted
IF NOT (cg$ind.USER_LOCKED) THEN cg$rec.USER_LOCKED := D210_USER_LOCKED; END IF;
IF NOT (cg$ind.LANGUAGE) THEN cg$rec.LANGUAGE := D230_LANGUAGE; END IF;
-- Auto-generated and uppercased columns
up_autogen_columns(cg$rec, cg$ind, 'INS', do_ins);
called_from_package := TRUE;
IF (do_ins) THEN
validate_foreign_keys_ins(cg$rec);
validate_arc(cg$rec);
validate_domain(cg$rec);
INSERT INTO SYSTEM_USERS
(UPDATED_BY
,CREATED_BY
,SYUS_ID
,DB_USERNAME
,FIRST_NAME
,LAST_NAME
,CONTACT_TELEPHONE
,CONTACT_FAX
,PERIOD_START
,CREATED_ON
,DESIGNATION
,DESCRIPTION
,PERIOD_END
,TITLE
,UPDATED_ON
,EMAIL_ADDRESS
,INTE_ID
,CUST_ID
,PASSWORD_EXPIRES
,GRACE_LOGINS
,USER_LOCKED
,PASSWORD
,LANGUAGE
,MOBILE_TEL_NUMBER
,CERTIFICATE_SERIAL)
VALUES
(cg$rec.UPDATED_BY
,cg$rec.CREATED_BY
,cg$rec.SYUS_ID
,cg$rec.DB_USERNAME
,cg$rec.FIRST_NAME
,cg$rec.LAST_NAME
,cg$rec.CONTACT_TELEPHONE
,cg$rec.CONTACT_FAX
,cg$rec.PERIOD_START
,cg$rec.CREATED_ON
,cg$rec.DESIGNATION
,cg$rec.DESCRIPTION
,cg$rec.PERIOD_END
,cg$rec.TITLE
,cg$rec.UPDATED_ON
,cg$rec.EMAIL_ADDRESS
,cg$rec.INTE_ID
,cg$rec.CUST_ID
,cg$rec.PASSWORD_EXPIRES
,cg$rec.GRACE_LOGINS
,cg$rec.USER_LOCKED
,cg$rec.PASSWORD
,cg$rec.LANGUAGE
,cg$rec.MOBILE_TEL_NUMBER
,cg$rec.CERTIFICATE_SERIAL
);
doLobs(cg$rec, cg$ind);
slct(cg$rec);
upd_oper_denorm2(cg$rec, cg$tmp_rec, cg$ind, 'INS');
END IF;
called_from_package := FALSE;
-- Application logic Post-Insert <<Start>>
-- Application logic Post-Insert << End >>
EXCEPTION
WHEN cg$errors.cg$error THEN
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.mandatory_missing THEN
validate_mandatory(cg$rec, 'cg$SYSTEM_USERS.ins.mandatory_missing');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.check_violation THEN
err_msg(SQLERRM, cg$errors.ERR_CHECK_CON, 'cg$SYSTEM_USERS.ins.check_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.fk_violation THEN
err_msg(SQLERRM, cg$errors.ERR_FOREIGN_KEY, 'cg$SYSTEM_USERS.ins.fk_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.uk_violation THEN
err_msg(SQLERRM, cg$errors.ERR_UNIQUE_KEY, 'cg$SYSTEM_USERS.ins.uk_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.ins.others');
called_from_package := FALSE;
cg$errors.raise_failure;
END ins;
--------------------------------------------------------------------------------
-- Name: upd
--
-- Description: API update procedure
--
-- Parameters: cg$rec Record of row to be updated
-- cg$ind Record of columns specifically set
-- do_upd Whether we want the actual UPDATE to occur
--------------------------------------------------------------------------------
PROCEDURE upd(cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type,
do_upd IN BOOLEAN DEFAULT TRUE,
cg$pk IN cg$row_type DEFAULT NULL )
IS
cg$upd_rec cg$row_type;
cg$old_rec cg$row_type;
RECORD_LOGGED BOOLEAN := FALSE;
BEGIN
-- Application_logic Pre-Update <<Start>>
-- Application_logic Pre-Update << End >>
IF ( cg$pk.SYUS_ID IS NULL ) THEN
cg$upd_rec.SYUS_ID := cg$rec.SYUS_ID;
ELSE
cg$upd_rec.SYUS_ID := cg$pk.SYUS_ID;
END IF;
cg$old_rec.SYUS_ID := cg$upd_rec.SYUS_ID;
IF ( cg$pk.the_rowid IS NULL ) THEN
cg$upd_rec.the_rowid := cg$rec.the_rowid;
ELSE
cg$upd_rec.the_rowid := cg$pk.the_rowid;
END IF;
cg$old_rec.the_rowid := cg$upd_rec.the_rowid;
IF ( do_upd ) THEN
slct(cg$upd_rec);
-- Report error if attempt to update non-updateable Unique Key SYUS_UK
IF (cg$ind.DB_USERNAME AND cg$rec.DB_USERNAME != cg$upd_rec.DB_USERNAME) THEN
raise_uk_not_updateable('SYUS_UK');
END IF;
IF (cg$ind.DB_USERNAME AND cg$rec.DB_USERNAME IS NULL AND cg$upd_rec.DB_USERNAME IS NOT NULL) THEN
raise_uk_not_updateable('SYUS_UK');
END IF;
IF (cg$ind.DB_USERNAME AND cg$rec.DB_USERNAME IS NOT NULL AND cg$upd_rec.DB_USERNAME IS NULL) THEN
raise_uk_not_updateable('SYUS_UK');
END IF;
-- Report error if attempt to update non updateable Primary Key SYUS_PK
IF (cg$ind.SYUS_ID AND cg$rec.SYUS_ID != cg$upd_rec.SYUS_ID) THEN
raise_uk_not_updateable('SYUS_PK');
END IF;
IF NOT (cg$ind.UPDATED_BY) THEN
cg$rec.UPDATED_BY := cg$upd_rec.UPDATED_BY;
END IF;
IF NOT (cg$ind.CREATED_BY) THEN
cg$rec.CREATED_BY := cg$upd_rec.CREATED_BY;
END IF;
IF NOT (cg$ind.SYUS_ID) THEN
cg$rec.SYUS_ID := cg$upd_rec.SYUS_ID;
END IF;
IF NOT (cg$ind.DB_USERNAME) THEN
cg$rec.DB_USERNAME := cg$upd_rec.DB_USERNAME;
END IF;
IF NOT (cg$ind.FIRST_NAME) THEN
cg$rec.FIRST_NAME := cg$upd_rec.FIRST_NAME;
END IF;
IF NOT (cg$ind.LAST_NAME) THEN
cg$rec.LAST_NAME := cg$upd_rec.LAST_NAME;
END IF;
IF NOT (cg$ind.CONTACT_TELEPHONE) THEN
cg$rec.CONTACT_TELEPHONE := cg$upd_rec.CONTACT_TELEPHONE;
END IF;
IF NOT (cg$ind.CONTACT_FAX) THEN
cg$rec.CONTACT_FAX := cg$upd_rec.CONTACT_FAX;
END IF;
IF NOT (cg$ind.PERIOD_START) THEN
cg$rec.PERIOD_START := cg$upd_rec.PERIOD_START;
END IF;
IF NOT (cg$ind.CREATED_ON) THEN
cg$rec.CREATED_ON := cg$upd_rec.CREATED_ON;
END IF;
IF NOT (cg$ind.DESIGNATION) THEN
cg$rec.DESIGNATION := cg$upd_rec.DESIGNATION;
END IF;
IF NOT (cg$ind.DESCRIPTION) THEN
cg$rec.DESCRIPTION := cg$upd_rec.DESCRIPTION;
END IF;
IF NOT (cg$ind.PERIOD_END) THEN
cg$rec.PERIOD_END := cg$upd_rec.PERIOD_END;
END IF;
IF NOT (cg$ind.TITLE) THEN
cg$rec.TITLE := cg$upd_rec.TITLE;
END IF;
IF NOT (cg$ind.UPDATED_ON) THEN
cg$rec.UPDATED_ON := cg$upd_rec.UPDATED_ON;
END IF;
IF NOT (cg$ind.EMAIL_ADDRESS) THEN
cg$rec.EMAIL_ADDRESS := cg$upd_rec.EMAIL_ADDRESS;
END IF;
IF NOT (cg$ind.INTE_ID) THEN
cg$rec.INTE_ID := cg$upd_rec.INTE_ID;
END IF;
IF NOT (cg$ind.CUST_ID) THEN
cg$rec.CUST_ID := cg$upd_rec.CUST_ID;
END IF;
IF NOT (cg$ind.PASSWORD_EXPIRES) THEN
cg$rec.PASSWORD_EXPIRES := cg$upd_rec.PASSWORD_EXPIRES;
END IF;
IF NOT (cg$ind.GRACE_LOGINS) THEN
cg$rec.GRACE_LOGINS := cg$upd_rec.GRACE_LOGINS;
END IF;
IF NOT (cg$ind.USER_LOCKED) THEN
cg$rec.USER_LOCKED := cg$upd_rec.USER_LOCKED;
END IF;
IF NOT (cg$ind.PASSWORD) THEN
cg$rec.PASSWORD := cg$upd_rec.PASSWORD;
END IF;
IF NOT (cg$ind.LANGUAGE) THEN
cg$rec.LANGUAGE := cg$upd_rec.LANGUAGE;
END IF;
IF NOT (cg$ind.MOBILE_TEL_NUMBER) THEN
cg$rec.MOBILE_TEL_NUMBER := cg$upd_rec.MOBILE_TEL_NUMBER;
END IF;
IF NOT (cg$ind.CERTIFICATE_SERIAL) THEN
cg$rec.CERTIFICATE_SERIAL := cg$upd_rec.CERTIFICATE_SERIAL;
END IF;
ELSE
-- Perform checks if called from a trigger
-- Indicators are only set on changed values
null;
-- Report error if attempt to update non updateable Unique Key SYUS_UK
IF ( cg$ind.DB_USERNAME ) THEN
raise_uk_not_updateable('SYUS_UK');
END IF;
-- Report error if attempt to update non updateable Primary Key SYUS_PK
IF ( cg$ind.SYUS_ID ) THEN
raise_uk_not_updateable('SYUS_PK');
END IF;
END IF;
up_autogen_columns(cg$rec, cg$ind, 'UPD', do_upd); -- Auto-generated and uppercased columns
-- Now do update if updateable columns exist
IF (do_upd) THEN
DECLARE
called_from BOOLEAN := called_from_package;
BEGIN
called_from_package := TRUE;
slct(cg$old_rec);
validate_foreign_keys_upd(cg$rec, cg$old_rec, cg$ind);
validate_arc(cg$rec);
validate_domain(cg$rec, cg$ind);
validate_domain_cascade_update(cg$old_rec);
IF cg$rec.the_rowid is null THEN
UPDATE SYSTEM_USERS
SET
UPDATED_BY = cg$rec.UPDATED_BY
,CREATED_BY = cg$rec.CREATED_BY
,DB_USERNAME = cg$rec.DB_USERNAME
,FIRST_NAME = cg$rec.FIRST_NAME
,LAST_NAME = cg$rec.LAST_NAME
,CONTACT_TELEPHONE = cg$rec.CONTACT_TELEPHONE
,CONTACT_FAX = cg$rec.CONTACT_FAX
,PERIOD_START = cg$rec.PERIOD_START
,CREATED_ON = cg$rec.CREATED_ON
,DESIGNATION = cg$rec.DESIGNATION
,DESCRIPTION = cg$rec.DESCRIPTION
,PERIOD_END = cg$rec.PERIOD_END
,TITLE = cg$rec.TITLE
,UPDATED_ON = cg$rec.UPDATED_ON
,EMAIL_ADDRESS = cg$rec.EMAIL_ADDRESS
,INTE_ID = cg$rec.INTE_ID
,CUST_ID = cg$rec.CUST_ID
,PASSWORD_EXPIRES = cg$rec.PASSWORD_EXPIRES
,GRACE_LOGINS = cg$rec.GRACE_LOGINS
,USER_LOCKED = cg$rec.USER_LOCKED
,PASSWORD = cg$rec.PASSWORD
,LANGUAGE = cg$rec.LANGUAGE
,MOBILE_TEL_NUMBER = cg$rec.MOBILE_TEL_NUMBER
,CERTIFICATE_SERIAL = cg$rec.CERTIFICATE_SERIAL
WHERE SYUS_ID = cg$rec.SYUS_ID;
null;
ELSE
UPDATE SYSTEM_USERS
SET
UPDATED_BY = cg$rec.UPDATED_BY
,CREATED_BY = cg$rec.CREATED_BY
,DB_USERNAME = cg$rec.DB_USERNAME
,FIRST_NAME = cg$rec.FIRST_NAME
,LAST_NAME = cg$rec.LAST_NAME
,CONTACT_TELEPHONE = cg$rec.CONTACT_TELEPHONE
,CONTACT_FAX = cg$rec.CONTACT_FAX
,PERIOD_START = cg$rec.PERIOD_START
,CREATED_ON = cg$rec.CREATED_ON
,DESIGNATION = cg$rec.DESIGNATION
,DESCRIPTION = cg$rec.DESCRIPTION
,PERIOD_END = cg$rec.PERIOD_END
,TITLE = cg$rec.TITLE
,UPDATED_ON = cg$rec.UPDATED_ON
,EMAIL_ADDRESS = cg$rec.EMAIL_ADDRESS
,INTE_ID = cg$rec.INTE_ID
,CUST_ID = cg$rec.CUST_ID
,PASSWORD_EXPIRES = cg$rec.PASSWORD_EXPIRES
,GRACE_LOGINS = cg$rec.GRACE_LOGINS
,USER_LOCKED = cg$rec.USER_LOCKED
,PASSWORD = cg$rec.PASSWORD
,LANGUAGE = cg$rec.LANGUAGE
,MOBILE_TEL_NUMBER = cg$rec.MOBILE_TEL_NUMBER
,CERTIFICATE_SERIAL = cg$rec.CERTIFICATE_SERIAL
WHERE rowid = cg$rec.the_rowid;
null;
END IF;
slct(cg$rec);
upd_denorm2(cg$rec, cg$ind);
upd_oper_denorm2(cg$rec, cg$old_rec, cg$ind, 'UPD');
cascade_update(cg$rec, cg$old_rec);
domain_cascade_update(cg$rec, cg$ind, cg$old_rec);
called_from_package := called_from;
END;
END IF;
IF NOT (do_upd) THEN
cg$table(idx).UPDATED_BY := cg$rec.UPDATED_BY;
cg$tableind(idx).UPDATED_BY := cg$ind.UPDATED_BY;
cg$table(idx).CREATED_BY := cg$rec.CREATED_BY;
cg$tableind(idx).CREATED_BY := cg$ind.CREATED_BY;
cg$table(idx).SYUS_ID := cg$rec.SYUS_ID;
cg$tableind(idx).SYUS_ID := cg$ind.SYUS_ID;
cg$table(idx).DB_USERNAME := cg$rec.DB_USERNAME;
cg$tableind(idx).DB_USERNAME := cg$ind.DB_USERNAME;
cg$table(idx).FIRST_NAME := cg$rec.FIRST_NAME;
cg$tableind(idx).FIRST_NAME := cg$ind.FIRST_NAME;
cg$table(idx).LAST_NAME := cg$rec.LAST_NAME;
cg$tableind(idx).LAST_NAME := cg$ind.LAST_NAME;
cg$table(idx).CONTACT_TELEPHONE := cg$rec.CONTACT_TELEPHONE;
cg$tableind(idx).CONTACT_TELEPHONE := cg$ind.CONTACT_TELEPHONE;
cg$table(idx).CONTACT_FAX := cg$rec.CONTACT_FAX;
cg$tableind(idx).CONTACT_FAX := cg$ind.CONTACT_FAX;
cg$table(idx).PERIOD_START := cg$rec.PERIOD_START;
cg$tableind(idx).PERIOD_START := cg$ind.PERIOD_START;
cg$table(idx).CREATED_ON := cg$rec.CREATED_ON;
cg$tableind(idx).CREATED_ON := cg$ind.CREATED_ON;
cg$table(idx).DESIGNATION := cg$rec.DESIGNATION;
cg$tableind(idx).DESIGNATION := cg$ind.DESIGNATION;
cg$table(idx).DESCRIPTION := cg$rec.DESCRIPTION;
cg$tableind(idx).DESCRIPTION := cg$ind.DESCRIPTION;
cg$table(idx).PERIOD_END := cg$rec.PERIOD_END;
cg$tableind(idx).PERIOD_END := cg$ind.PERIOD_END;
cg$table(idx).TITLE := cg$rec.TITLE;
cg$tableind(idx).TITLE := cg$ind.TITLE;
cg$table(idx).UPDATED_ON := cg$rec.UPDATED_ON;
cg$tableind(idx).UPDATED_ON := cg$ind.UPDATED_ON;
cg$table(idx).EMAIL_ADDRESS := cg$rec.EMAIL_ADDRESS;
cg$tableind(idx).EMAIL_ADDRESS := cg$ind.EMAIL_ADDRESS;
cg$table(idx).INTE_ID := cg$rec.INTE_ID;
cg$tableind(idx).INTE_ID := cg$ind.INTE_ID;
cg$table(idx).CUST_ID := cg$rec.CUST_ID;
cg$tableind(idx).CUST_ID := cg$ind.CUST_ID;
cg$table(idx).PASSWORD_EXPIRES := cg$rec.PASSWORD_EXPIRES;
cg$tableind(idx).PASSWORD_EXPIRES := cg$ind.PASSWORD_EXPIRES;
cg$table(idx).GRACE_LOGINS := cg$rec.GRACE_LOGINS;
cg$tableind(idx).GRACE_LOGINS := cg$ind.GRACE_LOGINS;
cg$table(idx).USER_LOCKED := cg$rec.USER_LOCKED;
cg$tableind(idx).USER_LOCKED := cg$ind.USER_LOCKED;
cg$table(idx).PASSWORD := cg$rec.PASSWORD;
cg$tableind(idx).PASSWORD := cg$ind.PASSWORD;
cg$table(idx).LANGUAGE := cg$rec.LANGUAGE;
cg$tableind(idx).LANGUAGE := cg$ind.LANGUAGE;
cg$table(idx).MOBILE_TEL_NUMBER := cg$rec.MOBILE_TEL_NUMBER;
cg$tableind(idx).MOBILE_TEL_NUMBER := cg$ind.MOBILE_TEL_NUMBER;
cg$table(idx).CERTIFICATE_SERIAL := cg$rec.CERTIFICATE_SERIAL;
cg$tableind(idx).CERTIFICATE_SERIAL := cg$ind.CERTIFICATE_SERIAL;
idx := idx + 1;
END IF;
-- Application_logic Post-Update <<Start>>
-- Application_logic Post-Update << End >>
EXCEPTION
WHEN cg$errors.cg$error THEN
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.upd_mandatory_null THEN
validate_mandatory(cg$rec, 'cg$SYSTEM_USERS.upd.upd_mandatory_null');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.check_violation THEN
err_msg(SQLERRM, cg$errors.ERR_CHECK_CON, 'cg$SYSTEM_USERS.upd.check_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.fk_violation THEN
err_msg(SQLERRM, cg$errors.ERR_FOREIGN_KEY, 'cg$SYSTEM_USERS.upd.fk_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.uk_violation THEN
err_msg(SQLERRM, cg$errors.ERR_UNIQUE_KEY, 'cg$SYSTEM_USERS.upd.uk_violation');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.upd.others');
called_from_package := FALSE;
cg$errors.raise_failure;
END upd;
----------------------------------------------------------------------------------------
-- Name: domain_cascade_upd
--
-- Description: Update the Domain Constraint Key columns of SYSTEM_USERS when the
-- Cascade Update rule is Cascades and the domain table has been
-- updated. Called from <Domain Table pkg>.domain_cascade_update().
--
-- Parameters: cg$rec New values for SYSTEM_USERS's domain key constraint columns
-- cg$ind Indicates changed SYSTEM_USERS's domain key constraint columns
-- cg$old_rec Current values for SYSTEM_USERS's domain key constraint columns
----------------------------------------------------------------------------------------
PROCEDURE domain_cascade_upd( cg$rec IN OUT cg$row_type,
cg$ind IN OUT cg$ind_type,
cg$old_rec IN cg$row_type )
IS
called_from BOOLEAN := called_from_package;
BEGIN
null;
END domain_cascade_upd;
--------------------------------------------------------------------------------
-- Name: upd_denorm
--
-- Description: API procedure for simple denormalization
--
-- Parameters: cg$rec Record of row to be updated
-- cg$ind Record of columns specifically set
-- do_upd Whether we want the actual UPDATE to occur
--------------------------------------------------------------------------------
PROCEDURE upd_denorm2( cg$rec IN cg$row_type,
cg$ind IN cg$ind_type ) IS
BEGIN
NULL;
END upd_denorm2;
--------------------------------------------------------------------------------
-- Name: upd_oper_denorm
--
-- Description: API procedure for operation denormalization
--
-- Parameters: cg$rec Record of row to be updated
-- cg$ind Record of columns specifically set
-- do_upd Whether we want the actual UPDATE to occur
--------------------------------------------------------------------------------
PROCEDURE upd_oper_denorm2( cg$rec IN cg$row_type,
cg$old_rec IN cg$row_type,
cg$ind IN cg$ind_type,
operation IN VARCHAR2 DEFAULT 'UPD'
)
IS
BEGIN
NULL;
END upd_oper_denorm2;
--------------------------------------------------------------------------------
-- Name: del
--
-- Description: API delete procedure
--
-- Parameters: cg$pk Primary key record of row to be deleted
--------------------------------------------------------------------------------
PROCEDURE del(cg$pk IN cg$pk_type,
do_del IN BOOLEAN DEFAULT TRUE) IS
BEGIN
-- Application_logic Pre-Delete <<Start>>
-- Application_logic Pre-Delete << End >>
-- Delete the record
called_from_package := TRUE;
IF (do_del) THEN
DECLARE
cg$rec cg$row_type;
cg$old_rec cg$row_type;
cg$ind cg$ind_type;
BEGIN
cg$rec.SYUS_ID := cg$pk.SYUS_ID;
slct(cg$rec);
validate_foreign_keys_del(cg$rec);
validate_domain_cascade_delete(cg$rec);
IF cg$pk.the_rowid is null THEN
DELETE SYSTEM_USERS
WHERE SYUS_ID = cg$pk.SYUS_ID;
ELSE
DELETE SYSTEM_USERS
WHERE rowid = cg$pk.the_rowid;
END IF;
upd_oper_denorm2(cg$rec, cg$old_rec, cg$ind, 'DEL');
cascade_delete(cg$rec);
domain_cascade_delete(cg$rec);
END;
END IF;
called_from_package := FALSE;
-- Application_logic Post-Delete <<Start>>
-- Application_logic Post-Delete << End >>
EXCEPTION
WHEN cg$errors.cg$error THEN
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN cg$errors.delete_restrict THEN
err_msg(SQLERRM, cg$errors.ERR_DELETE_RESTRICT, 'cg$SYSTEM_USERS.del.delete_restrict');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN no_data_found THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_DEL, cg$errors.ROW_DEL),
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.del.no_data_found');
called_from_package := FALSE;
cg$errors.raise_failure;
WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.del.others');
called_from_package := FALSE;
cg$errors.raise_failure;
END del;
--------------------------------------------------------------------------------
-- Name: lck
--
-- Description: API lock procedure
--
-- Parameters: cg$old_rec Calling apps view of record of row to be locked
-- cg$old_ind Record of columns to raise error if modified
-- nowait_flag TRUE lock with NOWAIT, FALSE don't fail if busy
--------------------------------------------------------------------------------
PROCEDURE lck(cg$old_rec IN cg$row_type,
cg$old_ind IN cg$ind_type,
nowait_flag IN BOOLEAN DEFAULT TRUE) IS
cg$tmp_rec cg$row_type;
any_modified BOOLEAN := FALSE;
BEGIN
-- Application_logic Pre-Lock <<Start>>
-- Application_logic Pre-Lock << End >>
-- Do the row lock
BEGIN
IF (nowait_flag) THEN
IF cg$old_rec.the_rowid is null THEN
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
INTO cg$tmp_rec.UPDATED_BY
, cg$tmp_rec.CREATED_BY
, cg$tmp_rec.SYUS_ID
, cg$tmp_rec.DB_USERNAME
, cg$tmp_rec.FIRST_NAME
, cg$tmp_rec.LAST_NAME
, cg$tmp_rec.CONTACT_TELEPHONE
, cg$tmp_rec.CONTACT_FAX
, cg$tmp_rec.PERIOD_START
, cg$tmp_rec.CREATED_ON
, cg$tmp_rec.DESIGNATION
, cg$tmp_rec.DESCRIPTION
, cg$tmp_rec.PERIOD_END
, cg$tmp_rec.TITLE
, cg$tmp_rec.UPDATED_ON
, cg$tmp_rec.EMAIL_ADDRESS
, cg$tmp_rec.INTE_ID
, cg$tmp_rec.CUST_ID
, cg$tmp_rec.PASSWORD_EXPIRES
, cg$tmp_rec.GRACE_LOGINS
, cg$tmp_rec.USER_LOCKED
, cg$tmp_rec.PASSWORD
, cg$tmp_rec.LANGUAGE
, cg$tmp_rec.MOBILE_TEL_NUMBER
, cg$tmp_rec.CERTIFICATE_SERIAL
FROM SYSTEM_USERS
WHERE SYUS_ID = cg$old_rec.SYUS_ID
FOR UPDATE NOWAIT;
ELSE
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
INTO cg$tmp_rec.UPDATED_BY
, cg$tmp_rec.CREATED_BY
, cg$tmp_rec.SYUS_ID
, cg$tmp_rec.DB_USERNAME
, cg$tmp_rec.FIRST_NAME
, cg$tmp_rec.LAST_NAME
, cg$tmp_rec.CONTACT_TELEPHONE
, cg$tmp_rec.CONTACT_FAX
, cg$tmp_rec.PERIOD_START
, cg$tmp_rec.CREATED_ON
, cg$tmp_rec.DESIGNATION
, cg$tmp_rec.DESCRIPTION
, cg$tmp_rec.PERIOD_END
, cg$tmp_rec.TITLE
, cg$tmp_rec.UPDATED_ON
, cg$tmp_rec.EMAIL_ADDRESS
, cg$tmp_rec.INTE_ID
, cg$tmp_rec.CUST_ID
, cg$tmp_rec.PASSWORD_EXPIRES
, cg$tmp_rec.GRACE_LOGINS
, cg$tmp_rec.USER_LOCKED
, cg$tmp_rec.PASSWORD
, cg$tmp_rec.LANGUAGE
, cg$tmp_rec.MOBILE_TEL_NUMBER
, cg$tmp_rec.CERTIFICATE_SERIAL
FROM SYSTEM_USERS
WHERE rowid = cg$old_rec.the_rowid
FOR UPDATE NOWAIT;
END IF;
ELSE
IF cg$old_rec.the_rowid is null THEN
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
INTO cg$tmp_rec.UPDATED_BY
, cg$tmp_rec.CREATED_BY
, cg$tmp_rec.SYUS_ID
, cg$tmp_rec.DB_USERNAME
, cg$tmp_rec.FIRST_NAME
, cg$tmp_rec.LAST_NAME
, cg$tmp_rec.CONTACT_TELEPHONE
, cg$tmp_rec.CONTACT_FAX
, cg$tmp_rec.PERIOD_START
, cg$tmp_rec.CREATED_ON
, cg$tmp_rec.DESIGNATION
, cg$tmp_rec.DESCRIPTION
, cg$tmp_rec.PERIOD_END
, cg$tmp_rec.TITLE
, cg$tmp_rec.UPDATED_ON
, cg$tmp_rec.EMAIL_ADDRESS
, cg$tmp_rec.INTE_ID
, cg$tmp_rec.CUST_ID
, cg$tmp_rec.PASSWORD_EXPIRES
, cg$tmp_rec.GRACE_LOGINS
, cg$tmp_rec.USER_LOCKED
, cg$tmp_rec.PASSWORD
, cg$tmp_rec.LANGUAGE
, cg$tmp_rec.MOBILE_TEL_NUMBER
, cg$tmp_rec.CERTIFICATE_SERIAL
FROM SYSTEM_USERS
WHERE SYUS_ID = cg$old_rec.SYUS_ID
FOR UPDATE;
ELSE
SELECT UPDATED_BY
, CREATED_BY
, SYUS_ID
, DB_USERNAME
, FIRST_NAME
, LAST_NAME
, CONTACT_TELEPHONE
, CONTACT_FAX
, PERIOD_START
, CREATED_ON
, DESIGNATION
, DESCRIPTION
, PERIOD_END
, TITLE
, UPDATED_ON
, EMAIL_ADDRESS
, INTE_ID
, CUST_ID
, PASSWORD_EXPIRES
, GRACE_LOGINS
, USER_LOCKED
, PASSWORD
, LANGUAGE
, MOBILE_TEL_NUMBER
, CERTIFICATE_SERIAL
INTO cg$tmp_rec.UPDATED_BY
, cg$tmp_rec.CREATED_BY
, cg$tmp_rec.SYUS_ID
, cg$tmp_rec.DB_USERNAME
, cg$tmp_rec.FIRST_NAME
, cg$tmp_rec.LAST_NAME
, cg$tmp_rec.CONTACT_TELEPHONE
, cg$tmp_rec.CONTACT_FAX
, cg$tmp_rec.PERIOD_START
, cg$tmp_rec.CREATED_ON
, cg$tmp_rec.DESIGNATION
, cg$tmp_rec.DESCRIPTION
, cg$tmp_rec.PERIOD_END
, cg$tmp_rec.TITLE
, cg$tmp_rec.UPDATED_ON
, cg$tmp_rec.EMAIL_ADDRESS
, cg$tmp_rec.INTE_ID
, cg$tmp_rec.CUST_ID
, cg$tmp_rec.PASSWORD_EXPIRES
, cg$tmp_rec.GRACE_LOGINS
, cg$tmp_rec.USER_LOCKED
, cg$tmp_rec.PASSWORD
, cg$tmp_rec.LANGUAGE
, cg$tmp_rec.MOBILE_TEL_NUMBER
, cg$tmp_rec.CERTIFICATE_SERIAL
FROM SYSTEM_USERS
WHERE rowid = cg$old_rec.the_rowid
FOR UPDATE;
END IF;
END IF;
EXCEPTION
WHEN cg$errors.cg$error THEN
cg$errors.raise_failure;
WHEN cg$errors.resource_busy THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_LCK, cg$errors.ROW_LCK),
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.lck.resource_busy');
cg$errors.raise_failure;
WHEN no_data_found THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_DEL, cg$errors.ROW_DEL),
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.lck.no_data_found');
cg$errors.raise_failure;
WHEN OTHERS THEN
cg$errors.push(SQLERRM,
'E',
'ORA',
SQLCODE,
'cg$SYSTEM_USERS.lck.others');
cg$errors.raise_failure;
END;
-- Optional Columns
IF (cg$old_ind.UPDATED_BY) THEN
IF (cg$tmp_rec.UPDATED_BY IS NOT NULL
AND cg$old_rec.UPDATED_BY IS NOT NULL) THEN
IF (cg$tmp_rec.UPDATED_BY != cg$old_rec.UPDATED_BY) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P140UPDATED_BY
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.UPDATED_BY IS NOT NULL
OR cg$old_rec.UPDATED_BY IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P140UPDATED_BY
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.DESIGNATION) THEN
IF (cg$tmp_rec.DESIGNATION IS NOT NULL
AND cg$old_rec.DESIGNATION IS NOT NULL) THEN
IF (cg$tmp_rec.DESIGNATION != cg$old_rec.DESIGNATION) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P100DESIGNATION
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.DESIGNATION IS NOT NULL
OR cg$old_rec.DESIGNATION IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P100DESIGNATION
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.DESCRIPTION) THEN
IF (cg$tmp_rec.DESCRIPTION IS NOT NULL
AND cg$old_rec.DESCRIPTION IS NOT NULL) THEN
IF (cg$tmp_rec.DESCRIPTION != cg$old_rec.DESCRIPTION) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P110DESCRIPTION
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.DESCRIPTION IS NOT NULL
OR cg$old_rec.DESCRIPTION IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P110DESCRIPTION
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.PERIOD_END) THEN
IF (cg$tmp_rec.PERIOD_END IS NOT NULL
AND cg$old_rec.PERIOD_END IS NOT NULL) THEN
IF (cg$tmp_rec.PERIOD_END != cg$old_rec.PERIOD_END) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P120PERIOD_END
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.PERIOD_END IS NOT NULL
OR cg$old_rec.PERIOD_END IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P120PERIOD_END
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.TITLE) THEN
IF (cg$tmp_rec.TITLE IS NOT NULL
AND cg$old_rec.TITLE IS NOT NULL) THEN
IF (cg$tmp_rec.TITLE != cg$old_rec.TITLE) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P130TITLE
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.TITLE IS NOT NULL
OR cg$old_rec.TITLE IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P130TITLE
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.UPDATED_ON) THEN
IF (cg$tmp_rec.UPDATED_ON IS NOT NULL
AND cg$old_rec.UPDATED_ON IS NOT NULL) THEN
IF (cg$tmp_rec.UPDATED_ON != cg$old_rec.UPDATED_ON) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P150UPDATED_ON
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.UPDATED_ON IS NOT NULL
OR cg$old_rec.UPDATED_ON IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P150UPDATED_ON
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.EMAIL_ADDRESS) THEN
IF (cg$tmp_rec.EMAIL_ADDRESS IS NOT NULL
AND cg$old_rec.EMAIL_ADDRESS IS NOT NULL) THEN
IF (cg$tmp_rec.EMAIL_ADDRESS != cg$old_rec.EMAIL_ADDRESS) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P160EMAIL_ADDRESS
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.EMAIL_ADDRESS IS NOT NULL
OR cg$old_rec.EMAIL_ADDRESS IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P160EMAIL_ADDRESS
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.PASSWORD_EXPIRES) THEN
IF (cg$tmp_rec.PASSWORD_EXPIRES IS NOT NULL
AND cg$old_rec.PASSWORD_EXPIRES IS NOT NULL) THEN
IF (cg$tmp_rec.PASSWORD_EXPIRES != cg$old_rec.PASSWORD_EXPIRES) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P190PASSWORD_EXPIRES
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.PASSWORD_EXPIRES IS NOT NULL
OR cg$old_rec.PASSWORD_EXPIRES IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P190PASSWORD_EXPIRES
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.GRACE_LOGINS) THEN
IF (cg$tmp_rec.GRACE_LOGINS IS NOT NULL
AND cg$old_rec.GRACE_LOGINS IS NOT NULL) THEN
IF (cg$tmp_rec.GRACE_LOGINS != cg$old_rec.GRACE_LOGINS) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P200GRACE_LOGINS
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.GRACE_LOGINS IS NOT NULL
OR cg$old_rec.GRACE_LOGINS IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P200GRACE_LOGINS
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.PASSWORD) THEN
IF (cg$tmp_rec.PASSWORD IS NOT NULL
AND cg$old_rec.PASSWORD IS NOT NULL) THEN
IF (cg$tmp_rec.PASSWORD != cg$old_rec.PASSWORD) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P220PASSWORD
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.PASSWORD IS NOT NULL
OR cg$old_rec.PASSWORD IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P220PASSWORD
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.MOBILE_TEL_NUMBER) THEN
IF (cg$tmp_rec.MOBILE_TEL_NUMBER IS NOT NULL
AND cg$old_rec.MOBILE_TEL_NUMBER IS NOT NULL) THEN
IF (cg$tmp_rec.MOBILE_TEL_NUMBER != cg$old_rec.MOBILE_TEL_NUMBER) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P240MOBILE_TEL_NUMBER
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.MOBILE_TEL_NUMBER IS NOT NULL
OR cg$old_rec.MOBILE_TEL_NUMBER IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P240MOBILE_TEL_NUMBER
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.CERTIFICATE_SERIAL) THEN
IF (cg$tmp_rec.CERTIFICATE_SERIAL IS NOT NULL
AND cg$old_rec.CERTIFICATE_SERIAL IS NOT NULL) THEN
IF (cg$tmp_rec.CERTIFICATE_SERIAL != cg$old_rec.CERTIFICATE_SERIAL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P250CERTIFICATE_SERIAL
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
ELSIF (cg$tmp_rec.CERTIFICATE_SERIAL IS NOT NULL
OR cg$old_rec.CERTIFICATE_SERIAL IS NOT NULL) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P250CERTIFICATE_SERIAL
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
-- Mandatory Columns
IF (cg$old_ind.CREATED_BY) THEN
IF (cg$tmp_rec.CREATED_BY != cg$old_rec.CREATED_BY) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P80CREATED_BY
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.SYUS_ID) THEN
IF (cg$tmp_rec.SYUS_ID != cg$old_rec.SYUS_ID) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P10SYUS_ID
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.DB_USERNAME) THEN
IF (cg$tmp_rec.DB_USERNAME != cg$old_rec.DB_USERNAME) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P20DB_USERNAME
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.FIRST_NAME) THEN
IF (cg$tmp_rec.FIRST_NAME != cg$old_rec.FIRST_NAME) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P30FIRST_NAME
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.LAST_NAME) THEN
IF (cg$tmp_rec.LAST_NAME != cg$old_rec.LAST_NAME) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P40LAST_NAME
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.CONTACT_TELEPHONE) THEN
IF (cg$tmp_rec.CONTACT_TELEPHONE != cg$old_rec.CONTACT_TELEPHONE) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P50CONTACT_TELEPHONE
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.CONTACT_FAX) THEN
IF (cg$tmp_rec.CONTACT_FAX != cg$old_rec.CONTACT_FAX) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P60CONTACT_FAX
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.PERIOD_START) THEN
IF (cg$tmp_rec.PERIOD_START != cg$old_rec.PERIOD_START) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P70PERIOD_START
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.CREATED_ON) THEN
IF (cg$tmp_rec.CREATED_ON != cg$old_rec.CREATED_ON) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P90CREATED_ON
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.INTE_ID) THEN
IF (cg$tmp_rec.INTE_ID != cg$old_rec.INTE_ID) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P170INTE_ID
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.CUST_ID) THEN
IF (cg$tmp_rec.CUST_ID != cg$old_rec.CUST_ID) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P180CUST_ID
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.USER_LOCKED) THEN
IF (cg$tmp_rec.USER_LOCKED != cg$old_rec.USER_LOCKED) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P210USER_LOCKED
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (cg$old_ind.LANGUAGE) THEN
IF (cg$tmp_rec.LANGUAGE != cg$old_rec.LANGUAGE) THEN
cg$errors.push(cg$errors.MsgGetText(cg$errors.API_ROW_MOD, cg$errors.ROW_MOD, P230LANGUAGE
),'E', 'API', CG$ERRORS.API_MODIFIED, 'cg$SYSTEM_USERS.lck');
any_modified := TRUE;
END IF;
END IF;
IF (any_modified) THEN
cg$errors.raise_failure;
END IF;
-- Application_logic Post-Lock <<Start>>
-- Application_logic Post-Lock << End >>
END lck;
BEGIN
cg$ind_true.UPDATED_BY := TRUE;
cg$ind_true.CREATED_BY := TRUE;
cg$ind_true.SYUS_ID := TRUE;
cg$ind_true.DB_USERNAME := TRUE;
cg$ind_true.FIRST_NAME := TRUE;
cg$ind_true.LAST_NAME := TRUE;
cg$ind_true.CONTACT_TELEPHONE := TRUE;
cg$ind_true.CONTACT_FAX := TRUE;
cg$ind_true.PERIOD_START := TRUE;
cg$ind_true.CREATED_ON := TRUE;
cg$ind_true.DESIGNATION := TRUE;
cg$ind_true.DESCRIPTION := TRUE;
cg$ind_true.PERIOD_END := TRUE;
cg$ind_true.TITLE := TRUE;
cg$ind_true.UPDATED_ON := TRUE;
cg$ind_true.EMAIL_ADDRESS := TRUE;
cg$ind_true.INTE_ID := TRUE;
cg$ind_true.CUST_ID := TRUE;
cg$ind_true.PASSWORD_EXPIRES := TRUE;
cg$ind_true.GRACE_LOGINS := TRUE;
cg$ind_true.USER_LOCKED := TRUE;
cg$ind_true.PASSWORD := TRUE;
cg$ind_true.LANGUAGE := TRUE;
cg$ind_true.MOBILE_TEL_NUMBER := TRUE;
cg$ind_true.CERTIFICATE_SERIAL := TRUE;
END cg$SYSTEM_USERS;
/