Текущее время: Ср, сен 17 2025, 19:31

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 10:21 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
так а зачем так сложно - надо сгенерировать в фм дамп - и запустить из Perl-a - узнать выполняется ли он оттуда вообще - и еще надо чтобы параметры при вызове не имели пропусков - то есть подряд шли как в объявлении фм


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 13:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Можно и дамп, или даже поставить бесконечный и провалиться в отладку в sm50. Но, ф.м. наверняка не вызывается и посмотреть, что выдаёт startrfc на stderr, а также в файл трассировки, по-моему, сложностей не может вызывать. Там всё чёрным по английски написано.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 20:49 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
sibrin написал:
al1000 написал(а):
startrfc -d TST -u <defined> -p <defined> -c 200 -l D -h knsSAP -g knsSAP -s 20 -F ZBC_WRITE_TOTAB -E FallNr=1 -E Einrichtung=2 -E PatientenID=3 -E Nachname=4 -E Vorname=5 -E Geburtsdatum=6 -E Geschlecht=7 -E FAchlOE=8 -E PflegOE=9 -E Doktyp=A -E DokDAtum=B -E DokZeit=C -E DokOE=D -E VMA=E -E DokStatus=F -E Zusaetze=G

Во-первых, нужно увидеть какую ошибку возвращает startrfc.exe.
Для этого её не обязательно запускать из под perl. Запустите сами на своём компе. Включите трассировку в файле saprfc.ini, который лежит рядом с startrfc.exe.
Во-вторых, если удастся найти общий язык с базисниками, то в первую очередь нужно посоветоваться с ними и уточнить параметры вызова startrfc.exe.
1) Если указано -d TST, то параметры подключения (хост, номер системы, шлюз) читаются из saprfc.ini.
2) Убедитесь, активирован ли в системе немецкий язык -l D.
3) Нужно ли указывать шлюз и не нужно ли при этом указывать сервис -g knsSAP -x ... ?
4) Не нужно ли использовать SNC?



startrfc.exe не возвращает никакой ошибки, функция вызывается и выполняется успешно. В таблицу записывается строка, но она состоит из пустых полей.

Немецкий язык в системе активирован, т.к. действие происходит в Германии.

За все советы спасибо, проверим все.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 20:52 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
dump написал(а):
так а зачем так сложно - надо сгенерировать в фм дамп - и запустить из Perl-a - узнать выполняется ли он оттуда вообще - и еще надо чтобы параметры при вызове не имели пропусков - то есть подряд шли как в объявлении фм


ФМ выполняется, это однозначно. Он просто получает вместо значений параметров пустые поля. И они записываются в таблицу. Обработку таких ошибок я добавлю в ближайшее время (с тем, чтобы ФМ прерывался с сообщением об ошибке, а не писал в таблицу).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 21:06 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
Сегодня получил от перл-программиста пример вызова функции, который функционирует (правда, в другой системе):

startrfc -d TST -u <defined> -p <defined> -c 200 -l D -h knsSAP -g knsSAP -s 20 -F ZBF_ARCH_OBJECT_CHECK -E I_OBJTYPE=XXXXX -E I_OBJECT_ID=1234567890

На первый взгляд, идентичен нашему неудачному:

startrfc -d TST -u <defined> -p <defined> -c 200 -l D -h knsSAP -g knsSAP -s 20 -F ZBC_WRITE_TO_TAB -E FallNr =1 -E Einrichtung=2 -E PatientenID=3 -E Nachname=4 -E Vorname=5 -E Geburtsdatum=6 -E Geschlecht=7 -E FachlOE=8 -E PflegOE=9 -E Doktyp=A -E DokDatum=B -E DokZeit=C -E DokOE=D -E VMA=E -E DokStatus=F -E Zusaetze=G

Сам ФМ ZBF_ARCH_OBJECT_CHECK я тоже видел, он ничем принципиально от моего ZBC_WRITE_TO_TAB не отличается.

Настораживает один факт: в успешном вызове имена переменных (I_OBJTYPE , I_OBJECT_ID ) написаны большими буквами. В нашем неудачном - имеются и маленькие буквы в именах переменных. Может, SAP чувствительна к регистру в этом случае?


Что думаете?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 11 2007, 22:06 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
al1000 написал(а):
ФМ выполняется, это однозначно.

Сорри, невнимательно прочитал предысторию.

Да, действительно, строчные (маленькие) буквы приводят к тому, что параметр не находится и просто игнорируется. Честно говоря, мне в голову никогда не приходило использовать где-нибудь в SAP строчные буквы. Это же SAP.

Пишут также, что при обращении к системам, где пароль регистронезависимый (<4.7), логин и пароль тоже обязательно должны быть в верхнем регистре. В базисе 700 логин в startrfc может передаваться строчными буквами, а пароль — регистрозависимый.

Спрошу из любопытства: если системы разные, то почему оба вызова в примерах используют одно и то же соединение TST, а также хост и номер системы?

А вообще, лучше сделать так, как я советовал: запускать startrfc.exe со своего персонального и выставлять в saprfc.ini трассировку.
Проблемы всякие бывают. Иначе приходится дёргать других людей и пробовать различные варианты. Например, если вызывать юникодную систему из неюникодного RFC-клиента, то эффект примерно тот же: параметры не передаются. В trc-файле всё это видно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, окт 12 2007, 16:02 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
sibrin написал:
Да, действительно, строчные (маленькие) буквы приводят к тому, что параметр не находится и просто игнорируется. Честно говоря, мне в голову никогда не приходило использовать где-нибудь в SAP строчные буквы. Это же SAP.

Похоже, это решение проблемы! Это замечательно, спасибо! :)
Я бы тоже никогда не использовал строчные буквы в написании параметров (поэтому мне и бросилась в глаза разница). Но человек постоянно утверждает, что он к SAP никакого отношения и понятия о нем не имеет. И вот результат.

sibrin написал:
Спрошу из любопытства: если системы разные, то почему оба вызова в примерах используют одно и то же соединение TST, а также хост и номер системы?


Понятия не имею, этот вызов я получил по мейлу, может, он его отредактировал, чтобы мне нагляднее было и ему не надо было объяснять, где хост, номер системы и пр.

sibrin написал:
А вообще, лучше сделать так, как я советовал: запускать startrfc.exe со своего персонального и выставлять в saprfc.ini трассировку.
Проблемы всякие бывают. Иначе приходится дёргать других людей и пробовать различные варианты. Например, если вызывать юникодную систему из неюникодного RFC-клиента, то эффект примерно тот же: параметры не передаются. В trc-файле всё это видно.

Я надеюсь, что проблема скоро решится, и я смогу снова заниматься только SAP. Ничего страшного, если я кого-то лишний раз дерну, для этого там сидят специально обученные люди. Если и они не знают, задам вопрос на SAPфоруме. ;)

Спасибо всем большое за помощь и поддержку! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB