Все,
В настоящее время мы разработали клиентское приложение Java, которое взаимодействует с SAP через API JCO v3.0. Во время вызова с отслеживанием состояния, когда вызываются несколько функций BAPI, мы используем класс JCoContext для установления сеанса с отслеживанием состояния. Мы вызываем JCoContext.begin() перед выполнением JCoFunctions и JCoContext.end() в блоке finally после завершения всех функций.
Проблема возникает в JCoContext.end(). Потенциально это может вызвать JCoException. В документации не очень ясно, почему может возникнуть исключение или как с ним справиться. При тестировании мне удалось наблюдать исключение, когда в метод JCoContext.end() передается пункт назначения NULL. Хотя это может произойти, это определенно не произойдет в нашем производственном коде. Итак, остается вопрос, есть ли какие-либо другие причины, по которым может быть возбуждено исключение?
Кроме того, я наблюдал странное поведение, если метод JCoContext.end() не вызывается. В этих случаях я видел, как последующие вызовы BAPI не завершались успешно. Это указывает мне на то, что если метод end() не завершится успешно, он может оставить JCo в плохом состоянии. Итак, как нам обрабатывать возникающее здесь исключение. Какие ресурсы есть у меня как у разработчика? Похоже, единственная гарантия, которая у меня есть, это закрыть программу.
Дайте мне знать, если у вас есть какие-либо идеи, спасибо,
Пол Мэннинг