主数据管理平台 主数据管理平台
产品介绍
产品安装指南
快速入门手册
用户操作手册
接口文档
  • SDK接口
  • 适用范围
  • 编写目的
  • 适用读者
  • 使用SDK
  • 引入依赖
  • 添加配置文件application-mdm.properties
  • 使用示例
  • SDK Apis
  • 数据模型API:IDataModelAPI
  • 模型数据API:IDataOpsAPI
  • 模型主题API:IDataTopicAPI
  • 字典数据API:IDictDataAPI
  • 字典模型API:IDictModelAPI
  • 字典主题API:IDictTopicAPI

# SDK接口

SDK全称为Software Development Kit,软件开发工具包,SDK接口,则是这些资源中的API接口,可以让开发者与底层的软件系统进行交互,实现各种自定义的功能。

# 适用范围

本文档适用于集成主数据管理平台的三方应用系统(供开发者参考),文档的适用产品版本为:7.3.0。

# 编写目的

本文档主要介绍sdk的调用方式,以及覆盖编码配置、数据模型及主题、数据字典及主题的查询,数据及国际化的操作等功能的api接口,为使用主数据管理平台服务进行后续开发提供便利。

# 适用读者

本文档的适用读者范围主要是在EOS平台使用主数据管理平台服务的设计和开发人员。

# 使用SDK

# 引入依赖

  • 在独立部署项目中引入以下依赖
<dependency>
    <groupId>com.primeton.mdm</groupId>
    <artifactId>mdm-starter</artifactId>
    <version>7.3.0</version>
</dependency>
  • 在微应用项目中引入以下依赖
<dependency>
    <groupId>com.primeton.mdm</groupId>
    <artifactId>mdm-sdk</artifactId>
    <version>7.3.0</version>
</dependency>

# 添加配置文件application-mdm.properties

  • 独立应用配置
eos.springmvc.eos-serialize.exclude-packages=com.primeton.mdm

spring.jpa.open-in-view=false
spring.jpa.properties.javax.persistence.validation.mode=none
spring.jpa.hibernate.ddl-auto=none
spring.jpa.show-sql=false

## Database Dialect
## MySQL
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
## Oracle
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
## SQLServer
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
## Dameng
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect
### GaussDB
#spring.jpa.database=postgresql
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
#spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false

# unit: millis
mdm.schedule.fixed-delay.mdm-inst-heart-beat=30000
# default : statistic every hour
mdm.report.statistic.interval=0 0 * * * ?
# [file, db]
mdm.data-file.storage-type=file
mdm.data-file.storage-location=./data/data-files
# data model cache
#mdm.data-model-cache.enabled=true
# if set true, and request with a header 'X-MDM-UNIFIED-RESPONSE' = true, mdm will return unified response
mdm.support-unified-response=false
#data record log
mdm.data.record.log.enabled=true
mdm.data.record.log.keep.days=15
# data-push
mdm.push.enabled=true
# if MDM singleton instance lock disabled, else enabled
mdm.push.lock-enabled=true
mdm.push.thread-pool.corePoolSize=10
mdm.push.thread-pool.maxPoolSize=100
mdm.push.thread-pool.queueCapacity=10000
mdm.push.scan.interval-seconds=60
mdm.push.data-page-size=10
mdm.push.data-step-minutes=30

mdm.push.http.validate-response-body.enabled=true
mdm.push.http.validate-response-body.code-attr=code
mdm.push.http.validate-response-body.msg-attr=message
mdm.push.http.validate-response-body.ok-code=200

# t1, t1 + step, t1 + 2*step, ..., t1 + n*step
# t1 + n*step + mistake < now && lastModifiedAt BETWEEN (t1 + (n-1)*step) AND (t1 + n*step - 1s.)
mdm.push.time-mistake-seconds=30
mdm.push.in-time.event-queue-size=100000

# regular cleanup sequenceDate code maxValue
# default true
mdm.block-sequence-code.clear=true
mdm.block-sequence-code.clear.interval=0 0 2 * * ?


mdm.op-log.clean.keep-days=30


#mill s
mdm.afc.copy.scheduled.time=1000
mdm.batch.update.insert.size=1000
#email
spring.mail.host=smtp.126.com
spring.mail.username=youremail@126.com
spring.mail.password=RNGFEHNEKHJHVKKB
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
  • 微应用项目配置:
mdm.application.name=localhost:28090
mdm.application.afc-token=fb9d872b8a5545d1b38bbe21c8e0175d

# 使用示例

@Autowired
IMDMClient mdmClient;

