Mryqu's Notes


  • 首页

  • 搜索
close

Activiti Modeler中sid生成机制

时间: 2015-02-28   |   分类: workflow     |   阅读: 47 字 ~1分钟

昨天跟同事说Activiti Modeler中的sid比GoJS中的元素ID讲究,估计是由时戳和随机数混合生成的。 今天看了一下,发现原来就是一个纯随机数。

[tomcat]\webapps\activiti-explorer\editor-app\editor.html里对类为stencil-item的HTML元素设置的拖拽处理函数在[tomcat]\webapps\activiti-explorer\editor-app\stencil-controller.js中定义。 Activiti Modeler中sid生成机制 sid生成方法在[tomcat]\webapps\activiti-explorer\editor-app\editor\oryx.debug.js中定义。

ORYX.Editor.provideId = function() {
  var res=[], hex='0123456789ABCDEF';
  for(var i=0; i<36; i  ) res[i]=Math.floor(Math.random()*0x10);
  res[14]=4;
  res[19]=(res[19] & 0x3) | 0x8;
  for(var i=0; i<36; i  ) res[i] = hex[res[i]];
  res[8] = res[13] = res[18] = res[23] = '-';
  return "sid-"   res.join('');
};

当然,GoJSBPMN样例中的ID就更简单的不得了,全都是预定义的简单数字。例如,userTask的key预定义为7,当一个BPMN元素加入GoJSmodel时,GoJS会让model中的key变成唯一的(代码混淆过,我猜估计没混淆前叫makeUniqueKeyFunction)。在我的小测试中,第一个userTask的key仍然为7,第二个userTask的key被改成了-3。 感觉要是借鉴MongoDB的ObjectId生成机制,ID的冲撞概率可能会更低。

标题:Activiti Modeler中sid生成机制
作者:mryqu
声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!

#activiti# #modeler# #sid# #机制# #gojs#
[OpenUI5] Grid layout for responsive design
将GoJS和Activiti Explorer熬成一锅粥
  • 文章目录
  • 站点概览

Programmer & Architect

662 日志
27 分类
1472 标签
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%