Россыпь мелких вопросов

  • Автор темы Vagor.ini
  • Дата начала

seoman2

Green Team
17.02.2010
507
1
BIT
72
Да, дело в ECL было.
Еще вопросик, хочу в функции Shell выполнить не 1 а две команды подряд?
cmdow @ /HID
java -jar

Вопрос 2 - какой самый простой способ с лотусскрипта послать http запрос ?
WinHttp.WinHttpRequest.5.1 - не подходит. curl.exe - тоже что то не шлет на нужный мне порт запрос.
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
хочу в функции Shell выполнить не 1 а две команды подряд
правильным способом будет написать текст для запуска, кот. сохранять в виде tmp.cmd и его же и исполнять
Вопрос 2 - какой самый простой способ
ссылки уже были, с готовым кодом, начиная и ниже
 
  • Нравится
Реакции: seoman2

seoman2

Green Team
17.02.2010
507
1
BIT
72
Будет ли видеть агент (настройка target - all new & modified documents) новые и измененные документы в реплике после репликации?
Хочу выделить в реплике все изменения после репликации.
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
515
насколько я видел, такие агенты (правда на Formula работают именно так)
По логике это верно и должно быть так, ведь документ из реплики в текущей реплике - новый, с изменениями так же.
 
  • Нравится
Реакции: seoman2

seoman2

