接 Sage 100 / Sage 300:验证 Sage 300 Web API 连通性
一个连接装两个产品,由 variant 字段决定您指的是哪一个:sage300 会用您的服务地址、公司代码与用户账号对 Sage 300 Web API 做真实连通测试;sage100 会如实返回暂不可用的结果。填好 variant、服务基址、公司代码、用户名与密码后测试——请先看 Sage 300 一侧。
这是一个装着两个 Sage 产品的连接,第一个字段 variant 决定后面的一切。variant 填 sage300 时,本连接验证本系统能到达您的 Sage 300 Web API:它用您的 Sage 300 用户账号走 HTTP Basic 登录,并读取一次您的公司档案。variant 填 sage100 时,测试根本不发任何请求——它会如实返回暂不可用的结果,因为 Sage 100 的 eBusiness Web Services 调用是 SOAP 方式,其请求体必须先按您自己的 WSDL 确认。对两个产品都请清楚范围:本连接只验证连通性。它不拉订单、客户或库存进来,也不把库存推回去——对 Sage 300 来说,其各视图返回的字段名必须先按您自己部署的 swagger 确认。Sage 300 测试通过只证明下面五个值对该公司能一起工作,不证明其他功能。
前置条件#
- 您清楚自己实际在用哪个产品:Sage 300 还是 Sage 100。这决定 variant 的填法,两条路在测试里的表现完全不同。
- 对 Sage 300:Sage 300 Web API 服务已在您的服务器上运行,地址形如 https://server/Sage300WebApi。您可以自己先验:在浏览器打开 {baseUrl}/swagger——该页能应答,说明服务在跑。
- 一个您本地 Sage 系统里供集成使用的用户账号:对 Sage 300,是能走 HTTP Basic 登录且被允许使用 Web API 的 Sage 300 用户;对 Sage 100,是 Web Services 用户。这套凭证没有云端注册入口——账号就在您自己的 Sage 系统里。
- 您的公司代码:对 Sage 300,是出现在 Web API 地址里的公司 Org ID,例如 SAMINC;对 Sage 100,是您的公司码。
拿凭证#
- 先定 variant 这个词,再收集其他值:如果您用 Sage 300 就填 sage300,用 Sage 100 就填 sage100。必须一字不差——测试按字面读它。
- 对 Sage 300,记下您服务器的 Web API 地址,例如 https://server/Sage300WebApi。先在浏览器打开 {该地址}/swagger:页面能应答,说明地址对、服务也在跑。
- 对 Sage 100,改记您服务器的 eBusiness Web Services 地址,例如 https://server/ebusinesswebservices。把它与您的 WSDL 一起备好,WSDL 在您的 Sage 管理员手里。
- 记下公司代码:对 Sage 300,是 Web API 地址里用的公司 Org ID,例如 SAMINC;对 Sage 100,是您要接的那家公司的公司码。
- 向您的 Sage 管理员索取本地 Sage 系统里的集成用户账号,把它的用户名与密码成对记下:对 Sage 300,是走 HTTP Basic 登录的 Sage 300 用户;对 Sage 100,是 Web Services 用户。请用专门为集成建的账号,不要用某个人的日常登录账号。
填进 Integration#
- 打开 Integration → 连接器市场 → Sage 100 / Sage 300 → 新建连接。
- variant——必填,产品版本:用 Sage 300 就填单个词 sage300,用 Sage 100 就填 sage100。sage300 走 Sage 300 Web API(OData)。sage100 走 Sage 100 eBusiness Web Services(SOAP),需要先按您的 WSDL 确认,暂未开放测试。
- base_url——必填,服务基址:对 Sage 300,粘贴您的 Web API 地址,例如 https://server/Sage300WebApi。对 Sage 100,改粘您的 eBusiness Web Services 地址,例如 https://server/ebusinesswebservices。
- company——必填,公司代码:对 Sage 300,填 Web API 地址里该用的公司 Org ID,例如 SAMINC。对 Sage 100,填您的公司码。
- username——必填,用户名:填您本地 Sage 系统里集成账号的用户名——sage300 用 Sage 300 用户,sage100 用 Web Services 用户。形态上就是为本连接建的一个 API 用户名。
- password——必填,密码:粘贴同一个账号的密码。这是密码类型字段,按秘密保存。用户名与密码必须属于同一个账号。
测试连接#
点测试连接。接下来发生什么取决于 variant,测试会先读这个字段。variant 为空,测试以 MISSING_VARIANT 停下;既不是 sage300 也不是 sage100,以 INVALID_VARIANT 停下。variant 是 sage100,测试直接返回 ERP_ENDPOINTS_PENDING 结果,根本不发请求——这是 Sage 100 今天如实的答复,不是您其他字段填错了。variant 是 sage300,测试会检查其余四个字段,缺哪项就以 MISSING_BASE_URL、MISSING_COMPANY、MISSING_USERNAME 或 MISSING_PASSWORD 停下。然后它用 HTTP Basic——您的用户名与密码——登录,在 12 秒时限内到 {base}/v1.0/-/{company}/CS/CSCompanyProfile 读取公司档案,这是它能问的最轻的元数据。返回 200 即通过。401 报 INVALID_TOKEN,403 报 MISSING_SCOPE,404 报 NOT_FOUND——各自含义见下方常见问题。
配 Mapping / 选模板#
本连接没有标准 Mapping 可配,也没有模板可供选择。对 Sage 300,各视图返回的字段名以每个部署自己的 swagger 为准,因此订单、库存或客户的任何映射,都要等为您的部署搭建数据连接时、按您自己服务器的 {baseUrl}/swagger 逐项确认——不是在这里猜、也不是在这里填的东西。对 Sage 100,SOAP 请求本身要先按您的 WSDL 确认。在这种逐部署确认完成之前,本连接就停留在测试步骤所做的连通性检查上。不要为了迁就猜出来的映射去改 Sage 里的视图名或字段名。
激活#
对 Sage 300,测试通过后激活连接,把这组已验证的值保存在 Integration 里,之后可以用同一个账号再检查同一家公司。激活不会启动任何数据流:本连接不搬运订单、客户或库存,两个方向都不搬。如果集成账号的密码之后改了,请更新这里的 password 字段并重新测试。对 Sage 100,目前没有可激活的东西——测试结果已经告诉您状态,改其他字段也不会改变它。
常见问题#
我用 Sage 100,测试返回 ERP_ENDPOINTS_PENDING
对 Sage 100 来说,这个结果是预期内的,不是由您填的任何东西引起的。测试一读到 variant 是 sage100,就直接返回这个结果、不发任何请求,因为 Sage 100 的连接走 SOAP 方式的 eBusiness Web Services,而那个请求必须先按您自己部署的 WSDL 确认。今天填什么地址、公司代码、用户名或密码都改变不了这个结果。
不要反复改其他字段——它们不是原因。只确认一件事:如果您实际用的是 Sage 300,把 variant 改成 sage300 再测试,因为您之前走错了路。如果您确实是 Sage 100,请把服务地址、公司代码与 Web Services 用户连同 WSDL 一起备好,等 Sage 100 这条路开放后再来完成这个连接。
测试以 MISSING_VARIANT 或 INVALID_VARIANT 停下
测试在其他任何事之前先读 variant,因为这一个词决定整个测试的走向。MISSING_VARIANT 表示该字段是空的。INVALID_VARIANT 表示里面写的词不是本连接接受的两个词之一——用其他形态写产品名、带了多余的词或带空格,都走不到任何一条路。
在 variant 里只填一个词,一字不差:Sage 300 填 sage300,Sage 100 填 sage100——不带空格、不带多余词。保存后重新测试。
Sage 300 测试报 INVALID_TOKEN(401)
Sage 300 Web API 没有接受 HTTP Basic 登录——您的用户名与密码这一对被拒绝了。常见原因是打字或复制出错、密码在您记下之后改过,或用户名配了另一个账号的密码。
从您的 Sage 管理员处重新取得那一个集成账号的用户名与密码、原样填入且不带多余空格,确认用户名在 username、密码在 password,再重新测试。如果该账号密码在 Sage 里重置过,这里就用新的。
Sage 300 测试报 MISSING_SCOPE(403)
登录是通的,但这个 Sage 300 用户没有被允许使用 Web API。地址和公司都已到达——缺的是账号本身的 Web API 权限,所以改地址或改公司代码解决不了这一条。
请您的 Sage 管理员允许该用户使用 Sage 300 Web API,或给您另一个已有该权限的 Sage 300 用户。如果换了账号,同步更新这里的 username 与 password,再重新测试。
Sage 300 测试报 NOT_FOUND(404)
测试要问的公司档案在该地址下、该公司名下没找到。要么公司代码与该服务器上一家公司的 Org ID 对不上,要么 base_url 没有指向 Sage 300 Web API 的根——地址差一点点也是同样的效果。
先在浏览器打开 {baseUrl}/swagger:不应答就先修 base_url 直到它应答,并确认地址止于 Web API 根,例如 https://server/Sage300WebApi。如果 swagger 能应答,就拿 company 与您 Web API 地址里用的 Org ID 对照,例如 SAMINC,然后重新测试。
Sage 300 测试以 MISSING_BASE_URL、MISSING_COMPANY、MISSING_USERNAME 或 MISSING_PASSWORD 停下
在 sage300 这条路上,结果里写明了到底哪个字段是空的。测试在 variant 之后检查这四项,不全就什么都不发,因为读取公司档案需要地址、公司与 Basic 登录同时在场。
把结果点名的那个字段补上——服务基址、公司代码、用户名或密码——值用您收集好的那组,保存后重新测试。如还有缺失提示,照此再补。
Sage 300 测试通过了,但订单、库存或客户都没有同步
这是本连接目前的范围,不是您的值填错了。测试只证明 Basic 登录与公司档案读取能工作。数据搬运还不属于本连接,因为 Sage 300 各视图返回的字段名以每个部署自己的 swagger 为准,必须先按您自己服务器的 {baseUrl}/swagger 逐项确认。
请把 Sage 300 测试通过当作该公司的连接已验证,订单、库存与客户的作业暂时继续在 Sage 300 里处理。将来为您的部署搭建数据连接时,会从这组已验证的值和您的 swagger 出发——您不需要重新收集凭证。