我正在为OpenERP制作Android应用程序,并试图创建新的销售订单。然而,其中一个必需字段是Order Reference,它通常是从序列中生成的。OpenERP - 如何通过XMLRPC创建新的销售订单时获取序列号
有没有办法通过xmlrpc来获得这个序列?
还是我必须在应用程序中创建自己的序列? ...但是,我怎样才能确保它不会与通过Web客户端生成的订单引用混淆?
谢谢。
我正在为OpenERP制作Android应用程序,并试图创建新的销售订单。然而,其中一个必需字段是Order Reference,它通常是从序列中生成的。OpenERP - 如何通过XMLRPC创建新的销售订单时获取序列号
有没有办法通过xmlrpc来获得这个序列?
还是我必须在应用程序中创建自己的序列? ...但是,我怎样才能确保它不会与通过Web客户端生成的订单引用混淆?
谢谢。
您不需要做任何特别的事情:只需拨打sale.order
的create
方法即可获得您的销售订单的内容。正如您在使用Web界面创建销售订单时注意到的,参考字段会自动填入适当的序列号。
发生这种情况是因为sale.order
对参考字段(sale.order
的name
的字段,技术上而言)具有默认值。默认值的工作方式如下:
default_get
(这将值从_defaults
字典获得结果的所有字段,你不需要做任何事情,只要调用:create
没有给出一个值的name
领域,系统将自动将其值设置为有效的序列号,就像在UI中一样。或者,如果您想要公开通过电子方式处理默认值或精确模拟UI的作用,那么您应该通过XML-RPC自己调用default_get
,并使用返回的值来准备要传递给create
的参数。
版本说明:您没有提及任何特定的OpenERP版本,实际行为可能因版本而异。在OpenERP 6.1中,sale.order
模型完全符合我在上面描述的内容,正如您在source中看到的那样。然而,在OpenERP 7.0中,逻辑被略微修改以避免消耗可能永远不会使用的序列号(如果用户在保存之前取消):代替在default_get
中生成新号码,name
字段被初始化为'/'
default和create
方法将其替换为新号码,如在source中所见。净效应是一样的。
非常感谢您的回答,这正是我需要的。目前我正在使用6.1,但了解7.0中的不同行为很有价值。谢谢 – micromanc3r 2013-03-22 08:42:24
这不是[android]相关的问题。 – agamov 2013-03-21 20:16:17
我删除了标签,即使对我来说这是一个[android]相关的问题...但我可以看到你的观点 – micromanc3r 2013-03-21 20:25:34
没问题,你到目前为止试过了什么?这是什么意思'从序列产生?我们在谈论什么样的“序列”? – agamov 2013-03-21 20:37:16