Let's Create Records Faster

Odoo Experience 2018 / Developers

292 views
0 Likes
0 0

Share on Social Networks

Share Link

Use permanent link to share in social media

Share with a friend

Please login to send this presentation by email!

Embed in your website

Select page to start with

6. “ N o c o d e i s f a s t e r t h a n n o c o d e . - - M e r b M o t t o

3. H o w d i d w e m a k e i t ? B a t c h r e c o r d c r e a t i o n D e t e r m i n a t i o n o f d e p e n d e n t r e c o r d s X M L i d r e s o l u t i o n M a n y 2 m a n y a n d c o m p a n y - d e p e n d e n t f i e l d s

7. “ M a y b e w e s h o u l d f a c t o r o u t t h a t s t u f f i n s t e a d . - - S e l f

10. R e s u l t s I m p o r t 2 5 0 0 p a r t n e r s V a l i d a t e i n v o i c e ( 2 0 l i n e s ) 0 . 0 0 % 5 0 . 0 0 % 1 0 0 . 0 0 % 1 5 0 . 0 0 % M a k e c r e a t e ( ) w o r k i n b a t c h ( b e f o r e )

1. R a p h a e l C o l l e t • T h e " n e w A P I " g u y E X P E R I E N C E 2 0 1 8 L e t ' s C r e a t e R e c o r d s F a s t e r ! @ r c o - o d o o • @ R a p h a e l C o l l e t • r c o @ o d o o . c o m

14. R a p h a e l C o l l e t • A p i c u l t u r e d e v e l o p e r E X P E R I E N C E 2 0 1 8 T h a n k Y o u ! @ r c o - o d o o • @ R a p h a e l C o l l e t • r c o @ o d o o . c o m # o d o o e x p e r i e n c e

2. I m p o r t 2 5 0 0 p a r t n e r s L a p t o p R u n b o t 0 2 0 4 0 6 0 8 0 1 0 0 1 2 0 1 4 0 1 6 0 1 8 0 O d o o 1 2 . 0 O d o o 1 1 . 0 I m p o r t t i m e ( s e c o n d s )

13. O t h e r o p t i m i z a t i o n s b y X M O S e t t i n g o f c o m p a n y - d e p e n d e n t f i e l d s D e f a u l t o f c o m p a n y - d e p e n d e n t f i e l d s S e a r c h f o r r e c o r d s t o r e c o m p u t e R e s o l u t i o n o f X M L i d s i n i m p o r t T i m e z o n e s e l e c t i o n f i e l d M a r k i n g o f r e c o r d s t o r e c o m p u t e S e t t i n g o f m a n y 2 m a n y f i e l d s ( b e f o r e ) 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 I m p o r t t i m e ( s e c o n d s )

11. I n v o k e c r e a t e ( ) i n b a t c h D i r e c t l y , b y c a l l i n g c r e a t e ( ) w i t h a l i s t o f d i c t s . m o d e l . c r e a t e ( [ v a l s , . . . ] ) m o d e l . c r e a t e ( v a l s ) - > m o d e l . c r e a t e ( [ v a l s ] ) I n d i r e c t l y , b y w r i t i n g o n x 2 m a n y f i e l d s . r e c o r d s . w r i t e ( { ' s t u f f _ i d s ' : [ ( 0 , 0 , v a l s ) f o r v a l s i n v a l s _ l i s t ] , } )

8. D e t e r m i n e d e p e n d e n t r e c o r d s B e f o r e A f t e r O ( N ( 1 + K ) ) q u e r i e s O ( N + K ) q u e r i e s f o r r o w i n r o w s : l i n e = i n s e r t ( r o w ) l i n e . m o d i f i e d ( s e l f . _ f i e l d s ) l i n e . _ v a l i d a t e _ f i e l d s ( r o w ) f o r r o w i n r o w s : l i n e s + = i n s e r t ( r o w ) l i n e s . m o d i f i e d ( s e l f . _ f i e l d s ) l i n e s . _ v a l i d a t e _ f i e l d s ( r o w )

5. M a r k r e c o r d s t o r e c o m p u t e F o r e a c h c r e a t e d l i n e , w e i n v o k e d e f m o d i f i e d ( s e l f , f i e l d s ) : # d e t e r m i n e d e p e n d e n t f i e l d s t r i g g e r s = . . . # d e t e r m i n e d e p e n d e n t r e c o r d s , a n d m a r k t h e m f o r m o d e l , f i e l d , p a t h i n t r i g g e r s : t a r g e t = m o d e l . s e a r c h ( [ ( p a t h , ' i n ' , s e l f . i d s ) ] ) t a r g e t . _ r e c o m p u t e _ t o d o ( f i e l d ) E a c h a c c o u n t m o v e l i n e h a s 1 4 d e p e n d e n t f i e l d s , g r o u p e d b y 6 d i s t i n c t d e p e n d e n c y p a t h s .

