2013-06-18 2 views
0

저는 모바일 개발자이며 이제 SAP 백엔드에 연결하는 Android 앱을 사용 중입니다.SUP : 릴레이 앱을 통해 SAP-SUP를 연결합니다.

은 내가

내가

BAPI

BAPI_FLIGHT_GETLIST에서 MBOs을 만들기 위해 관리 내가 안드로이드 코드로 코드를 생성하고 내가 데이터를 읽을 활동을 생성하여 BAPI에서 MBOs을 만들고 그의 BAPI에서 데이터를 읽을 필요 이 MBO

나는이 라인에서 오류가 아래 얻을 안드로이드 장치에 응용 프로그램을 실행

app.registerApplication(TIMEOUT); 

캘리포니아에서 n 누구든지이 오류로 나를 도울 수 있습니까?

내가 잘못

MainActivity 뭐하는 거지 이해가 안 :

private static final int REQUEST_DETAIL = 99; 
      private static String USERNAME = "*********"; 
      private static String PASSWORD = "**********"; 
      private static String HOST = "************"; 
      private static int PORT = 5001; // 2480 
      private static int sync_port = 2480; 
      private static int TIMEOUT = 600; 
private GetFlightsListAdapter adapter; 


@Override 
      protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        initializeApplication(); 
      } 

private void initializeApplication() { 

         try { 
        // 1. App initialization 
         Application app = Application.getInstance(); 
         app.setApplicationIdentifier("GetFlights"); 
         app.setApplicationContext(MainActivity.this); 
         GetFlightsDB.setApplication(app); 
         GetFlightsDB.getSynchronizationProfile().setServerName(HOST); 
        // 2. Set connection properties 
         ConnectionProperties connProps = app.getConnectionProperties(); 
         LoginCredentials loginCredentials = new LoginCredentials(USERNAME,PASSWORD); 
         connProps.setLoginCredentials(loginCredentials); 
         connProps.setServerName(HOST); 
         connProps.setPortNumber(PORT); 
         //3. App registration 
         if (app.getRegistrationStatus() != RegistrationStatus.REGISTERED) { 
          app.registerApplication(TIMEOUT); // ERROR HAPPENS HERE <----------- 
         } else { 
          app.startConnection(TIMEOUT); 
         } 
         //4. Sync data   
         if (!GetFlightsDB.isSynchronized("default")) { 
           GetFlightsDB.disableChangeLog(); 
           GetFlightsDB.synchronize(); // Initial Synchronize 
          SynchronizationGroup sg = GetFlightsDB.getSynchronizationGroup("default"); 
          sg.setEnableSIS(true); 
          sg.save(); 
          GetFlightsDB.synchronize(); 
         } 
         GetFlightsDB.enableChangeLog(); 
        } 

      finally { 
         Log.v("Finally", "Finally"); 
        } 


      } 

오류를

Caused by: com.sybase.mobile.ApplicationRuntimeException: Error: 558 Message: 'Could not connect to server. Verify Relay Server URL Template' 
E/AndroidRuntime(273):   at com.sybase.mobile.Application.registerApplication(Application.java:409) 
E/AndroidRuntime(273):   at com.example.getflightsnative.MainActivity.initializeApplication(MainActivity.java:84) 

매니페스트 파일 :

<uses-permission android:name="android.permission.INTERNET" /> 
     <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 


     <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 
      <activity 
       android:name="com.example.getflightsnative.MainActivity" 
       android:label="@string/app_name" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 


        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
     </application> 


     <uses-sdk 
      android:minSdkVersion="3" 
      android:targetSdkVersion="7" > 
     </uses-sdk> 

답변

1

릴레이 서버에 연결하려면 팜 ID를 제공해야합니다.

ConnectionProperties connProps = app.getConnectionProperties(); 
LoginCredentials loginCredentials = new LoginCredentials(USERNAME,PASSWORD); 
connProps.setLoginCredentials(loginCredentials); 
connProps.setServerName(HOST); 
connProps.setPortNumber(POST); port for relay server is 80 
connProps.setUrlSuffix("/ias_relay_server/client/rs_client.dll/%cid%/tm"); 
connProps.setFarmId(FARMID); //provide MBS farm Id for registration. And sync will be  different 
+0

"/ias_relay_server/client/rs_client.dll/%cid%/tm"이 url에는 실제로 'cid'와 'tm'이 무엇입니까? – ASP