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

通过DI-API添加支票付款主表项的Outgoing Payments时CFWId不生效

SAP DI-API:支票付款Outgoing Payments现金流ID不生效问题解决

针对你遇到的支票付款(CHK)模式下CashFlowLineItemID不生效的问题,核心原因是支票付款的现金流配置逻辑和银行转账不同,不能直接通过PrimaryFormItems设置,需要绑定到CheckPayment子对象上。

修改后的代码示例

// 先获取现金流ID
int cfwId = Int32.Parse(row["CFWId"].ToString());

if (row["PaymentMen"].ToString() == "BTR")
{
    oPay.PrimaryFormItems.PaymentMeans = PaymentMeansTypeEnum.pmtBankTransfer;
    oPay.PrimaryFormItems.CashFlowLineItemID = cfwId;
}
else if (row["PaymentMen"].ToString() == "CHK")
{
    oPay.PrimaryFormItems.PaymentMeans = PaymentMeansTypeEnum.pmtChecks;
    
    // 关键:创建支票付款子对象并绑定现金流ID
    CheckPayment oCheck = oPay.CheckPayments.Add();
    oCheck.CashFlowLineItemID = cfwId;
    
    // 补充支票必填字段(根据你的SAP配置调整)
    oCheck.CheckNumber = row["CheckNo"].ToString(); // 支票号
    oCheck.BankCode = row["BankCode"].ToString();   // 银行代码
    oCheck.AccountCode = oPay.PrimaryFormItems.AccountCode; // 关联同GL科目
}

原因说明

SAP DI-API中:

  • 银行转账(BTR)的现金流直接关联主付款项PrimaryFormItems,设置其CashFlowLineItemID即可生效
  • 支票付款(CHK)的现金流属于支票子对象的属性,必须在CheckPayment实例中指定CashFlowLineItemID,主项的设置会被忽略,最终默认使用系统配置的现金流

额外注意事项

  • 确保CheckPayment的所有必填字段都已正确赋值,否则SAP会静默跳过自定义配置,使用默认值
  • 验证后台现金流配置:确认你指定的CFWId对应的现金流条目,允许关联支票付款类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:25:31