46
Moving From Social Moving From Social Security Numbers Security Numbers Rickey Creel and Rickey Creel and Phillip Brooks Phillip Brooks ing code is provided "as-is" with no warranty, guarantee or any othe

Moving From Social Security Numbers Rickey Creel and Phillip Brooks The following code is provided "as-is" with no warranty, guarantee or any other promise

Embed Size (px)

Citation preview

Moving From Social Moving From Social Security NumbersSecurity Numbers

Rickey Creel and Rickey Creel and Phillip BrooksPhillip Brooks

The following code is provided "as-is" with no warranty, guarantee or any other promise.

WhyWhy WhenWhen WhatWhat HowHow QuestionsQuestions

WhyWhy

WhyWhy

The Federal Trade Commission (FTC) requires that The Federal Trade Commission (FTC) requires that all financial institutions establish policies and all financial institutions establish policies and procedures for safeguarding customer financial procedures for safeguarding customer financial information. This mandate requires that information. This mandate requires that Educational Entities, as financial institutions, must Educational Entities, as financial institutions, must comply with the Gramm-Leach-Bliley Act (GLBA). comply with the Gramm-Leach-Bliley Act (GLBA). This legislation is composed of several parts, This legislation is composed of several parts, including: the Privacy Rule and the Safeguards including: the Privacy Rule and the Safeguards Rule. The FTC has ruled that being in compliance Rule. The FTC has ruled that being in compliance with the Family Educational Rights and Privacy Act with the Family Educational Rights and Privacy Act (FERPA) satisfies the privacy requirement of the (FERPA) satisfies the privacy requirement of the GLBA. However, there is no similar exception for GLBA. However, there is no similar exception for the Safeguards Rule. Meridian Community College the Safeguards Rule. Meridian Community College must comply with the Safeguards Rule. must comply with the Safeguards Rule.

WhyWhy

Ensure the security and confidentiality Ensure the security and confidentiality of customer records and informationof customer records and information

Protect against any anticipated threats Protect against any anticipated threats to the security or integrity of such to the security or integrity of such recordsrecords

Protect against unauthorized access to, Protect against unauthorized access to, or use of, such records or information or use of, such records or information that could result in substantial harm or that could result in substantial harm or inconvenience to any customerinconvenience to any customer

WhenWhen

WhenWhen

Institutions must implement an Institutions must implement an information security program no later information security program no later than May 23, 2003than May 23, 2003

WhatWhat

Social Security NumbersSocial Security Numbers Employee applications, transcripts, Employee applications, transcripts,

copies of driver’s licenses and social copies of driver’s licenses and social security cardssecurity cards

Employee contractsEmployee contracts Credit card formsCredit card forms Class rolls, attendance sheets Class rolls, attendance sheets

WhatWhat

Test resultsTest results Discipline recordsDiscipline records Housing recordsHousing records Transcripts and applicationsTranscripts and applications Student statements Student statements Credit card requestsCredit card requests Income and tax documentsIncome and tax documents

WhatWhat

Birth certificates, marriage licensesBirth certificates, marriage licenses Criminal background check dataCriminal background check data Drug screen resultsDrug screen results Child abuse registry checks and Child abuse registry checks and

finger print cardsfinger print cards

ProblemsProblems

Physical security – many areas which Physical security – many areas which have access to critical information are have access to critical information are open to the public and not secured by open to the public and not secured by doorsdoors

Student workersStudent workers Shredding access is limitedShredding access is limited Open verbal exchange of restricted Open verbal exchange of restricted

informationinformation

ProblemsProblems

PC’s with access to Banner left PC’s with access to Banner left unattendedunattended

Social Security numbers are used for Social Security numbers are used for IDID

HowHow

HowHow

Employee trainingEmployee training Provide adequate shredders in all Provide adequate shredders in all

areasareas Change ID to generated IDChange ID to generated ID

ProblemsProblems

ProblemsProblems

AdmissionsAdmissions

ProblemsProblems

ID SystemID System

ProblemsProblems

PayrollPayroll

ProblemsProblems

Meal PlansMeal Plans

ProblemsProblems

Library SystemLibrary System

ProblemsProblems

RecordsRecords

ProblemsProblems

When to make the changeWhen to make the change

