AXForum  
Вернуться   AXForum > Рынок > Полезное по Microsoft Dynamics
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2005, 12:57   #1  
Ronix is offline
Ronix
Участник
 
8 / 10 (1) +
Регистрация: 29.03.2005
Доступ к Navision Attain Database через C/ODBC из ASP.NET приложения

Игорь Кудряшов

В 2002 году компания Navision Software была куплена корпорацией Microsoft. И теперь продукты Navision поддерживаются и разрабатывается Microsoft Business Solutions вместе с другими приложениями, такими как Microsoft Great Plains, Solomon, Microsoft Retail Management System и Microsoft CRM. Navision Attain имеет чрезвычайно сильные позиции не рынке среднего бизнеса в России, Европе и США, к тому же плюс Navision Attain включает превосходный модуль управления производством (Manufacturing Solution). Наша цель помочь отделам информационных технологий поддерживать и настраивать Navision используя свои внутренние ресурсы.

Темой данной статьи является демонстрация возможности доступа к данным Navision Attain с помощью ASP.NET приложения через интерфейс C/ODBC. Целью наших действий будет являться создание страницы доступа к данным Navision Customers. Итак, приступим:
1. Для нашей работы мы используем Navision Attain 3.6 в составе Navision Database Server, Navision Application Server и Navision Client. Данные компоненты установлены на Windows XP. Для обеспечения работы через C/ODBC интерфейс также необходимо установить соответствующий компонент с дистрибутивного диска Navision Attain.
2. Создадим ODBC DSN для доступа к нашим Navision данным. Для этого выберем Start -> Control Panel -> Administrative Tools -> Data Sources (ODBC). Затем выбираем вкладку System DSN и нажимаем кнопку Add. Мы будем использовать C/ODBC 32-bit драйвер для доступа к данным. Зададим Data Source Name как Navision, Connection оставим Local. В качестве базы данных (кнопка Database) выберем \Program Files\Navision Attain\Client\database.fdb (демонстрационная база данных). Затем нажмем на кнопке Company – единственной доступной компанией для демонстрационной базы является CRONUS. Её и будем использовать. Важным условием для корректной работы с C/SIDE базами данных является корректное выставление опций для C/ODBC соединения. Нажмем кнопку Options и посмотрим на доступные опции – нас будет интересовать параметр Identifiers – он определяет вид идентификаторов, которые будут переданы клиентской программе. Для корректной работы MS SQL Server 2000 с C/ODBC источником мы будем использовать тип “a-z,A-Z,0-9,_”. На этом создание источника данных завершено. Приступим к организации Linked Server
3. Откроем SQL Server Enterprise Manager. Откройте дерево сервера, который будете использовать, в нем выберите пункт Security и подпункт Linked Servers. Правой кнопкой в контекстном меню выберите New Linked Server. В появившемся диалоговом окне, в меню Provider Name выберем Microsoft OLE DB Provider for ODBC Drivers. Пусть наш Linked Server называется NAVISION. В строке Data Source введем имя ODBC источника – у нас он назывался также NAVISION. Linked Server готов! Выберем в нем список таблиц и увидим данные из баз Navision Attain.
4. Далее нам необходимо создать небольшую хранимую процедуру для выборки по продажам. Текст процедуры приведен ниже:
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
GO

CREATE PROCEDURE NavisionCustomers AS

DBCC TRACEON(8765)
SELECT No_, Name, Address, City, Contact FROM OPENQUERY(NAVISION, 'SELECT * FROM Customer')

RETURN

Поясним некоторые моменты. Директива TRACEON(8765) позволяет откорректировать работу с данными переменной длины, возвращаемыми C/ODBC драйвером. Без нее мы не сможем выбирать поля из таблиц Navision – мы будем получать ошибки типа:

OLE DB error trace [Non-interface error: Unexpected data length returned for the column: ProviderName='MSDASQL', TableName='[MSDASQL]', ColumnName='Ship_to_Filter', ExpectedLength='250', ReturnedLength='1'].
Server: Msg 7347, Level 16, State 1, Line 1
OLE DB provider 'MSDASQL' returned an unexpected data length for the fixed-length column '[MSDASQL].Ship_to_Filter'. The expected data length is 250, while the returned data length is 1.

Директива OPENQUERY открывает связанный сервер и передает ему запрос на выполнение, возвращая после этого выбранные данные. Необходимым условием для создания хранимой процедуры является задание директив ANSI_NULLS и ANSI_WARNINGS – они позволяют использовать в хранимых процедурах выполнение гетерогенных запросов. Проверить корректность работы процедуры можно дав команду в MS SQL Query Analizer – EXEC NavisionCustomers
5. Теперь приступим к собственно созданию ASP.NET приложения. Для разработки воспользуемся свободно распространяемой RAD средой ASP.NET WebMatrix. Ознакомиться с ней и загрузить ее можно по адресу http://asp.net/webmatrix . Перед ее установкой необходимо иметь установленный .NET SDK 1.1
6. Запустив WebMatrix, выберем создание Data Pages -> Editable Data Grid в окне визарда. Предлагаемые параметры оставим по умолчанию. В появившейся созданной странице доступа изменим заголовок на Navision Attain Customers, для таблицы доступа установим стиль Verdana и необходимый размер шрифта. Далее, расположим на странице компонент SqlDataSourceControl и настроим его – Connection String зададим как server='(local)'; database='Alba';trusted_connection=true (заменив адрес сервера и имя базы на актуальные значения), а SelectCommand – как EXEC NavisionCustomers
7. Для нашей Data Grid, которая будет отображать покупателей, зададим значение свойства DataSource как SqlDataSourceControl1, а DatKeyField – как No_
8. Далее, переключаемся в режим редактирования кода и проводим следующие замены:
• В методе DataGrid_Delete исправляем запрос для удаления покупателя на необходимый нам
• Исправляем метод DataGrid_Delete исходя из используемых нами полей
9. Запустим созданное приложение и проверим его функционирование на корректность. Это все!

Желаем вам удачи в настройке Navision и формирования отчетности и если вы хотите заручиться нашей помощью - мы всегда готовы вам помочь Позвоните нам в Москве (095) 918-3314, (095) 918-3111 , в США: 1-866-528-0577! help@albaspectrum.com

Игорь Кудряшов – ведущий специалист в Ronix Systems (http://www.ronix.ru), европейском подразделении Alba Spectrum Technologies ( http://www.albaspectrum.com ) – компании – партнере Microsoft Business Solutions, служащей клиентам в городах Москва, Петербург, Екатеринбург, Казань, Ростов и обслуживающей всю Российскую Федерацию.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:55.