行业包文档管理 行业包文档管理
首页
  • 系统快速上手
  • Git分支管理规则及协作流程说明
  • 系统账号密码说明
  • 架构说明

    • 系统整体架构说明
    • QMS-SPC系统架构说明
  • 后端基础类库说明
  • PC端前端所有组件说明 (opens new window)
  • 数据模型设计与说明
  • 后端新建微服务配置
  • 后端华为OpenApis开发
  • 事务集成
  • PC端前端从0开始

    • 本地部署运行
    • 创建前端工程
    • PC端组件库安装使用
    • 按钮权限基础包
  • 移动端前端从0开始

    • 移动端打包APK
    • 移动端公共组件
    • 移动端公共库
  • 前端公共

    • 前端整体架构
    • 前端注意事项
  • 公有云部署流程
  • iDME私有化部署流程
  • 许可授权流程
  • 各方案推荐配置清单
  • PC端前端二开流程
  • 移动端底座二开流程
  • 更新日志及规范规范
常见问题
Source (opens new window)
首页
  • 系统快速上手
  • Git分支管理规则及协作流程说明
  • 系统账号密码说明
  • 架构说明

    • 系统整体架构说明
    • QMS-SPC系统架构说明
  • 后端基础类库说明
  • PC端前端所有组件说明 (opens new window)
  • 数据模型设计与说明
  • 后端新建微服务配置
  • 后端华为OpenApis开发
  • 事务集成
  • PC端前端从0开始

    • 本地部署运行
    • 创建前端工程
    • PC端组件库安装使用
    • 按钮权限基础包
  • 移动端前端从0开始

    • 移动端打包APK
    • 移动端公共组件
    • 移动端公共库
  • 前端公共

    • 前端整体架构
    • 前端注意事项
  • 公有云部署流程
  • iDME私有化部署流程
  • 许可授权流程
  • 各方案推荐配置清单
  • PC端前端二开流程
  • 移动端底座二开流程
  • 更新日志及规范规范
