查看过账登记簿
过账登记簿是一个租户级控制台,独立于任何单个项目,财务和会计人员可在其中查看其有权访问的所有项目和连接中的 ERP 过账。ERP 过账历史的范围限定于您已有访问权限的某一个项目,而过账登记簿是为需要在同一处查看多个项目和连接的过账的审阅人构建的跨项目视图。
过账登记簿以审阅为先。两项批量操作(清除模拟过账和重试失败的过账)、详情抽屉上的单行重试、冲销,以及一次性冲销整个公司间运行,都可以让您直接在网格和详情抽屉中执行操作;AI 辅助帮助您更快地查找和理解过账;趋势、谱系、控制总计、关账和导出则让您分析数据、回溯到源头、封存期间并将数据导出。协作让团队可以一起评论、签核和关注某笔过账,而不会在通知中出现任何金额。
控制台是一个单一的停靠式工作区,而不是一组浮动窗口。左侧的导航栏会以就地窗格的方式打开各个屏幕,包括过账、模拟、异常、审批、委派、汇总、趋势、控制总计、谱系、导出和警报以及 AI 辅助。因此切换屏幕会替换工作区中央的内容,而不是在上一个窗口上再叠一个窗口。打开某笔过账后,其详情会从右侧滑入,而不会遮挡您正在处理的列表。
打开过账登记簿需要四个 Keycloak 领域范围之一:erp.register.view、.operate、.approve 和 .admin。它们是相互独立的授权,而不是逐级递增的阶梯:持有 .admin 本身并不授予 .operate 所授予的权限,每个变更状态或导出数据的操作都会明确检查其自身所需的范围,而不是从更高层级推断。
| 范围 | 授予的权限 |
|---|---|
erp.register.view |
打开登记簿并查看过账:异常队列、网格、汇总视图、趋势、谱系和 AI 辅助。这些操作都不会应用、导出或通知任何内容。 |
erp.register.operate |
所有变更状态或离开控制台的操作的基础权限:批量操作、发起冲销、为冲销请求审批、打开审批收件箱并对您有权限处理的请求作出决定、查看或交还委派、导出或安排投递、订阅 AI 辅助摘要,以及发表评论、签核或关注。受 .approve 和 .admin 控制的操作是在 .operate 之上额外要求的,绝不会取代它,详见下文。 |
erp.register.approve |
对达到或超过租户职责分离阈值的冲销拥有审批权限(直接持有此范围,或通过持有者的有效委派获得),以及处理卡住的冲销尝试(released 或 confirmed)。将此权限委派给他人同样要求您自己持有 .approve;使用、查看或撤销委派则不需要。以上均需同时持有 .operate。 |
erp.register.admin |
审计员导出和按时点读取配置(未屏蔽的金额和制单人身份),以及设置租户的保留策略,均需同时持有 .operate。还允许您删除或触发其他成员的计划。 |
持有 erp.register.* 范围可以打开控制台,但这本身并不会让任何过账可见。只有当您同时对该过账的连接持有个人连接授权,并且(过账属于某个项目时)有权访问该项目,过账才会在登记簿中可见。不属于任何项目的过账,仅由连接授权控制。
这是与上述登记簿范围分开的授权,两者缺一不可:
- 连接授权。 您需要是该连接的显式所有者,或被单独指名,或属于连接上指定的某个安全组成员,这与连接的安全模型所控制的授权相同。设置为
All Workspace Members的连接不会授予登记簿可见性。 该设置只是让所有人都可以使用该连接;它不是个人、分组或所有权授权,而登记簿明确要求其中之一。 - 项目访问权限,适用于属于某个项目的任何过账,与您其他项目工作所需的访问权限相同。
持有 erp.register.view 但没有任何连接授权的成员,会看到一个正确显示为空的登记簿,控制台会明确告知这一点,而不会看起来像出了故障。被撤销的连接或项目授权会在您下次加载页面时生效,不存在需要清除的过期可见性。
按角色看到的内容
Section titled “按角色看到的内容”控制台随角色自适应:您没有相应范围的导航栏条目或操作按钮会被隐藏,而不只是置灰,因此工作区始终只显示您实际能执行的操作。这反映的是服务器强制执行的规则,而不是取代它:
| 您持有 | 您看到 |
|---|---|
erp.register.view |
审阅屏幕:异常队列、网格、汇总、趋势、谱系、控制总计和 AI 辅助。 |
erp.register.operate |
增加操作按钮:重试、冲销和清除模拟过账。 |
erp.register.approve |
增加审批收件箱、审批决定和委派。 |
erp.register.admin |
增加保留设置和未屏蔽的审计员导出。 |
隐藏控件仅是展示层面的处理,目的是避免向您提供会被拒绝的操作。服务器始终是权威:每个变更或导出操作在您运行的那一刻,都会重新检查其自身所需的范围以及您的连接和项目授权。客户端显示了某个按钮并不意味着允许该操作,客户端隐藏了某个按钮也不意味着该操作真的被阻止。
打开登记簿时,您首先进入的是异常队列,而不是网格。它列出最可能需要您关注的过账,分为四个类别,并按优先级顺序显示:
- 存疑:过账已提交,但尚无任何信息确认其结果。
- 未确认:已提交,且已超过应当确认的截止时间。
- 待处理:异步过账,已超过应当完成的截止时间。
- 失败:被 ERP 拒绝。
每个类别在队列上方显示为一个计数磁贴,显示其实时总数,因此在打开任何内容之前就能看出工作量的分布。选择某个磁贴会将队列筛选到该类别,其他磁贴仍显示各自的总数,因此切换到失败不会让存疑的计数看起来是空的。
“超期”是按平台自身的计时器衡量的,而不是人为设定的阈值,因此过账归入某个类别的时刻,恰好就是平台本身认定其逾期的时刻。在每个类别内,最早的过账排在最前。
模拟过账不会出现在队列或其计数中。队列会说明排除了多少条,因此当模拟过账是计数偏低的原因时,不会被误认为“没有需要审阅的内容”。筛选到某一个类别只会缩小显示的行,不会改变其他类别的计数,因此切换到失败绝不会让存疑看起来为空。
适用与网格相同的可见性规则:您只能看到属于您被个人授权的连接、且位于您可访问的项目中的过账上的异常。
仍未完成的冲销
Section titled “仍未完成的冲销”通过 API 获取异常列表的 GET /erp/register/exceptions 还会报告第五个类别 reversal_outstanding:指已过账的分录,其冲销已发送但从未结清,即 ERP 没有给出答复,或尝试在分派过程中被中断。它与其他四个类别并列有各自的计数,与存疑一起排在最前,每一行会指明冲销尝试及其状态。这样的分录会一直留在列表中,直到按冲销中所述得到解决;它不会自行过期移出。
连接健康状况
Section titled “连接健康状况”异常队列和汇总视图(见下文)上方的横幅回答了二者单独都无法回答的问题:您的某个连接是否已经中断?对于您被个人授权的每个连接(且仅限这些连接),它会显示最近一次成功过账,以及该连接当前是否出错。尚无过账的已授权连接会明确说明这一点,而不是被遗漏在列表之外;如果健康检查本身无法完成,横幅也会如实说明,而不是悄悄报告一切正常。
登记簿显示的每个金额(网格、汇总、控制总计、详情抽屉、异常队列、审批收件箱、AI 辅助和冲销对话框)都以会计格式呈现:千位分隔符、负数用括号表示,并使用等宽数字,使一列金额按小数点对齐。小数位数遵循货币本身,而不是一律两位:日元不显示小数位,科威特第纳尔显示三位。
- 绝不跨货币对小计求和。 包含多种货币的分组或批次,在汇总视图和控制总计中都会拆分为每种货币一行,并各自标注其货币。平台中任何地方都不会假定汇率。
- 显示时的舍入绝不会掩盖真实差异。 如果按货币通常的小数位舍入会丢掉非零数字,详情抽屉会同时显示捕获的精确值和舍入后的值。控制总计中的数字出于同样的原因完全不做舍入:与容差比较的差额保持完整精度,因此像
0.004这样真正超出容差的差异,不会在“不平衡”的判定旁显示为0.00。
切换到网格可以查看所有过账,而不仅仅是异常。它列出您能看到的所有项目和连接中的过账,每笔过账一行。网格顶部有一个范围栏,您可以在其中缩小查看范围:
- 项目
- 环境
- 连接
- ERP 类型
- 实体
- 过账日期
- 状态
- 过账模式
若要自行构建 ERP 类型筛选器,GET /erp/register/erp-types 会返回您能看到的过账上的所有 ERP 类型,并已排序。
范围栏使用选择器:您从限定为您有权查看内容的列表中按名称选择项目、连接或实体,而无需输入标识符。状态是多选项,因此您可以同时关注多个状态。
过账模式是始终可见的三按钮开关,让您一眼就能看出数字包含哪些内容。实时仅显示已到达 ERP 的过账,模拟仅显示来自模拟模式运行的过账,全部(默认)两者都显示。网格的过账模式列显示每一行属于哪一种。Reconcile 和汇总屏幕有各自的过账模式选择器,选项相同,默认为实时。当模式不是实时时,金额合计旁会有一条说明:合计包含从未到达 ERP 的模拟过账;在模拟下则说明没有任何内容到达 ERP。您设置的模式在工作时始终显示在屏幕上,因此您不必猜测网格当前显示的是什么。
在网格中选择多笔过账,可以对它们一起执行操作。可以勾选各行来选择过账,也可以选择选择所有符合当前筛选器的行,这会覆盖筛选器在所有页面上匹配的每笔过账,而不仅仅是已经加载的那些。
提供两项操作:
- 清除模拟过账:对不再需要保留的模拟过账执行软删除。
- 重试失败的过账:重新发送被 ERP 拒绝或从未发送的过账。
在任一操作运行之前,PlaidCloud 都会显示影响预览:受影响的过账数量、涉及的金额(按货币分列,金额绝不会跨货币混合,未捕获的金额显示为空白,绝不是 0.00),以及受影响过账所属的连接和实体。所选内容中操作无法触及的部分会单独列出,因此“您选择的 30 笔过账中有 24 笔不会有任何效果”会在您确认之前就能看到,而不是事后才发现。
超过某个阈值时,在您输入与受影响金额完全一致的金额之前,应用按钮会保持禁用。
重试只针对您勾选的内容
Section titled “重试只针对您勾选的内容”清除模拟过账可以针对任一种选择方式运行,即勾选的行或匹配筛选器的所有内容。而作为批量操作的重试则不行:它只会针对您逐一勾选的过账运行。 筛选器范围的选择没有固定的过账列表可用来约束重试,因此重试会要求您将过账粘贴回来,并且除非您粘贴的内容与预览所示完全一致(相同的过账、无重复且数量相同),否则拒绝继续。正是这种绑定使确认保持可信:您确认的批次就是被发送的批次。
哪些可以重试
Section titled “哪些可以重试”只有被 ERP 拒绝或从未发送的过账才可以重试。仍在处理中、存疑或已过账的过账无法从这里重试。
在连接的 ERP 支持的情况下,PlaidCloud 会在重试之前直接询问 ERP:如果 ERP 已将该单据作为已过账持有,则拒绝重试,并建议改为冲销。如果 ERP 无法回答该检查,重试同样会被拒绝而不是冒险进行,它绝不会猜测。少数连接完全不支持此检查;对这些连接,重试依赖过账自身记录的拒绝信息。
重试需要 erp.register.operate,并且需要您对该过账的连接拥有自己的个人授权,也就是可见性规则要求您具备的、才能看到该过账的同一个连接授权。
从详情抽屉重试
Section titled “从详情抽屉重试”过账的详情抽屉在关注控件旁边也有自己的重试按钮,这是同样的重试,只是一次一行,且完全不必经过网格。它并非一键完成:打开后会显示与批量操作相同的影响预览,超过阈值时还会显示相同的输入确认挑战。重试路径只有一条,只是从两个入口进入。对于持有 erp.register.operate 的成员,该按钮显示在每一行上;抽屉在提供按钮之前不会预先判断某一行是否可以重试,因此,如果某一行最终被判定不符合条件(已过账、处理中或 ERP 已持有),预览会以服务器给出的原因拒绝,而不是悄悄隐藏。
清除模拟过账
Section titled “清除模拟过账”清除是软删除:PlaidCloud 会记录是谁在何时清除的,并且在启用应用之前要求填写原因。它会将过账从模拟预览存储和账簿自身的模拟日记账中移除,绝不会触及实时过账,也无法将其指向实时过账。
模拟过账视图
Section titled “模拟过账视图”模拟过账从导航栏以窗格形式打开,列出模拟存储中的内容,而无需您在主网格中去找模拟行。可以按连接、项目、环境或模拟运行 ID 筛选。
- 包括已清除默认关闭,与服务器自身的默认值一致:已清除的行是清除操作的审计记录,因此会短暂保留,所以视图打开时显示的是存储中仍然有效的内容,而不是它自己的历史。
- 从这里清除仍然要经过与网格上的批量操作相同的影响预览,绝不是一键清除,其范围限定为视图筛选器当前匹配的内容。
- 视图的摘要行还会报告与异常队列显示的相同的
simulated_excluded数字,即账簿中有多少笔模拟过账(账簿与模拟存储是不同的表)因为模拟行从未到达 ERP、因而永远不是异常而被排除在队列之外。
辅助会打开一个搜索框、一排主动卡片和一个逐行建议面板。面板上的每个数字都由登记簿自身根据您的实时授权计算得出;模型(如果已配置)只负责解释或起草,绝不会凭空编造数字或谓词。
用日常语言提问
Section titled “用日常语言提问”输入一句话,例如“上周 EMEA 连接中存疑的过账”,它会通过固定的对照表(而非模型调用)解析为登记簿自身的筛选词汇:解析只会缩小网格本来就会向您显示的行,绝不会触及您未获授权的行。模型唯一的作用是用一句话解释解析结果:说明它匹配了哪个字段,以及所得筛选器找到了您的多少行。
七张卡片汇总了值得一看的内容,每张都带有实时计数和限定在您自身授权范围内的示例行:待关账未结项、近似重复项、公司间净额非零差异、与上次关账相比的变化、ERP 中已确认、账龄和负责人以及已冲销。如果您的工作区配置了 LLM 连接,数字旁会有一句简短的叙述;没有配置时,卡片仍会完整显示,并说明缺少叙述的原因。卡片上未捕获的金额始终为空白,绝不是 0.00,与汇总视图遵循的规则相同。
选择一笔过账,会根据其状态得到两类建议:
- 冲销草稿,适用于任何过账:冲销它会是什么样子,包括连接的驱动程序是否支持冲销、需要与之匹配的控制总计,以及期间检查。这只是草稿,这里的任何操作都不会真正冲销任何内容。
- 失败指引,适用于被拒绝或存疑的过账:失败的原因、应当重试还是先修复源数据、要修复哪个字段,以及按下重试带来的重复风险。ERP 自己的错误消息是自由文本,因此它会在服务器端被归类为某个原因,而不会直接显示给您,这与让自由文本远离登记簿其余部分的规则相同。
摘要可按需预览上述卡片中与关账相关的子集(待关账未结项、账龄和负责人、近似重复项、公司间净额非零差异以及 ERP 中已确认),范围限定于该子集,显示为如果今天发送给您时的样子。切换开关可订阅或取消订阅;订阅仅存储您的成员 ID,因此,您之后失去的授权只会让对应的行从您的下一份摘要中消失,而不会泄露过期的视图。
冲销过账,即在 ERP 中创建一份新的、方向相反的单据,可通过详情抽屉的冲销控件进行,也可以直接通过 API 用于自动化。
- 资格取决于过账本身的状态(只有带有已确认 ERP 单据 ID 的已过账分录才能被冲销)、连接的驱动程序(Business Central、Oracle Fusion 和 Acumatica 完全不支持编程冲销,尝试时会明确告知),以及其上是否已有未完成的冲销尝试。抽屉会在您打开冲销时以及提交前的瞬间两次重新检查资格,因此,如果某一行在此期间已经过时(例如已有另一笔冲销未完成),会以驱动程序自己的话显示拒绝原因,而不是发出注定失败的请求。
- 冲销需要
erp.register.operate,并受输入确认挑战约束:在冲销解锁之前,您需要重新输入该过账自己的 ERP 单据 ID,该 ID 仅在浏览器中检查,绝不会发送。这与批量操作使用的影响范围确认模式相同,是一个安全提示,而不是审批步骤。 - 冲销时可以选择将新分录重定向到与原过账不同的目标期间:对 ERP 接受显式过账期间的适配器会予以采纳,对无法指定期间的适配器则以明确的错误拒绝。重定向仍可能落在与请求不同的期间: 某些适配器只有在分派之后才能得知是否采纳了重定向,因此抽屉仅在尝试已最终结清为已冲销之后才会说明落入的期间,绝不会更早,其他所有结果则以服务器自己的消息为准。严格的数据库闩锁可确保在有冲销尚未完成时,绝不会分派第二次冲销尝试,即使在分派过程中进程崩溃也是如此;ERP 拒绝时会自动释放该闩锁,因为没有创建任何内容。
- 无论从哪里发起,一次只能有一笔冲销。 从过账登记簿发出的冲销,与由工作流或项目级冲销 API 发出的冲销共用同一个闩锁,并且各自在持有闩锁后重新读取过账,因此一笔过账绝不会被冲销两次,无论是重新运行还是两个请求同时到达。
- 未知的答复会被保留,而不是猜测。 当 ERP 超时、返回服务器错误,或以 PlaidCloud 无法识别的方式作答时,冲销会被记录为
in_doubt而不是被拒绝,闩锁也保持持有。只有当冲销单据与原始单据互为镜像(相同的实体和币种、日期不早于原单据、每一行的借方和贷方对调)时,才会被视为该笔冲销;其他任何情况都保持存疑,等待您核查。 - 处于
pending或in_doubt的冲销(结果未知)会一直保持该状态,直到得到解决。对于 Workday 和 Dynamics 365 Finance & Operations,PlaidCloud 会在下一次尝试冲销该过账时,在 ERP 中查找处于in_doubt的冲销,并根据找到的内容予以结清。这些连接上处于pending的冲销,以及所有其他连接上任何未结清的冲销,则需使用抽屉的解决控件来清除,该操作除.operate外还需要erp.register.approve:由人工直接检查 ERP 并记录所发现的情况,即释放(那里没有创建任何内容,因此账簿不受影响,过账重新变为可冲销)或标记为已冲销(存在冲销单据,并填写其 ID)。这是清除该闩锁的唯一方式。将冲销标记为confirmed是永久性的,产品中无法撤销。
达到或超过租户所配置阈值的冲销,需要先获得审批才能继续,而审批是由审批人完成的操作,而不是提交人在请求中提供的名字。
- 制单人不得兼任复核人。 提交冲销的成员不能同时是其审批人,也不能是自己的紧急授权人。
- 按金额大小衡量。 阈值比较的是冲销的规模而不考虑符号:冲销贷方与冲销借方的衡量方式相同。
- 近期的冲销计入阈值。 滚动窗口会汇总提交人在同一连接上自己的冲销,因此无法通过把大额冲销拆成若干小额冲销来规避阈值。金额按绝对值求和而不是净额抵消,负数冲销与正数冲销不会相互抵消。
- 失败时默认拒绝。 如果窗口中的先前某笔冲销无法核实(例如未捕获金额或币种),则该冲销需要审批,而不是跳过检查。
- 审批人必须具备资格。 他们需要
erp.register.approve(或来自持有者的有效委派),以及对被冲销连接的个人授权。如果同时满足两项的成员少于两人,达到或超过阈值的冲销会被拒绝,而不是放行。 - 紧急授权(break-glass) 仍然是提交人可以直接指明由谁授权覆盖的唯一路径:这是真正的紧急情况,由独立于运营链条的授权人决定,该授权人持有
erp.register.admin但不持有.operate或.approve,并且对该连接拥有自己的授权,每一次覆盖都会被永久记录到审计跟踪中。 - 拒绝时不说明原因。 无论请求是没有合格的审批人、由错误的人作出决定,还是从未发起,冲销都会以相同的消息被拒绝。这是有意为之,使拒绝无法被用来摸清谁持有哪个角色或授权。实际原因记录在审计跟踪中,而不在错误里。
- 运行冲销需要每条腿各一次审批,而不是整个运行一次。 一次性冲销整个公司间运行并不会得到单一的运行级审批,每条腿都需要各自的审批,因为审批绑定到一笔过账、一个连接以及在该连接上拥有授权的一位审批人,没有任何一个名字可以绑定整个运行的所有腿。
- 冲销通过登记簿进行。 在启用职责分离期间,通过项目级 ERP 冲销 API(项目、用户定义函数或服务账户所使用的路径)请求的冲销,会在任何内容到达 ERP 之前被拒绝,并提示改为从过账登记簿冲销。登记簿没有捕获明细的分录同样无法在那里冲销,必须在 ERP 中更正。过账不受影响,Business Central、Oracle Fusion 和 Acumatica 仍会给出各自的原因,即它们不支持冲销。
开启职责分离及设置其阈值,由 PlaidCloud 为您的租户配置,目前控制台中没有对应的开关。
当阈值要求审批时,详情抽屉中与冲销并列提供的请求审批会将冲销路由给在该连接上持有有效个人授权的每一位审批人。没有需要指定的收件人,连接授权本身就是路由。审批人在导航栏的审批中处理队列:一个是等待其决定的请求收件箱,另一个是显示其本人提交的请求的队列。每一行都带有过账的金额、实体和期间,以及已等待的时间,因此作出决定无需先离开队列去查找信息。批准或拒绝需要填写一个原因,并与决定一同记录。
审批严格绑定到其被授予的内容,即过账、其连接、所述原因和目标期间,不能被重用于不同的冲销、不同的原因或更改后的目标期间;更改后的请求需要重新审批。一笔过账上同一时间只能有一个未结请求,审批一旦被兑现即告用尽。每次审批后会有一个短暂的保留期,在此期间审批人或提交人仍可取消;保留期一过,冲销可能已经成为 ERP 中的一份单据,没有任何办法撤销。冲销真正被应用的那一刻,所有内容都会再次检查,包括审批人的角色、双方对连接的访问权限,以及租户的两名审批人最低要求,因此先前授予的审批不会在审批人此后失去访问权限的情况下继续有效。
审批人可以在有限的时间窗口内,从导航栏的委派窗格将其审批权限委派给另一位成员。当审批人不在、而冲销仍需作出决定时,这很有用。授予委派需要 erp.register.approve;使用委派、查看自己的委派和交还委派只需要 .operate,因为典型的被委派人根本不持有审批人角色,这正是委派给他们的意义所在。
自我委派会被拒绝,互相委派(委派给已经委派给您的人)或任何更长的链条同样会被拒绝,这些都不予采纳,因此两位成员无法悄悄地让彼此的决定同时替两人生效,无论是直接还是通过中间一步。通过委派,制单人不得兼任复核人的规则依然适用:被委派人不能批准委派他的人所提交的请求,也不能批准自己的请求。被委派人作出的每一个决定,在审计跟踪中都记录为在委派审批人的权限下作出,而不是好像被委派人本来就持有该角色。
审批长时间没有决定时会发出警报,避免它在无人关注的队列里默默地变旧。每位收件人只会被告知他们自己真正可以决定的请求,同事的升级电子邮件绝不会提及路由到别人授权范围内的请求,并且警报不带金额和自由文本,与登记簿其他通知遵循的最小化原则相同。
公司间运行是为一次关账共同作出的一组过账,即它的各条腿,由当时盖在它们上面的关账日和序号标识,绝不是由产生它们的工作流运行标识。(该工作流运行 ID 单独保存在账簿自己的历史中,可能比过账的关账标记存在得更久,因此用它来标识运行并不安全。)您可以列出运行,打开某一个运行查看其各条腿的核对和配对情况,并将整个运行作为单一的受管控操作进行冲销。
目前只能通过 API 访问:GET /erp/register/runs、GET /erp/register/runs/{run_day}/{sequence} 和 POST /erp/register/runs/{run_day}/{sequence}/reverse,暂时没有控制台屏幕。
净额为零和配对
Section titled “净额为零和配对”打开一个运行,它的各条腿会通过两种方式核对,二者都限定于您被个人授权的连接,与登记簿其他位置遵循的可见性规则相同,因此横跨您只能部分看到的连接的运行,会被报告为部分可见,而不是不平衡。
- 净额为零,按货币:给出均衡、不平衡或不确定的判定,并列出每个净额背后的实体。除非该货币中的每一条腿都已捕获,否则该货币不算核对一致:只要有一条腿未捕获,整个货币就是不确定,绝不会只根据碰巧测得的部分计算净额。
- 配对会通过过账工作流在提交前盖在两边的配对键,将每条应付腿与其对应的应收腿匹配。匹配成功的一对在同一币种下净额为零;其余的都带有明确的原因:您看不到对方腿、金额未捕获、净额确实不为零,或跨币种,因为平台中没有任何汇率,所以跨币种只会被报告而不会被核对一致。
超过 200 条腿的运行太大,无法在一次响应中完成核对或配对:两者都会返回不确定,而不是针对被截断的部分运行进行计算,因此大型运行绝不会仅因自身规模而报告错误的平衡或错误的缺少对方腿。
通过 POST /erp/register/runs/{run_day}/{sequence}/reverse,一次操作冲销运行的每一条腿。
- 每条腿的资格都会预先检查。 任何可以事先得知的情况(状态、适配器支持、未完成的尝试、您自己的连接授权)都会在任何请求到达 ERP 之前就拒绝整个运行。
- 无法事先得知的情况会在事后按每条腿报告。 ERP 的实时状态和授权状态可能在运行中途发生变化,因此即使预检时一切正常,运行最终也可能是部分冲销。不会自动补偿:为了撤销部分失败而再过账更多单据,是比失败的那次写入更有风险的写入。部分完成的运行逐条腿修复,与单笔冲销的修复方式相同。
- 重新运行运行冲销是完成部分冲销的方式。 先前尝试已冲销的腿会被搁置而不是被拒绝,因此再次尝试只会冲销真正剩下的部分。
- 职责分离按每条腿适用,而不是针对运行总额。 当租户的 SoD 策略被强制执行时,在运行分派任何内容之前,每条腿都需要各自的审批,无论金额大小,而不仅仅是超过阈值时。这是有意采取的保守做法:每条腿自身的要求只能在分派的那一刻才能确定,这包括在运行自己的各条腿冲销时对其计数的滚动反拆分窗口,以及可能失败的实时 ERP 回读,因此预先要求所有审批,可以避免运行冲销了一半的腿之后,才在中途发现其余的腿也需要审批。
- 批量操作可通过一次调用覆盖整个运行。
POST /erp/register/runs/{run_day}/{sequence}/approval-requests会为提交人可以处理的每条腿发起一个审批请求,POST .../approval-decisions会对审批人有资格处理的每条腿作出决定,各用一次调用,而不是每条腿一个请求和一个决定(一个常规的 10 条腿运行需要 20 次调用)。底层的安全模型不变:每条腿仍然有各自的审批,绑定到该过账、其连接、原因和目标期间,审批人仍然需要对每条腿的连接有自己的访问权限;其无法授权的腿只是保持待处理,等待有资格的人处理,绝不会被一并纳入。完全没有审批权限的调用方会被直接拒绝,也不会得知哪些腿有未结请求。结果按每条腿返回,因此只能部分授权的运行会准确报告哪些腿已决定、哪些仍待处理,以及原因。 - 运行冲销不提供紧急授权(break-glass)。 它是对一笔过账的双人覆盖,把一位见证人的授权应用到整个运行,会使其乘以运行的腿数。请改为通过
POST /entries/{ledger_id}/reverse按每条腿使用紧急授权。 - 超过 200 条腿的运行无法作为一次操作冲销。 请改为从分录列表分批冲销。
趋势按连接或 ERP 类型分组显示失败率和延迟,以及冲销原因代码的分布,其中每个数字(包括每个分母)都是根据您自己的实时授权计算的。在窗口内没有任何终态过账的连接,其失败率显示为破折号,绝不是 0%,因为完美的零会让一个无人使用的连接排在健康列表的首位。延迟是对最近终态过账的有限样本,会标注为样本,而不会被呈现为覆盖了整个窗口。冲销原因只显示其结构化代码,人工输入的自由文本原因绝不会在这里被分桶或显示。
谱系可以从某笔过账回溯到产生它的工作流运行,并进一步链接到 ERP 本身中的单据。可以按运行 ID 或过账的账簿 ID 查找;按账簿 ID 查询时,会先通过您自己的授权解析运行,因此您无权查看的连接上的过账解析不到任何内容,而不会暴露它来自哪个运行。在 PlaidCloud 能够验证该适配器的 ERP 单据 URL 格式的情况下,谱系包含直接指向该单据的深层链接;如果无法验证,或过账从未被确认,则会说明是哪种原因,而不是猜测链接。ERP 的业务键仍然不会出现在这里:谱系键是工作流的 run_id,ERP 指针是 confirmation_id,与登记簿其他位置相同。
请求关账可以将一个期间(针对一个或多个连接和实体)封存为不可变的时点快照:登记簿在那一刻对这些过账所了解的全部内容,即使实时行之后被重试、冲销或清除,也会被保留。它面向已锁定的会计期间,在这种场景下您需要的是一份站得住脚且不再变化的记录,而不是实时网格今天所显示的内容。目前只能通过 API 请求或读取关账;暂时没有控制台屏幕来请求或浏览关账。
请求关账(erp.register.operate)是租户范围的管理操作,而不是个人操作:您指定的连接和实体就是被封存的那些,与您自己的连接授权无关。对已关账的期间重新关账绝不具有破坏性:它总是生成一个新的、单独编号的修订版本,而不是覆盖上一个版本。
关账生成之后,读取它时适用登记簿的常规规则,这些规则在每次读取时都会实时重新解析,而不是在封存时固化到快照中:您只能看到您当前被授权的连接和项目上的行。实时网格会向任何能看到该行的查看者显示金额和制单人身份,而关账的数字则不同:除非您持有 erp.register.admin,否则都会被屏蔽,这与导出适用的规则相同。关账还会报告自己的迟到计数:在关账高水位线之后提交或更改、因而未被捕获到封存内容中的过账,只能通过为同一期间请求新的关账才能看到,因为没有任何操作会重新打开旧的关账。
导出和警报是登记簿以文件或通知的形式离开控制台的地方,也是 PlaidCloud 的控制措施在字节离开的那一刻便不再适用的唯一界面。生成导出或安排投递需要 erp.register.operate;打开登记簿查看则不需要。
将您当前查看的登记簿导出为适合 Excel 的 CSV 或 JSON,在您自己的实时授权下全新构建。根据您的角色,适用两种屏蔽配置:
erp.register.operate获得标准的屏蔽配置:金额和制单人身份会被隐去。erp.register.admin获得审计员配置,这是唯一携带未屏蔽的金额和制单人身份的配置。
每次导出都遵循与登记簿其余部分相同的规则:natural_key 绝不出现;自由文本字段(评论、维度和 worktag 值)会被直接排除而不仅仅是被清除敏感信息;未捕获的金额为空白,并与被屏蔽的金额区分开,因此,当空白实际上意味着“您的角色看不到此项”时,绝不会被读成“没有过账任何内容”。
创建一个计划,包含筛选器、频率、格式,以及按成员列出的收件人,或者一个不含任何行内容的 Slack 连接通知。提供两种类型:
- 导出:定期以 CSV 或 JSON 投递筛选后的登记簿。
- 警报:由三个条件之一触发的通知,即实时过账失败、授权超期或过账冲销。订阅之前,可以预览某个触发条件当前会为您匹配到什么。
每位收件人的文件都是在发送的那一刻根据他们自己的实时授权构建的,而不是计划所有者的授权,因此同一计划上的两位收件人可能收到两份不同的文件;如果收件人此后失去了导出角色、失去了所有连接授权、被停用或没有登记电子邮件地址,则会被单独跳过并说明原因,而不是悄悄丢弃。只有计划的所有者或 erp.register.admin 才能删除或触发他人的计划。
配置登记簿保留三类历史记录的时长:已捕获的负载明细、模拟过账和审计跟踪,每一类以天数表示,作用于整个租户,需要 erp.register.admin。每次调用都会写入所有字段;省略某个字段会清除该期限,而不是保持不变;未配置的租户会保留所有内容(每个期限都读取为 null,而不是隐藏的默认值)。
根据此策略执行的保留扫描现在每天自动运行一次,作用于整个租户。它使用的周期性作业机制同样驱动定时导出和警报、将逾期的过账归入异常队列,以及使旧的模拟过账过期。
汇总从导航栏以窗格形式打开。按运行、期间或连接对登记簿进行分组,查看小计和状态汇总,而不是单独的行。分组方式是窗格顶部的分段控件,因此您可以就地在按运行、按期间和按连接之间切换,而无需重新打开任何内容。
- 空白金额保持空白。 没有捕获金额的过账(每一笔 SAP 过账、天生即为终态的过账,或在此功能出现之前写入的过账)不会为小计带来任何内容,也绝不会显示为
0.00。每个分组会用文字说明其中的每笔过账是否都已捕获、部分未捕获,还是都未捕获。 - 货币绝不会混入同一个合计。 PlaidCloud 不做任何外汇换算,因此跨多种货币的分组每种货币一行,而不是一个混合的数字,参见金额格式。
- 被截断的分组列表合计仍然正确。 如果分组产生的分组数多于视图显示的数量,合计行仍然覆盖每个分组,而不只是显示出的那些,并会说明这一点。
连接健康状况横幅也会显示在此视图上。
控制总计从导航栏以窗格形式打开,覆盖可见性规则已为您限定的同一批连接和实体。它将过账分组为批次,并为每个批次给出三态判定,即均衡、不平衡或不确定,并附上服务器自己给出的原因,绝不会只给出一个光秃秃的词。
- 不确定是一个真实的答案,而不是软性通过。 只有批次中的每一行都被测量且各组一致时,批次才是均衡的。空窗口、未捕获的金额、发送后不再跟踪的适配器,或在读取整个批次之前就被截断的扫描,都会返回不确定,并写明原因,绝不会默认显示绿色。
- 金额是空白,绝不是零。 当金额未被捕获或确认时,分组的源总额、已过账总额及其差额都是空白,规则与汇总视图相同,因为捏造的
0.00会低估未测量的批次,同时读起来却像是权威的数字。 - 分组按货币和实体划分,绝不会相加。 PlaidCloud 不做任何外汇换算,因此跨多种货币或实体的批次会并排列出每个分组各自的合计,而不是混合在一起,这些数字的呈现方式参见金额格式。
- 早于捕获的行归入自己的
(no batch id)桶。 在批次捕获出现之前写入的过账,无法被重新归入从未包含它的批次,因此它会显示为独立的一行,而不是被并入或丢弃。
同一次读取还涵盖两个相关问题:期间关账就绪状态,按实体和期间统计,对于平台尚无数字的桶(例如转换关账时早于捕获的行),会降级为不确定而不是错误的受阻;以及确认偏差,按单据而不是按分组报告,因为同一个货币/实体分组内两份朝相反方向偏差的单据,可能在总额上相互抵消,从而掩盖两者。
详情抽屉停靠在工作区的右侧,因此在您阅读某一笔过账时列表仍然可见。可以通过行的放大镜图标、在选中行上按 Enter,或双击该行来打开。它按选项卡组织:
| 选项卡 | 显示内容 |
|---|---|
| 日记账 | 过账的借方和贷方行,以会计人员的方式呈现。参见日记账选项卡。 |
| 请求/响应 | 出站请求和 ERP 的响应,已按数据最小化要求过滤(见下文)。 |
| 错误 | ERP 或过账步骤返回的任何错误。 |
| 时间线 | 过账的各个状态,按顺序从提交到当前状态。 |
| 相关 | 原始过账及其冲销(如果存在)及二者之间的相互链接。 |
| 审计 | 对该过账活动的只读记录。目前内容较少,参见下文的审计选项卡。 |
| 注释 | 针对该过账的线程化评论,可通过成员 ID @提及。参见协作。 |
| 签核 | 过账当前的审阅状态(已审阅、已清除或需要跟进)及其完整历史。参见协作。 |
日记账选项卡
Section titled “日记账选项卡”日记账选项卡以会计人员的方式呈现一笔过账,即按科目显示其借方和贷方行,而不是原始的请求负载。
- 只显示各 ERP 实际捕获的列。 该选项卡只显示给定系统发送的字段,不显示其他字段:Acumatica 的过账会显示其子科目,而从不发送子科目的系统则根本不显示空的子科目列,因此您不必扫过永远不会有内容的列。
- 维度和 worktag 位于每一行下方。 行的分析明细(其维度,或其 Workday worktag)显示在其所属的行之下,而不是挤在顶部的多余列中。
- 每种货币的合计,并带有精确的平衡检查。 每种货币单独合计;该检查绝不会混合货币,也绝不会把不平衡的过账舍入为零,因此真正的不平衡会以其本来的数字显示,而不会消失在
0.00中。 - 不捕获行明细的适配器会如实说明。 如果驱动程序(例如本地部署的 SAP)不记录逐行明细,该选项卡会明确说明这一点,而不是显示一个您可能误读为“没有行”的空网格。
在异常队列中,上、下方向键会从一笔过账移动到下一笔,详情抽屉随选择而变化,因此您可以完全用键盘完成整个分诊过程,依次阅读每笔过账的详情,而无需使用鼠标。
主网格则有意保留鼠标选择、Enter 和双击:它的多行选择驱动着重试和清除模拟过账之类的批量操作,因此那里的方向键移动的是选择,而不会让抽屉遍历每一行。
无需离开登记簿即可与团队一起处理过账:评论并 @提及、记录签核,或关注某个连接或某个运行的后续活动。
- 评论是针对某一笔过账的线程化纯文本备注,来自其注释选项卡。按成员 ID @提及同事,他们会收到通知,前提是他们当前能看到该过账;这一检查在发送时重新进行,绝不会根据被提及的人想当然地假定。
- 签核记录三种状态之一(已审阅、已清除或需要跟进),可附带备注,并保留谁在何时设置了什么的完整历史。它只是记录,而不是门槛:目前没有任何内容会因其签核状态而阻止过账或冲销。
- 关注某个连接或某个运行(两个独立的开关),以便收到今后任何一方活动的通知。
发表评论、签核或关注需要 erp.register.view 和 .operate;读取这些内容只需要 .view。
登记簿的设计目标是展示审阅人确认一笔过账已发生所需的内容,而不暴露过账步骤为此处理的敏感数据。
- 请求和响应负载按适配器设置允许列表。 只有被明确归类为可安全保留的字段才会出现。银行账号、路由号码、IBAN、税号和其他个人标识符在您看到负载之前就已被剥离。
- ERP 业务键被完全隐去。 它可能嵌入供应商名称或其他引用令牌,因此绝不会到达登记簿,包括 AI 辅助:决定您能看到什么的同一份允许列表,也决定模型提示词能看到什么,负载中任何位置出现的自然键值都会被直接拒绝而不是被发送。请通过账簿 ID 标识一行,并使用
confirmation_id作为 ERP 指向该单据的指针,它与 ERP 过账历史中称为confirmation_id的是同一个字段。 - 自由文本字段在读取时按模式清除敏感信息,并被完全排除(而不仅仅是清除)在摘要、任何 AI 模型提示词和任何导出之外。模式清除可以捕获 IBAN 或税号这类形态,却无法捕获备注中输入的供应商名称,这就是为什么任何以文件形式离开控制台的内容都会直接丢弃这些字段,而不是仅依赖清除。
审计选项卡仅用于显示。本版本中它的内容有意保持精简,因为底层的审计词汇尚未分类,随着这项工作的推进,内容会逐渐丰富,但不会改变您阅读抽屉其余部分的方式。
本页中的其他所有功能(异常队列、连接健康状况、汇总视图、批量操作、单行重试、冲销、控制总计、AI 辅助、趋势、谱系、关账、协作和导出)目前均可使用。