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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вызов функции RFC
СообщениеДобавлено: Вт, авг 07 2007, 18:10 
Начинающий
Начинающий

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
Уважаемые знатоки! :)

Заранее прошу прощения, если вопрос глупый. Возможно, я чего-то не догоняю.
Моя задача: 1. создать функцию RFC,
2. и с ее помощью закачать данные в собственную таблицу.
С пунктом 2 проблем нет. В пункте 1 не понятно, как эта функция получает данные. Достаточно описать поля как параметры "Import"? Товарищ, написавший программу на Перле, подготавливающие данные для RFC, объяснить ничего не может. ( У нас с ним языковой барьер еще :) )
Спасибо за ответы! :)


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
В атрибутах ф.м. нужно поставить галку Remote-Enabled Module. Соответственно, нужно будет у всех параметров поставить галку Pass Value. Вот, собственно, и всё.

Если используется SAP::Rfc.pm, то Perl умеет принимать и передавать только плоские параметры и таблицы, и работает только с неюникодными системами. Если sapnwrfc — то из perl можно вызвать любой RFC-модуль, даже использующий deep structures в качестве параметров.


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

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
sibrin написал:
В атрибутах ф.м. нужно поставить галку Remote-Enabled Module. Соответственно, нужно будет у всех параметров поставить галку Pass Value. Вот, собственно, и всё.


Это я сделал.

sibrin написал:
Если используется SAP::Rfc.pm, то Perl умеет принимать и передавать только плоские параметры и таблицы, и работает только с неюникодными системами. Если sapnwrfc — то из perl можно вызвать любой RFC-модуль, даже использующий deep structures в качестве параметров.


Значит, если я Import-параметрах просто укажу передаваемые поля, это будет верно? Или лучше определить строку, состоящую из этих полей?

Спасибо за ответ, кажется все не так сложно, как казалось. :)


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

Зарегистрирован:
Пн, мар 12 2007, 09:10
Сообщения: 8
если удобно передавать отдельные строки, то через Import
Если хочешь всю таблицу передать сразу, то определяешь таблицу на закладке Tables
Все как и с обычным ФМ, смотри как тебе будет проще ее вызывать из другой среды


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
al написал(а):
смотри как тебе будет проще ее вызывать из другой среды
Для perl это абсолютно безразлично. Вот если в импорте параметр табличного типа, то не любая версия rfcsdk это потянет. В таком случае остаётся использовать устаревшую технологию — параметр TABLES.


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

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
Привет, знатоки! :)

Это опять я со своей несчастной функцией. :)
В общем, определил я параметры в закладке IMPORT, скрипт на перле вызывает мою функцию, она исполняется. Одна незадача: все входные переменные пусты, т.е. данных на самом деле не передается.
Вопрос: как осуществляется коммуникация в интерфейсе? Где должны быть указаны передаваемые параметры: в Перл-скрипте, или только в моей функции? Должны ли у них быть одинаковые имена?
Извините, если сбивчиво спрашиваю, я в этой области <я не знать русский языка>. Автор перл-скрипта ничего не говорит, то ли не знает, то ли не хочет, а сейчас вообще в отпуске.


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

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

Весёленькие у вас дела.

Конечно же, чтобы вызвать ф.м. в SAP нужно знать имя ф.м., а также имена и типы параметров.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, авг 27 2007, 09:39 
Ассистент
Ассистент

Зарегистрирован:
Пн, сен 26 2005, 11:53
Сообщения: 46
al1000 написал(а):
Одна незадача: все входные переменные пусты, т.е. данных на самом деле не передается.

А если из сапа эту функцию вызвать, все нормально отрабатывает, данные-то приходят в ФМ-ку?


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
lsapiens написал(а):
А если из сапа эту функцию вызвать, все нормально отрабатывает, данные-то приходят в ФМ-ку?

А куда ж они денуться.

Как определили, что они пустые? Нужно rfc trace смотреть.
Может быть rfcsdk не юникодная, а система юникодная?


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

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
sibrin написал:
al1000 написал(а):
Автор перл-скрипта ничего не говорит

Весёленькие у вас дела.

Конечно же, чтобы вызвать ф.м. в SAP нужно знать имя ф.м., а также имена и типы параметров.


То есть я должен ему сообщить имена и типы параметров моей фм? У меня такое впечатленье, что он ждет, что те имена, что он использует, отгадаю, потому что когда я спрашиваю, он говорит, что не знает. Имя фм удалось сообщить другому программисту, и он вписал его в программу. После этого скрипт вызывает фм, но данных не передает. :lol:
Блин, тяжело с этим турком. Он САП не может, вот и пытается доказать, что он всех главней. А я в такие игры не играю. Но ничего, прорвемся. :)

Так о чем я его попросить должен? Чтобы он откорректировал свою программу или сообщил мне имена и типы параметров, которые он использует?

Спасибо за поддержку! :)


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

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

"Или что-то случилось, или одно из двух". Это уже вопрос организационный. В любом случае, должны совпадать не только имена и типы параметров, но и смысл той информации, которая будет передаваться. Договориться о последнем намного сложнее.


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

Зарегистрирован:
Вт, авг 07 2007, 18:07
Сообщения: 22
Вы будете смеяться, но ФМ все еще не работает.

Удалось выяснить, что в перл-скрипте функция вызывается следующим образом:

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



ZBC_WRITE_TOTAB - имя вызывемой в САП ФМ.

FallNr, Einrichtung, PatientenID, Nachname, Vorname, Geburtsdatum, Geschlecht, FAchlOE, PflegOE, Doktyp, DokDAtum, DokZeit, DokOE, VMA, DokStatus, Zusaetze - имена передаваемых параметров, параметры "IMPORT" в ФМ имеют такие же имена.

Функция вызывется, но параметры не передаются (в таблицу записывается пустая строка).

Где искать ошибку?

Спасибо за ответы! :)


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

Зарегистрирован:
Вт, авг 17 2004, 16:09
Сообщения: 202
возми эти параметры и запусти тест модуля с ними и посмотри что выдаст


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

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


Если я запускаю тест модуля в САП, он прекрасно работает при любых параметрах.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
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?


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

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


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

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


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

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