Как сервер SAP tRFC может сообщить клиенту через JCo, что функция была выполнена? - PullRequest
1 голос
/ 07 мая 2010

Документ SAP «Техническое описание транзакций RFC» (выпуск 4.0, см. http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/ee6bca90-0201-0010-5792-d9693e2eac83?QuickLink=index&overridelayout=true ) в разделе Transactional RFC на странице 6 говорится: «Наконец, сервер сообщает клиенту, что функция выполнена, и клиент подтверждает это».

Как сервер может сообщить об этом клиенту, когда сервер общается с клиентом через JCo (Java Connector)?

Ответы [ 2 ]

1 голос
/ 08 мая 2010

Релиз 4.0 довольно старый - всегда используйте последнюю документацию.

Из того, что я вижу, нет способа передать результат обратного вызова tRFC на сервер. Вызовы tRFC могут быть помещены в (локальную или удаленную) очередь и выполнены позже. См. http://help.sap.com/saphelp_nw04/helpdata/en/f0/02a63b9bb3e035e10000000a114084/frameset.htm для получения информации о том, как контролировать вызовы tRFC.

0 голосов
/ 05 марта 2018

Ответ очень прост: не выбрасывая исключение!Предполагая, что сторона JCo является здесь сервером, все, что вам нужно сделать, это успешно вернуться из метода, который реализует функциональный модуль.Затем JCo автоматически возвращает подтверждение, требуемое протоколом tRFC, клиенту (= в данном случае системе R / 3).

Система R / 3 после получения ACK от JCo затем активируетПодтвердите событие, которое JCo получает и передает в соответствующее событие вашего JCoServerTIDHandler.Здесь вы можете затем очистить TID от вашей базы данных, хранящей состояние.

Если ваш метод функционального модуля возвращается с ошибкой, JCo сообщит об этом соответственно, а бэкэнд вызовет событие Rollback.* В следующей статье более подробно объясняется, как следует реализовать tRFC между внешней программой и системой SAP.Он основан на библиотеке NetWeaver RFC (C / C ++), но вы можете легко перевести ее на JCo и Java: https://wiki.scn.sap.com/wiki/x/FD67Gg

...