Постобработка файла выгрузки из Клиент-банка в 810

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Постобработка файла выгрузки из Клиент-банка в 810

Сообщение savov »

Добрый день! Если кто работает с пост-обработкой файла в 8.10 после выгрузки из Клиент-банка , помогите, плиз.
В 712 написан использовал функцию для обработки файла после экспорта из Клиент-Банка, базирующуюся на
VipInterface ExpImpScript_Default (описано в доке и в Гал-ке есть заготовка проги). Все работало.
Перекомпилировал в 8.10, подключил в galnet ресурсник через OpenResources=...., но не работет. В доке никаких сообщений об изменениях не нашел. В чем может быть проблема?
empyros
Постоянный обитатель
Сообщения: 174
Зарегистрирован: 21 май 2009, 20:30
Откуда: Беларусь

Сообщение empyros »

А другие пользовательские ресурсы у Вас работают в 8.10?

В 8.10 подключение пользовательских ресурсов - через репозитарий (если есть лицензия) или через user-ов.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

Все остальное перекомпилировали и работает. Ресурс куда скомпилил VipInterface подключил и через репозитарий и напрямую через конфиг. Но не работет
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

про конфиг забудьте. У вас видимо типичная тробла - не указана компонента.
#component "C_EXPIMP"
в свой файл добавте
и
#Define ComponentVersion
в проект
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

#component "C_EXPIMP" указан.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

1. в отчета о рабочей станции свой рес находите?
2. если да то в cfg
[Vip]
VisibleAllInterface=On
после перестрата ищите в запуске внешнего интрефейса свой фейс - если он будет без указанной компоненты то работать не будет. Запускать не надо - просто посмотрите из какого реса тянется. Опять же - если есть еще один такой фейс, но ниже вашего, то тоже работать не будет - измените приоритет у вашего реса.
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

Код должен полностью соответствовать примеру (у вас явно старые инки и код)... полностью (дефаулт замените на свое название)

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

//******************************************************************************
//                                                      (c) корпорация Галактика
// Галактика 8.10 - обмен бизнес-документами
// интерфейс pre и post-обработки данных для экспорта/импорта
//******************************************************************************

// Перед компиляцией надо раскомментарить код описания VipInterface
// и добавить свой код в реализуемые этим интерфейсом public функции

#component "C_EXPIMP"

#include ExpImpScript.vih

VipInterface ExpImpScript_Default implements ObjExpImpScript licensed(free);

//------------------------------------------------------------------------------
// Обработчик точки расширения epBeforeExport
// Всегда должен возвращать TRUE для вызова других обработчиков.
handler with replace Default_BeforeExport on extensionPoint epBeforeExport (cIEHead : comp; sFileName : string) [100]
action
{
   var ifc : ExpImpScript_Default;
   ifc.BeforeExport (cIEHead, sFileName);
   result := true;
}

//------------------------------------------------------------------------------
// Обработчик точки расширения epAfterExport
// Всегда должен возвращать TRUE для вызова других обработчиков.
handler with replace Default_AfterExport on extensionPoint epAfterExport (cIEHead : comp; sFileName : string) [100]
action
{
   var ifc : ExpImpScript_Default;
   ifc.AfterExport (cIEHead, sFileName);
   result := true;
}

//------------------------------------------------------------------------------
// Обработчик точки расширения epBeforeImport
// Всегда должен возвращать TRUE для вызова других обработчиков.
handler with replace Default_BeforeImport on extensionPoint epBeforeImport (cIEHead : comp; sFileName : string) [100]
action
{
   var ifc : ExpImpScript_Default;
   ifc.BeforeImport (cIEHead, sFileName);
   result := true;
}

//------------------------------------------------------------------------------
// Обработчик точки расширения epAfterImport
// Всегда должен возвращать TRUE для вызова других обработчиков.
handler with replace Default_AfterImport on extensionPoint epAfterImport (cIEHead : comp; sFileName : string) [50]
action
{
   var ifc : ExpImpScript_Default;
   ifc.AfterImport (cIEHead, sFileName);
   result := true;
}



//------------------------------------------------------------------------------
// ObjExpImpScript - вызвается интерфейсами до/после экспорта/импорта документов.
// Сторонние разработчики могут написать свои реализации этого объектного интерфейса,
// чтобы привести данные в файле к нужному формату

Interface ExpImpScript_Default;
Create view;

// эта процедура вызвается до того, как файл для экспорта будет открыт
// sFileName - полный путь к файлу
// cIEHead - ссылка на настройку экспорта
public procedure BeforeExport(cIEHead : comp; sFileName : string);
{
    if (cIEHead = 0)  sFileName := '';
}

// эта процедура вызвается после того, как файл с результатами экспорта закрыт
// sFileName - полный путь к файлу
// cIEHead - ссылка на настройку экспорта
procedure AfterExport(cIEHead : comp; sFileName : string);
{
    if (cIEHead = 0)  sFileName := '';   // Чтобы не было предупреждений при компиляции
}

// эта процедура вызвается до того, как файл с данными для импорта будет открыт
// sFileName - полный путь к файлу
// cIEHead - ссылка на настройку импорта
procedure BeforeImport(cIEHead : comp; sFileName : string);
{
    if (cIEHead = 0)  sFileName := '';   // Чтобы не было предупреждений при компиляции
}

// эта процедура вызвается после того, как файл с данными для импорта будет закрыт
// sFileName - полный путь к файлу
// cIEHead - ссылка на настройку импорта
procedure AfterImport(cIEHead : comp; sFileName : string);
{
    if (cIEHead = 0)  sFileName := '';   // Чтобы не было предупреждений при компиляции
}
end. // интерфейс


/*
*/
Время ведет!
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

Да, все есть как описано, похоже ресурсник подключился, но при экспорте происходит зависание в момент обработки уже сформированного файла.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну это уже другая тробла. logstrtofile вам поможет.
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

Компилю с указанным текстом, получаю ошибку:
Отсутствует описание точки расширения epBeforeExport (стр. 19)
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

а handler то зачем перехватывать - вроде и так все работает.
handler with replace Default_BeforeExport on extensionPoint epBeforeExport (cIEHead : comp; sFileName : string) [100]
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

А я откуда знаю, зачем здесь handler? У меня точно старые коды и инки, а ВОТ ГДЕ ПРАВИЛЬНЫЙ ВЗЯТЬ? Тот что здесь показан - правильный? Если да, то почему ошибка компиляции?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

точки расширения похоже появились в последних патчах - так что если не установлены(или рес у вас C_EXPIMP не подцеплен почему-то), то и перехватвать их не нужно - закоментрте пока.
Проверить подцепку можно добавив к запуску vip "/r"
savov
Местный житель
Сообщения: 589
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж ОАО Верофарм. Воронеж

Сообщение savov »

Закомментировал, собрал. Но Гал-ка виснет (причем где-то в конце процесса, счетчик идет до 100%). Ресурс ExpImp подключен
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ваш фейс точно в работе? понатыкайте в него сообщения или logstrtofile - на каком этапе виснет выясните - наверное где то у вас в коде ошибка типа бесконечного цикла.
Ответить