2017-01-17 5 views
0

既存のoDataモデルと作業中のoDataモデルに基づいていくつかのデータをモックしようとしています。モックサーバーは機能しますが、私は$expandに仕事をさせるのに苦労しています。私はと思っています。 JSONをどこに保存するかを理解していないのは、ほとんど私の問題です。UI5、JSONファイルでモックデータを展開する

メタデータファイルは、サービスサービスからそのままコピーされ、すべてのエンティティ、エンティティセット、アソシエーションなどが含まれます。

ここにいくつかの関連するビットがあります。

<NavigationProperty Name="Dealers" Relationship="Y_DP_CORE_SRV.User_Dealer" FromRole="FromRole_User_Dealer" ToRole="ToRole_User_Dealer" /> 

協会:Usersエンティティから

<Association Name="User_Dealer" sap:content-version="1"> 
    <End Type="Y_DP_CORE_SRV.User" Multiplicity="1" Role="FromRole_User_Dealer" /> 
    <End Type="Y_DP_CORE_SRV.Dealer" Multiplicity="*" Role="ToRole_User_Dealer" /> 
    <ReferentialConstraint> 
    <Principal Role="FromRole_User_Dealer"> 
     <PropertyRef Name="Id" /> 
    </Principal> 
    <Dependent Role="ToRole_User_Dealer"> 
     <PropertyRef Name="Id" /> 
    </Dependent> 
    </ReferentialConstraint> 
</Association> 

私はUsers('PRX-00015')を得ることができます。私はUsers('PRX-00015')/DealersまたはUsers('PRX-00015')?$expand=Dealersを得ることができません。エラーはなく、データもありません。

がここにUsers.JSONです:

[{ 
    "__metadata": { 
     "id": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Users('PRX-00015')", 
     "uri": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Users('PRX-00015')", 
     "type": "Y_DP_CORE_SRV.User" 
    }, 
    "Id": "PRX-00015", 
    "FullName": "Jorg", 
    "Email": "", 
    "Telephone": "", 
    "InternalUser": false, 
    "Enabled": true, 
    "Dealers": { 
     "results": [{ 
      "__metadata": { 
       "id": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Dealers('AA2002')", 
       "uri": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Dealers('AA2002')", 
       "type": "Y_DP_CORE_SRV.Dealer" 
      }, 
      "Id": "AA2002" 
     }, { 
      "__metadata": { 
       "id": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Dealers('AA1046')", 
       "uri": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Dealers('AA1046')", 
       "type": "Y_DP_CORE_SRV.Dealer" 
      }, 
      "Id": "AA1046" 
     }] 
    }, 
}] 

私もDealersの拡張されていないバージョンを使用し、ラインが見え、その場合には、それ自身のDealers.jsonファイルに配列を移動することができますよう

"Dealers": { 
    "__deferred": { 
     "uri": "http://localhost/sap/opu/odata/sap/Y_DP_CORE_SRV/Users('PRX-00015')/Dealers" 
    } 
} 

そして、 Dealers.json

​​

これらのすべてが空のDealers配列(Dealers.lengthが0)になります。誰でもこの仕組みが分かりますか?

答えて

0

通常のプロジェクト構造は次のようになります。

webapp/ 
- localService/ 
    - mockdata/ 
    - Y_DP_CORE_SRV.User 
    - Y_DP_CORE_SRV.Dealer.json 
    - metadata.json 

しかし、それは本当に問題で、あなたのファイルがどこにあるか、それはあなたのMockServerが実装されている方法を問題だしません。 MockServerはあなたの実際のサーバに実際のURLを模倣し、あなたが提供するファイルから偽のデータを返すべきです。あなたはすでにこの例を見てきましたか?https://sapui5.hana.ondemand.com/test-resources/sap/ui/templateapps/demokit/master-detail/webapp/localService/mockserver.js

拡大について。通常、xmlビューでは、展開パラメータを定義することによって、バインディングプロパティを持つ関連エンティティを展開できます。 javascriptでは同様の方法で動作します。私は自分のコンピュータに着くとき、私はいくつかの例を提供することができますが、すべてのパラメータは関係なく、それが本当のバックエンドからmockdataまたは実際のデータだと同じ滞在展開するので、それは本当にMockServerに関連していないのです...

UPDATE:ここにありますビューからモデルを展開してプロパティにアクセスする方法の例:

<QuickView 
    binding="{path: 'to_Supplier', parameters: { expand: 'to_Address,to_PrimaryContactPerson' }}"> 
    <QuickViewPage 
     title="{CompanyName}" 
     description="{to_PrimaryContactPerson/FormattedContactName}"> 
      <QuickViewGroup> 
       <QuickViewGroupElement value="{to_Address/FormattedAddress}"/> 
      </QuickViewGroup> 
    </QuickViewPage> 
</QuickView> 
+0

ありがとうございます。展開の例は良いでしょう。 JSONファイルが見つかりました、私は個々のユーザーと個々のディーラーを得ることができますが、私は$ expandを使用して接続を行うように見えません。 – Jorg

+0

@Jorg、例を追加しました。あなたの質問に答えますか? – Skay

関連する問題