2014-10-07 6 views
0

Доброго утра,SAPUI5: SAP NetWeaver пользователь Услуга Интерфейса

Я использую eclipe и кот для разработки и тестирования sapui5 мобильного приложения, которое говорит с сервисом SAP OData. После завершения разработки приложение будет установлено на сервере SAP.

Я пытаюсь использовать Пользовательский интерфейс (sap.ui2) для доступа к пользовательской информации.

Проблема заключается в том, что этот API не может быть вызван/использован из приложения, которое не развертывается на сервере SAP. Все вызовы, которые я вижу, являются относительными вызовами, и из-за этого ресурсы не найдены.

Heres полный пример:

<!DOCTYPE HTML> 
<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> 

     <script src="<my-sap-server>/sap/public/bc/ui2/services/sap/ui2/srvc/error.js"></script> 
     <script src="<my-sap-server>/sap/public/bc/ui2/services/sap/ui2/srvc/utils.js"></script> 
     <script src="<my-sap-server>/sap/public/bc/ui2/shell-api/sap/ui2/shell/startup.js"></script> 

     <script src="resources/sap-ui-core.js" 
       id="sap-ui-bootstrap" 
       data-sap-ui-libs="sap.m" 
       data-sap-ui-theme="sap_bluecrystal"> 
     </script> 
     <script> 
      var user = sap.ui2.shell.getUser(); 
      user.load({ 
    //     depthAtRoot: 1, 
    //     nodeId: " ", 
    //     depthAtNode: 1 
        }, 
        function() {        
          //set user data in the json model 
          alert(user.getFullName()); 
        }, 
        function(sErrorMessage) { 
          /* failure handler: e.g. display load error */    
         alert(sErrorMessage); 
        } 
      ); 
     </script> 

    </head> 
    <body class="sapUiBody" role="application"> 
     <div id="content"></div> 
    </body> 
</html> 

И ошибка:

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/sap/bc/ui2/start_up?depth=0 
2014-10-07 10:30:10 Error 404 in response for URL /sap/bc/ui2/start_up?depth=0 - sap.ui2.srvc 

Как показано, API предполагает ui2 развернут на моем локальном сервере, а не на удаленном сервере SAP, откуда Я загрузил библиотеки.

Я искал API sap.ui2 и не нашел способа изменить это поведение.

Без этого у меня есть 2 варианта:

1 - Запуск с помощью SAP-сервера для тестирования - это не подходит для меня, потому что разработка и тестирование заняло бы больше времени

2 - Вручную вызвать URL HTTP: /// sap/bc/ui2/start_up? depth = 0 для стандартного SAPUI5 JSONModel - нежелательно, потому что, если команды SAP решают что-то изменить, мое приложение может стать сломанным.

Любые мысли по этому вопросу?

Заранее благодарен.

ответ

0

В Tomcat вам понадобится макет службы для http://localhost:8080/sap/bc/ui2/start_up.

Служба возвратит фиктивный объект JSON, как следующее:

{ 
    "client": "200", 
    "email": "[email protected]", 
    "firstName": "Dummy", 
    "lastName": "Test", 
    "fullName": "Dummy Test", 
    "id": "DUMMY", 
    "language": "EN" 
} 
+0

Спасибо за предложение @Allen, но это значит, что нет никакого способа, чтобы использовать библиотеку sap.ui2 в этом сценарии? Я бы очень хотел разрабатывать и тестировать те же самые (или самые близкие) условия, которые я буду иметь в производственной среде. В это время я выбрал альтернативу 2º, которую я описал на своем посту, и она отлично работает ... но это не мое идеальное решение. – mjd

+0

Вы можете использовать библиотеку ui2, так как вы вызываете sap.ui2.shell.getUser(), ui2 вызовет вызов службы/sap/bc/ui2/start_up, который является вашим макетным сервисом в Tomcat. Вы можете попробовать. – Allen