Salta ai contenuti

Esportazione contabile SAP

Per i campeggi la cui contabilità risiede in SAP, questo adapter pubblica una scrittura contabile consolidata al giorno — il fatturato giornaliero raggruppato per conto GL — direttamente in SAP. Niente esportazioni CSV, niente registrazioni manuali.

  • Scrittura quotidiana pubblicata alle 02:00 (configurabile) tramite Celery beat
  • Aggrega POS, pagamenti e fatture della giornata in righe di dare / avere bilanciate
  • Idempotente — (tenant, journal_date) è univoco, quindi le ripetizioni non producono doppie registrazioni
  • Storno di una scrittura pubblicata con un clic (registra il numero documento dello storno SAP)
  • Log completo di ogni pubblicazione / storno con il numero documento lato SAP

Supporta SAP Business One Service Layer e SAP S/4HANA OData nello stesso adapter — sceglie la variante sulla scheda delle impostazioni.

Le integrazioni SAP sono per cliente: ogni campeggio che usa SAP ha il proprio ambiente SAP con i propri utenti, conti GL e regole. CampOne non può pre-configurare una sandbox.

Le serviranno:

  • Per B1 (Service Layer): instance URL (di norma https://<host>:50000/b1s/v1/), nome del Company DB, un utente integrazione service-layer con permesso di pubblicare JournalEntries e di eseguire l’azione Cancel.
  • Per S/4HANA: il base URL del tenant, un utente di communication-arrangement per SAP_COM_0002 / API_JOURNALENTRYBULKCREATE_REQUE_SRV, con S_DEVELOP e permesso di posting sul ledger di destinazione.
  • Una mappatura dei conti GL — quale tipo di ricavo CampOne mappa su quale conto SAP.

Se non ha ancora un partner SAP, il percorso standard è:

  • Scrivere a partner@sap.com per iscriversi a SAP PartnerEdge come ISV
  • Oppure contattare direttamente un partner B1 svizzero: Versino Schweiz (+41 56 418 32 99 · sapsupport@versino.ch) o MTF B1 Consulting (+41 52 632 33 88)

Impostazioni → Integrazioni → Vendor Adapters → SAP:

CampoDescrizione
FlavorBusiness One o S/4HANA
EnvironmentTest / Production
Instance URLL’endpoint SAP
Company DB(solo B1) — es. SBO_DEMO_CH
Username / PasswordLe credenziali dell’utente integrazione
GL account mappingJSON: {"booking_revenue": "4001", "pos_revenue": "4002", "vat_collected": "2200", …}
Default cost centerOpzionale — applicato a ogni riga se valorizzato

Clicchi Save, poi Test connection. La verifica chiama il no-op più economico (whoami / login) — la pillola verde conferma.

Una volta al giorno (default 02:00 server time) per ciascun tenant abilitato:

  1. Aggrega le righe POSTransaction, Payment e Invoice del giorno precedente per (revenue_type, vat_rate).
  2. Costruisce una scrittura bilanciata: cassa + crediti in dare; ricavi + IVA in avere.
  3. Pubblica in SAP. Salva il numero documento restituito su una riga SAPJournalDoc.
  4. Se il giorno non ha avuto transazioni chiudibili, salta silenziosamente.

La scheda delle impostazioni mostra la tabella Posted journals — data, numero documento SAP, totale, stato — con un pulsante Reverse per riga.

Clicchi Reverse su una scrittura pubblicata, inserisca un motivo e confermi. CampOne chiama Cancel di SAP (B1) o l’equivalente su S/4HANA, registra il numero documento dello storno e marca l’originale come stornato. Il motivo dello storno compare nell’audit trail.

  • Ogni cliente SAP ha il proprio service-layer URL e il proprio Company DB — non possiamo fornire una sandbox condivisa.
  • La forma del payload OData S/4HANA è implementata sulla base della documentazione pubblica; prima del go-live del primo cliente S/4HANA, esegua una pubblicazione contro la loro sandbox per confermare che si allinei al loro communication-arrangement.
  • Le righe POS sono raggruppate sotto un’unica riga (pos_revenue, IVA ordinaria). Una scomposizione IVA più fine per articolo è un punto di roadmap.
  • Il TLS con CA private è un follow-up — al momento l’adapter si aspetta che l’endpoint SAP usi una CA già presente nel trust store di sistema.