Salta al contenuto
MTF Srl — Making The Future
← Tutti gli articoli

25 settembre 2026 · integrazione

Integrare SAP Business One: Service Layer, DI API e B1IF a confronto

Service Layer, DI API e B1IF risolvono problemi diversi nell'integrare SAP Business One: la scelta sbagliata si paga in manutenzione, non al preventivo. Ecco come orientarsi con criteri concreti.

diAlessandro Cimino · Responsabile sviluppo

Illustrazione isometrica: un cubo server centrale con tre percorsi arancioni distinti — un connettore, un ingranaggio, tre nodi collegati — che rappresentano tre modi diversi di integrarsi con SAP Business One.

In sintesi

Chi deve collegare un sistema esterno a SAP Business One — un e-commerce, un gestionale satellite, un tool di BI — si trova davanti a tre tecnologie con scopi diversi: Service Layer, DI API e B1IF. Non sono intercambiabili, e la scelta sbagliata non si vede al momento del preventivo: si vede sei mesi dopo, in manutenzione. Questo articolo spiega cosa fa ciascuna, quando ha senso l’una e quando l’altra, e quali errori architetturali si ripetono più spesso.

Le tre famiglie di integrazione con SAP B1

Prima di scegliere, serve chiarezza su cosa sono davvero queste tecnologie: non sono tre modi diversi di fare la stessa cosa, ma tre strumenti pensati per contesti diversi.

Service Layer

Il Service Layer è l’API REST/OData di SAP B1: espone risorse (ordini, articoli, business partner, giacenze) su HTTP, con autenticazione a sessione. È pensato per essere chiamato da remoto — un’app mobile, un frontend web, un sistema esterno che vive fuori dalla rete del cliente — e non richiede componenti installati sulla macchina che lo chiama. È la tecnologia più adatta quando il chiamante non è nella stessa rete Windows del server SAP B1.

DI API

La DI API (Data Interface API) è una libreria COM/.NET che gira sulla stessa macchina o nella stessa rete del client SAP B1: dà accesso più diretto alla business logic interna di B1 (validazioni, numerazione documenti, alcuni comportamenti non esposti dal Service Layer). Il vincolo è geografico e architetturale insieme: non è pensata per essere invocata da remoto come un’API pubblica, ma per girare vicino all’installazione B1, tipicamente in servizi Windows locali o add-on client-side.

B1IF

Il B1IF (B1 Integration Framework) non è un’API da chiamare, ma un motore di orchestrazione a scenari: definisci flussi che intercettano eventi in SAP Business One (o in sistemi esterni) e li trasformano/instradano verso altre destinazioni, senza scrivere codice custom per ogni passaggio. È lo strumento giusto quando serve orchestrare più step (validazione, trasformazione, instradamento) e si preferisce configurare scenari piuttosto che mantenere codice ad hoc per ognuno.

Come si sceglie

La domanda giusta non è “quale API è più potente”, ma quattro domande concrete su dove vive il chiamante e come deve comportarsi l’integrazione:

  • Dove vive chi chiama? Se è un’app mobile, un frontend web o un sistema esterno fuori dalla rete del cliente, il Service Layer è quasi sempre la scelta corretta. Se è un servizio o un add-on che gira già sulla stessa macchina o rete Windows di SAP B1, la DI API diventa un’opzione valida.
  • Serve realtime o va bene batch/eventi? Chiamate sincrone puntuali (crea un ordine, leggi una giacenza) sono il caso naturale del Service Layer o della DI API. Se invece serve reagire a eventi e instradare/trasformare dati verso più destinazioni, il B1IF evita di scrivere codice custom per ogni scenario.
  • Quanto profondo deve essere l’accesso alla business logic B1? Alcuni comportamenti interni (validazioni specifiche, numerazione documenti in certi contesti) sono più accessibili via DI API che via Service Layer.
  • Chi mantiene l’integrazione nel tempo? Un’integrazione fatta con lo strumento sbagliato non si vede il giorno del go-live — si vede quando va estesa o quando cambia un requisito, e a quel punto costa riscriverla.

Tabella comparativa

