powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопросы новичков
13 сообщений из 213, страница 9 из 9
Вопросы новичков
    #38579312
Bezuma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

У нас ESXi
...
Рейтинг: 0 / 0
Вопросы новичков
    #38579541
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorНа том проекте, изначально в такой конфигурации работает, и нормально
Вопрос - с чего бы ему не работать нормально?
...
Рейтинг: 0 / 0
Вопросы новичков
    #38580937
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilsonНо вот мне так и не помогла строчка <property name="pivotSelect">single(multi)</property>
У меня же scorecard, а не pivot. Scorecard выбрал из-за поддержки valueColumn, в pivot - только значение ячейки.
Да и ладно, я уже решил идти другим путем.Со scorecard тоже нет проблем: добавьте в метод %OnGetSQL перед Quit $$$OK небольшую js-вставку:
  if (..%filterValues.OrderBy '= ""){
    set pSQL = pSQL_"ORDER BY "_..%filterValues.OrderBy
  }
 
  &js<
    var row=-1;
    var value='';
    var sc=zen('$widget_1/scoreCard');
    sc.selectRow(row);
    zenInvokeCallbackMethod(sc.onclickrow,this,'onclickrow','row',row,'value',value);
  >
 
  Quit $$$OK
 За наводку спасибо пользователю Александр Коблов.
ilsonМожет быть напишу в WRC.Уже написал.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38581260
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit , интересный костыль, главное ИД угадать=)
...
Рейтинг: 0 / 0
Вопросы новичков
    #38581395
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilson servit , интересный костыль, главное ИД угадать=)Если знаете имя виджета (и его тип), ничего угадывать не нужно: &js<
 function findScoreCardWidgetByName(name)
 {
  var result = null;
  var desktop = zen('desktop');
  if (desktop) {
    for (var n = 0; n &lt; desktop.children.length; n++) {
      var widget = desktop.children[n];
      if (widget && name==widget.name) {
        result = zen(widget.id+'/scoreCard');
        break;
      }
    }
  }
  return result;
 }
 
  var row=-1;
  var value='';
  var sc=findScoreCardWidgetByName('Имя виджета'); 
  sc.selectRow(row);
  zenInvokeCallbackMethod(sc.onclickrow,this,'onclickrow','row',row,'value',value);
 >
 
...
Рейтинг: 0 / 0
Вопросы новичков
    #38588673
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот поди глуповатая задачка, подскажите пожалуйста)
Есть веб приложение /csp/proj, доступ не аутентифицированный . Это приложение области.
Есть приложения для REST /csp/proj/rest, доступ только по паролю.

Когда я запуская index.csp проекта, то адрес будет такой .../csp/proj/files/index.csp
Есть ещё панели DeepSee, доступ к ним происходит через приложение области.

Как сделать такое:
Панели DeepSee сможет видеть только тот, кто авторизуется в /csp/proj/rest

Как это должно работать:
Заходит пользователь на .../index.csp и видит iframe с написью внутри -
"Unable to create page object! ОШИБКА #5540: SQLCODE: -99 Сообщение: User UnknownUser is not privileged for the operation"

Нажимает на кнопку "ОК" - происходит GET запрос в REST приложение - всплывает окно авторизации, пользователь входит.
iframe перезагружается и панель отображается корректно.

Понимаю, звучит бредово, но как-то так это должно выглядеть - чтобы одно приложение сказало другому - "Эй, он уже авторизовался у меня, дай ему привилегии!"
Или придется админу два раза входить - 1)в рест для работы с данными, 2)в приложение области, для просмотра deepsee (делать свою страницу авторизации).
...
Рейтинг: 0 / 0
Вопросы новичков
    #38588795
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопросы новичков
    #38588944
Mortes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос возник, никак не могу понять, где корни проблемы.
Проблема следующая: свойство класса Cache (тип %GlobalCharacterStream) не сохраняет текст , превышающий 32KB.

Вот примитив класса:
/// 
Class TestClass.TestChar Extends %Persistent
{
Property Text As %GlobalCharacterStream(LOCATION = "^TestChar") [ Required ];
Index TextIndex On Text [ Unique ];
}

EnableLongStrings в настройках установлен в True.

Проект пишется на .NET 2010 + Cache 5.1
Взаимодействие .NET-приложения и СУБД осуществляется через библиотеку Interop.CacheActiveX.dll.

При попытке сохранения данных в БД создается запись, но вместо текста там "0".
...
Рейтинг: 0 / 0
Вопросы новичков
    #38588955
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mortes,

