将循环结构转换为JSON-当使用odata.create时

2020-09-04 19:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好专家

在为odata创建实体集时遇到问题。

我正在将odata与元数据结合使用:

<键>

<属性名称="地址"类型="/img/IWBEP/GWSAMPLE_BASIC.CT_Address" Nullable =" false"/>

<属性名称=" BusinessPartnerID"类型=" Edm.String" Nullable =" false" MaxLength =" 10" sap:label ="业务伙伴ID" sap:creatable =" false" sap:updatable =" false" />

<属性名称=" CompanyName"类型=" Edm.String" Nullable =" false" MaxLength =" 80" sap:label =" Company"/>

<属性名称=" WebAddress"类型=" Edm.String" sap:label =" Web地址" sap:sortable =" false" sap:filterable =" false" sap:semantics =" url"/>

<属性名称=" EmailAddress"类型=" Edm.String" Nullable =" false" MaxLength =" 255" sap:label =" E-Mail" sap:semantics =" email"/>

<属性名称=" PhoneNumber"类型=" Edm.String" MaxLength =" 30" sap:label ="电话号码" sap:semantics =" tel"/>

<属性名称=" FaxNumber"类型=" Edm.String" MaxLength =" 30" sap:label ="传真号"/>

<属性名称=" LegalForm" Type =" Edm.String" MaxLength =" 10" sap:label ="法律形式"/>

<属性名称=" CurrencyCode"类型=" Edm.String" Nullable =" false" MaxLength =" 5" sap:label ="货币代码" sap:semantics =" currency-code"/>

<属性名称=" CreatedAt"类型=" Edm.DateTime" Precision =" 7" sap:label ="时间戳" sap:creatable =" false" sap:updatable =" false"/>

<属性名称=" ChangedAt" Type =" Edm.DateTime" Precision =" 7" ConcurrencyMode =" Fixed" sap:label =" Time Stamp" sap:creatable =" false" sap:updatable =" false"/img/>


地址如下:


ComplexType名称=" CT_Address">

<属性名称=" City"类型=" Edm.String" MaxLength =" 40" sap:label =" City" sap:semantics =" city"/>

<属性名称=" PostalCode"类型=" Edm.String" MaxLength =" 10" sap:label ="邮政编码" sap:semantics =" zip"/>

<属性名称="街道" Type =" Edm.String" MaxLength =" 60" sap:label =" Street" sap:semantics =" street"/>

<属性名称="建筑物" Type =" Edm.String" MaxLength =" 10" sap:label ="建筑物"/>

<属性名称=" Country"类型=" Edm.String" MaxLength =" 3" sap:label =" Country" sap:semantics =" country"/>

<属性名称=" AddressType"类型=" Edm.String" MaxLength =" 2" sap:label ="地址类型"/>



我创建了一个表单来从用户那里获取数据。 我将json模型绑定到如下形式:


{

" CompanyName":"",

" WebAddress":"",

" EmailAddress":"",

" PhoneNumber":"",

" FaxNumber":"",

"地址":{

"建筑物":"",

"街道":"",

" PostalCode":"",

"城市":"",

"国家":""

}

}

由于合作伙伴有地址。

我正在调用odata的create方法:

var json = this.getView()。getModel(" jsonModel");

this.getView()。getModel()。create('/BusinessPartnerSet',json,null,

函数(数据){

sap.m.messageToast("创建数据");

var rData = data;

},

函数(错误){

var e = error;

}

);

调用create方法时出现错误:

将循环结构转换为JSON -

如何将数据正确传递给odata以创建实体?

谢谢

阿比

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好专家

在为odata创建实体集时遇到问题。

我正在将odata与元数据结合使用:

<键>

<属性名称="地址"类型="/img/IWBEP/GWSAMPLE_BASIC.CT_Address" Nullable =" false"/>

<属性名称=" BusinessPartnerID"类型=" Edm.String" Nullable =" false" MaxLength =" 10" sap:label ="业务伙伴ID" sap:creatable =" false" sap:updatable =" false" />

<属性名称=" CompanyName"类型=" Edm.String" Nullable =" false" MaxLength =" 80" sap:label =" Company"/>

<属性名称=" WebAddress"类型=" Edm.String" sap:label =" Web地址" sap:sortable =" false" sap:filterable =" false" sap:semantics =" url"/>

