Импорт Из Excel По Времени

  • Автор темы Автор темы toli4sky
  • Дата начала Дата начала
T

toli4sky

Доброго времени суток!
Пришел я к выводу, что нужно упростить работу и двумя вариантами это все автоматизировать. Варианты похожи, но пока не совсем работают, поэтому я опять здесь)))
Суть вопроса в следующем, есть либо список компов, либо конкретный ресурс сетевой. И там и там файлы Excel с конкретным шаблоном. Соответственно требуется как то агентом, по времени это все выдергивать и импортировать.
Агент по импорту я сделал и в том, и в том варианте, он прекрасно работает, но только из меню, а как я ставлю его в режим запуск по времени он дает сбой.
Права безопасности агента стоят полные (в разделе безопасность свойства агента), я в базе менеджер, агент подписан мной. Ошибка в следующем месте.
Когда выполнение кода доходит до строки "Call xlWorkBooks.Open(xlPath)" и смотря через консоль сервера, выдает ошибку, что неправильно указан путь ...там то... или файл используется другой программой...
Путь пытался указывать просто на конкретный адрес, сначала своего компа, потом и на сам сервер такого вида:
\\имя сервера\с$\папка\*.* и так пробовал с:\папка, ошибка одна и та же, файл лежа на сервере занят быть не может, некому просто его трогать.
Вроде все объяснил, если кому это знакомо, очень прошу помощи
 
Уже даже не смешно... обсуждалось 100500 раз...
Сервер работает под SYSTEM, и без "танцев с бубном" не имеет доступа к сетевым ресурсам...
... и это проблема не Domino (!!!) - так работает винда!...

как обойти ищите на форуме, было описано множество раз!... :)

... и еще, раз не работают и локальные, то смотрите права агента в агенте - свойства агента, 2-ая закладка, security level
 
Ну не надо ругаться, я в тут новичек, про 100500милион тысяч раз я понимаю, что может где то было обсуждено лет 20 назад, и мельком в какой то теме, может даже не касающейся excel, а просто по обращению к файлам, но что то все мои поиски приводят к нулю, может те самые руки из не оттудава растут при написании запроса в поиске.
Если сталкивались дайте хоть намек, где искать, а то пришел спросить, а мне в ответ типа гугл и хелп в помощь, давай дуй отсюдава
 
Ну не надо ругаться, я в тут новичек, про 100500милион тысяч раз я понимаю, что может где то было обсуждено лет 20 назад, и мельком в какой то теме, может даже не касающейся excel, а просто по обращению к файлам, но что то все мои поиски приводят к нулю, может те самые руки из не оттудава растут при написании запроса в поиске.
Если сталкивались дайте хоть намек, где искать, а то пришел спросить, а мне в ответ типа гугл и хелп в помощь, давай дуй отсюдава
Не нужно обижаться - коллега верно заметил, что этот вопрос следует адресовать в другой форум. И так же коллега дал полностью исчерпывающую информацию по разрешению Вашей проблемы. Читайте внимательно.
 
Toli4sky
Запускай сервер домино под учёткой Админа с максимальными правами и он будет иметь доступ к папке
Это в свойствах службы - указать от чьего имени она будет работать
 
я вообще в таких случаях запускал агента под именем сервера, а не юзверя (даже при доступе манагера)
 
Это в свойствах службы - указать от чьего имени она будет работать
ну вроде нашел такую штуку, указать там и перезапустить ее, ну даже если так, вроде интересная штука, а как путь до папки с файлами указать?
так:
\\сервер\папка\*.*
или так:
c:\папка\*.*
?
 
Toli4sky
\\сервер\папка\*.* или \\IP-сервера\папка\*.*
Сервер не обязательно может быть тот же, где лотусня работает.
Но мы выгружаем.

Добавлено: А еще лучше сделать документ-настройку в базе, где будет лежать путь до папки.
И тянуть путь оттуда, тогда можно будет легче его сменить.
 