Spriden ID ChangeSpriden ID Change

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s Convert Current Generated ID’s from “@” ID’s Convert Current Generated ID’s from “@” ID’s

to “M” ID’sto “M” ID’s

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s Convert Current Generated ID’s from “@” ID’s Convert Current Generated ID’s from “@” ID’s

to “M” ID’sto “M” ID’s Update Banner to use a “M” for generated Update Banner to use a “M” for generated

ID’s in the FutureID’s in the Future

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s Convert Current Generated ID’s from “@” ID’s Convert Current Generated ID’s from “@” ID’s

to “M” ID’sto “M” ID’s Update Banner to use a “M” for generated Update Banner to use a “M” for generated

ID’s in the FutureID’s in the Future Create TriggersCreate Triggers

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s Convert Current Generated ID’s from “@” ID’s Convert Current Generated ID’s from “@” ID’s

to “M” ID’sto “M” ID’s Update Banner to use a “M” for generated Update Banner to use a “M” for generated

ID’s in the FutureID’s in the Future Create TriggersCreate Triggers Banner ExamplesBanner Examples

Spriden ID ChangeSpriden ID Change Change Current Social Security Number ID’s Change Current Social Security Number ID’s

to Portal ID’sto Portal ID’s Change non Social security ID’s to a Change non Social security ID’s to a

generated ID’sgenerated ID’s Convert Current Generated ID’s from “@” ID’s Convert Current Generated ID’s from “@” ID’s

to “M” ID’sto “M” ID’s Update Banner to use a “M” for generated Update Banner to use a “M” for generated

ID’s in the FutureID’s in the Future Create TriggersCreate Triggers Banner ExamplesBanner Examples Change form for persons not receiving a Change form for persons not receiving a

Portal IDPortal ID

Change Current Social Security Change Current Social Security Number ID’s to Portal ID’sNumber ID’s to Portal ID’s

DECLAREDECLAREv_stu_pidm gobtpac.gobtpac_pidm%v_stu_pidm gobtpac.gobtpac_pidm%TYPETYPE;;v_stu_ext_id gobtpac.gobtpac_external_user%v_stu_ext_id gobtpac.gobtpac_external_user%TYPETYPE;;v_stu_spr_id spriden.spriden_id%v_stu_spr_id spriden.spriden_id%TYPETYPE;;

cursorcursor W_stuid W_stuid ISISSELECTSELECT A.GOBTPAC_PIDM, A.GOBTPAC_PIDM, UPPER(substr(a.gobtpac_external_user,1,9)), UPPER(substr(a.gobtpac_external_user,1,9)), spriden_id spriden_id FROMFROM gobtpac A, spriden gobtpac A, spriden WHEREWHERE A.GOBTPAC_PIDM = spriden_pidm A.GOBTPAC_PIDM = spriden_pidm ANDAND spriden_id <> UPPER(substr(a.gobtpac_external_user,1,9)) spriden_id <> UPPER(substr(a.gobtpac_external_user,1,9)) ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL ANDAND (spriden_id = &upd_spriden_id (spriden_id = &upd_spriden_id OROR &upd_spriden_id = 'ALL') &upd_spriden_id = 'ALL')ORDERORDER BYBY spriden_id; spriden_id;