Отлавливайте ошибки, покажите код на .Net как вы пишите в это поле
попробуйте писать порциями а не сразу большим куском.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38588964
Mortes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот допустим метод, написанный на VB.NET. Все тупо, без изысков.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    Public Function SaveText(ByVal fileID As String) As String
        Dim factory As New Factory 'Класс для подключения к Cache
        'MConnect - строка с данными для подключения
        Dim YesConnect As Boolean = factory.Connect(MConnect) 'Сам процесс подключения

        Dim FileObject As Object 'объект, предназначенный для записи
        If Val(fileID) = 0 Then 'Это новый объект
            FileObject = factory.[New]("TestClass.TestChar") 
        Else 'Редактирование 
            FileObject = factory.OpenId("TestClass.TestChar", fileID)
        End If
        '
        FileObject.Text.Write(MemoEdit1.Text)
        Dim SaveResult As Object = FileObject.sys_Save
        factory.Disconnect()
        Return 1
    End Function


При таком подходе у меня есть трудности с отловом ошибок. У интерфейса factory (из Interop.CacheActiveX.dll.) есть такие функции:
Код: vbnet
1.
2.
3.
4.
        factory.GetLastErrorCount()
        GetLastErrorNumber()
        GetLastErrorParam()
        GetLastErrorParamCount()


Но они возвращают нули и пустоту. Если есть другой способ отловить ошибки, хотелось бы знать, я в основном с MUMPS работаю, напрямую с БД, там с отловом ошибок проще. Про добавление текста порциями, рекурсивно, я уже думал, но все же хочется разобраться с проблемой. Сейчас смотрел настройки СУБД на нашем сервере - есть свойство MaxMemPerProcess, равное 32768, буду дома, попробую поиграть с ним на тестовом серваке.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38589106
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mortes ,

You cannot index on a stream value
В 2014.1 Ваш код даже не компилируется. Попробуйте убрать индекс на поток.

Для индексации потоков нужно использовать класс %Stream.GlobalCharacterSearchable , но он появился в версии 2010.1: Indexes Permitted on %Stream.GlobalCharacterSearchable .
...
Рейтинг: 0 / 0
Вопросы новичков
    #38590487
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Коблов, попробовал, указал одинаковый ИД у двух приложений - не сработало.
Заметил такую штуку, если указать в настройках /csp/proj вход с паролем и без, при запуске приложения появляется стандартное окно авторизации.
Вхожу - и после этого вход в /csp/proj/rest происходит без запроса логина/пароля, т.е. тут сработала группировка по ИД, если я группировку уберу, то будет окно авторизации появляться.
Так вот, надо сделать так:
Настройки для /csp/proj - [х]Не аутентифицированный, [ ]Пароль
Настройки для /csp/proj/rest - [ ]Не аутентифицированный, [х]Пароль
Я спокойно захожу в приложение области(/csp/proj, user=UnknownUser), нажимаю на кнопку вход и меня перекидывает на свою форму авторизации, я там ввожу данные (Admin|12345) и сессия для приложения области умирает, а вместо неё новая, где я админ.

Как я пробовал: просто запускаю свою форму, а перед этим вывожу дамп сессии, куча всего и вот отрывок '...SecurityContext = $lb("UnknownUser",....'
Ввожу логин/пароль - страница обновляется, но сессия всё та же - для UnknownUser.

Заметил - если настройки для /csp/proj - [х]Не аутентифицированный, [х]Пароль, то при загрузке приложения появится своя форма, а там в дампе '...SecurityContext = ""....' и вход происходит корректно.
...
Рейтинг: 0 / 0
Вопросы новичков
    #38590530
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilsonАлександр Коблов, попробовал, указал одинаковый ИД у двух приложений - не сработало.
Заметил такую штуку, если указать в настройках /csp/proj вход с паролем и без, при запуске приложения появляется стандартное окно авторизации.
Вхожу - и после этого вход в /csp/proj/rest происходит без запроса логина/пароля, т.е. тут сработала группировка по ИД, если я группировку уберу, то будет окно авторизации появляться.

Так и должно работать.

@Модераторы: вам не кажется, что эту тему лучше закрыть (а в идеале — раскидать по разным темам), а то тут свалка вопросов и ответов и становится непонятно что к чему относится.
...
Рейтинг: 0 / 0
13 сообщений из 213, страница 9 из 9
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Вопросы новичков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]