【问题标题】:How to create a Sales Order from Opportunity screen, via REST API如何通过 REST API 从商机屏幕创建销售订单
【发布时间】:2021-06-08 12:03:18
【问题描述】:

我正在尝试通过 Postman 向 acumatica 的 Default Opportunity 端点中的 CreateOpportunitySalesOrder 操作发送 POST 请求。但是没有创建销售订单。 请求的正文是:

{
    "entity":{
        "OpportunityID": {"value":"OP000376"}
    },
    "parameters":{
        "OrderType":{"value":"SO"},          
        "RecalculatePricesandDiscounts":{"value":false}
        
    }
}

我在响应和请求后的 GET 中收到 202,即 204 响应代码。但是没有创建销售订单。

我尝试使用 Acumatica 20 R1 和 20 R2,但结果相同。

在 UI 中,我可以创建销售订单并重定向到 SO301000 屏幕,但在按保存之前会创建订单。

我在请求中遗漏了什么? 是否可以通过 REST api 通过端点调用 CreateOpportunitySalesOrder?

【问题讨论】:

  • Anhy,你能把你正在使用的邮递员脚本中的 cURL 语句贴出来,这样我可以看看这个,看看我能不能帮你?
  • @Anhy,这是 Acumatica ERP 中与图表的 IsContractBasedAPI 标志相关的错误。我建议您创建一个新操作,该操作将调用相同的功能,但最终捕获异常并运行保存。

标签: rest acumatica


【解决方案1】:

更新 Samvel Petrosov 是对的,这是图中的一个错误,但使用新操作创建 Graph Extension 将是这样的:

     public class OpportunityMaint_Extension : PXGraphExtension<OpportunityMaint>
{
#region Event Handlers
public delegate void DoCreateSalesOrderDelegate(CreateSalesOrderFilter param);
[PXOverride]
public void DoCreateSalesOrder(CreateSalesOrderFilter param, DoCreateSalesOrderDelegate baseMethod)
{
try
{
baseMethod(param);
}
catch(PXRedirectRequiredException ex)
{
var graphSO = ex.Graph as SOOrderEntry;
graphSO.Actions.PressSave();
}
}

#endregion
}

通过此操作在 UI 和 REST API 请求中创建 SO。

【讨论】:

    猜你喜欢
    • 2015-09-13
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多