Вызов BAPI_DOCUMENT_CHECKOUTVIEW2 с использованием SAP.Net Connector 3.0 возвращает сервер обратного вызова RFC, недоступный

Я пытаюсь получить документ из SAP DMS с помощью SAP.Net Connector 3.0. Мне нужно получить документ и отобразить его в ASP.Net.

Я использую "BAPI_DOCUMENT_CHECKOUTVIEW2" для вызова функции. Но когда вызывается метод вызова, возникает ошибка «Сервер обратного вызова RFC недоступен».

Код, который я использовал, приведен ниже.

...
sap.RfcRepository repo = prd.Repository;
sap.IRfcFunction testBapi = repo.CreateFunction("BAPI_DOCUMENT_CHECKOUTVIEW2");
testBapi.SetValue("DOCUMENTNUMBER", docNumber);
testBapi.SetValue("DOCUMENTPART", docPart);
testBapi.SetValue("DOCUMENTVERSION", docVersion);
testBapi.SetValue("DOCUMENTTYPE", docType);
... 
the document file is created here using BAPI_DOCUMENT_GETDETAIL2
...
testBapi.SetValue("DOCUMENTFILE", struFile);
testBapi.SetValue("GETSTRUCTURE", "1");
testBapi.SetValue("GETHEADER", "X");
testBapi.SetValue("ORIGINALPATH", @"D:\");
testBapi.SetValue("PF_FTP_DEST", "SAPFTPA");

long result = RfcAllowStartProgram("sapftp; saphttp");
testBapi.Invoke(prd);

заранее спасибо


person Sathish    schedule 08.11.2011    source источник
comment
Удалось ли вам загрузить файлы, указав имя файла как-то в коде? в моем случае это загрузка файлов в D: \ с тем же именем, перезаписывающим существующий файл.   -  person WAQ    schedule 12.02.2017
comment
Это не будет работать с официальным соединителем .NET, так как он не поддерживает обратные вызовы ABAP, такие как RFC_START_PROGRAM. См. примечание SAP: launchpad.support.sap.com/#/notes/2297083 Более подробно я объяснил это и то, как мы решили эту проблему, в этом блоге: dbosoft.eu/en-us/blog/   -  person Frank Wagner    schedule 04.05.2021


Ответы (3)


Я не знаю этот BAPI, и у меня нет под рукой системы для его проверки, но я предполагаю, что где-то во время выполнения BAPI пытается вызвать «обратно» к графическому интерфейсу, который должен быть на другом конец сеанса. Когда он не может найти графический интерфейс, он умирает. ЕСЛИ у вас есть доступ к графическому интерфейсу и разрешения на отладку (и знания :-)), вы можете попытаться найти оператор CALL FUNCTION... DESTINATION BACK по пути.

person vwegert    schedule 10.11.2011

Попробуйте добавить еще один параметр конфигурации:

RfcConfigParameters.UseSAPGui со значением = 1

person mehar sreekanth    schedule 19.04.2012

У вас есть дополнительная информация о сбое подключения к RFC-серверу? Если вы знаете, какое соединение является проблемой, вы можете попросить сотрудника SAP Basis/ABAP войти на сервер SAP и проверить назначения RFC в транзакции SM59.

РЕДАКТИРОВАТЬ: Также проверьте авторизацию пользователя .NET.

person Esti    schedule 08.11.2011
comment
Я проверил у человека ABAP, и он сказал, что может получить доступ и загрузить документ с помощью SAPGui. - person Sathish; 10.11.2011
comment
Привет, Сатиш, маловероятно, что для загрузки документа с использованием графического интерфейса SAP требуется назначение RFC. Ради интереса, человек ABAP использовал BAPI для загрузки документа или стандартную транзакцию DMS? При использовании BAPI возможно, что пункт назначения RFC будет по-прежнему доступен. - person Esti; 11.11.2011