如何在Azure Function App中使用.NET SDK对接Sage Intacct同步数据
解决方案
步骤1:确认Azure Function项目兼容性
- 检查Visual Studio 2019创建的Azure Function项目的.NET运行时版本,Intacct.SDK支持.NET Standard 2.0、.NET 6+,建议使用.NET 6 LTS版本的Function项目(可选择进程内或隔离进程模型)
- 禁止使用.NET Framework版本的Function项目,会因依赖不兼容导致相关程序集发布时不被打包
步骤2:修正Nuget包引用方式
- 不要手动复制SDK的.cs源码文件到项目中,所有依赖完全通过Nuget管理:右键Function项目 → 管理Nuget程序包 → 确认已安装
Intacct.SDK稳定版 - 清理本地缓存:点击顶部菜单「生成」→「清理解决方案」,删除项目根目录下的
bin、obj文件夹后重新生成解决方案,确保生成输出无依赖缺失警告
步骤3:配置SDK凭证与函数逻辑
- 本地调试时在
local.settings.json中添加配置项,发布后将对应配置录入Azure门户的Function应用「配置」→「应用程序设置」中,避免硬编码凭证:
{ "Values": { "Intacct_SenderId": "你的SenderID", "Intacct_SenderPassword": "你的Sender密码", "Intacct_UserId": "你的Intacct用户ID", "Intacct_UserPassword": "你的用户密码", "Intacct_CompanyId": "你的公司ID" } }
- HTTP触发函数示例代码:
using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Intacct.SDK; using Intacct.SDK.Functions.Common.Query; namespace YourFunctionNamespace { public static class PullSageIntacctData { [FunctionName("PullSageIntacctData")] public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("开始拉取Sage Intacct数据"); var clientConfig = new ClientConfig { SenderId = Environment.GetEnvironmentVariable("Intacct_SenderId"), SenderPassword = Environment.GetEnvironmentVariable("Intacct_SenderPassword"), UserId = Environment.GetEnvironmentVariable("Intacct_UserId"), UserPassword = Environment.GetEnvironmentVariable("Intacct_UserPassword"), CompanyId = Environment.GetEnvironmentVariable("Intacct_CompanyId") }; var intacctClient = new OnlineClient(clientConfig); // 示例:拉取总账科目数据,可按需替换为你需要的业务对象查询逻辑 var query = new ReadByQuery { ObjectName = "GLACCOUNT", Fields = new[] { "ACCOUNTNO", "TITLE", "ACCOUNTTYPE" } }; var response = await intacctClient.Execute(query); // 返回数据供Azure Data Factory调用处理 return new OkObjectResult(response.Results[0].Data); } } }
步骤4:调整发布配置
- 右键Function项目点击发布,确认部署模式选「框架依赖」,目标运行时与本地开发环境一致(推荐Linux-x64,成本更低)
- 打开发布配置的编辑页,「文件发布选项」勾选「在发布前删除所有现有文件」,避免缓存文件影响
- 发布完成后可进入Azure门户Function的「高级工具」Kudu控制台,查看
site/wwwroot/bin目录下是否存在Intacct.SDK.dll,存在即说明打包发布成功
步骤5:对接下游流程
函数测试正常后,在Azure Data Factory中创建HTTP链接服务指向该Azure Function调用地址,用Function密钥做身份认证,拉取数据后按需求做转换写入Azure SQL Server即可。
内容的提问来源于stack exchange,提问作者Java
相关产品推荐
相关产品推荐

