如何去掉员工姓名全拼中的分隔符'

栏目:s-hr cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

如何去掉员工姓名全拼中的分隔符'

适用版本

s-HR V8.5及以上

如何去掉员工姓名全拼中的分隔符'

序言:

        s-HR标准产品在员工入职时,会根据员工姓名生成姓名全拼,但是为了避免歧义和确保拼读的清晰有些姓名的拼音会带有分隔符',例如林燕娥的拼音为linyan 'e,在某些客户把姓名全拼做用户账号使用时,因账号不能包含',会导致用户无法登录。如果客户要求将'从姓名全拼中去掉,只能二开,工作量比较大。下面介绍一种简单的方式,通过dep脚本即可实现。

实现步骤

1、 dep导入员工_个人信息实体

在动态扩展平台导入员工_个人信息,如下图所示:

2、 扩展dep脚本

在实体扩展定义中,找到addNew方法,并在addNew方法后置脚中写下去掉分隔符'dep代码,如下图所示:


然后启用相应的dep方案,即可实现在员工入职时去掉姓名全拼中的分隔符'。dep addNew后置脚本代码如下:

var imp = JavaImporter();
imp.importPackage(Packages.com.kingdee.eas.util.app);

with(imp){
    // 获取上下文
    var ctx = pluginCtx.getContext();
    // 获取方法参数,这里获取的是personInfo对象
    var obj = methodCtx.getParamValue(0);
    // 获取方法的返回值,这里获取的是员工id
    var billId = methodCtx.getResultValue();
    // 从personInfo对象中获取姓名全拼
    var fullNamePingYin = obj.get("fullNamePingYin");
    if (fullNamePingYin.indexOf("’") !== -1){
        // 获取去掉’后的姓名全拼
        fullNamePingYin = fullNamePingYin.replace("’", "");
        // 更新去掉’后的姓名全拼到数据库
        var sql = "update t_bd_person SET FFullNamePingYin = '" + fullNamePingYin + "' WHERE FID = '"+billId+"'";
        DbUtil.execute(ctx, sql);
    }
}

3实现更新员工时去掉姓名全拼中的分隔符'

        上述步骤只能实现员工新增时,去掉姓名全拼中的分隔符',在员工编辑保存时,姓名全拼中的分隔符'又会出现,这是因为姓名全拼在员工编辑保存时是重新生成的。实现思路与新增逻辑一样。如下:

在实体扩展定义中,找到update方法,并在update方法后置脚本中写下去掉分隔符'代码,如下图所示:

然后启用相应的dep方案,即可实现在员工编辑修改保存时去掉姓名全拼中的分隔符'。dep update后置脚本代码如下:

var imp = JavaImporter(); 
imp.importPackage(Packages.com.kingdee.eas.util.app);

with(imp){
    // 获取上下文
    var ctx = pluginCtx.getContext();
    // 获取方法参数,这里获取的是personInfo对象
    var obj = methodCtx.getParamValue(1);
    // 获取方法参数,这里获取的是员工id
    var billId = methodCtx.getParamValue(0);
    // 从personInfo对象中获取姓名全拼
    var fullNamePingYin = obj.get("fullNamePingYin");
    if (fullNamePingYin.indexOf("’") !== -1){
    	// 获取去掉’后的姓名全拼
     	fullNamePingYin = fullNamePingYin.replace("’", "");
     	// 更新去掉’后的姓名全拼到数据库
        var sql = "update t_bd_person SET FFullNamePingYin = '" + fullNamePingYin + "' WHERE FID = '"+billId+"'";
        DbUtil.execute(ctx, sql);
     }
}

4已有数据如何批量去掉姓名全拼中的分隔符'呢

            上述步骤完成后,如果需要批量去掉姓名全拼中的分隔符',使用综合信息导入,只维护编码名称,无需维护其他列字段值批量导入即可批量去掉姓名全拼中的分隔符',如下图所示:

如何去掉员工姓名全拼中的分隔符'

【适用版本】s-HR V8.5及以上如何去掉员工姓名全拼中的分隔符'序言: s-HR标准产品在员工入职时,会根据员工姓名生成姓名全拼,...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息