on 08-04-2016 1:30 PM
Hi Experts,
i have a scenario where i am trying to get the values from oData service which i am successfully able to get in FIORI app, but when i try to update some value in app and trying to SAVE it i am getting the below error...
GET
PUT
Response error--
<?xml version="1.0" encoding="utf-8"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><code>SY/530</code><message xml:lang="en">Inline component is not defined or not allowed (HTTP PUT)</message><innererror><transactionid>C13C5AE6F199F1EBBE730050569C4F03</transactionid><timestamp>20160804121248.8830000</timestamp><Error_Resolution><SAP_Transaction>Run transaction /IWFND/ERROR_LOG on SAP NW Gateway hub system and search for entries with the timestamp above for more details</SAP_Transaction><SAP_Note>See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)</SAP_Note></Error_Resolution><errordetails/></innererror></error>
This is my code for my save Button Function.
function PostDoc2(){
hdpage.setBusy(true);
itmpage.setBusy(true);
matnrpage.setBusy(true);
vendpage.setBusy(true);
var serviceURI = url+"/sap/opu/odata/sap/ZPO_CHG_SRV/PO_HEADER_SET('"+txt_PrevPO.getValue()+"')?$expand=PO_Navigation/POCOND_NAVI";
OData.request({ requestUri: serviceURI,
headers:{"X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/atom+xml",
"DataServiceVersion": "2.0",
"X-CSRF-Token":"Fetch" },
method : "GET",
user: "xyz",
password: "123" ,
recognizeDates: true,
},
function (data, response){
console.log('DATA >>',data);
console.log('RESPONSE >>',data);
stat = 0;
check_fields ();
if (stat == 1) {
hdpage.setBusy(false);
itmpage.setBusy(false);
matnrpage.setBusy(false);
vendpage.setBusy(false);
} else {
header_xcsrf_token = response.headers['x-csrf-Token'];
var PostReq = "http://000.000.00.000:0000/sap/opu/odata/sap/ZPO_LGWZ_CHG_SRV/PO_HEADER_SET('"+txt_PrevPO.getValue()+"')";
var PostData = new sap.ui.model.json.JSONModel();
var LineItmArr = [] , POCOND_NAVI = [], results = [];
var LinesLength = oModel.oData.modelData.length;
var PricLength = aCondData2.length;
for (i = 0; i < LinesLength; i++){
results = [];
for (j = 0; j < aCondData2.length; j++){
var innerdata = aCondData2[j];
for (k = 0; k < innerdata.length ; k++){
if (oModel.oData.modelData[i]['LineItem'] == innerdata[k]['LineItem']) {
if (innerdata[k]['condtype'] !== '' && innerdata[k]['condval'] !== '') {
results.push({
ChangeId : '',
CondPUnt : '1',
CondStNo : '001',
CondType: innerdata[k]['condtype'],
CondValue: innerdata[k]['condval'],
ConditionNo : '',
Currency: currency.getValue(),
Exppurchaseorder : '',
ItmNumber : innerdata[k]['LineItem'],
PoItem : innerdata[k]['LineItem']
});
}
else{
results.push({
ChangeId : '',
CondPUnt : "0",
CondStNo : '',
CondType: innerdata[k]['condtype'],
CondValue: "0.000000000",
ConditionNo : '',
Currency: currency.getValue(),
Exppurchaseorder : '',
ItmNumber : innerdata[k]['LineItem'],
PoItem : innerdata[k]['LineItem']
});
}
}
}
}
checkMandatory();
if (stat == 1) {
hdpage.setBusy(false);
itmpage.setBusy(false);
matnrpage.setBusy(false);
vendpage.setBusy(false);
}
else {
var delvformat = '';
if (oModel.oData.modelData[i]['delvdate'] !== '') {
jQuery.sap.require("sap.ui.core.format.DateFormat");
var oDateFormat = sap.ui.core.format.DateFormat.getDateTimeInstance({pattern: "yyyy/MM/dd"});
var dateTemp = oModel.oData.modelData[i]['delvdate'];
delvformat = oDateFormat.format(new Date(dateTemp));
}
oModel.oData.modelData[i]['AccAss'] = oModel.oData.modelData[i]['AccAss'].replace(/\s/g,''); // Remove spaces
oModel.oData.modelData[i]['matgroup'] = oModel.oData.modelData[i]['matgroup'].replace(/\s/g,''); // Remove spaces
oModel.oData.modelData[i]['gl'] = oModel.oData.modelData[i]['gl'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['coststr'] = oModel.oData.modelData[i]['coststr'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['copamat'] = oModel.oData.modelData[i]['copamat'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['copacust'] = oModel.oData.modelData[i]['copacust'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['material'] = oModel.oData.modelData[i]['material'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['netprice'] = oModel.oData.modelData[i]['netprice'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['ordid'] = oModel.oData.modelData[i]['ordid'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['plant'] = oModel.oData.modelData[i]['plant'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['UOM'] = oModel.oData.modelData[i]['UOM'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['POQty'] = oModel.oData.modelData[i]['POQty'].replace(/\s/g,''); // Remove Space
oModel.oData.modelData[i]['copaSalDoc'] = oModel.oData.modelData[i]['copaSalDoc'].replace(/\s/g,''); // Remove Space
LineItmArr.push({
Acctasscat : oModel.oData.modelData[i]['AccAss'],
ChangeId : '',
CondPUnt : "0",
CondStNo : '',
CondType : '',
CondValue : "0.000000000",
Copa_Material : oModel.oData.modelData[i]['copamat'],
Costcenter : oModel.oData.modelData[i]['coststr'], // cc
Customer : oModel.oData.modelData[i]['copacust'],
DelDatcatExt : '',
DeleteInd : '',
DeliveryDate : delvformat,
Exppurchaseorder : '',
GlAccount : oModel.oData.modelData[i]['gl'], // gl
Material : oModel.oData.modelData[i]['material'],
MatlGroup : oModel.oData.modelData[i]['matgroup'],
NetPrice : oModel.oData.modelData[i]['netprice'],
Orderid : oModel.oData.modelData[i]['ordid'], // oi
POCOND_NAVI : results,
PeriodIndExpirationDate : '',
Plant : oModel.oData.modelData[i]['plant'],
PoItem : oModel.oData.modelData[i]['LineItem'],
PoUnit : oModel.oData.modelData[i]['UOM'],
Quantity : oModel.oData.modelData[i]['POQty'],
SalesDoc : oModel.oData.modelData[i]['copaSalDoc'],
ShortText : oModel.oData.modelData[i]['shorttext'],
StgeLoc : oModel.oData.modelData[i]['SrorageLocation'],
TaxCode : oModel.oData.modelData[i]['taxcode'],
TextId : 'F01',
TextLine : oModel.oData.modelData[i]['itmtext']
});
PostData = {
"CompCode" : ComCode.getValue(),
"CompCodeX" : "",
"CreatedBy" : createdby.getValue(),
"CreatedByX" : "",
"Currency" : currency.getValue() ,
"CurrencyX" : "",
"DeleteInd" : "",
"DeleteIndX" : "",
"DocType" : oDropd1.getValue().substr(0, 4),
"DocTypeX" : "",
"ExchRate": exrate.getValue() ,
"Exppurchaseorder": " ",
"Langu": "E",
"LanguX": "",
"Msg": "" ,
"PoNumber": "" ,
"PurGroup": PurGrp.getValue(),
"PurGroupX": "" ,
"PurchOrg": PurOrg.getValue(),
"PurchOrgX": "",
"Return_Msg": "" ,
"Text_ID": "" ,
"Text_Line": hText.getValue(),
"Vendor" : txt_vendor.getValue() ,
"VendorX" : "" ,
"hTextNote" : hTextNote.getValue(),
"CondNbtval" : CONDNBT.getValue(),
"PO_Navigation": LineItmArr
};
}
}
//oData POst
if (stat == 1) {
} else {
// Check oData Format is OK
var chk_lngth, chk_cond ;
chk_lngth = '';
chk_lngth = PostData.PO_Navigation.length;
for (k = 0; k < PostData.PO_Navigation.length; k++){
chk_cond = '';
chk_cond = PostData.PO_Navigation[k].POCOND_NAVI.length;
if (chk_cond == 0) {
PostData.PO_Navigation[k].POCOND_NAVI.push({
ChangeId : '',
CondPUnt : "0",
CondStNo : '',
CondType: '',
CondValue: "0.000000000",
ConditionNo : '',
Currency: currency.getValue(),
Exppurchaseorder : '',
ItmNumber : '',
PoItem : ''
});
}
}
//sap.m.MessageToast.show('LOG FOR xcsrf >>',header_xcsrf_token);
console.log('POST DATA >>',PostData);// PostData-- getting values from textfield in UI
console.log('LINEITEMARRAY >>',LineItmArr);// attributes loadded in variables array
console.log('POST REQ >>',PostReq);// this is the URL-- PostReq
OData.request({
requestUri: PostReq, // this is the URL-- PostReq
method: "PUT",
headers: { "X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/atom+xml",
"DataServiceVersion": "2.0",
"Accept": "application/atom+xml,application/atomsvc+xml,application/xml",
"X-CSRF-Token": header_xcsrf_token
},
user: "xyz",
password: "123",
data : PostData, // PostData-- getting values from textfield in UI
},
function (data, response){
console.log('Data POST Resp:l-',data, response);
hdpage.setBusy(false);
itmpage.setBusy(false);
matnrpage.setBusy(false);
vendpage.setBusy(false);
if(data['Msg'] == 'E'){
tptext.setText(data['Return_Msg']);
tptext.setDesign("Bold");
tp1.addStyleClass("colorRedText");
tp1.setTitle("Error in Posting Document ");
tp1.open(sap.ui.core.Popup.Dock.BeginCenter, sap.ui.core.Popup.Dock.RightTop);
}else{
tptext.setText(data['Return_Msg']);
tptext.setDesign("Bold");
tp1.setTitle("PO Doc # : " + data['Exppurchaseorder']);
tp1.open(sap.ui.core.Popup.Dock.BeginCenter, sap.ui.core.Popup.Dock.RightTop);
tp1.addStyleClass(".colorRedText");
clearLineitm();
clearPricing();
}
},
function (err) {
hdpage.setBusy(false);
itmpage.setBusy(false);
matnrpage.setBusy(false);
vendpage.setBusy(false);
sap.ui.commons.MessageBox.alert("Error Ocurred: " + ' ' + err.message, "", "Error", "");
}
); // oData POST Request
}
}
},
function (err) {
hdpage.setBusy(false);
itmpage.setBusy(false);
matnrpage.setBusy(false);
vendpage.setBusy(false);
sap.ui.commons.MessageBox.alert("Error Ocurred: " + ' ' + err.message, "", "Error", "");
});
}
Please point me out my mistake where it going wrong... Thanks in advance
HI Deepak,
To update please use the following code it will be simple than odata.request method.
previously i also used the same then shifted to this became simple.
var oModel = new sap.ui.model.odata.ODataModel(url,true)
oModel.update('/PATH', postdata, null,
function()
{
alert("Update successful");
},
function(){
alert("Update failed");
}
);
If you don't understand this please follow the link given below:
OData Write Support - UI Development Toolkit for HTML5 (SAPUI5) - SAP Library
search for the update in this link.
Hope you will get the solution.
Thanks,
Deepak.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
78 | |
9 | |
9 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.