如何为GeneXus模式获取无冲突的OutputType值避免扩展冲突
GeneXus 自定义模式OutputType预留ID冲突解决方案
问题本质
ReserveOutputTypeRange 方法的第一个参数为全局生效的Output类型整数标识,同一GeneXus安装环境下该ID全局唯一,仅第一个完成注册的扩展/模式可成功占用对应ID,后续重复注册会直接触发报错,平台本身无自动冲突避让机制。
你当前使用的注册代码如下:
PackageManager.Manager.ReserveOutputTypeRange(EntityProviderBuildProcess.OUTPUT_ID_RWD, 1, CopyToTarget.IfDesign, true, BLPackageGuid.Patterns);
官方ID登记规则
- 不存在公开自助登记的公共仓库,所有对外发布的第三方扩展、自定义模式所用的OutputType ID,统一由GeneXus官方扩展维护团队做统一分配和台账登记,从根源上避免跨扩展的编号冲突。
- 申请ID时需要提交三类信息:扩展/模式对应的
BLPackageGuid唯一标识、开发主体名称、预计需要占用的连续ID数量,官方会从第三方扩展专属预留ID段中分配无冲突的ID区间。
临时调试规避方案
本地开发调试阶段如果暂时未拿到官方分配的正式ID,可优先选用10000以上的高位整数值作为测试ID,不要占用1-5000区间——该区间为GeneXus内置功能、官方首发模式/扩展的专属预留段,高位ID和现有已发布扩展产生冲突的概率极低。注意正式发布扩展前必须替换为官方分配的正式ID,避免后续和其他新上架扩展产生冲突。
内容的提问来源于stack exchange,提问作者ealmeida
相关产品推荐
相关产品推荐

