You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Guidewire中Exportable实体是什么?如何创建?三类实体差异解析

Guidewire中的Exportable实体详解及三类实体对比

一、Exportable实体是什么

Exportable是Guidewire专为跨系统数据同步设计的实体类型,它继承自Extendable实体,内置了完整的导出能力——包括字段映射、触发规则、目标系统适配等。简单来说,如果你需要把Guidewire内的业务数据(比如保单、理赔记录)导出到外部CRM、财务系统,用Exportable实体可以直接复用框架的导出逻辑,不用从零开发。

二、如何创建Exportable实体

步骤1:定义实体类

在对应模块的实体目录(比如PolicyCenter的src/gw/pl/policy/entity)创建.gs文件,继承框架提供的Exportable基类(比如业务模块的pl.entity.PolicyExportableEntity,或者通用的gw.entity.ExportableEntity):

class CustomClaimExport extends pl.entity.ClaimExportableEntity {
    // 自定义需要导出的额外字段
    String externalClaimId
    Date exportTimestamp
}

步骤2:配置导出字段映射

重写getExportDefinition()方法,指定内部字段到外部系统字段的映射规则:

@Override
ExportDefinition getExportDefinition() {
    return ExportDefinition.create()
      .addField("claimNumber", "external_claim_id") // 内部字段名 -> 外部系统字段名
      .addField("lossDate", "loss_occurrence_date")
      .addField("externalClaimId") // 直接导出字段,内外字段名一致
}

步骤3:配置导出触发器

在模块的export-config.xml中设置触发导出的事件(比如实体状态变更)和目标系统信息:

<export-task entity="CustomClaimExport">
    <trigger event="ClaimFinalized"/> <!-- 理赔状态变为终态时触发导出 -->
    <destination type="REST" url="https://thirdparty-system.com/api/claims"/> <!-- 导出目标地址 -->
</export-task>

步骤4:自定义导出逻辑(可选)

如果需要添加校验、加密等自定义逻辑,重写export()方法:

@Override
void export() {
    // 导出前校验必填字段
    if (!externalClaimId) {
        throw new ExportException("External claim ID cannot be empty for export")
    }
    super.export() // 调用父类默认导出逻辑
}

三、Extendable、Exportable、Final Entities三类实体的区别

1. 核心定位

  • Extendable实体:Guidewire的基础可扩展实体,是绝大多数业务实体的父类,核心目标是支持客户化定制——允许添加字段、重写业务方法,适配不同客户的业务需求,无内置导出能力。
  • Exportable实体:在Extendable基础上扩展了数据导出能力,专门用于需要和外部系统同步数据的场景,自带导出规则、触发器等框架支持。
  • Final Entities:标记为final的系统核心实体,禁止继承或修改,用于保证Guidewire底层核心逻辑的稳定性(比如内置的PolicyPeriod、User实体)。

2. 定制能力

  • Extendable:完全开放定制——可添加字段、重写方法、扩展业务流程。
  • Exportable:继承Extendable的定制能力,额外支持自定义导出规则、导出逻辑。
  • Final Entities:无任何定制权限——不能继承,不能添加/修改字段,只能通过关联其他Extendable实体间接扩展功能。

3. 使用场景

  • Extendable:用于需要客户化的业务实体,比如自定义保单附加信息、理赔备注实体。
  • Exportable:用于需要跨系统同步的实体,比如导出到财务系统的账单、导出到CRM的客户信息。
  • Final Entities:用于Guidewire内置的核心基础实体,确保系统底层逻辑不被随意修改。

4. 代码示例对比

Extendable实体示例

class CustomPolicyTag extends pl.entity.PolicyExtendableEntity {
    String policyTag
    Date tagAddedDate
}

Final实体示例(系统内置,用户无法修改)

final class PolicyPeriod extends gw.entity.FinalEntity {
    Date effectiveDate
    Date expirationDate
    // 系统内置方法,用户无法重写或扩展
    boolean isActive() { ... }
}

内容的提问来源于stack exchange,提问作者sumanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:01:24