public PageResultList<MDMDataFieldBlockRuleDTO> findBlockRule() {
    IBlockRuleAPI blockRuleAPI = mdmClient.getBlockRuleAPI();
    return blockRuleAPI.findBlockRule("test", "name", 0, 10);
}

# SDK Apis

# 数据模型API:IDataModelAPI

# 通过id查找模型

  • API:
	MDMDataModelDTO findById(String id, Integer version, Boolean includeRelatedModel);
  • 参数说明:
参数 类型 说明
id String 模型id,必填
version Integer 模型版本
includeRelatedModel Boolean 是否携带关联模型
返回值 MDMDataModelDTO 数据模型

# 通过编码查找模型

  • API:
	MDMDataModelDTO findByCode(String code, Integer version, Boolean includeRelatedModel);
  • 参数说明:
参数 类型 说明
code String 模型编码,必填
version Integer 模型版本
includeRelatedModel Boolean 是否携带关联模型
返回值 MDMDataModelDTO 数据模型

# 查找主题的模型列表

  • API:
	PageResultList<MDMDataModelDTO> findByTopicId(String topicId, String matchWord, int pageIndex, int pageSize);
  • 参数说明:
参数 类型 说明
topicId String 主题id
matchWord String 模糊查询
pageIndex int 页码,必填
pageSize int 每页大小,必填
返回值 PageResultList 分页模型列表

# 查找机构的模型列表

  • API:
    PageResultList<MDMDataModelDTO> findByOrgId(String orgId, int pageIndex, int pageSize);
  • 参数说明:
参数 类型 说明
orgId String 主题id,必填
pageIndex int 页码,必填
pageSize int 每页大小,必填
返回值 PageResultList 分页模型列表

# 查询模型历史版本

  • API:
    List<MDMDataModelVersionDTO> findVersions(String dataModelId);
  • 参数说明:
参数 类型 说明
dataModelId String 模型编码,必填
返回值 List 分页数据模型版本

# 查询扩展信息

  • API:
    List<MDMExtendedInfoDTO> findExtendedInfo(String modelId);
  • 参数说明:
参数 类型 说明
modelId String 模型id,必填
返回值 List 扩展信息

# 获取数据模型显示权限

  • API:
    MDMDataPermissionDTO findDataPermission(String dataModelCode);
  • 参数说明:
参数 类型 说明
dataModelCode String 数据模型编码
返回值 MDMDataPermissionDTO 数据权限

# 获取全部模型

  • API:
    List<MDMModelAndTopicDTO> queryDataModels();
  • 参数说明:
参数 类型 说明
返回值 List 模型树

# 通过模型编码获取模型

  • API:
    List<MDMModelDTO> queryDataModelsByCode(String dataModelCode, boolean includeProperty);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码:支持模糊匹配
includeProperty boolean 是否包含属性
返回值 PageResultList 模型DTO

# 左树右表模式下,左侧树的配置

  • API:
    List<MDMModelTreeDTO> queryWithTree(String dataModelCode, String pid, MDMQueryParam queryParam);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型code,必填
pid boolean 为空时查询根列表,否则查询其子列表
返回值 PageResultList 编码规则配置

# 模型数据API:IDataOpsAPI

# 按条件查询码段配置

  • API:
    PageResultList<Map<String, Object>> find(String dataModelCode, boolean withSysColumn, MDMQueryParam param, int pageIndex, int pageSize, Map<String, String> args);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
withSysColumn boolean 是否查询系统字段
param MDMQueryParam 查询条件,必填
pageIndex int 页码
pageSize int 每页大小
args Map<String, String> 额外查询条件
返回值 PageResultList 数据列表

# 对比数据

  • API:
    Map<String, Object> diff(String dataModelCode, String uid, int v1, int v2);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
uid String 数据uid
v1 int 版本1
v2 int 版本2
返回值 Map 对比结果

# 校验数据: 满足校验规则,满足业务主键合法

  • API:
    List<String> validate(String dataModelCode, Map<String, Object> data);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data Map 数据,必填
返回值 List 校验是否通过

# 按主键查询数据

  • API:
    Map<String, Object> findById(String dataModelCode, String id, boolean isParseRefReferenceField);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码
id String 数据id,必填
isParseRefReferenceField boolean 是否存在引用字段
返回值 Map 数据

# 按主键查询数据

  • API:
    List<Map<String, Object>> findByIds(String dataModelCode, String[] ids, boolean isParseRefReferenceField);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码
ids String[] 数据id,必填
isParseRefReferenceField boolean 是否存在引用字段
返回值 Map 数据

