EXODUS Knowledge: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
*EXODUS NEOSYS is the complete conversion of the NEOSYS Agency AREV programs. (not public git) | *EXODUS NEOSYS is the complete conversion of the NEOSYS Agency AREV programs. (not public git) | ||
==TMUX Screens== | |||
To create the EXODUS maintenance/programming environment | To create the EXODUS maintenance/programming environment | ||
Line 30: | Line 30: | ||
== | ==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/. | 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/. | ||
Line 43: | Line 39: | ||
==./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) | 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) | ||
Line 56: | Line 52: | ||
==Converting AREV to Exodus== | |||
===Convert Programs=== | |||
In AREV: <br> | In AREV: <br> | ||
#Update program source code and check it can be compiled. | #Update program source code and check it can be compiled. | ||
Line 84: | Line 80: | ||
TODO up | TODO up | ||
===Convert dictionary items=== | |||
Two methods: | Two methods: | ||
a) Quick exodus patch (next sync-up from overwrite with win10a version) | a) Quick exodus patch (next sync-up from overwrite with win10a version) | ||
b) Update exodus from AREV | b) Update exodus from AREV | ||
====Quick Method==== | |||
#Update dict item in win10a | #Update dict item in win10a | ||
#In exodus run command "e dicta2e" | #In exodus run command "e dicta2e" | ||
Line 124: | Line 120: | ||
====Safe Method==== | |||
In AREV: <br> | In AREV: <br> | ||
#Update dict item in win10a | #Update dict item in win10a |
Revision as of 11:38, 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.
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.