Skip to content

SDK接口

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

适用范围

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

编写目的

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

适用读者

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

使用SDK

引入依赖

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

添加配置文件application-mdm.properties

  • 独立应用配置
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
  • 微应用项目配置:
properties
mdm.application.name=localhost:28090
mdm.application.afc-token=fb9d872b8a5545d1b38bbe21c8e0175d

使用示例

java
@Autowired
IMDMClient mdmClient;

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

SDK Apis

数据模型API:IDataModelAPI

通过id查找模型

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

通过编码查找模型

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

查找主题的模型列表

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

查找机构的模型列表

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

查询模型历史版本

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

查询扩展信息

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

获取数据模型显示权限

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

获取全部模型

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

通过模型编码获取模型

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

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

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

模型数据API:IDataOpsAPI

按条件查询码段配置

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

对比数据

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

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

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

按主键查询数据

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

按主键查询数据

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

按UID查询数据

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

插入数据

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

插入数据并生效

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

批量插入数据

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

更新数据

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

更新数据并生效

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

批量更新数据及是否生效

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

复制数据

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

删除数据

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

批量删除

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

修订数据

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

批量修订数据

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

生效数据

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

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

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

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

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

批量生效数据

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

批准生效数据

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

批量批准生效数据

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

拒绝生效数据

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

批量拒绝生效数据

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

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

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

启用数据

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

批量启用数据

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

停用数据

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

批量停用数据

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

作废数据

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

批量作废数据

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

推送数据

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

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

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

流程审批通过

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

审批流程驳回

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

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

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

模型主题API:IDataTopicAPI

查询单个主题

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

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

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

查询扩展信息

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

参考数据API:IDictDataAPI

查询参考数据

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    columnCodeString字段编码值
    matchWordString字段值
    pageIndexint页码
    pageSizeint每页大小
    返回值PageResultList参考数据列表

按主键查询

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    idString参考数据id
    返回值List参考数据列表

按父级数据查询

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    parentValueString父级数据
    pageIndexint页码
    pageSizeint每页大小
    返回值PageResultList参考数据列表

保存参考数据

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    dictDataListList参考数据列表
    返回值

删除参考数据

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    dataCodesString[]数据Code列表
    返回值

数据推送,参考数据模型ID和编码必须传一个,dictPushId可以传多个逗号隔开

  • API:

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

    参数类型说明
    dictModelIdString参考数据模型id
    dictModelCodeString参考数据模型编码
    dictPushesList推送目标
    dataIdsList推送的数据id列表
    返回值

参考数据模型API:IDictModelAPI

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

  • API:

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

    参数类型说明
    idString参考数据模型id,必填
    versionInteger参考数据模型版本
    返回值MDMDictModelDTO参考数据模型信息

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

  • API:

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

    参数类型说明
    codeString参考数据模型编码
    versionInteger参考数据模型版本
    返回值MDMDictModelDTO参考数据模型信息

查找模型列表

  • API:

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

    参数类型说明
    topicIdString主题id
    matchWordString模糊查询
    pageIndexint页码
    pageSizeint每页大小
    返回值PageResultList主题下参考数据模型列表

查询某个参考数据模型版本的字段信息

  • API:

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

    参数类型说明
    modelIdString参考数据模型id
    modelCodeString参考数据模型编码
    versionint版本,必填
    返回值List某个参考数据模型版本的字段信息

参考数据主题API:IDictTopicAPI

查询单个主题

  • API:

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

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

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

  • API:

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

    参数类型说明
    parentIdString上级id
    parentCodeString上级编码
    返回值List主题列表