フルスタックの Web IDE を使用して、561 の初期在庫商品移動を投稿する簡単なフォームを作成しています。バインディングに関する限り、何が欠けているのかわかりません。コントローラーは想定どおりに動作しているように見えますが、生成された JSON は正しくありません。
正しい JSON は次のようになります。
{
"PostingDate": "2018-08-27T00:00:00",
"GoodsMovementCode": "05",
"to_MaterialDocumentItem": [{
"Material": "MZ-FG-E11",
"Plant": "1710",
"StorageLocation": "171A",
"GoodsMovementType": "561",
"Batch" : "0000000013",
"QuantityInEntryUnit": "12",
"ShelfLifeExpirationDate":"2018-08-27T00:00:00",
"ManufactureDate": "2018-05-27T00:00:00"
}]
}
Web IDE での私のビューのスニペットは次のとおりです。
<f:SimpleForm class="editableForm" columnsL="1" columnsM="1" editable="true" emptySpanL="4" emptySpanM="4" id="newEntitySimpleForm" labelSpanL="3" labelSpanM="3" layout="ResponsiveGridLayout" maxContainerCols="2" minWidth="1024" title="{= ${viewModel>/mode} === 'edit'? 'Edit API_MATERIAL_DOCUMENT_SRV': 'New API_MATERIAL_DOCUMENT_SRV'}">
<f:content>
<Label text="Posting Date" required="false"/>
<DatePicker name="PostingDate" value="{ path: 'PostingDate', type: 'sap.ui.model.type.DateTime'}" id="PostingDate_id" enabled="true" visible="true"/>
<Label text="Goods Movement Code" required="false"/>
<Input name="GoodsMovementCode" id="GoodsMovementCode_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" enabled="true" visible="true" value="{ path: 'GoodsMovementCode', type: 'sap.ui.model.odata.type.String' , constraints:{ maxLength:2 } }"/>
<Label text="Material" required="true"/>
<Input name="Material" id="MaterialDocument_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" enabled="{= ${viewModel>/mode} === 'edit'? false: true}" visible="true" value="{ **path: 'to_MaterialDocumentItem>Material'** , type: 'sap.ui.model.odata.type.String' , constraints:{ maxLength:10, nullable:false } }" cd:w5g.dt.context="/A_MaterialDocumentItem"/>
<Label text="Plant" required="false"/>
<Input name="Plant" id="Plant_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" enabled="true" visible="true" value="{ path: 'Plant', type: 'sap.ui.model.odata.type.String' , constraints:{ maxLength:2 } }"/>
このフォームをテストしたところ、Chrome 開発者ツールからエラー 400 Bad Request とともに次の情報を受け取りました。
PostingDate: "/Date(1536642000000)/", GoodsMovementCode: "1",…}
Batch:"7"
GoodsMovementCode:"1"
GoodsMovementType:"5"
Plant:"3"
PostingDate:"/Date(1536642000000)/"
QuantityInEntryUnit:"6"
StorageLocation:"4"
__metadata:
{type: "API_MATERIAL_DOCUMENT_SRV.A_MaterialDocumentHeaderType",…}
type:"API_MATERIAL_DOCUMENT_SRV.A_MaterialDocumentHeaderType"
uri:"/My187/sap/opu/odata/sap/API_MATERIAL_DOCUMENT_SRV/A_MaterialDocumentHeader('id-1536693644259-199')"
私の質問は:
- 検証済みの JSON に示されているように、「to_MaterialDocumentItem」を生成するバインディングを取得するにはどうすればよいですか?