Files
ARR-2.0-0918/integrations/ohip/arr-finance-platform-request-20260917.md

20 KiB
Raw Permalink Blame History

发给平台同事ARR 财务报表接口核验与原需求更正

2026-09-18 更正:四个候选操作尚不能作为封装需求

最新业务要求:输出不限 XML。 优先解决系统稳定取得 Oracle 按既定日期及选项生成的 ARR 原报表。其他格式只要保留后续处理所需内容,也可评估采用;具体可选格式以该报表实际支持为准。收到真实文件后再评估解析适配,当前不开发转换或替代生成方案。原始参数表中的 XML 要求已按此放宽,其余业务参数不变。

撤回原文中“请补 4 个候选操作、可以先封装并实测”的开发建议。 getAPIVersiongetServerInforunJobgetJobInfo 确实存在于 Oracle 官方文档,但属于 Oracle Reports Web Service。当前尚无证据证明 OPERA Cloud 的本酒店 ARR 可以通过该服务运行。不能用封装完成或本地模拟通过弥补这项缺失。

此前需求把“官方有这种能力”提前推进成了“本项目应当封装它”,这一接口选型由 ARR 项目侧负责纠正,不要求平台同事重复查公开资料,也不要求用户先提供 WSDL 才继续研究。

重新核对官方资料后的结果

我们要完成的事 Oracle 已核实的接口或说明 当前结论
找到报表及其配置 getReportsGET /rep/config/v1/reportsgetAllReportsGET /rep/config/v1/allReports OPERA 官方接口;平台已有相关读取能力,测试环境已找到 res_detail
读取接口公开的参数定义 getReportParametersGET /rep/config/v1/reportParameters OPERA 官方接口;目标报表仍返回空参数,不能由此推定日期和选项可以省略
新建或修改保存的报表配置 postGenericReportschangeGenericReportsPOST / PUT /rep/config/v1/genericReports 保存配置,不是启动生成;不列为当前新增封装需求
系统提交日期、选项并启动 ARR 本次核对的 OPERA 报表配置模块没有此操作;通用 Oracle Reports 的 runJob 只作为研究线索保留 仍未找到已证实适用于 OPERA Cloud ARR 的公开入口,暂不能给平台一份确定的生成接口清单
查询生成状态、取得文件 通用 Oracle Reports 提供 getJobInfo,但同样缺少本环境适用证据;其官方说明明确 Web Service 不返回报表原件 本批优先查清生成入口,取回文件随后核对

本次直接核对的官方 REPCFG 定义标记为 26.3.0.0,共 12 个操作包含报表配置、参数、文本、统计配置及服务状态没有报表运行操作。这是该公开模块的核验结论不能扩展为“Oracle 所有产品和环境都没有生成接口”。

依据:Oracle 官方 REPCFG 接口定义Oracle Reports Web Service 操作说明OPERA Cloud 生成报表使用说明。最后一份说明证明页面可以生成、下载报表,不是外部系统调用接口的说明。

业务目标、已确认参数、同酒店两部门的分工不变。目前没有新增一项“已证实适用、可以直接封装”的 ARR 生成接口。后续只有找到适用入口及明确请求、返回说明,或取得可验证的现有服务证据,才重新发布具体封装清单;不以咨询 Oracle 作为默认前置条件,不采用页面点击或业务数据拼装来替代。

后续只读核验:计划报表确实覆盖 ARR但调用入口仍缺

  • Oracle 26.1 的官方演示文字稿直接以 Arrivals: Detailed 为例,演示设置报表参数、日期、周期和投递目标。因此“原生 ARR 可以自动生成”有明确的产品依据,不只是通用报表产品的推测。
  • 26.1 计划报表说明列出固定日期或动态日期、单次或重复执行,以及 Email、Printer、SFTP 目标;可选格式包括 PDF、HTML、RTF、XML、Delimited、Delimited DataExcel 限部分 BI Publisher 报表。该说明没有给出外部系统提交或强制运行这些计划的 API。不能将界面中的 Run Reports 当成已发布接口。
  • 经现有平台 getOperaSettings 只读调用GET /api/v1/config/opera-settings?parameterNameWildCard=REPORT,平台和上游均返回 200酒店 OHIPSB02REPORT_SCHEDULER 值为 Y。请求编号:30d7a9ad-7317-464d-a9de-f95dcdb45eff。这只证明测试酒店已开启功能,不证明任务已经生成、投递成功或生成接口对外开放。
  • 同次返回的 REPORT_APPLICATION_SERVER_NAME 没有 value 字段,未提供可验证的报表服务地址;不能据此断言服务不存在。
  • 当前平台目录 0.11.0 按 schedule 检索返回 getScheduledReportsExportLOV,它的契约明确为只读选项查询,不能执行、创建计划或下载文件。目录请求编号:7f54058e-c0fe-490f-8aa2-be1d8485e53a;单项契约请求编号:3b590026-030e-44ce-86ec-13bc80ea24bd
  • 补查官方 OPERA Cloud 报表、调度及通用 Oracle Reports 服务资料后,仍未取得证明当前 OPERA Cloud ARR 可通过 RWWebService/runJob 外部调用的文档。其候选状态不变,不发布封装任务。