Разведал все штуки, сервер запущен от имени системы, т.е. права все есть, ескель тоже там стоит, если пишу своим вариантом
\\сервер\c$\папка\*.* то пишет, что указан не верный путь или файл, или файл занят другой программой, а если просто пишу \\сервер\папка\*.* то пишет illegal function call
 
А процессов excel на серванте не висит в адовом количестве теперь?
 
Смотрел, в на серваке процессов нет екселя, максимум смотрю через управление, там только строка, что к моей папке висит сеанс и открыт один файл от системы, я его отбрубаю, запускаю заново, и опять ничего, опять один сеанс появляется...
 
хм... Через IP сервера вместо имени тоже ошибка?
Может стоит на сервере, где работает агент сделать подключение сетевого диска через путь к той папке.
И тогда обращаться через букву этого диска.
 
savl
По ИП та же ерунда, ошибка, а вот про подключение сетевого диска я как то где то слышал, что можно на него будет ссылаться, только вот не пойму в чем будет разница от обычного, для сервера, своего диска?
если на локальный диск сервера я пишу путь \\Сервер\C$\папка\*.*
а на сетевой как лезть?
 
Toli4sky
Так... Что-то я запутался откуда мы читаем...

1. Если агент на серванте читает/пишет на свой же локальный диск серванта, то можно через букву {c:\ или d:\ и тд}
2. Если агента на серванте читает/пишет сетевой диск другого серванта: расшариваем тот диск в сеть, обращение через сетевой путь или IP или подключаем сетевой диск и через букву.

Судя по всему первый случай, да?
 
savl
Ну по идее первый вариант, т.к. наверно проще :rolleyes: (кстати в данном случае только читает, если только он не будет создавать временный файл, как при обычном открытии екселя)
Но этот вариант почему то не срабатывает
 
Под идее все равно создает... хотя может вызов поможет: .Open(FileName, , true) типа только на чтение
Хм... посмотрел один из своих импортеров:
Код:
Call ExcelApp.Workbooks.Add(fileName(0))
Set ExcelBook = ExcelApp.Workbooks(1)
Вполне работает, попробуйте.
И еще, создайте в своей папке файлик 1.txt и выполните в том же агенте строку: fileExists = (Dir$ (strPath) <> "" )
strPath - полный путь к 1.txt
будет ошибка -> косяк с доступом.

И еще, в свойствах агента. Выставите сервер где ему работать.
 
Косяка с доступом нет, я сделал простущий агент, который просто возьмет из этой папки файл и создаст там же копию с другим именем...и этотзасранец создал....
FileCopy "C:\Folder\asd.xls", "C:\folder\asdqw.xls"

может в коде что то у меня косяк (хотя по запуску из меню все Ок работает)
извините, если не так код пишу в сообщении

'путь беру из дока с настройкой
v = Evaluate({@DbLookup(NoCache; "":""; "ViewOpt"; "PathDir";"Values")})
xlPathOrig$=v(0)
Print "agent import 3" & xlPathOrig

xlPathAll$=Dir(xlPathOrig$,0)
Print "agent import 3.1" & xlPathOrig

If IsEmpty(xlPathOrig) Then Exit Sub
Do While xlPathAll$ <> ""

'напишем полный путь до текущего файла
xlPath=StrLeft(xlPathOrig,"*") & xlPathAll
Print "agent import 4"

'Создаем объект MS Excel и скрываем его
Set xlApp= CreateObject("Excel.Application")
xlApp.Visible = False
Print "agent import 5"

'Определяем книгу и лист
Set xlWorkBooks = xlApp.Workbooks
Print xlpath

Call xlWorkBooks.Open(xlPath)
Print "agent import 5.2"

и в место этого последнего принта идет ошибка
 
попробуйте так: вместо Set xlWorkBooks = xlApp.Workbooks
Код:
Call ExcelApp.Workbooks.Add(fileName(0))
Set ExcelBook = ExcelApp.Workbooks(1)

а значения принтов полагаю верные?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Популярный контент