Connecter SAP Business One : recevoir commandes et clients, consulter le stock
Saisissez l’URL Service Layer sans le suffixe /b1s/v2, la CompanyDB, un nom d’utilisateur et un mot de passe B1, puis testez, mappez et activez : les commandes et les clients entrent et le stock peut être consulté.
Le connecteur SAP Business One se connecte à votre Service Layer B1 par une connexion de session, importe les commandes et les clients dans le système et peut consulter le stock dans SAP Business One. Le stock ne peut pas encore être renvoyé vers SAP Business One depuis ici ; utilisez donc cette connexion pour importer commandes et clients et pour consulter le stock. Une connexion vise une CompanyDB.
Prérequis#
- Un système SAP Business One où le Service Layer est disponible, et vous connaissez son adresse, par exemple https://b1server:50000.
- Le nom exact de la base de données de société à laquelle vous voulez vous connecter, la CompanyDB, par exemple SBODemoUS.
- Un utilisateur B1 dans cette CompanyDB, avec le droit d’accès à l’API, et son mot de passe.
- Il n’y a pas de clé développeur séparée à demander : les identifiants sont ce compte utilisateur B1 lui-même.
Obtenir les identifiants#
- Demandez à votre administrateur SAP Business One l’adresse du Service Layer. Elle ressemble à https://b1server:50000, hôte et port uniquement. N’ajoutez pas le suffixe /b1s/v2 : le système ajoute cette partie lui-même lorsqu’il appelle le Service Layer.
- Confirmez la CompanyDB avec le même administrateur : c’est le nom de la base de données de société utilisé dans le Login du Service Layer, par exemple SBODemoUS.
- Obtenez un nom d’utilisateur et un mot de passe B1 pour cette CompanyDB, par exemple l’utilisateur manager. L’utilisateur doit avoir le droit d’accès à l’API, sinon la connexion et les lectures suivantes ne passeront pas.
Remplir dans Integration#
- Ouvrez Integration → Marketplace → SAP Business One → Nouvelle connexion.
- base_url, obligatoire, Service Layer URL : collez l’adresse du Service Layer, par exemple https://b1server:50000. Saisissez-la dans le champ base_url, uniquement jusqu’à l’hôte et au port, sans le suffixe /b1s/v2.
- company_db, obligatoire, CompanyDB : saisissez le nom de la base de données de société, par exemple SBODemoUS. Saisissez-le dans le champ company_db, exactement comme l’administrateur vous l’a donné.
- username, obligatoire, Username : saisissez le nom d’utilisateur B1 de cette CompanyDB, par exemple manager. Saisissez-le dans le champ username.
- password, obligatoire, Password : saisissez le mot de passe de cet utilisateur B1. Saisissez-le dans le champ password ; c’est un champ de mot de passe, donc la saisie est masquée et n’est pas réaffichée dans le formulaire ensuite.
Tester la connexion#
Cliquez sur Tester la connexion. Le test vérifie d’abord les quatre champs de ce côté : une company_db vide renvoie MISSING_CONFIG, et un username ou un password vide renvoie MISSING_CREDENTIALS. Il se connecte ensuite réellement : il envoie CompanyDB, UserName et Password au Login du Service Layer et prend le SessionId de la réponse, puis il lit une commande avec cette session, Orders avec $top=1 et $select=DocEntry, pour prouver que les documents peuvent être lus, pas seulement que la connexion fonctionne.
C’est une connexion de session, il n’y a donc aucun jeton à renouveler à la main. Si une lecture ultérieure reçoit un 401, le système se reconnecte une fois de lui-même et réessaie. Le test s’arrête après 12 secondes, donc un délai dépassé signifie en général que l’adresse du Service Layer est injoignable ou ne répond pas à temps : vérifiez d’abord l’adresse, puis retestez.
Mapping / choisir un modèle#
Choisissez le modèle SAP Business One pour les commandes reçues, afin que chaque commande B1 arrive comme une commande standard. Avant d’activer, ouvrez l’aperçu avec une commande réelle et vérifiez que le document, ses lignes et ses quantités correspondent à ce qui est dans SAP Business One. Les clients importés de B1 et les consultations de stock utilisent les valeurs telles qu’elles viennent de SAP Business One ; gardez donc les noms et les codes dans B1 cohérents avec les produits que vous utilisez ici.
Activer#
Après activation, Integration récupère les nouvelles commandes et les nouveaux clients depuis SAP Business One selon la fréquence que vous définissez, et le stock de SAP Business One peut être consulté depuis ici. Le stock ne peut pas encore être renvoyé vers SAP Business One depuis ici ; prévoyez donc tout retour de stock comme une étape séparée dans SAP Business One lui-même. Surveillez les premières commandes reçues dans Runs / Logs avant de le laisser sans surveillance.
FAQ#
Le test échoue avec 401 (INVALID_CREDENTIALS)
Le Service Layer a répondu au Login par 401, ce qui signifie que la CompanyDB, le nom d’utilisateur ou le mot de passe n’est pas valide : au moins l’un des trois ne correspond pas à ce que SAP Business One a pour cette base de données.
Vérifiez les trois valeurs une par une : confirmez que company_db est la CompanyDB exacte donnée par l’administrateur, et que username et password appartiennent à cette même CompanyDB, puis retapez le mot de passe et retestez.
Le test renvoie MISSING_CONFIG ou MISSING_CREDENTIALS
Un champ obligatoire est vide et le test s’arrête avant même d’essayer de se connecter. MISSING_CONFIG signifie que company_db est vide, et MISSING_CREDENTIALS signifie que username ou password est vide.
Remplissez les quatre champs obligatoires, base_url, company_db, username et password, enregistrez la connexion, puis retestez.
La connexion échoue quand l’URL se termine par /b1s/v2
La base_url que vous avez collée est l’adresse complète du Service Layer, partie /b1s/v2 comprise. Le système ajoute cette partie lui-même ; si elle est dans le champ, l’adresse la contient deux fois et l’appel de Login part vers un mauvais chemin.
Raccourcissez base_url à l’hôte et au port uniquement, par exemple https://b1server:50000, enregistrez, puis retestez.
Le test échoue et aucune session n’est renvoyée (AUTH_FAILED)
L’appel de Login est revenu sans SessionId, donc aucune session B1SESSION n’a été créée et la lecture de commande qui suit la connexion ne peut pas s’exécuter. C’est l’étape de connexion elle-même qui n’a pas abouti.
Vérifiez d’abord que base_url est l’adresse racine du Service Layer, uniquement jusqu’à l’hôte et au port, sans chemin supplémentaire. Demandez ensuite à votre administrateur SAP Business One de confirmer que le Service Layer répond à un Login pour cette CompanyDB et cet utilisateur, puis retestez une fois la confirmation reçue.