商务中心额外API
为Microsoft Dynamics 365 Business Central定制API扩展,专为与MCP服务器和人工智能助手集成而设计。
应用程序编程接口
此扩展为仓库/库存查询提供了两个只读API端点:
| API | 目的 |
|---|---|
lotInventory | 按仓位分类的批量库存 |
lotReservations | 预订批号 |
API配置
- 出版商:
mschristiansen - 组:
warehouseAgent - 版本:
v1.0
端点URL
https://api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/api/mschristiansen/warehouseAgent/v1.0/companies({companyId})/lotInventory
https://api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/api/mschristiansen/warehouseAgent/v1.0/companies({companyId})/lotReservations批量库存API
当库存数量大于0时,每个(批次、仓位)组合返回一行。
领域
| 字段 | 类型 | 可筛选 | 描述 |
|---|---|---|---|
| 项目编号 | 代码\[20\] | ✅ | 项目编号 |
| 项目描述 | 文本\[100\] | ❌ | 项目描述 |
| 批号 | 代码\[50\] | ✅ | 批号 |
| 批次描述 | 文本\[100\] | ❌ | 批次描述/注释 |
| 证书编号 | 代码\[20\] | ❌ | FSC证书编号 |
| balHeight | 十进制 | ❌ | 厚度(mm) |
| balLengthInterval | 文本\[30\] | ❌ | 长度间隔 |
| balWidthInterval | 文本\[30\] | ❌ | 宽度间隔 |
| binCode | 代码\[20\] | ✅ | 储物箱位置 |
| 位置代码 | 代码\[10\] | ✅ | 位置代码 |
| 数量 | 十进制 | ❌ | 累计库存数量 |
| baseUnitOfMeasure | 代码\[10\] | ❌ | 计量单位(M3、M、STK) |
| blocked | 布尔值 | ❌ | 如果批次被封锁/隔离,则为真 |
查询示例
# Get all lots in a specific bin
GET .../lotInventory?$filter=binCode eq 'HAL5'
# Get lots for items starting with 'SA' (Sapelli)
GET .../lotInventory?$filter=startswith(itemNo, 'SA')
# Get details for a specific lot
GET .../lotInventory?$filter=lotNo eq '105427'地块预订API
显示对批号的保留-为销售订单、生产订单等保留的内容。
领域
| 字段 | 类型 | 可筛选 | 描述 |
|---|---|---|---|
| 项目编号 | 代码\[20\] | ✅ | 项目编号 |
| 批号 | 代码\[50\] | ✅ | 批号 |
| 位置代码 | 代码\[10\] | ✅ | 位置代码 |
| 源类型 | 整数 | ✅ | 源表ID |
| sourceId | 代码\[20\] | ❌ | 文件编号 |
| 数量 | 十进制 | ❌ | 预留数量(负数=出库) |
| 预期日期 | 日期 | ❌ | 预计日期 |
源类型
| 源类型 | 含义 |
|---|---|
| 37 | 销售线 |
| 5406 | 产品订单行 |
| 5407 | 产品订单组件 |
| 32 | 项目分类账条目 |
查询示例
# Get reservations for a specific lot
GET .../lotReservations?$filter=lotNo eq '105427'
# Get all sales order reservations
GET .../lotReservations?$filter=sourceType eq 37用例
这些API使AI助手能够回答以下问题:
- “我们有多少萨佩利?”
- “哈尔5号有什么?”
- “105427号地块预订了吗?”
- “预订后实际可用的价格是多少?”
- “这个地块被封锁了吗?”
- “这个地块的面积是多少?”
实现注意事项
API使用基于页面的实现和临时缓冲表(不是基于查询),以与BC MCP服务器兼容。数据汇总在 OnOpenPage:
- lotInventory:骨料
Warehouse Entry按项目/批次/箱/位置,连接到Item和Lot No. Information - lot预订:骨料
Reservation Entry按项目/批次/位置/来源
依赖项
此扩展需要:
- DHS-基础 (v1.0.0.17)由Aktiesselskabet balance.as提供
发展
该项目使用AL Go for GitHub Actions基于CI/CD。
地方发展
# Create local Docker-based dev environment
.\.AL-Go\localDevEnv.ps1
# Create cloud-based Business Central Sandbox
.\.AL-Go\cloudDevEnv.ps1构建和部署
所有构建都通过GitHub Actions运行。按下主按钮,释放/*,或功能/* 分支以触发CI/CD管道。
项目结构
appLotApi/
src/
Page/
LotInventoryAPI.Page.al # Lot inventory API endpoint
LotReservationsAPI.Page.al # Lot reservations API endpoint
Table/
LotInventoryBuffer.Table.al # Temporary buffer for inventory
LotReservationBuffer.Table.al # Temporary buffer for reservations
app.json # App manifest贡献
请阅读 贡献指南 AL Go项目。
