Как выполнить функцию RFC в явном месте назначения, используя JCo? - PullRequest
0 голосов
/ 28 июня 2018

Я хотел бы выполнить функцию RFC в явном месте назначения, используя JCo.

Я изменил существующий JCo StepByStepClient.java и Я могу выполнить RFC-функцию точно так же, как при использовании Sap GUI "se37", когда поле "RFC target sys" имеет значение пустой . Для моих демонстрационных целей я вызывал функцию "TH_USER_LIST".

Затем я зарегистрировал свой собственный JCo-сервер с идентификатором программы «MY_PROG_ID», затем добавил tcpip-назначение «MY_DEST» с помощью «sm59» с «Зарегистрированная серверная программа» = «MY_PROG_ID».

Теперь я могу вызывать TH_USER_LIST на моем сервере JCo, используя "se37" с RFC target sys = "MY_DEST"

Я хотел бы иметь возможность выполнить ту же реализацию TH_USER_LIST на моем сервере JCo, используя клиент JCo, но я все еще вызываю реализацию по умолчанию, а не моя зарегистрированная программа.

Я предположил, что мне просто нужно присвоить описание как новое свойство, подобное приведенному ниже, но это не помогло

connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "appserver");
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "00");
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "000");
connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "JCOTESTER");
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "JCOTESTERSPASSWORD");
connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "en");

Пожалуйста, сообщите

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Для вызова зарегистрированной программы внешнего сервера RFC, пожалуйста, прочитайте

для требуемых параметров конфигурации назначения.

Вместо jco.client.ashost и jco.client.sysnr необходимо указать jco.client.tpname , jco.client .gwhost и jco.client.gwserv . Кроме того, вам, вероятно, понадобится другое назначение в систему ABAP для запроса необходимых метаданных RFC. Это место назначения должно быть указано как свойство jco.destination.repository _destination.

0 голосов
/ 28 июня 2018

DestinationDataProvider.JCO_ASHOST и DestinationDataProvider.JCO_SYSNR являются правильными свойствами для указания целевой системы. Но только установка свойств не достаточно. Вы также должны получить новый объект JCoDestination с этими свойствами из JCoDestinationManager.getDestination("MYDESTNAME"), а затем использовать это назначение для выполнения вызова.

Кстати, я рекомендую выбросить все эти вещи для создания файлов из вашей Java-программы и напрямую отредактировать соответствующие файлы свойств MYDESTNAME.jcoDestination вручную, чтобы попасть в тему.

...