Почему при вызове Expand и Select на PUT возвращается LESS-информация - Acumatica REST API - PullRequest
0 голосов
/ 20 февраля 2020

В примере для Acumatica: «Урок 2.1: Обновление учетной записи клиента» образец кода обновит контактную информацию клиента, основываясь на ее получении по адресу электронной почты. Он расширяет MainContact и выбирает CustomerID и CustomerClass:

https://localhost/MyStoreInstance/entity/Default/18.200.001/Customer?$filter=MainContact/Email eq 'info@jevy-comp.con'&$expand=MainContact&$select=CustomerID,CustomerClass

Postman Screenshot 1 Возвращаемые значения включают CustomerID, CustomerClass PLUS - полностью загруженную запись BillingContact, содержащую 2150 байт данных, например this:

{
    "id": "0b88d208-297a-4b81-a20c-39d27bace10a",
    "rowNumber": 1,
    "note": "",
    "BillingContact": {
        "id": "e1133b8a-fca9-4885-8e4c-09a85808f025",
        "rowNumber": 1,
        "note": null,
        "Activities": [],
        "Address": {
            "id": "4f1719aa-6eb0-4551-a143-ad2139e135aa",
            "rowNumber": 1,
            "note": null,
            "AddressLine1": {
                "value": "1000 Pennsylvania Ave"
            },
            "AddressLine2": {},
            "City": {
                "value": "San Francisco"
            },
            "Country": {
                "value": "US"
            },
            "PostalCode": {
                "value": "94107-3479"
            },
            "State": {
                "value": "CA"
            },
            "custom": {},
            "files": []
        },
        "Attention": {
            "value": "Mister. Jack Green"
        },
        "Attributes": [],
        "Campaigns": [],
        "Cases": [],
        "ContactID": {
            "value": 12417
        },
        "DisplayName": {
            "value": "Jevy Computers"
        },
        "Duplicates": [],
        "Email": {
            "value": "green@jevy-comp.con"
        },
        "Fax": {},
        "FirstName": {},
        "JobTitle": {
            "value": ""
        },
        "LastName": {},
        "MarketingLists": [],
        "MiddleName": {},
        "Notifications": [],
        "Opportunities": [],
        "Phone1": {
            "value": "+1 (777) 380-0089"
        },
        "Phone1Type": {
            "value": "Business 1"
        },
        "Phone2": {},
        "Phone2Type": {
            "value": "Business 2"
        },
        "Relations": [],
        "Title": {},
        "UserInfo": null,
        "WebSite": {},
        "custom": {},
        "files": []
    },
    "BillingContactSameAsMain": {
        "value": false
    },
    "CustomerClass": {
        "value": "INTL"
    },
    "CustomerID": {
        "value": "C000000003"
    },
    "custom": {},
    "files": []
}

Однако, когда я явно запрашиваю, чтобы BillingContact был Expanded , я получаю МЕНЬШУЮ информацию, которую получаю, когда полностью ее опускаю из команды EXPAND. (Я получаю в ответ 1235 байт.)

Postman Screenshot 2:

{
    "id": "0b88d208-297a-4b81-a20c-39d27bace10a",
    "rowNumber": 1,
    "note": "",
    "BillingContact": {
        "id": "e1133b8a-fca9-4885-8e4c-09a85808f025",
        "rowNumber": 1,
        "note": null,
        "Attention": {
            "value": "Mr. Jack Green"
        },
        "ContactID": {
            "value": 12417
        },
        "DisplayName": {
            "value": "Jevy Computers"
        },
        "Email": {
            "value": "green@jevy-comp.con"
        },
        "Fax": {},
        "FirstName": {},
        "JobTitle": {
            "value": ""
        },
        "LastName": {},
        "MiddleName": {},
        "Phone1": {
            "value": "+1 (777) 380-0089"
        },
        "Phone1Type": {
            "value": "Business 1"
        },
        "Phone2": {},
        "Phone2Type": {
            "value": "Business 2"
        },
        "Title": {},
        "WebSite": {},
        "custom": {},
        "files": []
    },
    "BillingContactSameAsMain": {
        "value": false
    },
    "CustomerClass": {
        "value": "INTL"
    },
    "CustomerID": {
        "value": "C000000003"
    },
    "custom": {},
    "files": []
}

Я не понимаю, как работает команда расширения в PUT. Кто-нибудь может мне это объяснить?

Почему включение BillingContact в команду expand дает мне меньше BillingContact information?

1 Ответ

2 голосов
/ 20 февраля 2020

Когда вы выполняете запрос на размещение, Acumatica автоматически добавляет расширения для сущностей, к которым вы прикасаетесь, включая сущности, поэтому вы видите Адрес под BillingContact. Когда вы добавляете расширение в контакт для выставления счета, оно переопределяет раскрытия по умолчанию, и вы больше не видите Address. Чтобы получить Address в результате, вы добавляете еще одно расширение: BillingContact/Address

То же самое относится ко всем другим объектам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...