OpenERP 用の Android アプリを作成しており、新しいセールス オーダーを作成しようとしています。ただし、必須フィールドの 1 つは Order Reference です。これは通常、シーケンスから生成されます。
xmlrpc 経由でこのシーケンスを取得する方法はありますか?
または、アプリで独自のシーケンスを作成する必要がありますか? ...しかし、Web クライアント経由で生成された注文参照と競合しないようにするにはどうすればよいでしょうか?
ありがとうございました。
特別なことは何もする必要はありません。セールス オーダーの内容でsale.order
のメソッドを呼び出すだけです。create
Web インターフェイスを使用してセールス オーダーを作成するときに気づいたように、参照フィールドには適切なシーケンス番号が自動的に入力されます。
これは、 が参照フィールド (技術的にはのフィールド)sale.order
にデフォルト値を持っているために発生します。デフォルト値は次のように機能します。sale.order
name
default_get
クライアントは、対応するモデル (_defaults
辞書から値を取得します) を呼び出すことによって、これらの値を取得します。その結果、何もする必要はありません。フィールドにcreate
値を指定せずに呼び出すname
だけで、UI の場合と同様に、システムがその値を有効なシーケンス番号に自動的に設定します。または、デフォルト値を前処理したり、UI の動作を正確に模倣したい場合は、default_get
XML-RPC 経由で自分自身を呼び出し、返された値を使用して に渡すパラメータを準備する必要がありますcreate
。
バージョンに関する注意: OpenERP の特定のバージョンについては触れていません。実際の動作は、バージョンによって少し異なる場合があります。ソースsale.order
でわかるように、OpenERP 6.1 では、モデルはまさに私が上で説明したことを行いました。ただし、OpenERP 7.0 では、(ユーザーが保存する前にキャンセルした場合) 使用されない可能性のあるシーケンス番号を消費しないように、ロジックがわずかに変更されました。ソースでわかるように、新しい番号。正味の効果は同じです。default_get
name
'/'
create