用于发布Customization Project的命令行界面(或其他自动化)

问题描述 投票:0回答:1

我知道Acumatica有一个可以通过ac.exe访问的CLI,但是当我检查文档时,这似乎只支持“部署Acumatica ERP的新应用程序实例并执行数据库和应用程序维护”。

有谁知道它是否也可以用于自动发布定制项目?

源控件合并后,我想自动执行以下步骤:

  1. 重建dll
  2. 从文件夹打开自定义项目
  3. 更新修改的文​​件(以便在项目中更新dll)
  4. 向所有公司发布清理。

那可能吗?

如果没有通过ac.exe可用,可能通过.Net代码,也许使用Acumatica SDK或REST API?

非常感谢。

acumatica
1个回答
1
投票

您可以使用一组特定的Web服务API来上载和发布包。这是作为代码管理自定义项目 - >操纵自定义项目下的自定义指南的一部分记录的。以下是文档中的相关摘录:

上传包

以下代码登录到Acumatica ERP实例,加载C:\ package1.zip文件内容,并在实例的数据库中保存或更新package1自定义项目。

var webserviceurl = "http://localhost/AcumaticaInstance/api/ServiceGate.asmx";
var username = "admin";
var password = "123";
var packageName = "package1";
var packageContents = File.ReadAllBytes("C:\package1.zip");
var replaceIfPackageExists = true;

var client = new ServiceGate.ServiceGate
{
  Url = webserviceurl,
  CookieContainer = new CookieContainer(),
  Timeout = (int) TimeSpan.FromMinutes(5).TotalMilliseconds
};

var loginResult = client.Login(username, password);

if (loginResult.Code == ErrorCode.OK)
{
  client.UploadPackage(packageName, packageContents, replaceIfPackageExists);
}

发布包

以下代码登录到Acumatica ERP实例并发布实例数据库中存在的package1,package2和package3自定义项目。

var webserviceurl = "http://localhost/AcumaticaInstance/api/ServiceGate.asmx";
var username = "admin";
var password = "123";
var packageNames = new []{"package1", "package2", "package3"};
var mergeWithExistingPackages = true;

var client = new ServiceGate.ServiceGate
{
  Url = webserviceurl,
  CookieContainer = new CookieContainer(),
  Timeout = (int) TimeSpan.FromMinutes(5).TotalMilliseconds
};

var loginResult = client.Login(username, password);

if (loginResult.Code == ErrorCode.OK)
{
  client.PublishPackages(packageNames, mergeWithExistingPackages);
}
© www.soinside.com 2019 - 2024. All rights reserved.