我正在为OpenERP制作Android应用,我正在尝试创建新的销售订单。然而,必需字段之一是Order Reference,它是从序列中正常生成的。
有没有办法通过xmlrpc获取此序列?
或者我是否必须在应用中制作自己的序列? ...但是,我怎样才能确保它不会与通过Web客户端生成的订单引用相对应?
谢谢。
答案 0 :(得分:2)
您不需要做任何特别的事情:只需使用销售订单的内容调用sale.order
的{{1}}方法即可。正如您在使用Web界面创建销售订单时注意到的那样,参考字段会自动填入正确的序列号。
这是因为create
具有参考字段的默认值(技术上是sale.order
的{{1}}字段)。默认值的工作方式如下:
default_get
来获取这些值(这将采用sale.order
字典中的值。因此,您无需执行任何操作:只需调用name
而不为_defaults
字段赋值,系统会自动将其值设置为有效的序列号,就像在UI中一样。或者,如果您想预处理默认值或完全模仿UI的功能,那么您应该通过XML-RPC自己调用create
并使用返回的值来准备要传递给{的参数。 {1}}。
版本说明:您没有提及任何特定的OpenERP版本,实际行为可能会有所不同,具体取决于版本。在OpenERP 6.1中,name
模型正如我上面所描述的那样,正如您在create中看到的那样。但是在OpenERP 7.0中,稍微修改了逻辑以避免使用可能永远不会使用的序列号(如果用户在保存之前取消):而不是在default_get
中生成新号码,create
字段已初始化如source所示,sale.order
方法会将default_get
方法替换为新号码。default。净效果是一样的。