BEGINBEGIN OPENOPEN W_stuid; W_stuid; LOOPLOOP FETCHFETCH W_stuid W_stuid INTOINTO v_stu_pidm, v_stu_ext_id, v_stu_spr_id; v_stu_pidm, v_stu_ext_id, v_stu_spr_id; INSERTINSERT INTOINTO spriden spriden ( (SELECTSELECT cpy.spriden_pidm, cpy.spriden_pidm, v_stu_ext_id, v_stu_ext_id, cpy.spriden_last_name, cpy.spriden_last_name, cpy.spriden_first_name, cpy.spriden_first_name, cpy.spriden_mi, cpy.spriden_mi, NULLNULL,, cpy.spriden_entity_ind, cpy.spriden_entity_ind, SYSDATESYSDATE,, 'IDCONVCP', 'IDCONVCP', 'SPAIDEN', 'SPAIDEN', cpy.spriden_search_last_name, cpy.spriden_search_last_name, cpy.spriden_search_first_name, cpy.spriden_search_first_name, cpy.spriden_search_mi, cpy.spriden_search_mi, cpy.spriden_soundex_last_name, cpy.spriden_soundex_last_name, cpy.spriden_soundex_first_name, cpy.spriden_soundex_first_name, cpy.spriden_ntyp_code, cpy.spriden_ntyp_code, 'idconvcp', 'idconvcp', SYSDATESYSDATE,, cpy.spriden_data_origin cpy.spriden_data_origin FROMFROM spriden cpy spriden cpy wherewhere cpy.spriden_pidm = v_stu_pidm cpy.spriden_pidm = v_stu_pidm ANDAND cpy.spriden_change_ind cpy.spriden_change_ind ISIS NULLNULL);); COMMITCOMMIT;; updateupdate spriden a spriden a setset a.spriden_change_ind = 'I' a.spriden_change_ind = 'I' wherewhere a.spriden_pidm = v_stu_pidm a.spriden_pidm = v_stu_pidm ANDAND a.spriden_id = v_stu_spr_id a.spriden_id = v_stu_spr_id ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL;; COMMITCOMMIT;; EXITEXIT WHENWHEN W_stuid% W_stuid%NOTFOUNDNOTFOUND;; ENDEND LOOPLOOP; ; -- wstuid-- wstuid CLOSECLOSE W_stuid; W_stuid; COMMITCOMMIT;;ENDEND; ;

The following code is provided "as-is" with no warranty, guarantee or any other promise.

Change non Social security ID’s Change non Social security ID’s to a generated ID’sto a generated ID’s

DECLAREDECLAREv_stu_pidm spriden.spriden_pidm%v_stu_pidm spriden.spriden_pidm%TYPETYPE;;v_stu_ext_id spriden.spriden_id%v_stu_ext_id spriden.spriden_id%TYPETYPE;;v_stu_spr_id spriden.spriden_id%v_stu_spr_id spriden.spriden_id%TYPETYPE;;

cursorcursor W_stuid W_stuid ISISSELECTSELECT a.spriden_pidm, a.spriden_pidm, a.spriden_id a.spriden_id FROMFROM spriden a spriden a WHEREWHERE substr(a.spriden_id,1,1) substr(a.spriden_id,1,1) ININ ('1','2','3','4','5','6','7','8','9','0',' ') ('1','2','3','4','5','6','7','8','9','0',' ') ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL ANDAND (spriden_id = &upd_spriden_id (spriden_id = &upd_spriden_id OROR &upd_spriden_id = 'ALL') &upd_spriden_id = 'ALL') ORDERORDER BYBY a.spriden_id; a.spriden_id;

