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

销售录入模型表单问题:首付款与已付金额无法存入数据库

解决销售录入表单首付款与已付金额无法存入数据库的问题

问题核心

前端计算后Rest_Amount和Paid_Amount显示正常,但P13_DOWN_PAYMENT(首付款)和P13_PAID_AMOUNT(已付金额)无法写入数据库,本质是项的会话状态未与前端值同步,加上你配置的重复动态动作引发了状态更新冲突。

修正后的动态动作配置(合并为单个动作)

步骤1:创建统一的金额计算动态动作

  1. 打开Dynamic Actions标签页,右键点击Change节点,选择Create Dynamic Action。
  2. 在New节点配置基础属性:
    • 名称:Calculate Payment Amounts
    • 选择类型:Items
    • 目标项:P13_DOWN_PAYMENT
    • 触发事件:Change(确保输入值变化时立即触发计算)

步骤2:添加剩余金额计算动作

  1. 点击动态动作的True Actions节点,添加Set Value动作:
    • 动作类型:Set Value
    • 设置类型:PL/SQL Function Body
    • PL/SQL函数体:
      RETURN NVL(TO_NUMBER(:P13_PRICE), 0) - NVL(TO_NUMBER(:P13_DOWN_PAYMENT), 0);
      
    • 需要提交的项:P13_PRICE, P13_DOWN_PAYMENT(必须提交这两个项到会话,确保PL/SQL能拿到最新输入值)
    • 受影响元素:
      • 选择类型:Items
      • 目标项:P13_REST_AMOUNT(对应剩余金额的表单项)

步骤3:添加已付金额同步动作

  1. 在同一个动态动作的True Actions下,再添加一个Set Value动作:
    • 动作类型:Set Value
    • 设置类型:PL/SQL Function Body
    • PL/SQL函数体:
      RETURN NVL(TO_NUMBER(:P13_DOWN_PAYMENT), 0);
      
    • 需要提交的项:P13_DOWN_PAYMENT
    • 受影响元素:
      • 选择类型:Items
      • 目标项:P13_PAID_AMOUNT(对应已付金额的表单项)

步骤4:保存配置

完成上述设置后,保存动态动作,测试表单输入。

关键检查项

  1. 会话状态保护:确认P13_DOWN_PAYMENT和P13_PAID_AMOUNT的Session State Protection设置为Unrestricted(或符合安全要求的非阻止状态),避免会话状态更新被拦截。
  2. 表单提交项:检查表单提交逻辑,确保P13_DOWN_PAYMENT和P13_PAID_AMOUNT被包含在提交参数中,服务器能接收到这些值。
  3. 空值处理:PL/SQL中用NVL处理空值,避免因输入为空导致的数值计算错误,保证会话状态能正确更新。

原配置的问题点

  • 重复创建两个针对P13_DOWN_PAYMENT的动态动作,会导致P13_PAID_AMOUNT的状态更新冲突,覆盖正确值。
  • 部分动作未明确指定正确的受影响元素,导致会话状态与前端显示值脱节。
  • 提交项配置不全,PL/SQL无法获取最新的表单输入值,会话状态未同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:03:32