Главная » Экспириенс » Архив рубрики "Продвинутым"

Другие подрубрики в рубрике "Экспириенс":

Сортировка:

Разбиение по «методу Пугаева» или «разность округлённых значений»

Разработчикам часто приходиться сталкиваться с задачей, когда нужно некую сумму S, распределить между строками, пропорционально некому значению Q в этой строке и записать в F. Как она решается? Для каждой строки F = ROUND( Q * S /SUM(Q) ) ;      где   S /SUM(Q) – цена одной штуки. Проблема в том, что при округлении, теряются или появляются …

NAV 2009 и Юникод!

Название может немного ввести в заблуждение, но я начал писать этот пост, как ответ на проблему, с которой столкнулся мой партнер, работая с NAV 2009 – проблема была связана с кодировкой Unicode. Я не эксперт по Unicode, поэтому не обижайтесь на меня, если я назову некоторые вещи неправильно. Как вы знаете, NAV 2009 состоит из …

Подключение к веб-сервисам NAV из Javascript

Предыстория Пожалуйста, ознакомьтесь с этой статьей, чтобы получить представление о работе будущего скрипта на Javascript. Для понимания заметки требуется базовые знания Javascript и XML :) Совместимость с браузерами Указанный в данной статье пример, будет работать с браузером Internet Explorer. Тестирование выполнялось только в браузере IE8, но, в соответствии с документацией, код должен корректно работать в …

Как модифицировать Help в Навижн

Терминология TOC – table of content – HTML файл в котором описана структура хелпа. Если проще – таблица из 2х столбцов, в первом – заголовок html страницы, во втором – ссылка на html страницу. CHM – compressed HTML Help. Дам сложное определение, что такое CHM: Внутри этого файла содержатся HTML страницы Внутри этого файла, как …

Check-in и check-out малой кровью

Известно — там, где не предусмотрены стандартные средства чего-либо, обязательно (обязательно) найдется свой Левша, который с помощью молотка, веревки и смекалки (!) сделает так, как никому и не снилось. Сегодня в студии разбирается вопрос организации работы роты программистов над отдельно взятым проектом. Боевая задача — запретить одновременное редактирование одного и того же объекта разными людьми. …

Архивация в Dynamics NAV средствами Windows

Вы когда-нибудь обращали внимание на то, что проводник Windows может показывать содержимое Zip архива? К тому же Вы можете добавлять в архив файлы и извлекать их. Как-то я задался вопросом: как можно использовать эту возможность из Navision? Ведь в этом случае мне не придется заботиться о том, чтобы устанавливать архиватор на каждой машине.  Давайте разберемся …

Отправка почты из Navision так, чтобы она осталась в почтовом клиенте

В организации используются в качестве почтового клиента Outlook и TheBat. Возникла необходимость отправлять почту так, что бы она оставалась в почтовом клиенте у конкретного пользователя, отправляющего почту из Navision. При этом немаловажным фактором является то, что нужно подключать аттачменты. Порывшись в интернете я понял, что для этого можно использовать протокол MAPI который поддерживают как Outlook …

Замер производительности малой кровью

— Что ты пишешь? — спросили программиста. — Сейчас запустим — узнаем! — ответил программист. Задача повышения производительности стояла и стоит перед нами (разработчиками) всегда. Не только в процессе написания свежего кода, но и месяцы (годы) спустя — когда нагрузка на систему естественным образом возрастает. Или неестественно — в тяжелые предновогодние дни, когда графики всех …

Исправление ошибки с constraint $ndodefault$*

Сегодня в студии — очередная ошибка, на этот раз связанная с названиями констрэйнтов (на SQL). Выглядит она так: ————————— Microsoft Business Solutions-Navision ————————— Произошла следующая ошибка(и) SQL Server при обращении к таблице Purch. Inv. Header: 3728,»42000″,[Microsoft][ODBC SQL Server Driver][SQL Server]’$ndodefault$860319737$66′ is not a constraint. 3727,»42000″,[Microsoft][ODBC SQL Server Driver][SQL Server]Could not drop constraint. See previous errors. …

