Импорт данных GI в веб-сервис - PullRequest
0 голосов
/ 05 января 2019

У меня есть требование импортировать пользовательские данные в Acumatica с помощью веб-службы с помощью веб-службы.

Я создал пользовательскую таблицу с двумя строковыми полями и одним полем ntext, в котором будут храниться данные XML. Создал для него GI и выставил в конечную точку веб-сервиса.

Формат данных импорта JSON выглядит следующим образом.

    [
  {
    "OrderNbr": "1",
    "CommandValue": "8",
    "Xmldata": "<?xml version=\"1.0\" encoding=\"utf-8\"?><MLW Cmd=\"8\" TStamp=\"2018-12-21T11:38:25\" Id=\"dsgx1\" OrgId=\"157035408\" DevId=\"b9d863ca-REG-4825e4aa-566b5fc7\" RouteId=\"Resource-879-1\" StopId=\"Location230\" LocationKey=\"Location230\" StopType=\"67\"> <GPS Altitude=\"278.46383285522461\" Latitude=\"34.0487467032243\" Longitude=\"-84.673757432107507\" NoOfSat=\"7\" Speed=\"1.3679999828338623\" SatTStamp=\"2018-12-21T11:37:26\" Direction=\"0\" FixQuality=\"A\" /> <FieldData LCode=\"1\" OwnerId=\"Location230\"> <Field FId=\"89815\" Value=\"No\" /> <Field FId=\"89817\" Value=\"No\" /> <Field FId=\"89816\" Value=\"Patrick N\" /> </FieldData> <Job Id=\"Order-878-4\" Status=\"4\"> <Item Status=\"4\" Id=\"TIFTUF\" Mode=\"Manual\" /> </Job></MLW>"
  }
]

Я пытался в POSTMAN с использованием базовой аутентификации.

Я получаю следующую ошибку

PUT: 400 Плохой запрос GET: 500 Внутренняя ошибка сервера.

ОБНОВЛЕНИЕ : Я создал пользовательскую страницу списка и настроил ее в конечной точке.

Я тестировал в POSTMAN и

Ниже приведены конечная точка и строка JSON, используемые для создания записей.

http://localhost/XYZ/(W(3))/entity/XYZ/17.200.001.001/MyResposeImport



{
    "OrderNbr": {value :"b"},
    "CommandValue": {value :"8"},
    "Xmldata": {value :"<?xml version='1.0' encoding='utf-8'?><MLW Cmd='8' TStamp='2018-12-21T11:38:25' Id='dsgx1' OrgId='157035408' DevId='b9d863ca-REG-4825e4aa-566b5fc7' RouteId='Resource-879-1' StopId='Location230' LocationKey='Location230' StopType='67'> <GPS Altitude='278.46383285522461' Latitude='34.0487467032243' Longitude='-84.673757432107507' NoOfSat='7' Speed='1.3679999828338623' SatTStamp='2018-12-21T11:37:26' Direction='0' FixQuality='A' /> <FieldData LCode='1' OwnerId='Location230'> <Field FId='89815' Value='No' /> <Field FId='89817' Value='No' /> <Field FId='89816' Value='Patrick N' /> </FieldData> <Job Id='Order-878-4' Status='4'> <Item Status='4' Id='TIFTUF' Mode='Manual' /> </Job></MLW>"}
  }

PUT Возвращает обратно ОК и ответ дает ниже

{
    "id": "94a00013-37bf-4077-bfb6-2e8662988547",
    "rowNumber": 1,
    "note": null,
    "OrderNbr": {
        "value": "b"
    },
    "ShippingStatus": {},
    "XMLData": {},
    "custom": {},
    "files": []
}

Я проверил в серверной части и ни одна запись не добавлена ​​в таблицу.

Я создал карту сайта в скрытом разделе, поскольку экран - это только вызов API.

В чем может быть причина того, что запись не добавлена ​​в таблицу?

1 Ответ

0 голосов
/ 09 января 2019

Я решил проблему. Имя поля данных JSON отличается от метки DAC, а API выглядит как метка DAC, а не имя поля.

Я изменил данные JSON на следующие, и они отлично работают

{
    "OrderNbr": {value :"b"},
    "ShippingStatus": {value :"8"},
    "XMLData": {value :"<?xml version='1.0' encoding='utf-8'?><MLW Cmd='8' TStamp='2018-12-21T11:38:25' Id='dsgx1' OrgId='157035408' DevId='b9d863ca-REG-4825e4aa-566b5fc7' RouteId='Resource-879-1' StopId='Location230' LocationKey='Location230' StopType='67'> <GPS Altitude='278.46383285522461' Latitude='34.0487467032243' Longitude='-84.673757432107507' NoOfSat='7' Speed='1.3679999828338623' SatTStamp='2018-12-21T11:37:26' Direction='0' FixQuality='A' /> <FieldData LCode='1' OwnerId='Location230'> <Field FId='89815' Value='No' /> <Field FId='89817' Value='No' /> <Field FId='89816' Value='Patrick N' /> </FieldData> <Job Id='Order-878-4' Status='4'> <Item Status='4' Id='TIFTUF' Mode='Manual' /> </Job></MLW>"}
  }
...