# 按UID查询数据

  • API:
    List<Map<String, Object>> findByDataId(String dataModelCode, String uid, boolean isParseRefReferenceField);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
uid String 数据unique id,必填
isParseRefReferenceField boolean 是否存在引用字段
返回值 List 数据的全部版本

# 插入数据

  • API:
    String insert(String dataModelCode, Map<String, Object> data, boolean mustCheck);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data Map 数据
mustCheck boolean 是否数据遮罩
返回值 String 数据id

# 插入数据并生效

  • API:
    String insertAndRelease(String dataModelCode, Map<String, Object> data);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data Map 数据
返回值 String 数据id

# 批量插入数据

  • API:
    List<String> batchInsert(String dataModelCode, List<Map<String, Object>> data, boolean autoRelease);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data List 数据
autoRelease boolean 是否自动生效
返回值 List 数据id列表

# 更新数据

  • API:
    void update(String dataModelCode, Map<String, Object> data, boolean isPrimaryKey, boolean autoRelease, boolean isAllRefData);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data Map 数据,必填
isPrimaryKey boolean 是否根据主键更新
autoRelease boolean 是否自动生效
isAllRefData boolean 是否存在引用字段
返回值 无 无

# 更新数据并生效

  • API:
    void updateAndRelease(String dataModelCode, Map<String, Object> data, boolean isAllRefData);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
data Map 数据,必填
isAllRefData boolean 是否存在引用字段
返回值 无 无

# 批量更新数据及是否生效

  • API:
    void batchUpdate(String dataModelCode, List<Map<String, Object>> dataList, boolean isAllRefData, boolean autoRelease);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
dataList List 数据列表,必填
autoRelease boolean 是否自动更新
isAllRefData boolean 是否存在引用字段
返回值 无 无

