2016-07-23 5 views
0

すべてのPOSオーダーを更新しようとしていますが、何らかのエラーが発生した場合や強制的に実行を停止した場合は約50,000レコードです。その後、実行されたレコードの数は更新する必要がありますが、途中でスクリプトを停止するときにはレコードを格納していませんでした。 だから私は、それはすべてのそれらのレコードをロールバックしません、Pythonを使用してすべてのPOSオーダーを更新

@api.multi 
def update_all_amount(self): 
    for order in self.search([('copy_amount_total', '=', 0)]): 
     self._cr.execute("""update pos_order set copy_amount_total=%s where id = %s"""\ 
         % (str(order.amount_total), str(order.id))) 
      # print "\nupdated amount --- >", order.copy_amount_total, 
    print "success" 
+0

表示されないコードはデバッグできません。 [mcve]を作ってください。もしあなたが[ask]を読むと助けになるでしょう。 –

+0

私はコードについては言及していませんが、実行が強制的に停止したら、上記のコードを使用して更新されたレコードはロールバックされないようにしなければなりません。 –

答えて

0

ちょうどそれぞれの更新後にコミット入れ...レコードを更新するために使用しています

コード...私は、このためのいくつかの解決策を与えてくださいコミットされています。

@api.multi 
def update_all_amount(self): 
    for order in self.search([('copy_amount_total', '=', 0)]): 
     self._cr.execute("""update pos_order set copy_amount_total=%s where id = %s"""\ 
         % (str(order.amount_total), str(order.id))) 
      # print "\nupdated amount --- >", order.copy_amount_total, 
     self._cr.commit() 
    print "success" 
関連する問題