cursorcursor W_gen_id W_gen_id ISISSELECTSELECT 'M'||lpad(seqt.sobseqn_maxseqno + 1,8,0) 'M'||lpad(seqt.sobseqn_maxseqno + 1,8,0) INTOINTO v_stu_ext_id v_stu_ext_id FROMFROM sobseqn seqt sobseqn seqt WHEREWHERE seqt.sobseqn_function = 'ID'; seqt.sobseqn_function = 'ID';BEGINBEGIN LOOPLOOP OPENOPEN W_stuid; W_stuid; FETCHFETCH W_stuid W_stuid INTOINTO v_stu_pidm, v_stu_spr_id; v_stu_pidm, v_stu_spr_id; EXITEXIT WHENWHEN W_stuid% W_stuid%NOTFOUNDNOTFOUND;; OPENOPEN w_gen_id; w_gen_id; FETCHFETCH W_gen_id W_gen_id INTOINTO v_stu_ext_id; v_stu_ext_id; CLOSECLOSE w_gen_id; w_gen_id; UPDATEUPDATE sobseqn seqt2 sobseqn seqt2 SETSET seqt2.sobseqn_maxseqno = seqt2.sobseqn_maxseqno + 1 seqt2.sobseqn_maxseqno = seqt2.sobseqn_maxseqno + 1 WHEREWHERE seqt2.sobseqn_function = 'ID'; seqt2.sobseqn_function = 'ID'; COMMITCOMMIT;; INSERTINSERT INTOINTO spriden spriden ( (SELECTSELECT cpy.spriden_pidm, cpy.spriden_pidm, v_stu_ext_id, v_stu_ext_id, cpy.spriden_last_name, cpy.spriden_last_name, cpy.spriden_first_name, cpy.spriden_first_name, cpy.spriden_mi, cpy.spriden_mi, NULLNULL,, cpy.spriden_entity_ind, cpy.spriden_entity_ind, SYSDATESYSDATE,, 'IDCONVCP', 'IDCONVCP', 'SPAIDEN', 'SPAIDEN', cpy.spriden_search_last_name, cpy.spriden_search_last_name, cpy.spriden_search_first_name, cpy.spriden_search_first_name, cpy.spriden_search_mi, cpy.spriden_search_mi, cpy.spriden_soundex_last_name, cpy.spriden_soundex_last_name, cpy.spriden_soundex_first_name, cpy.spriden_soundex_first_name, cpy.spriden_ntyp_code, cpy.spriden_ntyp_code, 'idconvcp', 'idconvcp', SYSDATESYSDATE,, cpy.spriden_data_origin cpy.spriden_data_origin FROMFROM spriden cpy spriden cpy wherewhere cpy.spriden_pidm = v_stu_pidm cpy.spriden_pidm = v_stu_pidm ANDAND cpy.spriden_change_ind cpy.spriden_change_ind ISIS NULLNULL);); COMMITCOMMIT;; updateupdate spriden a spriden a setset a.spriden_change_ind = 'I' a.spriden_change_ind = 'I' wherewhere a.spriden_pidm = v_stu_pidm a.spriden_pidm = v_stu_pidm ANDAND a.spriden_id = v_stu_spr_id a.spriden_id = v_stu_spr_id ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL;; COMMITCOMMIT;; EXITEXIT WHENWHEN W_stuid% W_stuid%NOTFOUNDNOTFOUND;; CLOSECLOSE W_stuid; W_stuid; ENDEND LOOPLOOP; ; -- wstuid-- wstuidENDEND; ;

The following code is provided "as-is" with no warranty, guarantee or any other promise.

Convert Current Generated Convert Current Generated ID’s from “@” ID’s to “M” ID’sID’s from “@” ID’s to “M” ID’s

DECLAREDECLAREv_stu_pidm gobtpac.gobtpac_pidm%v_stu_pidm gobtpac.gobtpac_pidm%TYPETYPE;;v_stu_ext_id spriden.spriden_id%v_stu_ext_id spriden.spriden_id%TYPETYPE;;v_stu_spr_id spriden.spriden_id%v_stu_spr_id spriden.spriden_id%TYPETYPE;;

cursorcursor W_stuid W_stuid ISISSELECTSELECT a.spriden_pidm, a.spriden_pidm, a.spriden_id, a.spriden_id, 'M'||SUBSTR(A.SPRIDEN_ID,2,8) 'M'||SUBSTR(A.SPRIDEN_ID,2,8) FROMFROM spriden a spriden a WHEREWHERE substr(a.spriden_id,1,1) = '@' substr(a.spriden_id,1,1) = '@' ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL ANDAND (spriden_id = &upd_spriden_id (spriden_id = &upd_spriden_id OROR &upd_spriden_id = 'ALL'); &upd_spriden_id = 'ALL');

