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

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


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

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


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

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