首页 > 其他分享 >泛微OA更换字段

泛微OA更换字段

时间:2024-07-16 17:25:55浏览次数:10  
标签:-- billfield update OA id where 字段 更换 泛微

节选自:https://mp.weixin.qq.com/s/1I8QYxDuRJ45M9zuImc8bA

一、背景介绍:

    在日常的流程使用的过程中会有一种情况,那就是被引用的字段是无法再次进行编辑的。

    要想把这个被引用的字段进行替换的话,通常的办法是需要一个新增字段,并且在各个节点模版里面把旧的字段拿掉,放上新的字段,才能实现更换字段的目的,这就造成了极大的工作量。

    该技巧主要是通过操作数据库的方式来实现新旧字段的替换,以减轻工作量。

二、功能介绍:

    需要变动的表分为逻辑表和物理表;

-- 逻辑表存的OA表单管理界面显示的字段信息,在workflow_billfield中,根据fieldid可以查到;

-- 物理表指实际数据库上的表,比如formtable_main_xxx。

三、具体的步骤:

  1. 先在OA表单管理上直接新增字段,为了便于描述,我们这里将字段定义为Anew,将要替换掉的旧字段定义为A。

  2. 数据库查询workflow_billfield表中A和Anew的数据,然后对比一下两行数据之间的区别,把Anew记录update给A的记录。(除了uuid字段,这个是每个字段唯一的)(谨慎点可以备下份)

  3. formtable_main_xxx物理表中,查看表结构,确认Anew的字段类型,然后执行Alter,把A的字段类型改成和Anew一样。(如果有历史数据,需根据情况判断处理)

  4. 数据库操作完之后,需要刷新下缓存,两种方式:访问缓存管理界面点击重新加载配置或直接重启OA。

  5. 就会发现流程表单上A字段已经替换为Anew字段了。第1步在表单管理界面加的Anew就可以直接删掉。

【相关sql可以参考附录里面的内容】

四、附录

步骤中涉及的sql语句可参考:

--如果修改字段类型涉及到物理表数据类型,需要修改物理表

    --修改【币别】字段为系统标准币别

    update workflow_billfield 

    set fielddbtype='int',fieldhtmltype='3',type='12'  

    where id=字段id

    --修改【部门】字段为系统标准部门

    update workflow_billfield

    set fielddbtype='int',fieldhtmltype='3',type='4'

    where id=字段id

    --修改字段为单行文本

    update workflow_billfield

    set fielddbtype='varchar(300)',fieldhtmltype='1',type='1'

    where id=字段id

    --修改字段为整数

    update workflow_billfield

    set fielddbtype='int',fieldhtmltype='1',type='2'

    where id=字段id

    --修改字段为两位小数

    update workflow_billfield

    set fielddbtype='decimal(38,2)',fieldhtmltype='1',type='3'

    where id=字段id

    --修改字段为多行文本

    update workflow_billfield

    set fielddbtype='text',fieldhtmltype='2',type='1'

    where id=字段id

    --修改字段为单选系统浏览按钮

    update workflow_billfield

    set fielddbtype='int',fieldhtmltype='3',type='16'

    where id=字段id

    --修改字段为多选系统流程浏览按钮

    update workflow_billfield

    set fielddbtype='text',fieldhtmltype='3',type='152'

    where id=字段id

    --修改字段为多选系统归档流程浏览按钮

    update workflow_billfield

    set fielddbtype='varchar(4000)',fieldhtmltype='3',type='171'

    where id=字段id

    --修改字段为自定义浏览按钮

    update workflow_billfield

    set fielddbtype='browser.浏览按钮标识',fieldhtmltype='3',type='161' --type=161 是单选   162是多选

    where id=字段id

---涉及到物理表数据类型,调整语法参考

alter table (table_name) alter column (column name)  (type)

--update联合查询语法

UPDATE table1 inner/left/right join table2/(select columns from table3

[inner/left/right join on condition] [where conditions]) as t3

ON condition

SET column1 = value1,column2 = value2,...

[WHERE conditions];

update node1

set FullName=node3. FullName from node1, node3

where node1. Parentld=node3. Parentld AND node1.[ Level]=node3.[ Level]

