intra-mart Accel Platform 脚本开发模式编程指南 第16版2020-04-01

编程

在此,说明访问上下文的简单用法。
详细内容如何创建新访问上下文以及如何使用访问上下文的详细内容 ,请参阅“ 访问上下文扩展编程指南 ”。

访问上下文的基本用法

使用上下文 API获取访问上下文。
检查要使用的访问上下文类别的简称,并通过以下方法获取它。
Contexts.get <短名称>()
访问上下文信息被注册为属性,因此请使用以下方法获取它。
上下文<属性名称>
获取访问上下文的示例如下所示。
//获取账号上下文。
变种 accountContext = 语境getAccountContext();

//获取用户代码。
变种 userCd = accountContextuserCd;

//获取用户上下文。
变种 userContext = 语境getUserContext();

账号上下文状态访问实用程序

常用功能是查询账号上下文的身份验证状态。
为此,您可以使用实用程序来查询有关账号上下文的信息。
//查询身份验证状态
变种 已认证 = 上下文状态isAuthenticated();

如果 已认证 {
 //处理经过已验证用户
} 别的 {
 //处理未验证用户
}

查询认证状态

您可以通过以下任何一种方法检查您是否登录。
  • 查询账号上下文的身份验证状态。
变种 accountContext = 语境getAccountContext();
变种 已认证 = accountContext已认证;
  • 使用实用程序查询身份验证状态。
变种 已认证 = 上下文状态isAuthenticated();
intra-mart Accel Platform ,甚至为未登录的用户设置用户代码。
该用户代码应在不影响应用程序的范围内使用,例如更新日志或数据库 。
确保如上所述登录。

查询用户类别

可以通过以下任何一种方法来确定访问用户是一般用户还是系统管理员 。
  • 获取账号上下文的用户类别 。
变种 accountContext = 语境getAccountContext();
变种 userType= accountContextuserType;

//是否是系统管理员
变种 isAdministrator = “管理员” == userType;

//是否是一般用户
变种 isUser = “用户” == userType;
  • 使用该实用程序询问您是否是系统管理员 。
变种 isAdministrator = 上下文状态isAdministrator();
未验证用户,用户类别也是一般用户。

如何使用定义的访问上下文

账号上下文

下面显示了从账号上下文中获取用户区域设置的示例。
变种 accountContext = 语境getAccountContext();
变种 地区 = accountContext地区;

//获取消息。
变种 讯息 = 消息管理器getLocaleMessage地区 “ I.IWP.CERTIFICATION.SECURITYLOG.00200”
除错打印“消息=” + 讯息);
如果在账号信息中未设置语言环境,则账号上下文的语言环境可以获得租户的语言环境。
在您的个人设置中更改区域设置,然后查看区域设置是否更改。
许多API通过省略参数来引用账号上下文信息。
上面的示例与以下代码具有相同的结果:
//获取消息。
变种 讯息 = 消息管理器getMessage“ I.IWP.CERTIFICATION.SECURITYLOG.00200”

使用用户上下文

下面显示了从用户上下文获取配置文件信息的示例。
变种 userContext = 语境getUserContext();

//获取用户名。
变种 用户名 = userContextuserProfile用户名;
使用此代码,您可以获得当前正在访问的用户的用户名。
如果您是未经身份未验证用户,则可以获取“来宾”。
此外,显示了从用户上下文中获取当前组织部门的示例。
变种 userContext = 语境getUserContext();

变种 部门 = userContext当前部门;
如果 isBlank部门)) {
   变种 部门名称 = 部门部门全名;
   除错打印' 当前组织名称=' + 部门名称);
}
使用此代码,您可以获得当前正在访问的组织的全名。
对于具有多个从属的用户,可通过单击标题中的用户名来切换从属,从而更改可获取的名称,因此请进行检查。

切换用户上下文所属的组织

以下是从程序切换属于用户上下文的组织的示例。
变种 资源 = {
    currentCompanyCd  companyCd
    currentDepartmentSetCd  departmentSetCd
    currentDepartmentCd  部门
};
生命周期切换到'platform.current.department.switch' 资源);
使用此代码,您可以切换组织。
切换组织时,请注意以下几点。
  • 请为Lifecycle.switchTo()方法的第一个参数“ Resource ID”指定“ platform.current.department.switch ”。

  • 在资源信息( resource )中指定要切换到的组织。
    另外,为了切换所属组织,必须指定要切换的用户所属的组织。
  • 该组织的切换目标,公司代码(currentCompanyCd),该组织设定的代码(currentDepartmentSetCd),请务必注明三个组织机构代码(currentDepartmentCd)。