# 复制数据

  • API:
    String copy(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 String 新数据id

# 删除数据

  • API:
    void delete(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 无 无

# 批量删除

  • API:
    void batchDelete(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 无 无

# 修订数据

  • API:
    String revise(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 String 修订版本数据id

# 批量修订数据

  • API:
    List<String> batchRevise(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 List 修订版本数据id列表

# 生效数据

  • API:
    MDMResult release(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 新增后立即发起数据生效审批流程

  • API:
	MDMResult newRelease(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 修订保存数据后立即发起数据生效审批流程

  • API:
    MDMResult reviseRelease(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 批量生效数据

  • API:
    void batchRelease(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 无 无

# 批准生效数据

  • API:
    void approve(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 无 无

# 批量批准生效数据

  • API:
    void batchApprove(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 无 无

# 拒绝生效数据

  • API:
    void reject(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 无 无

# 批量拒绝生效数据

  • API:
    void batchReject(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 无 无

# 数据历史版本回退(参数版本可以使用数据ID或数字版本号)

  • API:
    void rollback(String dataModelCode, String id, String version);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
version String 版本,必填
返回值 无 无

# 启用数据

  • API:
    MDMResult enable(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 批量启用数据

  • API:
    MDMResult batchEnable(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 MDMResult

# 停用数据

  • API:
    MDMResult disable(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 批量停用数据

  • API:
    MDMResult batchDisable(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 MDMResult

# 作废数据

  • API:
    MDMResult deprecate(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
id String 数据id,必填
返回值 MDMResult

# 批量作废数据

  • API:
    MDMResult batchDeprecate(String dataModelCode, List<String> ids);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据id列表,必填
返回值 MDMResult

# 推送数据

  • API:
    void push(String dataModelCode, List<String> ids, List<String> subscriberId);
  • 参数说明:
参数 类型 说明
dataModelCode String 模型编码,必填
ids List 数据unique id列表,必填
subscriberId List 订阅者id,必填
返回值 无 无

# 树-数据查看(普通模型)

  • API:
    List<Map<String, Object>> findDataTree(String dataModelId, String id, int pageIndex, int pageSize);
  • 参数说明:
参数 类型 说明
dataModelId String 模型编码,必填
id String 数据id,必填
pageIndex int 页码
pageSize int 每页大小
返回值 List 数据树

# 流程审批通过

  • API:
    void approveProcess(ProcessContext processContext);
  • 参数说明:
参数 类型 说明
processContext ProcessContext 流程
返回值 无 无

# 审批流程驳回

  • API:
	void rejectProcess(ProcessContext processContext);
  • 参数说明:
参数 类型 说明
processContext ProcessContext 流程
返回值 无 无

# 数据元信息 -- 仅系统字段

  • API:
    Map<String, Object> getDataSysInfo(String dataModelCode, String id);
  • 参数说明:
参数 类型 说明
dataModelId String 模型编码,必填
id String 数据id,必填
返回值 Map

# 模型主题API:IDataTopicAPI

# 查询单个主题

  • API:
    MDMDataTopicDTO find(String id, String code);
  • 参数说明:
参数 类型 说明
id String 主题id
code String 主题编码
返回值 MDMDataTopicDTO 主题信息

# 查询列表,参数皆为空则返回全部主题

  • API:
    List<MDMDataTopicDTO> findByParentId(String parentId, String parentCode);
  • 参数说明:
参数 类型 说明
parentId String 上级id
parentCode String 上级编码
返回值 List 主题列表

# 查询扩展信息

  • API:
    List<MDMExtendedInfoDTO> findExtendedInfo(String topicId);
  • 参数说明:
参数 类型 说明
topicId String 主题id,必填
返回值 List 扩展信息

# 字典数据API:IDictDataAPI

# 查询字典数据

  • API:

    PageResultList<Map<String, Object>> find(String dictModelId, String dictModelCode, String columnCode, String matchWord,int pageIndex, int pageSize);
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    columnCode String 字段编码值
    matchWord String 字段值
    pageIndex int 页码
    pageSize int 每页大小
    返回值 PageResultList 分页字典数据列表

# 按主键查询

  • API:

    List<Map<String, Object>> findById(String dictModelId, String dictModelCode, String id);
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    id String 字典数据id
    返回值 List 字典数据列表

# 按父级数据查询

  • API:

    PageResultList<Map<String, Object>> findByParent(String dictModelId, String dictModelCode, String parentValue, int pageIndex, int pageSize);
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    parentValue String 父级数据
    pageIndex int 页码
    pageSize int 每页大小
    返回值 PageResultList 字典数据列表

# 保存字典模型数据

  • API:

    void save(String dictModelId, String dictModelCode, List<Map<String, Object>> dictDataList);	
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    dictDataList List 字典数据列表
    返回值 无 无

# 删除字典模型数据

  • API:

    void batchDelete(String dictModelId, String dictModelCode, String[] dataCodes);
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    dataCodes String[] 数据Code列表
    返回值 无 无

# 数据推送,字典ID和编码必须传一个,dictPushId可以传多个逗号隔开

  • API:

    void push(String dictModelId, String dictModelCode, List<String> dictPushes, List<Object> dataIds);
    
  • 参数说明:

    参数 类型 说明
    dictModelId String 字典模型id
    dictModelCode String 字典模型编码
    dictPushes List 字典推送目标
    dataIds List 推送的数据id列表
    返回值 无 无

# 字典模型API:IDictModelAPI

# 根据id查找单个模型包含字段信息,字段配置信息

  • API:

    DMDictModelDTO findById(String id, Integer version);	
    
  • 参数说明:

    参数 类型 说明
    id String 字典模型id,必填
    version Integer 字典版本
    返回值 MDMDictModelDTO 字典模型信息

# 根据编码查找单个模型包含字段信息,字段配置信息

  • API:

    MDMDictModelDTO findByCode(String code, Integer version);
    
  • 参数说明:

    参数 类型 说明
    code String 字典模型编码
    version Integer 字典版本
    返回值 MDMDictModelDTO 字典模型信息

# 查找模型列表

  • API:

    PageResultList<MDMDictModelDTO> find(String topicId, String matchWord, int pageIndex, int pageSize);
    
  • 参数说明:

    参数 类型 说明
    topicId String 主题id
    matchWord String 模糊查询
    pageIndex int 页码
    pageSize int 每页大小
    返回值 PageResultList 主题下字典列表分页

# 查询某个字典模型版本的字段信息

  • API:

    List<MDMDictFieldDTO> findByVersion(String modelId, String modelCode, int version);
    
  • 参数说明:

    参数 类型 说明
    modelId String 字典模型id
    modelCode String 字典模型编码
    version int 版本,必填
    返回值 List 某个字典模型版本的字段信息

# 字典主题API:IDictTopicAPI

# 查询单个主题

  • API:

    MDMDictTopicDTO find(String id, String code);
    
  • 参数说明:

    参数 类型 说明
    id String 主题id
    code String 主题编码
    返回值 MDMDictTopicDTO 主题信息

# 查询列表,参数皆为空则返回全部主题

  • API:

    List<MDMDictTopicDTO> findByParentId(String parentId, String parentCode);
    
  • 参数说明:

    参数 类型 说明
    parentId String 上级id
    parentCode String 上级编码
    返回值 List 主题列表

← 主数据接口文档