--修改物理表列名

exec sp_rename 'formtable_main_665.bckhfftzje','kehProposalAmount' 

标签:--,billfield,update,OA,id,where,字段,更换,泛微
From: https://blog.csdn.net/u010366234/article/details/140471978

相关文章

  • C. Load Balancing
    原题链接题解找出大于对应平均数的部分。。。code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constllN=114514;lla[100006];voidsolve(){lln;cin>>n;llsum=0;for(inti=1;i<=n;i++){cin>>a[i];......
  • 如何更换服务器硬盘
    一、前期准备备份数据:在更换硬盘之前,务必对服务器上的重要数据进行全面备份。这可以通过使用备份软件或手动复制文件到外部存储设备(如移动硬盘、云存储等)来完成。确保备份文件的完整性和可恢复性,以防止数据丢失。关闭服务器:在进行硬盘更换之前,需要先关闭服务器。确保保存并关......
  • 基于WAF+Splunk+FW简单SOAR平台搭建
    基于WAF+Splunk+FW简单SOAR平台搭建目录基于WAF+Splunk+FW简单SOAR平台搭建1基于WAF+Splunk简单SOC平台搭建1.1准备环境1.2配置Splunk1.2.1配置数据源(从网络端口获取)1.2.2创建应用1.2.3创建警报1.2.4创建警报触发动作1.2.5建议封禁的策略2基于FW+Splunk警报实现自动化运......
  • Camunda流程运行中,需要更换UserTask的被订阅者
    主要应用于实际开发中,考虑到会有人员调动的情况publicvoidchangeManager(Stringoriginal,Stringnow,StringvariableName){//当前任务授予人替换List<Task>list=taskService.createTaskQuery().taskAssignee(original).list();list.strea......
  • vscode插件导致c盘内存高电脑变卡的处理方式,更换vscode插件位置
    vscode扩展包默认的安装路径是:C:\Users\用户名\.vscode\extensions,由于C盘存储空间不足,vscode扩展包体积大,需要迁移到D盘。1、关闭vscode;2、打开到D盘,创建文件夹,我的目标文件夹路径是:D:\ProgramFiles\.vscode\extensions 3、点击vscode右键,依次点击“属性”,“快捷方式”,目......
  • [极客大挑战 2020]Roamphp1-Welcome 1
    前端代码审计,信息收集,sha1绕过进来之后发现什么都没有,什么东西都找不到,扫后台也没东西,可以看到在请求头中有异常尝试切换get传参为post传参爆出了源码<?phperror_reporting(0);if($_SERVER['REQUEST_METHOD']!=='POST'){header("HTTP/1.1405MethodNotAllowed")......
  • nginx ./nginx -s reload 工作进程pid与实际不一致导致平滑重启报错
    某次修改nginx配置后使用./nginx-sreload重启nginx,结果报错,如图所示,去kill工作进程的时候显示找不到该进程原因是位于nginx/logs下的nginx.pid中的pid和实际不一致造成的nginx.pid文件是Nginxweb服务器在启动时创建的一个进程标识符(PID)文件。这个文件包含......
  • 使用Java实现OAuth2.0认证
    使用Java实现OAuth2.0认证大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!OAuth2.0认证简介OAuth2.0是一种开放标准的授权协议,允许用户授权第三方应用访问其资源,而无需将用户名和密码提供给第三方应用。在Web开发中,OAuth2.0已经成为一种常见的认证机制,用......
  • Simple WPF: WPF使用Windows API发送Toast通知
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。创作不易,如果觉得有用请在Github上为博主点亮一颗小星星吧!以前看到Windows10的气泡通知觉得很有意思,但是一直不知道该如何实现。最近一次上网冲浪过程中偶然的机会看到了相关资料就自己来试试。本文介绍了在WPF......
  • Cocos 打包微信小游戏,关闭load插屏
    最近开始研究微信小游戏,有兴趣的可以关注一下公众号,记录一些心路历程和源代码。一共有2个load如图下这个在构建小程序项目之后我们打开 first-screen.js 找到 tick方法里的 draw注释掉运行微信小游戏就没有那个load了。在构建发布时可以选择不勾选或者更......