在插件和工作流当中会使用到context.InitiatingUserId 和 context.UserId ,经常会搞不懂他们之间的区别,为了记录一下自己的理解,特写此笔记。
context.UserId :
插件和工作流代码都有个执行者身份的设置,插件对应的是CallingUser,而工作流则是工作流的负责人。
也就是说插件代码执行者是指定的CallingUser,工作流代码执行者是指定的工作流的负责人。
因此,插件上下文的context.UserId 是CallingUser,而工作流上下文的context.UserId是工作流的负责人。
context.InitiatingUserId:
InitiatingUserId是指最初触发(或叫启动)插件或工作流的用户ID,比如说终端用户A保存了一个SR会触发插件,这时的InitiatingUserId 就是用户A的ID,如果插件不指定callingUser,则默认情况下,context.InitiatingUserID=context.UserId。
对于工作流的负责人只能指定固定的用户,那么context.InitiatingUserID大部分情况下不等同于context.UserId。