BEGINBEGIN OPENOPEN W_stuid; W_stuid; LOOPLOOP FETCHFETCH W_stuid W_stuid INTOINTO v_stu_pidm, v_stu_spr_id, v_stu_ext_id; v_stu_pidm, v_stu_spr_id, v_stu_ext_id; EXITEXIT WHENWHEN W_stuid% W_stuid%NOTFOUNDNOTFOUND;; INSERTINSERT INTOINTO spriden spriden ( (SELECTSELECT cpy.spriden_pidm, cpy.spriden_pidm, 'M'||substr(v_stu_spr_id,2,8), 'M'||substr(v_stu_spr_id,2,8), cpy.spriden_last_name, cpy.spriden_last_name, cpy.spriden_first_name, cpy.spriden_first_name, cpy.spriden_mi, cpy.spriden_mi, NULLNULL,, cpy.spriden_entity_ind, cpy.spriden_entity_ind, SYSDATESYSDATE,, 'IDCONVCP', 'IDCONVCP', 'SPAIDEN', 'SPAIDEN', cpy.spriden_search_last_name, cpy.spriden_search_last_name, cpy.spriden_search_first_name, cpy.spriden_search_first_name, cpy.spriden_search_mi, cpy.spriden_search_mi, cpy.spriden_soundex_last_name, cpy.spriden_soundex_last_name, cpy.spriden_soundex_first_name, cpy.spriden_soundex_first_name, cpy.spriden_ntyp_code, cpy.spriden_ntyp_code, 'idconvcp', 'idconvcp', SYSDATESYSDATE,, cpy.spriden_data_origin cpy.spriden_data_origin FROMFROM spriden cpy spriden cpy wherewhere cpy.spriden_pidm = v_stu_pidm cpy.spriden_pidm = v_stu_pidm ANDAND cpy.spriden_change_ind cpy.spriden_change_ind ISIS NULLNULL);); COMMITCOMMIT;; updateupdate spriden a spriden a setset a.spriden_change_ind = 'I' a.spriden_change_ind = 'I' wherewhere a.spriden_pidm = v_stu_pidm a.spriden_pidm = v_stu_pidm ANDAND a.spriden_id = v_stu_spr_id a.spriden_id = v_stu_spr_id ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL;; COMMITCOMMIT;; EXITEXIT WHENWHEN W_stuid% W_stuid%NOTFOUNDNOTFOUND;; ENDEND LOOPLOOP; ; -- wstuid-- wstuid CLOSECLOSE W_stuid; W_stuid;ENDEND; ;

The following code is provided "as-is" with no warranty, guarantee or any other promise.

Update Banner to use a “M” for Update Banner to use a “M” for generated ID’s in the Futuregenerated ID’s in the Future

UPDATEUPDATE sobseqn seqt sobseqn seqt SETSET seqt.sobseqn_seqno_prefix = seqt.sobseqn_seqno_prefix = 'M''M' WHEREWHERE seqt.sobseqn_function = seqt.sobseqn_function = 'ID''ID'

The following code is provided "as-is" with no warranty, guarantee or any other promise.

Create TriggersCreate Triggers

Trigger to process a newly created Trigger to process a newly created Portal ID’sPortal ID’s

Trigger to process updates to a Portal Trigger to process updates to a Portal ID’sID’s

CreateCreate oror replacereplace triggertrigger "GENERAL".GOBTPAC_UPDATE_SPRIDEN_ID "GENERAL".GOBTPAC_UPDATE_SPRIDEN_ID afterafter insertinsert onon GOBTPAC GOBTPAC forfor eacheach rowrowdeclaredeclare -- local variables here-- local variables hereBEGINBEGIN IFIF :new.gobtpac_external_user :new.gobtpac_external_user ISIS NOTNOT NULLNULL THENTHEN INSERTINSERT INTOINTO SATURN.spriden SATURN.spriden ( (SELECTSELECT cpy.spriden_pidm, cpy.spriden_pidm, SUBSTR(upper(:new.gobtpac_external_user),1,9), SUBSTR(upper(:new.gobtpac_external_user),1,9), cpy.spriden_last_name, cpy.spriden_last_name, cpy.spriden_first_name, cpy.spriden_first_name, cpy.spriden_mi, cpy.spriden_mi, NULLNULL,, cpy.spriden_entity_ind, cpy.spriden_entity_ind, SYSDATESYSDATE,, 'ID_GOBTPAC', 'ID_GOBTPAC', 'GOATPAD', 'GOATPAD', cpy.spriden_search_last_name, cpy.spriden_search_last_name, cpy.spriden_search_first_name, cpy.spriden_search_first_name, cpy.spriden_search_mi, cpy.spriden_search_mi, cpy.spriden_soundex_last_name, cpy.spriden_soundex_last_name, cpy.spriden_soundex_first_name, cpy.spriden_soundex_first_name, cpy.spriden_ntyp_code, cpy.spriden_ntyp_code, 'ID_GOBTPAC', 'ID_GOBTPAC', SYSDATESYSDATE,, cpy.spriden_data_origin cpy.spriden_data_origin FROMFROM SATURN.spriden cpy SATURN.spriden cpy wherewhere cpy.spriden_pidm = :NEW.GOBTPAC_pidm cpy.spriden_pidm = :NEW.GOBTPAC_pidm ANDAND cpy.spriden_change_ind cpy.spriden_change_ind ISIS NULLNULL);); updateupdate SATURN.spriden a SATURN.spriden a setset a.spriden_change_ind = 'I' a.spriden_change_ind = 'I' wherewhere a.spriden_pidm = :NEW.GOBTPAC_pidm a.spriden_pidm = :NEW.GOBTPAC_pidm ANDAND a.spriden_id <> SUBSTR(upper(:new.gobtpac_external_user),1,9) a.spriden_id <> SUBSTR(upper(:new.gobtpac_external_user),1,9) ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL;; ENDEND IFIF;;endend GOBTPAC_insert_to_goremal; GOBTPAC_insert_to_goremal;

