Title: R18 Administration A Closer Look
1R18 Administration A Closer Look
- NERDug 2006 Suffolk University
- Session 10727
- 7/28/2006 930AM
- Jeff Ohvall University of Wisconsin, Stout
- Kay Schnur University of Wisconsin, Stout
- Jeff Butera Hampshire College
2R18 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!
3Computed Columns
4Computed 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!
5Computed 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
6Computed 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 gt vId
- STUDENTS.ID gt vStudentsId
- X.TEMP gt xTemp
7Computed Column Variable Types
- Matters more for SQL/Oracle
- string
- money
- date
- realnum
- key
- boolean
- int
8Computed Column Key Type
- Creates pointer to another file
- string xResult1
- key xKeyStudentAcadCred for file StudentAcadCred
- xKeyStudentAcadCred vlPstStudentAcadCred1
- xResult1 vStcTerm
- return xResult1
9Computed Column Typecast
- Changes one type to another
- List new type in parens
- int xTemp
- xTemp 5
- string xString
- xString (string) xTemp
- return xString
10Computed Column Arrays
- Like Unidata list variable
- Elements can be inserted, deleted, extracted
- Use notation to grab specific element
- int xTemp
- int xlMylist
- ...
- xTemp xlMylist4
- return xTemp
11Computed 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
12Computed 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 gt 40)
- xResult2 'OLD'
- else
- xResult2 'YOUNG'
-
- return xResult2
13Computed Column Methods
- .Char() is like CHAR
- X CHAR(253)
- string xResult
- xResult (253).Char()
- .Size() is like DCOUNT
- DCOUNT(APP.APPLICATIONS,_at_VM)
- return vlAppApplications.Size()
14Computed Column Methods
- ArrayCat like CATS
- XL.RESULT CATS(STUDENTS.ID'',
STU.ACAD.PROGRAMS) - string xlResult
- xlResult ArrayCat((vStudentsId''),
vlStuAcadPrograms) - return xlResult
15Computed Column Methods
- SubArray like FIELD or EXTRACT
- XL.RESULT FIELD(VL.STU.ACAD.PROGRAMS,_at_VM,2)
- XL.RESULTlt1,-1gt FIELD(VL.STU.ACAD.PROGRAMS,_at_VM,3
) - string xlResult
- xlResult SubArray(vlStuAcadPrograms,2,2)
- return xlResult
16Computed Column Methods
- ToDelimitedString like CONVERT (not really)
- Converts Array to string with given delimiter
- string xlResult
- xlResult vlStuAcadPrograms. ToDelimitedString((2
53).Char()) - return xlResult
17Computed Column Methods
- Convert like CONVERT (reallly!)
- Works on Single/multi valued vars
- string xlResult
- xlResult vlGlpsGlNo.Convert("_","")
- return xlResult
18Computed Column Methods
- Many other math/other methods
- Abs
- Sqrt
- Sum
- Index
- ToUpperCase
- ToLowerCase
- Count
- Trim
- Len
19Computed Column Operators
- Comparison lt gt lt gt !
- ArrayLT ArrayGT ArrayLE ArrayGE ArrayEQ ArrayNE
- Boolean !
- Math - / - /
- String
20Development Lifecycle
21Development Lifecycle
- Steps/screens to move code different
- Overall process not different than before
- Code in development appenv
- Move into test appenv
- Conduct test(s) for code/screen/processes
- If needed, fix in development and repeat
- Move into production when ready
22Development 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
23Development Lifecycle Step 2
- Declare items as custom
- Use CDEC (like MDEF)
- Can mark items as clone of Datatel
process/screen/et - DMSU22 ltgt XDMSU22
- Builds MOVEINFO record (like MDEF)
- This need only be done once
- Remove Datatel-delivered components!
24(No Transcript)
25Development 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
26(No Transcript)
27Development 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
28(No Transcript)
29Development Lifecycle Step 5
- Install release package into production
- Just like any other software update
- CSUG already run previously
- Install software group (ISUG)
30Development 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
31(No Transcript)
32(No Transcript)
33(No Transcript)
34Development 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
35(No Transcript)
36(No Transcript)
37(No Transcript)
38R18 Migration Plan
39R18 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
40R18 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
41R18 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)
42R18 Migration Plan Single Appenv
- Copy R17 main to R18 location
- Build appenv (SA Valet)
- Data migration
- Custom code migration
- Computed column migration
- WebAdvisor setup
43R18 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