EXODUS Knowledge: Difference between revisions
No edit summary |
No edit summary |
||
Line 46: | Line 46: | ||
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) | 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. | *./test will use the TEST program object code. | ||
*./run will use the LIVE object code. | *./run will use the LIVE object code. | ||
===Edit programs/data records=== | |||
Edit programs: | |||
edic <program name> | |||
e.g edic LISTJOBINVS or e LISTJOBINVS (works on anywhere) | |||
Info: <br> | |||
*edic works in any screen. | |||
*If edic cannot find the program name, then it offers to create a basic program or header file instead. | |||
*If you save and exit edic, the program is automatically compiled and the new object code is put into /lib. (used only by TEST processes) | |||
Edit sql data records: | |||
edir <file> <key> [fieldNo] | |||
e.g edir companies D 1 | |||
Edit OS files: | |||
edir DOS <file> [field] [value] | |||
e.g edir DOS work/system.cfg | |||
===Compiling=== | |||
compile <filename> | |||
If successful, updates program's .so file in /lib. (used only by TEST processes) | |||
===Maintenance F5 equivalent=== | |||
AREV Maintenance mode F5 equivalent do ./run or ./test, press key "x" and enter command. (e.g CHK.FILES, CHKLIC, CRETEALERTS) | |||
Revision as of 12:03, 6 July 2021
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 - ~/ -
Dictionaries
Unlike object code, each pgsql database has its own set of dictionary files/items.
Processes
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 C++ 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.
Edit programs/data records
Edit programs:
edic <program name>
e.g edic LISTJOBINVS or e LISTJOBINVS (works on anywhere)
Info:
- edic works in any screen.
- If edic cannot find the program name, then it offers to create a basic program or header file instead.
- If you save and exit edic, the program is automatically compiled and the new object code is put into /lib. (used only by TEST processes)
Edit sql data records:
edir <file> <key> [fieldNo]
e.g edir companies D 1
Edit OS files:
edir DOS <file> [field] [value]
e.g edir DOS work/system.cfg
Compiling
compile <filename>
If successful, updates program's .so file in /lib. (used only by TEST processes)
Maintenance F5 equivalent
AREV Maintenance mode F5 equivalent do ./run or ./test, press key "x" and enter command. (e.g CHK.FILES, CHKLIC, CRETEALERTS)
Converting AREV to Exodus
Convert Programs
In 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>"
In Cygwin:
- Run "cygdrive/d/exodus/pickos/syncup.sh" #syncs all decompiled programs to nl19:/backups/current/hosts/win3/pickos/
In Exodus:
Command explanations:
- rsync arev decompiled code from sshfs /backups/current/win3/pickos/
getpickos
- There are three "getpickos" & "compall".
TODO down
- cd exodus/service/src getpickos && compall
- 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 TODO up
Convert dictionary items
Two methods: a) Quick exodus patch (next sync-up from overwrite with win10a version) b) Update exodus from AREV
Quick Method
- 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
Safe Method
In AREV:
- Update dict item in win10a
- attach adecomc
- adecom <dictfile> (e.g adecom dict.production.invoices)
- base2sql
In Cygwin:
- /d/exodus/pickos/syncup.sh
In 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.