2009-02-18 4 views
4

Я планирую систему EDI, которая отправляет, среди прочего, сообщение подтверждения XML, содержащее несколько элементов, но в частности эти три; ErrorCode, ErrorSeverity и ErrorDescription.Рекомендации по ошибкам и сообщениям

В основном я разбираю входящее XML-сообщение и в зависимости от успеха или сбоя анализа, включая форматирование, синтаксис, структуру, действительность и некоторые бизнес-правила, я верну либо подтверждение успеха, либо отказ.

У меня есть свободное владение для выбора ErrorCodes, ErrorSeverity и ErrorDescription, но вместо наивного запуска с ErrorCode [1], ErrorSeverity [Error], ErrorDescription [Не удается найти входящий XML-файл] и добавления ошибок, как я думаю о них во время кодирования анализатора входящих сообщений Мне было интересно, есть ли наилучшая практика для выбора кодов ошибок и серьезности?

Я знаю, что коды ошибок HTTP похожи на 2xx для сообщений OK, 4xx для определенных ошибок, 5xx для ошибок сервера и т. Д., И задавались вопросом, есть ли у кого-нибудь хорошие предложения, которые могли бы помочь мне по дороге, прежде чем я закоучу себя в угол и скажем, «если только все мои« предупреждающие »ошибки начались с 3 или чего-то подобного!

Я думаю, что ErrorSeverity не будет намного больше, чем [Error], [Warning], [Info] и [OK] может быть

Благодаря

ответ

2

Вы можете найти существующие ошибки-коды для электронного обмена данными здесь:.

http://msdn.microsoft.com/en-us/library/bb245948.aspx

систем/разработчики вы будете общаться с, вероятно, будет рад, если вы используете один из стандарта, описанного в одном из этих документов.

+0

Хорошее мышление Эспо. Конечно, сообщение об ошибке отправляется отправителю сообщения и поэтому должно иметь смысл и, скорее всего, будет действовать на них, поэтому использование «стандартных» кодов ошибок EDI - правильный путь. Я проверю ссылку. Спасибо. – Sprogz

1

Мне нравится отличать «Ошибка» (входные данные были неисправны) от «Fatal» (система разбита). Первый требует фиксации данных и повторной попытки; другой - нет.

Само собой разумеется, что любые сообщения об ошибках должны быть действительны; они должны четко указать получателю точно, что не так, и какие действия необходимо предпринять, чтобы исправить ошибку в данных.

Если вы отдельно сообщаете серьезность, то не только я не вижу необходимости придерживаться заранее определенных числовых диапазонов, я полагаю, что такой ход - прямая куртка. Если вы сделать решить, есть мнемоническое значение в использовании диапазонов, делают диапазоны по меньшей мере в десять раз больше, чем вы думаете, что вам сейчас нужны (цифры дешевы, почему бы не использовать пять? ;-)

Вы могли бы также рассмотреть параметризуя ваш Сообщения; например явные поля для указания позиции в тексте. Это упрощает код для получения сообщения и делает с ним что-то полезное (без необходимости разбирать текст, читаемый человеком, и искать подсказки).

+0

Спасибо, Джоэл. Я согласен с вопросами отправки серьезности отдельно, когда уже определены диапазоны ErrorCode для этого, но это в XSD, который я должен использовать; это необязательно, но один из наших партнеров EDI попросит об этом :(Не могли бы вы рассказать о параметризации? Оберните части сообщения об ошибке между токенами? – Sprogz

+0

+1 для различия между 'Error' и' Fatal'. Независимо от того, какие точные термины вы выберите, это отличное отличие. –

Смежные вопросы