Страница 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 - на каком этапе виснет выясните - наверное где то у вас в коде ошибка типа бесконечного цикла.