微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# OdataClient:DataServiceActionQuery,如何执行 Microsoft Dynamics 365 Business Central 的函数?

如何解决c# OdataClient:DataServiceActionQuery,如何执行 Microsoft Dynamics 365 Business Central 的函数?

我一直在尝试从 Microsoft 的 odata 客户端运行 NAV 功能(Microsoft Dynamics 365 Business Central)。当我创建一个 odatav4 数据源并导入 $Metadata 时,我能够在自动生成代码中包含 codeunits 函数,这为我创建了一个 DataServiceActionQuery 类型:

 /// <summary>
 /// There are no comments for Funcions_TestFunction in the schema.
 /// </summary>
 [global::Microsoft.OData.Client.OriginalNameAttribute("Funcions_TestFunction")]
 public virtual global::Microsoft.OData.Client.DataServiceActionQuery Funcions_TestFunction(string param1,string param2,string param3)
    {
        return new global::Microsoft.OData.Client.DataServiceActionQuery(this,this.BaseUri.OriginalString.Trim('/') + "/Funcions_TestFunction",new global::Microsoft.OData.Client.BodyOperationParameter("param1",param1),new global::Microsoft.OData.Client.BodyOperationParameter("param2",param2),new global::Microsoft.OData.Client.BodyOperationParameter("param3",param3));
    }

当我尝试运行它时,我必须将公司代码传递给它,但我不知道该怎么做:

 Uri texte = new Uri(@"http://192.168.0.18:18148/Instancename/ODataV4/");
 NAV.NAV x = new NAV.NAV(texte);
 x.Credentials = credentials;
 DataServiceActionQuery funcionini = x.Funcions_TestFunction(param1,param2,param3);
 funcionini.Execute();

使用 DataServiceQuery(已发布的页面)我没有问题可以通过它,只需添加查询选项:

 DataServiceQuery<NAV.Customer> z = x.Customer.AddQueryOption("company","Mycompany");
 IEnumerable<NAV.Customer> resultat = z.Where(f => f.Type == "something").OrderBy(f => f.Name);//.GetAllPages();

带有邮递员的示例(最后您可以看到 url 参数:?company=mycompany

Sample with postman

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。