DimensioneService LayerDI APIB1IF
ProtocolloREST / OData su HTTPLibreria COM/.NET nativaMotore a scenari, non un’API
Dove può girare il chiamanteDa remoto, fuori dalla rete del clienteStessa macchina/rete Windows del client SAP B1Server B1IF, tipicamente vicino a SAP B1
Tipo di accessoRisorse REST (ordini, articoli, BP)Accesso diretto alla business logic B1Orchestrazione di eventi/trasformazioni
Caso d’uso tipicoApp mobile, integrazioni web esterneAdd-On locali, servizi Windows vicini a B1Instradamento multi-destinazione, flussi a step
Complessità di manutenzioneBassa se il chiamante resta statelessCresce se il servizio deve girare su più macchineConfigurazione a scenari, meno codice custom

Errori architetturali comuni

Alcuni pattern sbagliati si ripetono in modo quasi identico progetto dopo progetto:

  • Usare la DI API per un caso che doveva essere Service Layer. Un’integrazione web o mobile costruita sopra la DI API finisce per richiedere un componente server-side dedicato solo per “avvicinarsi” a SAP B1 — complessità evitabile scegliendo il Service Layer da subito.
  • Sincrono quando serviva asincrono. Chiamare il Service Layer in modo sincrono per ogni singolo evento, quando in realtà serve orchestrare più passaggi o gestire retry, porta a integrazioni fragili: è il caso in cui B1IF o una coda applicativa avrebbero retto meglio.
  • Duplicare la fonte di verità invece di leggere/scrivere direttamente SAP B1. Costruire un secondo database che replica anagrafiche e giacenze “per comodità” introduce un problema di allineamento che prima o poi si paga — lo stesso principio vale sia per le integrazioni custom che per i prodotti mobile (ne parliamo anche nell’articolo sulla tentata vendita su SAP Business One).
  • Ignorare i limiti di sessione della Service Layer su volumi alti. Le sessioni Service Layer hanno un comportamento e un ciclo di vita da gestire esplicitamente: un’integrazione che non li considera nel disegno rischia errori intermittenti sotto carico. (I valori esatti di limite dipendono dalla versione e dalla configurazione SAP B1: vanno verificati caso per caso, non stimati a priori.)

Domande frequenti

Posso usare Service Layer e DI API insieme nello stesso progetto?

Sì. Non sono alternative esclusive: capita che un’integrazione usi il Service Layer per le chiamate da remoto e un componente locale basato su DI API per operazioni specifiche che richiedono accesso più diretto alla business logic. La chiave è essere espliciti su quale tecnologia risponde a quale esigenza, non mescolarle per abitudine.

Serve B1IF se ho già uno sviluppatore che scrive integrazioni custom?

Dipende da quanti scenari di orchestrazione servono e quanto cambiano nel tempo. Se i flussi sono pochi e stabili, il codice custom può bastare. Se i flussi crescono (più destinazioni, più trasformazioni, più eventi da intercettare), B1IF riduce la quantità di codice da mantenere a ogni nuovo scenario.

Il Service Layer funziona anche fuori dalla rete del cliente?

Sì, è pensato esattamente per questo: è un’API REST accessibile da remoto, con autenticazione a sessione. È il motivo per cui è la scelta naturale per app mobile e integrazioni web che non vivono nella stessa rete del server SAP B1.

Quale tecnologia usa MTF nei suoi prodotti mobile?

MTF.Sales.Suite, MTF.Warehouse e MTF.TMS integrano SAP Business One nativamente tramite il Service Layer: è la scelta coerente per prodotti che devono funzionare da dispositivi mobili fuori dalla rete del cliente, con SAP B1 come unica fonte di verità.

Cosa fa MTF qui

MTF è Silver Partner SAP e implementa e integra SAP Business One per le PMI italiane dal 2017. Nella consulenza disegniamo architetture di integrazione su Service Layer, DI API e B1IF in base al progetto reale — non a uno schema fisso — e nei nostri prodotti mobile (MTF.Sales.Suite, MTF.Warehouse, MTF.TMS) usiamo il Service Layer come integrazione nativa con SAP B1.

Se stai valutando come integrare un sistema con SAP Business One, scopri i servizi SAP Business One di MTF o parliamo del tuo caso specifico.

Vuoi vederlo nella tua azienda?

Demo personalizzata sul tuo processo, niente slide generiche.