12. D e f i n e c r e a t e ( ) i n b a t c h T h e u s u a l d e f i n i t i o n : n o t i n b a t c h @ a p i . m o d e l d e f c r e a t e ( s e l f , v a l s ) : . . . r e t u r n r e c o r d W i t h d e c o r a t o r @ a p i . m o d e l _ c r e a t e _ m u l t i : i n b a t c h @ a p i . m o d e l _ c r e a t e _ m u l t i d e f c r e a t e ( s e l f , v a l s _ l i s t ) : . . . r e t u r n r e c o r d s

4. T h e c a s e o f i n v o i c e v a l i d a t i o n V a l i d a t i o n c r e a t e s a c c o u n t m o v e l i n e s ; e a c h l i n e d o e s I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 2 4 ) S E L E C T " a c c o u n t _ m o v e _ l i n e " . i d F R O M " a c c o u n t _ m o v e " a s " a c c o u n t _ m o v e _ l i n e _ _ m o v e _ i d " , " a c c o u n t _ m o v e _ l i n e " W H E R E ( " a c c o u n t _ m o v e _ l i n e " . " m o v e _ i d " = " a c c o u n t _ m o v e _ l i n e _ _ m o v e _ i d " S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 2 4 ) S E L E C T " a c c o u n t _ m o v e " . i d F R O M " a c c o u n t _ m o v e " W H E R E ( " a c c o u n t _ m o v e " . " i d " i n ( 9 ) ) O R D E R B Y " a c c o u n t _ m o v e " . " d a t e " D E S C , " a c c o u n t _ m o v e " . " i d " D E S C S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 2 4 ) S E L E C T " a c c o u n t _ m o v e " . i d F R O M " a c c o u n t _ m o v e " W H E R E ( " a c c o u n t _ m o v e " . " i d " i n ( 9 ) ) O R D E R B Y " a c c o u n t _ m o v e " . " d a t e " D E S C , " a c c o u n t _ m o v e " . " i d " D E S C S E L E C T " a c c o u n t _ i n v o i c e " . i d F R O M " a c c o u n t _ i n v o i c e " W H E R E ( " a c c o u n t _ i n v o i c e " . " m o v e _ i d " i n ( 9 ) ) O R D E R B Y " a c c o u n t _ i n v o i c e " . " d a t e _ i n v o i c e " D E S C , " a c c o u n t _ i n v o i c e " S E L E C T i d F R O M a c c o u n t _ p a r t i a l _ r e c o n c i l e W H E R E c r e d i t _ m o v e _ i d i n ( 2 4 ) S E L E C T i d F R O M a c c o u n t _ p a r t i a l _ r e c o n c i l e W H E R E d e b i t _ m o v e _ i d i n ( 2 4 ) S E L E C T i d F R O M a c c o u n t _ a n a l y t i c _ l i n e W H E R E m o v e _ i d i n ( 2 4 ) I N S E R T I N T O a c c o u n t _ m o v e _ l i n e _ a c c o u n t _ t a x _ r e l ( a c c o u n t _ m o v e _ l i n e _ i d , a c c o u n t _ t a x _ i d ) V A L U E S ( 2 4 , 1 ) S E L E C T i d F R O M a c c o u n t _ a n a l y t i c _ l i n e W H E R E m o v e _ i d i n ( 2 4 ) S E L E C T " r e s _ c o m p a n y " . i d F R O M " r e s _ c o m p a n y " W H E R E ( " r e s _ c o m p a n y " . " p a r e n t _ i d " i n ( 1 ) ) O R D E R B Y " r e s _ c o m p a n y " . " s e q u e n c e " , " r e s _ c o m p a n y " . " n a m e " S E L E C T " a c c o u n t _ m o v e _ l i n e " . " i d " a s " i d " , " a c c o u n t _ m o v e _ l i n e " . " c r e d i t " a s " c r e d i t " , " a c c o u n t _ m o v e _ l i n e " . " p a y m e n t _ i d " a s " p a y m e n t _ i d " , " a c c o u n t _ m o v e _ l i n e " S E L E C T " r e s _ c o m p a n y " . i d F R O M " r e s _ c o m p a n y " W H E R E ( " r e s _ c o m p a n y " . " p a r e n t _ i d " i n ( 1 ) ) O R D E R B Y " r e s _ c o m p a n y " . " s e q u e n c e " , " r e s _ c o m p a n y " . " n a m e " S E L E C T a c c o u n t _ m o v e _ l i n e . i d F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E a c c o u n t _ m o v e _ l i n e . i d I N ( 2 4 ) A N D ( " a c c o u n t _ m o v e _ l i n e " . " c o m p a n y _ i d " I S N U L L O R ( " a c c o u n t _ m o v e _ l i n e "

9. T h e c a s e o f i n v o i c e v a l i d a t i o n I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " I N S E R T I N T O " a c c o u n t _ m o v e _ l i n e " ( " i d " , " c r e a t e _ u i d " , " c r e a t e _ d a t e " , " w r i t e _ u i d " , " w r i t e _ d a t e " , " a c c o u n t _ i d " , " a m o u n t _ c u r r e n c y " , " a n a l y t i c _ a c c o u n t _ i d " S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T " a c c o u n t _ m o v e _ l i n e " . i d F R O M " a c c o u n t _ m o v e " a s " a c c o u n t _ m o v e _ l i n e _ _ m o v e _ i d " , " a c c o u n t _ m o v e _ l i n e " W H E R E ( " a c c o u n t _ m o v e _ l i n e " . " m o v e _ i d " = " a c c o u n t _ m o v e _ l i n e _ _ m o v e _ i d " S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T " a c c o u n t _ m o v e " . i d F R O M " a c c o u n t _ m o v e " W H E R E ( " a c c o u n t _ m o v e " . " i d " i n ( 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 ) ) O R D E R B Y " a c c o u n t _ m o v e " . " d a t e " D E S C S E L E C T " m o v e _ i d " F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E " i d " I N ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T " a c c o u n t _ m o v e " . i d F R O M " a c c o u n t _ m o v e " W H E R E ( " a c c o u n t _ m o v e " . " i d " i n ( 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 , 1 2 ) ) O R D E R B Y " a c c o u n t _ m o v e " . " d a t e " D E S C S E L E C T " a c c o u n t _ i n v o i c e " . i d F R O M " a c c o u n t _ i n v o i c e " W H E R E ( " a c c o u n t _ i n v o i c e " . " m o v e _ i d " i n ( 1 2 ) ) O R D E R B Y " a c c o u n t _ i n v o i c e " . " d a t e _ i n v o i c e " D E S C , " a c c o u n t _ i n v o i c e " S E L E C T i d F R O M a c c o u n t _ p a r t i a l _ r e c o n c i l e W H E R E c r e d i t _ m o v e _ i d i n ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T i d F R O M a c c o u n t _ p a r t i a l _ r e c o n c i l e W H E R E d e b i t _ m o v e _ i d i n ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T i d F R O M a c c o u n t _ a n a l y t i c _ l i n e W H E R E m o v e _ i d i n ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) I N S E R T I N T O a c c o u n t _ m o v e _ l i n e _ a c c o u n t _ t a x _ r e l ( a c c o u n t _ m o v e _ l i n e _ i d , a c c o u n t _ t a x _ i d ) V A L U E S ( 6 4 , 1 ) , ( 6 5 , 1 ) , ( 6 6 , 1 ) , ( 6 7 , 1 ) , ( 6 8 , 1 ) , ( 5 9 , 1 ) , ( S E L E C T i d F R O M a c c o u n t _ a n a l y t i c _ l i n e W H E R E m o v e _ i d i n ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) S E L E C T " r e s _ c o m p a n y " . i d F R O M " r e s _ c o m p a n y " W H E R E ( " r e s _ c o m p a n y " . " p a r e n t _ i d " i n ( 1 ) ) O R D E R B Y " r e s _ c o m p a n y " . " s e q u e n c e " , " r e s _ c o m p a n y " . " n a m e " S E L E C T " a c c o u n t _ m o v e _ l i n e " . " i d " a s " i d " , " a c c o u n t _ m o v e _ l i n e " . " m o v e _ i d " a s " m o v e _ i d " , " a c c o u n t _ m o v e _ l i n e " . " a n a l y t i c _ a c c o u n t _ i d " a s " a n a l y t i c _ a c c o u n t _ i d " S E L E C T " r e s _ c o m p a n y " . i d F R O M " r e s _ c o m p a n y " W H E R E ( " r e s _ c o m p a n y " . " p a r e n t _ i d " i n ( 1 ) ) O R D E R B Y " r e s _ c o m p a n y " . " s e q u e n c e " , " r e s _ c o m p a n y " . " n a m e " S E L E C T a c c o u n t _ m o v e _ l i n e . i d F R O M " a c c o u n t _ m o v e _ l i n e " W H E R E a c c o u n t _ m o v e _ l i n e . i d I N ( 5 9 , 6 0 , 6 1 , 6 2 , 6 3 , 6 4 , 6 5 , 6 6 , 6 7 , 6 8 , 6 9 , 7 0 ) A N D ( " a c c o u n t _ m o v e _ l i n e "

Views

  • 292 Total Views
  • 0 Website Views
  • 292 Embedded Views

Actions

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Share count

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Embeds 1

  • 1 accounts.odoo.com