繁体   English   中英

使用 rest Api 将 solines 添加到 acumatica

[英]Adding solines to acumatica using rest Api

我正在尝试使用具有多个 soline 的 rest API 在 acumatica 中创建一个销售订单,但我只能创建一个 soline,下面请看我的代码

我想创建一个销售订单,其中所有购物车项目作为 acumatica 中该特定销售订单的 solines。

if (isset($_SESSION['cart'])) {
    foreach($_SESSION['cart'] as $row) {
        if ($row['qty'] != 0) {

            $product = $row['product'];
            echo $product.
            "<br>";
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://xxxxxxx.com/myinstance/entity/PLUS/17.200.001/SalesOrder",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_COOKIESESSION => 1,
                CURLOPT_COOKIEFILE => $temp_data,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "PUT",
                CURLOPT_POSTFIELDS => "{\r\n \"OrderType\" : {value : \"SO\" } ,\r\n \"CustomerID\" : {value : \"C000000002\" },\r\n \"webItems\" : {value : \"$product\" },\r\n\"webQty\" : {value : \"1\" },\r\n\"WebTaxCat\" : {value : \"TAXABLE\" },\r\n}",
                CURLOPT_HTTPHEADER => array("cache-control: no-cache", "content-type: application/json", "postman-token: 5248821b-91e9-5800-bd9c-b4c9775c6c5a"),
            ));
            $response = curl_exec($curl);
            $err = curl_error($curl);
            if ($err) {
                echo "cURL Error #:".$err;
            } else {

                echo $response;
            }
        }
    }
}

查看您的代码,您似乎已经创建了自己的端点或扩展了默认端点。 尽管查看您正在传递的详细信息的主体结构似乎与顶级实体处于同一级别。

如果您从头开始创建自己的端点,我建议您查看默认端点中的 Sales Order 实体及其详细信息子实体。

通常,您应该在 Sales Order 节点内有一个 details 对象,该对象可以包含一个详细信息数组。

如果我使用默认端点,我可以将以下 JSON 正文传递给地址:

  • 本地主机/191u03/entity/Default/18.200.001/SalesOrder
{
    "CustomerID": {"value": "ABARTENDE"},
    "Details": 
    [
        {
            "InventoryID": {"value": "AACOMPUT01"},
            "OrderQty": {"value": 5}
        },
        {
            "InventoryID": {"value": "AALEGO500"},
            "OrderQty": {"value": 50}
        }
    ]
}

这将创建一个带有 2 个 So 行的销售订单。 但是,如果您想向现有订单添加更多行,那么您只需要提及顶级实体的关键字段,然后是您想要添加的详细信息。

对于销售订单,关键字段是 OrderType 和 OrderNbr。

如果您有时间,我建议您查看有关使用基于合同的 API 的 Acumatica 帮助网站部分: https ://help-2019r1.acumatica.com/(W(5))/Help?ScreenId =ShowWiki&pageid=1c767ad9-da6d-4047-bc93-6970ad469504

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM