当前位置: 首页 > 知识库问答 >
问题:

动力学女士365商业中心。API POST,PATCH,DELETE不起作用

丌官寒
2023-03-14

我们已经在我们的服务器上安装了MS Dynamics 365 Business Central(我不知道如何查看当前安装的版本)。我们使用oData v4协议来处理我们的请求。

{
    "@odata.context": "https://d365bc.vendor.com:7058/attain/ODataV4/$metadata#Company('...')/Customer",
    "value": [
        {
            "@odata.etag": "W/\"JzQ0O29EcmJmcGs4V3NRMHlEQ0Fxa0JxL1N0bi9xZjY5UDFQakZ0U2tBUGU1Kzg9MTswMDsn\"",
            "No": "01121212",
            "Name": "Spotsmeyer's Furnishings",
            "Responsibility_Center": "",
            "Location_Code": "YELLOW",
            "Post_Code": "US-FL 37125",
            "Country_Region_Code": "US",
            "Phone_No": "",
            "IC_Partner_Code": "",
            "Contact": "Mr. Mike Nash",
            "Salesperson_Code": "JR",
            "Customer_Posting_Group": "FOREIGN",
            "Gen_Bus_Posting_Group": "EXPORT",
            "VAT_Bus_Posting_Group": "EXPORT",
            "Customer_Price_Group": "",
            "Customer_Disc_Group": "",
            "Payment_Terms_Code": "1M(8D)",
            "Reminder_Terms_Code": "FOREIGN",
            "Fin_Charge_Terms_Code": "2.0 FOR.",
            "Currency_Code": "USD",
            "Language_Code": "ENU",
            "Search_Name": "SPOTSMEYER'S FURNISHINGS",
            "Credit_Limit_LCY": 0,
            "Blocked": " ",
            "Privacy_Blocked": false,
            "Last_Date_Modified": "2020-06-18",
            "Application_Method": "Manual",
            "Combine_Shipments": true,
            "Reserve": "Optional",
            "Shipping_Advice": "Partial",
            "Shipping_Agent_Code": "",
            "Base_Calendar_Code": "",
            "Balance_LCY": 0,
            "Balance_Due_LCY": 0,
            "Sales_LCY": 0,
            "Global_Dimension_1_Filter": "",
            "Global_Dimension_2_Filter": "",
            "Currency_Filter": "",
            "Date_Filter": "..11/13/20"
        },
        {
            "@odata.etag": "W/\"JzQ0O08vNlVHSWVaZ1FGeG42d2JOa3k4Qm5uVHlkSGYzNk1ES2V5Y2E2S3hiekU9MTswMDsn\"",
            "No": "01445544",
            "Name": "Progressive Home Furnishings",
            "Responsibility_Center": "",
            "Location_Code": "YELLOW",
            "Post_Code": "US-IL 61236",
            "Country_Region_Code": "US",
            "Phone_No": "",
            "IC_Partner_Code": "",
            "Contact": "Mr. Scott Mitchell",
            "Salesperson_Code": "JR",
            "Customer_Posting_Group": "FOREIGN",
            "Gen_Bus_Posting_Group": "EXPORT",
            "VAT_Bus_Posting_Group": "EXPORT",
            "Customer_Price_Group": "",
            "Customer_Disc_Group": "RETAIL",
            "Payment_Terms_Code": "14 DAYS",
            "Reminder_Terms_Code": "FOREIGN",
            "Fin_Charge_Terms_Code": "2.0 FOR.",
            "Currency_Code": "USD",
            "Language_Code": "ENU",
            "Search_Name": "PROGRESSIVE HOME FURNISHINGS",
            "Credit_Limit_LCY": 0,
            "Blocked": " ",
            "Privacy_Blocked": false,
            "Last_Date_Modified": "2018-09-19",
            "Application_Method": "Manual",
            "Combine_Shipments": true,
            "Reserve": "Optional",
            "Shipping_Advice": "Partial",
            "Shipping_Agent_Code": "",
            "Base_Calendar_Code": "",
            "Balance_LCY": 1499.03,
            "Balance_Due_LCY": 1499.03,
            "Sales_LCY": 1499.03,
            "Global_Dimension_1_Filter": "",
            "Global_Dimension_2_Filter": "",
            "Currency_Filter": "",
            "Date_Filter": "..11/13/20"
        },
{
    "error": {
        "code": "BadRequest",
        "message": "Entity does not support delete."
    }
}

我不确定POST请求的Create(POST)或Update(补丁)的正确语法是什么,我试图复制现有的值(从GET中获取)并将其放入正文中。我得到以下回应:

{
    "error": {
        "code": "BadRequest_MethodNotAllowed",
        "message": "Entity does not support insert."
    }
}

有时,如果我提出了完全错误的请求,我会得到以下回应:

{
    "error": {
        "code": "BadRequest_MethodNotAllowed",
        "message": "'POST' requests for 'Customer' of EdmType 'Entity' are not allowed within Microsoft Dynamics 365 Business Central OData web services."
    }
}

我有一个在prem安装,对我来说,不清楚什么是任何操作的正确endpoint。

例如,我可以提出以下请求:

https://d365bc.vendor.com:7057/ecurite/ws/cronus%20international%20ltd/page/customer

Extension APIs:
https://<base URL>:<port>/<serverinstance>/api/<API publisher>/<API group>/<API version>

所以端口是7057,API URL是https://d365bc.vendor.com:7057/acture/ws/

什么是WS,真的需要吗?通过上面的URL,我得到了以下内容:

用于身份验证的用户必须具有Web服务访问密钥(在Business Central中为用户创建)

Url在执行后用域名中正确的供应商名称进行了更改。

共有1个答案

赵宏达
2023-03-14

ODataendpoint不同于APIendpoint。

我建议使用API,因为它是与Business Central内的数据交互的更最新、更有效的方式。

APIendpoint的文档可以在https://docs.microsoft.com/en-us/dynamics-nav/api-reference/v1.0/中找到,还有一些示例,如更新客户、项等。

 类似资料:
  • 现在,由于我的web作业需要在没有任何用户交互的情况下在后端运行,所以Azure广告身份验证不适合这里,因为它需要用户交互的同意。但是对于生产场景不建议使用基本身份验证。 请建议如何生成访问令牌,以便不需要用户交互。 编辑 根据Allen的答复,基本身份验证可以用于此方案,尽管需要更新Microsoft文档以支持此方案。但是,在使用Postman和基本身份验证探索APIendpoint时,我面临以

  • 注意到Karma测试没有在新的angular-cli项目上运行

  • 我为木马产品定制了分类法,产品将书籍和电子书都有自己的写手。 现在,我需要显示它,例如在产品标题下,并需要双向链接,如标签或类别。

  • 在Nest 1.7.1中,Delete或DeleteByQuery对我来说都不起作用。 我试图删除以下文件:

  • requestmapping中的post,delete,patch请求有什么作用?前端如何发起?如下图: 另外这三个method类型有什么用呢,他们的本质是不是都是get/post吗? 百度了一圈没啥结果

  • 我的沙箱和直播账户之间有很大的不同,当我在电话中从一个人转移到另一个人时,我一直告诉人们,但没有用。 在沙箱中,在我的业务设置下,我看到 您的支付解决方案:PayPal Payments Pro更改 技术支持告诉我,我需要从贝宝支付专业降级到网站支付专业3.0。这有道理吗?谢了。