接 SAP Business One:拉订单和客户进来,查库存
填入不带 /b1s/v2 后缀的 Service Layer 地址、CompanyDB 以及 B1 用户名和密码,测试、配 Mapping、激活——订单和客户流进来,库存也能查。
SAP Business One 连接器用会话登录的方式登入您的 B1 Service Layer,把订单和客户拉进系统,还能查 SAP Business One 里的库存。库存暂时还不能从这边推回 SAP Business One,所以这个连接用来把订单和客户拉进来、查库存。一个连接对应一个 CompanyDB。
前置条件#
- 一套 Service Layer 可用的 SAP Business One 系统,且您知道它的地址,例如 https://b1server:50000。
- 您要连接的公司数据库的确切名称,即 CompanyDB,例如 SBODemoUS。
- 该 CompanyDB 里的一个 B1 用户,带有 API 访问权限,以及它的密码。
- 没有单独要去申请的开发者密钥:凭证就是这个 B1 用户账号本身。
拿凭证#
- 向您的 SAP Business One 管理员拿到 Service Layer 地址。形态如 https://b1server:50000,只到主机和端口。不要带 /b1s/v2 后缀:系统调用 Service Layer 时会自己拼上这一段。
- 向同一位管理员确认 CompanyDB:它是 Service Layer 的 Login 里用的公司数据库名,例如 SBODemoUS。
- 拿到该 CompanyDB 的 B1 用户名和密码,例如用户 manager。该用户必须有 API 访问权限,否则登录和后续读取都走不通。
填进 Integration#
- 打开 Integration → 连接器市场 → SAP Business One → 新建连接。
- base_url——必填,Service Layer 地址:粘贴 Service Layer 地址,例如 https://b1server:50000。填在 base_url 字段,只填到主机和端口,不带 /b1s/v2 后缀。
- company_db——必填,CompanyDB:填入公司数据库名,例如 SBODemoUS。填在 company_db 字段,按管理员给您的原样填写。
- username——必填,Username:填入该 CompanyDB 的 B1 用户名,例如 manager。填在 username 字段。
- password——必填,Password:填入该 B1 用户的密码。填在 password 字段;这是密码字段,输入内容会被掩码显示,之后也不会在表单里回显。
测试连接#
点测试连接。测试先在本侧查四个字段:company_db 为空会返回 MISSING_CONFIG,username 或 password 为空会返回 MISSING_CREDENTIALS。然后它做一次真实登录:把 CompanyDB、UserName、Password 发到 Service Layer 的 Login,取回复里的 SessionId;再带着这个会话读一次订单——Orders、$top=1、$select=DocEntry——证明不只是能登录、单据也能读到。
这是会话登录,没有需要您手动续期的令牌。后续读取如果被回复 401,系统会自己再登录一次再试。测试 12 秒超时就结束,所以超时通常表示 Service Layer 地址连不上或没有及时回复——先核对地址,再重新测试。
配 Mapping / 选模板#
选 SAP Business One 的拉单模板,让每张 B1 订单都落成标准订单。激活前,先用一张真实订单打开预览,核对单据、行和数量与 SAP Business One 里的一致。从 B1 拉来的客户记录和库存查询都按 SAP Business One 的原值使用,所以请让 B1 里的名称和编码与您这边用的产品保持一致。
激活#
激活后,Integration 按您设的频率从 SAP Business One 拉新订单和客户,SAP Business One 里的库存也能从这边查。库存暂时还不能从这边推回 SAP Business One,如需回写库存,请在 SAP Business One 里另作一步处理。先在 运行监控 / 日志里盯几张拉进来的订单,确认无误再放手跑。
常见问题#
测试报 401(INVALID_CREDENTIALS)
Service Layer 对 Login 回了 401,意思是 CompanyDB、用户名或密码无效:三者里至少有一个与 SAP Business One 中该数据库的记录对不上。
逐项核对三个值:确认 company_db 是管理员给您的确切 CompanyDB,username 和 password 属于同一个 CompanyDB,然后重新输入密码再测试。
测试返回 MISSING_CONFIG 或 MISSING_CREDENTIALS
有必填字段是空的,测试还没开始登录就停了。MISSING_CONFIG 表示 company_db 为空,MISSING_CREDENTIALS 表示 username 或 password 为空。
把四个必填字段——base_url、company_db、username、password——全部填好,保存连接,再重新测试。
地址带 /b1s/v2 后缀时登录失败
您粘进来的 base_url 是带 /b1s/v2 的完整 Service Layer 地址。系统会自己拼这一段,字段里再带一段,地址就会出现两次,Login 调用走到了错误的路径。
把 base_url 改短到只有主机和端口,例如 https://b1server:50000,保存后重新测试。
测试失败且没有返回会话(AUTH_FAILED)
Login 调用返回时没有带 SessionId,所以 B1SESSION 会话没有建起来,登录后面要做的订单读取也就跑不了。卡住的是登录这一步本身。
先核对 base_url 是 Service Layer 的根地址,只到主机和端口、没有多余路径。然后请 SAP Business One 管理员确认 Service Layer 能对该 CompanyDB 和该用户响应 Login,确认后重新测试。