Добрый день! Очень подробно, хорошо написано. Мне кажется было бы плюсом описать способ автоматического запуска с помощью Jenkins, например. Не будут же разработчики, особенно если команда большая, запускать тесты каждый раз после коммита из терминала каше. Как считаете?
Спасибо за комментарий. Я Вам отвечу, как только снова доберусь до компьютера!
Я могла бы, конечно, сказать, что это же демо, я не все случаи рассматриваю. Но я с Вами соглашусь — это упущение, забыть про %Date! ;)
Да, действительно может. Но в таком случае у нас получится список объектов класса Front.Helpers.ListColumn, а не %Library.ArrayOfDataTypes.
Нам необходимо будет немного переделать код в тех местах, где он использует методы для работы с массивом.
for {
set listColumn=listColumns.GetNext(.idx) //получаем один из объектов списка типа Front.Helpers.ListColumn
quit:idx=""
set fieldName = listColumn.Field //обращаемся к свойству класса напрямую, в fieldName запишется его значение
if (fieldName '= "ID") {
set $PROPERTY(obj,fieldName) =$PROPERTY(itemData,fieldName) //устанавливаем в свойство нашего объекта значение полученное из данных вкладки по имени поля
}
}
Естественно, я так набросала быстренько, но ведь это еще не все.
Если пользоваться дебагером, что в нашем случае оказалось вполне реально(я вообще со студийным дебаггером немного в контрах), то можно увидеть ошибку при попытке использования стандартного(встроенного) конвертора как раз из-за отсутствия передаваемых параметров, ну и исправить ее. Чтобы стандартный метода заработал, нужно изменить сигнатуру метода %OnNew() в классе Front.Helpers.ListColumn. Сделать возможным, чтобы он принимал пустые строки.
Пожалуй, это хороший альтернативный вариант для данного случая.
Но вообще мне для работы с JSON и REST приложениями нравится Utils.JSON. В общем-то достаточно удобная вещь. С ее помощью можно формировать сложные структуры. Например JSON для объекта, имеющего внутри и списки и массивы данных, делать вложенные структуры. Наименовать JSON на выходе не только «childrens», но как-нибудь по другому=)
Соглашусь, было бы очень интересно.
Мне не хотелось просто рассказывать как работают перечисленные выше функции, это есть и в документации.
А как бы Вы сделали?
Я могла бы, конечно, сказать, что это же демо, я не все случаи рассматриваю. Но я с Вами соглашусь — это упущение, забыть про %Date! ;)
Нам необходимо будет немного переделать код в тех местах, где он использует методы для работы с массивом.
Естественно, я так набросала быстренько, но ведь это еще не все.
Если пользоваться дебагером, что в нашем случае оказалось вполне реально(я вообще со студийным дебаггером немного в контрах), то можно увидеть ошибку при попытке использования стандартного(встроенного) конвертора как раз из-за отсутствия передаваемых параметров, ну и исправить ее. Чтобы стандартный метода заработал, нужно изменить сигнатуру метода %OnNew() в классе Front.Helpers.ListColumn. Сделать возможным, чтобы он принимал пустые строки.
Пожалуй, это хороший альтернативный вариант для данного случая.
Но вообще мне для работы с JSON и REST приложениями нравится Utils.JSON. В общем-то достаточно удобная вещь. С ее помощью можно формировать сложные структуры. Например JSON для объекта, имеющего внутри и списки и массивы данных, делать вложенные структуры. Наименовать JSON на выходе не только «childrens», но как-нибудь по другому=)