如何检查调用者是X ++中的EP

时间:2014-02-13 07:41:16

标签: client axapta x++ dynamics-ax-2012 enterprise-portal

我需要检查X ++,如果调用者是EP或客户端,那么如果调用者是该代码中的EP,我可以进行一些自定义。请告诉我怎么可能

注意:我正在为EP和AX客户端使用ListPageInteraction类,如果调用者是ListPageInteraction类中的EP,我必须对同一查询(用于两者)进行一些修改

1 个答案:

答案 0 :(得分:0)

检查NumberSeqNumCache.isEpClient方法,它看起来像这样:

/// <summary>
///    Determines whether the request is from EP.
/// </summary>
/// <returns>
///    true if EP is the caller; otherwise, false.
/// </returns>
static server boolean isEpClient()
{
     xSession session = new xsession();
     boolean isEP = false;
     sysClientSessions clientsessions;
     ;


    select ClientType from clientsessions where clientsessions.SessionId == session.sessionId();

    if (clientSessions.ClientType == SessionType::WebUser || clientsessions.clientType == SessionType::Worker)
    {
         isEp = true;
    }

    return isEp;
}

它检查当前会话是否为webuser或worker类型。如果您使用客户端,会话将是SessionType :: GUI类型。请注意,其他会话也可以注册为SessionType :: Worker类型,例如批处理任务,因此这可能无处不在。