Как установить демо-базу MS Dynamics NAV 2009 на именованный инстанс SQL Server

По умолчанию демо-база инсталлируется на инстанс с названием MSSQLSERVER. Для SQL Server 2005 это название инстанса идет по умолчанию. Но что делать, если SQL Server установлен с другим именем инстанса? Ответ кроется в использовании файла .msi вместо исполняемого файла в корне установочного DVD. Останется лишь одна небольшая неприятность – после подобной установки демо-базы вы не …

Сохранение/создание файла с сервера приложений NAV 2009 на другую машину (в share-папку)

Чтобы RTC мог экспортировать файлы в шару на другом компьютере при помощь Constrained Delegation, необходимо настроить делегирование прав для аккаунта, от имени которого запущен сервис, на машину, где расположена шара. Ниже пошаговая инструкция по настройке такого делегирования: 1. Найдите в Active Directory пользователя, под учетной записью которого работает NST, и перейдите на закладку Delegation Tabl: …

Работа с несколькими серверами приложений NAV 2009 – дубль 2 (SP1)

Прямо перед релизом Microsoft Dynamics NAV 2009 я написал заметку про работу с .BAT-файлами для создания нескольких серверов приложений для NAV 2009. Близится к выпуску NAV 2009 SP1, и пришло время для небольшого обновления. Во-первых, добавился файл CustomSettings.template, который представляет из себя CustomSettings.config с добавленными «переменными» (они заменили реальные значения), т.ч. стало возможным делать автоматический …

4 BAT-файла на клиентском уровне (клиентского слоя NAV 2009)

Пожалуйста, перед чтением этой статьи ознакомьтесь с заметкой «Multiple Service Tiers» Неужели вам необходимо подходить к машине, на которой запущен сервер приложений (Service Tier), чтобы стартовать нужные сервисы вручную, или есть более простой способ сделать это? Наверно, уже догадались, что есть. Для этого нам понадобится команда SC: SC \\machine start servicename Предположим, что мы будем …

Работа нескольких серверов приложений NAV 2009

NOTE – there is an updated post reg. Multiple Service Tiers in NAV 2009 SP1 here. Перед чтением этой заметки прочитайте вначале статью про сервер приложений :) И у партнеров-внедренцев, и у клиентов достаточно распространена ситуация, когда есть несколько БД. Например, одна для разработки, вторая боевая. Или, например, у компании-внедренца крутятся все базы его клиентов, …

Проводите апгрейд NAV 2009 под учетной записью администратора при работе на машине с SQL

При апгрейде клиентского приложения Microsoft Dynamics NAV CSIDE на машине с установленным SQL Server (не знаю, зачем оно вообще там оказалось – прим.перев.), запускайте CSIDE-клиента с полными правами администратора (Run as administrator). Это так важно потому, что при локальном подключении из Vista или Windows 2008 Server к SQL Server’у, он обрезает часть прав текущего пользователя, …

Хитрости NAV 2009: настройка панели действий (Action Pane)

Для панели действий в RTC предусмотрено много различных настроек: можно создать свою собственную группировку кнопок для ключевых (наиболее частых) задач; можно добавлять задачи и действий на большинство страниц; можно комбинировать эти задания в группы. можно менять размеры иконок, так что самое важное всегда будет на виду! Панель действий – часть страницы RTC, как карточек, так …

Куда снова подевался zup-файл?

Я продолжаю забывать, где лежат файлы CustomSettings.config, ClientUserSettings.Config и т.п. Поэтому снова открыл статью про zup-файл. На этот раз, я собрал все пути к этим файлам в одной форме, так что искать их больше не придется. В дополнение к этому, теперь можно редактировать их прямо из этой формы. Выглядит это хозяйство примерно так: При первом …