“Oracle 预设计划自动生成 → 邮件或 SFTP 接收 → 原件存 OSS → 按日期取件”可以作为有产品依据的备选,但尚未在当前环境完成生成/投递验证,也不等于当前目标中的“系统传参、立即启动”。采用前需要明确这项产品差异,本轮没有切换方案、创建计划或发送文件。

以下为 2026-09-17 原始方案,保留作历史记录

以下原文中的“请封装”、建议平台路由及交付阶段均已被上面的更正取代,不能直接用于安排开发。

日期2026-09-17。业务方同一家酒店的财务部共用平台OHIP 封装平台

这次请补 Oracle Reports 的 4 个候选操作:getAPIVersiongetServerInforunJobgetJobInfo,让 ARR 项目能通过平台在测试环境验证“提交日期和选项 → Oracle 生成 ARR”。本批先做到生成完成文件取回、OSS 和处理链后续再接。

这 4 个操作有 Oracle 官方说明,但尚未证实当前 OPERA Cloud 环境开放该服务、且允许运行 res_detail。可以先封装并实测,不把咨询 Oracle 作为开工条件;封装完成、本地模拟通过、真实 Oracle 生成成功分别记录。

1. 整个项目的背景和分工

我们正在为同一家酒店的两个部门接入 Oracle两个业务项目使用同一个 OHIP 封装平台,各自保留应用、凭据和业务规则。

部分 业务目标 当前情况
预订部 读取邮件及 Excel形成确认后的 GROUP/FIT 任务,通过接口建单、改单、取消、转换类型,再查询结果 最近核验的平台目录为 0.11.0184 项;此前所需的 5 个核心接口和 3 个建议只读接口均已发布。预订项目已完成本地适配及隔离测试,尚不等于真实酒店全流程验收
财务部 ARR 系统提交日期和报表选项,由 Oracle 生成 ARR 原件,再接入现有财务处理链 人工上传原始 XML 后的处理、验证、入库和下游报表链已有;报表目录与参数读取接口已发布,原生生成入口待测试
接口平台 对接 Oracle封装稳定的调用入口提供目录、参数、权限、返回结果及错误信息 两个部门复用平台能力;某个接口未进入平台目录,不等于 Oracle 没有该接口

预订部此前的 5 个核心接口为 postProfileputBlockAllocationgetNextBlockStatusputBlockStatuspostCancelReservation3 个建议只读接口为 getBlockPMReservationsgetOperaSettingsgetProfileRelationships这些已发布接口不用为本次财务需求重复封装。

预订部已取消“把邮件 Excel 上传或替换到 Oracle 附件”的需求,邮件 Excel 的读取解析仍保留;这项变更不影响财务部将报表原件存入 OSS。

协作方式沿用预订部:

  • 业务项目侧负责理解业务、查 Oracle 公开资料、整理参数与接口对应关系、接入最终平台契约并核验结果。公开资料研究不推回给平台同事重复做。
  • 平台同事负责接口封装、上游连接配置、发布目录和 OpenAPI交付可调用地址及实际响应。
  • 用户转交接口需求、协调发布,并按明确步骤操作上传、确认、重启等验收动作。业务参数已确定,不反复询问。
  • 按“输入什么 → 调哪个接口 → 返回什么 → 实际结果如何”逐层确认,不用测试数量代替业务完成情况。

2. 财务部的目标和本批范围

最终流程:

系统计算并提交具体日期和报表选项 → Oracle 生成 ARR → 接口取得 Oracle 原件 → 阿里云 OSS → 现有 ARR 程序处理、验证、入库 → 下游日报/月报。

本批交付集中在:

  1. 平台能够调用候选报表服务。
  2. 平台能够提交一次报表生成请求并保留任务编号。
  3. 平台能够查询该任务的生成结果。

本批不要求下载文件、接 OSS、调整财务处理器或改下载按钮。ARR 按钮继续只承担日期提交与状态展示。

财务项目后续可复用现有的原 XML 处理、独立验证、入库、OSS 存储、下游报表及任务状态框架。现有下载执行器曾走“采集业务数据 → 适配生成 XML”不能直接作为原生下载器Oracle 原件链路确认后,由财务项目侧替换这段执行逻辑,不要求平台同事修改 ARR 程序。

