Отправляет email-рассылки с помощью сервиса Sendsay

Navision - советы и секреты

  Все выпуски  

Navision - советы и секреты


Добрый день!

Поступают первые отклики на рассылку :-) Пока рассылка находится в таком "детском" состоянии, все ваши отклики очень важны и нужны.
Рассмотрим 3 уровня:
1. Новички
2. Средний-продвинутый
3. Звери

Для новичков на мой взгляд более нужны не феньки типа SQL, а методология Навижна на конкретных задач. Что то вроде FAQ.
Примерный список тем:
1. Протянуть поле через учет. (Документ Журнал Книга). Места в CU конкретных
2. Создание нового документа... Заголовок, строки. Постинг в книги, работа с измерениями (Тема не для одного выпуска).
3. Стандарты оформления кода
....

Для средних-продвинутых, феньки:
1. Работа с SQL
2. ПИвоты в Эксель

Для зверей...
Проблемы на проектах (различные) и способы (не технологические, а идеологические) их решения:
К примеру:
1. Интеграция с другими приложениями.
2. Механизмы репликации и консолидации данных
3. Расширенные фин. отчеты... Как реализовать.
4. Различные варианты реализации Док Флоу (расширенные статусы документов и пр..)
Повторюсь - для зверей - кода минимально, главное идею.
В соответствии с этим рассылку (если цель - охватить аудиторию) нужно готовить для 3 групп. Или хотя бы пока на первых двух.
Будем двигаться в этом направлении. Действительно, постараемся по мере возможностей готовить интересные материалы для всех, кто так или иначе связан с Навижн.
Свои пожелания шлите по адресу: likeart@mail.ru.

А пока продолжим тему про дружбу :-)

Как подружить Navision и SQL. Продолжение.

Следующим шагом было написать функции, которые будут приводить сиквельные дату и время к навижнновскому стандарту.
В навижн пустая дата (0D) - это на самом деле 1 января 1753 года. А пустое время (0T) - 1 января 1754 года.
Соответственно, непустое время - это 01.01.1754 ЧЧ:ММ:СС.

Функции для получения даты/времени в навижновском формате на T-SQL:
CREATE FUNCTION dbo.UDF_Navision_Date(@Date datetime)
RETURNS datetime
AS

BEGIN
  RETURN ( cast(str(year(@Date)) + '-' + str(month(@Date)) + '-' + str(day(@Date))  as datetime))
END


CREATE FUNCTION dbo.UDF_Navision_Time(@Date datetime)
RETURNS datetime
AS

BEGIN
RETURN ( cast( '1754-01-01 ' 
   + STR(DATEPART(hh, @Date)) + ':'  
   + STR(DATEPART(mi, @Date)) + ':' 
   + STR(DATEPART(ss, @Date))  as datetime))
END

И перевертыши - функции в Навижн, из которых получаются дата/время в формате SQL (yyyymmdd hh:mm:ss):

// Возвращает дату в формате YYYYMMDD
PROCEDURE GetSQLDate(dateInput : Date) : Text[30];
BEGIN
  EXIT(FORMAT(dateInput,0, ''));
END;

// Возвращает время, которое можно записать на сервер
PROCEDURE GetSQLTime(timeInput : Time) : Text[30];
BEGIN
  EXIT(FORMAT(timeInput,0, '1754-01-01 ::'));
END;

И напоследок - аналог USERID для SQL Server:

CREATE FUNCTION dbo.UDF_User_Name()
RETURNS nvarchar(100)

BEGIN

DECLARE @User nvarchar(100)

SET @User = suser_sname()

RETURN (SELECT UPPER(SUBSTRING(@User, patindex('%\%', @User)+1, LEN(@User))))

END

Так, потихоньку инструментарий стал пополняться, и от рутины можно было переходить к творчеству :-)

На сегодня пока все.


P.S.Хотите поделиться своими знаниями? Всегда Welcome! Любые статьи, Q & A, FAQ, советы - все опубликуем, обязательно укажем автора и дадим линк на сайт :-)

С наилучшими пожеланиями,
Андрей Стрельников.

Группа «Technologies like Art».
Разработки в сфере ERP, SOP, B2B. Скоростные и суперскоростные оптимизации систем.
e-mail: likeart@mail.ru.

Технологии как искусство.
Что такое главное?


В избранное