我知道Acumatica有一个可以通过ac.exe访问的CLI,但是当我检查文档时,这似乎只支持“部署Acumatica ERP的新应用程序实例并执行数据库和应用程序维护”。
有谁知道它是否也可以用于自动发布定制项目?
源控件合并后,我想自动执行以下步骤:
那可能吗?
如果没有通过ac.exe可用,可能通过.Net代码,也许使用Acumatica SDK或REST API?
非常感谢。
您可以使用一组特定的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);
}