Trigger to process a newly created Portal ID’sTrigger to process a newly created Portal ID’s

The following code is provided "as-is" with no warranty, guarantee or any other promise.

createcreate oror replacereplace triggertrigger "GENERAL".GOBTPAC_UPDATE_SPRIDEN_ID2 "GENERAL".GOBTPAC_UPDATE_SPRIDEN_ID2 afterafter UPDATEUPDATE onon GOBTPAC GOBTPAC forfor eacheach rowrowdeclaredeclare -- local variables here-- local variables hereBEGINBEGIN IFIF :new.gobtpac_external_user :new.gobtpac_external_user ISIS NOTNOT NULLNULL ANDAND :new.gobtpac_external_user <> :old.gobtpac_external_user :new.gobtpac_external_user <> :old.gobtpac_external_user THENTHEN INSERTINSERT INTOINTO spriden spriden ( (SELECTSELECT cpy.spriden_pidm, cpy.spriden_pidm, SUBSTR(upper(:new.gobtpac_external_user),1,9), SUBSTR(upper(:new.gobtpac_external_user),1,9), cpy.spriden_last_name, cpy.spriden_last_name, cpy.spriden_first_name, cpy.spriden_first_name, cpy.spriden_mi, cpy.spriden_mi, NULLNULL,, cpy.spriden_entity_ind, cpy.spriden_entity_ind, SYSDATESYSDATE,, 'ID_GOBTPAC', 'ID_GOBTPAC', 'GOATPAD', 'GOATPAD', cpy.spriden_search_last_name, cpy.spriden_search_last_name, cpy.spriden_search_first_name, cpy.spriden_search_first_name, cpy.spriden_search_mi, cpy.spriden_search_mi, cpy.spriden_soundex_last_name, cpy.spriden_soundex_last_name, cpy.spriden_soundex_first_name, cpy.spriden_soundex_first_name, cpy.spriden_ntyp_code, cpy.spriden_ntyp_code, 'ID_GOBTPAC', 'ID_GOBTPAC', SYSDATESYSDATE,, cpy.spriden_data_origin cpy.spriden_data_origin FROMFROM spriden cpy spriden cpy wherewhere cpy.spriden_pidm = :NEW.GOBTPAC_pidm cpy.spriden_pidm = :NEW.GOBTPAC_pidm ANDAND cpy.spriden_change_ind cpy.spriden_change_ind ISIS NULLNULL););

updateupdate spriden a spriden a setset a.spriden_change_ind = 'I' a.spriden_change_ind = 'I' wherewhere a.spriden_pidm = :NEW.GOBTPAC_pidm a.spriden_pidm = :NEW.GOBTPAC_pidm ANDAND a.spriden_id <> SUBSTR(upper(:new.gobtpac_external_user),1,9) a.spriden_id <> SUBSTR(upper(:new.gobtpac_external_user),1,9) ANDAND spriden_change_ind spriden_change_ind ISIS NULLNULL;;

ENDEND IFIF;;endend GOBTPAC_insert_to_goremal; GOBTPAC_insert_to_goremal;

Trigger to process updates to a Portal ID’sTrigger to process updates to a Portal ID’s

The following code is provided "as-is" with no warranty, guarantee or any other promise.

Spriden RowsSpriden Rows

Spaiden form with social Spaiden form with social enteredentered

Spaiden automatically converts to new Spaiden automatically converts to new id, by using a alternate id searchid, by using a alternate id search

Goatpad form for BBunnyGoatpad form for BBunny

Change form for persons Change form for persons not receiving a Portal IDnot receiving a Portal ID

QuestionsQuestions