私はSAPUI5フレームワークを使用してJSでコーディングする必要がある会社でインターンシップを行っています。それは私にはまったく新しいものなので、私はhttp://sapui5.hana.ondemand.comのチュートリアルに従ったのです。しかし、今私は問題があり、私はインターネット上で助言を見つけることができません、そして、私はいつも私の同僚に助けを求めることはできません、彼らも仕事をしている... SAPUI5 Metadata.xml:2つのエンティティのバインド
私は計画をしなければならない多くの従業員とその仕事。
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"
Version="1.0">
<edmx:DataServices
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
m:DataServiceVersion="1.0">
<Schema xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="NorthwindModel">
<EntityType Name="Employee">
<Key>
<PropertyRef Name="EmployeeID" />
</Key>
<Property xmlns:p8="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
Name="EmployeeID" Type="Edm.Int32" Nullable="false"
p8:StoreGeneratedPattern="Identity" />
<Property Name="LastName" Type="Edm.String" Nullable="false"
MaxLength="20" Unicode="true" FixedLength="false" />
<Property Name="City" Type="Edm.String" Nullable="false"/>
<Property Name="Team" Type="Edm.String" Nullable="false"/>
<NavigationProperty Name="Appointments" Relationship="NorthwindModel.FK_Employees_Appointment"
FromRole="Employees" ToRole="Appointments"/>
</EntityType>
<EntityType Name="Appointment">
<Key>
<PropertyRef Name="AppointmentID"/>
</Key>
<Property Name="AppointmentID" Type="Edm.Int32" Nullable="false"/>
<Property Name="EmployeeID" Type="Edm.Int32" Nullable="false"/>
<Property Name="start" Type="Edm.DateTime" Nullable="false"/>
<Property Name="end" Type="Edm.DateTime" Nullable="false"/>
<Property Name="title" Type="Edm.String" Nullable="false"/>
<NavigationProperty Name="Employees" Relationship="NorthwindModel.FK_Employees_Appointment"
ToRole="Employees" FromRole="Appointments"/>
</EntityType>
<Association Name="FK_Employees_Appointment">
<End Type="Employee" Role="Employees" Multiplicity="1" />
<End Type="Appointment" Role="Appointments" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Employees">
<PropertyRef Name="EmployeeID" />
</Principal>
<Principal Role="Appointments">
<PropertyRef Name="EmployeeID" />
</Principal>
</ReferentialConstraint>
</Association>
</Schema>
<Schema xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://schemas.microsoft.com/ado/2008/09/edm" Namespace="ODataWeb.Northwind.Model">
<EntityContainer
xmlns:p7="http://schemas.microsoft.com/ado/2009/02/edm/annotation"
Name="NorthwindEntities" p7:LazyLoadingEnabled="true"
m:IsDefaultEntityContainer="true">
<EntitySet Name="Employees" EntityType="NorthwindModel.Employee" />
<EntitySet Name="Appointments" EntityType="NorthwindModel.Appointment"/>
<AssociationSet Name="FK_Employees_Appointments" Association="NorthwindModel.FK_Employees_Appointment">
<End Role="Employees" EntitySet="Employees"/>
<End Role="Appointments" EntitySet="Appointments"/>
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:DataServices>
(タグAssociationSetとNavigationPropertyのために、私は私が使用したODataサービスに見てきたので、私はそれをしなかったが、私はしないでください:私はmetadata.xmlファイルでmockserverと連携しますそれを理解し、今私はそれは大丈夫だろうと推測...)
Appointments.jsonファイル:
[
{
"AppointmentID" : 0,
"EmployeeID" : 0,
"start":"\/Date(1466416800000)\/",
"end":"\/Date(1466424000000)\/",
"title": "test"
},{
"AppointmentID" : 1,
"EmployeeID" : 1,
"start":"\/Date(1466409600000)\/",
"end":"\/Date(1466416800000)\/",
"title": "test2"
}]
Employees.jsonファイル:
[
{
"EmployeeID":0,
"LastName":"APERCE",
"City":"Paris",
"Team":"Dev"
},
{
"EmployeeID":1,
"LastName":"HACHMI",
"City":"Lille",
"Team":"Dev"
},
{
"EmployeeID":2,
"LastName":"MILLET",
"City":"Paris",
"Team":"Admin"
},
{
"EmployeeID":3,
"LastName":"CORNET",
"City":"Poitiers",
"Team":"Admin"
},
{
"EmployeeID":4,
"LastName":"EVAIN",
"City":"Paris",
"Team":"R&D"
}]
(あなたが見ることができるように、社員は両方Appointments.jsonらEmployees.json上に存在している)
そして最後にOverview.view.xmlファイル:
<mvc:View controllerName="sap.ui.demo.wt.controller.Overview"
xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" xmlns:semantic="sap.m.semantic"
xmlns:unified="sap.ui.unified"
xmlns:core="sap.ui.core" displayBlock="true">
<semantic:FullscreenPage title="{i18n>overviewPageTitle}">
<VBox>
<PlanningCalendar startDate="{path : '/Startdate'}" rows="{path : 'data>/Employees',parameters:{expand:'Appointments'}}"
appointmentSelect="handleAppointmentSelect">
<rows>
<PlanningCalendarRow title="{data>LastName}"
appointments="{path : 'data>Appointments',templateShareable:true}">
<appointments>
<unified:CalendarAppointment
startDate="{data>start}"
endDate="{data>end}"
title="{data>title}">
</unified:CalendarAppointment>
</appointments>
</PlanningCalendarRow>
</rows>
</PlanningCalendar>
</VBox>
</semantic:FullscreenPage>
( "data"モデルはmetadata.xmlで既にバインドされ、Appointments.jsonとEmployees.jsonの両方を取得します)
実際には、このコード計画中のすべての従業員のためのAppointments.jsonからの2つのタスクを表示します。私は「HACHMI」の従業員「APERCE」と「test2」だけを「テスト」に任命するためにバインドしたいと思いますが、できません。
SQLデータベースのJOINと同等の処理を実行することは可能ですが、何も見つかりません。私はどうすればいいのですか?あなたの答えをありがとう。
PS:私が上に書いたことを理解していないと、私はフランス語です、ごめんなさい。あなたがフランス語で答えることができれば、そうしてください、それは私の理解のために良いでしょう。
EDIT:私はnistv4nのアドバイスに従ってコードを修正しました。
MockServer:リソースは、セグメントの予定 '=>私はそれが予定の "だから、セグメントの予定が'が存在しないことを理解し、私はドン」が見つかりません今、私は次のエラーを取得します私はどこを忘れたのか知りません。
次の問題が発生しました:HTTP要求が失敗しました404、Not Found、{"error":{"code":404、 "message":{"lang": "en"、 "value": " 'Appointment' "}}} =>「Appointment 」の代わりに「Appointment」をリクエストしているので、前のエラーに関連していると思いますか?
REEDIT:私は正しい場所に 's'を置きます。今、私は持っている:Overview.viewで使用されているモデルに問題があるので、未定義のプロパティ 'getTime'を読むことはできません。xml、おそらく、しかし、私が使用する場合は同じです: "{予定}"、 "{予定}"、 "{開始}"または "{/予定}"} "。
LASTEDIT: nistv4nのおかげで、私はついにそれを行いました。同じ問題がある場合、上記のコードを更新しました。統一で:CalendarAppointment =>たstartDate = "{データ>開始}"等...実際
:正しいコードは "{ 'データ>予定' パス}" = PlanningCalendarRow =>予定でありますnistv4nを引用すると: "Appointmentsには相対参照があり、内部プロパティ(start、end、title)にはモデル名を含む相対参照も含まれています。"あなたがPlanningCalendar
の集計行のバインディングを定義
startDate = "{データ>開始}"、endDate = "{データ>終了}"、title = "{データ>タイトル}"について –
すべての従業員は "test"と "test2"というタスクを持っています。しかし、私は "HACHMI"の "APERCE"と "test2"のみ "テスト"を、他の従業員は "テスト"を望んでいません。 – Nicaps
@Ash実際はあなたが正しいと思っていましたが、問題はPlanningCalendarRowにありました。ありがとうございました ! – Nicaps