【问题标题】:Acumatica REST API not setting custom field valueAcumatica REST API 未设置自定义字段值
【发布时间】:2018-09-11 17:20:52
【问题描述】:

使用 Acumatica 17.210.0034 和 API 端点 17.200.001,我正在执行包含自定义字段的 PUT,但未在数据库中设置自定义字段值。任何帮助,将不胜感激。插入和更新也会发生同样的事情。数据已添加,但未设置自定义字段值。

PUT 网址:

http://localhost/acuroyalbay172100034/entity/Default/17.200.001/StockItem?%24custom=InventoryItemExt.UsrSquareFTG%2cInventoryItemExt.UsrDispPerPallet%2cInventoryItemExtension.UsrItemClassCD%2cInventoryItemAMExtension.AMReplenishmentSource%2cInventoryItemAMExtension.AMLotSize%2cInventoryItemAMExtension.AMMaxOrdQty%2cInventoryItemAMExtension.AMMinOrdQty%2cInventoryItemAMExtension.AMLowLevel%2cInventoryItemAMExtension.AMMRPItem%2cInventoryItemAMExtension.AMMFGLeadTime%2cInventoryItemAMExtension.AMGroupWindow%2cInventoryItemAMExtension.AMConfigurationID%2cInventoryItemAMExtension.AMReplenishmentSourceOverride%2cInventoryItemAMExtension.AMSafetyStockOverride%2cInventoryItemAMExtension.AMSafetyStock%2cInventoryItemAMExtension.AMMinQtyOverride%2cInventoryItemAMExtension.AMMinQty%2cInventoryItemAMExtension.AMQtyRoundUp

请求正文:

