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

PowerShell调用Dynamics NAV 2015代码单元参数传递问题求助

在Dynamics NAV 2015中使用Invoke-NAVCodeunit传参及调用方法的解决办法

一、Argument参数的使用与接收

Invoke-NAVCodeunit的-Argument参数仅用于传递字符串给代码单元的Run触发器,而非自定义方法。要在代码单元内接收该参数,需按以下步骤操作:

  1. 打开目标代码单元(如50060),编辑其Run触发器,添加一个文本类型的参数(例如Param : Text[250])。
  2. 在Run触发器的逻辑中直接使用这个参数即可。
  3. PowerShell调用示例:
Invoke-NAVCodeunit -ServerInstance navisiontest -CompanyName d-velop -CodeunitId 50060 -Argument "需要传递的字符串参数"

二、MethodName调用报错的解决

你遇到的Method 'Codeunit50060.UpdateStatus(number of arguments: 1), with matching argument types.' not found错误,原因是调用时参数数量/类型与代码单元内方法定义不匹配:

  • 从你提供的代码单元内容来看,UpdateStatus方法包含两个参数:DocNo : Code[20](文档编号)和Status : Option(状态选项),但你调用时仅传入了1个参数,导致匹配失败。
  • 此外,调用自定义方法时需注意:
    1. 方法必须设置为**全局(Public)**属性,否则无法通过PowerShell调用。
    2. 使用-MethodName时,需搭配-ArgumentList参数传递对应参数(而非-Argument),且参数类型要与NAV内定义一致:
      • Option类型参数需传入对应的整数值(例如Status选项若为Open=0, Closed=1,则传0或1)。
      • 文本/代码类型直接传字符串。

正确的PowerShell调用示例:

Invoke-NAVCodeunit -ServerInstance navisiontest -CompanyName d-velop -CodeunitId 50060 -MethodName "UpdateStatus" -ArgumentList "DOC001", 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:20:38