我们为客户编写了一个小型监控网站,显示其Navision系统的当前状态。
这是通过创建一个代码单元来完成的,该代码单元具有许多功能,用于收集作业队列等的数据和计数,并通过页面发布数据,该页面已配置为用作Web服务。
网站随后调用此Web服务并动态显示数据。
我的问题是这个。
codeunit创建的计数之一是Sessions的数量(来自虚拟表“Session”),其中Application Name是“Microsoft Dynamics NAV Classic客户端”或“Microsoft Dynamics NAV Classic的应用服务器”。从Navision运行代码单元(并以列表形式显示,或显示在RTC页面中)时,将显示正确的计数。
但是,当使用ASP.Net将发布的页面作为Web服务调用时,计数始终为0.
似乎网络服务不知何故,无法或不愿意给我们这个数字。
获取此计数的codeunit中的代码如下所示。
tblSession.RESET;
tblSession.SETFILTER("Application Name",
'Microsoft Dynamics NAV Classic client|Application Server for Microsoft Dynamics NAV Classic');
intValue := tblSession.COUNT;
我甚至尝试编写一个全新的代码单元,只是为了通过迭代来获取会话数,检查应用程序名称,以及是否是我们选择的类型之一,递增计数,并将其作为返回参数返回功能。它仍然返回0.
有没有其他人经历过这个,或者有人知道为什么数据没有通过网络服务?
答案 0 :(得分:0)
在Nav 2015中,似乎有一个名为“Active Session”的表。如果您想要计算当前会话数,请尝试计算此表中的记录。