Флаг трассировки 4616 на SQL Server для Dynamics NAV 2009

При запуске RTC-клиента или открытии базы в классическом клиенте вам выдается предупреждение, если неправильно выставлен т.н. «trace flag» (флаг трассировки). Из-за изменившейся security-модели на SQL Server 2005 навижн подключится к серверу только при установленном флаге трассировки 4616. Как это сделать: Откройте SQL Server Configuration Manager Щелкните правой кнопкой по MSSQLSERVER и выберите «Properties» В форме …

Запуск классических отчетов в RTC (RUNMODAL и кое-что еще)

В этой заметке – немного замечаний по запуску классических отчетов из RTC RUNMODAL (Not possible) RTC запускает классические отчеты (без RDL Layout) – запуском движка отчетов для классического клиента. При этом RTC не умеет запускать классические отчеты МОДАЛЬНО, запуск с помощью RUNMODAL приравнивается к RUN, т.е. программа не ждет, пока отчет отработает, а продолжает выполнение …

Выбор принтера в роле-ориентированном клиенте

На сегодняшний день форма 64 Printer Selections не перенесена на страницу 64 Printer Selections, т.к. виртуальная таблица 2000000039 больше не доступна из RTC. Задумавшись об альтернативных способах работы страницы 64, нашелся выход – попробовать новую функциональность NAV 2009 — Client Extensibility, хотя то же самое можно сделать и с помощью заполнения временной таблицы из COM. …

NAV 2009 – куда подевался zup-файл?

В более ранних версиях настройки клиента хранились в файле .zup. В Microsoft Dynamics NAV 2009 это немного усложнили. В заметке мы постараемся объяснить, где какие настройки хранятся. К тому же, в NAV 2009 вам может понадобиться время, чтобы найти файлы в папках с длинными названиями. В статье мы расскажем, где находится каждый файл, чтобы побыстрее …

Несколько советов разработчикам MS Dynamics NAV 2009 (RTC)

Здесь собраны несколько советов, которые пригодятся при разработке в NAV 2009. Прошу сильно не бить, если они покажутся смешными (кому как :) Управление файлами на компьютере с запущенным RTC В C/AL для работы с файлами имеются следующие команды: EXIST: EXISTS(<File_Name>); RENAME(<Old_File_Name>,<New_File_Name>); ERASE(<File_Name>); COPY(<From_File_Name>,<To_File_Name> ) . Но они работают только с классическим клиентом, на RTC эти операции …

Подключение к веб-сервисам NAV из VBScript

Серия статей про подключение к веб-сервисам NAV подходит к концу. Думаю, что охватил большинство платформ, на которых оно могло потребоваться — в некоторых случаях это было просто, иногда немного сложнее. Я не писал про Flash, так же как и не писал про вещи типа iPhone или iPod Touch, в основном потому, что не думаю, что …

Подключение к веб-сервисам NAV с WM 6.5

Стыдно признать, но заметку про подключение к веб-сервисам NAV из Windows Mobile 6 я писал, когда уже полгода как вышла версия 6.5. Вот такой я «мобильный» :) Только что скачал отсюда 6.5 SDK и попробовал набросать то же самое приложение, которые писал для Windows Mobile 6, все работает хорошо, так что просто выполните пошагово статьи …

Подключение к веб-сервисам NAV из Windows Mobile 6

Я сделал свое самое первое приложение для Windows Mobile! Она работает на эмуляторе из Professional SDK. Кроме того, я попробовал развернуть свое приложение на реальном устройстве (своем смартфоне), и у меня получилось: Сказать по правде, самое сложное – провести начальную настройку, чтобы можно было работать. Несколько полезных ссылок для понимания процесса Windows Mobile 6 SDK …

Подключение к веб-сервисам Navision из Visual Basic.NET при помощи Web Reference