常见问题
Source (opens new window)
  • 事务集成

    • 1. 事务能力
      • 2. 事务使用方法
        • 2.1 使用注解 @DmeTransactional 开启事务, 注解参数说明如下
        • 2.2 常用场景注解使用样例
        • 2.3 事务作用范围及注意事项
      • 3. 其他介绍
        • 3.1 IDME事务
        • 3.2 华为MBM事务
        • 3.3 升级包
        • 3.4 查看详细的事务日志
    • 后端功能
    sie
    2025-07-09
    目录

    事务集成

    # 1. 事务能力

    • IDME事务(IDME原子接口事务)

    • 华为MBM事务(华为MBM提供的接口,可以是原子接口、OpenAPI、私有接口, 接口范围由华为方提供)

    • 分布式事务(涉及跨IMOM微服务调用)

    # 2. 事务使用方法

    # 2.1 使用注解 @DmeTransactional 开启事务, 注解参数说明如下

    • distributed: 是否为应用分布式事务,默认为false
    • transactionalType: 事务类型, 默认为TransactionalType.IDME, 可选的配置TransactionalType.IDME、TransactionalType.MBM,IDME为需要开启IDME事务,MBM为需要开启华为MBM事务, 支持多个配置

    # 2.2 常用场景注解使用样例

    1. 只有当前服务开启IDME事务, @DmeTransactional
    2. 只有当前服务开启MBM事务, @DmeTransactional(transactionalType = TransactionalType.MBM)
    3. 只有当前服务同时开启IDME、MBM事务, @DmeTransactional(transactionalType = {TransactionalType.IDME, TransactionalType.MBM})
    4. 分布式场景开启IDME事务, @DmeTransactional(distributed = true)
    5. 分布式场景开启MBM事务, @DmeTransactional(distributed = true, transactionalType = TransactionalType.MBM)
    6. 分布式场景同时开启IDME、MBM事务, @DmeTransactional(distributed = true, transactionalType = {TransactionalType.MBM, TransactionalType.IDME})
    7. 同一个请求想开多个事务, 可以通过开新线程执行达到开新事物的目的

    # 2.3 事务作用范围及注意事项

    1. 同一个微服务多个事务注解时, 只有调用链路上第一个直接会生效, 后续所有的事务注解都会失效, 会直接沿用第一个事务注解配置
    2. 跨IMOM微服务使用事务时, 只有调用链路上第一个直接会生效, 后续所有的事务注解都会失效, 会直接沿用第一个事务注解配置
    3. IDME v3版事务接口最多支持执行10个原子接口; 在同一台设备(即同一个IP地址)上,每秒最多可以开启30个v3版本事务
    4. 调用华为MBM支持事务的接口时,如果开启了MBM事务, 那调用该接口后,接口的返回值不能使用, 华为是在提交那一步执行此接口的 分布式事务作用范围

    # 3. 其他介绍

    # 3.1 IDME事务

    1. 涉及的接口为IDME原子接口包含以下字符的接口create、update、delete
    2. 👉🏻 IDME事务方案官方手册 (opens new window)

    # 3.2 华为MBM事务

    1. 调用方法时不立刻执行,再提交事务才实际执行
    2. MBM事务方案说明:
    3. MBM事务支持的接口清单:
    • deduct-materials:物料扣减: /imes/siteSfcService/openapi/v1/upload-materials/deduct
    • pass-station-wait:签收: /imes/siteSfcService/v1/open-api/pass-station/wip-wait
    • pass-station-trackin:在制品进站: /imes/siteSfcService/v1/open-api/pass-station/wip-trackin
    • pass-station-trackout:在制品出站: /imes/siteSfcService/v1/open-api/pass-station/wip-trackout
    • pass-station-leave:在制品离站: /imes/siteSfcService/v1/open-api/pass-station/wip-leave
    • create-wip-transaction:在制品交易创建: /imes/siteSfcService/dynamic/api/T_SFC_WIP_TRANSACTION/create
    • update-barcode:条码更新: /imes/siteSfcService/v1/barcode
    • batch-update-wip-info:批量更新在制品信息: /imes/siteSfcService/openapi/v1/wip-info/batch-update
    • batch-update-work-order:批量更新工单: /imes/sfcService/openapi/v1/wos/batch-update
    • batch-create-erp-wos:批量创建ERP工单: /imes/sfcService/openapi/v1/erp-wos/batch-create
    • wo-update:更新工单: /imes/sfcService/dynamic/api/Wo/update
    1. 部署华为MBM服务时(华为MBM服务指的是支持事务的华为应用,例如sfc、wom服务等),需要配置行业包IDME地址
    2. 增加其他事务接口, 涉及的接口为华为MBM指定的接口, dme-sdk-core中已经集成了目前支持的接口, 需要增加其他接口可以通过以下两种方式增加, 不论哪种方式增加的如果是通用的都要提供给框架组添加进dme-sdk-core
    • 通过代码修改
    //取出系统已经配置的接口
    Map<String, TxActionApi> txActionApiMap =MbmProxyConfiguration.txActionApi.stream()
                        .collect(Collectors.toMap(TxActionApi::getActionName, Function.identity()));
    //添加新的接口, 采用MAP是为了手工配置的与系统已经配置接口重复
    TxActionApi txActionApi = new ArrayList();
    // txActionApi 为要添加的接口列表需要手工赋值
    txActionApi.forEach(txActionApi -> txActionApiMap.put(txActionApi.getActionName(), txActionApi));
    // 重新赋值
    MbmProxyConfiguration.txActionApi = new ArrayList<>(txActionApiMap.values());
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    • 通过配置修改, 需要引入依赖dme-sdk-starter pom.xml配置
            <dependency>
                <groupId>com.sie.mbm</groupId>
                <artifactId>dme-sdk-starter</artifactId>
            </dependency>
    
    1
    2
    3
    4

    common.yml配置

    hwmbm:
      domain: XXX
      service: dynamic/api
      executeService: rdm/basic/api/customservice
      commonService: rdm/common/api
      subApp:
        - name: mdm
          url: imes/mdmService
        - name: wom
          url: imes/sfcService
        - name: ems
          url: imes/emsService
        - name: les
          url: imes/lesService
        - name: qms
          url: imes/qmsService
        - name: sfc
          url: imes/siteSfcService
        - name: mpdm
          url: imes/mpdmService
        - name: msm
          url: imes/msmService
      # MBM事务接口配置
      txActionApi:
        # 动作名称, 华为提供,例如:deduct-materials
        - actionName: XXX
        # 动作描述, 主要用于日志展示,例如:扣减物料
          actionDesc: XXX
        # 接口方法, 华为提供, 例如:POST、GET、PUT、DELETE等 
          httpMethod: POST
        # 接口链接, 华为提供, 例如:/imes/siteSfcService/openapi/v1/upload-materials/deduct
          actionUri: XXX
        # 是否启用, 默认启用
          enable: true #
        # 模拟响应, 原接口需要异步执行,此处是模拟返回,避免解析响应出错
          result: null
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36

    # 3.3 升级包

            <!-- mbm-mom-framework 所涉及的包统一升级, 要注意项目有没有单独引版本 -->
            <dependency>
                    <groupId>com.sie.mbm.mom</groupId>
                    <artifactId>framework-bom</artifactId>
                    <version>2.0.2-SNAPSHOT</version>
            </dependency>
            
            <!-- mbm-dme-sdk 所涉及的包统一升级, 要注意项目有没有单独引版本 -->
            <dependency>
                <groupId>com.sie.mbm</groupId>
                <artifactId>dme-sdk-spring</artifactId>
                <version>2.0.2-SNAPSHOT</version>
            </dependency>
            
           <!-- mbm-mom-common在framework里面会升级, 要注意项目有没有单独引版本 -->
           <dependency>
                <groupId>com.sie.mbm.mom</groupId>
                <artifactId>mbm-mom-common</artifactId>
                <version>2.0.1-SNAPSHOT</version>
            </dependency>
            
            <!-- mbm-mom-sdk所涉及的包统一升级, 要注意项目有没有单独引版本 -->
            <dependency>
                <groupId>com.sie.mbm.mom</groupId>
                <artifactId>mom-sdk-api</artifactId>
                <version>2.0.4-SNAPSHOT</version>
             </dependency>
             
             <!-- public行业包微服务升级 -->
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    # 3.4 查看详细的事务日志

        <logger name="com.sie.dme.sdk.executeDme" level="DEBUG" additivity="false">
            <appender-ref ref="console"/>
            <appender-ref ref="debug"/>
        </logger>
    
    1
    2
    3
    4
    在线编辑 (opens new window)
    最近更新
    01
    交付人员二开
    09-16
    02
    业务集成二开
    09-16
    03
    移动端工具库
    06-17
    更多文章>
    Theme by Vdoing | Copyright © 2023-2026 SIE
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式