You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python连接Microsoft Dynamics NAV并拉取数据?

Python连接Dynamics NAV可行方案整理

你现有代码无法运行的核心原因是:用到的CData Dynamics NAV Python驱动属于商业付费组件,未完成安装、授权激活的前提下无法直接调用,且你提供的连接字符串存在明显格式错误。

以下是可落地的实现方案:

方案1:使用原生OData接口(最推荐,免费无额外依赖)

该方案是NAV官方原生支持的访问方式,不需要第三方付费驱动,接口性能足够处理TB级别的数据拉取需求。
操作步骤:

  • 联系NAV管理员,在服务端启用OData服务,将你需要查询的表/自定义查询发布为OData端点,获取对应的服务URL、分配账号访问权限
  • Python端可以直接用requests库调用接口,也可以用pyodata库简化OData协议处理

参考代码:

import requests
import pandas as pd
import matplotlib.pyplot as plt

# 替换为你的NAV OData实际端点、账号密码、公司名
odata_url = "http://myserver:7048/DYNAMICSNAV71/OData/Company('你的公司名')/Customer"
auth = ("myserver\\Administrator", "admin")

# OData查询参数,对应SQL的过滤、字段选择逻辑
params = {
    "$filter": "Name eq 'Bob'",
    "$select": "Name,Prices_Including_VAT"
}

response = requests.get(odata_url, auth=auth, params=params)
response.raise_for_status()
data = response.json()['value']
df = pd.DataFrame(data)

# 绘图逻辑和你原有逻辑一致
df.plot(kind="bar", x="Name", y="Prices_Including_VAT")
plt.show()

方案2:使用微软官方ODBC驱动

如果你更习惯用SQL查询的方式访问数据,可以使用微软免费的官方ODBC驱动实现连接。
操作步骤:

  • 下载安装微软官方Dynamics NAV ODBC驱动,可选择配置系统DSN或者直接在连接字符串中指定所有参数
  • Python端用pyodbc库建立连接即可

参考代码:

import pyodbc
import pandas as pd

conn_str = (
    "Driver={Microsoft Dynamics NAV ODBC Driver};"
    "Server=myserver;"
    "Port=7048;"
    "ServerInstance=DYNAMICSNAV71;"
    "User=myserver\\Administrator;"
    "Password=admin;"
    "Company=你的公司名;"
)
conn = pyodbc.connect(conn_str)
df = pd.read_sql("SELECT Name, Prices_Including_VAT FROM Customer WHERE Name = 'Bob'", conn)

方案3:CData驱动修复(付费可选)

如果你们已经采购了CData驱动,只需要修改原有代码的连接字符串格式错误即可运行:

  1. 连接字符串不能随意换行,Windows账号的反斜杠需要转义或者用原始字符串包裹
  2. 修正后的连接字符串参考:
engine = create_engine(r"dynamicsnav:///?Server=myserver&Port=7048&User=myserver\Administrator&Password=admin&ServerInstance=DYNAMICSNAV71")

RPA方案优化建议

如果上述接口方案都无法落地,必须使用机器人工具拉取大数据量,可以做以下优化大幅降低耗时:

  • 改为增量同步:每次仅拉取上次同步之后新增/变更的数据,避免全量重复拉取
  • 分批拉取:按主键、时间维度拆分拉取任务,避免单次拉取数据量过大导致超时或者卡顿
  • 并行拉取:拆分不同表、不同时间段的拉取任务到多个机器人进程并行执行,可将耗时降低3-10倍

内容的提问来源于stack exchange,提问作者Arush

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:15:04