数字化工厂运营中心通过统一系统平台、统一门户入口、统一权限管理和统一的数据模型来集成制造企业从产品研发、生产、销售、物流到售后整个价值链过程中需要的所有应用。托管到物联网市场的单租户方式第三方应用,需要要遵循数字工厂的集成规范进行以下步骤的改造,就能实现整合到数字工厂运营中心中,为企业用户提供业务服务。

第一步,实现应用描述接口

第三方应用需要实现一个应用自描述的接口,实现该接口以后,企业用户在物联网市场中订购应用以后,数字化工厂运营中心将自动加载应用自描述的接口内容,对应用进行集成。应用自身需要提供http服务,如免密登陆(GetSSOUrl)、生产租户(CreateInstance)等服务,详细要求参考SaaS应用对接方案。对于工业应用新增一个获取配置的服务,对外提供应用描述文件,用来将其功能融入数字化工厂运营中心中。

应用配置文件格式

{
  "appName":"某某应用",
  "urlprefix": "https://abc.com",
  "resources": [
    {
      "resCode": "",
      "page": "",
      "name": ""
    }
  ],
  "navigators": [
    {
      "module": "",
      "page": "",
      "pageId": "",
      "path": ""
    }
  ],
  "specialpages": [
    {
      "type": "configuration",
      "path": ""
    },
    {
      "type": "help",
      "path": ""
    },
    {
      "type": "description",
      "path": ""
    }
  ]
}
要求:
  • resources的resCode字段可以由字母/数字/中划线'-'组成;
  • navigators的page字段命名唯一,不可以重复。
  • navigators的page字段、module字段会在前端显示出来,建议用中文。
鉴权资源码:
  • 访问应用配置时,注入resCodePrefix
  • 鉴权资源码=resCodePrefix + 分隔符‘#’ + 配置文件中定义的resCode;
  • 应用内部使用上述规则生成的“鉴权资源码”,调用应用鉴权API对资源进行鉴权。

    独占式应用由域名和服务路径拼接成服务的URL, 例如应用的域名为https://test.com, 服务URL为https://test.com/appconfig。共享式应用由免密登陆地址解析出前缀,再和服务路径拼接成服务URL。(1)通过免密登陆URI获取免登ssourl;(2)以/login?token为界解析出ssourl的前半部分,再与服务路径拼接成访问地址。例如ssourl为https://test.com/user/login?token=xxx

访问配置接口的方式

独占式应用

由域名和服务路径拼接成服务的URL, 例如应用的域名为https://test.com, 服务URL为https://test.com/appconfig。

共享式应用

由免密登陆地址解析出前缀,再和服务路径拼接成服务URL。通过免密登陆URI获取免登ssourl;(2)以/login?token为界解析出ssourl的前半部分,再与服务路径拼接成访问地址。

同时实现一个GET方法的URL, 无需登陆即可访问应用配置接口 /appconfig

接口返回示例如下:

{
    "code": 200,
    "message": "success",
    "data": {
      "appName":"某某应用",
      "urlprefix": "https://abc.com",
      "resources": [
        {
          "resCode": "resCode",
          "name": "指标管理权限"
        }
      ],
      "navigators": [
        {
          "module": "经营驾驶舱",
          "page": "经营驾驶舱",
          "pageId": "dashboard_main",
          "path": "/dashboard"
        },
        {
          "module": "经营驾驶舱",
          "page": "指标管理",
          "pageId": "dashboard_kpimgr",
          "path": "/dashboard/kpimgr"
        },
        {
          "module": "经营驾驶舱",
          "page": "经营报表",
          "pageId": "dashboard_report",
          "path": "/dashboard/report"
        }
      ],
      "specialpages": [
          {
            "type": "configuration",
            "path": "/dashboard/kpimgr"
          },
          {
            "type": "help",
            "path": "/dashboard/help"
          },
          {
            "type": "description",
            "path": "/dashboard/description"
          }
      ]
    }
}

导航配置

导航配置列出该应用哪些一级页面需要集成到数字化工厂运营中心的门户中。导航配置中的模块名称,是在运营中心的导航配置页面的时候对页面进行分组用;页面名称为显示的页面名称;访问路径为整合到门户以后,数字中心访问该应用页面的相对路径。



模块名称 页面名称 访问路径
生产调度 查看生产计划 /queryAllWorkorders
生产调度 确认生产计划 /confirmWorkorder
生产调度 查看生产计划执行结果 /queryWorkorderResults

Json表达方式为:

[
{
 "module: ": "生产调度",
 "page": "查看生产计划",
 "pageId": "queryAllWorkorders",
 "path": "/queryAllWorkorders"
},
{
 "module: ": "生产调度",
 "page": "确认生产计划",
 "pageId": "confirmWorkorder",
 "path": "/confirmWorkorder"
},
{
 "module: ": "生产调度",
 "page": "查看生产计划执行结果",
 "pageId": "confirmWorkorder",
 "path": "/queryWorkorderResults"
}
]

集成到“数字工厂运营中心”后,可以通过左侧导航栏打开应用的页面。

访问共享式应用

页面地址分2个部分:
  • 域名及登陆信息
  • 页面的访问路径
例如:https://test.com/user/login?token=xxxx&oauth_callback=https://test.com/module/page

其中,"https://test.com/user/login?token=xxxx"是通过免密登陆URI返回的免密url, "https://test.com/module/page"是appconfig配置中urlPrefix与path拼接成的资源的访问路径。

访问独占式应用

页面地址分为2个部分
  • 登陆信息
  • 页面URL路径
例如:https://test.com/module/page?code=xxxxxx

其中,https://test.com/module/page是页面的路径;code=xxxxxx是登陆信息。

鉴权资源

鉴权资源列表列出该应用需要进行权限控制的功能点,鉴权资源可以是页面级也可以是按钮级甚至是数据级。比如在生产管理中有一个页面是查看生产计划,并不是所有的用户都可以查看生产计划,需要把这个查看生产计划作为一个页面鉴权;在查看生产计划页面上有一个按钮为"终止计划",这个需要分配给高级别的调度角色才能使用;车间主任只能查看已经确认下发的生产计划,其他状态的生产计划不能查看。以上的场景需要应用声明三个鉴权资源:

资源标识 资源名称 资源页面(非必填)
"queryAllOrderRes" 查看生产计划 查看生产计划
"terminateOrderRes" 终止计划
"queryConfirmedOrderRes" 查看已下发生产计划
注意:资源标识必须当前应用内唯一,且不能与导航配置的pageId相同,后台通过资源标识+应用id生成唯一资源码。
[
  {
    "resCode: ": "queryAllOrder",
    "page": "queryAllWorkorders",
    "name": "查看生产计划"
  },
  {
    "resCode: ": "terminateOrder",
    "name": "终止计划"
  },
  {
    "resCode: ": "queryConfirmedOrder",
    "name": "查看已下发生产计划"
  }
]

应用特殊页面

为提高应用的易用性,应用可以通过描述接口来发布特殊功能的页面,现在描述接口支持三类特殊功能页面:应用配置页面(类型:CONFIGURATION);应用帮助页面(类型:HELP);应用详情介绍(类型:DESCRIPTION)应用配置页面将出现在数字化工厂运营中心中的应用配置页面:

应用帮助页面将出现在数字化工厂运营中心中的帮助页面和应用详情介绍。



第二步,应用鉴权

应用可以通过资源鉴权API获得当前登录的账号是否有分配了鉴权资源的权限。比如应用在查看生产计划的页面中编写一段脚本,根据当前登录的账号是否有"终止生产计划"的权限,通过这个判断"终止生产计划"这个按钮是否disable。 数字化工厂购买并生产完应用后,管理员可以通过设置中心-权限管理-角色管理页面,将应用的鉴权资源权限授予给指定角色,再将角色授予给需要分配该应用鉴权资源权限的账号。

资源鉴权API
name path version description
authenAppResPermission /industry/app/res/permission/authenticate 1.0.1 应用鉴权资源访问鉴权
请求参数
名称 类型 必要 描述 示例
resCode String 应用鉴权资源码,来自应用配置中的resCode "queryAllOrder"
appId String 应用ID,应用唯一标识 "12312312"
employeeId String 员工ID,可通过oAuth2的getEmployeeInfoByAccessToken接口获取 "cxvsdfwefs"
返回参数
名称 类型 描述
id String 请求序号
code Integer 调用返回码,200:成功,其他:失败,返回失败可通过message获取具体错误信息
message String 英文错误信息
localizedMsg String 本地语言错误信息
data Boolean 返回数据,只有code为200时,data才有效,true:有权限;false:无权限
正常返回示例
{
  "id": "70333b89-3302-4006-8559-cf6d345ae52c",
  "code": 200,
  "message": "success",
  "localizedMsg": null,
  "data": true/false
}

第三步,主数据集成

