Страница 1 из 1

Ошибка в сценарии регистрации при сравнении переменных

СообщениеДобавлено: 28 фев 2003, 05:55
Orion
Здравствуйте!
У меня такой вопрос. Почему в сценарии регистрации при сравнении некоторых системных переменных выдается ошибка?
Например, такая строка:

Код: Выделить всё
If INITIALS ="ME" THEN Write "Получилось?"

даёт ошибку:

Код: Выделить всё
Ошибка процедуры:
LOGIN-4.22.00-600: Невозможно интерпретировать строку.


При этом сравнение некоторых других системных переменных проходит безошибочно.

Нда. как все запущено.

СообщениеДобавлено: 28 фев 2003, 19:56
Андрей Фисенко
If %INITIALS ="ME" THEN Write "Получилось?"

http://support.novell.com/cgi-bin/searc ... 020568.htm

СообщениеДобавлено: 01 мар 2003, 21:02
Orion
Извините, нельзя ли отвечать поподробнее?

Вариант
If %INITIALS ="ME" THEN Write "Получилось?"

дает такую же ошибку.
На новелловском саппорте эта статья тоже по сути ничего не объясняет. Есть "USER PROPERTIES, которые не работают", а что по поводу таких переменных, как например "INITIALS", "FACSIMILE_TELEPHONE_NUMBER", "GIVEN_NAME" и некоторых других, сравнение значений с которыми дает ошибку?

СообщениеДобавлено: 02 мар 2003, 06:46
Андрей Тр. aka RH
А можно поподоробнее - какая версия Netware, клиента ( клиентов ? ), какие именно переменные вызывают подобную ошибку ( а какие - нет ) ? Ну и что говорит просто WRITE "Initials = %INITIALS" ?

СообщениеДобавлено: 02 мар 2003, 13:53
Orion
Netware 4.11.
Проверялось под клиентами:
-версии 3.32 на Win98SE
-версии 4.82 на WinXP
Если написать
Код: Выделить всё
WRITE "%INITIALS"

то корректно выдается содержимое поля "Инициалы", т.е. в моем случае, "ME".
Как минимум, три переменных INITIALS, FACSIMILE_TELEPHONE_NUMBER, GIVEN_NAME выдают ошибку, которую я уже приводил выше(вообще таких переменных больше, просто все, которые проверял, не помню). В то же время, например, переменные OS, DAY, MONTH, P_STATION, GREETING_TIME, MEMBER OF в условном операторе сравниваются без ошибок.
:?: У кого-нибудь вообще работает такая строка:
Код: Выделить всё
If INITIALS ="ME" THEN Write "Получилось?"

СообщениеДобавлено: 03 мар 2003, 10:31
Иван Левшин aka Ivan L.
Дык... Переменные вызываются через %. Т.е. надо писать

If "%INITIALS" ="ME" THEN Write "Получилось?"

а не

If INITIALS ="ME" THEN Write "Получилось?"

Я при регистрации использую в т.ч. и данные из каталога, а не только готовые переменные типа %CN. Пример - проверка пуст/не пуст сценарий для контейнера:

If "%.SVF.NIRCTU;LOGIN_SCRIPT"<>"" Then

СообщениеДобавлено: 04 мар 2003, 20:09
Orion
Большое спасибо, всё получилось. Моя ошибка была в том, что я не заключал переменную в кавычки. Кстати, а почему у некоторых переменных это проходит?