наша команда разработала мобильное приложение, используя Xamarin Forms
для пользователей на местах, которые выбирают данные, относящиеся к клиенту, заказу на продажу, продуктам и т. Д., Из AX
, используя AIF webserices
более
ПроблемаТо, с чем мы сталкиваемся в настоящее время, связано с объемом данных, которые мы извлекаем из AX для сущностей заказов на продукты и продажи.
Обратимся теперь, наш веб-сервис извлекает данные 6 тысяч продуктов, которые имеютоколо 10 полей
образец продукта json
{
"itemDimensions": [],
"itemGroup": "Foam Rolls",
"itemName": "48\" X 550' 1/8\" FOAM ROLLS",
"itemNumber": ".125FM48X858",
"searchName": ".125FM48X447",
"siteId": "",
"type": "Product",
"unit": "ROLL",
"variantName": "",
"variantNumber": "",
"warehouseId": ""
},
и для заказа на продажу мы собираем около 2 тысячи данных, но оно имеет больше вложенностиДанные json, в следующем json вы можете видеть, что мы получаем
- Детали заказа
- Массив сведений о вложении
- Массив сведений о заметках
- Массив сведений о продукте
, так что это увеличивает единичный элемент json и, в конечном итоге, весь отклик json.Благодаря этому наше приложение получает тайм-аут запроса даже после установки 5-минутного интервала ожидания и снижения производительности, поскольку для синхронизации данных о продуктах и заказах на продажу в мобильном приложении в рамках начального процесса синхронизации требуется 30 минут.поэтому я ищу решение, в котором мы могли бы ускорить процесс синхронизации данных, но внедрили что-то на стороне сервера, чтобы быстрее передавать данные в мобильное приложение.
Если кто-то может предложить лучший подход или архитектуру для решения, тогда проблема будет хорошей.
Заказ на продажу json sample
{
"cashDiscount": "S10D-.5%",
"chargeTotal": 0,
"confirmedShipmentDate": "2019-01-10",
"contactId": 0,
"currency": "USD",
"customerId": 878787,
"deliveryMode": "BJLTL",
"deliverylocation": 8887788,
"description": "",
"listAttachments": [
{
"fileMimeType": "",
"filePath": "",
"name": "",
"timestamp": "2019-02-08T16:44:08.000Z",
"type": "Pick"
},
{
"fileMimeType": "",
"filePath": "",
"name": "",
"timestamp": "2019-02-08T16:44:13.000Z",
"type": "Invoice"
}
],
"listNotes": [
{
"description": "",
"mNoteId": null,
"noteId": 5637334180,
"notes": "UPS COLLECT ACCT #F59056",
"restriction": "Internal"
}
],
"listProducts": [
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 1620,
"priceApprovalStatus": "Open",
"productId": "23ECTB60X4455",
"productPrice": 2.7,
"quantity": 600,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161102,
"siteId": "GLENVW1",
"unit": "EA",
"wareHouseId": "28"
},
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 651,
"priceApprovalStatus": "Open",
"productId": "23ECTB4455",
"productPrice": 2.17,
"quantity": 300,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161103,
"siteId": "GLENVW1",
"unit": "EA",
"wareHouseId": "28"
},
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 972,
"priceApprovalStatus": "Open",
"productId": "23ECTB3654545",
"productPrice": 1.62,
"quantity": 600,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161105,
"siteId": "GLENVW1",
"unit": "EA",
"wareHouseId": "28"
},
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 1038,
"priceApprovalStatus": "Open",
"productId": "23ECTB488787",
"productPrice": 1.73,
"quantity": 600,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161106,
"siteId": "GLENVW1",
"unit": "EA",
"wareHouseId": "28"
},
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 222.06,
"priceApprovalStatus": "Open",
"productId": "2CFS38X700",
"productPrice": 74.02,
"quantity": 3,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161107,
"siteId": "GLENVW1",
"unit": "ROLL",
"wareHouseId": "28"
},
{
"deliveryMode": "BJLTL",
"lineDiscount": 0,
"linePercent": 0,
"mProductId": null,
"netAmount": 217.14,
"priceApprovalStatus": "Open",
"productId": "2SWS52X178787",
"productPrice": 72.38,
"quantity": 3,
"salesLineStatus": "Invoiced",
"salesOrderLineId": 5637161108,
"siteId": "GLENVW1",
"unit": "ROLL",
"wareHouseId": "28"
}
],
"mNoteId": null,
"mOrderId": null,
"notes": null,
"orderDate": "2019-01-09",
"orderId": 563787455,
"orderName": "RYERSON - ELGIN #4007",
"orderNumber": "S-0003290",
"orderType": "Sales order",
"requestedReceiptDate": "2019-01-10",
"requestedShipDate": "2019-01-10",
"salesOrderStatus": "Invoiced",
"salesTaxTotal": 0,
"siteId": "GLENVW1",
"wareHouseId": "28"
}
мобильное приложение запрашивает данные заказа, веб-служба AIF выполняет запрос для получения сведений о заказе из AX и возвращает все данные в приложение.Таким образом, количество времени, которое веб-служба извлекает из AX, занимает больше времени и приводит к таймауту