扩展页面寻址逻辑
一 涉及数据库表
t_dyn_dynamicconfigure:
存放的所有的扩展页面和标准页面的页面数据,parentid字段表示父页面的id,如果是标准页面则该字段为空,如果是扩展页面则该值为标准页面的fid,isenable表示是否可用,configuration为该页面的配置项脚本,webuiobjectname为uipk
T_Con_DynamicMetaData :
存放的是具体页面的元数据
T_EP_CUSTOMIZEDSCHEME:
扩展方案表,isStart表示启用禁用,isWeb表示是否为web方案
T_EP_CUSTOMIZEDUNIT:
扩展业务单元表,customizedSchemeID为所属扩展方案ID, appSolutionID为其标准业务单元ID
T_DYN_PageUserOrgUict:
组织页面用户关联表,保存了页面和用户组织的分配关系,orgid为组织ID, FCONFIGUREID对应页面id
二 扩展页面寻址原理
1、 先根据uipk进行寻找
select * from T_DYN_DYNAMICCONFIGURE where fwebUIObjectName = 'com.kingdee.eas.fi.ar.arOtherbillEditPage_eascard005'
这里会优先返回fisnew=1的页面
2、 判断是否需要寻址
SELECT * FROM t_dyn_dynamicconfigure where fparentid='05cea93234b6f33b' and isenable =1
如果没有查询到父页面元数据,则说明该页面不是扩展页面,直接返回该页面元数据
3、 根据上下文获取当前登录的组织信息
进而获取到组织ID,由组织id、用户id、页面id查出该页面的分配关系(这里会递归父组织进行查询),如果查询结果不为空,则返回第一个分配页面
select a.fwebUIObjectName,b.forgID from T_DYN_DynamicConfigure a
left join T_DYN_PageUserOrgUict b on a.fid = b.FCONFIGUREID
where a.fwebuiobjectname = 'com.kingdee.eas.basedata.assistant.periodEditUI_copy_eascard001'
and b.forgid = '00000000-0000-0000-0000-000000000000CCE7AED4' and a.fisenable = 1
4、根据uipk取出所有扩展页面集合
上面组织分配页面查询为空时,则根据uipk取出所有扩展页面集合,返回最后一个创建的扩展页面。
三 示例
1、 先找到标准页面的id
SELECT * FROM t_dyn_dynamicconfigure where fwebuiobjectname= 'com.kingdee.eas.cp.bc.BizAccountBill_Edit_Open'
2 、根据标准页面id找到所有的扩展页面
SELECT * FROM t_dyn_dynamicconfigure where fparentid='05cea93234b6f33b'
3 、查看所有的扩展页面的父页面id,自己的id,是否启用,扩展页面uipk
SELECT fparentid,fid,fisenable,fwebuiobjectname FROM t_dyn_dynamicconfigure where fparentid='05cea93234b6f33b'
4 、根据扩展页面uipk去该表中找元数据
SELECT * FROM T_Con_DynamicMetaData where FMETADATAPK= 'com.kingdee.eas.cp.bc.BizAccountBill_Edit_Open_eascard002'
5、删除扩展页面
delete from t_dyn_dynamicconfigure where fid = 'hK8AAAAD1aKxUARR'
6、删除扩展页面元数据
delete from T_Con_DynamicMetaData where FMETADATAPK = 'com.kingdee.eas.cp.bc.BizAccountBill_Edit_Open_eascard002'
四 常见问题
根据上述原理具体排查当前uipk寻址的哪个页面,常见问题如父组织分配了扩展页面A,当前登录的组织为父组织下的子组织,子组织未分配扩展页面,则默认会使用父组织分配的页面;当低版本升级85后web页面统一做升级,此时同个页面会出现两个相同UIPK的拷贝,一个为卡片布局,当寻址还是为旧页面布局的时候可尝试清理页面缓存或重新进标准配置页面保存。
扩展页面寻址逻辑
本文2024-09-22 20:02:47发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-111104.html