27.08.2018, 10:48 | #1 |
Участник
|
Получения значения отредактированных данных
Доброго времени суток, мой вопрос в следующем:
Мне необходимо получить значения из полей, сразу после редактирования записи, чтобы в дальнейшем отправлять эти данные через JSON. Как это может быть реализовано? Заранее благодарен! |
|
27.08.2018, 11:14 | #2 |
Участник
|
Вопрос как-то криво составлен
1) получить данные из полей: взять значение из <cursor>.<Field> 2) сразу после редактирование - перекрыть на таблице метод .update(), например |
|
27.08.2018, 11:43 | #3 |
Участник
|
До сохранения в таблице данные хранятся в датасоурсе.
|
|
27.08.2018, 13:18 | #4 |
Участник
|
К сожалению я новичок в этом, а это единственная задача, которую мне необходимо выполнить? Не могли бы вы поконкретнее, с примером объяснить как это работает?
|
|
27.08.2018, 13:19 | #5 |
Участник
|
|
|
27.08.2018, 13:44 | #6 |
Участник
|
Что-то сезон новичков какой-то.
Непонятно, если "это единственная задача" - то зачем вы вообще с Ax и программированием связываетесь? |
|
27.08.2018, 13:54 | #7 |
Участник
|
|
|
27.08.2018, 14:04 | #8 |
Участник
|
Цитата:
Физически, данные хранятся в базе MS SQL. Но изменения в них вносят на стороне клиента. Затем эти изменения сохраняются. Т.е. записываются в MS SQL. Это "в общем". А конкретно, там целый каскад разных прослоек между MS SQL и тем, что видит клиент. Соответственно, и пример будет зависеть от того, из какой именно "прослойки" Вы берете данные для формирования своего сообщения. Как понимаете, способов "вагон и маленькая тележка" Вероятно, Вам проще будет просто явно выполнять сохранение перед отправкой, чтобы не заморачиваться со всеми этими тонкостями, особенно если задача разовая.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
27.08.2018, 14:17 | #9 |
Участник
|
Есть таблица SMAServiceOrderTable. В ней есть множество методов, я заострил свое внимание на методах, которые скопировал в отдельный класс:
На изменение, как раз нужно реализовать: X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::Updated)] public static void SMAServiceOrderTable_onUpdated(Common sender, DataEventArgs e) X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::FinalInsertValidation)] public static void SMAServiceOrderTable_onFinalInsertValidation(Common sender, DataEventArgs e) X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::Updated)] public static void SMAServiceOrderTable_onUpdated(Common sender, DataEventArgs e) { GetData request = new GetData(); request.CustomerID("123456789"); request.Test1("This is test param nubmer one. My system of JSON send and recieve is work"); str dataJson = FormJsonSerializer::serializeClass(request); System.Uri uri = new System.Uri("https://prod-12.westeurope.logic.azure.com/workflows/b68sd3asdfsdgf41edb6d97227da7042fd/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=tCLVeUdDrvHQYS-65dxjTODKG672K7bvFBK-9v3pmSI"); System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient(); System.Net.Http.StringContent queryString = new System.Net.Http.StringContent(dataJson); System.Net.Http.HttpResponseMessage postResult = httpClient.PostAsync(uri, queryString).Result; postResult.EnsureSuccessStatusCode(); } X++: [DataContractAttribute] class GetData { str customerID; str test_param1; [DataMemberAttribute] public str CustomerID(str _customerID = customerID) { customerID = _customerID; return customerID; } [DataMemberAttribute] public str Test1(str _test_param1 = test_param1) { test_param1 = _test_param1; return test_param1; } } В чем собственно цель: в методе на обновление нужно вместо строк которые я сам вписал, передать значения полей таблицы после редактирования. Я Надеюсь понятно объяснил, спасибо! |
|
27.08.2018, 14:44 | #10 |
Участник
|
Входной параметр Common физически - это и есть запись таблицы с уже измененными значениями полей. Вам надо только уточнить, о какой именно таблице идет речь. Т.е. что за таблица была передана в Common.
Примерно так X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::Updated)] public static void SMAServiceOrderTable_onUpdated(Common sender, DataEventArgs e) { SMAServiceOrderTable smaServiceOrderTable = sender as SMAServiceOrderTable; GetData request = new GetData(); request.CustomerID(smaServiceOrderTable.CustomerID); .... }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Fact (1). |
27.08.2018, 15:02 | #11 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Входной параметр Common физически - это и есть запись таблицы с уже измененными значениями полей. Вам надо только уточнить, о какой именно таблице идет речь. Т.е. что за таблица была передана в Common.
Примерно так X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::Updated)] public static void SMAServiceOrderTable_onUpdated(Common sender, DataEventArgs e) { SMAServiceOrderTable smaServiceOrderTable = sender as SMAServiceOrderTable; GetData request = new GetData(); request.CustomerID(smaServiceOrderTable.CustomerID); .... } |
|
27.08.2018, 16:04 | #12 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
Входной параметр Common физически - это и есть запись таблицы с уже измененными значениями полей. Вам надо только уточнить, о какой именно таблице идет речь. Т.е. что за таблица была передана в Common.
Примерно так X++: [DataEventHandler(tableStr(SMAServiceOrderTable), DataEventType::Updated)] public static void SMAServiceOrderTable_onUpdated(Common sender, DataEventArgs e) { SMAServiceOrderTable smaServiceOrderTable = sender as SMAServiceOrderTable; GetData request = new GetData(); request.CustomerID(smaServiceOrderTable.CustomerID); .... } |
|
27.08.2018, 16:23 | #13 |
Участник
|
|
|
|
|