{
  "AverageCost": {
    "value": 0.0
  },
  "BaseUOM": {
    "value": "EA"
  },
  "COGSAccount": {
    "value": "50000"
  },
  "COGSSubaccount": {
    "value": "CON000"
  },
  "CurrentStdCost": {
    "value": 0.0
  },
  "DefaultIssueLocationID": {
    "value": "R1S1"
  },
  "DefaultPrice": {
    "value": 0.0
  },
  "DefaultReceiptLocationID": {
    "value": "RECEIVING"
  },
  "DefaultWarehouseID": {
    "value": "WHOLESALE"
  },
  "Description": {
    "value": "tonyitem153"
  },
  "DimensionVolume": {
    "value": 0.0
  },
  "DimensionWeight": {
    "value": 0.0
  },
  "InventoryAccount": {
    "value": "12100"
  },
  "InventoryID": {
    "value": "RGTONYIT153"
  },
  "InventorySubaccount": {
    "value": "CON000"
  },
  "IsAKit": {
    "value": false
  },
  "ItemClass": {
    "value": "CONSUMER  200FITNESS"
  },
  "ItemStatus": {
    "value": "Active"
  },
  "ItemType": {
    "value": "Finished Good"
  },
  "LandedCostVarianceAccount": {
    "value": "52400"
  },
  "LandedCostVarianceSubaccount": {
    "value": "CON000"
  },
  "LastCost": {
    "value": 0.0
  },
  "LastModified": {
    "value": "2018-09-11T12:36:15.483-04:00"
  },
  "LastStdCost": {
    "value": 0.0
  },
  "LotSerialClass": {
    "value": "NOTTRACKED"
  },
  "Markup": {
    "value": 0.0
  },
  "MaxCost": {
    "value": 0.0
  },
  "MinCost": {
    "value": 0.0
  },
  "MinMarkup": {
    "value": 0.0
  },
  "MSRP": {
    "value": 0.0
  },
  "PackagingOption": {
    "value": "Manual"
  },
  "PackSeparately": {
    "value": false
  },
  "PendingStdCost": {
    "value": 0.0
  },
  "POAccrualAccount": {
    "value": "20100"
  },
  "POAccrualSubaccount": {
    "value": "CON000"
  },
  "PostingClass": {
    "value": "CON"
  },
  "PurchasePriceVarianceAccount": {
    "value": "52300"
  },
  "PurchasePriceVarianceSubaccount": {
    "value": "CON000"
  },
  "PurchaseUOM": {
    "value": "EA"
  },
  "ReasonCodeSubaccount": {
    "value": "CON000"
  },
  "SalesAccount": {
    "value": "40000"
  },
  "SalesSubaccount": {
    "value": "CON000"
  },
  "SalesUOM": {
    "value": "EA"
  },
  "StandardCostRevaluationAccount": {
    "value": "52110"
  },
  "StandardCostRevaluationSubaccount": {
    "value": "CON000"
  },
  "StandardCostVarianceAccount": {
    "value": "52100"
  },
  "StandardCostVarianceSubaccount": {
    "value": "CON000"
  },
  "SubjectToCommission": {
    "value": false
  },
  "TaxCategory": {
    "value": "TAXABLE"
  },
  "ValuationMethod": {
    "value": "Average"
  },
  "custom": {
    "InventoryItemExt": {
      "UsrSquareFTG": {
        "type": "CustomDecimalField",
        "value": 5.0
      },
      "UsrDispPerPallet": {
        "type": "CustomIntField",
        "value": 6
      }
    },
    "InventoryItemExtension": {
      "UsrItemClassCD": {
        "type": "CustomStringField",
        "value": "CONSUMER  200FITNESS"
      }
    },
    "InventoryItemAMExtension": {
      "AMReplenishmentSource": {
        "type": "CustomStringField",
        "value": "Purchase"
      },
      "AMLotSize": {
        "type": "CustomDecimalField",
        "value": 0.0
      },
      "AMMaxOrdQty": {
        "type": "CustomDecimalField",
        "value": 0.0
      },
      "AMMinOrdQty": {
        "type": "CustomDecimalField",
        "value": 0.0
      },
      "AMLowLevel": {
        "type": "CustomIntField",
        "value": 0
      },
      "AMMRPItem": {
        "type": "CustomBooleanField",
        "value": true
      },
      "AMMFGLeadTime": {
        "type": "CustomIntField",
        "value": 0
      },
      "AMGroupWindow": {
        "type": "CustomIntField",
        "value": 0
      },
      "AMConfigurationID": {
        "type": "CustomStringField"
      },
      "AMReplenishmentSourceOverride": {
        "type": "CustomBooleanField",
        "value": false
      },
      "AMSafetyStockOverride": {
        "type": "CustomBooleanField",
        "value": false
      },
      "AMSafetyStock": {
        "type": "CustomDecimalField",
        "value": 0.0
      },
      "AMMinQtyOverride": {
        "type": "CustomBooleanField",
        "value": false
      },
      "AMMinQty": {
        "type": "CustomDecimalField",
        "value": 0.0
      },
      "AMQtyRoundUp": {
        "type": "CustomBooleanField",
        "value": false
      }
    }
  }
}

回复:

