Как вставить значения атрибутов с помощью REST API? - PullRequest
0 голосов
/ 02 октября 2018

Включение их в коллекцию Attribute Stock Item не работает, даже если я удостоверяюсь, что идентификаторы атрибутов уже существуют в БД.Когда я делаю запрос PUT, вставляются остальные данные в записи, но не атрибуты.Ответ даже возвращает пустой массив атрибутов вместо того, что я ему отправил.

Нужно ли расширять API, чтобы это работало?Если да, есть ли у кого-нибудь примеры?Я пока не смог найти.

Запрос: http://localhost/acum172100034/entity/Default/17.200.001/StockItem

Тело:

{
  "InventoryID": {
    "value": "RGTONYIT166"
  },
  "Attributes": [
    {
      "AttributeID": {
        "value": "Item Attribute"
      },
      "Value": {
        "value": "2"
      }
    }
  ]
}

Ответ PUT:

{
    "id": "665e403c-d310-4bb4-9759-e2487dd5abc7",
    "rowNumber": 1,
    "note": null,
    "ABCCode": {},
    "Attributes": [],
    "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": "tonyitem166 - blah blah 2"
    },
    "DimensionVolume": {
        "value": 3
    },
    "DimensionWeight": {
        "value": 2
    },
    "DiscountAccount": {},
    "DiscountSubaccount": {},
    "ImageUrl": {},
    "InventoryAccount": {
        "value": "12100"
    },
    "InventoryID": {
        "value": "RGTONYIT166"
    },
    "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-10-02T17:13:38.707-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": {},
    "files": []
}

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Это предположение, но я думаю, что вам нужно добавить свои атрибуты в ваш класс товара.Перейти к IN201000

0 голосов
/ 05 октября 2018

В результате возникла проблема с моим собственным кодом, который явно скрывал атрибуты от представления, чтобы они не обновлялись.Как только я решил это, теперь он работает, просто включив их в коллекцию атрибутов.

0 голосов
/ 02 октября 2018

Если атрибуты уже присутствуют на экране Stock Item, вы можете использовать конечную точку по умолчанию, и вам нужно только сделать PUT-вызов, указав ID инвентаря и ID атрибута, например:

PUT:localhost / demo172u10 / entity / Default / 17.200.001 / StockItem

{
    "InventoryID": {"value": "AACOMPUT01"},
    "Attributes": 
    [
        {
            "AttributeID": {"value": "Color"},
            "Value": {"value": "Black"}
        },
        {
            "AttributeID": {"value": "Configurable Attributes"},
            "Value": {"value": "Test"}
        }
    ]
}

Это обновит атрибуты "Color" и "Configurable Attributes" элемента товара AACOMPUT01 с указанным значением.

Если Атрибут отсутствует на экране «Товар», вам нужно будет использовать API для выбора целевого экрана «Класс товара», чтобы добавить там необходимые атрибуты.Как будто вы переходите на экран «Товар», вы можете заметить, что вы не можете добавлять новые атрибуты непосредственно на этот экран и что они на самом деле происходят из класса товара самого предмета.

Этот тест был выполнен с использованием SalesДемонстрационные данные с Acumatica версии 17.210.0034

...