Как определить номер мандата/клиента SAP в приложении SAPUI5, работающем в предварительном просмотре Eclipse WebApp?

С помощью инструментов разработки Eclipse для SAPUI5 можно запустить приложение SAPUI5 в режиме предварительного просмотра WebApp. Он работает нормально, за исключением одного балла.

Данные клиента, используемые в службе OData, по умолчанию всегда равны «100». Я предполагаю, что используемый клиент используется для настройки репозитория.

Но для тестирования я должен использовать другой клиент (200) из-за поддерживаемых тестовых данных.

Начиная с SAPUI5 1.26.9 и соответствующих средств разработки, кажется, что он работает, определяя клиента по умолчанию в SAP NetWeaver Gateway, но после обновления до 1.28.x большую часть времени используется клиент 100.

Теперь я ищу документацию по этой проблеме, но ничего не могу найти. Одной из проблем, конечно, было бы то, что поисковый термин «клиент» вообще не поможет.

Я также не хотел бы где-то жестко закодировать любой номер клиента, потому что в реальной системе клиент, вошедший в систему, будет использоваться автоматически.

Но в предварительном просмотре WebApp у меня не будет спрошен клиент.

Может быть, это неправильное место, чтобы задать этот вопрос? В таком случае я его удалю.


person user3783327    schedule 24.08.2015    source источник


Ответы (3)


Можете ли вы иметь параметр в URL-адресе и связать его с получением вашего serviceUrl?
Возможно, у вас может быть параметр URL, и на его основе вы можете использовать 2 URL-адреса службы: один с жестко запрограммированным значением клиента 200, а другой без чего-либо. Вы можете получить параметр:

jQuery.sap.getUriParameters().get("test-mode") === "true";

Чтобы жестко закодировать клиент в определении службы OData:

var sUrl = "proxy/protocol/server:port/pathToService?sap-client=600";
var oModel = new sap.ui.model.odata.ODataModel(sUrl,true)
person Veeraraghavan N    schedule 24.08.2015
comment
Есть ли способ жестко закодировать клиента в определении службы OData? Не нашли как? - person user3783327; 24.08.2015
comment
var sUrl = прокси/протокол/сервер:порт/pathToService?sap-client=600; var oModel = новый sap.ui.model.odata.ODataModel (sUrl, true); **** я использую прокси-сервер по умолчанию, чтобы преодолеть проблему с перекрестным происхождением **** - person Veeraraghavan N; 25.08.2015

Вы можете использовать параметр sap-client GET. Он будет автоматически передан вашему приложению при использовании портала SAP или SAPGUI.

ODataModel передает его сервису данных со своим.

person Nikolay Nadorichev    schedule 25.08.2015

Когда вы вызываете объект своей модели, вы можете передать некоторые переменные заголовка, чтобы они «указывали» на правильный клиент SAP.

    // Set the client header variable
    var oHeaders = {'sap-client': '120'};
    var bCSRF = "true";
    var oModel = sap.ui.model.odata.ODataModel(serviceURL, true, "user", "pass", oHeaders, bCSRF, false, false, "", false);
    sap.ui.getCore().getModel(oModel, 'gAppModel')

Вы можете проверить, какие переменные заголовка вам нужны, используя клиент REST, такой как Postman.

Подробную информацию о конструкторе OData можно найти в API — Модель OData UI5

person warrenei    schedule 03.09.2015