2012-06-21 1 views
1

Я пытался использовать сгенерированный код Android для развернутого MBO из собственного приложения для Android.Как получить данные из MBO, созданного из SAP, используя SUP

шаг последовал выглядит следующим образом:

  1. МВО создан с использованием SAP BAPI (BAPI_FLIGHT_GETLIST)

  2. развернут его в UnWired сервер

  3. генерируется код

  4. скопировал код в проект Android

  5. используется сгенерированный код для доступа к данным из MBO, используя следующие шаги

    I) Установить данные приложения

    Application app = Application.getInstance(); 
    
        app.setApplicationIdentifier("FlightSearch"); 
    
        app.setApplicationContext(<android context>); 
    
        FlightSearchDB.setApplication(app); 
    

    II) Установить учетные данные

    ConnectionProperties connProps = app.getConnectionProperties(); 
    
        LoginCredentials loginCredentials = new LoginCredentials(USERNAME, PASSWORD); 
    
    
    
        connProps.setLoginCredentials(loginCredentials); 
    
        connProps.setServerName(HOST); 
    
        connProps.setPortNumber(PORT); 
    

    III) зарегистрировать соединение

    if (app.getRegistrationStatus() != RegistrationStatus.REGISTERED) 
    
        { 
    
         app.registerApplication(TIMEOUT); 
    
        } 
    
        else 
    
        { 
    
         app.startConnection(TIMEOUT); 
    
        } 
    

    IV) Установить параметр синхронизации

    ConnectionProfile profile = FlightSearchDB.getSynchronizationProfile(); 
    
        profile.setServerName(HOST); 
    
        profile.setPortNumber(2480); 
    
        profile.setNetworkProtocol("http,https"); 
    
        profile.setDomainName("default"); 
    
        profile.setAsyncReplay(true); 
    
        profile.save(); 
    

    v) начать синхронизацию

    FlightSearchDB.synchronize(new MySyncStatusListener()); 
    

я могу увидеть статус в objectSyncStatus (метода) MySyncStatusListener.

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

В то же время я пытался проверить логи сервера и показывает:

2012-06-21 02: 03: 26.135 CONSOLE MMS бассейн-1-поточно-18 -/регистрация/RegistrationServlet [ком. sybase.sup.server.Console] 6146

2012-06-21 02: 03: 25,491 CONSOLE MMS бассейн-1-токарно-16 -/регистрация/RegistrationServlet [com.sybase.sup.server.Console] 6038

Если я отключу часть синхронизации кода, я могу запустить следующий код, но результат всегда равен 0, что очевидно, так как локальные данные не будут доступны без синхронизации.

vi) Access Database 

     if(!FlightSearchDB.databaseExists()){ 

      FlightSearchDB.createDatabase(); 

     } 

     FlightSearchDB.openConnection(); 



     GenericList<Flight> flights = Flight.findAll(); 

Может кто-нибудь, дайте мне знать, если есть какие-либо проблемы с выдачей кода/конфигурации, которые мне нужно решить, чтобы получить доступ к данным.

ответ

0

Вопрос был с конфигурацией.

Я следовал примеру, приведенному на сайте sup.(http://scn.sap.com/docs/DOC-8803) проблема была не в коде, а в конфигурации сервера и в профиле пользователя, который я использовал в эмуляторе.

Вы можете указать свое сообщение в (http://scn.sap.com/message/13405735#13405735) для рабочего кода.

 Смежные вопросы

  • Нет связанных вопросов^_^