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