|
Как отключить проверку при создании объектаXDTO на основании типа? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
17.12.14
✎
10:13
|
В типе описаны фасеты (возможные значения)
Атрибут = ФабрикаXDTO.Создать(Свойство.Тип, "6.04"); выдает исключение {Обработка.BILL.Форма.Форма.Форма(24)}: Ошибка при вызове метода контекста (Создать) Атрибут = ФабрикаXDTO.Создать(Свойство.Тип, "6.04"); по причине: Несоответствие типов XDTO по причине: Ошибка проверки данных XDTO: Значение: '6.04' не соответствует простому типу: Значение не соответствует значениям фасета перечисления хотелось бы сначала пройти весь алгоритм создания XML, а потом уж его проверить на соответствие схеме это возможно? |
|||
1
RomaH
naïve
17.12.14
✎
10:17
|
||||
2
RomaH
naïve
17.12.14
✎
15:20
|
вверх
|
|||
3
tridog
17.12.14
✎
15:43
|
(0) А зачем? Ну, предположим, надурите вы ее (фабрику), запишите свой xml. Он же все равно потом не прочитается из-за несоответствия схеме.
|
|||
4
Smile 8D
17.12.14
✎
15:50
|
(3) Возможно хотят собрать все ошибки и вывести их разом, а не выводить по одной
|
|||
5
RomaH
naïve
17.12.14
✎
16:00
|
(4) а-то
допустим выгружается данные о лечении пациентов в фонд ОМС всего пациентов 10000 у 50 из них ошибка в дате рождения 0063 у 20 не верно указан вид документа уд. личность "38" и еще куча неверной информации, правила проверки прописаны в XSD которую мы получаем из фонда до сегодняшнего момента XML формировалась без использования XSD - XSD использовалась только для проверки уже готового файла теперь вот смотрим в сторону XDTO - но там в случае ошибки сразу исключение конечно можно через попытку/исключение каждый объект заполнять, но как-то кривовато |
|||
6
tridog
17.12.14
✎
21:24
|
(5) Если будет создаваться невалидный объект - будет еще кривее.
Для описанной задачи - при первой ошибке установки свойства кажется оптимальным переходить в режим проверки дальнейших данных - т.е. продолжать уже только создавать объекты, не записывая их в xml. И, собственно, накапливать информацию об ошибках. |
|||
7
RomaH
naïve
17.12.14
✎
22:41
|
(6) так я их и не записываю в хмл
а создаю объекты - ошибка именно на этой строке кода: ФабрикаXDTO.Создать(Свойство.Тип, "6.04"); |
|||
8
RomaH
naïve
17.12.14
✎
22:44
|
(5) Если будет создаваться невалидный объект - будет еще кривее.
поставь себя на место человека который будет жать на кнопку "создать файл в ТФОМС" нажал - подождал 5 минут (там не хилый сбор данных идет) - ошибка - исправил нажал - ошибка - исправил 100500 раз нажал - нет ошибок - записал или все-таки лучше нажал - список ошибок - исправил нажал - записал? |
|||
9
tridog
17.12.14
✎
23:32
|
(8) Я и не предлагал после первой ошибки падать :)
Но это и не повод пытаться получить от XDTO нарушение контракта. Фабрика кидает исключение вполне обоснованно - Ваше дело исключение обработать. |
|||
10
Apokalipsec
18.12.14
✎
00:01
|
Как облегчить задачу - формировать в отдельной процедуре, всё обернуть в попытку, в случае исключения добавлять ошибку в массив ошибок, потом вывести весь массив. По крайней мере не по одной ошибке вылавливать.
|
|||
11
RomaH
naïve
18.12.14
✎
08:03
|
(10) на каждый тип отдельную Попытку?
Атрибут = ФабрикаXDTO.Создать(Свойство.Тип, "6.04"); заменить на Атрибут = СоздатьАтрибутВПопытке(Тип,Значение); |
|||
12
RomaH
naïve
18.12.14
✎
08:07
|
с попыткой-то понятно
может другой вариант имеется создания ХМЛ по схеме что бы с коллекциями, но без проверки |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |