Ответ очень прост: не выбрасывая исключение!Предполагая, что сторона 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