SAPфорум.RU
https://sapboard.ru/forum/

RFC в payload передает обрезанные значения
https://sapboard.ru/forum/viewtopic.php?f=70&t=79335
Страница 1 из 1

Автор:  kicik [ Вт, окт 23 2012, 15:31 ]
Заголовок сообщения:  RFC в payload передает обрезанные значения

Привет всем,

передаю таблицу из R3 в PI посредством RFC модуля.
На входе в RFC все значения нормальные в PI попадают обрезанные т.е.

пример:
передаю

параметр А01

таблица:
char 4 char 10 char 10 char 12 date time
2101 0000000001 0000000011 USER_011 20121023 182655

в payload имею след. значения

А01
2101
0000010000
_01120
55


Как это побороть?
может кто-нибудь сталкивался с этой проблемой?

Автор:  chumpa [ Вт, окт 23 2012, 16:04 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

RFC адаптер не самодостаточен: вызов данных не работает без корректного репозитория на стороне джавы.
То-ли структуру данных поменяли, то-ли кодировку (юникод). Рестартуй канал, вплоть до его изменения в конфигураторе.

Автор:  kicik [ Ср, окт 24 2012, 07:34 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

Канал рестартанул. Структуры не менялись. Единственное когда запускаю RFC PI выдает какую-то ошибку
Wed Oct 24 10:23:02 ALMT 2012 2410cc08-7083-0481-4020-718d08804b2c Error in processing caused by: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: lookup of alternativeServiceIdentifier .

Можешь подсказать в какую сторону копать?

Автор:  chumpa [ Ср, окт 24 2012, 09:36 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

попробуй не просто рестартовать канал а именно переактивировать его в конфигурации.
Сам adapter engine живой? остальное всё работает?

Автор:  chumpa [ Ср, окт 24 2012, 09:42 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

Да, а [не]юникодность-то совпадает?

Автор:  kicik [ Ср, окт 24 2012, 10:46 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

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

Автор:  chumpa [ Ср, окт 24 2012, 13:28 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

или ссылка на репозиторий неверная или репозиторий не соответствует реальности.

Автор:  kicik [ Ср, окт 24 2012, 14:11 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

Не подскажешь где посмотреть ссылку и сам репозиторий?
И как его проверить?

Автор:  chumpa [ Ср, окт 24 2012, 14:34 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

посмотреть в канале-сендере, там и прописана, RFC Metadata Repository Parameter.

Автор:  kicik [ Чт, окт 25 2012, 06:27 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

привет,
я разобрался почему передавались кривые данные.
спасибо за помошь.
только можешь объяснить почему так происходило?
из R3 системы я вызывал RFC модуль. В нем я вызывал еще один уже с назначением в PI.
так вот если в первом модуле я делал импортные параметры и таблицу и во втором тоже самое тогда передаются кривые данные.
если в первом не делать импортные параметры а прописать в нем выбор данных и передать во второй тогда все прекрасно работает.


пример рабочий:

FUNCTION z_export_smartcard_start.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"----------------------------------------------------------------------
DATA: action TYPE zaction,
lt_rfc TYPE zsmartcard_int_r OCCURS 0 WITH HEADER LINE.
DATA gt_tab_101 TYPE zsmartcard_int OCCURS 0 WITH HEADER LINE.
SELECT * FROM zsmartcard_int INTO TABLE gt_tab_101.
LOOP AT gt_tab_101.
MOVE-CORRESPONDING gt_tab_101 TO lt_rfc.
lt_rfc-beg_num = gt_tab_101-beg_num.
lt_rfc-end_num = gt_tab_101-end_num.
APPEND lt_rfc.
CLEAR: lt_rfc.
ENDLOOP.

action = 'A01'.

CALL FUNCTION 'Z_EXPORT_SMARTCARD'
IN BACKGROUND TASK
DESTINATION 'PP-02'
EXPORTING
action = action
TABLES
zsmartcard_int = lt_rfc.
WAIT UP TO 2 SECONDS.
COMMIT WORK.

ENDFUNCTION.


FUNCTION Z_EXPORT_SMARTCARD.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(ACTION) TYPE ZACTION
*" TABLES
*" ZSMARTCARD_INT STRUCTURE ZSMARTCARD_INT_R OPTIONAL
*"----------------------------------------------------------------------

ENDFUNCTION.



пример работающий коряво:



FUNCTION z_export_smartcard_start.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(ACTION) TYPE ZACTION
*" TABLES
*" ZSMARTCARD_INT STRUCTURE ZSMARTCARD_INT_R OPTIONAL

CALL FUNCTION 'Z_EXPORT_SMARTCARD'
IN BACKGROUND TASK
DESTINATION 'PP-02'
EXPORTING
action = ZACTION
TABLES
zsmartcard_int = ZSMARTCARD_INT.
WAIT UP TO 2 SECONDS.
COMMIT WORK.

ENDFUNCTION.


FUNCTION Z_EXPORT_SMARTCARD.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(ACTION) TYPE ZACTION
*" TABLES
*" ZSMARTCARD_INT STRUCTURE ZSMARTCARD_INT_R OPTIONAL
*"----------------------------------------------------------------------

ENDFUNCTION.


в отладчике проверял передаются данные нормально так и не понял почему обрезало данные.

Автор:  chumpa [ Чт, окт 25 2012, 15:43 ]
Заголовок сообщения:  Re: RFC в payload передает обрезанные значения

проверь юникодность проги, которая вызывает первый ФМ, и уникодность группы функций.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/