企业主数据是用来描述企业核心业务实体的数据,比如供应商、员工、产品、物料、设备等;它是具有高业务价值的、可以在企业内跨越各个业务部门被重复使用的数据,并且存在于多个异构的应用中。数字化工厂运营中心提供统一的工厂主数据的云数据定义和数据管理功能,第三方应用系统可以通过API查询主数据的元数据和数据实例或者采用订阅方式获得元数据和主数据变更通知。比如设备运维的第三方应用需要用到数字化工厂的设备类型、设备种类和生产设备三种设备主数据,首先通过元数据查询接口获得所有元数据信息,然后根据设备类型、设备种类和生产设备的元数据定义,去订阅这三类主数据,一旦企业的业务用户在数字化工厂运营中心中对主数据进行了操作,新采购了一台设备,创建了对应的生产设备主数据,将通过接口通知设备运维的第三方应用,应用就可以对新的设备进行运维操作。

第四步,工厂模型集成

企业用户在运营中心中创建工厂模型和工艺路径,工厂模型包括企业所有的工厂、车间、产线、加工中心,加工中心下再指定生产设备,工厂模型参考ISA95中的模型定义:



如果第三方应用业务需要用到工厂模型,可以通过API查询工厂模型或者采用订阅方式获得工厂模型变更通知。主数据集成的说明请参看工厂模型集成接口文档

第五步,工艺路径集成

工艺路径是指企业生产某一种物料类型的产品或者半成品时候的加工路线。一条工艺路径包括了多个工序,每一个工序又包括了多个工艺步骤。同一条工艺路径可以在多条产线上执行,工序可以在多个加工中心去执行。工艺步骤和工厂模型的领域模型如下:



如果第三方应用业务需要用到工艺路径,可以通过API查询工艺路径或者采用订阅方式获得工艺路径变更通知。主数据集成的说明请参看工厂路径集成接口文档

第六步,日志集成

为方便工厂的审计,数字化工厂运营中心提供统一的日志管理功能,日志管理能够统一管理所有的业务操作日志和应用的调试、错误日志。运营中心提供第三方应用的日志创建的API,各个业务的日志统一API创建并记录到平台中,由业务用户进行日志查询、导出、归档等操作。

日志记录分成调试/信息/警告/错误四个级别:
  • 调试级别的日志主要是为应用在试用阶段或者项目交付前使用,这个级别的日志保留时间将比较短;
  • 信息级别的日志主要为业务操作日志,比如设备运维应用中设备管理人员创建或者修改了某类型设备的点检规则,这类信息将作为以后业务追溯提供数据依据;
  • 警告级别的日志,主要出现在对数据进行修改和删除中,应用系统做成了提示后用户继续进行操作,比如终止生产工单的操作应用将对用户进行提示并说明操作的影响,如果用户进行操作可以进行警告级别的操作,还有一些应用动作不是由用户触发,而是根据一定规则应用触发的可以对这些动作进行业警告级别的日志记录便于追溯,比如定期检查工单是否关闭,应用根据规则主动关闭一些超时工单,可以通过警告日志记录主动关闭的工单号;
  • 错误级别的日志主要记录引起业务错误操作的记录,比如根据配方进行物料防误检测,发现投料和配方不一致,可以记录错误级别日志已进行质量追溯。


应用调用日志创建方法请参看日志集成服务

第七步,消息集成

数字工厂运营中心提供第三方应用把提醒、故障和报警消息通知到指定员工、组织或者角色。比如说物料管理的第三方应用判断A类原材料低于安全库存水位以后会自动创建补货单,同时需要发出报警消息通知到"原材料仓管员"这样的角色,那么首先通过应用鉴权获得角色列表,然后提供页面选择“原材料管理员”这个角色,获得角色标识以后,可以通过消息集成接口发送报警消息。



消息集成方法请参看消息集成服务

第八步,其他应用数据集成

OEE数据集成

企业用户开通数字工厂官方提供OEE应用服务以后,第三方应用可以通过接口获得实时的OEE计算结果,具体接口请参看OEE应用服务集成。

订单数据集成

企业用户开通数字工厂官方提订单服务以后,第三方应用可以通过接口获得订单服务数据,具体接口请参看订单服务集成

箱包工序计数集成

企业用户开通数字工厂官方提供箱包工序计数服务以后,第三方应用可以通过接口获得箱包工序计数数据,具体接口请参看箱包工序计数服务集成

服装质检/包装环节计数集成

企业用户开通数字工厂官方提供服装质检/包装环节计数服务以后,第三方应用可以通过接口获得实时的服装包装和质检环节计数结果,具体接口请参看服装质检/包装环节服务集成