Conectar SAP Business One: recibir pedidos y clientes, consultar inventario
Ingrese la URL de Service Layer sin el sufijo /b1s/v2, la CompanyDB y un usuario y contraseña de B1, luego pruebe, mapee y active: entran pedidos y clientes y se puede consultar el inventario.
El conector de SAP Business One inicia sesión en su Service Layer de B1 con un inicio de sesión por sesión, trae pedidos y clientes al sistema y puede consultar el inventario en SAP Business One. El inventario aún no se puede devolver a SAP Business One desde aquí, así que use esta conexión para traer pedidos y clientes y para consultar el stock. Una conexión apunta a una CompanyDB.
Requisitos previos#
- Un sistema SAP Business One con el Service Layer disponible, y usted conoce su dirección, por ejemplo https://b1server:50000.
- El nombre exacto de la base de datos de la empresa a la que quiere conectarse, la CompanyDB, por ejemplo SBODemoUS.
- Un usuario de B1 en esa CompanyDB, con permiso de acceso a la API, y su contraseña.
- No hay una clave de desarrollador separada que solicitar: las credenciales son esta propia cuenta de usuario de B1.
Obtener credenciales#
- Pida a su administrador de SAP Business One la dirección del Service Layer. Tiene la forma https://b1server:50000, solo host y puerto. No agregue el sufijo /b1s/v2: el sistema agrega esa parte por sí mismo cuando llama al Service Layer.
- Confirme la CompanyDB con el mismo administrador: es el nombre de la base de datos de la empresa usado en el Login del Service Layer, por ejemplo SBODemoUS.
- Obtenga un nombre de usuario y una contraseña de B1 para esa CompanyDB, por ejemplo el usuario manager. El usuario debe tener permiso de acceso a la API; de lo contrario, el inicio de sesión y las lecturas posteriores no funcionarán.
Completar en Integration#
- Abra Integration → Marketplace → SAP Business One → Nueva conexión.
- base_url, obligatorio, Service Layer URL: pegue la dirección del Service Layer, por ejemplo https://b1server:50000. Complétela en el campo base_url, solo hasta el host y el puerto, sin el sufijo /b1s/v2.
- company_db, obligatorio, CompanyDB: complete el nombre de la base de datos de la empresa, por ejemplo SBODemoUS. Complételo en el campo company_db, exactamente como se lo dio el administrador.
- username, obligatorio, Username: complete el nombre de usuario de B1 de esa CompanyDB, por ejemplo manager. Complételo en el campo username.
- password, obligatorio, Password: complete la contraseña de ese usuario de B1. Complétela en el campo password; es un campo de contraseña, así que lo que escribe se oculta y no se vuelve a mostrar en el formulario.
Probar la conexión#
Haga clic en Probar la conexión. La prueba primero revisa los cuatro campos de este lado: una company_db vacía devuelve MISSING_CONFIG, y un username o password vacío devuelve MISSING_CREDENTIALS. Luego inicia sesión de verdad: envía CompanyDB, UserName y Password al Login del Service Layer y toma el SessionId de la respuesta, y después lee un pedido con esa sesión, Orders con $top=1 y $select=DocEntry, para probar que los documentos se pueden leer, no solo que el inicio de sesión funciona.
Es un inicio de sesión por sesión, así que no hay ningún token que renovar a mano. Si una lectura posterior recibe un 401, el sistema inicia sesión una vez más por su cuenta y lo intenta de nuevo. La prueba se detiene a los 12 segundos, así que un tiempo de espera agotado suele significar que la dirección del Service Layer no se puede alcanzar o no responde a tiempo: revise primero la dirección y pruebe de nuevo.
Mapping / elegir plantilla#
Elija la plantilla de SAP Business One para los pedidos recibidos, para que cada pedido de B1 llegue como un pedido estándar. Antes de activar, abra la vista previa con un pedido real y compruebe que el documento, sus líneas y sus cantidades coinciden con lo que hay en SAP Business One. Los clientes traídos de B1 y las consultas de inventario usan los valores tal como vienen de SAP Business One, así que mantenga los nombres y códigos de B1 coherentes con los productos que usa aquí.
Activar#
Tras activar, Integration trae nuevos pedidos y clientes de SAP Business One con la frecuencia que usted defina, y el inventario de SAP Business One se puede consultar desde aquí. El inventario aún no se puede devolver a SAP Business One desde aquí, así que planifique cualquier devolución de stock como un paso separado dentro del propio SAP Business One. Vigile los primeros pedidos recibidos en Runs / Logs antes de dejarlo sin supervisión.
Preguntas frecuentes#
La prueba falla con 401 (INVALID_CREDENTIALS)
El Service Layer respondió al Login con 401, lo que significa que la CompanyDB, el nombre de usuario o la contraseña no son válidos: al menos uno de los tres no coincide con lo que SAP Business One tiene para esa base de datos.
Revise los tres valores uno por uno: confirme que company_db es la CompanyDB exacta que le dio el administrador, y que username y password pertenecen a esa misma CompanyDB, luego vuelva a escribir la contraseña y pruebe de nuevo.
La prueba devuelve MISSING_CONFIG o MISSING_CREDENTIALS
Un campo obligatorio está vacío y la prueba se detiene antes incluso de intentar iniciar sesión. MISSING_CONFIG significa que company_db está vacía, y MISSING_CREDENTIALS significa que username o password está vacío.
Complete los cuatro campos obligatorios, base_url, company_db, username y password, guarde la conexión y pruebe de nuevo.
El inicio de sesión falla cuando la URL termina en /b1s/v2
La base_url que pegó es la dirección completa del Service Layer incluyendo la parte /b1s/v2. El sistema agrega esa parte por sí mismo, así que si está en el campo, la dirección la lleva dos veces y la llamada de Login va a la ruta equivocada.
Acorte base_url solo al host y al puerto, por ejemplo https://b1server:50000, guarde y pruebe de nuevo.
La prueba falla y no se devuelve ninguna sesión (AUTH_FAILED)
La llamada de Login volvió sin un SessionId, así que no se creó ninguna sesión B1SESSION y la lectura de pedidos que sigue al inicio de sesión no puede ejecutarse. El paso que se quedó bloqueado es el propio inicio de sesión.
Primero compruebe que base_url es la dirección raíz del Service Layer, solo hasta el host y el puerto, sin ninguna ruta extra. Luego pida a su administrador de SAP Business One que confirme que el Service Layer responde a un Login para esa CompanyDB y ese usuario, y pruebe de nuevo cuando lo confirme.