【问题标题】:Command line interface (or other automation) to publish Customization Project命令行界面(或其他自动化)发布定制项目
【发布时间】:2018-08-19 09:22:19
【问题描述】:

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

有人知道它是否也可以用来自动发布定制项目吗?

源代码管理合并后,我想自动化以下步骤:

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

这可能吗?

如果不能通过 ac.exe 获得,是否可以通过 .Net 代码,或者使用 Acumatica SDK 或 REST API?

非常感谢。

【问题讨论】:

    标签: acumatica


    【解决方案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);
    }
    

    【讨论】:

    • 应该提到没有发布到多公司的选项,并且没有报告发布错误。 (至少从我发现的 - 如果您知道任何方法,请分享)
    • 那将是一个很大的限制
    • 我认为要为多家公司发布,您需要多次调用 API(每次)。
    • 是的,但由于自定义并不是真正的多公司,因此通过单独发布每个站点来尝试多站点发布只是矫枉过正。基本上为了我们的需要,只需要站点地图条目(或任何进行数据插入/更新/删除的东西)并且通常无论如何都要测试一家公司。只是需要注意的事情。
    • 注意到布伦丹。感谢您的信息
    猜你喜欢
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    相关资源
    最近更新 更多