Текущее время: Вс, авг 03 2025, 00:32

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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