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

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

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

Добавлено: 16 окт 2009, 17:04
empyros
А другие пользовательские ресурсы у Вас работают в 8.10?

В 8.10 подключение пользовательских ресурсов - через репозитарий (если есть лицензия) или через user-ов.

Добавлено: 16 окт 2009, 17:10
savov
Все остальное перекомпилировали и работает. Ресурс куда скомпилил VipInterface подключил и через репозитарий и напрямую через конфиг. Но не работет

Добавлено: 16 окт 2009, 20:03
edward_K
про конфиг забудьте. У вас видимо типичная тробла - не указана компонента.
#component "C_EXPIMP"
в свой файл добавте
и
#Define ComponentVersion
в проект

Добавлено: 19 окт 2009, 10:00
savov
#component "C_EXPIMP" указан.

Добавлено: 19 окт 2009, 10:29
edward_K
1. в отчета о рабочей станции свой рес находите?
2. если да то в cfg
[Vip]
VisibleAllInterface=On
после перестрата ищите в запуске внешнего интрефейса свой фейс - если он будет без указанной компоненты то работать не будет. Запускать не надо - просто посмотрите из какого реса тянется. Опять же - если есть еще один такой фейс, но ниже вашего, то тоже работать не будет - измените приоритет у вашего реса.

Добавлено: 19 окт 2009, 12:03
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. // интерфейс


/*
*/

Добавлено: 19 окт 2009, 12:18
savov
Да, все есть как описано, похоже ресурсник подключился, но при экспорте происходит зависание в момент обработки уже сформированного файла.

Добавлено: 19 окт 2009, 12:48
edward_K
ну это уже другая тробла. logstrtofile вам поможет.

Добавлено: 19 окт 2009, 12:49
savov
Компилю с указанным текстом, получаю ошибку:
Отсутствует описание точки расширения epBeforeExport (стр. 19)

Добавлено: 19 окт 2009, 12:53
edward_K
а handler то зачем перехватывать - вроде и так все работает.
handler with replace Default_BeforeExport on extensionPoint epBeforeExport (cIEHead : comp; sFileName : string) [100]

Добавлено: 19 окт 2009, 12:57
savov
А я откуда знаю, зачем здесь handler? У меня точно старые коды и инки, а ВОТ ГДЕ ПРАВИЛЬНЫЙ ВЗЯТЬ? Тот что здесь показан - правильный? Если да, то почему ошибка компиляции?

Добавлено: 19 окт 2009, 13:15
edward_K
точки расширения похоже появились в последних патчах - так что если не установлены(или рес у вас C_EXPIMP не подцеплен почему-то), то и перехватвать их не нужно - закоментрте пока.
Проверить подцепку можно добавив к запуску vip "/r"

Добавлено: 19 окт 2009, 13:37
savov
Закомментировал, собрал. Но Гал-ка виснет (причем где-то в конце процесса, счетчик идет до 100%). Ресурс ExpImp подключен

Добавлено: 19 окт 2009, 14:14
edward_K
ваш фейс точно в работе? понатыкайте в него сообщения или logstrtofile - на каком этапе виснет выясните - наверное где то у вас в коде ошибка типа бесконечного цикла.