Не знаю, как WSScript, но под Axapta'ой это будет выглядеть так
X++:
{
Com ax = new Com("AxaptaCOMConnector.Axapta2");
Com cont;
Com cont1;
int i;
int cnt;
ComVariant var;
str s;
;
ax.Logon2("user", "password", "", "", "Server", "Instance", "Configuration");
var = ax.CallStaticClassMethod("SysUsersOnline", "getAllOnlineUserInfo");
if (var)
{
cont = Com::createFromVariant(var);
var = cont.peek(2);
cnt = var.int();
if (cnt > 0)
{
var = cont.peek(1);
cont = Com::createFromVariant(var);
if (cont)
{
for (i=1;i<=cont.length();i++)
{
var = cont.peek(i);
cont1 = Com::createFromVariant(var);
if (cont1)
{
if (cont1.length()>1)
{
var = cont1.peek(2);
s = "UserId=" + var.bStr()+ ";";
var = cont1.peek(8);
s += "UserName=" + var.bStr();
info(s);
}
}
}
}
}
}
ax.Logoff();
ax = null;
}
В принципе, для вызывающей стороны контейнеры будут выглядеть как интерфейсы IAxaptaContainer - с возможностью вызова соответствующих методов для них