CftClub.ru
Клуб специалистов ЦФТ-Банк

копирование файла на сервер
На страницу 1, 2, 3  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 28, 2014 07:49   копирование файла на сервер Ответить с цитатой
Полезность: Нет оценки
Можно ли в проверке скопировать файл на сервер (если выбрать в параметере типа Экспорт-импорт). Я так понимаю пока тело не выполнилось копирование на сервак не производится. Есть ли варианты закинуть до исполнения тела? Спасибо.
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Фев 28, 2014 09:04    Ответить с цитатой
Полезность: Нет оценки
Можно

Поищите примеры вида

Код:
stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES '


Суть в том, что в секции валидации можно поднять форму другой операции (конкретно COPYFILES), которая скопирует фалы.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 28, 2014 09:46    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
Можно

Поищите примеры вида

Код:
stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES '


Суть в том, что в секции валидации можно поднять форму другой операции (конкретно COPYFILES), которая скопирует фалы.


Попробовал - то же самое. В поиске в дистрибутивных эта операция везде из тела вызывается. Хотя может с параметрами намудрил -но copyfiles не ругался - ругается уже попытка открытия файла на серваке (нет такого файла)
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Фев 28, 2014 09:59    Ответить с цитатой
Полезность: Нет оценки
код в студию
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 28, 2014 10:26    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
код в студию


Код:

[DOCUMENT]::[COPYFILES].idx   := 0;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_NAME]      :=P_FILE.[SRC_NAME];;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_PATH]      :=  P_FILE.[SRC_PATH];
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE]      := true;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_DELETE]   := false;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_NAME]      := filename;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_PATH]      := ::[SYSTEM_PARAMS].[GET]('PATH',null);
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE]      := false;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_DELETE]   := false;
   stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %> ');
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Фев 28, 2014 10:48    Ответить с цитатой
Полезность: 1
галка выводить команды в буфер сессии стоит?
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 28, 2014 11:00    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
галка выводить команды в буфер сессии стоит?

стоит.
главное не ругается, ругаться начинает на то, что файл не найден далее . Т.е. у вас прямо из проверки запускается копирование на сервер нового файла (думаю с каким то старым именем может и откроет) и потом открывает?
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПт Фев 28, 2014 11:19    Ответить с цитатой
Полезность: 2
У меня нет для вас готового примера. Я ожидал что вы опубликуете больше кода своей операции.

Если вызвать COPYFILES,а следующей строкой искать файл ничего не выйдет. Ведь подниматься форма операции COPYFILES будет по окончанию серверной валидации.

Думаю, нужно по нажатию кнопки выполнять stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES а затем через клиент-скрипт опять запускать серверную валидацию. Например как это делается в операциях вывода в excel.

Ну проверять мне лень, уж извините.
Gobur
Профи


Вступление в Клуб: 06.11.2012
СообщениеПт Фев 28, 2014 12:58    Ответить с цитатой
Полезность: Нет оценки
prog пишет:
У меня нет для вас готового примера. Я ожидал что вы опубликуете больше кода своей операции.

Если вызвать COPYFILES,а следующей строкой искать файл ничего не выйдет. Ведь подниматься форма операции COPYFILES будет по окончанию серверной валидации.

Думаю, нужно по нажатию кнопки выполнять stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES а затем через клиент-скрипт опять запускать серверную валидацию. Например как это делается в операциях вывода в excel.

Ну проверять мне лень, уж извините.

спасибо, попробую
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Мар 03, 2014 03:12    Ответить с цитатой
Полезность: Нет оценки
Gobur пишет:
prog пишет:
код в студию


Код:

[DOCUMENT]::[COPYFILES].idx   := 0;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_NAME]      :=P_FILE.[SRC_NAME];;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_PATH]      :=  P_FILE.[SRC_PATH];
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE]      := true;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_DELETE]   := false;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_NAME]      := filename;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_PATH]      := ::[SYSTEM_PARAMS].[GET]('PATH',null);
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE]      := false;
   [DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_DELETE]   := false;
   stdio.put_line_buf(' <% CALL DOCUMENT COPYFILES ' || nvl(::[SYSTEM]%id,1) || ' %> ');


При копировании на сервер разве должно быть не наоборот ?
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[SRC_TYPE] := false;
[DOCUMENT]::[COPYFILES].tbl_F$L(0).[DST_TYPE] := true;

+
подозрительная P_FILE , вы случайно не завели её на форме ?
тогда смысл в COPYFILES ?
Матвеев Евгений
Профи


Вступление в Клуб: 31.01.2012
СообщениеВс Июл 05, 2015 21:37    Ответить с цитатой
Полезность: Нет оценки
С локала на сервер в проверке вот так получилось

Проверка
&cp.tbl_F$L(1).[SRC_PATH] := 'C:\XLTX';-- путь к файлу-источнику.
&cp.tbl_F$L(1).[SRC_NAME] := 'xlsx.xltx';-- имя файла-источника.
&cp.tbl_F$L(1).[SRC_MASK] := null;--'';-- маска файлов источника.
&cp.tbl_F$L(1).[SRC_TYPE] := false;-- тип источника (false – клиент, true – сервер).
&cp.tbl_F$L(1).[SRC_DELETE] := false;-- признак удаления источника.
&cp.tbl_F$L(1).[DST_PATH] := '.';-- путь к файлу-приемнику.
&cp.tbl_F$L(1).[DST_NAME] := 'xlsx.xltx';-- имя файла-приемника.
&cp.tbl_F$L(1).[DST_MASK] := null;--'';-- маска файлов приемника.
&cp.tbl_F$L(1).[DST_TYPE] := true;-- тип приемника (false – клиент, true – сервер).
&cp.tbl_F$L(1).[DST_DELETE] := false;-- признак удаления приемника.

Клиент скрипт
Public Sub Button4_OnClick
Form1.ScriptPlayEx("<%PLPCALL [DOCUMENT].[COPYFILES]() %>")
End Sub
Ngswolf
Участник со стажем


Вступление в Клуб: 06.05.2015
СообщениеПт Июл 31, 2015 14:33    Ответить с цитатой
Полезность: Нет оценки
А что делать, если имя файла-источника определяется только в теле операции?

Почему-то обработчик все-равно пытается найти какой-то временный файл с именем "IBS0000162449.tmp"
Alex294
Участник со стажем


Вступление в Клуб: 02.06.2013
СообщениеПт Июл 31, 2015 14:41    Ответить с цитатой
Полезность: Нет оценки
Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК".
Ngswolf
Участник со стажем


Вступление в Клуб: 06.05.2015
СообщениеПт Июл 31, 2015 15:09    Ответить с цитатой
Полезность: Нет оценки
Alex294 пишет:
Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК".


А что, если он пытается скопировать файл до того, как я дойду до присвоения имени? Просто по нажатию ОК у меня зовутся другие операции, и может после того, как там отработает тело начинается копирование файла?
Alex294
Участник со стажем


Вступление в Клуб: 02.06.2013
СообщениеПн Авг 03, 2015 10:10    Ответить с цитатой
Полезность: Нет оценки
Ngswolf пишет:
Alex294 пишет:
Кусок "тела", где определяется имя файла, можно перекинуть в обработчик "ОК".


А что, если он пытается скопировать файл до того, как я дойду до присвоения имени? Просто по нажатию ОК у меня зовутся другие операции, и может после того, как там отработает тело начинается копирование файла?


admin.chm:
"Копирование файла на сервер происходит до отработки тела операции, а на клиентскую машину файл копируется только после отработки тела операции.
"

Как видно речь идет о теле конкретной операции и другие операции тут не причем.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru