发新话题
打印

[已解决] 通过组去分别存值的脚本出错( 此文章被查看:315次,被回复:5篇!! )

本主题由 没有蛀牙 于 2008-4-25 12:01 关闭

通过组去分别存值的脚本出错

我想实现的功能:
如果user属于customer组,那么将他的email字段填写成 user@163.com
如果user属于其他组,那么将他的email字段填置为空

脚本写在了email的INNITIAL_VALUE里面
dim session
dim userGroup
set sessionobj1 = GetSession
userGroup = sessionobj1.GetUserGroups

         if  IsEmpty(userGroup) then
             SetFieldValue fieldname, ""
          else
              For Each group in userGroup
             if  group="Customer"  then
                 set sessionobj = GetSession
                  userphone = sessionobj.GetUserPhone
                 SetFieldValue fieldname, userphone+"@163.com"
              Else
                 SetFieldValue fieldname, ""
              end if
              Next
         end if
现在的问题:当user仅属于Customer组时,传值成功;如果user同时属于Customer组和其他组的时候,传值失败
请高手执教

[ 本帖最后由 没有蛀牙 于 2008-4-22 12:02 编辑 ]


问题已经解决 [打开主题]
本主题的最佳答案为 [ 4 楼].



© 本文为 没有蛀牙SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员
i生活,i音乐!

TOP

几点建议:
1.下面这段脚本中,不需要重新取得session对象,可以直接沿用前面的seesion对象的
2.if...then  Else最要统一大小写
if  group="Customer"  then
  set sessionobj = GetSession
  userphone = sessionobj.GetUserPhone
  SetFieldValue fieldname, userphone+"@163.com"
Else
...

3.你这里的
For Each group in userGroup
if  group="Customer"  then 赋值为邮箱
else 赋值为空
end if
就意味着,如果用户有两个组,遍历两次后最后一次被赋值为空,所以你看到的结果为传值不成功。

4.可以换个思路写这个程序
    先就给字段赋值为空
    然后再遍历用户组,发现包含有Customer,赋值为邮箱地址


希望对你有帮助!

[ 本帖最后由 tinali 于 2008-4-22 13:29 编辑 ]



© 本文为 tinaliSCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

dim session
dim userGroup
dim mark
set sessionobj1 = GetSession
userGroup = sessionobj1.GetUserGroups
         if  IsEmpty(userGroup) then
             SetFieldValue fieldname, ""
          else
              For Each group in userGroup
                   if  group="Customer"  then
                         mark = 1
                   endif
             next
          end if  
             if mark =1 then
                 set sessionobj = GetSession
                  userphone = sessionobj.GetUserPhone
                 SetFieldValue fieldname, userphone+"@163.com"
              Else
                 SetFieldValue fieldname, ""
              end if
              
      我大概改了   你试试 我自己本地没有测试



© 本文为 ljs53SCMLife 共同所有,未经同意,请勿转载 ©如该文侵犯了您的版权,请联系管理员

TOP

dim sessionobj
dim userGroup
dim flag
flag = 0

set sessionobj = GetSession
userGroup = sessionobj.GetUserGroups

if IsEmpty(userGroup) then
   SetFieldValue fieldname, ""
Else
                For Each group in userGroup
                        if group = "Customer" then
                                flag = 1
                        end if
                Next
                If flag = 1 Then
                        userphone = sessionobj.GetUserPhone
                        SetFieldValue fieldname, userphone + "@163.com"
                Else
                        SetFieldValue fieldname, ""
                End If
End if


最佳答案
该回答被楼主/管理员列为正解!

© 本文为 yunshan 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

非常感谢各位,我会去调试代码
另外有个问题产生了:
因为以上的脚本发生了问题,所以有一些记录就没有赋值成功
能不能通过一些脚本把某个记录的某个字段给赋值呢?
比如 SAML0001这条记录的email字段需要赋值

© 本文为 没有蛀牙 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员
i生活,i音乐!

TOP

遍历email字段,找出为空的,然后再重复上面的脚本,重现设置一遍!

© 本文为 劳动者 所有,未经同意,请勿转载
©如该文侵犯了您的版权,请联系管理员

TOP

发新话题