提示:BIP旗舰版自定义字段,特征字段
正文
提示:用于查找单据对应特征字段和特征字段编码对应的表字段:
一、查找业务对象对应特征表和特征字段
示例:
二、使用步骤
1.查找特征字段对应表字段方法
--查表所属用户
select * from dba_tables where table_name = UPPER('bam_accountinfo_character_def_1')
--根据单据表所在的schema+特征字段编码,查特征对应的表名
SELECT EF.REAL_TABLE real_table, EF.REAL_COLUMN real_column,EF.FIELD_NAME field_name ,EO.TABLE_NAME
from YONBIP_FI_CTMPUB.elastic_object EO
LEFT join YONBIP_FI_CTMPUB.elastic_field EF
ON EO.ID = EF.OBJECT_ID
WHERE
EF.FIELD_NAME = 'SFCJKM'
--如果是多个,加上主表前缀
and table_name like 'bam_accountinfo%'
-- EO.TABLE_NAME = 'transferapply_character_define';
--查询特征表
select * from YONBIP_FI_CTMPUB.bam_accountinfo_character_def_1
2.查找特征字段对应的表字段名
//获取特征字段对应的特征表字段名
String SAP_subno = getTz("YONBIP_FI_CTMPUB", "bam_account_currtype_character_def_1", "SAP_subno");//会计科目编号
/**
* 特征编码找特征表对应的字段
* @param schema 主表所属的schema
* @param tzTableName 特征表名
* @param tzCode 特征字段编码
* @return
* @throws Exception
*/
private String getTz(String schema,String tzTableName,String tzCode) throws Exception {
//找特征 对应表字段编码
List<String> list= Lists.newArrayList(tzTableName);
//找特征 对应表字段编码
Map<String, String> def = CommonUtils.getDefList(schema+".elastic_field",list);
if(CollectionUtils.isEmpty(def)){
throw new YpdException("签收确认明细特征不存在");
}
if(!def.containsKey(tzCode)){
throw new YpdException("特征不存在");
}
return def.get(tzCode);
}
总结
结合sql脚本和业务对象,可以快速找到特征字段特征表信息