> For the complete documentation index, see [llms.txt](https://doc.duaer.com/zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/guides/sap-s4hana-purchase-to-pay.md).

# SAP S/4HANA 采购到付款：从请购到付款每一步卡在哪

把 SAP S/4HANA（云版或本地部署）接进 Duaer，用 SAP 标准 OData 接口读出每张采购订单从请购、下单、收货、发票到付款的步骤，看哪里在等、等了多久。
## Duaer 从 SAP 读出什么？

每张采购订单是一个事项。Duaer 用 SAP 标准 OData 接口读出它的步骤：

这些步骤自动对应到采购到付款的请购、下单、收货、开票、付款，Duaer 据此画出流程图，找出等得最久的环节，并能按供应商、公司代码看问题出在哪类订单上。员工门户「我的流程」里的「采购到付款」视图列出各环节用时、合规问题、未付发票和供应商表现，见 [采购到付款看板](/zh/build/process-findings.md#purchase-to-pay)。

- Requisition created、Requisition released：关联的采购申请创建、审批通过的日期（API_PURCHASEREQ_PROCESS_SRV）。
- Order created：采购订单创建（API_PURCHASEORDER_PROCESS_SRV），同时读出供应商、公司代码、币种和订单净值。
- Goods received、Goods receipt reversed：按采购订单收货（移动类型 101）和冲销（102）的时间（API_MATERIAL_DOCUMENT_SRV）。
- Invoice posted：供应商发票过账日期（API_SUPPLIERINVOICE_PROCESS_SRV），已冲销的发票不算。
- Paid：发票的供应商行项目被清账的日期（API_OPLACCTGDOCITEMCUBE_SRV）。

## 订单到收款读什么？

同一个 SAP 凭证也能读订单到收款：每张销售订单是一个事项，步骤对应到订单到收款的下单、发货、签收、开票、收款。员工门户「我的流程」里的「订单到收款」视图列出准时交货率、各环节用时、问题、未收款发票和客户，见 [订单到收款看板](/zh/build/process-findings.md#order-to-cash)。从「订单到收款」里的 SAP S/4HANA 进入时，「检查系统」只要求下面四个接口能读；从普通的 SAP S/4HANA 进入时，流程下拉框只列出这个系统能读的流程。

- Order created：销售订单创建（API_SALES_ORDER_SRV），同时读出客户、销售组织、币种、订单净值和要求交货日期。
- Delivery created、Goods issued、Delivered：外向交货创建、发货过账和签收（交货证明）的时间（API_OUTBOUND_DELIVERY_SRV）。
- Invoice created：开票日期（API_BILLING_DOCUMENT_SRV），已取消的发票不算。
- Paid：发票的客户行项目被清账的日期（API_OPLACCTGDOCITEMCUBE_SRV）。

每次运行读一类单据，最多 100 张：销售订单按最后修改时间，新交货按交货单号，有改动的交货按修改日期（发货和签收发生在创建之后），发票按发票号，收款按清账录入日期。信用检查放行和交货冻结的时间标准接口没有给出，暂不作为步骤；贷项凭证和退货暂不读。

## 怎么把 SAP S/4HANA 接进 Duaer？

1. 在 SAP 里准备一个通信用户，给它上面五个接口的读取权限：S/4HANA Cloud 里为每个接口建通信安排，本地部署在 SAP Gateway 里激活这些服务并授权。
2. 在 Duaer 里新建“SAP S/4HANA API”凭证：填系统地址（https，本地部署可带端口；经由本地数据网关时也可以是 http）、通信用户的用户名和密码；本地部署再填客户端（client，三位数字）。
3. 所有者或管理员打开项目 › 数据表 › Duaer cases ›「流程数据来源」›「添加数据来源」，选 SAP S/4HANA 和这个凭证，点「检查系统」。五个接口都能读才会显示已连接；读不了的接口会连同 SAP 返回的状态码一起列出来。
4. 流程选「采购到付款」，映射是固定的；预览后设置运行频率和可见范围，确认开始。

## 本地部署的 SAP 不对外开放怎么办？

1. 所有者或管理员在 Duaer 的「设置」›「本地数据网关」里添加一个网关，复制令牌（只显示一次）。
2. 在内网一台能访问 SAP 的机器上，用页面给出的 docker run 命令运行网关，ALLOWED_TARGETS 填 SAP 的地址（例如 http://sap.internal:8000）。网关主动连到 Duaer，不需要在防火墙上开入站端口。
3. 网关显示「在线」并列出可访问的地址后，把“SAP S/4HANA API”凭证的系统地址填成同一个地址，点「检查系统」，会显示「经由网关」。

网关只访问 ALLOWED_TARGETS 里列出的地址，不跟随跳转，单次请求和应答最大 20 MB，60 秒超时，每次调用都在网关日志里留一行。网关离线时，检查系统和读取会提示网关离线，数据来源会暂停并通知设置人和所有者。不需要时在设置里撤销网关，令牌立即失效。

## 多久读一次，读多少？

每次运行读一类单据，最多 100 张：采购订单按最后修改时间，收货和发票按凭证号，付款按清账录入日期，各自从上次停下的地方接着读。四类读完一轮后按您设的频率再来；第一次数据多时会分多次读完。同一步骤不会重复写入。

## 有哪些限制？

- 只读，不往 SAP 写任何东西。
- 采购订单的审批时间 SAP 标准接口没有给出，暂不作为步骤；付款冻结也一样。
- 读取后才被冲销的发票，已写入的步骤不会撤回。
- 只支持用户名和密码（Basic）认证；S/4HANA Cloud 的 OAuth 认证暂不支持。本地部署的系统不对外开放时，要通过本地数据网关访问（见上一节）。

想看 Duaer 怎么把流程分析和事项跟进放在一起，打开 [Duaer 官网](https://www.duaer.com/)。
## Questions

### Duaer 支持 SAP ECC 吗？

暂不支持。目前读的是 S/4HANA（云版和本地部署）的标准 OData 接口。

### Duaer 会改动 SAP 里的数据吗？

不会。Duaer 只读这五个接口，不写入任何东西。

### 一定要五个接口都开吗？

采购到付款要这五个；订单到收款要销售订单、外向交货、开票和清账四个。缺了哪个，「检查系统」会把它和 SAP 返回的状态码列出来，补上权限后再检查。

## 相关

- [在 Duaer 里添加流程数据来源](https://doc.duaer.com/zh/build/process-sources.md)
- [在 Duaer 里从数据看出流程，并生成工作流程](https://doc.duaer.com/zh/build/process.md)
- [在 Duaer 里看流程发现和 SOP 符合度](https://doc.duaer.com/zh/build/process-findings.md)
- [让 AI 照着 SOP 推进工作：在 Duaer 里把 SOP 变成卡片规则](https://doc.duaer.com/zh/guides/sop-follow-through.md)
- [企业 AI 搜索和流程挖掘有什么区别：Glean、Celonis 与 Duaer](https://doc.duaer.com/zh/guides/ai-search-vs-process-mining.md)

