# rpa_oms 订单中心四接口。本期只开放接口 1:销售商品对码数据接收。 - 路径:`POST /api/oms/v1/sales-goods` - 鉴权:header `X-Oms-Token`,环境变量 `OMS_INBOUND_TOKEN` - 落表:`rpa_sales_goods_mapping_data`(`deal_flag=0`) - 请求里不跑选品 ## 本地(内存仓库) ```bash cd rpa_oms uv sync --python 3.12 export OMS_INBOUND_TOKEN=dev-oms-token export OMS_REPO=memory uv run uvicorn app.main:app --reload --port 8001 ``` ```bash curl -sS http://127.0.0.1:8001/api/oms/v1/sales-goods \ -H 'Content-Type: application/json' \ -H 'X-Oms-Token: dev-oms-token' \ -d @examples/sales_goods_batch.json ``` 单测:`uv run pytest -v` ## 真库 Oracle 11.2 需要 Instant Client(thick)。密码只放环境变量。 ```bash export OMS_REPO=oracle export OMS_INBOUND_TOKEN=... export RPA_ORACLE_HOST=192.168.12.244 export RPA_ORACLE_PORT=1521 export RPA_ORACLE_SERVICE=rpa export RPA_ORACLE_USER=rpainit export RPA_ORACLE_PASSWORD=... export RPA_ORACLE_THICK=1 # 如需指定 Instant Client 目录: # export RPA_ORACLE_CLIENT_LIB=/path/to/instantclient ``` 缺 `RPA_ORACLE_HOST` / 用户 / 密码时,收件接口回 503。 ## Windows 真库 本机 Mac 打不到 `192.168.12.244`,连库测试在 Windows 上做。Python 3.12 + Instant Client(位数一致),密码不要写进仓库。 PowerShell: ```powershell cd rpa_oms uv sync --python 3.12 $env:OMS_REPO = "oracle" $env:OMS_INBOUND_TOKEN = "dev-oms-token" $env:RPA_ORACLE_HOST = "192.168.12.244" $env:RPA_ORACLE_PORT = "1521" $env:RPA_ORACLE_SERVICE = "rpa" $env:RPA_ORACLE_USER = "rpainit" $env:RPA_ORACLE_PASSWORD = "这里填密码" $env:RPA_ORACLE_THICK = "1" $env:RPA_ORACLE_CLIENT_LIB = "C:\oracle\instantclient" uv run uvicorn app.main:app --host 0.0.0.0 --port 8001 ``` 先 `GET http://127.0.0.1:8001/health`,再把 `examples/sales_goods_batch.json` POST 两次: 1. 第一次:两条 `ACCEPTED`,表里各一行 `deal_flag=0` 2. 第二次:两条 `DUPLICATE`,表行数不变 ```powershell curl.exe -sS http://127.0.0.1:8001/api/oms/v1/sales-goods ` -H "Content-Type: application/json" ` -H "X-Oms-Token: dev-oms-token" ` --data-binary "@examples/sales_goods_batch.json" ```