В целом, эта заметка – всего лишь переписанная для Visual Basic вот эта статья, так что прочитайте сначала ее. Кроме того, это мое первое приложение на Visual Basic. Не думаю, что есть способ сделать вещь из заголовка проще, но опять же – возможно, я не прав. Я создаю консольное приложение Visual Basic и добавляю два …

Подключение к веб-сервисам NAV из Visual Basic.NET при помощи Service Reference

В целом, настоящая заметка – это переписанные на языке Visual Basic статьи «Подключение к веб-сервисам NAV из C# при помощи Service Reference (вариант с написанием кода)» и «», объединенные вместе, так что ознакомьтесь с ними перед чтением этой заметки. Как уже описывалось в других заметках, есть два способа работы с Service References. Первый – хранить …

Подключение к Web-сервисам NAV из Java

Необходимые знания/навыки Пожалуйста, вначале прочтите эту статью – чтобы получить разъяснение по поводу изменений сервера приложений для работы с NTML-аутентификацией, а также краткого описания сценария, которую я буду реализовывать в Java. Ну еще, конечно, надо немного знать Java :-) Версии и дистрибутивы Java не поддерживает SPNEGO-протокол аутентификации, но имеется поддержка NTLM-аутентификации, так что вам придется …

Подключение к веб-сервисам NAV из C# при помощи Service Reference (вариант с написанием кода)

Прежде чем приступить к чтению этой статью, ознакомьтесь с заметкой connecting to NAV Web Services from C# using Service Reference (config file version) . Code is king Как вы уже наблюдали в прошлой заметке, файл конфигурации – довольно сложен и, хотя он поддается редактированию вручную (во время инсталляции или позже), я все-таки предпочитаю прописать определенный …

Как создавать/читать xml-файлы из NAV…

В своей предыдущей заметке я описал возможности по чтению xml-файлов из NAV. При этом сам файл – просто прикрепил, и не рассказал, как их создавать. Исправляюсь. —— <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mbs="http://www.microsoft.com/mbs/xml"> <soapenv:Header xmlns:soapenv="soapenv"> <soapenv:Body> <mbs:enumeration xmlns:mbs="mbs"> <mbs:table>Customers</mbs:table> <mbs:Customer>   <mbs:CustomerAuthentication>     <mbs:No>10000</mbs:No>     <mbs:Name>The Cannon Group PLC</mbs:Name>   </mbs:CustomerAuthentication>   …

Как прочесть xml-документ из Navision при помощи Microsoft XMLDOM automation

