我们的系统成功登录 MYOBAdvanced,执行所需操作(创建销售订单、报价等),然后尝试注销。
但是系统运行一段时间后,我们开始在 MYOBAdvanced UI 上收到错误:
“由于系统用户数量超出,您已退出。”
screen.Logout()
表示注销过程成功,但在 MYOBAdvanced UI 上仍收到错误。
Acumatica 5.2.1567.33 或 MYOBAdvanced(2015.3.2.1193) 中已修复此问题吗?
以下是参考代码:
public class Advanced {
static Screen oScreen = new Screen();
public static Boolean fConnect(string sCompany, ref string sError) {
try {
oScreen.CookieContainer = new System.Net.CookieContainer();
oScreen.AllowAutoRedirect = true;
oScreen.EnableDecompression = true;
oScreen.Timeout = 200000; // Timeout set to 2 min
oScreen.Url = sCompany;
return true;
}
catch (Exception ex){
sError = "ERR~~fConnect " + ex.Message;
return false;
}
}
public static string fLogin(string sCompany, string sUser, string sPwd) {
try {
String sError = "";
Boolean bConnect = fConnect(sCompany, ref sError);
if (!bConnect){
return "ERR~Unable To Connect To Company File <" + sCompany + "> " + sError;
}
LoginResult oLogin = new LoginResult();
oLogin = oScreen.Login(sUser, sPwd);
oScreen.SetLocaleName(CultureInfo.CurrentCulture.Name);
if (oLogin.Code == 0){
String sDBVersion = "";
if (fCheckDBVersion(ref sDBVersion, ref sError))
{
return "OK ~~";
}
else
{
return "ERR~~fLogin " + sError;
};
}
else {
return oLogin.Message;
}
}
catch (Exception ex){
Debug.WriteLine(ex.Message);
return "ERR~~fLogin " + ex.Message;
}
}
public static String fLogOut()
{
try
{
oScreen.Logout();
return "OK ~~";
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
return "ERR~~fLogOut " + ex.Message;
}
}
}
早期版本的 Acumatica 的注销功能存在问题,该问题已于 1525 年 5 月 20 日修复。然而,由于 MYOB Advanced 中的许可模式不同,那里也存在类似的问题,并且他们的团队承认了这一问题。据他们称,这个问题应该在上周发布的更新中得到解决。您的网站上有新版本吗?如果问题仍然存在,您可以告诉我们吗?
不确定您的实施情况,但在大多数情况下,使用网络服务的人会创建新的 cookie,并且它将分配新的会话。 从我的角度来看,您只需使用一种登录方法并将 cookie 保存在某处以便在下次调用时使用它。