<属性名称=" EmailAddress"类型=" Edm.String" Nullable =" false" MaxLength =" 255" sap:label =" E-Mail" sap:semantics =" email"/>

<属性名称=" PhoneNumber"类型=" Edm.String" MaxLength =" 30" sap:label ="电话号码" sap:semantics =" tel"/>

<属性名称=" FaxNumber"类型=" Edm.String" MaxLength =" 30" sap:label ="传真号"/>

<属性名称=" LegalForm" Type =" Edm.String" MaxLength =" 10" sap:label ="法律形式"/>

<属性名称=" CurrencyCode"类型=" Edm.String" Nullable =" false" MaxLength =" 5" sap:label ="货币代码" sap:semantics =" currency-code"/>

<属性名称=" CreatedAt"类型=" Edm.DateTime" Precision =" 7" sap:label ="时间戳" sap:creatable =" false" sap:updatable =" false"/>

<属性名称=" ChangedAt" Type =" Edm.DateTime" Precision =" 7" ConcurrencyMode =" Fixed" sap:label =" Time Stamp" sap:creatable =" false" sap:updatable =" false"/img/>


地址如下:


ComplexType名称=" CT_Address">

<属性名称=" City"类型=" Edm.String" MaxLength =" 40" sap:label =" City" sap:semantics =" city"/>

<属性名称=" PostalCode"类型=" Edm.String" MaxLength =" 10" sap:label ="邮政编码" sap:semantics =" zip"/>

<属性名称="街道" Type =" Edm.String" MaxLength =" 60" sap:label =" Street" sap:semantics =" street"/>

<属性名称="建筑物" Type =" Edm.String" MaxLength =" 10" sap:label ="建筑物"/>

<属性名称=" Country"类型=" Edm.String" MaxLength =" 3" sap:label =" Country" sap:semantics =" country"/>

<属性名称=" AddressType"类型=" Edm.String" MaxLength =" 2" sap:label ="地址类型"/>



我创建了一个表单来从用户那里获取数据。 我将json模型绑定到如下形式:


{

" CompanyName":"",

" WebAddress":"",

" EmailAddress":"",

" PhoneNumber":"",

" FaxNumber":"",

"地址":{

"建筑物":"",

"街道":"",

" PostalCode":"",

"城市":"",

"国家":""

}

}

由于合作伙伴有地址。

我正在调用odata的create方法:

var json = this.getView()。getModel(" jsonModel");

this.getView()。getModel()。create('/BusinessPartnerSet',json,null,

函数(数据){

sap.m.messageToast("创建数据");

var rData = data;

},

函数(错误){

var e = error;

}

);

调用create方法时出现错误:

将循环结构转换为JSON -

如何将数据正确传递给odata以创建实体?

谢谢

阿比

付费偷看设置
发送
3条回答
shere_lin
1楼 · 2020-09-04 20:43.采纳回答

嗨,阿比,

这篇文章有点老了,但在将数据发送到OData服务时遇到了同样的问题。 问题是在create中发送的数据格式错误。

期望的格式为{Building:"",Street:""},也可以创建一个新的JSONModel:

var oModel = new JSONModel({Bulding:"",Street:""})

并发送oData对象(oModel.getData())。

我希望这会有所帮助。

亲切的问候

亚历克斯

灬番茄
2楼-- · 2020-09-04 20:25

你好亚历克斯,

是的,是的,问题是我发送到oData的json格式。

我更正了两个json,如下所示,一个用于常规数据,另一个用于地址:

var generalData = {};

var地址= {};

然后我填充了数据:

generalData.CompanyName =表单字段中的值

generalData.WebAddress =表单字段中的值

generalData.EmailAddress =表单字段中的值

generalData.PhoneNumber =表单字段中的值

generalData.FaxNumber =表单字段中的值

Address.Building =表单字段中的值

Address.Street =表单字段中的值

Address.PostalCode =表单字段中的值

Address.City =表单字段中的值

Address.Country =表单字段中的值

Address.AddressType =表单字段中的值

最后我将地址分配给一般数据:

generalData.Address =地址

然后我将generalData传递给了oDataModel来创建。

谢谢,
阿比(Abhi)

何必丶何苦呢
3楼-- · 2020-09-04 20:45

请帮助我,即时通讯使用带有Odata的选择控件,

当我使用创建功能时:

obj.Sistema = this.getView()。byId(" Sistema")。getSelectedItem();

出现此错误:将圆形结构转换为JSON

一周热门 更多>