Мне часто задают вопросы типа «Как в Navision читать xml-документы без использования xml-портов?» В основном они связаны с тем, что xml-порты имеют ограничения и не всегда их можно использовать. Вот пример кодеюнита, который считывает xml-узлы из файлы. Просто пример, ничего более… :-) OBJECT Codeunit 50050 xml read {   OBJECT-PROPERTIES   {     Date=05.08.12; …

Подключение к веб-сервисам NAV из C# с помощью Web Reference

Предыстория Пожалуйста, ознакомьтесь с этой заметкой, чтобы получить представление о сценарии, который я собираюсь реализовать на C# с помощью Web Reference’ов. Что касается аутентификации, то для C# можем запускать сервер приложений с Negotiate, или с NTLM (как в PHP и Java). В своем примере я предполагаю, что сервер приложений будет использовать SPNEGO (т.е. по умолчанию). …

Подключение к веб-сервисам NAV из …

Когда-то я обещал написать несколько статей по тому, каким образом подключаться к веб-сервисам NAV из разных языков программирования/различных платформ, и, чует мое сердце, настало время сдержать данное обещание. Я напишу несколько заметок по подключение к веб-сервисам NAV из: PHP; Java; C#, используя Web References; C#, используя Service Reference; Javascript; Visual Basic, используя Web Reference; Visual …

Ошибка «Could not open key» во время установки NAV 2009

Во время установки Dynamics NAV 2009 один мой друг столкнулся вот с такой проблемой: ————————— Microsoft Dynamics NAV 2009 Build 27808 Error Report RoleTailored client Microsoft Dynamics NAV 2009 RoleTailored client Fatal error during installation. Could not open key: UNKNOWN\MSComDlg.CommonDialog.1\CLSID. Verify that you have sufficient access to that key, or contact your support personnel. ————————— …

Как установить на NAV 2009 несколько демо-баз

Во время работы инсталлятора по умолчанию вы можете установить только одну демо-базу. А что если вам нужно несколько демо-баз, для разных вещей? Как это сделать? Предполагается, что вы умеете создавать новую фирму в классическом клиенте, но вот с демо-данными беда. Решение – использовать SQL Server Management Studio, чтобы поднять на сервере несколько версий демо-базы. Остановите …

Установка хранимых процедур для NAV 2009 вручную

Вообще-то для установки хранимых процедур рекомендуется использовать инсталлятор с продуктового DVD. Но если на одной машине у вас работают несколько инстансов SQL Server’а, такой подход не сработает. Надо сделать это вручную. Скопируйте файл xp_ndo.dll туда, где будете его хранить. Файл находится на DVD в папке “D:\SQLDatabase\PFiles\Microsoft Dynamics NAV\60\Database” on the product DVD. Для добавления ХП …

Как поставить несколько cерверов БД Navision на одну рабочую станцию

На одной рабочей станции можно держать несколько разных Navision Servers. Лично у меня есть несколько демонстрационных баз CRONUS (3.01B IT, 3.10A IT, 3.10A W1, 360 IT, 360 W1, 370 IT, 370 W1, 370A IT, 370A W1, 370B IT, 370B W1, 4.00 IT, 4.00 W1) и несколько БД по клиентским проектам. Естественно, они не запускаются автоматически, …

Как управлять блокировками и быстродействием в SQL?

В SQL мы можем использовать трассировку, чтобы определить, какие запросы являются тяжелыми (несбалансированными) по времени исполнения/чтения/записи, а также вызывают блокировки записей. Но мы не можем знать какие процедуры порождают их. Чтобы узнать это, мы должны использовать монитор клиента, который дает нам представления о «тяжелых» запросах и точное расположение процедур , которые их используют. В этом …

Использование временной таблицы как источника данных сабформы NAV

Немного теории У переменной типа Record есть логическое свойство Temporary (Временный). При установке этого свойства в TRUE, вашему приложению будет доступна структура, триггеры и функции исходной таблицы, а вот реальные данные из БД – нет. То есть, таблица изначально пустая, а все операции над экземпляром этой таблицы будут утеряны, как только работа приложения завершится. Никакого …

BEEP — мощная команда в арсенале Microsoft Dynamics NAV

Последние недели я работал над проектом, в котором требовалось использовать команду SendKeys для работы с NAV-клиентом. Во время разработки передо мной встала проблема синхронизации. С одной стороны —  вызовы SendKeys, с другой — поведение непосредственно клиентского приложения. Примерно в таком духе — вы отсылаете NAV’у нажатия клавиш, клиент открывает форму, все это занимает время, а …

Как передавать параметры между объектами (формами, отчетами и проч.)

В одной из статей мы изучили способ передачи параметров между объектами Navision с помощью спец.функций, которые принимают значения. В данной статье используется другой подход. Начиная с MBS-Navision 3.01, у кодеюнита появилось новое свойство SingleInstance = Yes. Вот что пишет про это свойство встроенная справка: «Установка этого свойства в кодеюните X влечет за собой то, что …

Как узнать – какие объекты можно прочесть с текущей лицензией Navision

NAV хранит эти данные в виртуальной таблице 2000000044 Permission Range.  Информация берется из текущего файла с лицензией. Виртуальные таблицы не видны в списке объектов (Object Designer’е), но вы можете увидеть ее в списке при создании новой формы, либо создав переменную типа Record. Шаги по созданию формы. Создайте табличную форму с помощью Мастера (таблица 2000000044). Выберите …

Управление сессиями Microsoft Dynamics NAV

Статья — вольный перевод заметки Алена Крикилайона, оригинал статьи находится по адресу: http://mibuso.com/howtoinfo.asp?FileID=18 Представьте себе, что у вас есть 10 пользователей. Вы купили 12 сессий (две лишних на всякий пожарный случай). Но ваши пользователи всегда открывают несколько сессий. Или например, так: у вас 100 пользователей, но одновременно в системе работают только 40. Вы покупаете 45 …

Как учитывать в Navision закупку ресурсов

Статья — вольный перевод заметки Карен Хиггинс, оригинал статьи находится по адресу: http://mibuso.com/howtoinfo.asp?FileID=20 Запрос на возможность проводить закупки ресурсов — один из частых запросов на доработки Navision. В этой заметке полностью пошагово описана данная доработка. В результате работы, записи с типом Ресурс будут записаны в таблицах G/L Entry, Resource Ledger Entry и, если потребуется, в …

Excel в стиле Ultra (часть 2)

Эта статья — продолжение темы, начатой в «Excel в стиле Ultra» Как-то я задавал вопрос о том, что делать с невидимыми экселями, которые остаются висеть в памяти из-за ошибок. Тимур Дадаханов (timur-dadakhanov@rambler.ru) прислал свое решение этого и сразу целого вороха других проблемсов. Ему слово :-) К сожалению, с самого начала я не заметил в вашей статье ключевую фразу …

Excel в стиле Ultra

Эксель — самое популярное средство подготовки отчетов, печатных форм, сверок с клиентами и поставщиками. За все время работы с ним накопилось достаточно тонкостей, которые в разы (иногда в десятки раз) увеличивают скорость работы. Итак: 1) самый медленный способ выкинуть что-то в эксель — это использовать стандартный функционал Excel Buffer :-) Самый быстрый — получить (или …

Фильтруй!

Эта статья — продолжение темы, начатой в «NAV+SQL: подружки-хохотушки» и «Как мы победили» По поводу преобразования фильтра поля в условие SQL-запроса – Петр «grif» Иванов (grif@bk.ru) любезно разрешил нам опубликовать его собственную функцию по преобразованию фильтра NAV в SQL. Вот она: CREATE FUNCTION dbo.Fn_Filter_Convert (@variable  VARCHAR(20), @cd VARCHAR(250)) RETURNS VARCHAR(1024) AS BEGIN   — Функция преобразует фильтр …

NAV+SQL: Как мы победили (часть 2)

Эта статья — продолжение темы, начатой в «NAV+SQL: подружки-хохотушки». Следующим шагом было написать функции, которые будут приводить сиквельные дату и время к навижнновскому стандарту. В Navision пустая дата (0D) — это на самом деле 1 января 1753 года. А пустое время (0T) — 1 января 1754 года. Соответственно, непустое время — это 01.01.1754 ЧЧ:ММ:СС. Функции …

NAV+SQL: две подружки-хохотушки

Давным-давно, когда я и не подозревал о существовании Navision, занимался разработкой корпоративной системы одного логистического холдинга. По всем понятной терминологии – «самописки». Самописка была клиент-серверной, на связке Access 2000 + MS SQL 2000. Тогда же мне пришлось очень плотно подсесть на SQL, хранимые процедуры, функции, триггеры и т.д. и т.п. Фактически, SQL стал (да и остается по сей день) моим любимым языком. Я мог писать на нем что угодно, реализовывать любые …

Navision и рекурсия

Статья — вольный перевод статьи Алена Крикилайона http://mibuso.com/howtoinfo.asp?FileID=11 Что такое рекурсия Рекурсия — это функция, которая вызывает самое себя. Это может происходить явно (функция XYZ содержит в своем теле вызов XYZ), либо неявно (в функции XYZ есть вызов функции ABC, в которой есть вызов функции KLM, в которой… и прочая, и прочая, и, наконец, в …