копирование файла на сервер
На страницу Пред. 1, 2, 3
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Вт Апр 03, 2018 14:56   |
|
Полезность: Нет оценки
|
сдается мне, ты путаешь пути
на клиенте у тебя путь в файловой системе 'C\папка\файл'
на сервере - типа '.\' он еще лежит в системной переменной PATH есть команда его оттуда вычитать |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Апр 03, 2018 15:39   |
|
Полезность: Нет оценки
|
зачем PLPCALL?
что в P_FILE_ALT.[SRC_PATH]? Д.б. папка на сервере
какой-то квест |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Ср Апр 04, 2018 10:13   |
|
Полезность: Нет оценки
|
Здравствуйте.
Не ругайтесь - но пока не пойму не успокоюсь.
На экранной форме есть выбор файла на локальном диске.
Выбираю.
В теле есть код
(Наверное с путями проблема - потому что не ругается на него)
Может подскажете как правильно написать?
fileW := stdio.open('.', P_FILE_ALT.[DST_NAME], 'w');
stdio.put_line(fileW,'</ВХОДЯЩАЯ_ОПИСЬ>', true, null, stdio.DOSTEXT);
stdio.close(fileW);
::[DOCUMENT].[COPYFILES].tbl_F$L.delete;
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[SRC_NAME] := P_FILE_ALT.[SRC_NAME];
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[SRC_PATH] := '.';
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[SRC_TYPE] := true; -- С сервера
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[SRC_DELETE] := true; -- Потом удалить
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[DST_NAME] := P_FILE_ALT.[DST_NAME];
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[DST_PATH] := P_FILE_ALT.[DST_PATH];
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[DST_TYPE] := false; -- На клиента
::[DOCUMENT].[COPYFILES].tbl_F$L(0).[DST_DELETE] := false;
stdio.put_line_buf('<%PLPCALL [DOCUMENT].[COPYFILES]() %>'); |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Ср Апр 04, 2018 10:20   |
|
Полезность: 4
|
mmm_kazan пишет: | Здравствуйте.
Не ругайтесь - но пока не пойму не успокоюсь. | Зачем разбираться в этой мешанине, когда уже кто-то в ней разобрался и сделал гораздо более простой код?
например, REPS_DATA.LIB_FILE.SendFile ?
Там же есть и примеры.
Код: |
-- Передаём файл на локальную станцию
stdio.put_line_buf(
::[REPS_DATA].[LIB_FILE].SendFile( './qwerty123.log'
, 'c:\ibso\dok\qwerty123_log.txt'
, true )
);
|
Последний раз редактировалось: Эмиралька (Чт Апр 05, 2018 07:34), всего редактировалось 1 раз |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Апр 04, 2018 10:24   |
|
Полезность: 1
|
Volod пишет: | зачем PLPCALL?
что в P_FILE_ALT.[SRC_PATH]? Д.б. папка на сервере
какой-то квест |
да, там CALL должен быть
вот пример хороший нашел
ТБП FNS_ACC_INFO
Электронный обмен с ФНС. Файлы сведений о счетах
Выгрузить файл в ОС
SAVE_TO_OS
procedure CopyFiles |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Ср Апр 04, 2018 11:25   |
|
Полезность: Нет оценки
|
Эмиралька пишет: | mmm_kazan пишет: | Здравствуйте.
Не ругайтесь - но пока не пойму не успокоюсь. | Зачем разбираться в этой помойке, когда уже кто-то в ней разобрался и сделал гораздо более простой код?
например, REPS_DATA.LIB_FILE.SendFile ?
Там же есть и примеры.
Код: |
-- Передаём файл на локальную станцию
stdio.put_line_buf(
::[REPS_DATA].[LIB_FILE].SendFile( './qwerty123.log'
, 'c:\ibso\dok\qwerty123_log.txt'
, true )
);
|
|
Действительно вроде работает. Пойду разбираться.
Всем БОЛЬШОЕ спасибо. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Ср Апр 04, 2018 14:25   |
|
Полезность: Нет оценки
|
Эмиралька пишет: | mmm_kazan пишет: | Здравствуйте.
Не ругайтесь - но пока не пойму не успокоюсь. | Зачем разбираться в этой помойке, когда уже кто-то в ней разобрался и сделал гораздо более простой код?
например, REPS_DATA.LIB_FILE.SendFile ?
Там же есть и примеры.
Код: |
-- Передаём файл на локальную станцию
stdio.put_line_buf(
::[REPS_DATA].[LIB_FILE].SendFile( './qwerty123.log'
, 'c:\ibso\dok\qwerty123_log.txt'
, true )
);
|
|
А sendfile в обоих направлениях умеет слать ? я как раз с помойкой разбирался, когда надо было в одной операшке импортировать файл с клиента, разобрать его на сервере и вернуть обратно на клиента протокол разбора |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Чт Апр 05, 2018 07:19   |
|
Полезность: 3
|
vtar пишет: | Эмиралька пишет: | mmm_kazan пишет: | Здравствуйте.
Не ругайтесь - но пока не пойму не успокоюсь. | Зачем разбираться в этой помойке, когда уже кто-то в ней разобрался и сделал гораздо более простой код?
например, REPS_DATA.LIB_FILE.SendFile ?
Там же есть и примеры.
Код: |
-- Передаём файл на локальную станцию
stdio.put_line_buf(
::[REPS_DATA].[LIB_FILE].SendFile( './qwerty123.log'
, 'c:\ibso\dok\qwerty123_log.txt'
, true )
);
|
|
А sendfile в обоих направлениях умеет слать ? |
Нет, но там ещё ::[REPS_DATA].[LIB_FILE].ReceiveFile есть для приёма файла с клиента на сервер.
Вот, например, из секции валидации
Код: | -- vDest - это переменная для использования в runtime.scmd, содержит VB-Script!
...
V_DEST := ''
|| 'Form1.ScriptPlayEx("' -- Запускаем получение файла архива с локальной станции
|| ::[REPS_DATA].[LIB_FILE].ReceiveFile(
'c:\ibso\dok\sample.txt'
, './sample123456.txt' )
|| '")'|| LF$
|| 'Call Form1.ScriptServerValidate(nothing, "UPLOAD_OK")' -- И после этого перезапускаем валидатор
;
elsif p_info = 'UPLOAD_OK' then
debug_pipe('Файлы уже загружены на сервер.', 0);
...
|
так, наверное, тоже сработает
Код: | stdio.put_line_buf( -- Запускаем получение файла с локальной станции
::[REPS_DATA].[LIB_FILE].ReceiveFile(
'c:\ibso\dok\sample.txt'
, './sample123456.txt' )
);
|
|
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 06, 2018 09:41   |
|
Полезность: Нет оценки
|
Здравствуйте.
Странный какой-то эффект.
Когда я использую на экранной форме Экспорт-Иморт файлов - все записывается на сервер и копируется потом на локалку.
Все хорошо.
Если пытаюсь сделать что-то вроде этого (без выбора файла)
g_str := '0015-0000-LPRI-Р-'||to_char(sysdate,'yyyymmdd')||'-001'||'-0000000000'||'.XML';
fileW := stdio.open('.', g_str, 'w');
stdio.put_line(fileW,'<?xml version="1.0" encoding="utf-8"?>', true, null, stdio.WINTEXT);
stdio.put_line_buf(::[REPS_DATA].[LIB_FILE].SendFile('./'||g_str,'p:\марат\'||g_str,true));
stdio.put_line_buf('Загрузка завершена');
Не хочет |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 06, 2018 09:55   |
|
Полезность: Нет оценки
|
close не забыли? |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 06, 2018 09:57   |
|
Полезность: Нет оценки
|
Есть в конце
stdio.put_line(fileW,'</registry>', true, null, stdio.WINTEXT);
stdio.close(fileW);
stdio.put_line_buf(::[REPS_DATA].[LIB_FILE].SendFile('./'||g_str,'p:\марат\'||g_str,true));
stdio.put_line_buf('Загрузка завершена'); |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 06, 2018 10:10   |
|
Полезность: Нет оценки
|
м.б. проблемы с регистром символов имени файла.
Попробуйте просто цифровое имя без букв. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пт Апр 06, 2018 10:20   |
|
Полезность: 1
|
mmm_kazan пишет: | Здравствуйте.
Странный какой-то эффект.
Если пытаюсь сделать что-то вроде этого (без выбора файла)
g_str := '0015-0000-LPRI-Р-'||to_char(sysdate,'yyyymmdd')||'-001'||'-0000000000'||'.XML';
fileW := stdio.open('.', g_str, 'w');
stdio.put_line(fileW,'<?xml version="1.0" encoding="utf-8"?>', true, null, stdio.WINTEXT);
stdio.put_line_buf(::[REPS_DATA].[LIB_FILE].SendFile('./'||g_str,'p:\марат\'||g_str,true));
stdio.put_line_buf('Загрузка завершена');
Не хочет |
На операции в доп.свойствах должен стоять флаг "Выводит команды в буфер сессии" |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 06, 2018 11:02   |
|
Полезность: Нет оценки
|
Спасибо - тормознул. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|