R18 Administration – A Closer Look
description
Transcript of R18 Administration – A Closer Look
R18 Administration – A Closer Look
NERDug 2006 – Suffolk University
Session 10727
7/28/2006 9:30AM
Jeff Ohvall – University of Wisconsin, Stout
Kay Schnur – University of Wisconsin, Stout
Jeff Butera – Hampshire College
R18 Administration – Outline
Computed Columns What's new Tricks/traps!
Development Lifecycle Conceptually same Move utilities different, LPR is fun!
R18 Migration Plan What, when and why We got there, you can too!
Computed Columns
Computed Columns
New MANDATORY language/syntax Similar to Java/J# If Unidata combined, focus effort here Run scanners early and often! Take action to correct/change computed columns
in R17 live environment NOW!
Computed Columns
Syntax is similar to Java/J# Follows object-oriented design There is a learning curve Frustration will ensue – keep plugging away Must end with a return statement
Computed Column Variables
CDD vars must have v or vl notation Temp vars should use x or xl notation Remove all periods Capitalize first letter after period
ID => vId
STUDENTS.ID => vStudentsId
X.TEMP => xTemp
Computed Column Variable Types
Matters more for SQL/Oracle string money date realnum key boolean int
Computed Column Key Type
Creates pointer to another file
string xResult1;key xKeyStudentAcadCred for file StudentAcadCred;
xKeyStudentAcadCred = vlPstStudentAcadCred[1];
xResult1 = vStcTerm;return xResult1;
Computed Column Typecast
Changes one type to another List new type in parens
int xTemp;xTemp = 5;string xString;xString = (string) xTemp;return xString;
Computed Column Arrays
Like Unidata list variable Elements can be inserted, deleted, extracted Use [] notation to grab specific element
int xTemp;int[] xlMylist;...xTemp = xlMylist[4]; return xTemp;
Computed Column Subroutines
Must be IS typed on BGP First argument is only output allowed Naming convention same as variables:
string xResult1;int xAge;xResult1 = SCalcAge(vId);xAge = (int) xResult1;return xAge;
Computed Column Control/Blocks
May enclose blocks of code in {} Blocks following if/else MUST have {}
string xResult1,xResult2;int xAge;xResult1 = SCalcAge(vId);xAge = (int) xResult1;if (xAge > 40) { xResult2 = 'OLD';} else { xResult2 = 'YOUNG';}return xResult2;
Computed Column Methods
.Char() is like CHAR:
X = CHAR(253)string xResult;xResult = (253).Char();
.Size() is like DCOUNT:
DCOUNT(APP.APPLICATIONS,@VM)return vlAppApplications.Size();
Computed Column Methods
ArrayCat like CATS:
XL.RESULT = CATS(STUDENTS.ID:'*', STU.ACAD.PROGRAMS)
string xlResult;xlResult = ArrayCat((vStudentsId:'*'), vlStuAcadPrograms)
return xlResult;
Computed Column Methods
SubArray like FIELD or EXTRACT:
XL.RESULT = FIELD(VL.STU.ACAD.PROGRAMS,@VM,2)
XL.RESULT<1,-1> = FIELD(VL.STU.ACAD.PROGRAMS,@VM,3)
string xlResult;xlResult = SubArray(vlStuAcadPrograms,2,2);
return xlResult;
Computed Column Methods
ToDelimitedString like CONVERT (not really)
Converts Array to string with given delimiter:
string [] xlResult;xlResult = vlStuAcadPrograms. ToDelimitedString((253).Char());
return xlResult;
Computed Column Methods
Convert like CONVERT (reallly!)
Works on Single/multi valued vars:
string [] xlResult;xlResult = vlGlpsGlNo.Convert("_","");
return xlResult;
Computed Column Methods
Many other math/other methods: Abs Sqrt Sum Index ToUpperCase ToLowerCase Count Trim Len
Computed Column Operators
Comparison < > <= >= == !=
ArrayLT ArrayGT ArrayLE ArrayGE ArrayEQ
ArrayNE
Boolean && || !
Math + - * / += -= *= /= ^ %
String : :=
Development Lifecycle
Development Lifecycle
Steps/screens to move code different Overall process not different than before
1.Code in development appenv
2.Move into test appenv
3.Conduct test(s) for code/screen/processes
4.If needed, fix in development and repeat
5.Move into production when ready
Development Lifecycle – Step 1
Code in development appenv This includes:
files/fields computed columns screens (web/UI) reports/processes list specs
GENerate process/screen Debug syntax errors as needed
Development Lifecycle – Step 2
Declare items as custom Use CDEC (like MDEF) Can mark items as clone of Datatel
process/screen/et
DMSU22 <=> XDMSU22
Builds MOVEINFO record (like MDEF) This need only be done once Remove Datatel-delivered components!
Development Lifecycle – Step 3
Create release package using CPKG Can group multiple declarations (CDEC) This builds a software update like Datatel Places copy into Local Product Repository Re-run CPKG anytime you make changes
LPR updated with new version
Development Lifecycle – Step 4
Install release package into test appenv Just like any other software update:
Create software group (CSUG) Install software group (ISUG)
Test screen/process in new appenv Go back and redevelop in dev appenv
Start at beginning, but skip CDEC
Development Lifecycle – Step 5
Install release package into production Just like any other software update:
CSUG already run previously Install software group (ISUG)
Development Lifecycle – Admin
SA Valet used to download software updates Copies from DPR to your LPR Requires various admin logins
Installing software updates done thru UI Requires screen access, no passwords
Development Lifecycle – Tools
RPIF – Item finder based on process XCRB01
SUGS – See software groups/statuses SUSE – Update finder based on date, status,
group, etc 21141.44-1805 21141 Installed 07/10/2006 thru 7/16/2006 Released 07/01/2006 thru 07/02/2006 Release status of Completed
R18 Migration Plan
R18 Migration Plan – Live Date?
Two approaches build tasks with time estimates, work forward,
determine target live date choose target live date, work backward to assign tasks
Institutional needs/constraints Database change will require more time
Oracle, SQL or distributed
R18 Migration Plan – Scanners
Computed column Custom code Data (format)
Unidata combined focus on computed column over others
Oracle/SQL data format cleanup is HUGE computed column important
R18 Migration Plan – Big Picture
Build/populate test appenv Test UI/webadvisor Correct any issues, repeat Build/populate last appenv before live Move ALL custom to LPR - no code changes Build/populate production appenv Install custom from LPR - don't convert! Test UI/webadvisor Live (whew)
R18 Migration Plan – Single Appenv
Copy R17 main to R18 location Build appenv (SA Valet) Data migration Custom code migration Computed column migration WebAdvisor setup
R18 Migration Plan – Gotchas
Deploys all Datatel-delivered code from new source appl.VALCODES not getting copied (inq only) PDEF changes lost internal size of fields
DMI parameters reset (fixed?) HR file permissions Hard-coded pathes (ELF, shell/perl scripts) LDAP guest user required TDClient didn't get copied (fixed?) Key counter from CONTROL.POINT to PID8 error (fixed?) new files in toolkit (FS) don't get created until field added