Vai al contenuto

Post-it

Endpoint disponibili

Metodo Path Descrizione
GET /v1/postit Lettura note post-it (filtri: codice_interno, gruppo, sottogruppo, codice, paginazione)
GET /v1/postit/up Lettura note post-it aggiornate a partire da un sync id

Solo esportazione. Le note vengono alimentate dal gestionale tramite i processi SWN115 / SWA046.

Una nota e' identificata dalla combinazione di anagrafica, merce e area: puo' riguardare un cliente/fornitore oppure una merce, mai entrambi contemporaneamente.


Schema output

PostitOutput

Campo Tipo Campo DB / Join Note
area string trim(a_ptt_area) Area di competenza (vedi enum sotto)
note string trim(a_ptt_note) Testo della nota (max 2000 char)
sync integer a_ptt_id_sincro ID di sincronizzazione
cancellato boolean a_ptt_fl_canc = 'C' true se la nota e' cancellata logicamente
codice_cliente string trim(a_ptt_ana) Codice interno cliente/fornitore (vuoto se la nota riguarda una merce)
codice_host_cliente string LEFT JOIN arpanagr.rana_codice_host Codice cliente/fornitore nel sistema host esterno
gruppo string LEFT JOIN arpmerci.rmer_gru Gruppo codice merce (vuoto se nota per anagrafica o merce non raccordata)
sottogruppo string LEFT JOIN arpmerci.rmer_sot Sottogruppo codice merce (vuoto se nota per anagrafica o merce non raccordata)
codice integer LEFT JOIN arpmerci.rmer_cod Codice merce (0 se nota per anagrafica o merce non raccordata)
codice_host_merce string LEFT JOIN arpmerci.rmer_cma Codice merce nel sistema host esterno

Mutua esclusivita': una nota riguarda o un'anagrafica (cliente/fornitore) o una merce. I campi della sezione non applicabile sono stringhe vuote (o 0 per codice).


Enum area (a_ptt_area)

Valore Significato
"" Generale
"A" Assistenza
"C" Contabilita'
"Q" Acquisti
"V" Vendite

Il valore DB " " (singolo spazio) viene esposto come stringa vuota dopo trim.


Query string

GET /v1/postit

Parametro Tipo Obbligatorio Note
limit integer NO Max risultati (default/max: 200)
page integer NO Pagina (paginazione offset-based)
codice_interno string NO Filtra per codice interno cliente/fornitore (match esatto su a_ptt_ana)
gruppo string NO Filtra per gruppo del codice merce
sottogruppo string NO Filtra per sottogruppo del codice merce
codice integer NO Filtra per codice merce

GET /v1/postit/up

Parametro Tipo Obbligatorio Note
sync integer SI ID sincronizzazione di partenza

Ordinamento per a_ptt_id_sincro crescente: il client puo' usare l'ultimo sync restituito come punto di partenza per la chiamata successiva.


Tabella sorgente

ARPPOSTIT

PK: (a_ptt_azi, a_ptt_ana, a_ptt_merce, a_ptt_area).

Campo Tipo Note
a_ptt_azi char(6) Codice azienda
a_ptt_ana char(6) Codice anagrafico (vuoto se nota su merce)
a_ptt_merce char(9) Codice merce, formato GGSSCCCCC (vuoto se nota anagrafica)
a_ptt_area char(1) Area di competenza
a_ptt_note varchar(2000) Testo nota
a_ptt_fl_canc char(1) 'C' se cancellato
a_ptt_id_sincro num(15) ID sincronizzazione

Join

Tabella Condizione Tipo Scopo
ARPANAGR rana_azi = a_ptt_azi AND rana_codana = a_ptt_ana AND trim(a_ptt_ana) <> '' LEFT codice_host_cliente
ARPMERCI rmer_azi = a_ptt_azi AND rmer_cm = a_ptt_merce LEFT gruppo, sottogruppo, codice, codice_host_merce

Il JOIN su arpmerci sfrutta la corrispondenza diretta tra a_ptt_merce (9 char) e rmer_cm. I campi rmer_gru/rmer_sot/rmer_cod/rmer_cma della riga matchata sono esposti direttamente in output (con coalesce per il caso nota-anagrafica in cui la JOIN non matcha).


Risposta

200 OK

Array di PostitOutput. Esempio con una nota per cliente e una per merce:

[
  {
    "area": "V",
    "note": "Cliente sempre in ritardo sui pagamenti",
    "sync": 123456789,
    "cancellato": false,
    "codice_cliente": "C00123",
    "codice_host_cliente": "CLI-EXT-456",
    "gruppo": "",
    "sottogruppo": "",
    "codice": 0,
    "codice_host_merce": ""
  },
  {
    "area": "Q",
    "note": "Ordine minimo 50 pezzi presso fornitore XYZ",
    "sync": 123456790,
    "cancellato": false,
    "codice_cliente": "",
    "codice_host_cliente": "",
    "gruppo": "AB",
    "sottogruppo": "CD",
    "codice": 12345,
    "codice_host_merce": "ART-001"
  }
]

400 Bad Request

Errore di validazione dei parametri.

401 Unauthorized

Autenticazione mancante o non valida.


Pattern cancellazioni

Le note cancellate (a_ptt_fl_canc = 'C') sono restituite in entrambi gli endpoint con cancellato = true. Il client deve interpretare il flag per rimuoverle dal proprio stato. Pattern coerente con gli altri endpoint (distinte base, listini).


Limiti

Vincolo Valore
Max note per risposta 200

Programmi di alimentazione

La tabella ARPPOSTIT viene alimentata dai processi:

  • SWN115 -- sincronizzazione batch
  • SWA046 -- sincronizzazione APP