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