Страница 1 из 2

Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 28 дек 2007, 10:51
Nikos
Добрый день!
Появилась необходимость при оприходовании материалов выполнить определенные действия. В настройках есть такой пункт как "Перед оприходованием выполнить алгоритм". По названию как раз то, что мне нужно. Почитал документацию в ...\EXE\ManufExt\Samples\VIP. Практически без ошибок откомпилировал предложенные демо варианты (только несоответствие количества параметров в одном месте) и надеялся в итоге увидеть сообщение 'Вас приветствует алгоритм №5000'.
Далее в настройках ... - Управление снабжением - Приходная накладная - Запуск алгоритмов - Перед оприходованием выполнить алгоритм пытаюсь выбрать алгоритм с номером 5000, выбираю перерегистрацию алгоритмов... и все - нет в списке алгоритма с таким номером! Что я не так сделал?
Ресурс подключен, через запуск внешнего интерфейса видны ALGORITM_5000 и ALGORITMSETUP_5000

Добавлено: 28 дек 2007, 11:31
oiko
а в UserAlgor.lst строчку AlgorithmName = 'Algoritm_5000' добавили?

Добавлено: 28 дек 2007, 13:17
Nikos
Действительно, там не совпадали наименования, но теперь опять появилась ошибка (которую я уже решил, что победил). Возникло необработанное исключение ... ошибка загрузки объекта из ресурсного файла (M_MnPlan::Algoritm_5000). Почему он указывает M_MnPlan?

Добавлено: 28 дек 2007, 14:00
edward_K
потому что :) - все алгоритмы вызывается из компоненты M_MnPlan . А ругается потому как вы при компиляции не указали сию компоненту.

Добавлено: 28 дек 2007, 14:10
Nikos
Понятно. А подскажите, как это сделать - указать компоненту при компиляции?

Добавлено: 28 дек 2007, 14:34
edward_K
после vih пропишите в vip
#ifdef ComponentVersion
#component "M_Mnplan"
#endif

Добавлено: 28 дек 2007, 14:56
Nikos
edward_K, большое спасибо! Заработало.
Когда перешли на 8-ку я прописывал компоненты для UserReport.vih, но не понимал для чего... Получается, что я добавляю функционал в существующую компоненту?

Добавлено: 28 дек 2007, 15:04
Nikos
И еще последний вопрос. Что нужно сделать, чтоб алгоритм выполнялся в фоновом режиме, чтоб пользователю не нужно было нажимать кнопку "выполнить"?

Добавлено: 28 дек 2007, 15:34
oiko
В настройке алгоритма указать чтобы исполнялся без запроса.

Добавлено: 28 дек 2007, 15:43
Nikos
oiko, большое спасибо - теперь просто красота!
Всех с наступающим Новым Годом!!!

Re: Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 17 авг 2010, 12:47
hope
Тоже откомпилировала алгоритм из примера и тоже не могу увидеть этот алгоритм. Только у меня 7.12.

При описании алгоритма в UserAlgor.lst в строке AlgorithmName = 'Algoritm_5000' в апострофах нужно указать имя интрефейса? какого из них: AlgoritmSetup_5000 или Algoritm_5000.

Или может текстовое имя алгоритма, которое задается в коде: GetName := 'Пример написания VIP-алгоритма';

Или может в 7.12 тоже надо как-то указать принадлежность к компоненте?

Этот свой алгоритм должен появиться в таблице FORMPL?

Re: Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 17 авг 2010, 20:53
Seybukan
Перерегистрацию алгоритмов запускали.
Он сам не появиться в списке.
Надо запустить перерегистрацию по локальной функции из списка системных алгоритмов.

Re: Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 18 авг 2010, 08:11
hope
Спасибо! Все получилось - перерегистрация помогла. Оказывется я еще и не там искала новый алгоритм - надо в системных его смотреть.

Re: Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 29 ноя 2011, 08:38
Алексей
сделал алгоритм, при переинициализации алгоритмов получаю сообщение:
"приведение M_MnPlan :: Algoritm6010 к нереализованному ObjInterface "M_MNPLAN::oAlgoritm_Sys"
Системная ошибка, алгоритм M_MnPlan :: Algoritm6010 не загружен
Если смотреть через запуск удаленных интерфейсов - там он есть... вихи все новые подложил, в чем может быть дело?

Или киньте плиз самый просто пример тестового алгоритма аля "Хэллоу ворлд".

Re: Создание системных алгоритмов на VIP в Галактике 8.10

Добавлено: 29 ноя 2011, 10:32
n0where

Код: Выделить всё

#define ComponentVersion

#component "M_MnPlan"

CONST
#include "..\include\GLOCONST.INC"
end;
#include "..\include\galnet.ccm" end;

#include "..\include\uAlgor.vih"
#include "..\include\oAlgSetup.vih"


VipInterface Algoritm_7052 implements oAlgoritm_Sys
#ifdef ATL51
  Licensed (FREE)
#endif
;

interface Algoritm_7052;

create view;

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// Номер системного алгоритма
Function GetNum: word;
{
  GetNum := 7052;
} // Function GetNum
Function GetName: string;
{
  GetName := 'Бла Бла';
}; // Function GetName
Function GetMemo(st: oSteckCommonString): boolean;
{
  st.Push('');
  GetMemo := true;
}; // Function GetMemo
Function GetNameInter: string;
{
  GetNameInter := 'Algoritm_7052';
}; // Function GetNameInter
Function GetNameInterPr: string;
{
  GetNameInterPr := ''; // настройка не требуется
}; // Function GetNameInterPr

Function InitInter(var pt: TRecAcc): boolean;
begin
    InitInter := true;
end;

Function RunInter(wflag: word; var pt: TRecAcc): boolean;
begin
  RunInterface('Algoritm_7250_Main',PT.cpNrec,1); // Вызываем или выполняем что хотим ! Но я делаю без настройки через интерфейсы
  RunInter := true;
end;

end.