当前位置: 首页 > news >正文

E8-公共选择框相关的表

起因

昨天同事和我说,要在一个表单里加一组可选项。于是我去了公共选择框维护。这时候才发了这么个问题,前几天我在本机的测试环境里做的流程,导入到我们的生产环境里,表单里所用到的共公选择框的选项都在,在表单里是可用的,但是在公共选择框维护里却没有涉及到的公共选择框。回到流程的表单管理里,相应的字段只显示公共选择框,不显示选择框的类型了。

先把为什么所用到的公共选择框,在公共选择框维护里已经没有了,然而表单里还可用的问题放一边,不去研究它,看来有必要先把遗漏的公共选择框维护补齐。

经过

目标

想把公共选择框维护里的信息补齐,首先想到的方法是到公共选择框里把遗漏的类型都补齐了。考虑到在操作的过程中,很大的可能会发生由于录入顺序不一样,导致ID不一致引发关联出错的问题。

方案

那么,是不是在两个环境中,公共选择框维护里,数据不冲突的情况下,直接到数据表里导数据过来应该会安全一些。

执行

知识点一、需要处理哪些表

然而,在网上流传的E8表结构里找了一下,没有找到提及公共选择框的表。于是,用SQL Server Profiler做跟踪,发现了这么几张表。

mode_selectitempage

mode_selectitempagedetail

selectItemLog

从表名上来看,mode_selectitempage、mode_selectitempagedetail应该是记录的公共选择框的信息,是必须的,selectItemLog应该是记录的调整信息。先不去分析表结构都是干嘛的,先把本机测试环境和生产环境的数据做一下同步。

知识点二、数据怎么去同步

直接在SQL Server Management Studio导入数据,但要注意,要先把测试环境的表,导入到生产环境里,并且不能用原表名,先不说遇到相同的数据,导入程序会怎么处理,首先导入程序会在验证步骤报错如下

- 正在验证 (错误)
消息
错误 0xc0202049: 数据流任务 1: 无法在只读列“id”中插入数据。
 (SQL Server 导入和导出向导)
错误 0xc0202045: 数据流任务 1: 验证列元数据失败。
 (SQL Server 导入和导出向导)
错误 0xc004706b: 数据流任务 1: “组件“目标 - mode_selectitempage”(46)”验证失败,返回的验证状态为“VS_ISBROKEN”。
 (SQL Server 导入和导出向导)
错误 0xc004700c: 数据流任务 1: 一个或多个组件未能通过验证。
 (SQL Server 导入和导出向导)
错误 0xc0024107: 数据流任务 1: 任务验证期间出错。
 (SQL Server 导入和导出向导)

 大意上就是mode_selectitempage表的id列是只读的,不允许写入值。解决办法是把测试环境的表导入到生产环境数据库里的时候,重命个名。然后再写SQL语句去导入。但同样要处理这个ID字段不允许插入值的问题。

仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'mode_selectitempage'中的标识列指定显式值。

拿其中一个表举例,写一下语句

-- 设置mode_selectitempage的IDENTITY_INSERT的值是ON

set IDENTITY_INSERT mode_selectitempage ON

-- 把导过来的表里,ID不在生产环境的表里的的,导到生产环境表里。

-- 这里必须写列名。不写列名,设置了IDENTITY_INSERT为ON也不好使。

insert    into    mode_selectitempage 
        (id, selectitemname, selectitemdesc, creater,
        createdate, createtime, appid, uuid, 
        operatetime, formids        )
select    id, selectitemname, selectitemdesc, creater,
        createdate, createtime, appid, uuid, 
        operatetime, formids
from    mode_selectitempage2
where    id not in (    select    id
                    from    mode_selectitempage)

-- 把mode_selectitempage表的IDENTITY_INSERT的值改回OFF。

set IDENTITY_INSERT mode_selectitempage OFF

把数据同步之后,生产环境里的公共选择框补齐了。

结果

处理本次问题收获以下知识点:

1、在E8里,从一个系统导出流程,导入到另一个系统里的时候,相关的资源不会一并导入,需要手工去维护。

2、认识了几张和公共选择框有关的表。

3、在向有自增字段的数据表里导入数据前,要先处理该表的IDENTITY_INSERT属性后再导入,并不是拿它们束手无策的。

http://www.lryc.cn/news/27713.html

相关文章:

  • 再学C语言41:变长数组(VLA)
  • 物联网WEB大屏数据可视化
  • 新:DlhSoft Gantt Chart for WPF Crack
  • C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)
  • Rust学习总结之if,while,loop,for使用
  • Java知识复习(十一)RabbitMQ
  • thinkphp图片压缩类
  • 如何将图数据库应用于电影智能推荐
  • CSS实现动画效果的菜单收起展开图标,html实现动画效果的箭头
  • 大数据平台小结
  • 力扣-139单词拆分
  • 图机器学习-图神经网络
  • 配置Airbyte资源限制
  • python实现PCA降维画分类散点图并标出95%的置信区间
  • Mysql高级之索引结构详解
  • 【线程-J.U.C】
  • docker布署spring boot jar包项目
  • 极简Vue3教程--Pinia状态管理
  • 常用的map转bean互转方法
  • 2.4G收发一体芯片NRF24L01P跟国产软硬件兼容 SI24R1对比
  • 设计模式之七大原则(一)——单一职责原则、开放-关闭原则
  • C++ set、unordered_set、multiset它们之间的区别与一些使用方法(不断更新)
  • hadoop调优
  • EM@三角函数诱导公式
  • 是不是只能学IT互联网技术才有发展前途?
  • Linux 进程:exit和_exit的辨析
  • 智能电子标签——商超版价签
  • 计算机网络自检
  • DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?
  • 解决vscode无法自动更新