EXODUS Knowledge
From NEOSYS Technical Support Wiki
Jump to navigationJump to search
EXODUS Intro
EXODUS is the new version of NEOSYS. The entire NEOSYS environment has been converted to Linux, C++ and postgres.
- EXODUS is comprised of two main sections:
- EXODUS is a complete conversion of the AREV CRUD and web service framework. (https://github.com/exodusdb/exodusdb)
- EXODUS NEOSYS is the complete conversion of the NEOSYS Agency AREV programs. (not public git)
TMUX Screens
To create the EXODUS maintenance/programming environment
exodus#: ./tmux.exodus
SCREEN NAME STANDARD PATH PURPOSE #ex1_root - /root - general usage #exodus - /root/exodus - #exodus src - /root/exodus/exodus/libexodus/exodus - #exo cli - /root/exodus/cli/src - #service - /root/exodus/service - #ser src - /root/exodus/service/src - #neosys - /root/neosys - ./doall #neo src - /root/neosys/src - #hosts - /root/hosts - #test src - /root/exodus/test/src - #t10 - ~/ - #t11 - ~/ - #t12 - ~/ -
Source code
Object code
Dictionaries
The file dictionary records are per database, this means
The TEST process for all database use the same object code stored in /root/lib, whereas all LIVE process use the object code in /root/neo/.
./doall
Debugging NEOSYS EXODUS in gdb
Screen 6: scripts Two scripts can be used to start a process in debug mode. (WARNING: other running TEST or LIVE processes for client will stop during debugging)
- ./test will use the TEST program object code.
- ./run will use the LIVE object code.
=Convert AREV Program(s) to Exodus
AREV
- Update program source code and check it can be compiled.
- Ensure the program you want to recompile into exodus has below e.g "*c job" in source code on line 2, col 1
- Command: "attach adecomc" #attaches exodus recompiler/decompiler
- Command: "adecom <programname>"
CYGWIN
- Run "cygdrive/d/exodus/pickos/syncup.sh" #syncs all decompiled programs to nl19:/backups/current/hosts/win3/pickos/
EXODUS
Command explanations:
- rsync arev decompiled code from sshfs /backups/current/win3/pickos/
getpickos
- There are four "getpickos" & "compall".
cd exodus/service/src
There are three
Exodus Service programs
cd exodus/service/src getpickos && compall
ALL NEOSYS programs
- cd ~/neosys/src && getpickos && compall
- cd ~/neosys/src && getpickos && compile <progname> or
- WARNING following command is DANGEROUS! all LIVE object code updated and all LIVE/TEXT process restarted!
- INCLUDES: "exodus compall" and "neosys compall" and "copyall" and "restart all"!
- Use with caution: "cd ~/neosys && compall"
- INCLUDES: "exodus compall" and "neosys compall" and "copyall" and "restart all"!
cd exodus/service copyall
DICTIONARY ITEMS
Two methods: a) Quick exodus patch b) Update exodus from AREV
QUICK EXO PATCH
- Update dict item in win10a
- In exodus run command "e dicta2e"
- Paste below and edit for your case:
#include <exodus/program.h> programinit() function main() { var originalvalue; //edit the string var replacevalue="Line Description"; //check the value of the field TO replace //SYNTAX: readv(<record/field> from <filename>, <key> [,field]) readv(originalvalue from "DICT_JOB_INVOICES", "LINE_TEXT", 3); outputl("REPLACE:"^quote(originalvalue)^" with "^quote(replacevalue)); //uncomment below 2 lines AFTER using check above //writev(replacevalue from "DICT_JOB_INVOICES", "LINE_TEXT", 3); outputl("REPLACED:"^quote(originalvalue)^" with "^quote(replacevalue)); return 0; } programexit()
- Save, exit and make sure complied.
- ./doall TEST all bash dicta2e
- Check changes on a TEST database.
- ./doall LIVE all bash dicta2e
FROM AREV
AREV
- Update dict item in win10a
- attach adecomc
- adecom <dictfile> (e.g adecom dict.production.invoices)
- base2sql
CYGWIN
- /d/exodus/pickos/syncup.sh
EXODUS
- neosys/src/getpickos
- doall all import_db R (DON'T USE U!) - unable to import if database exists!
- TEST database:
- Renew dict items in a test database:
- doall all/xxx create_testdb
- doall all/xxx backup_db
- Check dictionary item in the <dictfile>.cpp file.