Interfacce di scambio dati (Ocmis)¶
Panoramica¶
Questa pagina descrive l'architettura di cooperazione fra i software coinvolti nella verticalizzazione Ocmis e le interfacce di scambio dati fra di essi. I sistemi principali sono:
- Ocmis — ambiente cliente che ospita la VM di integrazione
- Irriverso (IPD) — piattaforma Eurosystem di Irrigation Data Server
- SAP — ERP cliente
- PLM — Product Lifecycle Management cliente
- CE (Component Engine) — motore di configurazione prodotto
Architettura di cooperazione¶
Virtual machine di integrazione¶
All'interno di Ocmis e' stata predisposta una VM denominata E2k-p-csv-01.ocmis.priv che fa da ponte fra i sistemi. Il nome e' vincolato da una convenzione di naming imposta da Ocmis: una sua modifica richiederebbe l'aggiornamento del record DNS interno.
| Caratteristica | Valore |
|---|---|
| Hostname | E2k-p-csv-01.ocmis.priv |
| CPU | 2 vCPU |
| RAM | 4 GB |
| Disco | 80 GB HDD |
| Sistema operativo | AlmaLinux 9.x (LTS) |
| Utente di servizio | service |
| VPN obbligatoria | Watchguard |
La scelta di AlmaLinux deriva dalla necessita' di una distribuzione LTS, configurazione predefinita supportata dall'ambiente Ocmis. La policy aziendale prevede l'applicazione delle nuove minor release non appena disponibili.
Connettivita' della VM¶
La VM e' configurata per:
- Connettersi al server SAP e consumare le API REST pubbliche (HTTP 80 e HTTPS 443).
- Collegarsi al web service del PLM (HTTPS 443).
Ingressi abilitati¶
| Porta | Sorgente | Scopo |
|---|---|---|
| SSH | Solo IP aziendale via VPN Watchguard | Amministrazione |
Nessun'altra connessione in ingresso e' ammessa.
Uscite abilitate¶
| Porta | Destinazione | Scopo |
|---|---|---|
| 80/443 TCP | Qualsiasi | Traffico HTTP/HTTPS verso SAP e PLM |
| 10051 TCP | zabbix01.es2000.it | Monitoraggio (Zabbix Agent attivo) |
| 1516 TCP | syslog01.es2000.it | Invio log di sistema |
Interfaccia CE - Irriverso¶
Interfaccia fra Component Engine e Irriverso, con SAP come fonte dati primaria per alcuni flussi.
| Nome IF | Direzione | Endpoint | Driver |
|---|---|---|---|
| Clienti | SAP -> Irriverso | POST /v1/interlocutore |
cliente, destinazione, contatto |
| Sconti | SAP -> Irriverso | (da definire) | (da definire) |
Endpoint di riferimento:
- API Irriverso:
https://api-alpha.irrigation-dataserver.com - API SAP:
/sap/opu/odata/SAP/API_BUSINESS_PARTNER
Task ClickUp collegati (riservati):
- TASK-103, TASK-104 (Clienti)
- TASK-270 (Sconti)
Interfaccia PLM - Irriverso¶
Interfaccia fra il sistema PLM del cliente e Irriverso. I flussi sono in fase di definizione.
| Nome IF | Direzione | Endpoint | Driver |
|---|---|---|---|
| (da definire) |
Interfaccia SAP - Irriverso¶
Interfaccia diretta fra SAP e Irriverso, distinta da quella mediata tramite CE. I flussi sono in fase di definizione.
| Nome IF | Direzione | Endpoint | Driver |
|---|---|---|---|
| (da definire) |
Acquisizione condizioni prezzi/sconti¶
Nota (24/11/2025): dopo confronto con CE, questa interfaccia non e' piu' necessaria. La sezione e' conservata a scopo di tracciabilita'.
La logica di acquisizione di prezzi e sconti da SAP e' fortemente condizionata dalla struttura della API SAP. Poiche' lo scopo dell'acquisizione era il semplice passaggio a Component Engine, si era optato per acquisire le informazioni in una struttura dati speculare a quella SAP, tramite due tabelle su Irriverso:
| Tabella | Contenuto |
|---|---|
pricing_sap_testata |
Valori (prezzo, sconto, ecc.) |
pricing_sap_condizioni |
Attributi e periodi di validita' associati al valore |
Un singolo valore (es. "Sconto 10%") poteva essere associato ad un insieme eterogeneo di condizioni non necessariamente correlate tra loro.
| Nome IF | Direzione | Endpoint |
|---|---|---|
| Sconti | SAP -> Irriverso | POST /v1/ |
Endpoint di riferimento:
- API Irriverso:
https://api-alpha.irrigation-dataserver.com - API SAP:
/sap/opu/odata/SAP/API_BUSINESS_PARTNER
Stati ordine SAP -> IPD¶
Su IPD (Irriverso) sono presenti alcune tabelle che contengono gli ordini mostrati nell'apposita schermata di consultazione:
| Tabella | Stato |
|---|---|
ordini_tes_erp |
In uso |
ordini_det_erp |
In uso |
ordini_all_erp |
Non ancora popolata |
E' prevista la realizzazione di un nuovo driver di connessione fra le interfacce SAP e l'API di acquisizione ordini; questa interfaccia sostituira' quella attualmente presente, che riceve gli ordini con stato da BMS.
Descrizione interfaccia¶
| Nome IF | Direzione | Endpoint |
|---|---|---|
| Sconti | SAP -> Irriverso | POST /v1/ |
Endpoint di riferimento:
- API Irriverso:
https://api-alpha.irrigation-dataserver.com - API SAP:
/sap/opu/odata/SAP/API_BUSINESS_PARTNER
Mappatura campi SAP -> Irriverso¶
Relazione fra i campi dell'interfaccia SAP e quelli da acquisire sulla API Irriverso.
Testata¶
| Campo SAP | Campo Irriverso |
|---|---|
| (da definire) | Codice ordine |
| Cliente | codice_cliente |
| Data documento OCMIS | data_ordine |
| Data creazione (VBAK-ERDAT) | Ignorata |
| Riferimento cliente (VBKD-BSTKD) | num_documento |
| Data rif. cliente (VBKD-BSTDK) | data_doc_cliente (nuovo campo) |
| Riferimento interno / numero ticket (QMEL-...) | rif_interno |
Elementi di riga¶
| Campo SAP | Campo Irriverso |
|---|---|
| Posizione dell'ordine di vendita (VBAP-POSNR) | righe.riga |
| Data consegna concordata di posizione (VBEP-EDATU) | righe.data_prevista_cons |
| (da definire) | righe.merce.codice |
| (da definire) | righe.merce.descrizione |
| Quantita' posizione (VBAP-KWMENG) | righe.qta |
| Unita' di misura (VBAP-VRKME) | righe.merce.unita_misura |
| Stato della posizione ordine di vendita (custom ZSTAT) | righe.stato |
| — | righe.data_prevista_prod (da rimuovere) |
| — | righe.data_prevista_sped (da rimuovere) |
Stima: 20 ore.
Note tecniche interne¶
Logica di ricerca¶
SAP non fornisce una data di aggiornamento su questa interfaccia. Per ottimizzare il giro di ricerca si considerera':
- Tutti gli ordini con data >= 6 mesi rispetto alla data odierna.
- Tutti gli ordini recuperati dall'API che hanno almeno una riga con stato diverso da "fatturato" e "annullato", anche con data < 6 mesi dalla data odierna: questi devono essere nuovamente acquisiti.
- Tutte le righe ordine vanno acquisite ex-novo (valutare se puo' essere migliorata l'API nel metodo
POST /v1/ordine/codice_ordine/riga).
Modifiche previste su Irriverso¶
- Nascondere i campi non piu' previsti (es.
data_prevista_prod,data_prevista_sped). - Aggiungere descrizioni per i nuovi stati ordine previsti.