SAP Web IDEに付属のSAP Sample "Approve Purchase Order"アプリケーションでは、 "PurchaseOrder"フィールドと同じ "Simple Form" UIコンテナコントロール内の "Supplier"エンティティ(子)のフィールドをバインドする方法"(親)エンティティ。このサンプルでは、3つの別々の模擬データファイルがあり、それぞれが「購買発注」、「購買発注明細」および「サプライヤ」用です。購買発注とサプライヤの関係は、関連付けを使用してmetadata.xmlに定義された1:1です。SAPUI5 - SAP Frioriの親エンティティのフィールドと同じパネル内の子エンティティの項目をバインドする方法サンプル "Approve PO" app?
A)発注書(関連する部分のみ)
<EntityType Name="PurchaseOrder" sap:content-version="1" sap:is-thing-type="true">
<Key>
<PropertyRef Name="POId"/>
</Key>
<Property MaxLength="10" Name="POId" Nullable="false" Type="Edm.String" sap:creatable="false" sap:filterable="false"
sap:label="Purchase Order ID" sap:updatable="false"/>
<Property MaxLength="10" Name="OrderedById" Nullable="false" Type="Edm.String" sap:creatable="false" sap:filterable="false"
<Property MaxLength="10" Name="SupplierId" Nullable="false" Type="Edm.String" sap:creatable="false" sap:filterable="false" sap:label="ID"
sap:sortable="false" sap:updatable="false"/>
B)サプライヤー(関連部分のみ)
<EntityType Name="Supplier" sap:content-version="1" sap:is-thing-type="true">
<Key>
<PropertyRef Name="Id"/>
</Key>
<Property MaxLength="10" Name="Id" Nullable="false" Type="Edm.String" sap:creatable="false" sap:filterable="false" sap:label="ID"
sap:sortable="false" sap:updatable="false"/>
<Property MaxLength="255" Name="Email" Nullable="false" Type="Edm.String" sap:creatable="false" sap:filterable="false" sap:label="E-Mail"
sap:semantics="email" sap:sortable="false" sap:updatable="false"/>
C)協会
<Association Name="PurchaseOrderSupplier" sap:content-version="1" sap:label="Association: Supplier --> Purchase Order">
<End Multiplicity="1" Role="FromRole_PurchaseOrderSupplier" Type="EPM_REF_APPS_PO_APV_SRV.Supplier"/>
<End Multiplicity="*" Role="ToRole_PurchaseOrderSupplier" Type="EPM_REF_APPS_PO_APV_SRV.PurchaseOrder"/>
<ReferentialConstraint>
<Principal Role="FromRole_PurchaseOrderSupplier">
<PropertyRef Name="Id"/>
</Principal>
<Dependent Role="ToRole_PurchaseOrderSupplier">
<PropertyRef Name="SupplierId"/>
</Dependent>
</ReferentialConstraint>
</Association>
図の部分( PurchaseOrderDetails.view.xml)を以下に示します。電子メールを除くすべてのフィールドは、親PurchaseOrderエンティティからのものです。
<form:SimpleForm class="sapUiForceWidthAuto sapUiResponsiveMargin" columnsL="1" columnsM="1" emptySpanL="5" emptySpanM="5" id="poHeaderForm"
labelSpanL="3" labelSpanM="3" layout="ResponsiveGridLayout" maxContainerCols="2" minWidth="1024" title="{i18n>xtit.formTitle}">
<Label id="poIdFormLabel" text="{/#PurchaseOrder/POId/@sap:label}"/>
<Text id="poIdForm" text="{POId}"/>
<Label id="addressFormLabel" text="{/#PurchaseOrder/DeliveryAddress/@sap:label}"/>
<Text id="addressForm" text="{DeliveryAddress}"/>
<Label id="supplierEmailLabel" text="{/#Supplier/Email/@sap:label}"/>
<Text id="supplierEmail" text="{/PurchaseOrder/Id/Email}"/>
</form:SimpleForm>
私はサプライヤーエンティティすなわちから、フィールド、電子メールをバインドするために、多くの順列を試してみました:A){/Id/Email}
、B){path: 'Supplier' , parameters: {Select 'Email'}}
が、結果は空白となっています。
「電子メール」の正しいバインディング構文を示してください。
こんにちはナビ、お返事ありがとうございます。 1)私はスペースのために完全なメタデータを表示しませんでした。しかし、PurchaseOrder Entityにはすでに次のNavigationPropertyがあります。私は$ =サプライヤーを展開する含める必要がありますラベル= "サプライヤー"/2):
こんにちはナビ、私はちょうどPurchaseOrderItems.view.xmlの電子メールフィールドで次のバインディング構文を試してみました! >> binding = {Supplier} text = {Email}。私が数日間苦労している問題であなたの助けをありがとうございます。 –
私はこの例を更新しました。最終的にあなたの質問に答えますか? – Nabi