多货币金额计算

1. 简介

1.1 案例简介

多货币金额计算插件通过对接实时汇率接口,自动抓取子表单中不同币种金额(如美元、欧元、加密货币等),一键换算为指定结算货币并生成总金额,告别手动逐条计算与汇率更新滞后风险,解决多国采购订单中货币分散核算难题,

1.2 业务背景

在国际贸易与跨境电商等业务中,需要频繁处理多国供应链采购订单,这就使得货币金额需要根据实时汇率进行计算。然而当前的货币计算方式存在以下痛点:

  • 手动换算效率低:业务人员需逐个查询汇率并计算,重复操作耗时,易因货币代码混淆出错;
  • 汇率波动与人工误差风险高:系统未能及时更新汇率或输入错误导致成本核算偏差,审计追溯困难;
  • 多源数据分散难整合:不同表单的货币金额孤立,人工汇总耗时厂,决策信息滞后;
  • 小众货币与新兴需求不支持:现有工具无法覆盖主流货币,无法适配加密货币、区域小众币种等场景。

1.3 设计思路

1)新建「多货币金额计算」表单,用于录入用户提供的货币信息,如:货币小计金额、转换前后货币币种等;

2)开发自建插件「多货币金额计算」,用于将当前货币金额转换为用户指定的货币金额,具体包括:

  • 设置请求参数,确保能够获取到用户所输入的货币信息;
  • 设置返回参数,将通过代码计算出的货币金额返回给用户;
  • 进行代码编辑,将当前货币金额转换为用户指定的货币金额。

3)在表单中设置前端事件,调用自建插件「计算货币汇率」,从而实现将计算出的货币金额回写在表单中的效果。

1.4 预期效果

以将人民币计算转换为港币为例,效果如下所示:

2. 表单搭建

在学习之前建议安装 计算货币汇率应用模板,本文将按照模板中的示例数据进行讲解。

新建「物资采购表」表单,所需字段及字段设置如下所示:

字段名称

字段类型

字段设置

采购明细

子表单

——

物资名称

单行文本

单价

数字

采购数量

货币

下拉框

小计

数字

在「字段属性 >> 默认值」处选择「公式编辑」,设置公式如下:

采购明细.单价*采购明细.采购数量

汇总货币

下拉框

——

是否开始计算

按钮

总金额

单行文本

3. 自建插件设计

3.1 新建自建插件

在「开放平台 >> 开发者后台 >> 自建插件」处,点击「新建插件」,并在「插件设计」页面中修改自建插件的名字为「多货币金额计算」。

3.2 新建函数

进入「插件设计」页面中,系统默认添加一个后端函数,点击函数右侧的三个小圆点,选择「编辑名称」,并修改函数名称为「计算货币」。

3.3 设置参数

3.3.1 设计请求参数

点击「请求参数」,在页面中添加并设置字段控件,如下所示:

字段名称

字段类型

字段设置

子表单

子表单

在右侧字段信息处,修改 ID 为 subform_data

货币

下拉框

在右侧字段信息处,修改 ID 为 currency

金额

数字

在右侧字段信息处,修改 ID 为 amount

最终货币

下拉框

在右侧字段信息处,修改 ID 为 target_currency

3.3.2 设计返回参数

点击「返回参数」,添加返回参数,并进行如下设置:

  • 修改显示名称为「返回参数」;
  • 修改 ID 为「final_total」;
  • 选择类型为「any」。

3.4 编辑代码

请求参数和返回参数都设计完成后,点击「代码」进入代码编辑页面。代码示例如下所示:

import requests
import json

# 获取汇率数据
url = "https://v2.xxapi.cn/api/allrates?key=123456789012345"
headers = {
    'User-Agent': 'xiaoxiaoapi/1.0.0 (https://xxapi.cn)'
}
response = requests.get(url, headers=headers)
rates_data = response.json()["data"]["rates"]

subform_data = triggerConf.get('subform_data')
target_currency = triggerConf.get('target_currency')

# 计算转换并汇总总金额
total_amount = 0

for item in subform_data:
    from_currency = item["currency"]
    amount = item["amount"]

    if from_currency == target_currency:
        converted_amount = amount
    else:
        from_rate = rates_data[from_currency]["rate"]
        to_rate = rates_data[target_currency]["rate"]
        converted_amount = amount * (to_rate / from_rate)

    total_amount += converted_amount

# 最终总金额
final_total = float(round(total_amount, 2))

return {"final_total": final_total}

3.5 保存并启用

参数和代码都设计完成后,点击右上角的「保存」按钮,并返回至「自建插件」页面中,打开「多货币金额计算」右侧开关,即可启用插件。

4. 调用插件

4.1 添加按钮执行动作

进入物资采购」表单中,点击「是否开始计算」按钮,在「字段属性 >> 执行动作」处点击「设置」,添加一个前端事件。

4.2 设置事件名称和说明

添加好前端事件后,首先设置前端事件的基础信息,即事件名称和事件说明,用于区分前端事件。设置完成后,点击「下一步」。

4.3 设置执行动作

设置执行动作如下:

  • 选择插件:选择「多货币金额计算」插件;
  • 子表单:选择赋值方式为「按子表单赋值」,并选择子表单为「采购明细」,详细设置如下:
    • 货币:设置为「字段值」,即「采购明细.货币」字段;
    • 金额:设置为「字段值」,即「采购明细.小计」字段;
  • 最终货币:设置为「字段值」,即「汇总货币」字段;
  • 字段存储关系:点击添加按钮,将「返回参数」的值存储到「总金额」中。

全部设置完成后,点击「保存」按钮。

4.4 效果演示

效果参见本文【1.3 预期效果】。

5. 共创伙伴

诚挚感谢个人共创伙伴余绪东老师为简道云生态提供的插件案例!该插件以实时汇率对接+多币种智能转换能力,直击跨境业务中货币分散核算的顽疾,有效规避汇率波动风险与人工误差,成为企业全球化运营的数字算力底座。进一步验证了自建插件无需依赖复杂系统,通过轻量化工具即可将高频痛点转化为高效解决方案,彰显了开放平台以小工具撬动大场景的无限潜力。

立即探索自建插件,解锁属于您的数字化创新力!

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验