sync SVN r18157
This commit is contained in:
@@ -129,12 +129,38 @@ si interogarea intoarce 0 randuri **fara nicio eroare**. Foloseste here-string c
|
||||
**Capcana `termout off`**: ascunde si mesajele de eroare. Daca fisierul spool iese gol, ruleaza
|
||||
din nou fara `termout off` inainte sa banuiesti datele.
|
||||
|
||||
## Acces SSH direct cu cheie publica (metoda rapida, recomandata)
|
||||
|
||||
Pentru clientii la care cheia publica e instalata pe server, nu mai e nevoie de profil Bitvise /
|
||||
parola: se deschide tunelul direct cu `ssh` din `~\.ssh` (cheile `id_ed25519` / `id_rsa`).
|
||||
|
||||
```powershell
|
||||
# ridica tunelul: portul local 1521 -> Oracle (localhost:1521) de pe server
|
||||
Start-Process ssh -ArgumentList @(
|
||||
'-N','-o','ExitOnForwardFailure=yes','-o','StrictHostKeyChecking=accept-new',
|
||||
'-o','BatchMode=yes',
|
||||
'-L','1521:127.0.0.1:1521',
|
||||
'-p','<PORT_SSH>','<user>@<host>') -WindowStyle Hidden
|
||||
|
||||
# verificare tunel
|
||||
(Test-NetConnection 127.0.0.1 -Port 1521 -WarningAction SilentlyContinue).TcpTestSucceeded
|
||||
```
|
||||
|
||||
`BatchMode=yes` = nu asteapta parola (foloseste cheia); daca pica, inseamna ca cheia publica nu e
|
||||
instalata pe serverul respectiv. Portul SSH nu e neaparat 22: multi clienti ROA folosesc **22122**.
|
||||
Inchidere: opri procesul `ssh` (sau `Get-Process ssh | Stop-Process`).
|
||||
|
||||
> Nu te baza pe shell-ul remote ca sa "vezi" ce e pe server: contul `romfast` de pe clienti are
|
||||
> shell restrans (`netstat`/`ss`/`hostname`/`head` nu exista). Proba reala e interogarea sqlplus
|
||||
> dupa ridicarea tunelului, nu comenzile de pe server.
|
||||
|
||||
## Schemele cunoscute (fara parole)
|
||||
|
||||
| Tunel / profil | Alias TNS + DSN | Schema Oracle |
|
||||
|---|---|---|
|
||||
| `vending.tlp` | `VENDING` | **`VENDING`** (parola standard ROA) |
|
||||
| conpress | `ROA_CONPRESS` | `xenoti` |
|
||||
| cheie publica, SSH 82.76.217.177:22122, user `romfast` | `ROA_ROMCONSTRUCT` | **`ROMCONSTRUCT`** (parola standard ROA), SID `ROA`, Oracle 10g |
|
||||
|
||||
Profilele Bitvise sunt in **`D:\roa\BITVISE\`** pe statia curenta (`vending.tlp`, `conpress.tlp`,
|
||||
`clever.tlp`, `automotive.tlp`, `avis.tlp`, `eduard.tlp`, `ems.tlp`, `romfast.tlp`, `sigma.tlp`,
|
||||
|
||||
46
skills/roa-actualizare-doc/SKILL.md
Normal file
46
skills/roa-actualizare-doc/SKILL.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
name: roa-actualizare-doc
|
||||
description: Actualizeaza documentatia si fluxurile dupa o sesiune de lucru - transforma cunostintele noi reutilizabile (flux ascuns, capcana platita, procedura/tabela cheie) in docuri/reguli minimale. Culege ce s-a invatat, filtreaza 80/20 (doar reutilizabil, nu tot ce s-a atins), PROPUNE modificarile si aplica doar dupa aprobarea lui Marius, apoi actualizeaza indexul COMUN\docs\README.md si declansatorul din reguli_lucru.md pct. 7. Foloseste-l OBLIGATORIU la final de sesiune sau de lucrare, cand utilizatorul spune "salveaza ce ai invatat", "actualizeaza docurile/fluxurile", "de ce a durat mult sa gasesti X", sau cand ai descoperit un flux/capcana/obiect cheie nedocumentat. Nu scrie din oficiu - intai propui, apoi aplici.
|
||||
---
|
||||
|
||||
# Actualizarea documentatiei si a fluxurilor dupa o sesiune
|
||||
|
||||
Formalizeaza regula 11 din `reguli_lucru.md` ("propune actualizarea documentatiei la final").
|
||||
Scopul: urmatoarea sesiune gaseste mai repede; nu se pastreaza tot, doar reutilizabilul (80/20).
|
||||
|
||||
## Pasi
|
||||
|
||||
1. **Culege** ce s-a invatat in sesiune: flux ascuns, capcana platita, procedura/tabela cheie,
|
||||
locul unde sta un obiect greu de gasit.
|
||||
2. **Filtreaza 80/20**: doar reutilizabil, nu tot ce s-a atins, nu verbose, fara istoric, fara
|
||||
studii de caz, fara "de ce" (cititorul e un agent care stie deja contextul).
|
||||
3. **Propune** (nu scrie inca): lista de modificari + destinatia fiecareia (fisier + 2-3 randuri).
|
||||
Astepti aprobarea lui Marius.
|
||||
4. **Aplica dupa aprobare**, la locul potrivit:
|
||||
- comun tuturor produselor -> `COMUN\docs\<subiect>.md`;
|
||||
- specific unui produs -> `<PRODUS>\docs\` (in `cercetare\` daca e cercetare incheiata);
|
||||
- element comun de cod -> `COMUN\docs\inventar-comun.md`;
|
||||
- rutare noua de skill -> `COMUN\skills\<nume>\SKILL.md` + rand in `backstop_skills.txt`.
|
||||
5. **Rutare**: adauga randul in indexul `COMUN\docs\README.md` + declansatorul in
|
||||
`reguli_lucru.md` pct. 7. Daca e skill nou, ruleaza `leaga_skills.ps1` (symlink) si
|
||||
`scrie_backstop_skills.ps1` (AGENTS.md) -> skill `roa-onboarding` pasii 13-14.
|
||||
|
||||
## Reguli
|
||||
|
||||
- ASCII, fara diacritice; CRLF la `.sql`. Un subiect = un singur proprietar (ceilalti primesc o
|
||||
trimitere de un rand, nu o copie).
|
||||
- O notita = regula + strictul de context ca sa fie aplicabila. Nu duplica: verifica intai
|
||||
`COMUN\docs\README.md` si `docs\cercetare\` ca subiectul sa nu existe deja.
|
||||
- Nu documenta ce se deduce din cod; documenteaza fluxul ascuns, capcana, locul greu de gasit.
|
||||
|
||||
## Criterii de acceptare si dovada
|
||||
|
||||
1. Propunerea a fost aprobata de Marius inainte de scriere (nu s-a scris din oficiu).
|
||||
2. Fisierele noi sunt ASCII (0 octeti > 127); `.sql` cu CRLF.
|
||||
3. Randul din `README.md` si declansatorul din `reguli_lucru.md` pct. 7 au fost adaugate.
|
||||
|
||||
## Referinta (doar la nevoie)
|
||||
|
||||
- `COMUN\docs\README.md` - indexul documentatiei comune (tabelul "cand citesti fiecare").
|
||||
- `COMUN\docs\reguli_lucru.md` pct. 7 (routing) si pct. 11 (propune actualizarea doc).
|
||||
- `COMUN\skills\roa-domeniu-rutare\SKILL.md` - harta surselor (unde sta fiecare obiect/flux).
|
||||
56
skills/roa-domeniu-rutare/SKILL.md
Normal file
56
skills/roa-domeniu-rutare/SKILL.md
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
name: roa-domeniu-rutare
|
||||
description: Rutare rapida in domeniul ROA - unde gasesti un obiect sau un flux fara sa scanezi D:\ROA generic. Harta surselor: scripturile DB (D:\ROA\DATABASE\SCRIPTURI_CLAR\<an>\<luna>), pachetele Oracle (PACK_FACTURARE = facturare, PACK_PRETURI = politici pret/articole/note vanzari, PACK_CONTAFIN = contabilitate, PACK_SETURI = seturi de note), codul VFP (COMUN\programe, COMUN\clase), notele de cercetare (<PRODUS>\docs\cercetare), schema de referinta MARIUSM_AUTO@ROA_CENTRAL. Acopera si lantul notei contabile de vanzare (CRM_POLITICI_PRET_ART -> CRM_POLITICI_PRETURI -> CRM_NOTE_VANZARI -> NOTE_CONTABILE) si spatiul ID_SET (doua lucruri distincte: set de contare 25000+tip vs nota contabila NOTE_CONTABILE.ID_SET). Foloseste-l OBLIGATORIU cand investighezi facturare, articole, preturi, comenzi, politici de pret, note contabile, id_set, crm_note_vanzari, sau cand nu stii unde sta un obiect/coloana/pachet DB si ai fi tentat sa cauti generic in D:\ROA.
|
||||
---
|
||||
|
||||
# Rutare in domeniul ROA: unde cauti, fara scanari generice
|
||||
|
||||
Cand nu stii unde sta un obiect sau ce flux atinge o zona, deschide mai intai harta de mai jos.
|
||||
Nu cauta generic in `D:\ROA` - sursele sunt localizate.
|
||||
|
||||
## Harta surselor (mergi direct)
|
||||
|
||||
| Cauti | Mergi direct la |
|
||||
|---|---|
|
||||
| DDL / pachete / triggere / secvente Oracle | `D:\ROA\DATABASE\SCRIPTURI_CLAR\<an>\<luna>\*.sql` (SVN) |
|
||||
| schema de referinta (dev) | `MARIUSM_AUTO@ROA_CENTRAL` -> `conventie_mediu_oracle.md` |
|
||||
| productia unui client | tunel SSH -> `conexiuni-tunel-ssh-odbc.md` (skill `roa-oracle-production-access`) |
|
||||
| pachet facturare (`scrie_nota`, `cursor_articol`, `cont_venit_articol_stoc`) | `PACK_FACTURARE` |
|
||||
| politici pret / articole / note de vanzari (`gaseste_creeaza_nota_vanzare`, `salveaza_pret_nomenclator`, `sterge_nota_vanzare`) | `PACK_PRETURI` |
|
||||
| contabilitate (`SCRiE_IN_ACT`, situatii, jurnale TVA) | `PACK_CONTAFIN` |
|
||||
| seturi de note / copiere set | `PACK_SETURI` |
|
||||
| actualizare versiune scripturi | `PACK_MIGRARE.UpdateVersiune` |
|
||||
| cod VFP - proceduri / clase `.prg` | `<PRODUS>\COMUN\programe\*.prg` |
|
||||
| cod VFP - formulare `.vcx`/`.vc2` | `<PRODUS>\COMUN\clase\*.vc2` -> skill `roa-vfp-text-edit` |
|
||||
| cercetare incheiata pe un subiect | `<PRODUS>\docs\cercetare\*.md` |
|
||||
| export sursa de pachet pentru grep | `COMUN\docs\*.pck` |
|
||||
|
||||
## Fluxurile de domeniu deja documentate (deschide-le, nu le recauta)
|
||||
|
||||
- `tipuri_documente_facturare.md` - `VANZARI.TIP` + seturile de contare `ID_SET` (25000 + tip).
|
||||
- `flux-modificare-stergere-nota-jurnal.md` - PACK_CONTAFIN, ACT/RUL, modificare/stergere nota.
|
||||
- `machete-note-xrequest-explicatii.md` - XREQUEST/XNOTE (ce campuri cere o operatie la introducere).
|
||||
- `fluxul_svn_git.md` - SVN <-> git.
|
||||
|
||||
## Lantul notei contabile de vanzare
|
||||
|
||||
`CRM_POLITICI_PRET_ART.ID_NOTA -> CRM_POLITICI_PRETURI.ID_NOTA -> CRM_NOTE_VANZARI.ID_NOTA`;
|
||||
liniile sablonului: `CRM_NOTE_VANZARI.ID_SET -> NOTE_CONTABILE.ID_SET` (SCD/ASCD/SCC/ASCC).
|
||||
|
||||
## Spatiul ID_SET - doua lucruri distincte (usor de confundat)
|
||||
|
||||
1. **Set de contare** `XSETS.ID_SET = ACT.ID_SET`, valoare `25000 + tip` - documentat in
|
||||
`tipuri_documente_facturare.md`.
|
||||
2. **Nota contabila** `NOTE_CONTABILE.ID_SET = CRM_NOTE_VANZARI.ID_SET` - liniile sablonului de nota.
|
||||
|
||||
Generatoare pentru (2): `SEQ_CRM_NOTE_ID_SET` (trigger pe CRM_NOTE_VANZARI) si `SEQ_XSETS`
|
||||
(XSETS, valori >= 1000000), plus seturi predefinite (< 1000000, puse manual de programator).
|
||||
Fix 2026-09-17 (`ff_2026_09_17_03_COMUN_ID_SET_UNIC.sql`): un singur generator `SEQ_XSETS`,
|
||||
coloane `ID_SET` din `crm_note_vanzari`/`note_contabile` largite `NUMBER(6) -> NUMBER(10)`.
|
||||
Capcana: `sterge_nota_vanzari` face `delete from note_contabile where id_set`; indexul pe
|
||||
`NOTE_CONTABILE.ID_SET` e NONUNIQUE, deci o coliziune sterge silentios si randurile unui set
|
||||
predefinit.
|
||||
|
||||
## Referinta (doar la nevoie)
|
||||
|
||||
- `COMUN\docs\conventie_mediu_oracle.md`, `conexiuni-tunel-ssh-odbc.md`, `scripturi-migrare-db.md`.
|
||||
@@ -14,3 +14,5 @@ skill-ului.
|
||||
- `GO` pe un `Recno()` capturat sau primit ca parametru -> skill `roa-vfp-go-recno`
|
||||
- procedura PL/SQL cu `SELECT ... INTO` apelata din VFP (randuri pierdute tacut) -> skill `roa-oracle-sqlexec-no-data`
|
||||
- inrolezi un calculator nou sau un proiect nou in fluxul git-text / expui skill-urile pe masina / aplici backstop-ul de rutare -> skill `roa-onboarding`
|
||||
- investighezi facturare / articole / preturi / comenzi / politici de pret / note contabile / id_set / crm_note_vanzari, sau nu stii unde sta un obiect/coloana/pachet DB -> skill `roa-domeniu-rutare`
|
||||
- final de sesiune sau de lucrare / "salveaza ce ai invatat" / actualizezi documentatia sau fluxurile -> skill `roa-actualizare-doc`
|
||||
|
||||
Reference in New Issue
Block a user