对此前错误方向的更正

如果之前收到过要求补齐姓名、历史房号、公司显示、套餐组合或排序映射的 ARR 说明,本次不再按这些项目推进报表重建。财务目标是让 Oracle 运行报表,不是查询多种业务数据后自行拼出 XML也不采用模拟点击 OPERA 页面。

已有接口、历史代码和核验记录保留它们不能作为“ARR 原生生成已经接通”的证明。

3. 测试环境与已确认的报表

项目 当前信息
财务消费应用 Wyndham-ARR2.0-Codex
本地阶段 ARR 和预订项目均在测试、联调阶段,不要求先接生产酒店
已调用的 Oracle 测试酒店 OHIPSB02
原始 XML 样本酒店 57106;与 OHIPSB02 不是同一数据集,不能逐笔对账
测试环境已找到的报表 Arrivals: Detailed,内部名 res_detail
测试环境报表配置编号 183106,类型 ModuleId;这是配置编号,不能直接当作 runJob 的报表文件名或任务编号
报表类型与参数表单 返回 Repres1;尚未确认有名为 ARR 的独立配置实例
参数读取结果 183106 返回空数组;同环境另一报表可返回 11 个参数。ARR 配置及参数暴露方式待核对,空数组不作为接口不支持的结论

报表发现通过 getGenericReportsLOVgetAllReports 完成。平台已有 getReportsgetReportParameters 等读取能力,无需把它们重新列为本批缺项。

本机 8873 是原 XML 重放,8874 是本机模拟及录像实例。两者不证明 Oracle 生成已接通,本批不操作或修改 8874

4. 请封装的 4 个 Oracle 操作

这四项属于 Oracle Reports Web Service采用 SOAP,不是 REPCFG 的四个 REST 路径。官方服务地址形式为:

{实际 Oracle Reports WebLogic 服务地址}/reports/rwwebservice

请按实际服务 WSDL 确认地址、SOAP 绑定、命名空间及消息结构。不要直接将此路径拼到 OHIP 网关后,也不要把文档中的示例主机、服务器名或账户当成测试环境配置。

# Oracle 操作 业务用途 Oracle 原生输入 必须保留的返回内容
1 getAPIVersion() 检查是否连到报表服务 Oracle 返回的版本及真实调用结果
2 getServerInfo(serverName, authId) 确认指定报表服务器可访问 serverName;受保护服务器需要 authId 服务器身份、版本、状态或原始错误
3 runJob(commandLine, synchronous) 指定报表及运行参数,启动一次生成 commandLine 为完整运行参数;synchronous 控制同步/异步,联调建议采用 false 本次任务编号、服务器、报表名称、状态及错误信息
4 getJobInfo(jobId, serverName, authId) 查询本次生成任务 jobIdserverName;受保护服务器需要 authId 原始任务状态、运行的报表、开始/结束信息及错误

runJob 的官方返回是任务信息,不能把返回的 SOAP/XML 消息当成 ARR 报表原件。getJobInfo 的状态查询也不等于文件下载。

官方依据:服务入口与 WSDL四个操作的定义及返回示例

平台侧建议的路由形状

以下仅是本次建议,尚未发布,也不是 Oracle 原生路径。平台可沿用自身命名规范,最终以交付的 OpenAPI 为准。

建议平台路由 对应 Oracle 操作
GET /api/v1/reports/runtime/version getAPIVersion
GET /api/v1/reports/runtime/server getServerInfo
POST /api/v1/reports/runtime/jobs runJob
GET /api/v1/reports/runtime/jobs/{jobId} getJobInfo

实际报表服务地址、服务器及凭据由平台配置管理。现有 OHIP 网关凭据是否可用于该 SOAP 服务尚未确认,需支持独立配置并用实际响应验证。凭据不进入调用结果和普通日志。

runJob 的参数承载方式已经明确ARR 每个选项对应的真实参数名、可用编码及日期格式还未全部取得。请保留官方运行参数的表达能力,不先硬编码虚构的 ARR 字段;服务身份等平台配置与业务报表参数分开处理。

5. ARR 已确定的业务参数

这些是目标报表的运行要求,供后续映射与验收,不是要求拆成预订、客人、房号等查询接口。

项目 确定值
Report Name ARR
Report Arrivals: Detailed / res_detail
Reservations ALL Reservations
Room Assignment ALL Reservations
From Date / To Date 两者相同。日常由业务系统计算 T1 后传入明确日期;生成执行器接收该日期,不自行计算昨天,也不永久固定为某次测试日期
Room Type ALL CODES
Membership Type ALL CODES
Preferences ALL CODES
Rate Code ALL CODES
Inventory Items ALL CODES
Source Code ALL CODES
Market Code ALL CODES
Arrival Time 00:0023:59
Display 勾选 Room NumberNotesInclude Internal Notes
Note Types Resv. - GEN
Traces 不需要
目标输出格式 XML
其他排序或选项 未指定的不自行增加

