R18 Administration – A Closer Look

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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