{
    "id": "2299727f-c471-46de-a8ac-9dcfe1a2a09f",
    "rowNumber": 1,
    "note": null,
    "ABCCode": {},
    "AutoIncrementalValue": {},
    "AverageCost": {
        "value": 0
    },
    "BaseUOM": {
        "value": "EA"
    },
    "COGSAccount": {
        "value": "50000"
    },
    "COGSSubaccount": {
        "value": "CON000"
    },
    "Content": {},
    "CurrentStdCost": {
        "value": 0
    },
    "DefaultIssueLocationID": {
        "value": "R1S1"
    },
    "DefaultPrice": {
        "value": 0
    },
    "DefaultReceiptLocationID": {
        "value": "RECEIVING"
    },
    "DefaultWarehouseID": {
        "value": "WHOLESALE"
    },
    "DeferralAccount": {},
    "DeferralSubaccount": {},
    "Description": {
        "value": "tonyitem153"
    },
    "DimensionVolume": {
        "value": 0
    },
    "DimensionWeight": {
        "value": 0
    },
    "DiscountAccount": {},
    "DiscountSubaccount": {},
    "ImageUrl": {},
    "InventoryAccount": {
        "value": "12100"
    },
    "InventoryID": {
        "value": "RGTONYIT153"
    },
    "InventorySubaccount": {
        "value": "CON000"
    },
    "IsAKit": {
        "value": false
    },
    "ItemClass": {
        "value": "CONSUMER  200FITNESS"
    },
    "ItemStatus": {
        "value": "Active"
    },
    "ItemType": {
        "value": "Finished Good"
    },
    "LandedCostVarianceAccount": {
        "value": "52400"
    },
    "LandedCostVarianceSubaccount": {
        "value": "CON000"
    },
    "LastCost": {
        "value": 0
    },
    "LastModified": {
        "value": "2018-09-11T12:56:47.843-04:00"
    },
    "LastStdCost": {
        "value": 0
    },
    "LotSerialClass": {
        "value": "NOTTRACKED"
    },
    "Markup": {
        "value": 0
    },
    "MaxCost": {
        "value": 0
    },
    "MinCost": {
        "value": 0
    },
    "MinMarkup": {
        "value": 0
    },
    "MSRP": {
        "value": 0
    },
    "PackagingOption": {
        "value": "Manual"
    },
    "PackSeparately": {
        "value": false
    },
    "PendingStdCost": {
        "value": 0
    },
    "POAccrualAccount": {
        "value": "20100"
    },
    "POAccrualSubaccount": {
        "value": "CON000"
    },
    "PostingClass": {
        "value": "CON"
    },
    "PriceClass": {},
    "PriceManager": {},
    "PriceWorkgroup": {},
    "ProductManager": {},
    "ProductWorkgroup": {},
    "PurchasePriceVarianceAccount": {
        "value": "52300"
    },
    "PurchasePriceVarianceSubaccount": {
        "value": "CON000"
    },
    "PurchaseUOM": {
        "value": "EA"
    },
    "ReasonCodeSubaccount": {
        "value": "CON000"
    },
    "SalesAccount": {
        "value": "40000"
    },
    "SalesSubaccount": {
        "value": "CON000"
    },
    "SalesUOM": {
        "value": "EA"
    },
    "StandardCostRevaluationAccount": {
        "value": "52110"
    },
    "StandardCostRevaluationSubaccount": {
        "value": "CON000"
    },
    "StandardCostVarianceAccount": {
        "value": "52100"
    },
    "StandardCostVarianceSubaccount": {
        "value": "CON000"
    },
    "SubjectToCommission": {
        "value": false
    },
    "TaxCategory": {
        "value": "TAXABLE"
    },
    "ValuationMethod": {
        "value": "Average"
    },
    "VolumeUOM": {},
    "WeightUOM": {},
    "custom": {
        "InventoryItemExt": {
            "UsrSquareFTG": {
                "type": "CustomDecimalField",
                "value": null
            },
            "UsrDispPerPallet": {
                "type": "CustomIntField",
                "value": null
            }
        },
        "InventoryItemExtension": {
            "UsrItemClassCD": {
                "type": "CustomStringField",
                "value": null
            }
        },
        "InventoryItemAMExtension": {
            "AMReplenishmentSource": {
                "type": "CustomStringField",
                "value": "Purchase"
            },
            "AMLotSize": {
                "type": "CustomDecimalField",
                "value": 0
            },
            "AMMaxOrdQty": {
                "type": "CustomDecimalField",
                "value": 0
            },
            "AMMinOrdQty": {
                "type": "CustomDecimalField",
                "value": 0
            },
            "AMLowLevel": {
                "type": "CustomIntField",
                "value": 0
            },
            "AMMRPItem": {
                "type": "CustomBooleanField",
                "value": true
            },
            "AMMFGLeadTime": {
                "type": "CustomIntField",
                "value": 0
            },
            "AMGroupWindow": {
                "type": "CustomIntField",
                "value": 0
            },
            "AMConfigurationID": {
                "type": "CustomStringField",
                "value": null
            },
            "AMReplenishmentSourceOverride": {
                "type": "CustomBooleanField",
                "value": false
            },
            "AMSafetyStockOverride": {
                "type": "CustomBooleanField",
                "value": false
            },
            "AMSafetyStock": {
                "type": "CustomDecimalField",
                "value": 0
            },
            "AMMinQtyOverride": {
                "type": "CustomBooleanField",
                "value": false
            },
            "AMMinQty": {
                "type": "CustomDecimalField",
                "value": 0
            },
            "AMQtyRoundUp": {
                "type": "CustomBooleanField",
                "value": false
            }
        }
    },
    "files": []
}

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    通常,自定义关键字是检索记录的参数的一部分,如本帮助文章中所示。

    如果要为这些字段设置值,则需要先将字段添加到端点。

    这里有一些关于如何创建扩展端点的链接:

    自定义端点和端点扩展

    自定义字段

    【讨论】:

    • 听起来您必须创建或扩展端点才能插入或更新任何自定义字段。那真不幸。如果在请求中指定了它们,我认为它会处理它,但我想不会。有没有办法以编程方式执行此操作,或者我必须在 UI 中设置一个端点并将其附加到一个包中?如果我想让代码动态处理任何自定义字段怎么办?我是否总是必须通过 UI 手动指定?
    • 我开始扩展端点以获取自定义字段,但我只能选择屏幕上的自定义字段吗? API 是否仅包含基于屏幕的自定义字段?如果没有,如何添加屏幕上不显示的自定义字段?
    • 另外,当我将端点添加到自定义包,然后将包部署到另一个实例上时,端点会丢失我添加的所有自定义字段。我是否必须在每个实例上手动配置扩展端点的所有字段?
    • 您可以放置​​自定义字段,但您错误地形成了您的 json。
    • Kirill,json 来自 GET,所以我不明白它怎么会出错。请提供更多信息?
    【解决方案2】:

    答案似乎是您必须扩展端点才能使用 PUT 更新数据。使用包含自定义字段作为集合的 GET 数据结构是行不通的。

    【讨论】:

      【解决方案3】:

      您的请求正文的问题在这里:

      "custom": {
        "InventoryItemExt": {
          "UsrSquareFTG": {
            "type": "CustomDecimalField",
            "value": 5.0
          },
          "UsrDispPerPallet": {
            "type": "CustomIntField",
            "value": 6
          }
        },
       ...
       }
      

      自定义字段集合应该有另一种格式和键。

      要使用其自定义字段获取实体的正确 json 架构,您可以使用 get 请求来寻址 http://localhost/acuroyalbay172100034/entity/Default/17.200.001/StockItem/$adHocSchema

      它将返回包含自定义字段的 json。您可以将其用作请求正文的模板。 另见Help

      【讨论】:

      • 我明白,但这是一个 PUT,而不是 GET,而且我已经包含了自定义字段,但除非我扩展它,否则 API 端点显然不会对它们做任何事情。跨度>
      • 您将它们放置在错误的格式、错误的集合中。请获取架构并填写它,然后放入。如果你想实现你的目标,那是有原因的。
      • 我不明白它怎么可能是错误的格式。这是 GET(按键)响应的格式。无论如何,您是说我可以对不在数据合同中的字段进行 PUT 吗?还是你说我还得延长它?正如我在下面所说的,我现在已经扩展了端点,因为我找不到任何其他方法来做到这一点。
      • 我知道你说要填充一个空的模式,但这很乏味。我只是通过填写值的键执行 GET,然后使用它。不过,听起来我需要自己使用这种技术添加自定义字段。不过,默认端点是否允许我发送自定义字段,还是需要我对其进行扩展?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      相关资源
      最近更新 更多