表中是 OPERA 的业务显示值接口参数名、日期格式、ALL 的编码、复选框取值及 Note Type 编码以实际报表定义为准。不得把界面文字直接猜成可执行参数。

参考:Oracle 对 RES_DETAIL、res1 和参数配置的说明

6. 封装时需要保持的行为

  1. 保留真实上游结果。 HTTP 成功不等于报表生成成功返回任务编号、Oracle 原始任务状态、SOAP Fault/业务错误、平台请求编号,方便定位到同一次调用。
  2. 提交与完成分开。 runJob 返回排队或运行中,只能显示“已提交/生成中”;getJobInfo 确认成功后才显示“生成完成”。
  3. 未知结果不重复创建。 提交超时或丢回执时保留原调用身份及已知任务编号,按已有机制核查;没有任务编号时标为待核查,不自动重新提交。
  4. 错误不能伪装成空结果。 地址未配置、连接失败、登录/权限失败、报表不存在、参数错误分别保留证据。某个地址返回 404也不能扩展成“Oracle 所有环境都没有此接口”。
  5. 本地模拟与真实上游分开标记。 模拟服务返回的任务编号只能证明本地调用流程,不能证明 Oracle 接受了 ARR。相同请求在两类环境中的结果要能区分。
  6. 沿用应用隔离和现有调用记录。 请交付这四项操作对应的能力组。运行报表是提交动作,不能直接推定现有 configuration.read 已覆盖;本需求单不代替实际授权操作。

以上复用平台现有能力,不要求新增一套通用调度系统,也不需要封装 killJob 或周期计划功能。

7. 发布后请回传的材料

请按预订部接口交付方式提供:

  • 更新后的 catalog/OpenAPI、版本、四个操作的平台路由和能力组。
  • 每个操作的请求、返回结构及一份脱敏示例Oracle 原生字段与平台封装字段分开标注。
  • 当前配置连接的是本地模拟服务还是实际 Oracle实际 Oracle 服务地址、服务器身份及鉴权方式的非秘密说明。
  • 连接检查结果;若未配置或上游不可达,明确是哪项尚缺,不用模拟成功替代。
  • 如已进行生成测试,提供测试酒店、提交的报表与业务日期、任务编号、最终状态及请求编号;不发送账户密码、令牌或客人明细。

平台如采用与本需求建议不同的路由、参数或返回结构给出最终契约即可ARR 侧负责适配。

8. 联调顺序和完成标准

阶段 要验证的内容 达到后可以怎样汇报
A. 封装发布 四个入口已发布,契约完整;本地模拟能够提交和查询任务 “候选接口已发布,本地调用流程通过”
B. 实际服务连接 版本与服务器查询来自实际 Oracle确认访问身份及目标环境 “报表服务连接通过”,仍未证明 ARR 可以运行
C. ARR 生成 使用已核实的报表运行标识、参数及明确日期,提交一次 ARR保留任务编号并查询至结束 成功时汇报“指定日期的 ARR 生成任务已成功”;失败时按实际错误继续修正
D. 原件与财务处理 取得原件、存 OSS、验证参数效果和内容再接现有 ARR 处理链 后续批次;本批不宣称端到端完成

本轮最终要解决的是 C。若只有 A 通过,就继续针对真实上游缺项处理,不能把本地生成的样例当成 Oracle 原件。

真实服务地址、身份、报表运行标识和具体参数是测试所需输入。公开文档已有的部分由业务项目侧查证;现有配置及调用错误能验证的部分直接测试,不把咨询 Oracle 作为默认前置步骤。如果实际环境未开放该候选服务,记录证据后再决定下一条原生接口路线。

9. 背景依据与状态说明

  • 本需求吸收了预订部任务“对接OHIP”的最新已完成交付平台先发布明确接口业务项目按最终契约接入由用户按步骤验收。预订部新操作和财务部报表操作分别验证不共享完成结论。
  • 平台目录版本及预订部交付状态采用 2026-09-17 已取得的结果;后续变化以新交付为准。
  • Oracle 官方 REPCFG报表配置接口定义。它证明报表配置/参数读取能力,不能据此认定具备生成能力。
  • RWWebService 文档证明四个候选操作存在;它没有证明当前 OPERA Cloud 租户开放这些操作。这一点通过上述测试核实,不作为停止封装研究的理由。
  • 本文是供转发的财务部本批需求,不代表已发送消息、已修改平台权限、已启动 Oracle 任务或已变更现有运行环境。