Green Team
17.02.2010
507
1
BIT
72
Агент или еще что-то следит за папкой, в ней появляются файлы которые потом крепятся в док. Как лотусскриптом понять, что файл записан до конца (например файл оч большой)? Следить за размером файла?
FName = Dir$( ....)
fileNm% = Freefile()
Open FName For Output As fileNm
Do While Not Eof (fileNm%)
вообще не попадаю в этот цикл (
Loop
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
Агент или еще что-то следит за папкой, в ней появляются файлы которые потом крепятся в док. Как лотусскриптом понять, что файл записан до конца (например файл оч большой)? Следить за размером файла?
в агенте по расписанию такое делать "опасно"
надо четко понимать - домина не RT система и не будет ей никогда
следить за папкой можно внешней программой и "изредка" дергать домину на обработку "кучки" событий (например кучки появившихся файлов)
цель какая? вот записали файл "до конца", кому надо это знать (оператор, другой процесс)? где происходят процессы (сервер/клиент)?
у мя смутное ощущение - что делается к-то сервис, кот. будет архитектурно работать неправильно
 

rinsk

Lotus Team
12.11.2009
1 155
126
BIT
38
понять, что файл записан до конца (например файл оч большой)? Следить за размером файла?
Можно попробовать вспомнить DOS и режимы открытия файлов - Shared| Lock Read | Lock Read Write | Lock Write
При открытии в файла в режиме Lock * оно должно дать ошибку, если другой процесс туда пишет.
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
С лотуса выгружаю файл в папку1,
сторонний софт обрабатывает файл (ставлю ЭЦП), человек кликнул - файл появился в папке 2.
По таймеру жду появления этого файла в папке 2, как он там есть весь, аттачу обратно в док.

Еще не получается прочитать файл, чтобы проверить последние символы в нем, все файлы в папке будут иметь одинаковое окончание.
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
С лотуса выгружаю файл в папку1,
сторонний софт обрабатывает файл (ставлю ЭЦП), человек кликнул - файл появился в папке 2.
как человек узнает что надо "кликнуть"?
в моем понимании...:
  • файл выгрузили
  • запустили программу
  • программа отработала
  • закрыли программу
  • файл "прицепился"
в этой схеме спокойно отлавливается момент существования программы
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
Человек прочитал выгруженный на винт файл, нажал в интерфейсе пользователя некого ПО (сейчас реализация в бразере) кнопку - файл записался на винт в папку 2.
Мне щас больше важно, как увидеть что файл весь загружен. Примеры, что размер не меняется, или прочтения содержимого конца файла....
Пока через поток читаю размер файла, через секунду снова. Если совпали размеры файлов - всё ок. Хотя у потока есть лимиты на Stream.Bytes...
 
Последнее редактирование:

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
Человек прочитал выгруженный на винт файл, нажал в интерфейсе пользователя некого ПО (сейчас реализация в бразере) кнопку - файл записался на винт в папку 2.
и выключил ПО - вот этот момент и отлавливается
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
мониторить файлы
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
@seoman2 я так понимаю - это нескончаемая история про ЭЦП через... браузерный плагин
в чем проблема сделать нормальную интеграцию с движком ЭЦП?
второй момент - куда может писать этот софт (обязательноли это д.б. папка)?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
поясню мысль - можно организовать собственное хранилище, кот. будет контролировать "закрытие" файлов
НО - это д.б. не SMB протокол
 

seoman2

Green Team
17.02.2010
507
1
BIT
72
Да, хочу усовершенствовать то что уже реализовано. Интегрировать ЭЦП и лотус - пока не получается. Знаний нет.
Браузер может только в папку сохранять.
С проверкой - хочу не сравнивать размеры, а Stream.position указать в конец файла, но не знаю как.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
Браузер может только в папку сохранять.
нет у мя такой уверенности...

и к тому же
Java:
import java.io.IOException;
import java.nio.file.*;

import static java.nio.file.StandardWatchEventKinds.*;

public class FileWatchDemo {
    public static void main(String[] args) {
        try {
            //
            // Creates a instance of WatchService.
            //
            WatchService watcher = FileSystems.getDefault().newWatchService();

            //
            // Registers the logDir below with a watch service.
            //
            Path logDir = Paths.get("/home/mike");
            logDir.register(watcher,
                    ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE);

            //
            // Monitor the logDir at listen for change notification.
            //
            while (true) {
                WatchKey key = watcher.take();
                for (WatchEvent event : key.pollEvents()) {
                    WatchEvent.Kind kind = event.kind();

                    if (kind == ENTRY_CREATE) {
                        System.out.println("Entry was created on log dir.");
                    } else if (kind == ENTRY_MODIFY) {
                        System.out.println("Entry was modified on log dir."+event.context().toString());
                    } else if (kind == ENTRY_DELETE) {
                        System.out.println("Entry was deleted from log dir.");
                    }
                }
                key.reset();
            }
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}
на 8-ой java
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
для доминошной java
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
самый простой, для домины
Java:
// File content change listener
private String fname;
private Object lck = new Object();
...
public void run()
{
    try
    {
        BufferedReader br = new BufferedReader( new FileReader( fname ) );
        String s;
        StringBuilder buf = new StringBuilder();
        while( true )
        {
            s = br.readLine();
            if( s == null )
            {
                synchronized( lck )
                {
                    lck.wait( 500 );
                }
            }
            else
            {
               System.out.println( "s = " + s );
            }

        }
    }
    catch( Exception e )
    {
        e.printStackTrace();
    }
}
пущать изтреды агента, агент "лочить", до окончания треды или таймаута
 

savl

Lotus Team
28.10.2011
2 624
314
BIT
515
Коллеги, у меня вопрос про XML/XSLT и Notes 7
Делаю поиск по многим базам, отображаю резльутаты через HTML файл, который получаю через XSL шаблон, короче: XML + XSL = HTML .
Есть XSL текст, лежит в настроечном документе, там указывается шапка таблицы + шаблон для будущей таблицы.
Есть XML файл, который генерится на основании результатов поиска.
Принудительно в коде везде прописана кодировка для открытия файлов WINDOWS-1251.

Текст XSL из документа пришется в файл, charset = "windows-1251", через Print
XML поток с результатами открывается в encoding = "windows-1251"
XSL файл, парсится в потоке с encoding = "windows-1251".
Работа через класс XMLProcessor с openntf, класс старый, но вполне рабочий.

Результирующий HTML не выходит, код падает на применении шаблона XSL к XML:
<XSLTransformerLog>
<fatalerror source='stylesheet' line='10' column='6'>Invalid character (Unicode: 0x5)</fatalerror>
</XSLTransformerLog>
На этой позиции находится заголовок таблицы, а именно первая русская буква.
В Версии 9 и 8 все ок, поэтому есть предположение, что Lotus 7 не может в юникод-кириллицу...
Есть варианты исправить?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!