.net Odata 插件

OData Connected Service

https://marketplace.visualstudio.com/items?itemName=laylaliu.ODataConnectedService#review-details

OData v4 Client Code Generator

https://marketplace.visualstudio.com/items?itemName=bingl.ODatav4ClientCodeGenerator

 

1.在Byd中建立自定义 OData服务

.net(c#) 简单调用SAP byd OData 服务

.net(c#) 简单调用SAP byd OData 服务

.net(c#) 简单调用SAP byd OData 服务

服务名称要用英文开头 不包含特殊字符,不然会报错,保存

2.设置OData服务内容

.net(c#) 简单调用SAP byd OData 服务

工作中心视图用于设置整体服务的权限,也可以不设置,然后在实体对象中明细设置对象权限

.net(c#) 简单调用SAP byd OData 服务

选择业务对象.并创建对应实体类型

.net(c#) 简单调用SAP byd OData 服务

导入功能中,设置功能类型和参数

.net(c#) 简单调用SAP byd OData 服务

保存并激活

.net(c#) 简单调用SAP byd OData 服务

打开 服务 URL 并保存为 接口配置.XML

.net(c#) 简单调用SAP byd OData 服务

测试接口

.net(c#) 简单调用SAP byd OData 服务

 

3.在VS 2015中使用

添加服务引用

.net(c#) 简单调用SAP byd OData 服务

地址可以选择保存的 接口配置.XML 也可以直接使用URL(需要用Byd 用户登陆)

.net(c#) 简单调用SAP byd OData 服务

点确定就可以了

4.在VS 2017中使用

添加链接的服务

.net(c#) 简单调用SAP byd OData 服务

选择插件,没安装的需要安装

.net(c#) 简单调用SAP byd OData 服务

选择导出的 接口配置.xml  (不支持URL登陆)

.net(c#) 简单调用SAP byd OData 服务

 

5.Codeing

 

        static  void Main(string[] args)
        {
            var url = "https://my600301.sapbyd.cn/sap/byd/odata/cust/v1/odatacardtest";
            odatacardtest odata = new odatacardtest(new Uri(url))
            {
                //认证信息
                Credentials = new NetworkCredential("zh3305", "*******")
            };
            //执行查询 where 会自动转换成ABAP查询语句.支持常见查询语句转换 Contains StartsWith EndWith == 等等常用语句
            var cardRoots = odata.TCardRootCollection.Where(t => t.CarParkName.Contains("2")).ToList();
            Console.WriteLine(JsonConvert.SerializeObject(cardRoots));
            Console.ReadKey();
        }
    }
 
//.net Core 
 static async Task Main(string[] args)
        {
            var url = "https://my600301.sapbyd.cn/sap/byd/odata/cust/v1/odatacardtest";
            odatacardtest odata = new odatacardtest(new Uri(url))
            {
                //认证信息
                Credentials = new NetworkCredential("zh3305", "**********")
            };
            var query = (DataServiceQuery<TCardRoot>)(from cust in odata.TCardRootCollection
                                                      where cust.CarParkName == "2"
                                                      select cust);
            // 必须改为调用 BeginExecute 和 EndExecute 方法。
            query.BeginExecute(ar =>
            {
                if (ar.AsyncState is DataServiceQuery<TCardRoot> peopleQuery)
                {
                    var people = peopleQuery.EndExecute(ar).ToArray();
                    foreach (var p in people)
                    {
                        Console.WriteLine(p.CarParkName);
                    }
                    Console.WriteLine(JsonConvert.SerializeObject(people));
                }
            }, query);
            Console.ReadKey();
        }

  

相关文章:

  • 2021-10-09
  • 2021-07-27
  • 2022-12-23
  • 2021-06-30
  • 2022-12-23
  • 2021-10-06
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
  • 2021-11-27
  • 2021-07-04
相关资源
相似解决方案