【苍穹开发】根据业务对象标识获取所有字段属性原创
金蝶云社区-_哇哈哈
_哇哈哈
2人赞赏了该文章 2194次浏览 未经作者许可,禁止转载编辑于2021年12月09日 09:30:23

根据苍穹业务对象标识,获取元数据,通过解析元数据获取所有字段属性,按照个性化需求解析字段信息。


具体代码示例如下:

import kd.bos.dataentity.metadata.IDataEntityProperty;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.entity.MainEntityType;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;

import java.util.Map;

public class MetaServiceHelper {

    /**
     * 根据业务对象获取所有字段属性
     *
     * @param formId
     * @return
     */
    public static Map<String, IDataEntityProperty> getAllFieldProp(String formId) {
        if (formId == null || formId.isEmpty()) {
            return null;
        }
        QFilter filter = new QFilter("number", QCP.equals, formId);
        boolean isExist = QueryServiceHelper.exists("bos_formmeta", new QFilter[]{filter});
        if (!isExist) {
            return null;
        }
        MainEntityType dataEntityType = EntityMetadataCache.getDataEntityType(formId);
        if (dataEntityType == null) {
            return null;
        }
        return dataEntityType.getAllFields();
    }
}


如有建议或不足,请联系指正。

赞 2