You are on page 1of 100

M10.

Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

UF2 - B1 Sistemes ERP-CRM. Explotaci i adequaci - I

!sidre " ix# i Mira$da !$stit t Mil# i Fo$ta$als d%!g alada

Sistemes de gesti emp esa ial

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

2& de mar' de 201( !sidre " ix# i Mira$da !$stit t Mil# i Fo$ta$als C). Emili *all+s, 0&.00 - !g alada /q est material est# protegit sota llic+$cia de Creati0e Commo$s B1-2C-S/ (.0 i 3s la maq eta dels materials e$ dese$0ol pame$t per l%!$stit t 45ert de Catal $6a, q e $a 0egada p 5licats sera$ accessi5les a l%apartat rec rsos de la 7e5 8ttp9))ioc.xtec.cat E$ cas de s ggerime$t i)o detecci d%error, pode i$:ormar a ig ixa;xtec.cat Castellano Este material est< protegido 5a=o lice$cia Creati0e Commo$s B1-2C-S/ (.0 6 es la maq eta de los materiales e$ desarrollo por el !$stit t 45ert de Catal $6a, q e $a 0e> p 5licados sera$ accesi5les e$ el apartado rec rsos de la 7e5 8ttp9))ioc.xtec.cat E$ caso de s gere$cia 6)o detecci$ de error, dirigir-se a ig ixa;xtec.cat Euskara Material 8a Creati0e Commo$s B1-2C-S/ (.0 5a5esa eta ered materiala? garat>e$ !$stit t 45ert de Catal $6a, 5e8i$ argitarat ta?o 7e5 8ttp9))ioc.xtec.cat !rado?i> $a 5ada eta ) edo errore dete?>ioa, ig ixa;xtec.cat >i$e$ =oa$ Galego Este material est< protexido 5aixo Creati0e Commo$s B1-2C-S/ (.0 eo modelo 3 o dese$0ol0eme$to de materiais para o !$stit t 45ert de Catal $6a, q e $8a 0e> p 5licado ser< accesi5le a secci$ de rec rsos do 8ttp9))ioc.xtec.cat 7e5. Se s xesti$ e ) o detecci$ de erros, i$dica ig ixa;xtec.cat

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

ndex de continguts
!$trod cci...............................................................................................................@ 1.Explotaci i adeq aci. 4pe$ERP9 El model........................................................ 1.1.Explotaci i adeq aci..................................................................................& 1.2.Aa BB d%4pe$ERP.......................................................................................10 Com ide$ti:icar les ta les q e co$te$e$ determi$ada i$:ormaciC.........10 Com :acilitar l%acc3s de $om3s lect ra a la 5ase de dadesC.....................1( Com accedir a PostgreSDA des d%aplicacio$s clie$tsC.............................1E 1.(.Bese$0ol pame$t de mFd ls e$ 4pe$ERP.................................................20 1.(.1.Bisse$6 de mFd ls am5 Bia................................................................21 Bisse$6 de classes am5 Bia.....................................................................21 Bisse$6 d%atri5 ts de classe am5 Bia.......................................................2@ /tri5 ts simples o 5#sics.....................................................................2@ /tri5 ts relacio$als.............................................................................(1 "e$eraci de mFd l 4pe$ERP des de Bia..............................................(G 1.(.2.Bisse$6 del model am5 P6t8o$...........................................................(& Estr ct ra d% $ mFd l..............................................................................(& !$icialit>aci del mFd l9 :itxer HHi$itHH.p6..............................................(E Bescripci del mFd l9 :itxer HHope$erpHH.p6..........................................(E Be:i$ici d%o5=ectes 4pe$ERP am5 P6t8o$.............................................-1 Iip s de camps....................................................................................-2 Iip s relacio$al related ..................................................................-( Iip s : $ctio$.................................................................................-@ Iip s propert6.................................................................................-& *alors per de:ecte................................................................................@0 Restriccio$s.........................................................................................@( 2.4pe$ERP9 Aa 0ista i el co$trolador.....................................................................@. 2.1.Me$Js..........................................................................................................@. 2.2.*istes...........................................................................................................G0 2.2.1./ccio$s 7i$do7..................................................................................G1 2.2.2.*istes :orm ..........................................................................................GG 2.2.(.*istes tree Kar5re)llistaL.........................................................................G 2.2.-.*istes cale$dar.....................................................................................&2 2.2.@.*istes grap8.........................................................................................&@ 2.2.G.*istes searc8........................................................................................&. 2.(.M+todes.......................................................................................................E2 2.(.1.M+todes 4RM.....................................................................................E( M+tode read....................................................................................EM+tode $ameHget...........................................................................E@ M+tode 5ro7se...............................................................................EG M+tode sel:.pool.get.......................................................................EG M+tode searc8.................................................................................E. M+tode create.................................................................................E& M+tode 7rite...................................................................................E& M+tode $li$?.................................................................................E& 2.(.2.M+todes o$Hc8a$ge.............................................................................EE

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

I!t oducci

U$a 0egada e:ect ada la impla$taci t+c$ica d% $ ERP, el programari =a 8a ria d%estar e$ co$dicio$s de ser tilit>at per l%orga$it>aci per do$ar sortida a les $ecessitats d%aq esta. PerF aixF $o acost ma a passar, do$cs les orga$it>acio$s, tot i q e e$ moltes ocasio$s s%adapte$ al m#xim a l%ERP, te$e$ $ecessitats $o s portades per l%ERP. Per aq est moti , per a tots els ERP es $ecessita pro:essio$als programadors q e sig i$ capa'os d%adeq ar-los a les $ecessitats de l%orga$it>aci. ! com q e 8i 8a $ gra$ 0e$tall d%ERP-CRM i 3s impossi5le a5astar les tec$ologies q e cadasc $ d%ells tilit>a, 8em 8ag t de decidir-$os per $, per d r a la pr#ctica allF q e cal :er e$ q alse0ol posta e$ explotaci d% $ ERP-CRM. El prod cte escollit 8a estat l%ERP-CRM de codi o5ert 4pe$ERP, e$ la se0a 0ersi G.1. /q esta $itat did#ctica est# desti$ada a i$trod ir-$os e$ l%arq itect ra M*C Kpatr model-0ista-co$troladorL :acilitada pel framework 4pe$45=ect e$ el q e es 5asa 4pe$ERP i s%8a estr ct rat e$ dos $ clis :ormati s. El primer $ cli :ormati MExplotaci i adequaci. OpenERP: El model.N t3 do5le o5=ecti . El primer, de c rta d rada, i$trod ir els co$ceptes 5#sics q e cal te$ir e$ compte e$ $ proc3s d%explotaci i adeq aci. El sego$, de llarga d rada, i$trod ir-$os e$ el disse$6 del model de dades e$ 4pe$45=ect i ll r impleme$taci e$ la 5ase de dades PostgreSDA. Com a pre#m5 l del sego$ o5=ecti , prese$tarem com 3s la 5ase de dades PostgreSDA correspo$e$t a $a empresa gestio$ada per 4pe$ERP i :acilitarem di0ersos m+todes d%acc3s. U$a 0egada co$eg em la 5ase de dades, e$s e$di$sarem e$ el disse$6 del model, i$icia$t-$os-8i am5 $a ei$a de diagramaci UMA, per passar posteriorme$t a descri re directame$t el model am5 el lle$g atge P6t8o$. El sego$ $ cli :ormati MOpenERP: La ista i el controlador. N e$s e$di$sa e$ el disse$6, 0ia OMA, de les di0erses 0istes q e proporcio$a 4pe$ERP K:orm laris, llistes, cale$daris, gr#:ics, me$Js,...L i e$ el disse$6 del co$trolador Km+todes q e impleme$te$ la lFgica de $egociL 0ia lle$g atge P6t8o$. /m5 tot aixF $o podem pas dir q e =a sig em experts e$ 4pe$ERP, $i molt me$6s. Estarem e$ disposici de disse$6ar mFd ls adapta5les a $ 4pe$ERP est#$dard, perF e$s ma$car# altres : $cio$alitats :acilitades per 4pe$45=ect9 8er+$cia - tilit>ada per l%adaptaci de mFd ls existe$ts, seg retat, c#rrega massi0a de dades, dese$0ol pame$t d%assiste$ts, ge$eraci de trad ccio$s idiom#tiq es, disse$6 d%i$:ormes, disse$6 de q adres de coma$dame$t i altres. El seg ime$t d%aq esta $itat dic#ctica press posa q e l%al m$e 3s co$eixedor de9 Aa impla$taci t+c$ica d%4pe$ERP. El se co$eixeme$t s%adq ireix a la $itat did#ctica 1 del mFd l pro:essio$al M!istemes de gesti empresarialN. El lle$g atge OMA. El se co$eixeme$t s%adq ireix a les $itats :ormati0es 1 i 2 del mFd l pro:essio$al MLlenguatges de marques i sistemes de gesti de la informaci". Aa programaci orie$tada a o5=ectes. El se co$eixeme$t s%adq ireix a les $itats

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

:ormati0es -, @ i G del mFd l pro:essio$al MProgramaciN. El lle$g atge P6t8o$. /ls apartats 5i5liogra:ia i adreces d%i$ter+s de la 7e5 8i tro5are re:er+$cies a materials re:ere$ts al lle$g atge P6t8o$. Per tal d%assolir $ 5o$ apre$e$tatge, cal est diar els co$ti$g ts e$ l%ordre i$dicat, se$se saltar-se cap apartat, i q a$ es :a re:er+$cia a alg $ a$$ex de la 7e5, adre'ar-s%8i i est diar-lo. U$a 0egada est diats els co$ti$g ts del material paper i del material 7e5, dese$0ol pe les acti0itats 7e5.

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

1. Explotaci i adequaci. "pe!ERP# El model.

A%explotaci i adeq aci de l%ERP d% $a orga$it>aci 3s $a tasca impresci$di5le, =a q e gara$teix q e el programari es ma$ti$g i e$ co$dicio$s de ser tilit>at per l%orga$it>aci per do$ar sortida a les se0es $ecessitats. Per poder-8o d r a terme, per $a 5a$da cal ide$ti:icar les $ecessitats Ktasca prFpia de co$s ltorsL i, per altra, te$ir $ co$eixeme$t pro: $d de l%ERP, ta$t e$ les : $cio$alitats q e :acilita Ktasca de co$s ltors i impla$tadorsL com e$ les qPestio$s t+c$iq es 0i$c lades a l%ERP Ktasca d%a$alistes i programadorsL. Aa $ostra tasca, com a programadors, co$sistir# e$ co$+ixer l%arq itect ra de l%ERP i les ei$es de dese$0ol pame$t a tilit>ar per poder :er el 0estit a mida q e $ecessita l%orga$it>aci. El gra$ 0e$tall d%arq itect res i ei$es 0i$c lades als ERP :a$ impossi5le e:ect ar $ apre$e$tatge est#$dard d%explotaci i adeq aci d%ERP i, per ta$t, e$s ce$trarem a clari:icar els p $ts cla s a te$ir e$ compte i els posarem e$ pr#ctica so5re la 0ersi G.1 d%4pe$ERP. A%4pe$ERP 3s $ programari de gesti empresarial dese$0ol pat so5re el framework 4pe$45=ect de tip s R/B KRapid #pplication $e elopmentL. Aa :acilitat dels e$tor$s R/B ra e$ q e el dese$0ol pame$t d%aplicacio$s 3s molt simple pel programador, de ma$era q e am5 poc es:or' es pot o5te$ir aplicacio$s d%altes prestacio$s. 4pe$45=ect :acilita di0ersos compo$e$ts q e permete$ co$str ir l%aplicaci9 Aa capa 4RM KO%&ect Relational 'appingL e$tre els o5=ectes P6t8o$ i la 5ase de dades PostgreSDA. El disse$6ador-programador $o e:ect a el disse$6 de la 5ase de dadesQ J$icame$t disse$6a classes, per les q als la capa 4RM d%4pe$45=ect $%e:ect ar# el mapat so5re el S"BB PostgreSDA. U$a arq itect ra M*C Kmodel-0ista-co$troladorL, o$ el model resideix e$ les dades de les classes disse$6ades am5 P6t8o$, la 0ista resideix e$ els :orm laris, llistes, cale$daris, gr#:ics... de:i$its e$ :itxers OMA i el co$trolador resideix e$ els m+todes de:i$its e$ les classes q e proporcio$e$ la lFgica de $egoci. U$ sistema de :l xos de tre5all o 7or?:lo7s. Bisse$6adors d%i$:ormes Facilitats de trad cci de l%aplicaci a di0ersos idiomes. Com 0eie , s$ molts els compo$e$ts d%4pe$45=ect a co$+ixer per poder adeq ar l%4pe$ERP a les $ecessitats de l%orga$it>aci, e$ cas q e les : $cio$alitats q e aporta 4pe$ERP, tot i ser moltes, $o sig i$ s :icie$ts. El $ostre o5=ecti 3s co$+ixer com es disse$6a i s%impleme$ta el model de dades e$ 4pe$45=ect. /5a$s, perF, apro: $direm e$ el co$eixeme$t de la 5ase de dades d% $a empresa d%4pe$ERP, am5 d es :i$alitats9

M10. Sistemes de gesti empresarial

&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Co$+ixer la relaci existe$t e$tre els se s eleme$ts Kta les i col m$esL i els eleme$ts q e o5ser0em e$ q alse0ol dels :orm laris i i$:ormes d%4pe$ERP. Sa5er com accedir a les dades de l%empresa ataca$t directame$t la 5ase de dades. U$a 0egada co$eg da l%estr ct ra d% $a 5ase de dades d%4pe$ERP, e$s e$di$sarem e$ el disse$6 del model e$ 4pe$ERP i 8o :arem e$ d es :ases9 1. Utilit>arem l%ei$a de diagramaci $ia q e possi5ilita la ge$eraci de mFd ls complets Kmodel-0ista-co$troladorL a partir d% $ diagrama UMA i a partir d%ella e$s i$iciarem e$ el disse$6 del model de dades d%4pe$ERP. 2. E$s e$di$sarem e$ el disse$6 del model de dades d%4pe$ERP tilit>a$t el lle$g atge P6t8o$.

1.1.

Explotaci i adequaci

Aa gra$ di0ersitat de : $cio$ame$ts de les empreses :a q e sig i altame$t impro5a5le q e $ ERP estig i ideat per do$ar sortida a totes les $ecessitats empresarials i, q a$ es detecta $a : $cio$alitat $o co5erta per l%ERP, 8i 8a dos cami$s per tro5ar-$e $a sol ci9 /deq ar l%ERP per do$ar resposta a les : $cio$alitats req erides. /deq ar el : $cio$ame$t de l%empresa a les : $cio$alitats :acilitades per l%ERP. Ri 8a, perF, $a tercer camS, 5asat e$ la com5i$aci dels dos cami$s a$teriors. Aa detecci de les : $cio$alitats de l%empresa $o s portades per l%ERP a impla$tar 3s $a de les tasq es pri$cipals e$ el proc3s de co$s ltoria. El :et de q e l%empresa ca$0iT el se : $cio$ame$t per adaptar-se a l%ERP, tot i sem5lar molt 5r sc, 3s $a sol ci q e s%adopta e$ moltes ocasio$s, so5retot q a$ els co$s ltors s$ capa'os de demostrar als respo$sa5les de l%orga$it>aci q e el $o : $cio$ame$t t3 clares a0a$tatges respecte els m+todes emprats act alme$t per l%empresa. Cal te$ir e$ compte q e, e$ ocasio$s, l%empresa pot 8a0er esta5lert els se s : $cio$ame$ts -e$ temps passats- coaccio$ada per les possi5ilitats del sistema i$:orm#tic 0ige$t, els q als 8a$ esde0i$g t, am5 el pas del temps, ma$eres de :er :o$ame$tals i i$toca5les e$ l%orga$it>aci. E$ aq estes ocasio$s, la ma esq erra dels co$s ltors i impla$tadors 3s :o$ame$tal per d r a terme la impla$taci de l%ERP am5 +xit. PerF $o sempre es pot adeq ar els m+todes de l%empresa a les : $cio$alitats :acilitades per l%ERP i, e$ co$seqP+$cia, es :a $ecessari adeq ar l%ERP, :et q e pot :er $ecessari9 Bese$0ol par mFd ls especS:ics q e es p g i$ aco5lar a l%ERP Retocar mFd ls K:orm laris i i$:ormesL de l%ERP E$ l%adeq aci d%ERP 3s :o$ame$tal gara$tir el correcte : $cio$ame$t de les adeq acio$s e$ les : t res act alit>acio$s de l%ERP. A%adeq aci d% $ ERP 0ia dese$0ol pame$t de mFd ls especS:ics es pot d r a terme, e$ pri$cipi, am5 q alse0ol lle$g atge de programaci i accedi$t directame$t a la 5ase de dades de l%ERP. Fer-8o aixS comporta i$co$0e$ie$ts9

M10. Sistemes de gesti empresarial

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

/ccedir directame$t a la 5ase de dades implica te$ir $ co$eixeme$t total de la 5ase de dades i de les relacio$s existe$ts e$tre els se s compo$e$ts, les q als pode$ ca$0iar e$ $a act alit>aci de l%ERP. Ri 8a ERP q e pro8i5eixe$ l%acc3s a la 5ase de dades e$ mode escript ra i e$ castig e$ el :et am5 la p+rd a del ser0ei de s port. MFd ls dese$0ol pats am5 $ lle$g atge de programaci :or# a l%ERP implica te$ir peces :ora de l%ERP, a $o ser q e sig em capa'os d%em lar la i$ter:Scie de l%ERP i d%i$trod ir les $o0es opcio$s a l%ar5re de me$Js de l%ERP. Per altra 5a$da, el retoc de mFd ls K:orm laris i i$:ormesL de l%ERP tam53 t3 i$co$0e$ie$ts9 2om3s 3s possi5le si disposem del codi :o$t de l%ERP Kopci 0#lida e$ programaris de codi o5ertL. Els retocs e:ect ats 8a$ de gara$tir la se0a co$ti$ Ttat e$ properes act alit>acio$s de l%ERP se$se $ecessitat de tor$ar-los a dese$0ol par. Els di0ersos i$co$0e$ie$ts prese$tats e$s porte$ a9 Co$+ixer i tilit>ar els m+todes de dese$0ol pame$t i)o retoc de mFd ls de l%ERP :acilitats pel :a5rica$t de l%ERP. E:ect ar els processos d%act alit>aci de dades Kaltes, 5aixes i modi:icacio$sL a tra03s de les regles de $egoci de l%ERP, q e te$e$ e$ compte totes les implicacio$s, i mai am5 accessos directes a la 5ase de dades. Cal te$ir e$ compte, tam53, q e e$ ocasio$s pot ser co$0e$ie$t accedir a les dades e$ mode co$s lta per a extre re i$:ormaci i, e$ aq ests casos, te$i$t co$eixeme$t de l%estr ct ra de la 5ase de dades, l%acc3s directe a la 5ase de dades pot ser adeq at, am5 la preca ci q e l%estr ct ra de la 5ase de dades pot ca$0iar e$ : t res act alit>acio$s de l%ERP. $ua! l%o ga!it&aci !ecessita i!'o mes que l%ERP !o 'acilita... Si la $ecessitat dels i$:ormes 3s p $t al, 3s per:ectame$t lScit dese$0ol par-los am5 q alse0ol ei$a, tot accedi$t directame$t a la 5ase de dades, i exec tar-los per aco$seg ir el res ltat esperat. 2o te$im cap $ecessitat d%i$corporar-los com a opcio$s de me$J de l%ERP $i de g ardar-los per posteriors exec cio$s, i, e$ cas de g ardar-los, som co$scie$ts q e despr3s d%8a0er act alit>at l%ERP, pot ser $ecessari re0isar el se disse$6 da0a$t possi5les ca$0is e$ la 5ase de dades. Si la $ecessitat dels i$:ormes 3s periFdica, 3s lFgic dese$0ol par-los am5 les ei$es q e :aciliti l%ERP, tilit>a$t les regles de $egoci de l%ERP, i i$corporar-los com a $o0es opcio$s de me$J di$s l%ERP. E$ aq est cas, da0a$t $a act alit>aci de l%ERP, 3s molt possi5le q e les regles de $egoci e0ocades co$ti$ T$ existi$t Kmalgrat 8agi ca$0iat l%estr ct ra de la 5ase de dadesL i, e$ co$seqP+$cia, el $ostre i$:orme co$ti$ T : $cio$a$t. E$ ocasio$s, di$s les orga$it>acio$s existeixe$ perso$es q e, possi5leme$t per ma$ca$ces de 5o$es sol cio$s B! 0i$c lades a l%ERP, $ecessite$ accedir a la 5ase de dades per extre re i$:ormaci Kmode co$s ltaL i, des de les ei$es o:im#tiq es q e domi$e$ K5ases de dades o:im#tiq es i : lls de c#lc lL dese$0ol par i$:ormes i q adres de coma$dame$t (das)%oardsL adeq ats a les se0es $ecessitats. E$ aq est cas, l%acc3s

M10. Sistemes de gesti empresarial

10

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

directe Kmode co$s ltaL a la 5ase de dades tam53 3s lFgic, tot i q e l% s ari 8a de ser co$scie$t q e els se s m $tatges es pode$ 0e re a:ectats da0a$t $a act alit>aci de l%ERP. Els rao$ame$ts a$teriors e$s porte$ a les segPe$ts co$cl sio$s9 1. Cal co$+ixer l%estr ct ra de la 5ase de dades de l%ERP i possi5ilitar-8i accessos e$ mode co$s lta, per extre re%$ i$:ormaci q e p g i ser gestio$ada des d%ei$es exter$es. 2. Cal co$+ixer la gesti de regles de $egoci de l%ERP. (. Cal co$+ixer les ei$es recoma$ades pel :a5rica$t de l%ERP per al dese$0ol pame$t i)o retoc de mFd ls de l%ERP, :et q e pot a$ar acompa$6at del co$eixeme$t de lle$g atges de programaci.

1.2.

(a B) d%"pe!ERP

Aa gesti d% $a empresa pot :er $ecessari, e$ $ determi$at mome$t, l%acc3s a la 5ase de dades de l%ERP per tal d%o5te$ir i$:ormaci e$ $ :ormat $o :acilitat l%ERP. Per aixF, 3s importa$t co$+ixer el disse$6 de la BB de l%ERP i, e$ el $ostre cas, de l%4pe$ERP. E$ 4pe$ERP $o 8i 8a $ disse$6 explScit de la 5ase de dades, si$ q e la 5ase de dades d% $a empresa d%4pe$ERP 3s el res ltat del mapatge del disse$6 de classes de l%ERP cap el S"BB PostgreSDA q e 3s q i proporcio$a la persist+$cia $ecess#ria per als o5=ectes. E$ 4pe$ERP el model de dades es descri i es ma$ip la a tra03s de les classes i els o5=ectes de:i$its am5 el lle$g atge P6t8o$. E$ co$seqP+$cia, 4pe$ERP $o :acilita cap disse$6 e$titat-relaci so5re la 5ase de dades d% $a empresa $i tampoc cap diagrama del model relacio$al. 2o o5sta$t aixF, si e$s i$teressa disposar d% $ model relacio$al, es tro5e$ moltes ei$es q e e$s el pode$ co$str ir a partir de la 5ase de dades impleme$tada e$ el S"BB PostgreSDA. /ls a$$exos de la 7e5 tro5are l%apartat MEi$es per a= dar-$os a co$+ixer la BB d%4pe$ERPN, am5 les q e podrem o5te$ir diagrames parcials relacio$als de la 5ase de dades d%4pe$ERP.

Com ide!ti'ica les taules que co!te!e! dete mi!ada i!'o maci*
D a$ sorgeix la $ecessitat de detectar la ta la o les ta les o$ resideix determi$ada i$:ormaci, 3s per q + es co$eix l%exist+$cia d%aq esta i$:ormaci gestio$ada des de l%ERP i, per ta$t, es co$eix alg $ :orm lari de l%ERP a tra03s del q al s%i$trod eix la i$:ormaci.

M10. Sistemes de gesti empresarial

11

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

4pe$ERP possi5ilita, mit=a$'a$t els clie$ts 7e5 i "IU, rec perar el $om de la classe P6t8o$ q e de:i$eix la i$:ormaci q e s%i$trod eix a tra03s d% $ :orm lari i el $om de la dada mem5re de la classe correspo$e$t a cada camp del :orm lari. /q esta i$:ormaci permet arri5ar a la ta la i col m$a a:ectades, te$i$t e$ compte9 El $om de les classes P6t8o$ d%4pe$ERP sempre s$ e$ mi$Jsc les Ks% tilit>a el g i 5aix per :er llegi5le els mots compostosL i seg eix la $ome$clat ra nom_del_modul.nom1.nom2.nom3... o$ s% tilit>a el p $t per i$dicar $ cert $i0ell de =erarq ia. Cada classe P6t8o$ d%4pe$ERP 3s mapada e$ $a ta la de PostgreSDA am5 moltes possi5ilitats q e el se $om coi$cideixi am5 el $om de la classe, tot s 5stit i$t els p $ts per g io$s 5aixos. El $om dels atri5 ts d% $a classe P6t8o$ sempre s$ e$ mi$Jsc les Ks% tilit>a el g i 5aix per :er llegi5le els mots compostosL. Cada dada mem5re d% $a classe P6t8o$ d%4pe$ERP q e sig i persiste$t K $a classe pot te$ir dades mem5res calc lades $o persiste$tsL 3s mapat com $ atri5 t e$ la correspo$e$t ta la de PostgreSDA am5 el mateix $om. +oms de classes "pe!ERP i co espo!e!ts taules Postg eS$( Aa classe P6t8o$ sale.order d%4pe$ERP est# pe$sada per descri re la cap'alera de les coma$des de 0e$da i la correspo$e$t ta la a PostgreSDA 3s sale_order. Aa classe P6t8o$ sale.order.line d%4pe$ERP est# pe$sada per descri re les lS$ies de les coma$des de 0e$da i la correspo$e$t ta la a PostgreSDA 3s sale_order_line. Aa classe P6t8o$ sale.order d%4pe$ERP t3 $a dada mem5re a$ome$ada data_order i, e$ co$seqP+$cia, la ta la sala_order de PostgreSDA co$t3 l%atri5 t data_order. E$ co$seqP+$cia, co$eixe$t el $om de la classe i el $om de la dada mem5re, 3s molt possi5le co$+ixer el $om de la ta la i de la col m$a correspo$e$ts. Es pot co$:ig rar els clie$ts 7e5 i "IU per a q e i$:ormi$ del $om de la classe i de la dada mem5re e$ sit ar el ratolS dam $t les etiq etes dels camps dels :orm laris9 E$ el clie$t "IU, cal acti0ar l%opci #&uda*#cti a les a&udes del mode de depuraci. E$ el clie$t 7e5 de la 0ersi G.0 $o calia acti0ar res i sempre q e l% s ari sit a0a el p $ter del ratolS dam $t les etiq etes del camp, apareixia la i$:ormaci d%a= da, :et q e era de gra$ a= da per als dese$0ol padors perF q e co$:o$ia als s aris :i$als. Per aixF, la 0ersi G.1 del clie$t 7e5 3s similar al clie$t "IU i cal acti0ar la : $cio$alitat am5 l%opci #cti ar mode de desen olupador de la pa$talla de di#leg q e apareix e$ pr3mer el 5ot +uant a de la part s perior dreta del clie$t 7e5. Aa :ig ra 1-1 mostra la i$:ormaci q e :acilita el clie$t "IU e$ posar el ratolS so5re l%etiq eta de dos camps del :orm lari Comandes de ,enda. Podem o5ser0ar-8i q e9 Per l%etiq eta $ata o5te$im q e es tracta del camp data_order de l%o5=ecte sale.order i, per ta$t, si $ecessitem e:ect ar $a co$s lta so5re la 5ase de dades accedi$t a la data de la coma$da, sa5em q e 8a rem d%a$ar al camp data_order de la ta la sale_order de la 5ase de dades de PostgreSDA. Per l%etiq eta -enda te$im molta m3s i$:ormaci do$cs es tracta del camp relacio$al

M10. Sistemes de gesti empresarial

12

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

shop_id de l%o5=ecte sale.order q e :a re:er+$cia a la relaci sale.shop. /m5 aq esta i$:ormaci, si $ecessitem e:ect ar $a co$s lta a la 5ase de dades per accedir a la descripci de la 5otiga correspo$e$t a la coma$da, sa5em q e 8a rem d%a$ar al camp shop_id de la ta la sale_order i a tra03s d%aq est camp, esta5lir $ join am5 la cla prim#ria de la ta la sale_shop. U$ clie$t 7e5 am5 el mode dese$0ol pador acti0at $o $om3s :acilita i$:ormaci e$ posar el ratolS so5re l%etiq eta dels camps del :orm lari, si$ q e, a m3s, al costat del tStol de q alse0ol :orm lari o5ert, apareix $ desplega5le, com mostra la :ig ra 1-2, am5 di0erses opcio$s q e pode$ a= dar-$os com a dese$0ol padors de mFd ls d%4pe$ERP.
.igura /0/. #&uda del mode de depuraci que facilita el client G-1 en situar el ratol2 damunt les etiquetes dels camps en un formulari

.igura /03. #&udes en el client we% am% el mode desen olupador acti at

M10. Sistemes de gesti empresarial

1(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Aa :ig ra 1-2 mostra com, per de:ecte, l%opci del desplega5le q e apareix e$ te$ir el mode dese$0ol pador acti0at, 3s $e%ug ,iew 4... am5 $ 0alor al costat del sSm5ol coixi$et, q e correspo$ al $Jmero ide$ti:icador de la 0ista q e estem 0is alit>a$t. Aa resta d%opcio$s s$9 ,iew .ields, q e permet o5te$ir $a llista dels camps de la 0ista act al, am5 els par#metres correspo$e$ts. .ields ,iew Get, q e mostra l%OMA ge$erat per mostrar la 0ista act al. Cal te$ir e$ compte q e si la 0ista s%8a ge$erat a partir de di0erses 0istes OMA 8ereta$t $es d%altres, aq S es mostra el res ltat :i$al. 'anage ,iews, q e mostra $ llistat de les 0istes relacio$ades am5 la 0ista act al. Bes d%aq est p $t es pode$ crear $o0es 0istes, elimi$ar-les o editar-les, e$cara q e 3s recoma$a5le tilit>ar aq esta : $cio$alitat $om3s per a co$s lta i realit>ar les modi:icacio$s crea$t $o s mFd ls, per $o perdre les modi:icacio$s da0a$t act alit>acio$s de l%ERP. Edit -ree,iew, Edit !earc),iew5 Edit #ction i Edit 6orkflow q e ser0eixe$ per accedir a l%edici de les 0istes relacio$ades am5 la 0ista act al. Si estem edita$t $ registre Kmode :orm lariL o co$s lta$t-lo Kmode p#gi$aL, apareix $a $o0a opci ,iew Log (perm7read8, q e mostra i$:ormaci relati0a al registre act al.

Com 'acilita l%acc,s de !om,s lectu a a la -ase de dades*


Aes empreses acost me$ a te$ir, e$tre els se s respo$sa5les, s aris :i$als q e pode$ e:ect ar co$s ltes $o pre0istes a la 5ase de dades i q e, per aco$seg ir-8o, pode$ tilit>ar ei$es gr#:iq es per ela5orar co$s ltes o :i$s i tot, si s$ pro espa0ilats, exec tar co$s ltes SDA des d% $a co$sola d%acc3s. A%acc3s a la 5ase de dades per part d% s aris :i$als 8a de ser de $om3s lect ra. E$ aq esta sit aci, cal :acilitar als s aris q e correspo$g i, $ s ari per accedir al S"BB PostgreSDA am5 els pri0ilegis d%acc3s, e$ mode co$s lta, als o5=ectes de la 5ase de dades q e correspo$g i. S%aco$sella seg ir els segPe$ts passos9 1. C ea els usua is de S.B) am- les co!t ase!/es que co espo!gui!. Per aco$seg ir-8o, prFpia co$sola text PostgreSDA am5 $ S"BB, creem els s tilit>em $a ei$a d%admi$istraci de PostgreSDA K pg#dmin o la al psql si e$s 8i mo0em am5 soltesaL i co$$ectats al S"BB s ari am5 pri0ilegi de creaci d% s aris Krol CREATEROLEL del aris de S"BB am5 les co$trase$6es q e correspo$g i$.

E$ $a impla$taci d%4pe$ERP o$ cada s ari de l%empresa t3 $ i$ici de sessi KloginL especS:ic, sem5la adeq at tilit>ar el mateix $om d% s ari de l%4pe$ERP per a crear $ s ari d%acc3s al S"BB. Aa co$trase$6a pot ser, i$icialme$t la mateixa, tot i q e l% s ari 8a r# de ser co$scie$t q e el ca$0i de co$trase$6a e$ l%ERP $o a:ectaria a la co$trase$6a de PostgreSDA $i 0ice0ersa. Aa :ig ra 1-( mostra la pa$talla q e :acilita pg#dmin per crear $ $o s ari K5ot sec $dari del ratolS dam $t del $ode Login Roles de l%O%&ect 9rowser i seleccio$ar l%opci :ew Login RoleL.

M10. Sistemes de gesti empresarial

1-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

)isti!ci e!t e usua is0 g ups d%usua is i ols e! Postg eS$( A%ei$a pg#dmin $o mostra, per e$lloc, els co$ceptes usuaris i grups d;usuaris i e$ ca$0i mostra els termes Login Role i Group Role. E$ ca$0i, si :em $a llada a la doc me$taci del lle$g atge SDA de PostgreSDA, 0e rem l%exist+$cia de les i$str ccio$s create user Kper a la creaci d% s arisL i create group Kper a la creaci de gr ps d% s arisL. PostgreSDA tilit>a0a els co$ceptes s aris i gr ps d% s aris e$ 0ersio$s a$teriors a la &.1 i e$ aq esta 0ersi 0a s 5stit ir aq ests co$ceptes pel co$cepte de rol am5 d es 0aria$ts Krol q e pot i$iciar sessi - Login Role- i rol q e $o pot i$iciar sessi - Group Role-L i 0a i$trod ir la $o0a i$str cci SDA create role. Per ma$te$ir la compati5ilitat am5 el =oc d%i$str ccio$s SDA de les 0ersio$s a$teriors a la &.1, 0a ma$te$ir l%exist+$cia de les i$str ccio$s create user i create group, de ma$era q e create user eq i0al a la creaci d% $ Login Role i create group eq i0al a la creaci d% $ Group Role.
.igura /0<. Pantalla de pg#dmin per crear un nou usuari (Login Role8

2. )o!a els p i1ilegis d%acc,s adequats als usua is que co espo!gui!. A%ei$a pg#dmin Kla 0ersi 1.&.- de & de = $6 de 200& i$stalVlada per 4pe$ERP G.1 i la 0ersi 1.1-.( de 1 de = $6 del 2012L t3 certes limitacio$s a l%8ora d%assig$ar pri0ilegis, do$cs $o permet l%assig$aci a Login Role i, e$ co$seqP+$cia, e$s 0e rSem o5ligats a crear $ Group Role al q e assig$arSem els Login Role i co$cedirSem pri0ilegis als Group Role. U$ altre : $cio$ame$t $ pel de:ect s e$ aq estes 0ersio$s de pg#dmin radica e$ q e $a 0egada creat $ Group Role, cal sit ar-se dam $t el $ode de de:i$ici del ser0idor i procedir a re:rescar les dades, per a q e els o5=ectes de les di0erses 5ases de dades del ser0idor p g i$ co$cedir pri0ilegis al $o Group Role.

M10. Sistemes de gesti empresarial

1@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A%assig$aci de pri0ilegis s%e:ect a so5re cada o5=ecte i, 0ia pg#dmin, per do$ar pri0ilegis a $ o5=ecte determi$at, cal sit ar-se dam $t el $om de l%o5=ecte, di$s l;O%&ect 9rowser5 editar les se0es propietats K0ia 5ot sec $dari del ratolSL i a$ar a la pesta$6a Pri ileges. Els pri0ilegis es pode$ co$cedir a $i0ell de 5ase de dades Kper permetre o $o l%acc3sL, a $i0ell d%esq ema Kper tilit>ar-lo i)o crear-8i o5=ectesL, a $i0ell d%o5=ectes de la 5ase de dades Kta les, 0istes, : $cio$s, disparadors,...L i :i$s i tot a $i0ell de col m$es de les ta les i 0istes. Per do$ar pri0ilegis d%acc3s a col m$es, cal sit ar-se dam $t la col m$a i editar les se0es propietats. PostgreSDA 0a i$corporar la possi5ilitat d%assig$ar pri0ilegis a $i0ell de col m$a, e$ la 0ersi &.-. Cal te$ir-8o prese$t per si 8em i$stalVlat el ser0idor PostgreSDA q e i$corpora la distri5 ci d%4pe$ERP, do$cs es tracta d% $a 0ersi &.(. Aa 0ersi 1.&.de l%ei$a pg#dmin $o permet assig$ar pri0ilegis a $i0ell de col m$a, do$at q e 3s coet#$ia de PostgreSDA &.(. Aes 0ersio$s de pg#dmin coet#$ies de ser0idors PostgreSDA &.- o posteriors, mostre$ desacti0ades les opcio$s de co$cessi de pri0ilegis a $i0ell de col m$a si el ser0idor PostgreSDA $o :acilita la : $cio$alitat. E$ cas d%8a0er de do$ar pri0ilegis a $i0ell de col m$es e$ $ ser0idor q e $o :acilita la : $cio$alitat, es pot crear $a 0ista q e accedeixi a les col m$es i do$ar pri0ilegis d%acc3s a la 0ista de:i$ida. Aa :ig ra 1-- mostra la limitaci de pg#dmin per co$cedir pri0ilegis als Login Role. / la :ig ra o5ser0em la co$cessi de pri0ilegis a $i0ell de la 5ase de dades Empresa7=OC i 0eiem q e 8i 8a dos Login Role creats Kioc i pgotera8 i, e$ ca$0i, e$ el desplega5le Role de la pesta$6a Pri ileges de la 5ase de dades Empresa7=OC, $om3s apareix el rol pu%lic Kq e es re:ereix a tot8omL. Si ti$g 3ssim Group Role de:i$its, aq ests sS q e 8i apareixerie$.
Fig ra 1--. Pantalla de pg#dmin per concedir pri ilegis d;acc>s a un %ase de dades

Per ta$t, si 0olem assig$ar pri0ilegis directame$t a $ s ari K Login RoleL 8a rem d% tilit>ar la i$str cci SDA grant des de la co$sola text al psql.

M10. Sistemes de gesti empresarial

1G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Ws altame$t recoma$a5le :er $a llada a la part de la doc me$taci de PostgreSDA re:ere$t a l%assig$aci de pri0ilegis. Aa doc me$taci de PostgreSDA es tro5a a 8ttp9))777.postgresql.org)docs) i per $osaltres t3 i$ter+s :er $a llada als capStols 20 K$ata%ase RolesL i @.G KPri ilegesL, aixS com a les ordre SDA grant, revo e i create role. U$a ma$era r#pida de 0e re, des de pg#dmin, els pri0ilegis co$cedits a $ o5=ecte, 3s sit ar-$os dam $t de l%o5=ecte i 0e re, a la part dreta de la pa$talla, el co$ti$g t de la propietat /CA K#ccess Control ListL, com mostra la :ig ra 1-@.
.igura /0?. Propietat #CL so%re una %ase de dades de Postgre!+L

Aa :ig ra 1-@ mostra el co$ti$g t de la llista /CA so5re la 5ase de dades Empresa7=OC. Podem sit ar-$os dam $t q alse0ol o5=ecte de la 5ase de dades Kesq ema, ta la, 0ista, col m$a,...L i ti$drem acc3s a la llista /CA dels pri0ilegis co$cedits so5re aq ell o5=ecte. E$ el cas de la :ig ra 1-@, o5ser0em com la 5ase de dades Empresa7=OC $o t3 de:i$ida la llista /CA, i aixF 3s $ pro5lema, do$cs e$ pri$cipi permet l%acc3s a

M10. Sistemes de gesti empresarial

1.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

q alse0ol s ari. Per a q e $o 8i 8agi cap pri0ilegi d%acc3s, la llista /CA 8a ria de mostrar el 0alor !". Podem aco$seg ir-8o tot edita$t les propietats de la 5ase de dades, $a0ega$t :i$s la pesta$6a Pri ileges i a:egir el rol pu#lic se$se arri5ar-li a co$cedir cap pri0ilegi, de ma$era q e e$ e$registrar el ca$0i, 0e rem q e el 0alor d%/CA 3s !". U$ p $t molt importa$t a te$ir e$ compte e$ la gesti de pri0ilegis e$ PostgreSDA 3s co$+ixer els pri0ilegis existe$ts, de :orma a tom#tica, despr3s de la creaci d% $a 5ase de dades. Cal sa5er9 Aa 5ase de dades es crea am5 /CA $o de:i$ida, :et q e permet q e q alse0ol s ari del ser0idor PostgreSDA p g i o5rir sessi e$ aq ella 5ase de dades. PostgreSDA :acilita el rol pu#lic q e e$glo5a a tots els s aris de :orma a tom#tica. PostgreSDA :acilita, a totes les 5ases de dades, l%esq ema pu#lic, propietat de l% s ari q e 8a creat la 5ase de dades, i am5 pri0ilegis de tilit>aci de l%esq ema KusageL i creaci d%o5=ectes K createL al rol pu#lic K3s a dir, a q alse0ol s ariL. E$ l%exemple q e a$em prese$ta$t, si o5ser0em la propietat /CA de l%esq ema pu#lic de la 5ase de dades Empresa7=OC, o5ser0arem el 0alor !ioc$%C&ioc' $%C&ioc" q e 8em de llegir com9 l% s ari ioc t3 pri0ilegis %C Kusage(createL i el rol pu#lic K$o apareix a l%esq erra del sSm5ol XL t3 pri0ilegis %C Kusage(createL. E$ am5ds casos 8a$ estat co$cedits per l% s ari ioc K0alor q e apareix despr3s del sSm5ol &. U$ s ari q alse0ol, pel :et de pert#$6er al rol pu#lic, t3 acc3s %C so5re l%esq ema pu#lic de q alse0ol 5ase de dades, i aixF implica q e9 Pot 0e re la relaci K$omsL de tots els o5=ectes existe$ts a l%esq ema9 ta les, 0istes, ... Pot 0e re la descripci de q alse0ol o5=ecte9 ta les, 0istes,... Pot crear $o s o5=ectes di$s l%esq ema. 2o pot accedir als co$ti$g ts de les ta les $i 0istes, a $o ser q e el propietari d%aq ests o5=ectes li co$cedeixi acc3s. Me$6s malY E$ cas q e 8ag em de :acilitar acc3s a la 5ase de dades correspo$e$t a $a empresa de PostgreSDA a $o s s aris i $o e$s i$teressi ma$te$ir aq esta sit aci, procedirem de la segPe$t ma$era9 Be:i$irem el 0alor de la propietat /CA de la 5ase de dades, i$dica$t els s aris als q e es :acilita el pri0ilegi de co$$exi. Modi:icarem el 0alor de la propietat /CA de l%esq ema pu#lic, tot elimi$a$t l%assig$aci de pri0ilegis al rol pu#lic i assig$a$t la tilit>aci K$om3s usageL de l%esq ema pu#lic als s aris o rols correspo$e$ts. /q esta acci exec tada me$tre el ser0idor 4pe$ERP est# e$gegat, pot pro0ocar q e 4pe$ERP $o p g i co$$ectar am5 la 5ase de dades :i$s q e es rei$iciT el ser0idor 4pe$ERP /ssig$arem els pri0ilegis K$ormalme$t de lect raL als s aris o rols correspo$e$ts so5re els o5=ectes Kta les, 0istes, col m$es,...L q e i$teressi. Exemple d%assig!aci de p i1ilegis 1ia o d es S$( des de co!sola psql S posem q e te$im l% s ari pgotera rece$t creatQ per ta$t, e$cara $o se li 8a co$cedit cap pri0ilegi. S posem tam53 q e 8em elimi$at l%acc3s pJ5lic a l%esq ema pu#lic.

M10. Sistemes de gesti empresarial

1&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

*egem la seqP+$cia d%i$str ccio$s SDA, des de la co$sola psql, per aco$seg ir q e l% s ari pgotera p g i 0e re, per les coma$des de 0e$da, el $Jmero, la data de la coma$da i el $om de la 5otiga q e 8a e:ect at cada coma$da. S posem q e es tracta d% $ ser0idor PostgreSDA E.1 reside$t a la m#q i$a d%!P 10.200.1E0.20., q e ioc 3s $ s per s ari i q e la 5ase de dades s%a$ome$a Empresa7=OC.
C)*...+ps,l -%ioc -h1..2...1/..2.0 -dEmpresa_1OC 2ass3ord 4or user ioc) ...

Za 8em esta5lert co$$exi am5 s ari ioc. Per do$ar permSs de co$$exi a l% s ari pgotera9
$5 grant connect on data#ase 6Empresa_1OC6 to pgotera7 8RA9T

Per do$ar permisos d% tilit>aci de l%esq ema pu#lic a l% s ari pgotera KaixF 3s $ecessari do$cs s%8a elimi$at l%acc3s pJ5lic a l%esq ema pu#licL9
$5 grant usage on schema pu#lic to pgotera7 8RA9T

Per do$ar permSs de lect ra a la ta la sale_shop K5otig esL a l% s ari pgotera:


$5 grant select on ta#le sale_shop to pgotera7 8RA9T

Per do$ar permSs de lect ra a les col m$es id K$Jmero de coma$daL, date_order Kdata de coma$daL i shop_id Kide$ti:icador de la 5otiga q e 8a e:ect at la coma$daL, de la ta la sale_order Kcoma$desL, a l% s ari pgotera:
$5 grant select :id' date_order' shop_id; on -5 sale_order to pgotera7 8RA9T

S%8a decidit do$ar J$icame$t acc3s a les tres col m$es per :er $otar q e e$ ocasio$s pot ser $ecessari do$ar permSs a $i0ell de col m$es per q e 8i pot 8a0er altres col m$es am5 i$:ormaci co$:ide$cial a la q e $o 8a de te$ir acc3s l% s ari pgotera. Recordem q e aixF $om3s 3s possi5le a partir de la 0ersi &.- de PostgreSDA i, per ta$t, e$ 0ersio$s a$teriors e$s 0e rSem o5ligats a do$ar permSs d%acc3s a tota la ta la sale_order.
$5 *, C)*...+

Per compro0ar q e l% s ari pgotera pot o5te$ir la i$:ormaci desit=ada9


C)*...+ps,l -%pgotera -h1..2...1/..2.0 -dEmpresa_1OC 2ass3ord 4or user pgotera) ... ...$5 select so.id as 6Comanda6'

M10. Sistemes de gesti empresarial

1E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

...-5 so.date_order as 6<ata6' ...-5 ss.name 6=otiga6 ...-5 4rom sale_order so' sale_shop ss ...-5 3here so.shop_id $ ss.id7 ...

A%exemple e$s 8a mostrat com do$ar pri0ilegis a $i0ell de col m$es. E$ $ ser0idor PostgreSDA a$terior a la 0ersi &.-, e$ $o ser possi5le l%assig$aci de pri0ilegis a $i0ell de col m$es, podrSem crear $a 0ista i do$ar acc3s a la 0ista. *egem com :er-8o. Co$$ectats com a s per s ari per poder crear la 0ista i do$ar acc3s de co$s lta a l% s ari pgotera:
...$5 create vie3 ioc_sale_order_pgotera as ...-5 select id as 6comanda6' date_order as 6data6' ...-5 shop_id as 6#otiga6 ...-5 4rom sale_order7 CREATE >1E? ...$5 grant select on ioc_sale_order_pgotera to pgotera7 8RA9T

Co$$ectats com s ari pgotera9


...$+ ... ...$+ ...-+ ...-+ ... select @ 4rom ioc_sale_order_pgotera7 select comanda' data' name 4rom ioc_sale_order_pgotera' sale_shop 3here #otiga $ id7

Cal a$ar am5 compte am5 la de:i$ici de 0istes di$s l%esq ema pu#lic, =a q e co8a5itara$ am5 0istes de mFd ls de l%4pe$ERP. E$ cas de :er-8o, 3s altame$t recoma$a5le tilit>ar $a $ome$clat ra q e e$s permeti ide$ti:icar les 0istes a:egides q e $o :orme$ part de l%4pe$ERPQ aixS, a l%exemple, :ixem-$os q e 8em tilit>at el pre:ix ioc_ per a la 0ista creada. Iam53 3s possi5le crear esq emes di:ere$ciats de l%esq ema p 5lic q e tilit>a PostgreSDA i crear-8i les 0istes $ecess#ries, perF aixF =a s$ co$ceptes a0a$'ats d%admi$istraci de PostgreSDA q e se s rte$ del $ostre o5=ecti .

Com accedi a Postg eS$( des d%aplicacio!s clie!ts*


E$ moltes ocasio$s ser# precSs co$:ig rar estacio$s de tre5all per a q + alg $es aplicacio$s i$stalVlades p g i$ co$$ectar am5 el S"BB PostgreSDA per accedir a les dades emmagat>emades. /q est 3s el cas de les ei$es o:im#tiq es act als, q e acost me$ a :acilitar la co$$ecti0itat am5 els S"BB 0ia co$$ectors 4BBC o ZBBC q e cal te$ir i$stalVlats a la m#q i$a des d%o$ es 0ol tilit>ar l%ei$a o:im#tica. /ls a$$exos de la 7e5 tro5are l%apartat M/cc3s a S"BB corporati0es des d%ei$es

M10. Sistemes de gesti empresarial

20

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

o:im#tiq esN o$ es mostra com i$stalVlar i tilit>ar co$$ectors 4BBC i ZBBC.

1.2. )ese!1olupame!t de m3duls e! "pe!ERP


E$s disposem a i$iciar el dese$0ol pame$t de mFd ls e$ 4pe$ERP, :et i$dispe$sa5le per poder adeq ar l%4pe$ERP a les $ecessitats d%impla$taci e$ $a orga$it>aci. Per a q e l%apre$e$tatge sig i s a , seg irem el segPe$t camS9 1. Come$'arem am5 la prese$taci de l%ei$a de diagramaci $ia $iagram Editor, q e permet e:ect ar disse$6s UMA i per a la q e existeix $ co$$ector K plugginL q e permet ge$erar mFd ls d%4pe$ERP a partir dels disse$6s e:ect ats am5 $ia. Cal te$ir $s co$eixeme$ts 5#sics del lle$g atge UMA, de $i0ell similar als adq irits e$ el mFd l de Programaci. / la 7e5 pode tro5ar m ltit d de doc me$ts i$trod ctoris al lle$g atge UMA. 2. /pro: $direm e$ el disse$6 de mFd ls, ge$era$t-los directame$t am5 la tilit>aci dels lle$g atges P6t8o$ i OMA. Per dese$0ol par mFd ls d%4pe$ERP 3s $ecessari el co$eixeme$t del lle$g atge P6t8o$. /ls a$$exos de la 7e5 tro5are l%apartat MAle$g atge P6t8o$N, am5 recoma$acio$s per al se apre$e$tatge.

1.2.1.

)isse!/ de m3duls am- Dia

$ia 3s $a aplicaci gr#:ica de propFsit ge$eral per a la creaci de diagrames, dese$0ol pada com a part del pro=ecte "24ME. Est# co$str Tda de :orma mod lar, am5 di:ere$ts paq ets de :ormes per a di:ere$ts $ecessitats. / $osaltres e$s i$teressa aq esta ei$a per a disse$6ar els diagrames UMA dels mFd ls 4pe$ERP q e 0olem dese$0ol par i ge$erar-$e posteriorme$t el mFd l per a 4pe$ERP, moti pel q al 8a rem d%i$stalVlar $ia am5 P@t)on am5 l%opci de ge$eraci de mFd ls

M10. Sistemes de gesti empresarial

21

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

4pe$ERP. /ls a$$exos de la 7e5 tro5are l%apartat M!$stalVlaci de Bia am5 P86to$ KP6BiaL, e$ [i$do7s, per dese$0ol par mFd ls 4pe$ERPN. El proc3s d%i$stalVlaci de $ia am5 P@t)on am5 l%opci de ge$eraci de mFd ls 4pe$ERP, i$corpora $ exemple de diagrama UMA dese$0ol pat am5 $ia Karxi uml_test.dia :acilitat per 4pe$ERPL correspo$e$t a $ se$>ill mFd l de gesti escolar per a 4pe$ERP. Utilit>arem aq est diagrama per i$iciar-$os e$ el disse$6 de mFd ls 4pe$ERP mit=a$'a$t l%ei$a de diagramaci $ia. Iro5are el :itxer uml_test.dia, di$s l%apartat MBiagrames BiaN dels a$$exos del 7e5.

)isse!/ de classes am- Dia


Posem e$ marxa l%ei$a $ia i o5rim el :itxer uml_test.dia. Aa :ig ra 1-G correspo$ al disse$6 UMA del diagrama de classes emmagat>emat.
.igura /0A. $iagrama B'L confeccionat am% l;eina $=#

A%ei$a $ia permet dese$0ol par di0ersos tip s de diagrama i, com q e e$s i$teressa els diagrames UMA, caldr# te$ir seleccio$ada la : lla UMA a la caixa d%ei$es de la part esq erra de la pa$talla de $ia. A%exemple de la :ig ra 1-G correspo$ a $ model per gestio$ar, e$ $a escola q e :acilita c rsos Ke$ di0erses edicio$sL i disposa de pro:essors, els est dia$ts assiste$ts als di0ersos c rsos. El disse$6 d%aq est model, sego$s 0e rem, pot $o sem5lar molt MlFgicN i l%8em de co$siderar com $ exemple q e e$s permet i$trod ir di0ersos co$ceptes 5#sics per la ge$eraci de mFd ls 4pe$ERP am5 $ia.

M10. Sistemes de gesti empresarial

22

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

E$ $a sit aci com la prese$tada, a l%8ora de dese$0ol par $ diagrama UMA, 3s molt lFgic pe$sar e$ $ disse$6 q e co$ti$g i classes per modelar els co$ceptes c rs, pro:essor, edicio$s dels c rsos i est dia$ts, de :orma similar al diagrama uml_test, el q al co$templa9 Classe school.course, per modelar els c rsos q e :acilita l%escola. Classe school.event, per modelar les edicio$s dels c rsos. Classe a5stracta school.pro4essor, per modelar els pro:essors. Pla$tilla de classe school.student, per modelar els est dia$ts.

U$a primera llada del diagrama permet i$trod ir els segPe$ts co$ceptes per mFd ls 4pe$ERP9 Iots els eleme$ts d% $ diagrama cal escri re%ls e$ a$gl+s K:i$s i tot les etiq etes i els textos i$:ormati sL. Si e$s i$teressa te$ir-lo e$ catal# o castell#, tilit>arem posteriorme$t les ei$es de trad cci q e :acilita 4pe$ERP. Iotes les classes s%a$ome$e$ e$ mi$Jsc les i es recoma$a i$corporar, com a pre:ix, el $om del mFd l al q + perta$6e$. Els $oms de mFd ls, classes i mem5res de les classes 8a$ de ser escrits e$ mi$Jsc la am5 g io$s 5aixos per a :er llegi5les els $oms compostos. Aa $ome$clat ra i$dicada 3s la q e marca 4pe$ERP i, com possi5leme$t sa5re , 3s di:ere$t de les $ome$clat res recoma$ades e$ altres e$tor$s de P44, com 3s el cas del lle$g atge Za0a. Com q e els $oms de les classes de la :ig ra 1-G te$e$ el pre:ix school, ded Tm q e es tracta del diagrama d% $ mFd l a$ome$at school. S%aco$sella 5ate=ar el diagrama $ia am5 el $om del correspo$e$t mFd l, =a q e e$ el proc3s de ge$eraci del mFd l a partir del diagrama, $ia proposa el $om del diagrama com a $om del mFd l, tot i q e es pot ca$0iar. E$ aq ests materials e0ol cio$arem el diagrama uml_test am5 l%o5=ecti d%o5te$ir $ mFd l de $om school i, per co8er+$cia, tilit>arem $oms school55 per les s ccessi0es 0ersio$s de diagrames dese$0ol pats. Co$ti$ em o5ser0a$t el diagrama de la :ig ra 1-G. Per a la classe school.event del mFd l school, e$ tractar-se del model per les edicio$s dels c rsos, potser 8ag 3s estat m3s e$certat el $om school.course.event, de :orma similar a la $ome$clat ra tilit>ada per 4pe$ERP per les coma$des de 0e$da i les se0es lS$ies K sale.order i sale.order.lineL. E$ el diagrama UMA de la :ig ra 1-G, school.pro4essor 3s $a classe a5stracta i school.student 3s $a pla$tilla de classe. / l%8ora de ge$erar els mFd ls per 4pe$ERP, aixF $o t3 cap e:ecte i les 8ag 3ssim pog t disse$6ar com a classes $ormals.

M10. Sistemes de gesti empresarial

2(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

E$ UMA, l%estereotip 3s $ meca$isme d%exte$si5ilitat q e permet i$dicar $a disti$ci d%Js de l%o5=ecte so5re el q e es de:i$eix. Fixem-$os q e cada classe del diagrama de la :ig ra 1-G i$corpora $ estereotip K$om e$cerclat e$tre els sSm5ols \\ i ]] per so5re del $om de la classeL. El proc3s de ge$eraci de mFd ls 4pe$ERP a partir de diagrames $ia, i$terpreta el co$ti$g t del camp estereotip com la =erarq ia de me$Js, di$s 4pe$ERP, o$ 5icar els :orm laris ge$erats a partir del diagrama i s% tilit>a el sSm5ol ) per separar els di0ersos $i0ells. Ws a dir, sego$s el diagrama de la :ig ra 1-G, el :orm lari correspo$e$t al ma$te$ime$t dels c rsos estar# e$ $a opci de me$J a$ome$ada Courses, di$s el s 5me$J Configuration del me$J pri$cipal Courses Kdo$cs l%estereotip de la classe school.course 3s AACourses&Con4iguration&Courses++L. Aa :ig ra 1-. mostra la =erarq ia de me$Js esperada a partir del diagrama de la :ig ra 1-G.
Fig ra 1-.. Zerarq ia de me$Js pel mFd l dese$0ol pat a partir del diagrama de la :ig ra 1-G.

Ws aco$sella5le i$stalVlar el mFd l uml_test origi$al :acilitat per 4pe$ERP, per poder comparar el disse$6 e:ect at mit=a$'a$t l%ei$a $ia am5 el res ltat :i$al di$s 4pe$ERP.

M10. Sistemes de gesti empresarial

2-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

!$stalVle el mFd l uml_test origi$al :acilitat per 4pe$ERP, seg i$t les les i$dicacio$s :i$als de l%a$$ex M!$stalVlaci de Bia am5 P86to$ KP6BiaL, e$ [i$do7s, per dese$0ol par mFd ls 4pe$ERPN. E$ el diagrama de la :ig ra 1-G o5ser0em q e e$tre les classes 8i 8a $s co$$ectors Kassociacio$s e$tre classesL q e s$ J$icame$t de caire i$:ormati i $o te$e$ cap i$cid+$cia e$ la ge$eraci del mFd l 4pe$ERP. Aes relacio$s e$tre les classes es de:i$eix a tra03s d%atri5 ts relacio$als di$s cada classeQ la :acilitat de diagramaci d%associacio$s e$tre classes q e :acilita l%ei$a $ia $o 3s apro:itada pel mFd l uml_dia e$ ge$erar els mFd ls 4pe$ERPQ e$ co$seqP+$cia, la tilit>aci dels co$$ectors associati s de $ia ser0eixe$, J$icame$t, com a doc me$taci gr#:ica. Cal i$terpretar les associacio$s q e o5ser0em a la :ig ra 1-G com9 U$ pro:essor K:letxa de school.pro4essor cap a school.courseL pot impartir di0ersos c rsos. U$ c rs K:letxa de school.course cap a school.eventL pot te$ir di0erses edicio$s. U$ c rs pot te$ir di0ersos est dia$ts i $ est dia$t pot c rsar di0ersos c rsos K:letxa am5 do5le se$tit e$tre school.course i school.studentL. Si seleccio$em q alse0ol de les associacio$s del diagrama de la :ig ra 1-G i $%editem les propietats, o5ser0em q e l%ei$a $ia,, per a doc me$tar e$cara m3s el diagrama, permet i$dicar els rols i la m ltiplicitat. /ixS, podrSem retocar el diagrama de la :ig ra 1-G per aco$seg ir $ diagrama m3s doc me$tat com el de la :ig ra 1-&.
Fig ra 1-&. Biagrama UMA am5 m ltiplicitats a les associacio$s

El diagrama de classes de les :ig res G i & mostra J$icame$t la cap'alera de les classes K$om i estereotipL i aq estes classes pode$ co$te$ir mem5res Kdades i m+todesL. Per a 0is alit>ar dades i)o m+todes Katri5 ts i)o operacio$s, sego$s $ome$clat ra de l%ei$a $iaL d% $a classe, cal seleccio$ar la classe i editar les se0es propietats K5oto sec $dari del ratolSL, i acti0ar les caselles de 0eri:icaci #tri%uts isi%les i Operacions isi%les. E$ acti0ar-les per a totes les classes, o5te$im la 0is alit>aci de la :ig ra 1-E. U$a llada r#pida al diagrama de la :ig ra 1-E e$s permet a:irmar q e les se0es classes $o i$corpore$ cap operaci i J$icame$t co$te$e$ atri5 ts. /pro:itarem les classes d%aq est

M10. Sistemes de gesti empresarial

2@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

diagrama per exempli:icar els di0ersos tip s d%atri5 ts de les classes d% $ mFd l 4pe$ERP i com es de:i$eixe$ e$ $ diagrama disse$6at am5 l%ei$a $ia.
Fig ra 1-E. Biagrama UMA am5 la 0is alit>aci d%atri5 ts i operacio$s acti0ades.

)isse!/ d%at i-uts de classe am- Dia


Els atri5 ts de les classes d% $ mFd l 4pe$ERP s$ 5#sicame$t de tres categories9 -4sics o simples, elacio!als i 'u!cio!als. Els atri5 ts simples o -4sics s$ aq ells desti$ats a co$te$ir $ 0alor co$cret Ke$ter, real, 5oole#, cade$a,...L. Els atri5 ts elacio!als s$ aq ells desti$ats a represe$tar les relacio$s e$tre classes. Els atri5 ts 'u!cio!als s$ $s camps especials perq + $o s%emmagat>eme$ a la 5ase de dades i es calc le$ e$ temps reals a partir d%altres atri5 ts. Fixem-$os, per exemple, e$ els 0 it atri5 ts de la classe school.course9 set s$ simples o 5#sics K name, su#ject, hours_total, re,uirements, 3e#site, date i noteL i $ 3s relacio$al Kpro4_idL.

5t i-uts simples o -4sics


U$ diagrama $ia am5 la 0is alit>aci d%atri5 ts acti0ada, mostra per a cada atri5 t simple, la segPe$t seqP+$cia d%i$:ormaci9 atri5 t de 0isi5ilitat K^ per pJ5lic, - per pri0at i _ per protegitL $om de l%atri5 t, seg it del sSm5ol ) tip s de l%atri5 t K#oolean, integer, 4loat, char, teBt, date, datetime, #inarC, selection, re4erenceL sSm5ol $ etiq eta pel camp, e$tre cometes simples, d%o5ligada exist+$cia cap o m3s par#metres, seg i$t la si$taxis nom$valor i separats per coma. /ixS, la classe school.course, t3 $ atri5 t p 5lic KsSm5ol (L, desti$at a

M10. Sistemes de gesti empresarial

2G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

emmagat>emar el $om KnameL del c rs, am5 etiq eta Course, de tip s car#cter KcharL de (2 car#cters com a molt Kpar#metre siDeL i am5 o5ligatorietat de 0alor Kre,uired$ETrueEL. Fixem-$os q e la de:i$ici del camp e$ el diagrama 3s9
(name) char $ ECourseE' siDe$32' re,uired $ ETrueE

Aa ta la 1-1 prese$ta, am5 detall, els di0ersos tip s de dades possi5les pels atri5 ts simples o 5#sics. Ia la 1-1. Iip s de dades pels atri5 ts simples o 5#sics e$ mFd ls 4pe$ERP +om $u6 "-se 1acio!s emmagat&ema* #oolean integer 4loat *alors lFgics *alors e$ters *alors reals Pot a$ar acompa$6at d% $ par#metre digits desti$at a i$dicar la precisi i l%escala de l%atri5 t. A%escala 3s el $om5re de dSgits despr3s del p $t decimal i la precisi 3s el $om5re total de dSgits sig$i:icati s Ka5a$s i despr3s del p $t decimalL. Si el par#metre digits $o 3s prese$t, ser# co$siderat com $ $om5re e$ p $t :lota$t am5 do5le precisi. *alors 0#lids9 True i False

date datetime char

*alor data *alor data i 8ora e$ $ mateix camp Cade$a de lo$git d Ws o5ligatori i$dicar el par#metre limitada siDe$valor, per i$dicar la m#xima lo$git d permesa. Cade$a de lo$git d ilVlimitada Cade$a 5i$#ria U$ 0alor d% $a llista E$ aq est cas, a5a$s del 0alor de l%etiq eta del de 0alors possi5les camp, cal i$dicar la llista de 0alors possi5les, prede:i$its com a seqP+$cia de parelles K0alor, etiq etaL9 G:valor1' eti,ueta1;' :valor2' eti,ueta2;'...H P $ter cap $ o5=ecte existe$t e$ 4pe$ERP Els o5=ectes d%4pe$ERP q e es pode$ seleccio$ar per $a re:er+$cia es de:i$eixe$ e$ el me$J !ettings*PersonalitCaci*O%&ectes de %aix ni ell*!olDlicituds*-ipus de referEncies en solDlicituds d%4pe$ERP.

teBt #inarC selection

re4erence

Com a exemple d%atri5 t selection podem o5ser0ar l%atri5 t contract de la classe school.pro4essor. Fixem-$os q e la llista co$t3 dos 0alors Ktrainee i namedL pels q e la 0is alit>aci des del programa ser# Trainee i 9amed, a $o ser q e apliq em $ proc3s de trad cci de l%aplicaci KperF a $i0ell de la 5ase de dades, els 0alors emmagat>emats sempre sera$ trainee i named. 4i q e sem5la m3s lFgic q e a la 5ase de dades $om3s s%emmagat>emes els car#cters t i nC Aa ta la 1-2 prese$ta, am5 detall, els par#metres q e pode$ acompa$6ar als atri5 ts,

M10. Sistemes de gesti empresarial

2.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

disti$gi$t si s$ o5ligatoris

optati s i si s$ com $s o especS:ics d%alg $ tip s de dada.

+om

Ia la 1-2. Par#metres q e pode$ acompa$6ar els atri5 ts 5#sics "-li- 5t i-ut al Sig!i'icat gato i qu6 acompa!/a SS 2o 2o 2o 2o char 4loat D alse0ol D alse0ol D alse0ol Alargada m#xima de la cade$a !$dicar la precisi i escala e$ :ormat :p's;. *e re explicaci del camp 4loat a la ta la 1-1. !$dicar l%o5ligatorietat de l%atri5 t am5 el 0alor True. Per de:ecte, el se 0alor 3s False. !$dicar q e l%atri5 t 3s de $om3s lect ra, am5 el 0alor True. Per de:ecte, el se 0alor 3s False. Exigir q e a $i0ell de la 5ase de dades es ge$eri $ S$dex per aq est camp per tal d%optimit>ar els processos de recerca, am5 el 0alor 1. Per de:ecte el se 0alor 3s .. !$dicar el missatge d%a= da q e 4pe$ERP 0is alit>a e$ sit ar el ratolS dam $t l%etiq eta del camp. Pro0oca q e l%etiq eta 0agi acompa$6ada per $ petit i$terroga$t a l%extrem s perior esq erre.

siDe digits re,uired readonlC select

help

2o

D alse0ol

translate 2o

char o teBt !$dicar q e el 0alor del camp pot ser trad Tt pels s aris, am5 el 0alor True. Per de:ecte, el se 0alor 3s False.

E$ el clie$t 7e5, els camps am5 l%atri5 t translate a True prese$te$, e$ mode edici, $a 5a$derola al :i$al de la caixa de text q e co$t3 el 0alor del camp, per i$dicar q e el camp 3s trad T5le. Preme$t el ratolS dam $t la 5a$derola, s%o5re $a pa$talla q e rec ll tots els camps trad T5les del :orm lari i podem procedir a la se0a trad cci. Pode compro0ar-8o e$ el camp :om del :orm lari de prod ctes d%4pe$ERP. E$ el clie$t "IU, tam53 8i 8a $a 5a$derola, perF la : $cio$alitat de trad cci $o : $cio$a e$ la 0ersi G.1. Aa i$trod cci dels di0ersos 0alors per de:i$ir $ atri5 t simple des de l%ei$a $ia, s%e:ect a des de la pesta$6a #tri%uts de les propietats de la classe, seg i$t els criteris segPe$ts9 Aa 0isi5ilitat de l%atri5 t Kp 5lic, pri0ate o protegitL s%esc ll e$ el camp ,isi%ilitat. El $om de l%atri5 t s%i$trod eix a l%apartat :om. El tip s de l%atri5 t s%i$trod eix a l%apartat -ipus. El $om de l%etiq eta Ke$tre cometes simples i o5ligatoriL, seg it de la seqP+$cia de parelles parImetre$valor q e correspo$g i, separades per coma, s%i$trod eix a l%apartat ,alor. A%a= da q e acompa$6a al camp Kpar#metre helpL, s%i$trod eix a l%apartat Comentari. Pode compro0ar l%aplicaci dels criteris a$teriors tot edita$t les propietats de q alse0ol dels atri5 ts 5#sics de les classes del diagrama uml_test. Aa :ig ra 1-10 mostra la de:i$ici de l%atri5 t name de la classe school.course. Us 8e ado$at q e, e$ els par#metres prese$tats, $o $%8i 8a cap q e :aci re:er+$cia a la

M10. Sistemes de gesti empresarial

2&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

de:i$ici d% $ camp ide$ti:icador de la classeC 4pe$45=ect 3s el framework so5re el q e est# dese$0ol pat 4pe$ERP., de ma$era q e e$ parlar de :acilitats de dese$0ol pame$t, e$s 8em de re:erir a 4pe$45=ect. Es pot tilit>ar 4pe$45=ect per dese$0ol par altres aplicacio$s q e $o ti$g i$ res a 0e re am5 4pe$ERP.
Fig ra 1-10. Exemple de de:i$ici d%atri5 t 5#sic de classe de mFd l 4pe$ERP des de $ia.

E$ 4pe$45=ect, cada classe t3 $ atri5 t ide$ti:icador, de $om id, ge$erat a tom#ticame$t per la capa 45=ect Relatio$al Mappi$g K4RML d%4pe$45=ect, de ma$era q e $o s%8a d%i$dicar e$ la de:i$ici dels atri5 ts de la classe. El 0alor de l%atri5 t id per a cada o5=ecte 3s ge$erat a tom#ticame$t per 4pe$45=ect i ide$ti:icar# l%o5=ecte Kel registre a $i0ell de la 5ase de dadesL per sempre m3s. /q est ide$ti:icador tam53 s% tilit>a per relacio$ar o5=ectes Ki$tegritat re:ere$cial a $i0ell de 5ase de dadesL. Ala0ors, si l%atri5 t ide$ti:icador dels o5=ectes d% $a classe el ge$era 4pe$45=ect, com podem de:i$ir $ camp q e ide$ti:iq i $ o5=ecte tal i com estem acost mats e$ m ltit d d%aplicacio$s i$:orm#tiq esC Per exemple, :ixem-$os e$ l%atri5 t 1<9um de la classe school.student. A%a= da i$trod Tda di , text alme$t9 M-)is is t)e uniq =$ of t)e

M10. Sistemes de gesti empresarial

2E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

studentN. Com podem aco$seg ir q e 1<9um sig i, 0erita5leme$t ide$ti:icadorC Bo$cs per aixF 8a rem d% tilit>ar la restricci d% $icitat q e :acilita 4pe$45=ect, perF q e $o podem i$dicar a tra03s de l%ei$a $ia i 8o 8a rem de :er, m3s e$da0a$t, 0ia el lle$g atge P6t8o$. A%atri5 t 1<9um $o seg eix el co$0e$i d%estar escrit e$ mi$Jsc les. /ixF pro0oca q e $o s%i$stalVli e$ ser0idors 4pe$ERP e$ plata:ormes Ai$ x. A%atri5 t id 3s,do$cs, $ atri5 t especial perF $o 3s l%J$ic. Aa ta la 1-( prese$ta am5 detall els atri5 ts de classe 5#sics especials a te$ir e$ compte e$ dese$0ol par e$ 4pe$45=ect. Ia la 1-(. /tri5 ts de classe 5#sics especials e$ 4pe$45=ect 7ipus Explicaci integer /tri5 t ide$ti:icador di$s la classe, tilit>at per ide$ti:icar cada o5=ecte Kregistre a $i0ell de 5ase de dadesL per sempre m3s i per esta5lir les relacio$s e$tre o5=ectes de di0erses classes Ki$tegritat re:ere$cial a $i0ell de 5ase de dadesL. El crea l%ei$a 4RM d%4pe$45=ect i, per ta$t, $o s%8a d%i$dicar e$ disse$6ar $a classe. Emmagat>ema el mome$t temporal e$ q + es crea l%o5=ecte. El crea l%ei$a 4RM. Emmagat>ema el mome$t temporal de la darrera modi:icaci de l%o5=ecte. El crea l%ei$a 4RM. Emmagat>ema l%ide$ti:icador KidL de l% s ari q e 0a crear l%o5=ecte. /q est s ari 3s $ o5=ecte de la classe res. ser Ko registre de la ta la resH serL. El crea l%ei$a 4RM. Emmagat>ema l%ide$ti:icador KidL de l% s ari q e 8a modi:icat per darrera 0egada l%o5=ecte. /q est s ari 3s $ o5=edcte de la classe res.user Ko registre de la ta la res_userL. El crea l%ei$a 4RM. Ws l%atri5 t q e tilit>a 4pe$45=ect q a$ 8a de mostrar o5=ectes e$ $a llista desplega5le. E$ co$seqP+$cia, aq est atri5 t 3s o5ligatori e$ q alse0ol classe C s scepti5le de ser re:ere$ciada des d%altres classes, do$cs e$ aq estes caldr# :acilitar $a llista desplega5le per :acilitar la selecci dels o5=ectes de C. Ws $ atri5 t q e a:egirem a aq elles classes per les q e i$teressi poder amagar o5=ectes e$ alg $ mome$t de la se0a 0ida. Podria ser0ir, per exemple, per amagar o5=ectes 8istFrics se$se elimi$ar-los. U$ o5=ecte i$acti =a $o 3s accessi5le $i apareix per e$lloc, :i$s q e es tor$i a acti0ar.

+om id

create_date datetime 3rite_date create_uid datetime integer

3rite_uid

integer

name

char

active

#oolean

state

selection Ws $ atri5 t q e a:egirem a aq elles classes per les

M10. Sistemes de gesti empresarial

(0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

q e i$teressi poder de:i$ir di0ersos estats del cicle de 0ida d% $ o5=ecte. parent_id integer Ws $ atri5 t q e permet de:i$ir estr ct res =er#rq iq es e$tre o5=ectes de la mateixa classe. /cost ma a sorgir com a co$seqP+$cia d% $a associaci re:lexi0a e$ $a classe.

Com a exemple de la tilit>aci q e :a 4pe$45=ect de l%atri5 t name, podem a$ar a co$s ltar la llista de clie$ts d% $a empresa, o$ o5ser0arem la col m$a Pa2s, q e mostra el co$ti$g t de l%atri5 t name del paSs al q e perta$6 el clie$t. Si a$em a la 5ase de dades a co$s ltar el co$ti$g t de la ta la res_partner_address Kq e co$t3 les adreces dels clie$tsL, 8i 0e rem el camp countrC_id, com a cla :ora$a de l%atri5 t id de la ta la res.countrC. / la llista de clie$ts, perF, $o 0eiem el co$ti$g t de l%atri5 t countrC_id Kq e 3s el q + relacio$a el clie$t am5 el paSsL si$ el co$ti$g t de l%atri5 t name del paSs re:ere$ciat. 4pe$ERP t3 moltes classes q e co$te$e$ l%atri5 t active, com per exemple la classe res.users Kta la res_usersL. /ixS, per exemple, pode a$ar a !ettings*Bsuaris, editar el registre $emo Bser, desmarcar la casella #ctiu per deixar-lo $o acti i e$registrar el ca$0i. Podre o5ser0ar com el registre $emo Bser 8a desapareg t de la llista d% s aris i =a $o sortir# mai m3s :i$s q e el :em acti . Per a :er acti $ registre i$acti , 8em d%aco$seg ir accedir-8i per a ca$0iar el 0alor de la casella #ctiu i per aco$seg ir-8o e$s 8em de 0aler de la recerca a0a$'ada dels :orm laris, seleccio$a$t el camp #ctiu i i$dica$t q e 0olem 0e re els registres q e el te$e$ a 0alor :als. Com a exemple d% tilit>aci de l%atri5 t state, podem :ixar-$os e$ la classe sale.order correspo$e$t a les coma$des de 0e$da. 4pe$ERP 8i de:i$eix l%atri5 t state de tip s selection am5 els segPe$ts 0alors q e de:i$eixe$ els di:ere$ts estats pels q e pot passar $a coma$da de 0e$da9
G:Edra4tE' EJuotationE;' :E3aiting_dateE' E?aiting KcheduleE;' :EmanualE' ETo 1nvoiceE;' :EprogressE' E1n 2rogressE;' :Eshipping_eBceptE' EKhipping EBceptionE;' :Einvoice_eBceptE' E1nvoice EBceptionE;' :EdoneE' E<oneE;' :EcancelE' ECancelledE; H

U$ exemple d% tilit>aci de l%atri5 t parent_id el tro5em, e$ 4pe$ERP, e$ la de:i$ici dels tercers Kclie$ts i pro0eTdorsL. Si editem $ clie$t)pro0eTdor, 0e rem com a l%apartat =nformaci General de la pesta$6a ,endes F Compres, es pot i$dicar q i$a 3s l%empresa pare q e, e$ cas de te$ir 0alor, 3s $ altre tercer.

5t i-uts elacio!als
E$tre les classes d%4pe$45=ect es pot esta5lir tres tip s de relacio$s, de ma$era similar a les relacio$s e$tre les e$titats e$ $ model e$titat-relaci per a 5ases de dades. Es de:i$eixe$ 0ia atri5 ts relacio$als di$s les classes. Ie$im, e$ co$seqP+$cia, tres tip s d%atri5 ts relacio$als9 molts a u!, u! a molts, molts a molts. Molts a u! 8many2one9, per represe$tar $a relaci cap $a classe pare, de molts a $, 3s a dir, molts o5=ectes de la classe q e co$t3 l%atri5 t pode$ estar relacio$ats am5 $ mateix o5=ecte de la classe pare.

M10. Sistemes de gesti empresarial

(1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

E$ el diagrama uml_test o5ser0em molts atri5 ts relacio$als manC2one. U$ exemple el te$im a la classe school.event, o$ l%atri5 t course_id est# desti$at a co$te$ir, per a cada o5=ecte de la classe school.event, l%ide$ti:icador de l%o5=ecte pare de la classe school.course. 4pe$ERP mostra els camps manC2one acompa$6ats per $a llista per a seleccio$ar l%o5=ecte de la classe pare. Ws a dir, e$ el :orm lari per gestio$ar els c rsos Ko5=ectes de la classe school.eventL, el camp course_id, am5 etiq eta Course, estar# acompa$6at d% $ desplega5le per seleccio$ar el c rs q e correspo$g i d%e$tre els o5=ectes de la classe school.courseL. /ixF o5liga a q e la classe re:ere$ciada pel camp manC2one co$ti$g i el camp name. / $i0ell de la 5ase de dades, els atri5 ts manC2one es mape$ e$ atri5 ts di$s la ta la correspo$e$t a la classe q e els co$t3, am5 restriccio$s d%i$tegritat re:ere$cial cap l%atri5 t ide$ti:icador de la ta la re:ere$ciada. Co$ti$ a$t am5 l%exemple de l%atri5 t course_id de la classe school.event, la ta la school_event co$ti$dr# el camp course_id am5 $a restricci d%i$tegritat re:ere$cial cap l%atri5 t id de la ta la school_course Ka tom#ticame$t creat per 4pe$ERPL. Per de:i$ir $ atri5 t manC2one e$ l%ei$a $ia, cal crear l%atri5 t i$dica$t q e 3s del tip s manC2one i a l%espai 0alor i$trod ir9
EclasseRe4erenciadaE'Eeti,ueta<elCampE'...

Els p $ts s spe$si s del :i$al i$diq e$ q e es pot opcio$als. Co$cretame$t9

tilit>ar alg $s par#metres

- ondelete9 Com act ar q a$ l%o5=ecte re:ere$ciat per l%atri5 t sig i elimi$at. *alors possi5les9 cascade, set null. *alor per de:ecte9 set null. - re,uired, readonlC, select9 /m5 : $cio$ame$t id+$tic als camps $o relacio$als. Podem o5ser0ar q e l%atri5 t course_id de la classe school.event t3 com a 0alor9
Eschool.courseE'ECourseE're,uired$True

Ws co$0e$i, e$tre els dese$0ol padors e$ 4pe$ERP, a$ome$ar els atri5 ts manC2one, am5 el $om de la classe a la q e re:ere$cie$ Ko darrer $i0ellL acompa$6at de _id, com 3s el cas de l%atri5 t course_id. U! a molts 8one2many9, per represe$tar $a relaci cap $a classe :illa, d% $ a molts, 3s a dir, $ o5=ecte de la classe q e co$t3 l%atri5 t pot estar relacio$at am5 molts o5=ectes de la classe :illa. Iot atri5 t one2manC 3s compleme$tari d% $ atri5 t manC2one q e 8a d%existir o5ligatFriame$t a la classe :illa. Per de:i$ir $ atri5 t one2manC e$ l%ei$a $ia, cal crear l%atri5 t i$dica$t q e 3s del tip s one2manC i a l%espai 0alor i$trod ir9
EclasseRe4erenciadaE'EnomAtri#utClasseRe4erenciadaE' Eeti,ueta<elCampE'...

M10. Sistemes de gesti empresarial

(2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Aa classe :illa KclasseRe4erenciadaL 8a de co$te$ir l%atri5 t nomAtri#utClasseRe4erenciada de tip s manC2one ap $ta$t a la classe o$ 8i 8a l%atri5 t one2manC. Els p $ts s spe$si s del :i$al i$diq e$ q e es pot opcio$als. Co$cretame$t9 tilit>ar alg $s par#metres

- invisi#le9 Per impedir q e el se co$ti$g t sig i 0isi5le e$ els :orm laris correspo$e$ts a la classe a la q e perta$6 el camp. *alors possi5les9 True, False. *alor per de:ecte9 False. - readonlC9 /m5 : $cio$ame$t id+$tic als camps $o relacio$als. Ws co$0e$i, e$tre els dese$0ol padors e$ 4pe$ERP, a$ome$ar els atri5 ts one2manC, am5 el $om de la classe a la q e re:ere$cie$ Ko darrer $i0ellL acompa$6at de _ids. E$ el diagrama uml_dia o5ser0em l%atri5 t course_ids del tip s one2manC a la classe school.pro4essor, am5 el segPe$t co$ti$g t a l%espai 0alor9
Eschool.courseE' Epro4_idE' ECoursesE

A%atri5 t course_ids de la classe school.pro4essor relacio$a $ pro:essor am5 el co$= $t de c rsos q e imparteix. E$ co$seqP+$cia, la classe school.course 8a de co$te$ir l%atri5 t pro4_id de tip s ser manC2one cap a la classe school.pro4essor. A%exist+$cia d% $ atri5 t one2manC implica l%exist+$cia d% $ atri5 t manC2one, perF l%exist+$cia $ atri5 t manC2one $o implica l%exist+$cia d% $ atri5 t one2manC. Aa de:i$ici dels atri5 ts one2manC t3 dos o5=ecti s9 /co$seg ir q e e$ les 0istes K:orm larisL q e co$ti$g i$ el camp one2manC, apareg i $a llista dels o5=ectes re:ere$ciats Kcom mostra la >o$a ap $ta per la :letxa de la :ig ra 1-11L. Facilitar l%acc3s, e$ dese$0ol par m+todes KlFgica de $egociL de la classe q e co$t3 el camp one2manC, cap els o5=ectes re:ere$ciats per l%o5=ecte so5re el q e s%exec ti el m+tode. El dese$0ol pame$t de m+todes KlFgica de $egociL e$ 4pe$ERP es tro5a a l%apartat M4pe$ERP9 Aa 0ista i el co$troladorN El par#metre invisi#le$True e$ $ atri5 t one2manC pro0oca q e cap :orm lari o$ apareg i l%atri5 t i$corpori la llista dels o5=ectes re:ere$ciats. B%aq esta ma$era, l%atri5 t J$icame$t pot ser0ir per :acilitar l%acc3s als o5=ectes re:ere$ciats e$ els m+todes dese$0ol pats so5re la classe. Si o5ser0em el diagrama uml_dia origi$al :acilitat per 4pe$ERP, podem o5ser0ar q e l%atri5 t pro4_id de la classe school.course co$t3, a l%espai 0alor9
Eres.partnerE'E2ro4essorE're,uired$True

M10. Sistemes de gesti empresarial

((

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Aa de:i$ici de l%atri5 t pro4_id a la classe school.course 3s errF$ia, =a q e $o ap $ta a la classe school.pro4essor, si$ a la classe res.partner. El mFd l ge$erat ma$te$i$t aq esta de:i$ici t3 $ mal : $cio$ame$t.
Fig ra 1-11. Form lari per al ma$te$ime$t de pro:essors am5 $ s 5:orm lari

Si 8e i$stalVlat el mFd l uml_test proporcio$at per 4pe$ERP, pode 0e re el mal : $cio$ame$t si :e la creaci d% $ pro:essor i 8i assig$e c rsos. Per assig$ar-li $ c rs, l%8a re de crear i assig$ar-li $ pro:essor i 0e re q e $o s deixar# aga:ar cap dels pro:essors creats, si$ q e 8a re d%assig$ar $ dels tercers de l%empresa. E$ e$registrar-8o tot, 0e re com els c rsos assig$ats al pro:essor 8a$ desapareg t... U$ caosY Per sol cio$ar la sit aci errF$ia i aco$seg ir q e l%atri5 t pro4_id de la classe school.course sig i compleme$tari de l%atri5 t course_ids de la classe school.pro4essor, 8a rem de ca$0iar el co$ti$g t a l%espai 0alor de l%atri5 t pro4_id de la classe school.course, per9
Eschool.pro4essorE'E2ro4essorE're,uired$True

Aa :ig ra 1-11 tam53 e$s permet o5ser0ar l%e:ecte dels atri5 ts manC2one. E$ e:ecte, o5ser0em q e els camps etiq etats per #ssociated Partner i Pri ate #ddress, 0a$

M10. Sistemes de gesti empresarial

(-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

acompa$6ats per d es ico$es9 $a ico$a l pa, q e permet accedir a la llista dels o5=ectes de la classe re:ere$ciada per aq ests camps i $a ico$a carpeta q e permet accedir a la :itxa de l%o5=ecte re:ere$ciat. Si o5ser0em els correspo$e$ts atri5 ts di$s la classe school.pro4essor, 0e rem q e es tracta dels camps partner_id i address_id, de tip s manC2one. Molts a molts 8many2many9, per represe$tar $a relaci de molts a molts e$tre dos o5=ectes, 3s a dir, q a$ cada o5=ecte d% $a classe / pot estar relacio$at am5 molts o5=ectes d% $a classe B i cada o5=ecte de la classe B pot estar relacio$at am5 molts o5=ectes de la classe /. U$ exemple de relaci manC2manC el tro5em e$tre les classes school.student i school.course, do$at q e $ est dia$t es pot i$scri re a molts c rsos i e$ $ c rs 8i pot 8a0er molts est dia$ts i$scrits. Per de:i$ir $ atri5 t manC2manC e$ l%ei$a $ia, cal crear l%atri5 t e$ alg $a de les d es classes q e relacio$a o e$ am5d es, i$dica$t el tip s manC2manC i, a l%espai 0alor, i$trod ir9
EclasseRe4erenciadaE'EnomTaulaRelacionalE'EnomCampFL2ropiE' EnomCampFLAltraClasseE'Eeti,ueta<elCampE

Ws co$0e$i, e$tre els dese$0ol padors e$ 4pe$ERP, a$ome$ar els atri5 ts manC2manC, am5 $ $om Kadeq at a les d es classes q e relacio$aL acompa$6at de _ids. Fixem-$os q e la de:i$ici d% $ atri5 t manC2manC implica la creaci d% $a ta la relacio$al a la 5ase de dades. E$ el diagrama uml_dia o5ser0em l%atri5 t su#scriptions del tip s manC2manC a la classe school.student, am5 el segPe$t co$ti$g t a l%espai 0alor9
Eschool.courseE'Ecourse_student_su#scription_relE'Ecourse_idE' Estudent_idE'EKu#scriptionsE

A%atri5 t su#scriptions relacio$a la classe school.student Ko$ 3s de:i$itL am5 la classe school.course, :et q e pro0ocar# l%aparici d% $a $o0a ta la a la 5ase de dades, de $om course_student_su#scription_rel, q e ti$dr# l%atri5 t course_id am5 restricci d%i$tegritat re:ere$cial cap a la classe school.student i l%atri5 t student_id am5 restricci d%i$tegritat re:ere$cial cap a la classe school.course. A%atri5 t su#scriptions prese$ta alg $es a$omalies de $otaci9 El se $om $o seg eix el co$0e$i, do$cs seria 5o q e el se $om :i$alit>3s e$ _ids. El $om de la ta la relacio$al q e es ge$erar# a la 5ase de dades seria 5o q e come$ces am5 el pre:ix school_, a l%ig al q e la resta de ta les 0i$c lades a aq est mFd l. Els $oms assig$ats als tercer i q art par#metres del co$ti$g t de l%espai 0alor 8a rie$ d%estar a l%i$re03s, de ma$era q e course_id :os el $om per :er re:er+$cia a la classe school.course i student_id :os el $om per :er re:er+$cia a la classe school.student. /ixS do$cs, seria millor rede:i$ir l%atri5 t su#scriptions, ca$0ia$t-li el $om per course_ids i am5 el segPe$t co$ti$g t a l%espai 0alor9

M10. Sistemes de gesti empresarial

(@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Eschool.courseE'Eschool_student_course_relE'Estudent_idE' Ecourse_idE'EKu#scriptions to coursesE

U$ atri5 t manC2manC pro0oca q e l%ei$a $ia, e$ ge$erar el :orm lari per al ma$te$ime$t dels o5=ectes de la classe, 8i i$cr sti $a >o$a de tip s llista per accedir als registres de la classe re:ere$ciada per l%atri5 t manC2manC. Aa :ig ra 1-12 mostra com ser# el :orm lari ge$erat per l%ei$a $ia per al ma$te$ime$t dels est dia$ts. E$ ella 8i o5ser0em la >o$a ap $tada per la :letxa, correspo$e$t a la llista de c rsos assig$ats a l%est dia$t i$dicat a la cap'alera del :orm lari.
Fig ra 1-12. Form lari per al ma$te$ime$t d%est dia$ts am5 els c rsos o$ esta$ s 5scrits

E$ cas q e i$teressi q e e$ el :orm lari dels c rsos 8i apareg i $a >o$a de tip s llista per accedir als est dia$ts s 5scrits al c rs, caldr# de:i$ir $ atri5 t manC2manC a la classe school.course, o$ el $om de la ta la relacio$al i els $oms dels se s camps 8a$ de coi$cidir am5 la de:i$ici de l%atri5 t manC2manC de la classe school.student. /ixS, per exemple, podem de:i$ir-8i l%atri5 t student_ids am5 el segPe$t co$ti$g t a l%espai 0alor9
Eschool.studentE'Eschool_student_course_relE'Ecourse_idE' Estudent_idE'EKtudentsE

Aa :ig ra 1-1( e$ mostra el res ltat e$ el :orm lari de ma$te$ime$t dels c rsos.

M10. Sistemes de gesti empresarial

(G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Fig ra 1-1(. Form lari per al ma$te$ime$t de c rsos am5 els est dia$ts q e 8i esta$ s 5scrits

.e!e aci de m3dul "pe!ERP des de Dia


A%ei$a $ia permet ge$erar, a partir d% $ diagrama disse$6at per a $ mFd l 4pe$ERP, el correspo$e$t mFd l per a ser i$stalVlat seg i$t el procedime$t 8a5it al. Per aco$seg ir el mFd l 4pe$ERP, cal 8a0er i$corporat a l%ei$a $ia el g i codegen_openerp.pC de P6t8o$ i, e$ tal sit aci, l%opci .itxer`Exportar de $ia, mostra l%opci d%exportaci P@$ia Code Generation (OpenERP8 (G.Cip8 q e 3s la q e 8em d% tilit>ar per aco$seg ir el mFd l per a ser i$stalVlat e$ 4pe$ERP. / l%a$$ex M!$stalVlaci de Bia am5 P86to$ KP6BiaL, e$ [i$do7s, per dese$0ol par mFd ls 4pe$ERPN tro5are les i$dicacio$s per aco$seg ir q e $ia p g i ge$erar mFd ls 4pe$ERP per a la se0a i$stalVlaci. E$ el mome$t d%exportar $ diagrama $ia cap a mFd l 4pe$ERP, l%ei$a proposa com a $om de mFd l el mateix $om del diagrama, perF es pot decidir el $om q e es desitgi i l%ei$a ge$era $ :itxer Dip am5 el $om i$dicat, el q al $o es podr# ca$0iar de ma$era simple, do$at q e e$ el se i$terior es ge$ere$ co$ti$g ts q e tilit>e$ el $om i$dicat i caldria :er di0ersos retocs. E$ co$seqP+$cia, el $om i$dicat e$ el mome$t de la ge$eraci 3s el $om del mFd l q e podr# ser i$stalVlat e$ 4pe$ERP.

M10. Sistemes de gesti empresarial

(.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

/ ca sa d% $ mal : $cio$ame$t de l%ei$a $ia o del g i codegen_openerp.pC, e$tre ge$eraci i ge$eraci de mFd l 4pe$ERP des de l%ei$a $ia, cal rei$iciar l%ei$a, do$cs sem5la q e e$ alg $es ocasio$s, la ge$eraci $o parteix de >ero, si$ q e a:egeix el codi ge$erat al codi ge$erat e$ la ge$eraci pr+0ia. /ixS mateix, cal ge$erar el mFd l e$ el mateix directori o$ es tro5a el diagrama $ia5 do$cs del co$trari es ge$era $ mFd l 5 it. Cal te$ir e$ compte q e el g i codegen_openerp.pC :acilitat e$ el mFd l uml_dia per la 0ersi @.0 d%4pe$ERP, $o ge$era correctame$t l%ar5re de me$Js adeq at a la 0ersi G.1 d%4pe$ERP. Recordem q e el me$J o$ 8a0ia d%estar 5icat el ma$te$ime$t correspo$e$t a $a classe s%i$dica0a e$ el camp estereotip de les propietats de la classe. E$ co$seqP+$cia, a5a$s d%i$stalVlar $ mFd l ge$erat per $ia am5 el g i codegen_openerp.pC de la 0ersi @.0, e$ $ ser0idor 4pe$ERP G.1, caldr# retocar la de:i$ici de me$Js e$ el mFd l ge$erat. S posa$t q e 8em i$corporat els di0ersos retocs i$dicats :i$s ara al diagrama uml_dia origi$al, procedim a e$registrar-lo am5 $om school_.1.dia i procedim a ge$erar el mFd l school. /m5 moti de te$ir acc3s a la 8istFria de les di0erses millores i$corporades al diagrama $ia5 correspo$e$ts al mFd l school, a:egirem $ s :ix $ m+ric _55 a les di0erses 0ersio$s q e a$em ge$era$t.

Per a poder i$stalVlar el mFd l school aq S ge$erat, cal retocar els me$Js tal i com s%i$dica al :i$al de l%a$$ex M!$stalVlaci de Bia am5 P86to$ KP6BiaL, e$ [i$do7s, per dese$0ol par mFd ls 4pe$ERPN, tilit>a$t els me$Js i$dicats e$ school_.1_menus.tBt, :itxer 5icat a l%apartat MBiagrames BiaN dels a$$exos del 7e5. Iam53 tro5are el mFd l =a preparat sota el $om school_.1.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

M10. Sistemes de gesti empresarial

(&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

/5a$s d%i$stalVlar el $o mFd l school, si a l%empresa o$ pe$sem i$stalVlar-8o 8i 8a i$stalVlat el mFd l uml_test, cal desi$stalVlar-lo, do$cs am5ds mFd ls te$e$ ta les coi$cide$ts i s$ i$compati5les i, posteriorme$t, esta5lir $a co$$exi am5 la 5ase de dades de PostgreSDA i elimi$ar les ta les ge$erades pel mFd l uml_test9 school_pro4essor, school_course, school_event, school_student i course_student_su#scription_rel. U$a 0egada i$stalVlat el $o mFd l school, la 5ase de dades co$ti$dr# les ta les9 school_pro4essor, school_course, school_course_event, school_student i school_student_course_rel.

1.2.2.

)isse!/ del model am- P/t:o!

A%ei$a de diagramaci $ia, am5 l%exte$si per a ge$erar mFd ls per a 4pe$ERP, permet disse$6ar diagrames UMA a partir dels q als es pot ge$erar mFd ls per 4pe$ERP. Aes possi5ilitats q e permet l%ei$a $ia s$, perF, limitades i, e$ co$seqP+$cia, e$s cal apre$dre com escri re directame$t els mFd ls tilit>a$t els lle$g atges P6t8o$ i OMA. U$ mFd l d%4pe$ERP i$corpora, e$ el se i$terior, tots els eleme$ts del patr model0ista-co$trolador e$ el q e es 5asa el dese$0ol pame$t d%4pe$45=ect. A%ei$a $ia permet de:i$ir el model 0ia diagrama UMA i l%exte$si per a ge$erar mFd ls per a 4pe$ERP e$s :acilita el mFd l q e co$t39 El model, de:i$it 0ia lle$g atge P6t8o$, correspo$e$t al diagrama UMA disse$6at. U$a 0ista, de:i$ida 0ia lle$g atge OMA, ge$erada de :orma a tom#tica. U$ co$trolador 5 it, e$ $o 8a0er disse$6at m+todes. El $ostre o5=ecti :i$al 3s disse$6ar mFd ls tilit>a$t directame$t el lle$g atge P6t8o$ per al model i el co$trolador, i el lle$g atge OMA per a la 0ista. Come$cem am5 el co$eixeme$t de l%estr ct ra i$ter$a d% $ mFd l i am5 el disse$6 del model e$ P6t8o$. E$ el -ec)nical 'emento d%4pe$ERP 8i tro5are el recordatori so5re tot el q + cal sa5er respecte el disse$6 del model.

Est uctu a d%u! m3dul


Els mFd ls d%4pe$ERP s% 5iq e$ di$s la carpeta addons 5icada e$ alg $a s 5carpeta d%o$ s%8a i$stalVlat 4pe$ERP. 2o podem do$ar $a 5icaci co$creta do$cs 8a a$at ca$0ia$t am5 les 0ersio$s d%4pe$ERP. /ixS, per exemple9 E$ les 0ersio$s @.0 i G.0 d%4pe$ERP per a [i$do7s, s% 5iq e$ a9
camMOnNs%#icatOpenER2*Kerver*addons

E$ la 0ersi G.1 d%4pe$ERP per a [i$do7s, a9


camMOnNs%#icatOpenER2*Kerver*server*openerp*addons

Els passos $ecessaris per a crear $ $o mFd l s$9

M10. Sistemes de gesti empresarial

(E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

1. Crear la s 5carpeta di$s la carpeta addons 2. Crear el :itxer __init__.pC, $ecessari per a q e P6t8o$ co$sideri q e el co$ti$g t de la carpeta correspo$ a $ paq et. (. Crear $ arxi de descripci del mFd l, q e s%8a d%a$ome$ar __openerp__.pC. Fi$s la 0ersi @.0 s%a$ome$a0a __terp__.pC i les 0ersio$s posteriors co$ti$ e$ admete$t aq est $om per qPestio$s de compati5ilitat. -. Crear els :itxers P6t8o$ q e 8a$ de co$te$ir les classes, am5 els atri5 ts i els m+todes. E$ aq ests :itxers es de:i$eix el model i el co$trolador Karq itect ra M*CL. @. Crear els :itxers OMA per la gesti de les dades K0istes, accio$s, me$Js, dades d%exemple,...L. E$ aq ests :itxers es de:i$eix la 0ista Karq itect ra M*CL. G. Be :orma opcio$al, crear i$:ormes, assiste$ts i :l xos de tre5all, q e pode$ estar e$ q alse0ol lloc di$s la carpeta, perF es recoma$a 5icar-los e$ s 5carpetes a$ome$ades report, 3iDard i 3or 4lo3. .. Be :orma opcio$al, i$corporar trad ccio$s i regles de seg retat, q e pode$ estar e$ q alse0ol lloc di$s la carpeta, perF 3s recoma$a 5icar-les e$ s 5carpetes a$ome$ades i1On i securitC. 4pe$45=ect tilit>a $a $ome$clat ra di:ere$t a la $ormalme$t tilit>ada e$ P44 per :er re:er+$cia a classes i o5=ectes. E$ 4pe$45=ect, les classes de P44 s%a$ome$e$ o5=ectes i els o5=ectes de P44 s%a$ome$e$ rec rsos. Cal te$ir-8o e$ compte e$ co$s ltar la doc me$taci d%4pe$45=ect.

I!icialit&aci del m3dul# 'itxe __init__.py


El :itxer __init__.pC 3s exec tat, com e$ q alse0ol mFd l P6t8o$, e$ el proc3s d%i$icialit>aci del programa. E$ aq est :itxer cal sit ar tots els import de :itxers P6t8o$ q e cal carregar per a l%exec ci del programa. /ixS, si el mFd l co$t3 $ :itxer de $om module.pC q e co$t3 la descripci de les classes, caldr# i$corporar, di$s el :itxer __init__.pC, la i$str cci9
import module

45ser0e el co$ti$g t del :itxer __init__.pC de q alse0ol dels mFd ls q e i$corpora 4pe$ERP o del mFd l school ge$erat.

)esc ipci del m3dul# 'itxe ;;openerp__.py


Iot mFd l d%4pe$ERP 8a de co$te$ir $ :itxer a$ome$at __openerp__.pC K:i$s la 0ersi @.0 s%a$ome$a0a __terp__.pCL 5icat a l%arrel de la carpeta correspo$e$t al mFd l. /q est :itxer 8a de te$ir :ormat d% $ diccio$ari de P6t8o$ i 3s el respo$sa5le de

M10. Sistemes de gesti empresarial

-0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

determi$ar, e$tre altre coses9 El $om, descripci, a tors, llic+$cia, 0ersi, categoria,... del mFd l. Els :itxers OMA q e sera$ a$alit>ats d ra$t l%arre$cada del ser0idor 4pe$ERP Aes depe$d+$cies am5 altres mFd ls. /q est :itxer 8a de co$te$ir $ diccio$ari P6t8o$ am5 els segPe$ts 0alors9 name9 El $om del mFd l, e$ a$gl+s version9 Aa 0ersi del mFd l description9 Aa descripci del mFd l KtextL author9 A%a tor del mFd l 3e#site9 El lloc 7e5 de l%a tor del mFd l license9 Aa llic+$cia del mFd l Kper de:ecte, la q e correspo$ a la 0ersi de ser0idor 4pe$ERP o$ s%i$stalVlar# el mFd lL categorC9 Categoria a la q e perta$6 el mFd l. Iext separat per 5arres ) am5 la r ta =er#rq ica de les categories depends9 Alista P6t8o$ de mFd ls dels q e dep+$ aq est mFd l. El mFd l 5ase s%acost ma a a:egir per q + co$t3 dades tilit>ades e$ 0istes, i$:ormes,... init_Bml9 Alista P6t8o$ de $oms de :itxers OMA q e es carregara$ e$ i$iciar el ser0idor 4pe$ERP am5 l%opci M-init$moduleN. Aes r tes dels :itxers 8a$ de ser relati0es a la carpeta o$ 3s el mFd l. E$ aq esta llista s%acost ma a posar els :itxers relati s a de:i$ici de workflows i dades a carregar e$ el proc3s d%i$stalVlaci del mFd l. update_Bml9 Alista P6t8o$ de $oms de :itxers OMA q e es carregara$ e$ i$iciar el ser0idor 4pe$ERP am5 l%opci M-update$moduleN. Aes r tes dels :itxers 8a$ de ser relati0es al directori o$ est# el mFd l. E$ aq esta llista s%i$clo e$ els :itxers relati s a 0istes, i$:ormes i assiste$ts. demo_Bml9 Alista P6t8o$ de $oms de :itxers OMA q e es carregara$ si s%8a i$stalVlat el ser0idor 4pe$ERP am5 dades de demostraci o exemple. Aes r tes dels :itxers 8a$ de ser relati0es al directori o$ 3s el mFd l installa#le9 Els 0alors permesos s$ True o False i determi$a si el mFd l 3s o $o 3s i$stalVla5le active9 Els 0alors permesos s$ True o False i determi$a si el mFd l ser# i$stalVlat a tom#ticame$t e$ el proc3s de creaci de l%empresa. Per de:ecte, False. Com =a de0e sa5er, els diccio$aris e$ P6t8o$ es de:i$eixe$ e$tre !" i les parelles clau)valor 0a$ separades per comes. /ixS mateix, les llistes es de:i$eixe$ e$tre GH i els se s 0alors 0a$ separats per comes.

45ser0e el co$ti$g t del :itxer __openerp__.pC de q alse0ol dels mFd ls q e i$corpora 4pe$ERP o el :itxer __terp__.pC del mFd l school ge$erat per l%ei$a $ia.

M10. Sistemes de gesti empresarial

-1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

)e'i!ici d%o-<ectes "pe!ERP am- P/t:o!


El model e$ 4pe$ERP es descri a tra03s de classes escrites e$ P6t8o$ i 4pe$45=ect s%e$carrega de :er-les persiste$ts e$ el S"BB PostgreSDA. Per de:i$ir $ o5=ecte KclasseL d%4pe$ERP, cal de:i$ir $a classe de P6t8o$ i posteriorme$t i$sta$ciar-la, :et q e pro0oca la creaci de l%o5=ecte KclasseL d%4pe$ERP. Aa classe 8a d%8eretar o5ligatFriame$t de la classe osv del mFd l osv. A%esq elet de la classe P6t8o$ q e permet de:i$ir l%o5=ecte 4pe$ERP t3 la :orma9
class name_o4_the_o#ject :osv.osv;) _name $ Ename.o4.the.o#jectE _columns $ !..." ... name_o4_the_o#ject:;

Aes classes P6t8o$ q e permete$ de:i$ir o5=ectes KclassesL d%4pe$ERP te$e$ dos atri5 ts o5ligatoris i altres opcio$als. Els atri5 ts o5ligatoris s$9 _name9 2om de l%o5=ecte KclasseL d%4pe$ERP. /q est $om s% tilit>a de :orma a tom#tica per ge$erar el $om de la ta la de PostgreSDA, ca$0ia$t els p $ts per g io$s 5aixos. _columns9 Biccio$ari P6t8o$ am5 la declaraci de les dades de l%o5=ecte KclasseL d%4pe$ERP, q e passara$ a ser les col m$es de la ta la de PostgreSDA. Els atri5 ts opcio$als s$9 _auto9 Els 0alors possi5les s$ True i False. Per de:ecte True. Betermi$a si s%8a de ge$erar la ta la PostgreSDA a partir de la de:i$ici de l%o5=ecte 4pe$ERP. El 0alor False s% tilit>a per o5=ectes 4pe$ERP $o persiste$ts q e es 5ase$ e$ 0istes de:i$ides e$ PostgreSDA. A%aplicaci de l%atri5 t _auto q eda palesa e$ el disse$6 d%i$:ormes i q adres de coma$dame$t. _constraints9 Be:i$ici de restriccio$s so5re l%o5=ecte, de:i$ides am5 codi P6t8o$. _s,l_constraints9 Be:i$ici de restriccio$s SDA so5re l%o5=ecte, de:i$ides a la correspo$e$t ta la de PostgreSDA. _de4aults9 Biccio$ari P6t8o$ q e co$t3 els 0alors per de:ecte per les dades Kde:i$ides a _columnsL de l%o5=ecte KclasseL d%4pe$ERP q e 8o precisi$. _inherit9 45=ecte KclasseL d%4pe$ERP del q al 8ereta l%o5=ecte KclasseL q e estem de:i$i$t. _inherits9 Alista d%o5=ectes KclassesL d%4pe$ERP dels q als 8ereta l%o5=ecte KclasseL q e estem de:i$i$t. Aa llista 8a de seg ir la si$taxi d% $ diccio$ari P6t8o$ de la :orma9 !Enom_o#jecte_pareE)Enom_de_campE'..." _log_access9 *alors possi5les True i False. Per de:ecte, True. !$dica si els accessos d%escript ra als rec rsos Ko5=ectesL 8a$ de q edar e$registrats. E$ cas a:irmati , de :orma a tom#tica es cree$ a la correspo$e$t ta la de PostgreSDA les col m$es create_uid, create_date, 3rite_uid i 3rite_date per e$registrar els accessos d%escript ra.

M10. Sistemes de gesti empresarial

-2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

_order9 2om dels atri5 ts tilit>ats per orde$ar els res ltats dels m+todes de cerca i lect ra. Per de:ecte, s% tilit>a el camp _id ge$erat a tom#ticame$t e$ totes les ta les de PostgreSDA correspo$e$ts a o5=ectes KclassesL d%4pe$ERP. Exemples9 _order $ EnameE _order $ Edate_order descE _rec_name9 2om de l%atri5 t de l%o5=ecte KclasseL d%4pe$ERP q e co$t3 el $om i$:ormati de cada rec rs Ko5=ecteL co$cret. Per de:ecte EnameE. _se,uence9 2om de la seqP+$cia SDA q e gestio$a els ide$ti:icadors Kco$ti$g t del camp _idL pels rec rsos d%aq est o5=ecte KclasseL d%4pe$ERP. Per de:ecte, Enom<eLaTaula_id_se,E. _s,l9 Codi SDA a exec tar e$ la creaci de l%o5=ecte, e$ cas q e _auto sig i True. _ta#le9 2om de la ta la SDA si es 0ol q e sig i di:ere$t del $om a tom#tic a partir del $om de l%o5=ecte s 5stit i$t els p $ts per g io$s 5aixos. U$a 0egada prese$tats els possi5les atri5 ts de les classes P6t8o$ disse$6ades per ge$erar o5=ectes KclassesL d%4pe$ERP, e$s cal e$di$sar-$os e$ els possi5les co$ti$g ts d%alg $s d%aq ests atri5 ts.

7ipus de camps
A%atri5 t _columns de la classe P6t8o$ q e de:i$eix l%o5=ecte KclasseL d%4pe$ERP 8a de co$te$ir $ diccio$ari P6t8o$ am5 la de:i$ici dels atri5 ts de l%o5=ecte d%4pe$ERP, a partir dels camps K4ieldsL prede:i$its a la classe osv. Aa si$taxis ge$eral per de:i$ir $a col m$a 3s la segPe$t9
Enom_campE)4ields.tipus_de_camp:parImetres;

o$ tipus_de_camp 8a de ser $ dels tip s :acilitats per la classe osv i el co$ti$g t de parImetres dep+$ del tip s del camp. Ri 8a di0erses categories de camps9 Camps simples9 #oolean, integer, 4loat, char, teBt, date, datetime, #inarC i selection. Camps relacio$als9 manC2one, one2manC, manC2manC i related. Camps 4unction. Camps propertC. Els tip s de camps simples i relacio$als 8a5it als KmanC2one, one2manC i manC2manCL =a e$s s$ :amiliars deg t a la se0a tilit>aci e$ el disse$6 de mFd ls am5 l%ei$a de diagramaci $ia. Per tots aq ests camps, el co$ti$g t de parImetres e$ la crida
4ields.tipus_de_camp :parImetres;

es correspo$ am5 el co$ti$g t de l%espai 0alor e$ la de:i$ici de cada atri5 t de classe mit=a$'a$t l%ei$a $ia.

M10. Sistemes de gesti empresarial

-(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Exemples d% tilit>aci dels tip s de camps simples i relacio$als 8a5it als KmanC2one, one2manC i manC2manCL la pode tro5ar a l%apartat MBisse$6 d%atri5 ts de classe am5 $iaN e$ aq est doc me$t. E$ aq est p $t 3s co$0e$ie$t o5ser0ar les classes del :itxer school.pC ge$erat a partir de l%ei$a $ia. 45ser0em q e les classes de:i$ides i$corpore$ J$icame$t els atri5 ts o5ligatoris _name i _columns. E$ la classe P6t8o$ $o 8i o5ser0em cap atri5 t opcio$al K0alors per de:ecte, restriccio$s,...L i e$ l%o5=ecte KclasseL d%4pe$ERP $om3s apareixe$ camps simples i relacio$als 8a5it als K manC2one, one2maC i manC2manCL. *egem els tip s de camps e$cara desco$eg ts K related, 4unction i propertCL i posteriorme$t millorarem el disse$6 del model del mFd l school.

7ipus elacio!al related


Els camps related permete$ accedir a $ camp d% $ o5=ecte relacio$at des del propi o5=ecteQ 3s a dir, com si de camps e$cade$ats es tract3s. Com a exemple, s posem q e e$ $ mFd l d%4pe$ERP te$im les classes exempli:icades e$ el diagrama UMA de la :ig ra 1-1-. E$ $ mFd l per a 4pe$ERP, a la classe CitC 8i 8a r# $ camp relacio$al manC2one cap a la classe Ktate, i a la classe Ktate 8i 8a r# $ camp relacio$al manC2one cap a la classe CountrC. U$ camp related e$s permet accedir des de la classe CitC a la classe CountrC 0ia la classe Ktate.
.igura /0/H. $issen@ B'L am% dues relacions man@3one

Aa de:i$ici d% $a col m$a related 8a de seg ir la si$taxis9


EnomE) 4ields.related:Ecamp2ont2ropiE'EcampOnAccedirE' tCpe$Etipus<elCampE' string$Eeti,ueta9ouCampE G'store$True&FalseHG'...H;'

Els p $ts s spe$si s del :i$al i$diq e$ q e 8i pot 8a0er m3s par#metres sego$s el tip s del camp. /ixS, e$ els camps de tip s EmanC2oneE, caldr# a:egir $ par#metre relation per i$dicar el $om de la classe relacio$ada. El par#metre store Kper de:ecte FalseL permet i$dicar si el 0alor accedit 8a de q edar e$registrat a la 5ase de dades Kcas clar de red $d#$ciaL per tal de :acilitar $a ma=or e:ici+$cia d%4pe$ERP e$ els processos de recerca i de lect ra. E$ cas d%acti0ar aq esta red $d#$cia, els 0alors sempre s$ ma$ti$g ts per 4pe$ERP i mai pels s aris. /ixS, per aco$seg ir q e la classe CitC de la :ig ra 1-1- p g i accedir a l%ide$ti:icador de la classe CountrC 0ia la classe Ktate, 8a rSem de te$ir9

M10. Sistemes de gesti empresarial

--

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

5 <ins la classe module.state) _columns) ! ... EcountrC_idE) 4ields.manC2one:Emodule.countrCE' ECountrCE;' ... " 5 <ins la classe module.citC) _columns) ! ... Estate_idE) 4ields.manC2one:Emodule.stateE'EKtateE;' EcountrC_idE) 4ields.related:Estate_id'EcountrC_idE' tCpe$EmanC2oneE' relation$Emodule.countrCE' string$ECountrCE'store$False;' ... "

U$ cas real d% tilit>aci el podem o5ser0ar e$ el disse$6 de l%o5=ecte KclasseL res.partner d%4pe$ERP, o$ 0eiem les col m$es citC, 4unction, su#name, phone, mo#ile, countrC i email com a camps related a tra03s del camp address de la mateixa classe9
_columns $ ! ... EaddressE) 4ields.one2manC:Eres.partner.addressE' Epartner_idE'EContactsE;' ... EcitCE) 4ields.related:EaddressE' EcitCE' tCpe$EcharE' string$ECitCE;' E4unctionE) 4ields.related:EaddressE' E4unctionE' tCpe$EcharE' string$E4unctionE;' Esu#nameE) 4ields.related:EaddressE' EnameE' tCpe$EcharE' string$EContact 9ameE;' EphoneE) 4ields.related:EaddressE' EphoneE' tCpe$EcharE' string$E2honeE;' Emo#ileE) 4ields.related:EaddressE' Emo#ileE' tCpe$EcharE' string$EPo#ileE;' EcountrCE) 4ields.related:EaddressE' EcountrC_idE' tCpe$EmanC2oneE' relation$Eres.countrCE'string$ECountrCE;' EemailE) 4ields.related:EaddressE' EemailE' tCpe$EcharE' siDe$2Q.' string$EE-mailE;' ... "

Exemple d%utilit&aci dels camps related A%o5=ecte KclasseL school.pro4essor del mFd l school q e estem millora$t, i$corpora l%atri5 t address_id q e permet accedir a l%adre'a del pro:essor Ko5=ecte res.partner.addressL. E$ exec tar el :orm lari de ma$te$ime$t de pro:essors, apareix el camp Pri ate #ddress am5 el co$ti$g t ide$ti:icador de l%adre'a. Si es 0ol te$ir acc3s a tota la i$:ormaci co$ti$g da a l%adre'a Kcarrer, tel+:o$, corre electrF$ic,..L, el :orm lari permet accedir a la :itxa de l%adre'a.

M10. Sistemes de gesti empresarial

-@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

!magi$em-$os q e 3s importa$t, per $osaltres, q e el tel+:o$ de cada pro:essor es 0egi directame$t a la :itxa del pro:essor, se$se 8a0er d%accedir a la :itxa de l%adre'a. Per aco$seg ir-8o, com q e el tel+:o$ del pro:essor resideix a res.partner.address i =a accedim a aq est o5=ecte 0ia el camp address_id, podem de:i$ir el segPe$t camp _related9
EphoneE)4ields.related:Eaddress_idE'EphoneE'tCpe$EcharE' siDe$RQ'string$E2honeE'store$False' readonlC$True;'

Pode e:ect ar aq esta modi:icaci directame$t e$ el programa P6t8o$ school.pC, perF $o podre o5ser0ar-$e l%e:ecte per q + e$cara $o sa5em com a:egir camps e$ els :itxers OMA q e proporcio$e$ la 0ista dels programes. Si e:ect e , perF, la i$serci del $o camp, a tra03s de l%ei$a $ia i procedi a ge$erar de $o el mFd l per a 4pe$ERP i act alit>e el mFd l i$stalVlat, podre 0e re%$ l%e:ecte. Pode apro:itar aq esta act alit>aci per ca$0iar l%arxi __terp__.pC per __openerp__.pC i act alit>ar el se co$ti$g t Ka tor, 0ersi,...L Per a poder i$stalVlar el mFd l school ge$erat, cal retocar els me$Js tal i com s%i$dica al :i$al de l%a$$ex M!$stalVlaci de Bia am5 P86to$ KP6BiaL, e$ [i$do7s, per dese$0ol par mFd ls 4pe$ERPN, tilit>a$t els me$Js i$dicats e$ school_.2_menus.tBt, :itxer 5icat a l%apartat MBiagrames BiaN dels a$$exos del 7e5. Iam53 tro5are el mFd l =a preparat sota el $om school_.2.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

7ipus function
Els camps 4unction sim le$ camps reals perF es calc le$ mit=a$'a$t $a : $ci P6t8o$ e$lloc d%emmagat>emar-se a la 5ase de dades PostgreSDA. E$ casos especials, per a gme$tar la 0elocitat de co$s lta d%4pe$ERP i :acilitar les co$s ltes, es :a$ red $da$ts a la 5ase de dades, 3s a dir, s%emmagat>eme$ a la 5ase de dades, perF sempre s$ calc lats i act alit>ats a tra03s de : $cio$s i mai pels s aris. Aa de:i$ici d% $a col m$a 4unction 8a de seg ir la si$taxis9
EnomE) 4ields.4unction:4nct' arg$9one' 4nct_inv$9one' 4nct_inv_arg$9one' tCpe$EFloatE' 4nct_search$9one' string$Eeti,ueta9ouCampE' store$False' multi$False G'...H;'

o$9 Els par#metres q e 0a$ acompa$6ats d% $ sSm5ol $>alor $o s$ o5ligatoris i el

M10. Sistemes de gesti empresarial

-G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

0alor i$dicat 3s el q e es co$sidera e$ cas de $o i$dicar el par#metre. tCpe9 Ws el tip s de camp retor$at per la : $ci. Pot ser q alse0ol tip s excepte 4unction. Els p $ts s spe$si s del :i$al i$diq e$ q e 8i pot 8a0er m3s par#metres sego$s el tip s del camp. /ixS, e$ els camps de tip s EmanC2oneE, caldr# a:egir $ par#metre o#j per i$dicar el $om de la classe relacio$ada. store9 Per i$dicar si el camp 8a de residir a la ta la de la 5ase de dades Kred $d#$ciaL multi9 Per i$dicar q e el c#lc l de la : $ci s%e:ect T per a 0aris camps, a ca sa de q e la mateixa : $ci 3s i$0ocada e$ di:ere$ts camps K0e re, com exemple, el mFd l auction d%4pe$ERPL 4nct9 Ws el m+tode q e calc la el 0alor del camp. Ws $ par#metre o5ligatori i 8a d%existir a5a$s de declarar el camp : $cio$al. Ra de retor$ar, o5ligatFriame$t, $ diccio$ari de parelles de la :orma !id1)valor1' id2)valor2'..." o$ id1, id2,... 8a$ de ser ide$ti:icadors d%o5=ectes i valor1, valor2,... els correspo$e$ts 0alors q e 8a$ de correspo$dre am5 el tip s i$dicat a tCpe. Aa si$taxis 8a de ser9
de4 4nct:sel4' cr' uid' ids' 4ield_name' arg' conteBt;

4nct_inv9 Ws si$taxis 8a de ser9

$ m+tode

tilit>at per escri re

$ 0alor e$lloc del camp. Aa

de4 4nct_inv:o#j' cr' uid' id' name' value' 4nct_inv_arg' conteBt;

4nct_search9 Ws el m+tode tilit>at per a :er recerq es per aq est camp. Ra de retor$ar la llista de t ples q e especi:iq i$ el criteri de cerca, a tilit>ar pel m+tode search :acilitat per 4pe$45=ect. Aa si$taxis 8a de ser9
de4 4nct_search:o#j' cr' uid' o#j' name' args;

Els par#metres arg i arg_inv sem5la q e 8a$ de ser0ir per poder passar par#metres a les : $cio$s o m+todes 4nct i 4nct_inv, perF $o 8i 8a doc me$taci al respecte $i cap mFd l d%4pe$ERP K0ersi G.1L q e els tilit>i.

El dese$0ol pame$t de m+todes KlFgica de $egociL e$ 4pe$ERP, $ecessari per als camps : $cio$als, es tro5a a l%apartat M4pe$ERP9 Aa 0ista i el co$troladorN Els mFd ls d%4pe$ERP esta$ ple$s d%exemples de camps : $cio$als, perF $o tots s$ se$>ills d%e$te$dre, e$ $a primera aproximaci al tema. /ixS, per i$iciar-$os e$ els camps : $cio$als, podem ce$trar-$os e$ l%atri5 t num#er_o4_daCs del mFd l hr_holidaCs. Seria i$teressa$t q e, si $o el te$i i$stalVlat, procedSssi a i$stalVlar aq est mFd l, per poder compro0ar el q e come$tarem a co$ti$ aci. Fixe -0os e$ la part de la de:i$ici de la classe q e e$s i$teressa come$tar9
class hr_holidaCs:osv.osv;) ... de4 _compute_num#er_o4_daCs:sel4' cr' uid' ids' name'

M10. Sistemes de gesti empresarial

-.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

args' conteBt$9one;) result $ !" 4or h in sel4.#ro3se:cr' uid' ids' conteBt$conteBt;) i4 h.tCpe$$EremoveE) resultGh.idH $ -h.num#er_o4_daCs_temp else) resultGh.idH $ h.num#er_o4_daCs_temp return result _columns $ ! ... EtCpeE) 4ields.selection: G:EremoveE'ELeave Re,uestE;' :EaddE'EAllocation Re,uestE;H' ERe,uest TCpeE' re,uired$True' readonlC$True' ...;' Enum#er_o4_daCs_tempE) 4ields.4loat:E9um#er o4 <aCsE' readonlC$True' states$!Edra4tE)G:EreadonlCE'False;H";' Enum#er_o4_daCsE) 4ields.4unction:_compute_num#er_o4_daCs' string$E9um#er o4 <aCsE'store$True;' ... " ...

El m+tode _compute_num#er_o4_daCs crida el m+tode #ro3se :acilitat per 4pe$45=ect. Aa llista dels m+todes :acilitats per 4pe$45=ect es tro5a a l%apartat M4pe$ERP9 Aa 0ista i el co$troladorN. Fixem-$os q e num#er_o4_daCs 3s $ atri5 t : $cio$al q e, malgrat ser calc lat mit=a$'a$t $a : $ci, el se res ltat resta emmagat>emat a la 5ase de dades, deg t a store$True. Podem compro0ar, mira$t la descripci de la ta la hr_holidaCs a la ta la de PostgreSDA, l%exist+$cia de la col m$a num#er_o4_daCs. Si tilit>e el mFd l, o5ser0are q e permet gestio$ar, per cada empleat, els dies d%a5s+$cia i els dies tre5allats :ora del cale$dari la5oral. Cada rec rs Ko5=ecteL de l%o5=ecte KclasseL hr.holidaCs d%4pe$ERP correspo$ a $ dels dos tip s possi5les K add o removeL sego$s la de:i$ici de l%atri5 t tCpe. A%atri5 t num#er_o4_daCs_temp co$t3 el $om5re de dies a:ectats, sempre e$ positi . E$ ca$0i, l%atri5 t num#er_o4_daCs 0ol co$te$ir el $om5re de dies a:ectats, e$ positi si es tracta de dies de tre5all addicio$al, i e$ $egati si es tracta de dies d%a5s+$cia. E$ co$seqP+$cia, el camp num#er_o4_daCs es pot calc lar a partir del camp num#er_o4_daCs_temp i per aixF es de:i$eix com $ camp : $cio$al, q e exec ta el m+tode _compute_num#er_o4_daCs de:i$it pr+0iame$t. 45ser0em tam53 q e el m+tode i$0ocat retor$a el diccio$ari a$ome$at result :ormat per $a J$ica parella o$ la cla 3s l%ide$ti:icador del rec rs so5re el q + s%exec ta i el 0alor 3s el $om5re de dies calc lats.

M10. Sistemes de gesti empresarial

-&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

7ipus property
Els camps propertC s$ camps di$#mics am5 drets d%acc3s especS:ics, q e permete$ co$te$ir di:ere$ts 0alors e$ : $ci de la compa$6ia o del tercer. U$ exemple de : $cio$ame$t dels camps propertC el podem 0e re e$ els camps Compte a co%rar i Compte a pagar de l%apartat Compta%ilitat de la :itxa dels tercers, o$ els 0alors q e proposa 4pe$ERP dep+$ de la compa$6ia a la q e perta$6 l% s ari q e est# gestio$a$t el tercer. Per a compro0ar-8o, $ecessitem acomplir els segPe$ts req erime$ts9 Cal te$ir m3s d% $a compa$6ia a la $ostra empresa. Per exemple, s posem q e a l%empresa q e 8em a$at tilit>a$t KEmpresaH!4CL 8i te$im creades les compa$6ies ES4, B/I i CF dedicades als correspo$e$ts est dis. Cal te$ir i$stalVlat el mFd l o:icial de compta5ilitat K #ccounting F .inance I account_accountantL i te$ir desplegat el pla compta5le a les di0erses compa$6ies.
Fig ra 1-1@. Alista de par#metres Kcamps propertCL e$ $a empresa d%4pe$ERP

/m5 els req erime$ts 0alidats, $a0eg em :i$s l%apartat !ettings*Configuraci* ParJmetres*ParJmetres de configuraci. /ll# o5ser0em $a llista de par#metres Ks$ els camps propertC de:i$its e$ els mFd ls act alme$t i$stalVlatsL. Si els orde$e per $om, o5ser0are :#cilme$t, com mostra la :ig ra 1-1@, q e els par#metres propertC_account_receiva#le i propertC_account_paCa#le es repeteixe$ q atre 0egades, $a per cadasc $a de les compa$6ies existe$ts. Si editem q alse0ol dels 0 it par#metres, o5ser0arem, :ig ra 1-1G, q e el :orm lari co$t3

M10. Sistemes de gesti empresarial

-E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

el camp ,alor am5 $ co$ti$g t q e podem modi:icar. Podem o5ser0ar q e el co$ti$g t pel camp ,alor 3s id+$tic e$ les q atre compa$6ies per a $ mateix par#metre, do$at q e 3s el 0alor q e el proc3s de co$:ig raci de compta5ilitat assig$a Kcompte compta5le -10000 per a pro0eTdors i compte compta5le -(0000 per a clie$tsL, perF podem modi:icar-lo per a la compa$6ia q e i$teressi. /m5 aq esta possi5ilitat de co$:ig raci perso$alit>ada per a cada compa$6ia, 4pe$ERP proposar#, e$ els camps Compte a co%rar i Compte a pagar de l%apartat Compta%ilitat de la :itxa dels tercers, el 0alor correspo$e$t a la compa$6ia q e ti$g i assig$at l% s ari q e est# gestio$a$t el tercer. / m3s, per cada tercer al q e, per $ d%aq ests camps propertC, s%assig$i $ 0alor di:ere$t del q e li pertoca sego$s la compa$6ia, 4pe$ERP a:egeix $ $o registre e$ el :orm lari de la :ig ra 1-1@, i$dica$t a la col m$a Recurs el $om de l%o5=ecte q e t3 $ 0alor di:ere$t. Els registres q e te$e$ 5 ida la col m$a Recurs s$ els q e co$te$e$ el 0alor per de:ecte a assig$ar al camp propertC.
Fig ra 1-1G. /ssig$aci de 0alor a $ camp propertC.

U$a 0egada =a co$eixem el : $cio$ame$t dels camps propertC a $i0ell d% s ari, e$s pertoca sa5er com de:i$ir-los e$ $a classe d%4pe$ERP i 8o 0e rem seg i$t l%exemple dels camps Compte a Co%rar i Compta a Pagar de la :itxa dels tercers. Sem5la clar q e el lloc o$ 8em de cercar aq ests camps t3 a 0e re am5 l%o5=ecte KclasseL res.partner d%4pe$ERP. Si :em $a llada a aq esta classe, de:i$ida di$s el mFd l #ase d%4pe$ERP K:itxer res_partner.pCL $o 8i tro5arem cap dels dos camps propertC i$dicats. Els camps q e cerq em es tro5e$ di$s l%o5=ecte res.partner

M10. Sistemes de gesti empresarial

@0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

de:i$it di$s el mFd l account K:itxer partner.pC del mFd l accountL q e 3s $a classe deri0ada de la classe res.partner pri$cipal Kl%existe$t e$ el mFd l #aseL. *egem la part correspo$e$t als dos camps propertC de la de:i$ici d%aq esta classe deri0ada9
class res_partner:osv.osv;) _name $ Eres.partnerE _inherit $ Eres.partnerE _description $ E2artnerE ... _columns $ ! ... EpropertC_account_paCa#leE) 4ields.propertC:Eaccount.accountE' tCpe$EmanC2oneE' relation$Eaccount.accountE' string$6Account 2aCa#le6' vie3_load$True' domain$6G:EtCpeE' E$E' EpaCa#leE;H6' help$6This account 3ill #e used instead o4 the de4ault one as the paCa#le account 4or the current partner6' re,uired$True;' EpropertC_account_receiva#leE) 4ields.propertC:Eaccount.accountE' tCpe$EmanC2oneE' relation$Eaccount.accountE' string$6Account Receiva#le6' vie3_load$True' domain$6G:EtCpeE' E$E' Ereceiva#leE;H6' help$6This account 3ill #e used instead o4 the de4ault one as the receiva#le account 4or the current partner6' re,uired$True;' ... "

=alo s pe de'ecte
Aa classe P6t8o$ per de:i$ir els o5=ectes d%4pe$ERP i$corpora l%atri5 t opcio$al _de4aults q e permet la de:i$ici dels 0alors per de:ecte per $ o 0aris tip s de dades simples de l%o5=ecte d%4pe$ERP. Els 0alors per de:ecte dels camps d% $ o5=ecte d%4pe$ERP es de:i$eixe$ e$ $ diccio$ari de la :orma9
_de4aults $ ! Enom_del_camp1E) 4unciS1 o valor1' Enom_del_camp2E) 4unciS2 o valor2' ...

"

45ser0em q e els 0alors per de:ecte Ksempre correspo$e$ts a tip s de dades simplesL pode$ ser 0alors est#tics o 0alors di$#mics res lta$ts de la crida de : $cio$s q e 8a$ d%estar declarades am5 a$terioritat a la de:i$ici del diccio$ari _de4aults. Aes : $cio$s a ser i$0ocades e$ o5ligatFriame$t - par#metres9 $ 0alor per de:ecte di$#mic, 8a$ de co$te$ir

o#j9 45=ecte osv correspo$e$t al rec rs q e s%est# crea$t cr9 C rsor de 5ase de dades

M10. Sistemes de gesti empresarial

@1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

uid9 !B de l% s ari q e est# do$a$t d%alta el rec rs conteBt9 El co$text act al K:acilitat pel clie$tL Els mFd ls d%4pe$ERP esta$ ple$s d%exemples d% tilit>aci de 0alors per de:ecte. /ixS, per exemple, o5ser0em els 0alors per de:ecte de l%o5=ecte res.users Kde:i$it e$ el :itxer res_users.pC di$s el mFd l #aseL ideat per gestio$ar els s aris de l%empresa gestio$ada per 4pe$ERP9
_de4aults $ ! Epass3ordE ) EE' EconteBt_langE) Een_%KE' EactiveE ) True' Emenu_idE) _get_menu' EcompanC_idE) _get_companC' EcompanC_idsE) _get_companies' Egroups_idE) _get_group' Emenu_tipsE) False "

E$ aq esta de:i$ici o5ser0em la coexist+$cia de 0alors est#tics K pass3ord, llenguatge, active i menu_tipsL i 0alors di$#mics K_get_menu, _get_companC, _get_companies i _get_groupL. Si o5ser0e la de:i$ici completa de la classe res.users, podre compro0ar com a5a$s de la de:i$ici del diccio$ari _de4aults, es tro5a la de:i$ici de di0erses : $cio$s, e$tre les q e 8i 8a les q atre : $cio$s i$0ocades des de _de4aults, i 0e re , tam53, q e les q atre : $cio$s te$e$ els par#metres sel4, cr, uid i conteBt. E$ ocasio$s, la de:i$ici d% $ 0alor per de:ecte est#tic s%e:ect a am5 la crida a $a : $ci lam#da de P6t8o$ se$se par#metres. Aa de:i$ici dels 0alors per de:ecte est#tics a l%a$terior exemple, s%8ag 3s pog t e:ect ar com9
_de4aults $ ! Epass3ordE ) lam#da @a) EE' EconteBt_langE) lam#da @a) Een_%KE' EactiveE ) lam#da @a) True' Emenu_idE) _get_menu' EcompanC_idE) _get_companC' EcompanC_idsE) _get_companies' Egroups_idE) _get_group' Emenu_tipsE) lam#da @a) False "

Per Jltim, per $o 0e re%s o5ligats a crear : $cio$s q e $om3s sig i$ i$0ocades e$ $ 0alor _de4aults, es pot tilit>ar les : $cio$s lam#da de P6t8o$ e$ el mateix mome$t d%e:ect ar la crida, estal0ia$t-$os la de:i$ici de la : $ci am5 $om. E$ el segPe$t codi correspo$e$t al diccio$ari _de4aults de la classe document.directorC K:itxer document_directorC.pC del mFd l documentL, o5ser0em la de:i$ici de d es : $cio$s lam#da9
_de4aults $ ! EcompanC_idE) lam#da s'cr'uid'c) s.pool.get:Eres.companCE;._companC_de4ault_get: cr' uid' Edocument.directorCE' conteBt$c;' Euser_idE) lam#da sel4'cr'uid'ctB) uid' EdomainE) EGHE' EtCpeE) EdirectorCE' Eressource_idE) .' Estorage_idE) _get_de4_storage' Eresource_4ind_allE) True'

M10. Sistemes de gesti empresarial

@2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

"

Exemple d%utilit&aci de l%at i-ut _defaults A%o5=ecte KclasseL school.pro4essor del mFd l school q e estem millora$t, i$corpora l%atri5 t contract co$siste$t e$ $a selecci e$tre dos possi5les 0alors. E$ el proc3s de creaci d% $ $o pro:essor podem o5ser0ar q e el camp contract apareix se$se 0alor per de:ecte. *olem de:i$ir q e el 0alor per de:ecte d%aq est camp sig i EtraineeE. /ixS mateix, o5ser0em q e l%o5=ecte KclasseL school.pro4essor $o i$corpora el camp especial active q e permet oc ltar els rec rsos Ko5=ectesL de la classe q a$ =a $o i$teressi, se$se elimi$ar-los. /pro:itarem aq est exemple per a:egir aq est camp i posar-li el 0alor 1 KcertL com a 0alor per de:ecte. El codi de la classe school.pro4essor modi:icada 3s9
class school_pro4essor:osv.osv;) 6662ro4essors666 _name $ Eschool.pro4essorE _columns $ ! EnameE) 4ields.char:E2ro4essor 9ameE' siDe$RQ' re,uired$True;' EcontractE) 4ields.selection:G:EtraineeE'ETraineeE;' :EnamedE'E9amedE;H' EContractE;' Epartner_idE) 4ields.manC2one:Eres.partnerE' EAssociated 2artnerE;' Eaddress_idE) 4ields.manC2one:Eres.partner.addressE' E2rivate AddressE;' EphoneE) 4ields.related:Eaddress_idE'EphoneE' tCpe$EcharE' string$E2honeE' store$False' readonlC$True;' Ehours_availa#leE) 4ields.integer:ETours 2er ?ee E;' Ecourse_idsE) 4ields.one2manC:Eschool.courseE' Epro4_idE'ECoursesE;' EactiveE) 4ields.#oolean:EActiveE;' " _de4aults $ ! EcontractE) lam#da @a) EtraineeE' EactiveE) lam#da @a) 1' " school_pro4essor:;

45ser0em q e e$ la de:i$ici dels 0alors per de:ecte, 8em tilit>at $a : $ci lam#da de P6t8o$, perF $o 8ag 3s estat $ecessari. U$a 0egada act alit>at el mFd l sc8ool am5 les $o0es millores, si o5rim el :orm lari de ma$te$ime$t de pro:essors, o5ser0arem q e e$ do$ar d%alta $ pro:essor, e$ el camp Contract apareix per de:ecte el 0alor Trainee. E$ ca$0i, $o apareix el $o camp Active, deg t a q e $o 8em modi:icat e$cara el :orm lari OMA, perF sS podem 0e re la se0a exist+$cia a la ta la school_pro4essor de la 5ase de dades, am5 0alor True per a tots els pro:essors q e =a existie$ a la ta la i tam53 pels $o s pro:essors.

M10. Sistemes de gesti empresarial

@(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_.3.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

Rest iccio!s
Els o5=ectes KclassesL d%4pe$ERP pode$ i$corporar, de :orma opcio$al, restriccio$s d%i$tegritat, addicio$als a les q e es p g i$ esta5lir so5re la prFpia 5ase de dades. 4pe$ERP 0alida aq estes restriccio$s e$ les modi:icacio$s de dades i e$ cas de 0iolaci, 4pe$ERP mostra $a pa$talla d%error. Aes restriccio$s d% $ o5=ecte d%4pe$ERP es declare$ a la classe P6t8o$ q e de:i$eix l%o5=ecte am5 $ atri5 t _constraints co$siste$t e$ $a llista de t ples, o$ cada t ple correspo$ a $a restricci9
_constraints $ G :nomPUtode'EmissatgeErrorE'Ellista9omsCampsE;' :nomPUtode'EmissatgeErrorE'Ellista9omsCampsE;' ... H

Els t ples correspo$e$ts a $a restricci 0e$e$ de:i$its per tres camps9 nomPUtode9 Ws el $om del m+tode de l%o5=ecte tilit>at per 0alidar la restricci. El se prototip s 8a de te$ir la :orma de4 _nomPUtode :sel4' cr' uid' ids; i 8a de retor$ar $ 0alor 5oole#. missatgeError9 Ws el missatge d%error q e es mostrar# a l% s ari si la compro0aci :alla. llista9omsCamps9 Ws la llista dels $oms dels camps q e s%a:egeixe$ al missatge d%error am5 l%o5=ecti d%a= dar a l% s ari a e$te$dre el moti pel q al 8a :allat la 0alidaci de la restricci. Els mFd ls d%4pe$ERP i$corpore$ 0alidacio$s _constraints e$ $om5rosos llocs. U$ cas el tro5em e$ la 0alidaci dels comptes 5a$caris sego$s la $ormati0a !B/2. Codis IB5+ i BIC El codi !B/2 K=nternational 9ank #ccount :um%erL s% tilit>a per a ide$ti:icar a $i0ell i$ter$acio$al $a compta 5a$c#ria. Sempre come$'a per dos car#cters q e ide$ti:iq e$ el paSs i 0a seg it d% $a seqP+$cia de dSgits. E$ el cas dels comptes 5a$caris espa$6ols, come$'a per ES i 0a seg it de 22 dSgits, dels q als, els 2 primers s$ dSgits de co$trol i els altres 20 correspo$e$ al CCC KCodi Compte Clie$tL tilit>at des de molt de temps a Espa$6a. El codi B!C (9ank =dentifier CodeL ser0eix per ide$ti:icar 5a$c#ria. / la xarxa tro5are gra$ q a$titat de doc me$taci relati0a als codis !B/2 i B!C. $a e$titat

M10. Sistemes de gesti empresarial

@-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Fixem-$os e$ el segPe$t :ragme$t de codi de la classe P6t8o$ res_partner_#an de:i$ida e$ el mFd l #ase_i#an K:itxer #ase_i#an.pCL9
_constraints $ G :chec _i#an' _construct_constraint_msg' G6i#an6H;' :_chec _#an ' E*n2lease de4ine =1C&K3i4t code on #an 4or #an tCpe 1=A9 Account to ma e valid paCmentsE' GE#icEH;H

A%a$terior atri5 t _constraints i$clo d es restriccio$s9 chec _i#an9 /q est 3s el $om del m+tode declarat a la mateixa classe, q e s%e$carrega de 0alidar el codi !B/2 i$trod Tt per l% s ari. E$ cas q e sig i erro$i, la restricci i$:orma q e l%error es prod eix e$ el camp i#an i a:egeix el missatge q e retor$a la crida al m+tode _construct_constraint_msg Km+tode q e co$str eix el missatge do$at q e 3s :or'a complex per q + di:ereix per a cada paSsL. _chec _#an 9 /q est 3s el $om del m+tode declarat a la mateixa classe, q e s%e$carrega de 0alidar el codi B!C i$trod Tt per l% s ari Ko5ligatori e$ cas q e l% s ari 8agi i$dicat q e est# i$trod i$t $ codi !B/2L. E$ cas q e sig i erro$i, la restricci i$:orma q e l%error es prod eix e$ el camp #ic i mostra el missatge d%error q e i$dica la restricci. Per compro0ar el : $cio$ame$t d%aq estes restriccio$s, exec te els segPe$ts passos9 1. 45ri el ma$te$ime$t de clie$ts i sit e -0os e$ $ clie$t q alse0ol. 2. Edite -lo i a$e a la pesta$6a Compta%ilitat Kcal te$ir i$stalVlat el mFd l de compta5ilitatL. /ll# 8i 0e re $a >o$a de lS$ies a$ome$ada $etalls del %anc, desti$ada a i$clo re les comptes 5a$c#ries del clie$t. (. Procedi a do$ar d%alta $a compta 5a$c#ria, am5 els segPe$ts 0alors9 Iip s de compte de 5a$c9 Compte =9#: Kdel co$trari $o :a cap 0eri:icaciL 2Jmero de compte9 E!KK/3<H/3<H/A/3<H?ALMNK Propietari compte 5a$c#ria9 Seleccio$e el clie$t al q i este assig$a$t el compte Codi d%ide$ti:icador 5a$cari9 !$trod T el text +ualse ol -. Procedi a $esar i -ancar, :et q e s portar# de $o a la :itxa del clie$t, o$ 0e re la compta 5a$c#ria i$trod Tda i procedi a i$te$tar e$registrar el clie$t. E$ aq est mome$t, 4pe$ERP compro0a les restriccio$s i$trod Tdes i, e$ aq est cas, com q e els codis !B/2 i B!C s$ erro$is, apareix la pa$talla d%error de la :ig ra 1-1.. Ri o5ser0em dos errors9 el primer q e e$s i$:orma de l%error e$ 0alidar el camp i#an i e$s explica com 8a de ser el co$ti$g t d%aq est camp, i el sego$, q e e$s i$:orma q e s%8a prod Tt $ error e$ 0alidar el camp #ic. @. Procedi a modi:icar el 0alor i$trod Tt e$ el camp i#an am5 el 0alor E!LL/3<H/3<H/A/3<H?ALMNK5 q e t3 $ :ormat !B/2 correcte, tot i q e gaire53 seg r $o existeix realme$t $ CCC de codi /3<H/3<H/A/3<H?ALMNK. Ior$e a i$te$tar e$registrar el clie$t. 45ser0are q e =a $om3s apareix l%error relati al camp #ic. G. Per sol cio$ar l%error del camp #ic, cal i$dicar el 0alor #ic d% $a de les e$titats 5a$c#ries do$ades d%alta a l%empresa acti0a. Pode do$ar d%alta les di0erses e$titats 5a$c#ries a tra03s de l%opci ,endes`Configuraci`Lli%reta d;adreces`9ancs o, si 8o pre:eri , i$stalVle el mFd l l1.n_es_partner K#daptacin de partner para Estado EspaOolL q e, e$tre altres coses, :acilita $ assiste$t K,endes * Configuraci * Lli%reta d;adreces * =mport 9ank $ata 6iCardL q e a:egeix dades de 1E1 5a$cs i caixes espa$6oles a partir del registre o:icial del Ba$c d%Espa$6a. U$a 0egada

M10. Sistemes de gesti empresarial

@@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

i$diq e

$ codi B!C existe$t, podre :i$alit>ar l%e$registrame$t correcte del clie$t.

.igura /0/L. Pantalla d;error d;OpenERP quan els codis =9#: i 9=C sn erronis

/ls a$$exos de la 7e5 tro5are l%apartat MRec rsos de programariN q e i$clo el :itxer l1.n_es_partner_2.13.32 O.Dip correspo$e$t al mFd l l1._es_partner q e potser 0ole i$stalVlar.

M10. Sistemes de gesti empresarial

@G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

M10. Sistemes de gesti empresarial

@.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

2. "pe!ERP# (a 1ista i el co!t olado .

A%4pe$ERP 3s $ programari de gesti empresarial dese$0ol pat so5re el framework 4pe$45=ect de tip s R/B KRapid #pplication $e elopmentL, q e :acilita $a arq itect ra M*C Kmodel-0ista-co$troladorL per als dese$0ol pame$ts. U$a 0egada es domi$a el disse$6 del model de dades d% $a aplicaci dese$0ol pada so5re 4pe$45=ect, com 3s el cas d%4pe$ERP, cal e$trar e$ el co$eixeme$t del disse$6 de la 0ista i del co$trolador. E$ les aplicacio$s dese$0ol pades so5re el framework 4pe$45=ect, el co$cepte M0istaN e$glo5a les pa$talles, q e permete$ exposar la i$:ormaci a l% s ari Ka$ome$ades 0istes o iewsL per a 0is alit>ar-la i)o editar-la i els me$Js, q e :acilite$ $ acc3s orga$it>at a les 0istes. E$ co$seqP+$cia, e$s cal apre$dre a disse$6ar les 0istes K iewsL i els me$Js. E$ el framework 4pe$45=ect, el disse$6 del co$trolador s%e:ect a am5 el lle$g atge P6t8o$, tot amplia$t les classes P6t8o$ q e de:i$eixe$ el model de dades, am5 la i$corporaci de m+todes. Els me$Js i 0istes disse$6ats e$ arxi s OMA, e$ i$stalVlar-se e$ $a empresa d%4pe$ERP, o5te$e$ $ ide$ti:icador $ m+ric q e els ide$ti:ica di$s l%empresa i q e 4pe$ERP tilit>a per a la gesti de l%aplicaci. /q est ide$ti:icador acost ma a ser di:ere$t a cada empresa, do$cs $o totes les empreses te$e$ els mateixos mFd ls i$stalVlats $i 8a$ estat i$stalVlats e$ el mateix ordre. Bo$at q e 3s molt possi5le q e e$ la :ase de disse$6., el disse$6ador 8agi de :er re:er+$cia a me$Js i 0istes, es :a $ecessari $ ide$ti:icador OMA per a cada 0ista)me$J q e el disse$6ador p g i tilit>ar e$ la :ase de disse$6. Per aixF, e$ la de:i$ici OMA de me$Js i 0istes, s%i$clo $ ide$ti:icador KtextL q e 8a de ser J$ic di$s el mFd l i al q e es pot :er re:er+$cia des del propi mFd l 0ia el se $om o des de q alse0ol altre mFd l m 0ia la si$taxis m.identi4icador.

2.1.

Me!>s

Aes aplicacio$s dese$0ol pades am5 el framework 4pe$45=ect co$te$e$ el model, la 0ista i el co$trolador, seg i$t el patr de disse$6 M*C, i di$s la 0ista s%i$clo e$ les di0erses pa$talles q e permete$ gestio$ar la i$:ormaci i els me$Js q e permete$ $ acc3s orga$it>at a les 0istes. Els me$Js d% $ mFd l 4pe$45=ect es disse$6e$ e$ arxi s OMA i 8a$ d%estar re:ere$ciats des de l%apartat update_Bml del :itxer descriptor del mFd l __openerp__.pC. Els arxi s OMA acost me$ a i$corporar les pa$talles K iewsL i els me$Js q e permete$ accedir a les pa$talles, perF els dos tip s d%eleme$ts podrie$ residir e$ :itxers OMA

M10. Sistemes de gesti empresarial

@&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

especS:ics K $ per me$Js i $ per iewsL. Com exemple, podem a$alit>ar el mFd l school ge$erat per l%ei$a $ia, o$ o5ser0em la pres+$cia del :itxer a$ome$at school_vie3.Bml9
6update_Bml6 ) GEschool_vie3.BmlEH'

Els me$Js d%4pe$45=ect i les se0es opcio$s 8a$ de te$ir $a declaraci similar a9
Amenuitem id$6menuitem_id6 name$6tMtol_del_menV6 action$6action_id6 icon$6nom_de_icona6 3e#_icon$6nom_icona_3e#6 3e#_icon_hover$6nom_icona_3e#_4lotant6 parent$6menuitem_id6 groups$6grups_usuaris6 se,uence$6Ainteger+6 &+

o$ els 0alors especS:ics de cada me$J s$9 /tri5 t id, q e co$t3 l%ide$ti:icador OMA del me$J, J$ic di$s el mFd l. /tri5 t name, q e co$t3 el tStol del me$J. /q est camp 3s opcio$al i, si $o s%i$dica, el me$J aga:ar# el $om de l%acci q e exec ti el me$J. /tri5 t action, q e especi:ica l%ide$ti:icador de l%acci q e exec ta el me$J i q e 8a d%existir e$ el mFd l. D a$ $o s%especi:ica l%acci s%e$t3$ q e es tracta de l%arrel d% $ me$J q e co$t3 altres me$Js i)o opcio$s. El disse$6 de la correspo$e$t acci dep+$ del tip s d%exec ci associada Ko5rir $a :i$estra, exec tar $ i$:orme, posar e$ marxa $ assiste$t,...L. /tri5 t icon, q e especi:ica la ico$a q e acompa$6a al me$J e$ el clie$t "IU. Aa ico$a per de:ecte 3s $a carpeta. Aa llista d%ico$es possi5les es pot co$s ltar e$ el desplega5le =cona del ma$te$ime$t de me$Js accessi5le 0ia !ettings * PersonalitCaci * =ntef2cie d;usuari * Elements menP. /tri5 t 3e#_icon, q e especi:ica la ico$a q e es mostra e$ el clie$t 7e5, a la p#gi$a i$icial KQomeL . /tri5 t 3e#_icon_hover, q e especi:ica la ico$a q e es mostra e$ el clie$t 7e5, a la p#gi$a i$icial, e$ passar el ratolS pel dam $t. /cost ma a ser la 0ersi acolorida de la ico$a especi:icada a l%atri5 t 3e#_icon. /tri5 t parent, q e especi:ica l%ide$ti:icador del me$J pare del q + dep+$. Si $o es de:i$eix, i$dica q e es tracta d% $ me$J arrel Kme$J pri$cipalL. /tri5 t groups, q e especi:ica q i$ gr p d% s aris pot 0e re el me$J. Si es desit=a i$trod ir m3s d% $ gr p, cal separar-lo per comes Kper exemple, groups$6admin'user6L. /tri5 t se,uence, q e 3s $ e$ter q e s% tilit>a per orde$ar el me$J di$s l%ar5re de me$Js, de ma$era q e a ma=or 0alor, m3s a0all apareix el me$J. /q est 0alor $o 3s o5ligatori i per de:ecte pre$ el 0alor 10. Els me$Js q e ti$g i$ el mateix 0alor s%orde$e$ per mome$t temporal de creaci. Aes ico$es dels atri5 ts 3e#_icon o 3e#_icon_hover 8a$ de residir a la carpeta del mFd l i el se $om 8a d%a$ar acompa$6at del camS q e i$diq i la s 5carpeta K$ormalme$t images o iconsL o$ resideixe$ Ko se$se camS si $o es tro5e$ a cap s 5carpetaL.

M10. Sistemes de gesti empresarial

@E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

5ccio!s e! "pe!"-<ect Aes accio$s de:i$eixe$ el comportame$t del sistema e$ resposta als esde0e$ime$ts ge$erats per l% s ari, =a sig i e$ seleccio$ar $a opci de me$J, e$ pr3mer $ 5ot, e$ :er clic dam $t $ registre,... Ri 8a di:ere$ts tip s d%accio$s9 6indow, per o5rir $a :i$estra Report, per imprimir $ i$:orme 6iCard, per i$iciar $ assiste$t 0i$c lat a $ tre5all o proc3s Execute, per exec tar $ m+tode e$ el ser0idor Group, per re $ir $ co$= $t d%accio$s e$ $ gr p Exemple de me!>s e! el m3dul school Els me$Js origi$als del me$J school ge$erats per l%ei$a $ia per a la 0ersi @.0 d%4pe$ERP $o s$ 0#lids per a la 0ersi G.1 d%4pe$ERP, de ma$era q e e$s 0eiem o5ligats a re:er-los sego$s les $ormes a$teriors. /ixS, $a possi5ilitat 3s la segPe$t9
Amenuitem name$6Courses6 id$6menu_school6&+ Amenuitem name$6Calendar o4 Courses6 id$6menu_school_event6 action$6action_school_course_event6 parent$6menu_school6&+ Amenuitem name$6Ktudents6 id$6menu_school_student6 action$6action_school_student6 parent$6menu_school6&+ Amenuitem name$6Con4iguration6 id$6menu_school_con4iguration6 parent$6menu_school6&+ Amenuitem name$6Courses6 id$6menu_school_course6 action$6action_school_course6 parent$6menu_school_con4iguration6&+ Amenuitem name$62ro4essors6 id$6menu_school_pro4essor6 action$6action_school_pro4essor6 parent$6menu_school_con4iguration6&+

E$ els eleme$ts menuitem a$teriors detectem d es de:i$icio$s de me$Js i q atre de:i$icio$s d%opcio$s q e exec te$ accio$s. Cap dels dos me$Js i$corpora l%atri5 t icon i, e$ co$seqP+$cia, e$ el clie$t "IU la ico$a q e els acompa$6a 3s $a carpeta. El me$J pri$cipal menu_school tampoc i$corpora els atri5 ts 3e#_icon i)o 3e#_icon_hover i, per ta$t, el mFd l Courses $o 0a acompa$6at de cap ico$a a la p#gi$a i$icial del clie$t 7e5. Aa 0ersi del mFd l school de l%arxi school_.Q.Dip , q e pode tro5ar a l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5, i$corpora d es ico$es student.png i studenthover.png pels atri5 ts 3e#_icon i 3e#_icon_hover.

M10. Sistemes de gesti empresarial

G0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

E$ el -ec)nical 'emento d%4pe$ERP 8i tro5are el recordatori so5re el disse$6 de me$Js.

2.2.

=istes

Aes 0istes d%4pe$ERP s$ les pa$talles q e :acilite$ l%acc3s de l% s ari a la i$:ormaci, ta$t per a co$s ltar-la com per modi:icar-la Kaltes, 5aixes i modi:icacio$sL. 4pe$45=ect :acilita di0ersos tip s d%i$ter:Scies per :acilitar l%acc3s de l% s ari a la i$:ormaci K:orm laris, llistes, diagrames, gr#:ics, cale$daris, ar5res i targetes kan%anL i totes elles s$ di$#miq es. Aes 0istes d%4pe$ERP s$ di$#miq es i es co$str eixe$ e$ temps d%exec ci a partir de descripcio$s OMA accessi5les des del clie$t, :et q e possi5ilita, :i$s i tot, la se0a modi:icaci e$ temps d%exec ci. E$ cas q e $a 0ista es modi:iq i e$ temps d%exec ci Kdes del clie$t 7e5 acti0a$t el mode de dese$0ol pame$t, o des del clie$t "IU, pel me$J !ettings`PersonalitCaci` =nterf2cie d;usuari*,istes85 simpleme$t cal ta$car-la i reo5rir-la per a o5ser0ar els ca$0is. Aa descripci OMA per les 0istes associades a $ o5=ecte KclasseL d%4pe$ERP, resideix e$ :itxers OMA di$s el mFd l correspo$e$t a l%o5=ecte. E$ cas de modi:icaci e$ temps d%exec ci, el :itxer OMA $o es modi:ica, i aixF cal te$ir-8o molt prese$t, do$cs q alse0ol proc3s d%act alit>aci del mFd l pro0ocar# la p+rd a dels ca$0is e:ect ats. Per e0itar la p+rd a de les modi:icacio$s e:ect ades e$ 0istes correspo$e$ts a mFd ls s scepti5les de ser act alit>ats periFdicame$t KmFd ls o:icials i extres de la com $itatL, el camS 3s crear $ $o mFd l i de:i$ir-8i la $o0a 0ista com a 8er+$cia de la 0ista a modi:icar, i$trod i$t els ca$0is e$ la 0ista 8eretada. A%8er+$cia de 0istes es tro5a a apartat M4pe$ERP9 Bese$0ol pame$t a0a$'atN Aa descripci de les 0istes 8a de residir e$ $ :itxer OMA q e 8a d%estar re:ere$ciat des de l%apartat update_Bml del :itxer descriptor del mFd l __openerp__.pC. /ixS, e$ el mFd l school 8i o5ser0em la pres+$cia del :itxer a$ome$at school_vie3.Bml i e$ el :itxer __openerp__.pC 8i tro5em la lS$ia9
6update_Bml6 ) GEschool_vie3.BmlEH'

Pode tro5ar la 0ersi 0ige$t del mFd l school a l%arxi

M10. Sistemes de gesti empresarial

G1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

school_.Q.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5. El $om del :itxer OMA o$ resideixe$ les 0istes pot ser q alse0ol, perF 3s altame$t aco$sella5le tilit>ar alg $a com5i$aci e$ la q e apareg i el $om del mFd l i q elcom q e i$diq i el se co$ti$g t Kcom per exemple el mot vie3L. Aa declaraci d% $ 0ista 8a de ser similar a9
Arecord model$6ir.ui.vie36 id$6vie3_id6+ A4ield name$6name6+vie3.nameA&4ield+ A4ield name$6model6+o#ject_nameA&4ield+ A4ield name$6tCpe6+BBBA&4ield+ AW->alors possi#les) tree'4orm'calendar'search'graph'gantt' an#an--+ A4ield name$6prioritC6 eval$61R6&+ A4ield name$6arch6 tCpe$6Bml6+ AW-- vie3 content) A4orm+' Atree+' Agraph+' ... --+ A&4ield+ A&record+

o$ els 0alors especS:ics de cada 0ista s$99 Eleme$t record q e co$t3 l%atri5 t model am5 0alor ir.ui.vie3 o5ligatori per a les 0istes, i l%atri5 t id am5 l%ide$ti:icador OMA de la 0ista di$s el mFd l. Eleme$t 4ield name$6name6 am5 el $om de la 0ista. Eleme$t 4ield name$6model6 am5 el $om de l%o5=ecte KclasseL d%4pe$ERP so5re el q e es de:i$eix la 0ista. Eleme$t 4ield name$6tCpe6 am5 el tip s de la 0ista, o$ els 0alors possi5les act als s$9 tree, 4orm, calendar, search, graph, gantt i an#an. Eleme$t 4ield name$6prioritC6 am5 la prioritat de la 0ista. Com m3s petita, m3s prioritat. Per de:ecte9 1G. Eleme$t 4ield name$6arch6 tCpe$6Bml6 am5 l%arq itect ra o estr ct ra de la 0ista, q e es de:i$eix mit=a$'a$t di0erses etiq etes OMA. /q esta estr ct ra 3s di:ere$t sego$s el tip s de 0ista K tree, 4orm, calendar, search, graph, gantt, an#anL. E$s pertoca, ara, e$di$sar-$os e$ l%estr ct ra dels di0ersos tip s de 0ista i e$ els meca$ismes Kaccio$sL q e possi5ilite$ a l% s ari la se0a exec ci. E$ el -ec)nical 'emento d%4pe$ERP 8i tro5are el recordatori so5re el disse$6 de 0istes i accio$s.

2.2.1.

5ccio!s window

U$a 0ista d%4pe$45=ect e$tra e$ exec ci a partir d% $ esde0e$ime$t d% s ari Kseleccio$ar $a opci de me$J, pr3mer $ 5ot,...L q e est# 0i$c lat a $a acci window, respo$sa5le de la posta e$ marxa de la 0ista.

M10. Sistemes de gesti empresarial

G2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A%eleme$t 4ield name$6tCpe6 de la declaraci d% $a 0ista o5liga a de:i$ir la 0ista am5 $ dels tip s segPe$ts9 tree, 4orm, calendar, search, graph, gantt, an#an. Cal te$ir e$ compte q e sota el tip s tree s%aixopl g e$ dos tip s di:ere$ts9 llista =erarq it>ada K$ormalme$t a$ome$ada ar5re - tree0L i llista $o =erarq it>ada K$ormalme$t a$ome$ada llista -list-L. El :et d% tilit>ar el mot tree per :er re:er+$cia a dos tip s de 0ista pro0oca maldecaps q e 4pe$45=ect 8ag 3s pog t e0itar. / l%ig al q e els me$Js i les 0istes, les accio$s K$o $om3s les windowL es declare$ e$ arxi s OMA q e 8a$ d%estar re:ere$ciats des del :itxer descriptor del mFd l. Bo$at q e les 0istes es pose$ e$ marxa 0ia accio$s i q e 8i 8a me$Js q e porte$ associades aq estes accio$s, 3s molt comJ KperF $o o5ligatoriL i$trod ir e$ el :itxer OMA les declaracio$s e$ el segPe$t ordre9 *istes 0i$c lades a $ o5=ecte K$%8i acost ma a 8a0er 0#riesL /ccio$s q e exec te$ 0istes Kpot ser J$ica i q e accio$i 0#ries 0istesL Me$Js per :acilitar a l% s ari l%exec ci d%accio$s Exemple de 1istes0 accio!s i me!>s elacio!ats Fixem-$os e$ els segPe$ts :ragme$ts de 0istes, accio$s i me$Js, e$ el mFd l school K0ersi school_.QL correspo$e$ts a l%o5=ecte pro4essor9
Arecord model$6ir.ui.vie36 id$6vie3_school_pro4essor_4orm6+ A4ield name$6name6+school.pro4essor.4ormA&4ield+ A4ield name$6model6+school.pro4essorA&4ield+ A4ield name$6tCpe6+4ormA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ ... Arecord model$6ir.ui.vie36 id$6vie3_school_pro4essor_tree6+ A4ield name$6name6+school.pro4essor.treeA&4ield+ A4ield name$6model6+school.pro4essorA&4ield+ A4ield name$6tCpe6+treeA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ ... Arecord model$6ir.actions.act_3indo36 id$6action_school_pro4essor6+ A4ield name$6name6+2ro4essorsA&4ield+ A4ield name$6res_model6+school.pro4essorA&4ield+ A4ield name$6vie3_tCpe6+4ormA&4ield+ A4ield name$6vie3_mode6+tree'4ormA&4ield+ A&record+ Amenuitem name$62ro4essors6 id$6menu_school_pro4essor6 action$6action_school_pro4essor6 parent$6menu_school_con4iguration6&+

Ri o5ser0em9

M10. Sistemes de gesti empresarial

G(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

- B es 0istes9 vie3_school_pro4essor_4orm Kde tip s 4ormL i vie3_school_pro4essor_tree Kde tip s treeL. - U$a acci9 action_school_pro4essor, q e $o est# associada a cap de les d es 0istes. D i$a s%exec ta, do$cs, e$ acti0ar l%acciC - U$ me$J9 menu_school_pro4essor, associat a l%acci a$terior. E$ exec tar, des d%4pe$ERP, l%opci de me$J Professors, o5ser0em com apareixe$ els pro:essors e$ :ormat llista K treeL i q e la 0ista :orm lari K4ormL tam53 es pot seleccio$ar. Els eleme$ts 4ield name$6vie3_tCpe6 i 4ield name$6vie3_mode6 de:i$eixe$, q a$ $o s%explicita la 0ista a exec tar Kcom 3s el casL, el comportame$t d%4pe$45=ect per escollir la 0ista. A%exemple a$terior ser0eix per ilVl strar q e e$ 4pe$45=ect 8i 8a certs comportame$ts per de:ecte q e s%acti0e$ q a$ el programador $o els 8a explicitat, com 3s el cas de l%elecci de la 0ista a exec tar q a$ el programador $o la i$dica. /5a$s de prese$tar com 3s la declaraci d% $a acci window, 3s molt co$0e$ie$t e$te$dre el comportame$t d%4pe$45=ect e$ l%elecci i 0is alit>aci de les possi5les 0istes so5re $ o5=ecte. 4pe$45=ect categorit>a totes les 0istes K tree, 4orm, calendar, search, graph, gantt i an#anL e$ dos gra$s gr ps9 tree, per les 0istes =er#rq iq es, q e permete$ la 0is alit>aci de dos tip s de 0istes9 tree9 0is alit>aci ar5re 4orm9 0is alit>aci :orm lari 4orm, per les 0istes $o =er#rq iq es, q e permete$ la 0is alit>aci de di0ersos tip s de 0istes9 tree9 0is alit>aci llista 4orm9 0is alit>aci :orm lari calendar9 0is alit>aci cale$dari graph9 0is alit>aci gr#:ic gantt9 0is alit>aci diagrama de ga$tt search9 0is alit>aci d% $a >o$a de :iltres an#an9 0is alit>aci dels rec rsos com a targetes agr pades sota $ criteri, q e pode$ ser edita5les i)o arrossega5les. E$ la de:i$ici d% $a acci window s%8a d%i$dicar si correspo$ a $a 0ista =er#rq ica Kcategoria treeL o $a 0ista $o =er#rq ica Kcategoria 4ormL i, $a 0egada de:i$ida la categoria, cal i$dicar -e$ l%ordre q e i$teressi- els tip s de 0ista Kadeq ats a la categoriaL q e permetr# 0is alit>ar. /ixF s%aco$seg eix am5 dos eleme$ts q e :orme$ part de la de:i$ici OMA d% $a acci window9 Eleme$t 4ield name$6vie3_tCpe6 am5 $a de les d es categories possi5les9 4orm o tree. Eleme$t 4ield name$6vie3_mode6 am5 $a seqP+$cia orde$ada dels tip s de 0ista q e :acilita l%acci. Els 0alors de vie3_mode, separats per comes, 8a$ de ser co8ere$ts am5 el 0alor de vie3_tCpe i, a m3s, el mFd l 8a d%i$corporar alg $a 0ista per cadasc $ dels tip s

M10. Sistemes de gesti empresarial

G-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

i$dicats a la seqP+$cia de vie3_mode. E$ cas q e per alg $ tip s de 0ista dels i$dicats a vie3_mode, 8i 8agi 0#ries 0istes de:i$ides e$ el mFd l, 4pe$45=ect escollir# la 0ista m3s priorit#ria Keleme$t prioritC de la de:i$ici de les 0istesL. Exemple de view_type i view_mode e! la de'i!ici d%accio!s window E$ el mFd l school K0ersi school_.QL o5ser0em el segPe$t :ragme$t d%acci window9
Arecord model$6ir.actions.act_3indo36 id$6action_school_pro4essor6+ A4ield name$6name6+2ro4essorsA&4ield+ A4ield name$6res_model6+school.pro4essorA&4ield+ A4ield name$6vie3_tCpe6+4ormA&4ield+ A4ield name$6vie3_mode6+tree'4ormA&4ield+ A&record+

E$ aq est cas, do$at q e vie3_tCpe t3 el 0alor 4orm, l%eleme$t vie3_mode podria co$te$ir, e$ pri$cipi, q alse0ol seqP+$cia orde$ada dels 0alors tree, 4orm, calendar, search, graph, gantt i an#an. Fixem-$os q e la seqP+$cia 3s N tree'4ormN i, e$ co$seqP+$cia, e$ exec tar l%acci Kma$te$ime$t de pro:essorsL, les d es 0istes possi5les s$ llista i :orm lari i el ma$te$ime$t s%o5re e$ 0ista llista. Si el co$ti$g t de vie3_mode 8ag 3s estat M4orm' treeN, les 0istes possi5les 8ag essi$ estat les mateixes, perF el ma$te$ime$t s%o5riria e$ mode :orm lari 5 it. Per a q e tot : $cio$i, el mFd l :acilita per a l%o5=ecte school.pro4essor, com a mS$im, $a 0ista de tip s 4orm i $a 0ista de tip s tree $o =er#rq ica9 vie3_school_pro4essor_4orm, per a la 0ista 4orm vie3_school_pro4essor_tree, per a la 0ista tree $o =er#rq ica E$ el mFd l school K0ersi school_.QL o5ser0em el segPe$t :ragme$t d%acci window9
Arecord model$6ir.actions.act_3indo36 id$6action_school_course6+ A4ield name$6name6+CoursesA&4ield+ A4ield name$6res_model6+school.courseA&4ield+ A4ield name$6vie3_tCpe6+4ormA&4ield+ A4ield name$6vie3_mode6+tree'4orm'calendarA&4ield+ A&record+

/q est 3s $ altre cas e$ el q e vie3_tCpe t3 el 0alor 4orm, perF e$ ca$0i, l%eleme$t vie3_mode co$t3 la seqP+$cia Mtree'4orm'calendarM i, e$ co$seqP+$cia, e$ exec tar l%acci Kma$te$ime$t de c rsosL, te$im tres 0istes possi5les Kllista, :orm lari i cale$dariL i el ma$te$ime$t s%o5re e$ 0ista llista. Bo$at q e l%acci i$dica tres 0istes possi5les, el mFd l 8a ria de co$te$ir, com a mS$im, $a 0ista de cada tip s, i e$ aq est cas, l%ei$a $ia, q e 8a ge$erat l%eleme$t vie3_mode am5 els tres tip s de 0ista, $om3s :acilita d es 0istes9

M10. Sistemes de gesti empresarial

G@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

vie3_school_course_4orm, per a la 0ista 4orm vie3_school_course_tree, per a la 0ista tree $o =er#rq ica Bia 8a i$corporat el tip s de 0ista calendar a vie3_mode per q + l%o5=ecte school.course t3 $ camp date i, e$ co$seqP+$cia, aq est o5=ecte 3s s scepti5le de te$ir $a 0ista calendar perF Bia $o 8a de:i$it cap 0ista calendar. E$ procedir a l%exec ci des d% $ clie$t K7e5 o "IUL, 4pe$45=ect i$te$ta ge$erar $a 0ista calendar a tom#tica, perF $o pot per q + l%o5=ecte school.course $o t3 atri5 ts adeq ats i mostra l%error de la :ig ra 2-1.
Fig ra 2-1. Error d%4pe$ERP e$ i$te$tar mostrar $a 0ista Calendar errF$ia

$ia tam53 8a ge$erat l%acci window action_school_course_event e$ el mFd l school K0ersi school_.QL am5 0alor Mtree'4orm'calendarM per a l%eleme$t vie3_mode se$se proporcio$ar cap 0ista de tip s calendar., perF e$ aq est cas 4pe$45=ect pot proporcio$ar $a 0ista calendar per de:ecte a partir dels dos camps date existe$ts Kdate i date_endL. El : $cio$ame$t, perF, $o 3s desit=a5le9 E$ el clie$t "IU, l%i$ter0al de dies d% $ rec rs school.course.event es 0is alit>a sempre e$ color $egre i $o 8i 8a cap text q e ide$ti:iq i el rec rs. E$ el clie$t 7e5, l%i$ter0al de dies d% $ rec rs school.course.event $om3s 3s 0isi5le e$ passar el ratolS per dam $t els dies a:ectats. Caldr#, do$cs, disse$6ar 0istes calendar per aco$seg ir el : $cio$ame$t desit=at o elimi$ar el 0alor calendar de l%eleme$t vie3_mode. Aa declaraci d% $ acci window 8a de ser similar a9
Arecord model$6ir.actions.act_3indo36 id$6action_id6+ A4ield name$6name6+action.nameA&4ield+ A4ield name$6vie3_tCpe6+4ormXtreeA&4ield+ A4ield name$6vie3_mode6+...A&4ield+

M10. Sistemes de gesti empresarial

GG

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

AW-- com#inaciS ordenada dels tipus de vista possi#le coherent am# el contingut de lEelement vie3_tCpe --+ A4ield name$6vie3_id6 re4$6nom>ista6&+ A4ield name$6search_vie3_id6 re4$6nom>ista<eCerca6&+ A4ield name$6domain6+ G6list o4 3-tuples :maB 2Y. characters;6H A&4ield+ A4ield name$6conteBt6+ !6conteBt dictionarC :maB 2Y. characters;6" A&4ield+ A4ield name$6res_model6+Open.o#jectA&4ield+ A4ield name$6target6+ne3A&4ield+ A&record+

o$ els 0alors especS:ics per a cada acci s$9 Eleme$t record q e co$t3 l%atri5 t model am5 0alor ir.actions.act_3indo3 o5ligatori per a les accio$s window, i l%atri5 t id am5 l%ide$ti:icaodr OMA de l%acci di$s el mFd l. Eleme$t 4ield name$6name6 am5 el $om de l%acci. Ws o5ligatori. Els me$Js se$se name q e i$0oq i$ l%acci, pre$e$ el name de l%acci com a name propi. Eleme$ts vie3_tCpe i vie3_mode, est diats pr+0iame$t. Eleme$t 4ield name$6vie3_id6 am5 l%atri5 t re4 q e 8a de co$te$ir el $om de la 0ista a mostrar q a$ s%acti0a l%acci. E$ cas q e aq est camp $o estig i de:i$it, 4pe$45=ect decideix e$ : $ci del co$ti$g t de l%eleme$t vie3_mode. Eleme$t 4ield name$6search_vie3_id6 am5 l%atri5 t re4 q e 8a de co$te$ir el $om de la 0ista de cerca Kcap'alera de les pa$talles q e mostre$ $a llista de registres, per :acilitar-$e el :iltratL a mostrar q a$ s%acti0a l%acci. Eleme$t res_model, am5 el $om de l%o5=ecte so5re el q e opera l%acci. Eleme$t domain, am5 $a llista P6t8o$ de co$dicio$s tilit>ada per re:i$ar els res ltats d% $a selecci i, e$ co$seqP+$cia, mostrar me$6s rec rsos a la 0ista. Aes co$dicio$s de la llista s%e$llace$ am5 $a cl# s la /2B i s$ t ples P6t8o$ de tres 0alors KEcampE'EcondiciSE'EvalorEL. Eleme$t conteBt, am5 $ diccio$ari co$text al q e s% tilit>ar# a la 0ista q e s%o5ri e$ exec tar l%acci. Els diccio$aris co$text als es declare$ com $ diccio$ari P6t8o$. /q ests diccio$aris co$te$e$ i$:ormaci de co$text a tilit>ar, com per exemple l%idioma, la mo$eda, la tari:a, el magat>em... Eleme$t target, per i$dicar o$ s%8a d%o5rir la :i$estra. *alors possi5les9 ne3 Ke$ $a $o0a :i$estraL, current Ks 5stit i$t la :i$estra act alL i inline Kdi$s la :i$estra act alL.

2.2.2.

=istes form

Aa 0ista :orm lari per a $ o5=ecte d%4pe$45=ect, co$sisteix e$ la correcta distri5 ci e$ la pa$talla dels camps de l%o5=ecte am5 l%o5=ecti de :acilitar la 0is alit>aci i)o l%edici d% $ rec rs de l%o5=ecte. Aes 0istes :orm lari es disti$geixe$ per q + e$ la se0a declaraci i$corpore$9

M10. Sistemes de gesti empresarial

G.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A4ield name$6tCpe6+4ormA&4ield+

i l%eleme$t arrel de l%OMA q e de:i$eix l%arq itect ra de la 0ista 3s 4orm. Els camps e$ $a 0ista :orm lari d%4pe$45=ect sempre esta$ distri5 Tts e$ la pa$talla sego$s les segPe$ts $ormes9 Per de:ecte, cada camp 0a precedit d% $a etiq eta, q e 3s el se $om. Els camps es sit e$ a la pa$talla d%esq erra a dreta i de dalt a 5aix, sego$s l%ordre e$ e esta$ declarats e$ el :itxer OMA q e descri la 0ista. Cada pa$talla es tro5a di0idida e$ - col m$es, cadasc $a de les q als pot co$te$ir $a etiq eta o $ camp. Bo$at q e cada camp 3s precedit Kper de:ecteL, per $a etiq eta am5 el se $om, 8i 8a r# dos camps am5 les ser0es respecti0es etiq etes a cada lS$ia de la pa$talla. q Com a exempli:icaci, co$siderem el :orm lari de ma$te$ime$t de pro:essors del mFd l school K0ersi school_.QL de la :ig ra 2-2, ge$erat per l%ei$a $ia. 45ser0em-8i q e9 Aes >o$es 1 i 2 correspo$e$ a les - col m$es e$ les q e es tro5a di0idida la pa$talla. Aes >o$es 1 co$te$e$ les etiq etes dels camps 5icats a les >o$es 2.
Fig ra 2-2. Exemple de distri5 ci dels camps e$ $ :orm lari d%4pe$ERP

4pe$45=ect :acilita opcio$s d% 5icaci m3s a0a$'ades. /ixS, per exemple, la >o$a ( de la :ig ra 2-2 correspo$ a $ camp one2manC q e oc pa les - darreres col m$es de la pa$talla K1 per l%etiq eta Courses i les altres ( per al co$ti$g t del campL. / m3s, el camp one2manC co$t3 $ form de tip s llista q e 0is alit>a & col m$es. Ws molt possi5le q e i$teressi q e el co$ti$g t del camp one2manC oc pi les - col m$es de la pa$talla i q e l%etiq eta Courses passi a s 5stit ir el $om de la classe school.course. 4pe$45=ect e$s :acilita opcio$s a0a$'ades de 0is alit>aci per aco$seg ir-8o. 4pe$45=ect permet9 D e $ camp p g i oc par m3s d% $a col m$a, tot tilit>a$t l%atri5 t colspan. /ga:ar $ gr p de col m$es i di0idir-les e$ les col m$es q e es desitgi, tot tilit>a$t l%etiq eta group i els atri5 ts colspan i col. Bistri5 ir els camps d% $ o5=ecte e$ di0erses pesta$6es, tot tilit>a$t les etiq etes note#oo i page.

M10. Sistemes de gesti empresarial

G&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

El co$ti$g t del :itxer school_vie3.Bml correspo$e$t al :orm lari de la :ig ra 2-2 Kma$te$ime$t de pro:essorsL 3s9
Arecord model$6ir.ui.vie36 id$6vie3_school_pro4essor_4orm6+ A4ield name$6name6+school.pro4essor.4ormA&4ield+ A4ield name$6model6+school.pro4essorA&4ield+ A4ield name$6tCpe6+4ormA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ A4orm string$6school.pro4essor6+ A4ield name$6name6 select$616&+ A4ield name$6contract6 select$626&+ A4ield name$6partner_id6 select$6.6&+ A4ield name$6address_id6 select$6.6&+ A4ield name$6phone6 select$6.6&+ A4ield name$6hours_availa#le6 select$6.6&+ A4ield name$6course_ids6 colspan$6Q6 select$6.6&+ A&4orm+ A&4ield+ A&record+

E$ aq est cas, detectar di$s el :itxer school_vie3.Bml el registre correspo$e$t a la 0ista, $o 8a estat di:Scil, perF e$ altres casos o$ 8i 8a moltes 0istes, pot ser m3s di:ic lts. E$ ca$0i, des del clie$t 7e5, te$i$t o5ert el :orm lari i el mode de dese$0ol pame$t acti0at, podem dema$ar d%editar la 0ista, o5te$i$t el :orm lari de la :ig ra 2-(, o$ o5ser0em el $om de la 0ista i, a m3s, podem modi:icar-la i e$registrar els ca$0is e$ el ser0idor 4pe$ERP. Recordem q e els ca$0is $o q ede$ e$registrats e$ el :itxer OMA del mFd l.
Fig ra 2-(. Edici d% $a 0ista d%4pe$ERP des del clie$t 7e5

Fixem-$os q e el co$ti$g t OMA de l%eleme$t arch $o 3s altre q e el co$= $t de camps a 0is alit>ar, de l%o5=ecte KclasseL d%4pe$ERP e$ el q + es 5asa la 0ista. Recordem la de:i$ici de l%o5=ecte school.pro4essor K0ersi school_.QL9

M10. Sistemes de gesti empresarial

GE

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

class school_pro4essor:osv.osv;) _name $ Eschool.pro4essorE _columns $ ! EnameE) 4ields.char:...;' EcontractE) 4ields.selection:...;' Epartner_idE) 4ields.manC2one:...;' Eaddress_idE) 4ields.manC2one:...;' EphoneE) 4ields.related:...;' Ehours_availa#leE) 4ields.integer:...;' Ecourse_idsE) 4ields.one2manC:...;' EactiveE) 4ields.#oolean:EActiveE;' " ...

Aa de:i$ici de la classe P6t8o$ school_pro4essor i$corpora el camp active q e $o apareix a la 0ista school.pro4essor.4orm. /ixF 3s deg t a q e la 0ista school.pro4essor.4orm q e estem a$alit>a$t 0a ser ge$erada per l%ei$a $ia i el camp active el 0arem i$corporar posteriorme$t e$ el codi P6t8o$ se$se modi:icar la correspo$e$t 0ista. S posem q e 0olem sit ar el camp active, q e correspo$ a $a casella de 0eri:icaci, a la -a :ila del :orm lari. Simpleme$t l%8a rem de sit ar e$ .+ lloc di$s l%OMA de l%eleme$t arch, e$tre els camps hours_availa#le i course_ids. Si e:ect em la modi:icaci e$ el :itxer school_vie3.Bml caldr# act alit>ar el mFd lQ e$ ca$0i, si e:ect em la modi:icaci des dels clie$ts 7e5 o "IU $om3s cal recarregar el :orm lari. Sig i q i$ sig i el camS, o5ser0arem el camp active am5 etiq eta #cti e a la -a lS$ia de la pa$talla. E$ el :orm lari school.pro4essor.4orm a$terior tam53 podem o5ser0ar com el camp one2manC de $om course_ids 0a acompa$6at de l%atri5 t colspan$Q, q e i$dica q e el camp Kco$= $tame$t am5 la se0a etiq eta CoursesL 8a d%oc par les col m$es de la pa$talla. Bi$s l%estr ct ra del :orm lari Kco$ti$g t de l%eleme$t 4ield name$6arch6L 8i pot 8a0er di0ersos tip s d%eleme$ts i aq ests eleme$ts pode$ te$ir di0ersos atri5 ts. Aa ta la 2-1 mostra els atri5 ts com $s als di0ersos tip s d%eleme$ts possi5les i la ta la 2-2 mostra els di0ersos tip s d%eleme$ts possi5les acompa$6ats dels atri5 ts especS:ics de cada tip s d%eleme$t. Ia la 2-1. Relaci d%atri5 ts com $s pels eleme$ts de la de:i$ici d% $a 0ista form 5t i-ut Utilit&aci string nola#el colspan ro3span col

Etiq eta de l%eleme$t, q e s 5stit eix l%etiq eta de:i$ida a la classe. Iam53 s% tilit>a e$ els processos de recerca. Permet amagar K0alorX616L l%etiq eta del camp. Permet i$dicar el $om5re de col m$es q e 8a d%a5astar el camp. Permet i$dicar el $om5re de :iles q e 8a d%a5astar el camp. Permet i$dicar el $om5re de col m$es e$ q + es di0ideix l%espai assig$at al camp. Cade$a a0al ada com a codi P6t8o$ per o5te$ir el 0alor del camp.

invisi#le Permet oc ltar K0alorX616L el camp i la se0a etiq eta. eval

M10. Sistemes de gesti empresarial

.0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

5t i-ut attrs

Utilit&aci

Permet i$dicar sota q i$es co$dicio$s di$#miq es, 5asades e$ els 0alors d%altres camps del :orm lari, l%eleme$t 8a de ser readonlC i)o invisi#le i)o re,uired. Ra de seg ir el :ormat9
!Eatri#utE)G:EnomCampE'EoperadorE'EvalorE;' :EnomCampE'EoperadorE'EvalorE;...H'..."

o$ atri#ut 8a de ser readonlC o invisi#le o re,uired.

Exemples d%utilit&aci de l%at i-ut attrs e! la u-icaci dels camps e! 1istes E$ els mFd ls d%4pe$ERP es pot 0e re la tilit>aci de l%atri5 t attrs e$ mJltiples 0istes. Per exemple, e$ la 0ista Lea e Request del mFd l hr_holidaCs K:itxer hr_holidaCs_vie3.BmlL9
A4ield name$6name6 attrs$6!EreadonlCE)G:EstateE'EW$E'Edra4tE;' :EstateE'EW$E'Econ4irmE;H"6&+

El camp name ser# de $om3s lect ra q a$ el camp state $o ti$g i els 0alors dra4t $i con4irm.
A4ield name$6categorC_id6 attrs$6!Ere,uiredE)G:EholidaC_tCpeE'E$E'EcategorCE;H' EreadonlCE)G:EstateE'EW$E'Edra4tE;H"6&+

El camp categorC_id ser# o5ligatori q a$ el camp holidaC_tCpe 0alg i categorC i de $om3s lect ra q a$ el camp state $o 0alg i dra4t. Ia la 2-2. Relaci dels eleme$ts possi5les e$ la de:i$ici d% $a 0ista form Eleme!t Utilit&aci 4ield

Camp a 0is alit>ar, d%e$tre les col m$es de:i$ides a l%o5=ecte KclasseL 4pe$ERP e$ la q e es 5asa la 0ista. Cada camp porta $ gi$6 KwidgetL associat sego$s el tip s de dada del camp. /ixS, si el camp 3s de tip s 5oole#, el gi$6 3s $a casella de 0eri:icaciQ si el camp 3s de tip s date, el gi$6 3s $ camp :ormatat per a data acompa$6at d% $ cale$dari per poder seleccio$ar la data am5 comoditat, com mostra la :ig ra 2-(. Aa ta la 2-( mostra els atri5 ts especS:ics d%aq est eleme$t.

#utton

"i$6 KwidgetL e$ :orma de 5ot per a ser prem t i q e est# associat a determi$ades accio$s. Aa ta la 2-- mostra els atri5 ts especS:ics d%aq est eleme$t.

separator

AS$ia de separaci 8orit>o$tal per estr ct rar 0istes, am5 etiq eta

M10. Sistemes de gesti empresarial

.1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Eleme!t

Utilit&aci

opcio$al.
ne3line la#el group note#oo page

Permet a:egir espai e$ 5la$c per completar la lS$ia act al de la 0ista i saltar a la segPe$t. IStol de text lli re e$ el :orm lari. Permet orga$it>ar els camps e$ gr ps am5 etiq etes opcio$als. /porta $ req adre al 0olta$t del gr p. U$ eleme$t note#oo 3s $ co$te$idor de pesta$6es, de:i$ides cadasc $a per $ eleme$t page. Els atri5 ts especS:ics d%aq est eleme$t s$9
name9 Etiq eta per la pesta$6a position9 Posici de la pesta$6a di$s el note#oo , am5 0alors possi5les9 inside, top, #ottom, le4t i right.

Ia la 2-(. Relaci d%atri5 ts especS:ics per l%eleme$t 4ield e$ la de:i$ici d% $ form 5t i-ut Sig!i'icat select

1 per a mostrar el camp e$ cerq es $ormals i 2 per a mostrar el camp $om3s e$ cerq es a0a$'ades. / partir de la 0ersi G d%4pe$ERP, les cerq es a0a$'ades 8a$ deixat d%existir i, e$ ca$0i, els clie$ts :acilite$ l%opci de :iltres a0a$'ats o$ es pot escollir q alse0ol dels camps del model. Per ta$t, el 0alor 2 3s o5solet a partir de la 0ersi G d%4pe$ERP. Aa tilit>aci d%aq est atri5 t q eda o5soleta e$ el mome$t e$ q e la 0ersi G d%4pe$ERP :acilita les 0istes search. S 5stit eix l%atri5 t re,uired de:i$it e$ el model. 1 per a q e el camp sig i o5ligatori. S 5stit eix l%atri5 t readonlC de:i$it e$ el model. 1 per a q e el camp sig i de $om3s lect ra. e$ o5rir el :orm lari. 2om3s 8i pot 8a0er $ eleme$t am5 aq est atri5 t a M1N.

re,uired readonlC

de4ault_4ocus *alor a M1N per i$dicar q e aq est camp 8a de te$ir el :oc s

pass3ord conteBt domain on_change

True per oc ltar els car#cters q e s%i$trod eixe$ e$ el camp.

Codi P6t8o$ per de:i$ir $ diccio$ari co$text al. Codi P6t8o$ per de:i$ir $a llista de t ples am5 co$dicio$s per restri$gir 0alors, e$ camps relacio$als. M+tode P6t8o$ q e s%exec ta e$ ca$0iar el 0alor del camp. S% tilit>a per calc lar a tom#ticame$t el 0alor d%altres camps q a$ el camp act al ca$0ia. Alista P6t8o$ d%ide$ti:icadors de gr ps d% s aris a torit>ats a 0is alit>ar el camp. "i$6 alter$ati al proporcio$at de :orma a tom#tica sego$s el tip s del camp. *alors possi5les9

groups 3idget

M10. Sistemes de gesti empresarial

.2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

5t i-ut

Sig!i'icat date K:ig ra 2--L 4loat_time K:ig ra 2-@L datetime K:ig ra 2-GL selection K:ig ra 2-.L num#er K:ig ra 2-&L manC2one_list K:ig ra 2-EL one2manC_list K:ig ra 2-10L manC2manC K:ig ra 2-11L url K:ig ra 2-12L email K:ig ra 2-1(L image K:ig ra 2-1-L re4erence K:ig ra 2-1@L teBt_3i i teBt_html progress#ar K:ig ra 2-1GL

Ia la 2--. Relaci d%atri5 ts especS:ics per l%eleme$t #utton e$ la de:i$ici d% $ form 5t i-ut Sig!i'icat tCpe

Iip s de 5ot. *alors possi5les9


3or 4lo3 K:l x de tre5all, 0alor per de:ecteL9 E$0ia la se$6al Ki$dicada a l%atri5 t nameL al :l x de tre5all del mFd l. o#ject9 Crida la : $ci o m+tode i$dicada a l%atri5 t name. action9 Exec ta l%acci i$dicada a l%atri5 t name.

name

Sego$s el 0alor de l%atri5 t tCpe9


Se$6al del :l x de tre5all 2om de la : $ci o m+tode a exec tar 2om de l%acci a exec tar

special

a$icame$t 3s operati e$ $a :i$estra emerge$t Kpop- pL i e$ cas d% tilit>ar-lo e$ $a :i$estra $o emerge$t, $o 3s operati . 2om3s t3 $ possi5le 0alor9 cancel. Ws i$compati5le am5 l%atri5 t tCpe. Iext de missatge de co$:irmaci per q a$ el prem el 5ot. Alista d%estats, separats per comes, e$ els q e el 5ot es mostra. Si aq est atri5 t $o apareix, el 5ot 3s sempre 0isi5le. 2om d%ico$a. Per de:ecte, el 5ot 3s text al. Es pot tilit>ar q alse0ol de les ico$es existe$ts a la s 5carpeta 3e#&static&src&img&icons de la carpeta addons o$ es tro5e$ els mFd ls o q alse0ol altra ico$a i$dica$t la se0a 5icaci K$ormalme$t e$ $a s 5carpeta images o icons di$s el mFd lL. o5rir el :orm lari. 2om3s 8i pot 8a0er $ eleme$t am5 aq est atri5 t a M1N.

con4irm states icon

de4ault_4ocus *alor a M1N per i$dicar q e aq est 5ot 8a de te$ir el :oc s e$

M10. Sistemes de gesti empresarial

.(
.igura 30H. Gin@ date

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

.igura 30?. Gin@ float7time

.igura 30A. Gin@ datetime

.igura 30L. Gin@ selection

M10. Sistemes de gesti empresarial

.-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

.igura 30M. Gin@ num%er en el client G-1

.igura 30N. Gin@ man@3one7list

.igura 30/K. Gin@ one3man@7list

.igura 30//. Gin@ man@3man@

.igura 30/3. Gin@ url

.igura 30/<. Gin@ email

.igura 30/H. Gin@ image

M10. Sistemes de gesti empresarial

.@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

.igura 30/?. Gin@ reference

.igura 30/A. Gin@ progress%ar

Millo a de 1istes form e! el m3dul school 81e si school_04L E$s proposem millorar les 0istes form del mFd l school 0ige$t K0ersi school_.QL. E$ totes les 0istes, ca$0iem el co$ti$g t de l%atri5 t string de l%eleme$t arrel de l%arq itect ra de la 0ista, ge$erat de :orma a tom#tica per l%ei$a $ia, per $ $om e$te$edor -e$ lle$g a a$glesa-, do$cs all# o$ 4pe$ERP 0is alit>i la 0ista i $o s%expliciti $ tStol, 4pe$ERP tilit>ar# el co$ti$g t de l%atri5 t string. E$ tots els camps de les 0istes 4orm, elimi$em -per o5solets- els atri5 ts select am5 0alor 0 o 2. Ri ma$te$im els atri5 ts select$616 me$tre $o i$corporem cap 0ista search. E$ el :orm lari de ma$te$ime$t dels pro:essors9 Fem 0isi5le el camp active e$ la tercera :ila del :orm lari, a la dreta del camp hours_avalila#le, de ma$era q e els dos camps Kactive i hours_availa#leL oc pi$ les col m$es ( i - del :orm lari. Fem desapar+ixer l%etiq eta Courses del sots:orm lari i a:egim separador, am5 etiq eta Courses, = st a5a$s del sots:orm lari. E$ el :orm lari de ma$te$ime$t dels est dia$ts, :em desapar+ixer l%etiq eta !u%scriptions to courses del sots:orm lari i a:egim $ separador, am5 etiq eta !u%scriptions to courses, = st a5a$s del sots:orm lari. E$ el :orm lari de ma$te$ime$t dels c rsos9 Millorem el camp 3e#site de ma$era q e es p g i $a0egar :i$s l%adre'a co$ti$g da. $

M10. Sistemes de gesti empresarial

.G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

El sots:orm lari am5 etiq eta !tudents el sit em e$ $a pesta$6a !tudents i a:egim $a altra pesta$6a Calendar am5 acc3s a les di0erses edicio$s del c rs Kcal modi:icar el model de dades de l%o5=ecte school.course a:egi$t el camp event_idsL. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_.Y.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

2.2.2.

=istes tree 8a - e?llista9

Aes 0istes ar5re)llista per a $ o5=ecte d%4pe$45=ect co$sisteixe$ e$ la distri5 ci de la pa$talla e$ lS$ies am5 l%o5=ecti de :acilitar la 0is alit>aci i)o l%edici d% $ co$= $t de rec rsos de l%o5=ecte. Aa ma=oria de les 0istes ar5re)llista s$ de $om3s 0is alit>aci, perF 4pe$45=ect permet :er-les edita5les. Aa 0ista ar5re mostra els rec rsos de l%o5=ecte seg i$t $a estr ct ra =er#rq ica, me$tre q e la 0ista llista mostra els rec rsos e$ seqP+$cia, se$se cap =erarq ia. E$ 4pe$ERP te$im m ltit d d%exemples de 0ista llista, com per exemple, e$ accedir a l%acc3s directe Clients, o$ se%$s prese$ta els clie$ts e$ 0ista llista. 4pe$ERP tam53 i$clo exemples de 0ista ar5reQ $ exemple el tro5em e$ accedir a l%opci de me$J 'agatCem* Productes*Productes per categoria5 com e$s mostra la :ig ra 2-1..
Fig ra 2-1.. Exemple de 0ista e$ ar5re, am5 desplega5le per escollir el rec rs de primer $i0ell de la =erarq ia

Aa 0ista ar5re de la :ig ra 2-1. prese$ta $ desplega5le q e e$s permet escollir e$tre les categories de primer $i0ell K-ots els productes5 Productes negocia%les5 #ltres productes8.

M10. Sistemes de gesti empresarial

..

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Aa :ig ra 2-1. mostra la =erarq ia de categories per sota de -ots els productes. E$ exec tar l%opci de me$J, per a -ots els productes J$icame$t se%$s prese$te$ les d es categories :illes9 Pri at i ,endi%le. Aa categoria ,endi%le5 com q e t3 categories :illes, 0a precedida del sSm5ol b q e, e$ pr3mer-lo, desplega les categories :illes9 Components d;ordinador i !er eis. ! aixS s ccessi0ame$t. A%elecci de q alse0ol de les categories, sit a$t-$os al dam $t, pro0oca l%aparici de la llista dels prod ctes de la categoria seleccio$ada. Aes 0istes ar5re)llista es disti$geixe$ per q + e$ la se0a declaraci i$corpore$9
A4ield name$6tCpe6+treeA&4ield+

i l%eleme$t arrel de l%OMA q e de:i$eix l%arq itect ra de la 0ista 3s tree. Aa di:er+$cia e$tre les 0istes ar5re i 0istes llista e$ la declaraci radica e$ l%exist+$cia, e$ les 0istes ar5re, del segPe$t eleme$t per i$dicar el camp one2manC q e determi$a la =erarq ia9
A4ield name$64ield_parent6+camp_one2manCA&4ield+

Aes 0istes ar5re)llista s$ m3s simples q e les 0istes :orm lari i te$e$ me$6s opcio$s. Be ma$era similar a les 0istes :orm lari, i$corpore$ e$ la se0a estr ct ra eleme$ts 4ield. Aa ta la 2-@ rec ll els atri5 ts q e pode$ acompa$6ar l%eleme$t arrel tree. Ia la 2-@. Relaci d%atri5 ts per l%eleme$t tree e$ la de:i$ici d% $ tree 5t i-ut Sig!i'icat colors edita#le

Alistes de colors de:i$ides e$ $ diccio$ari P6t8o$ per a q e les lS$ies es p g i$ acolorir sego$s di:ere$ts co$dicio$s. E$ cas d%estar de:i$it, els 0alors possi5les s$ top i #ottom, i permet editar els registres directame$t a la llista, se$se $ecessitat de passar a la 0ista :orm lari. Si el 0alor 3s top, els $o s registres s%a:egeixe$ al capdam $t de la llista i si el 0alor 3s #ottom, els $o s registres s%a:egeixe$ al :i$al. 2om3s per a les 0istes ar5re. *alor a MIr eN per mostrar el $i0ell s perior de la =erarq ia d%o5=ectes am5 $a 5arra d%ei$es lateral.

tool#ar

5!4lisi del codi de la 1ista a - e Productes per categoria K:ig ra 2-1.L El codi de la 0ista 3s9
Arecord id$6product_categorC_tree_vie36 model$6ir.ui.vie36+ A4ield name$6name6+product.categorC.treeA&4ield+ A4ield name$6model6+product.categorCA&4ield+ A4ield name$6tCpe6+treeA&4ield+ A4ield name$64ield_parent6+child_idA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Atree tool#ar$6True6 string$62roduct Categories6+ A4ield name$6name6&+ A&tree+ A&4ield+ A&record+

M10. Sistemes de gesti empresarial

.&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

*eiem q e l%eleme$t 4ield_parent i$:orma q e l%ar5re es m $ta a partir de la =erarq ia i$dicada pel camp child_id. Fixem-$os com 3s la de:i$ici de la classe product.categorC9
class product_categorC:osv.osv;) ... _name $ 6product.categorC6 _description $ 62roduct CategorC6 _columns $ ! ... Eparent_idE) 4ields.manC2one:Eproduct.categorCE' E2arent CategorCE'select$True' ondelete$EcascadeE;' Echild_idE) 4ields.one2manC:Eproduct.categorCE' Eparent_idE' string$EChild CategoriesE;' ...

Si modi:iq e la 0ista product_categorC_tree_vie3 elimi$a$t l%atri5 t tool#ar, cosa q e podem aco$seg ir r#pidame$t des del clie$t 7e5, i tor$em a dema$ar l%opci Productes per categoria, 0e rem q e el desplega5le per escollir el rec rs de primer $i0ell de la =erarq ia, 8a desapareg t K:ig ra 2-1&L i directame$t e$s :acilita la llista de tots els rec rsos de primer $i0ell.
Fig ra 2-1&. Exemple de 0ista ar5re se$se l%atri5 t tool#ar

5!4lisi de la 1ista llista Productes E$ accedir a Productes K=a sig i am5 la drecera o des de l%opci de me$JL, apareixe$ els prod ctes e$ 0ista llista. Aa ma=oria dels prod ctes apareixe$ de color $egre, perF $%8i 8a alg $s e$ 0ermell i alg $s e$ 5la . /ixF 3s deg t a q e s%est# tilit>a$t l%atri5 t colors e$ la de:i$ici de l%eleme$t tree. El codi de la 0ista llista 3s9
Arecord id$6product_product_tree_vie36 model$6ir.ui.vie36+ A4ield name$6name6+product.product.treeA&4ield+ A4ield name$6model6+product.productA&4ield+ A4ield name$6tCpe6+treeA&4ield+

M10. Sistemes de gesti empresarial

.E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A4ield eval$606 name$6prioritC6&+ A4ield name$6arch6 tCpe$6Bml6+ Atree colors$6red)virtual_availa#leZlt7.7 #lue)virtual_availa#leZgt7$. and state in :Edra4tE'EendE'Eo#soleteE;7 #lac )virtual_availa#leZgt7$. and state not in :Edra4tE'EendE'Eo#soleteE;6 string$62roducts6+ A4ield name$6de4ault_code6&+ A4ield name$6name6&+ A4ield name$6categ_id6 invisi#le$616&+ A4ield name$6variants6 groups$6product.group_product_variant6&+ A4ield name$6uom_id6 string$6%oP6&+ A4ield name$6tCpe6&+ A4ield name$6,tC_availa#le6&+ A4ield name$6virtual_availa#le6&+ A4ield name$6lst_price6&+ A4ield name$6price6 invisi#le$6not conteBt.get:EpricelistE'False;6&+ A4ield name$6standard_price6 groups$6#ase.group_eBtended6&+ A4ield name$6state6 groups$6#ase.group_eBtended6&+ A4ield name$6companC_id6 groups$6#ase.group_multi_companC6 invisi#le$616&+ A&tree+ A&4ield+ A&record+

45ser0em-8i el co$ti$g t de l%atri5 t colors a l%eleme$t tree9 es de:i$eix el color q e 8a de mostrar el registre e$ : $ci dels 0alors dels camps virtual_availa#le i state. Si 0ole q e la llista sig i edita5le, $om3s 8e d%a:egir l%atri5 t edita#le a l%eleme$t tree, am5 el 0alor top o #ottom sego$s 0 lg e q e els $o s registres s%a:egeixi$ per dalt o per 5aix. Pode compro0ar-8o, de ma$era r#pida, modi:ica$t la 0ista des del clie$t 7e5. Els gi$6s one2manC i manC2manC emprats e$ les 0istes 4orm mostre$ la i$:ormaci de la 0ista llista associada als o5=ectes re:ere$ciats pels camps one2manC i manC2manC. Relaci e!t e els gi!/s one2many?many2many i les 1istes tree. Sit em-$os e$ el mFd l school 0ige$t Kschool_.YL i co$siderem la 0ista llista del cale$dari de c rsos K school.course.event.treeL. /q esta 0ista mostra q atre col m$es9 course_id, date5 date_end i name i t3 l%atri5 t string$6school.course.event6. Fixem-$os e$ la pesta$6a Calendar del :orm lari ma$te$ime$t de Courses. E$ aq esta pesta$6a s%8i 0is alit>a el camp event_ids q e 3s $ camp one2manC q e re:ere$cia la classe school.course.event. 45ser0em q e mostra les q atre col m$es i l%etiq eta poc adeq ada de la 0ista school.course.event.tree. Si modi:iq em la 0ista llista school.course.event.tree Kcol m$es, etiq eta,...L els ca$0is reperc tira$ e$ la 0is alit>aci de la pesta$6a

M10. Sistemes de gesti empresarial

&0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Calendar del ma$te$ime$t de Courses. PerF, i si 0olem ma$te$ir la 0ista llista sota $a determi$ada estr ct ra i, e$ ca$0i, e$s i$teressa q e e$ $ camp one2manC o manC2manC la 0is alit>aci sig i di:ere$tC A%eleme$t tree tam53 s% tilit>a per modi:icar l%estr ct ra dels gi$6s one2manC i manC2manC e$ $a 0ista 4orm. Per aco$seg ir-8o, a l%eleme$t 4ield correspo$e$t al camp one2manC o manC2manC, se li 8a d%a:egir $ eleme$t :ill tree, el q al 8a r# de co$te$ir els eleme$ts 4ields q e es 0 lg i 0is alit>ar e$ el gi$6. Ws a dir, me$tre q e el : $cio$ame$t a tom#tic dels gi$6s one2manC i manC2manC mostra la 0ista llista associada a l%o5=ecte re:erit e$ el camp one2manC i manC2manC, am5 l%eleme$t tree podem alterar-8o i mostrar aq ells camps q e i$teressi i am5 les caracterSstiq es adeq ades Kordre, color,..L. Come$tar tam53, q e si e$ $ eleme$t tree s%explicita $a col m$a one2manC o manC2manC, 4pe$ERP 8i 0is alit>ar# el $om5re de rec rsos KregistresL q e e$ aq ell mome$t esta$ re:ere$ciats. Millo a de 1istes tree e! el m3dul school 81e si school_05L E$s proposem millorar les 0istes tree del mFd l school 0ige$t K0ersi school_.YL. E$ la 0ista llista dels pro:essors, :em q e els pro:essors am5 contract EnamedE es 0is alit>i$ de color 5la i els pro:essors am5 contract EtraineeE es 0is alit>i$ de color 0erd. E$ el :orm lari de ma$te$ime$t dels pro:essors, modi:iq em les col m$es q e es 0is alit>e$ a l%apartat Courses, de ma$era q e desapareg i el $om del pro:essor, =a q e 3s red $da$t am5 la i$:ormaci de la cap'alera del :orm lari i la col m$a :ote. E$s i$teressa, perF, q e per cada c rs apareg i el $om5re d%est dia$ts i el $om5re d%edicio$s. E$ el :orm lari de ma$te$ime$t dels est dia$ts, modi:iq em les col m$es q e es 0is alit>e$ a l%apartat !u%scriptions to courses, de ma$era q e apareg i$9 Course5 !u%&ect5 Professor i -otal )ours. El moti 3s per q + e$s sem5la q e 8i 8a massa col m$es i J$icame$t e$s i$teressa mostrar les i$dicades. E$ el :orm lari de ma$te$ime$t dels c rsos, a la pesta$6a Calendar 8i elimi$em la col m$a Course, do$cs 3s red $da$t am5 el co$ti$g t de la cap'alera, elimi$em la i$adeq ada etiq eta q e 8i apareix i :em q e sig i edita5le, a:egi$t els $o s registres pel :i$al. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_.R.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5. Be la mateixa ma$era q e e$ $ camp one2manC o manC2manC d% $a 0ista form es de:i$eix l%eleme$t tree per explicitar les col m$es a 0is alit>ar Kexemples a$teriorsL, do$cs si $o s%explicita 4pe$ERP mostra totes els camps de l%o5=ecte 4pe$ERP re:ere$ciat,

M10. Sistemes de gesti empresarial

&1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

e$s pot i$teressar q e l%edici e$ 0ista form de q alse0ol dels rec rsos mostrats e$ $ gi$6 one2manC re5i alg $ camp =a emple$at i $o sig i edita5le. Com a exemple, :ixem-$os q e e$ la sit aci act al del mFd l school K0ersi 0GL, e$ editar $ pro:essor, l%apartat de detall Courses $o 3s edita5le a la prFpia graella i, per ta$t, e$ editar $ dels c rsos existe$ts o e$ crear $ $o c rs, se%$s o5re la 0ista form de ma$te$ime$t dels c rsos, o$ el camp Professor 3s edita5leY "re pro5lema, =a q e si 8em arri5at a aq est ma$te$ime$t des de l%edici d% $ pro:essor, 3s clar q e el camp Professor $o 8a de ser modi:ica5le i, e$ crear $ c rs, el camp Professor =a 8a d%apar+ixer emple$at am5 el 0alor del pro:essor pel q e estem crea$t els c rsos. Aa sol ci a la pro5lem#tica prese$tada est# e$ i$trod ir, despr3s de l%eleme$t tree q e :acilita el co$ti$g t de la graella detall del :orm lari pri$cipal, $ eleme$t form per :acilitar el :orm lari d%edici correspo$e$t als o5=ectes de la graella. /q est darrer eleme$t form $o 8a de co$te$ir el camp q e re:ere$cia l%o5=ecte del :orm lari pri$cipal i 4pe$ERP 3s s :icie$tme$t i$telVlige$t per emple$ar aq est camp am5 l%ide$ti:icador q e correspo$. El segPe$t esq ema 0is alit>a la sol ci9
Arecord model$6ir.ui.vie36 id$...+ ... A4ield name$6tCpe6+4ormA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ A4orm string$6TMtol6+ AW-- Camps del 4ormulari principal --+ A4ield name$6BBB6 colspan$6Q6 nola#el$616+ AW-- BBB [s un camp one2manC --+ Atree+ AW-- 1ndi,uem els camps de la graella --+ A&tree+ A4orm+ AW-- 1ndi,uem els camps ,ue es desitja ,ue apareguin en editar&crear un recurs de la graella corresponent al camp BBB --+ A&4orm+ A&4ield+ A&4orm+ A&4ield+ A&record+

Pro0e a retocar el ma$te$ime$t de pro:essors del mFd l school 0ige$t K0ersi school_.RL, de ma$era q e e$ editar $ pro:essor, l%acci de crear $ c rs o editar $ c rs =a assig$at, mostri $ :orm lari e$ el q e $o apareg i el camp pro:essor i, e$ ca$0i, l%assig$aci del pro:essor sig i l%adeq ada. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_.0.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

M10. Sistemes de gesti empresarial

&2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

2.2.@.

=istes calendar

Aes 0istes cale$dari per a $ o5=ecte d%4pe$45=ect s$ possi5les q a$ l%o5=ecte co$t3 camps date o datetime q e permete$ sit ar cada rec rs e$ $ i$ter0al de temps K $ dia, $ dia-8ora o $ i$ter0al de diesL i :acilite$ la 0is alit>aci i)o l%edici dels rec rsos di$s el se i$ter0al de temps. Aa :ig ra 2-1E mostra $ exemple de 0ista calendar 0is alit>ada des del clie$t "IU correspo$e$t al cale$dari de c rsos Ko5=ecte school.course.eventL del mFd l school. E$ ella podem 0e re, a la >o$a esq erra, $ gi$6 correspo$e$t al mes act al K$o0em5re del 2012L, am5 el dia act al marcat i, sota, la llista de tots els rec rsos de l%o5=ecte school.course.event sit ats e$ aq est mes. Fixem-$os q e 8i 8a tres rec rsos, am5 di:ere$t color i am5 $a llege$da explicati0a. / la part dreta, podem o5ser0ar com el rec rs M1 B/M-M10 Semestre 1N apareix e$ tots els dies del mes Kdo$at q e es dese$0ol pa des del 20 de setem5re del 2012 :i$s el 1E de ge$er del 201(L me$tre q e el rec rso M@ S! 4pcio 1N s% 5ica des del 12 :i$s el 1G de $o0em5re i el rec rs MG S! 4pci 2N des del 1E :i$s el 2( de $o0em5re. Aa 0ista cale$dari permet editar q alse0ol rec rs :e$t do5le clic al se dam $t i tam53 permet l%arrossegame$t per ca$0iar-los d% 5icaci. /ixS mateix, si el cale$dari mostra molts rec rsos i la 0isi5ilitat 3s di:Scil, sempre podem seleccio$ar els rec rsos a 0is alit>ar, a la llista de rec rsos de la part esq erra. Aa 0is alit>aci de les 0istes calendar des del clie$t 7e5 de la 0ersi G.1 d%4pe$ERP prese$ta alg $a a$omalia, com $o mostrar, e$ $ mes, els rec rsos q e s%8a$ i$iciat e$ $ mes a$terior. /ixS, per exemple, la 0is alit>aci de la 0ista calendar de la :ig ra 2-1E des del clie$t 7e5, $o mostra el rec rs M1 B/M-M10 Semestre 1N do$at q e s%8a i$iciat e$ $ mes a$terior. Esperem q e aq est %ug es sol cio$i e$ posteriors 0ersio$s.
Fig ra 2-1E. Exemple de 0ista cale$dari des del clie$t "IU

M10. Sistemes de gesti empresarial

&(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Aa :ig ra 2-20 mostra $ altre exemple de 0ista calendar. E$ aq est cas es tracta de la 0ista calendar per a l%o5=ecte school.course, q e co$t3 $a data del c rs i, la 0ista, sit a cada rec rs e$ la se0a data. 45ser0em com el rec rs MS!N est# 5icat e$ el dia 12 de $o0em5re. El rec rs MB/M-M10N q e t3 com a data el 20 de setem5re, lFgicame$t $o apareix e$ el mes de $o0em5re. Aes 0istes cale$dari es disti$geixe$ per q + e$ la se0a declaraci i$corpore$9
A4ield name$6tCpe6+calendarA&4ield+

i l%eleme$t arrel de l%OMA q e de:i$eix l%arq itect ra de la 0ista 3s calendar, i pot co$te$ir els segPe$ts atri5 ts9 string, per al tStol de la 0ista date_start, q e 8a de co$te$ir el $om d% $ camp datetime o date del model. date_delaC, q e 8a de co$te$ir la llargada e$ 8ores de l%i$ter0al. /q est atri5 t t3 pre:er+$cia so5re l%atri5 t date_stop. date_stop, q e 8a de co$te$ir el $om d% $ camp datetime o date del model. /q est atri5 t 3s ig$orat si existeix l%atri5 t date_delaC. daC_length, per i$dicar la d rada e$ 8ores d% $ dia. 4pe$45=ect tilit>a aq est 0alor per calc lar la data :i$al a partir del 0alor de date_delaC. Per de:ecte, el se 0alor 3s & 8ores. color, per i$dicar el camp del model tilit>at per disti$gir, am5 colors, els rec rsos mostrats a la 0ista. mode, per mostrar l%e$:oc Kdia)setma$a)mesL am5 el q + s%o5re la 0ista. *alors possi5les9 daC, 3ee , month. Per de:ecte, month. Els eleme$ts :ills de l%eleme$t arrel calendar s% tilit>e$ per mostrar el se co$ti$g t di$s la 5arra acolorida q e 5ica cada rec rs di$s el cale$dari.
Fig ra 2-20. Exemple de 0ista cale$dari des del clie$t "IU

M10. Sistemes de gesti empresarial

&-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Exemple de 1ista calendar e! el m3dul school 81e si school_07L E$s proposem de:i$ir d es 0istes calendar e$ el mFd l school 0ige$t K0ersi school_.0L. / l%o5=ecte school.course.event, la 0ista calendar segPe$t9
Arecord model$6ir.ui.vie36 id$6vie3_school_course_event_calendar6+ A4ield name$6name6+school.course.event.calendar A&4ield+ A4ield name$6model6+school.course.eventA&4ield+ A4ield name$6tCpe6+calendarA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Acalendar color$64ull_name6 date_start$6date6 date_stop$6date_end6+ A4ield name$6id6&+ A4ield name$6course_id6&+ A4ield name$6name6&+ A&calendar+ A&4ield+ A&record+

Fixem-$os q e els eleme$ts :ills de l%eleme$t calendar s$ els camps id, course_id i name i s$ els camps q e es 0is alit>e$, separats per comes, a l%i$terior de les 5arres acolorides q e mostre$ cada rec rs di$s el cale$dari. Per altra 5a$da, l%atri5 t color de l%eleme$t calendar co$t3 el camp 4ull_name, q e pret3$ mostrar la co$cate$aci dels camps id, $om correspo$e$t a course_id i name. Per aco$seg ir-8o, 8em 8ag t d%ampliar el model de l%o5=ecte school.course.event am5 el camp : $cio$al 4ull_name q e es 5asa e$ el m+tode _4ull_name de:i$it a la prFpia classe.
class school_course_event:osv.osv;) de4 _4ull_name:sel4' cr' uid' ids' 4ield_name' arg' conteBt;) result $ !" 4or r in sel4.#ro3se:cr' uid' ids' conteBt$conteBt;) resultGr.idH$str:r.id;(E*tE(str:r.course_id.name; * (E*tE(r.name return result ... _columns $ ! ... E4ull_nameE) 4ields.4unction:_4ull_name'tCpe$EcharE' siDe$R.'readonlC$ETrueE' string$EFull nameE; "

El disse$6 de m+todes es tro5a a l%apartat MEls m+todesN / l%o5=ecte school.course, la 0ista calendar segPe$t9
Arecord model$6ir.ui.vie36 id$6vie3_school_course_calendar6+ A4ield name$6name6+school.course.calendarA&4ield+

M10. Sistemes de gesti empresarial

&@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A4ield name$6model6+school.courseA&4ield+ A4ield name$6tCpe6+calendarA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Acalendar color$EnameE date_start$EdateE+ A4ield name$6name6&+ A4ield name$6su#ject6&+ A&calendar+ A&4ield+ A&record+

Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_.O.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

2.2.A.

=istes graph

Aes 0istes gr#:ic s$ $ tip s de 0ista q e permet la 0is alit>aci de gr#:ics co$str Tts a partir de les dades co$ti$g des e$ els rec rsos. Aa :ig ra 2-21 mostra $ gr#:ic de sectors correspo$e$t a les 8ores de cadasc $ dels c rsos respecte el total d%8ores dels c rsos existe$ts. Aa :ig ra 2-22 correspo$ al mateix c#lc l perF am5 $ gr#:ic de 5arres.
.igura 303/. Exemple de grJfic de sectors en el client G-1

Aes 0istes gr#:ic es disti$geixe$ per q + e$ la se0a declaraci i$corpore$9


A4ield name$6tCpe6+graphA&4ield+

i l%eleme$t arrel de l%OMA q e de:i$eix l%arq itect ra de la 0ista 3s graph, i pot co$te$ir els segPe$ts atri5 ts9 string, per al tStol de la 0ista

M10. Sistemes de gesti empresarial

&G

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

tCpe, per al tip s de gr#:ic. Per de:ecte 3s $ gr#:ic de sectors K:ig ra 2-21L. Cal i$dicar el 0alor #ar per $ gr#:ic de 5arres 0erticals K:ig ra 2-22L. orientation, per i$dicar el 0alor horiDontal q a$ tCpe sig i #ar i es desitgi $ gr#:ic de 5arres 8orit>o$tal.
Fig rs 22. Exemple de gr#:ic de 5arres e$ el clie$t "IU

Aa de:i$ici dels eleme$ts :ills de l%eleme$t arrel graph determi$a el co$ti$g t del gr#:ic9 El primer camp i$dica el co$ti$g t de l%eix O K8orit>o$talL. Ws o5ligatori. El sego$ camp i$dica el co$ti$g t de l%eix 1 K0erticalL. Ws o5ligatori. El tercer camp i$dica el co$ti$g t de l%eix c e$ gr#:ics tridime$sio$als. Ws optati . / cadasc $ dels camps q e determi$e$ els eixos, se%ls pot aplicar els atri5 ts segPe$ts9 group$6True6, a tilit>ar e$ el sego$ o tercer camp, per i$dicar q e cal agr par tots els rec rsos d%ig al 0alor per aq est camp. El primer camp sempre act a am5 group$6True6. Per la resta de camps, s%aplica l%operador i$dicat a l%atri5 t operator. operator, per i$dicar l%operador a tilit>ar per calc lar el 0alor e$ la resta dels camps, com a co$seqP+$cia de l%agr paci i$dicada a l%atri5 t group. Els operadors permesos s$9 ( Ks maL, @Kprod cteL, @@Kexpo$e$tL, min i maB Kme$or i ma=or 0alors de la llista de 0alors de l%agr paciL. Per de:ecte, act a l%operador (. Aa 0is alit>aci de les 0istes grap) q e tilit>e$ l%atri5 t group, des del clie$t 7e5 de la 0ersi G.1 d%4pe$ERP, prese$ta alg $a a$omalia. Esperem q e aq est %ug es sol cio$i e$ posteriors 0ersio$s. Exemple de 1ista graph e! el m3dul school 81e si school_08L E$s proposem de:i$ir $a 0ista graph e$ el mFd l school 0ige$t K0ersi school_.OL. / l%o5=ecte school.course, la 0ista segPe$t9

M10. Sistemes de gesti empresarial

&.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Arecord model$6ir.ui.vie36 id$6vie3_school_course_graph6+ A4ield name$6name6+school.course.graphA&4ield+ A4ield name$6model6+school.courseA&4ield+ A4ield name$6tCpe6+graphA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Agraph string$62ercentage o4 hours6+ A4ield name$6name6&+ A4ield name$6hours_total6&+ A&graph+ A&4ield+ A&record+

Es tracta d% $ gr#:ic de sectors K5idime$sio$alL e$ el q e el camp q e :acilita la llege$da Keix 8orit>o$tal e$ cas d% $ gr#:ic de 5arresL 3s name de l%o5=ecte school.course i el camp q e :acilita el 0alor per calc lar els sectors Keix 0ertical e$ $ gr#:ic de 5arresL 3s hours_total. Cal te$ir prese$t q e l%act al mFd l school permet te$ir di0ersos c rsos am5 el mateix $om i q e el gr#:ic a$terior agr pa els c rsos am5 ig al name Kagr paci a tom#tica pel primer 4ield de l%eleme$t graphL. Si i$teressa $o poder te$ir di:ere$ts c rsos am5 ig al $om, cal de:i$ir $a restricci d% $icitat K_s,l_constraintL so5re el camp name de l%o5=ecte school.course. E$ ca$0i, si i$teressa permetre di:ere$ts c rsos am5 ig al $om perF e$ el gr#:ic a$terior $o s%8a d%agr par, caldr# crear $ camp 4unction a l%o5=ecte school.course, co$cate$aci dels camps id i name, i tilit>ar aq est $o camp e$ el gr#:ic e$lloc del camp name. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_./.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5. Aa ma$era m3s e:icie$t per ge$erar gr#:ics estadSstics so5re o5=ectes d%4pe$ERP 3s9 1. Crear e$ 4pe$ERP $ o5=ecte MestadSsticN 5asat e$ $a 0ista q e 4pe$ERP crea e$ la 5ase de dades de PostgreSDA. 2. Crear $a 0ista llista i $a 0ista gr#:ic so5re l%o5=ecte MestadSsticN. El disse$6 d%o5=ectes MestadSsticsN es tro5a a l%apartat MReporti$g d B!N

2.2.B.

=istes search

Aes 0istes searc) s$ $a $o0a : $cio$alitat d%4pe$45=ect des de la 0ersi G.0, co$siste$t e$ la possi5ilitat de perso$alit>ar el pa$ell de cerca e$ les 0istes llista.

M10. Sistemes de gesti empresarial

&&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Si o5ser0em q alse0ol de les 0istes llista del mFd l school q e estem millora$t, 0e rem q e apareix $ pa$ell de cerca similar al de la :ig ra 2-2(. E$ ell o5ser0em $ desplega5le .ilters q e e$s permet a:egir :iltres per acotar els registres a 0is alit>ar i els 5oto$s !earc) per exec tar la cerca i Clear per a $ete=ar els :iltres. /q esta 0ista searc) 3s la q e i$corpora 4pe$45=ect q a$ $o se $%i$dica cap, i i$corpora el camp de :iltre Professor :ame per q + la 0ista form de la classe school.pro4essor t3 el camp name am5 l%atri5 t select$616. 4pe$ERP, a partir de la 0ersi G.0, t3 e$ compte l%atri5 t select q a$ el model $o i$corpora cap 0ista searc).
Fig ra 2-2(. *ista searc) per de:ecte e$ 0istes llista

U$ exemple de 0ista searc) so:isticada el te$im e$ el ma$te$ime$t dels socis de $egocis KpartnersL, com mostra la :ig ra 2-2-. E$ cas q e s%8agi i$stalVlat el mFd l crm5 la 0ista searc) es 0e ampliada am5 m3s :iltres, com mostra la :ig ra 2-2@.
Fig ra 2-2-. *ista searc) e$ la llista de tercers Kse$se i$stalVlar el mFd l crm8

Aa 0ista searc) de la :ig ra 2-2- co$t39 Els 5oto$s Clients i Pro eRdors per :acilitar el :iltre sego$s el tip s de soci de $egocis. A% s ari els 8a de pr3mer K $ o am5dos o capL sego$s el :iltrat q e l%i$teressi. Els camps de :iltre :om5 Contactes5 Pa2s i ,enedor. A% s ari 8a d%i$trod ir el 0alor de :iltre. U$a >o$a expa$di5le #grupa per... q e e$ expa$dir-la mostra el 5ot ,enedor per :acilitar 0e re els registres res lta$ts dels :iltres agr pats per 0e$edor. Els eleme$ts de la 0ista searc) per de:ecte9 !earc)5 Clear i .ilters.
Fig ra 2-2@. *ista searc) e$ la llista de tercers Kam5 el mFd l crm i$stalVlatL

Aes 0istes searc) es disti$geixe$ per q + e$ la se0a declaraci i$corpore$9


A4ield name$6tCpe6+searchA&4ield+

i l%eleme$t arrel de l%OMA q e de:i$eix l%arq itect ra de la 0ista 3s search i pot te$ir els segPe$ts eleme$ts :ills9 group, per agr par $ co$= $t de :iltres i)o co$dicio$s d%agr pame$t sota $ mateix tStol, el q al s%i$dica a l%atri5 t string. 2o 3s o5ligatFria l%exist+$cia del tStol.

M10. Sistemes de gesti empresarial

&E

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Iam53 admet l%atri5 t eBpand K0alors possi5les9 0)1 e per de:ecte9 1L per i$dicar si el gr p 8a d%apar+ixer expa$dit K1L o $o K0L. separator, per sit ar $ separador, am5 atri5 t orientation q e per de:ecte 3s vertical. E$ $a 0ista searc) $o t3 se$tit el separador 8orit>o$tal. El separador $o es 0is alit>a e$ el clie$t 7e5 d%4pe$ERP G.1. la#el, per sit ar $a etiq eta. 4ield, per sit ar $ camp text al de :iltre e$ el q e l% s ari 8a d%escri re $ 0alor. 4ilter, per sit ar $ 5ot q e permet :iltrar i)o agr par sota $es determi$ades co$dicio$s de:i$ides e$ el 5ot. ne3line, per pro0ocar $ salt de lS$ia. E$ re:er+$cia a l%eleme$t 4ield, cal sa5er q e9 E$ els camps manC2one, q a$ l% s ari come$'a a escri re $ 0alor, 4pe$45=ect mostra els 0alors possi5les q e come$ce$ per aq ell 0alorQ si es 0ol q e el camp i$corpori $ desplega5le, cal tilit>ar l%atri5 t 3idget$6selection6. Pot a$ar acompa$6at de l%atri5 t conteBt. 4pe$45=ect realme$t co$str eix $ domi$i G:EcampE'E$E'EvalorE;H am5 el 0alor i$trod Tt e$ el camp. Es pot alterar l%operador $ de la co$dici tilit>a$t l%atri5 t operator. /ixS mateix, es pot alterar el domi$i a$terior per $ domi$i perso$alit>at, am5 l%atri5 t 4ilter_domain i, e$ tal cas, i$dicar el domi$i com $a llista P6t8o$ de co$dicio$s, o$ les co$dicio$s s$ t ples P6t8o$ de tres 0alors :EcampE'EcondiciSE'EvalorE;. E$ re:er+$cia a l%eleme$t 4ilter, cal sa5er q e la se0a si$taxi 3s9
A4ilter string$6Eti,ueta6 icon$6nom1cona6 domain$6llistaCondicions6 help$6missatgeAjuda6 conteBt$6!Egroup_#CE)EllistaCampsE"&+

o$9 A%atri5 t icon 8a de co$te$ir $a de les ico$es d%4pe$ERP, de ma$era a$#loga a l%atri5 t icon dels eleme$ts menuitem. A%atri5 t domain ser0eix per a i$dicar el :iltre i 3s, com e$ les accio$s, $a llista P6t8o$ de co$dicio$s, q e s%e$llace$ am5 $a cl# s la /2B i s$ t ples P6t8o$ de tres 0alors :EcampE'EcondiciSE'EvalorE;. A%atri5 t conteBt ser0eix per a i$dicar $ co$text i, am5 el 0alor cla group_#C, per aco$seg ir agr par els registres pels camps i$dicats a llistaCamps, separats per comes. A%eleme$t 4ilter es pot 5icar com a :ill d% $ eleme$t 4ield, per i$dicar q e el se :iltre s%aplica especS:icame$t so5re el camp. E$ aq est cas, el 5ot 3s m3s petit i s%adeq a a l%alt ra d% $ camp 4ield. Per :i$alit>ar am5 les 0istes searc)5 recorde q e el $om de la 0ista searc) a tilit>ar s%8a d%i$dicar a l%eleme$t search_vie3_id de l%acci window q e i$0oca la 0ista. 5!4lisi del codi de la 1ista search de la 'igu a 2-2@ El codi OMA correspo$e$t a la 0ista searc) de la :ig ra 2-2- 3s9
Arecord id$6vie3_res_partner_4ilter6 model$6ir.ui.vie36+ A4ield name$6name6+res.partner.selectA&4ield+ A4ield name$6model6+res.partnerA&4ield+

M10. Sistemes de gesti empresarial

E0

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

A4ield name$6tCpe6+searchA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Asearch string$6Kearch 2artner6+ Agroup col$E1.E colspan$EQE+ A4ilter string$6Customers6 name$6customer6 icon$6terp-personal6 domain$6G:EcustomerE'E$E'1;H6 help$6Customer 2artners6&+ A4ilter string$6Kuppliers6 name$6supplier6 icon$6terp-personal6 domain$6G:EsupplierE'E$E'1;H6 help$6Kupplier 2artners6&+ Aseparator orientation$6vertical6&+ A4ield name$6name6 select$616&+ A4ield name$6address6 select$616&+ A4ield name$6countrC6 select$616&+ A4ield name$6user_id6 select$616+ A4ilter help$6PC 2artners6 icon$6terp-personal(6 domain$6G:Euser_idE'E$E'uid;H6&+ A&4ield+ A&group+ Ane3line &+ Agroup eBpand$6.6 string$68roup =C...6+ A4ilter string$6Kalesman6 icon$6terp-personal6 domain$6GH6 conteBt$6!Egroup_#CE ) Euser_idE"6 &+ A&group+ A&search+ A&4ield+ A&record+

Fixem-$os q e aq esta 0ista t3 dos gr ps, separats per $ salt de lS$ia Kne3lineL. / la :ig ra 2-2- o5ser0em per:ectame$t el primer gr p, :ormat pels 5oto$s Clients i Pro eRdors i els camps :om5 Contactes5 Pa2s5 ,enedor i $ darrer 5ot e$ga$xat al camp ,enedor. Bel sego$ gr p $om3s se%$ 0e el tStol #grupat per... do$at q e $o est# expa$dit KeBpand$6.6L. Sit em-$os e$ el primer gr p. 45ser0em q e9 Els dos primers 5oto$s es correspo$e$ a dos eleme$ts 4ilter. 45ser0em q e la co$dici del 5ot Clients 3s G:EcustomerE'E$E'1;H i q e la co$dici pel 5ot Pro eRdors 3s G:EsupplierE'E$E'1;H. Els q atre camps q e 0e$e$ a co$ti$ aci, es correspo$e$ a eleme$ts 4ield. El camp user_id, q e 3s de tip s manC2one, podria portar l%atri5 t 3idget$6selection6 i lla0ors l% s ari 0is alit>aria $a llista desplega5le. El darrer eleme$t, el 5ot petit, correspo$ a $ eleme$t 4ilter, :ill del darrer eleme$t 4ield, =a q e es tracta d% $ :iltre so5re el mateix camp user_id. Sit em-$os e$ el darrer gr p. Si l%expa$dim, 0e rem q e co$t3 $ J$ic 5ot, q e es correspo$ am5 l%eleme$t 4ilter string 6Kalesman6

M10. Sistemes de gesti empresarial

E1

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

del codi a$terior. /q est eleme$t $o i$corpora cap :iltre K domain$GHL perF e$ ca$0i i$corpora l%atri5 t conteBt am5 la cla group_#C acompa$6ada del 0alor user_id q e pro0oca q e, e$ cas q e l% s ari premi el 5ot, els socis de $egocis apareixera$ agr pats per 0e$edor Kuser_idL.

Exemple de 1ista search e! el m3dul school 81e si school_09L E$s proposem i$corporar alg $es 0istes searc) e$ el mFd l school 0ige$t K0ersi school_./L. E$ la 0ista llista dels pro:essors9 /:egir dos 5oto$s de :iltre :amed i -rainee per seleccio$ar els pro:essors de cada tip s de co$tracte. /:egir $ camp de :iltre Partner per permetre seleccio$ar els pro:essors associats a $ determi$at soci de $egocis. /:egir $ 5ot de :iltre, associat al camp a$terior, per permetre seleccio$ar els pro:essors associats a la compa$6ia pri$cipal d%4pe$ERP. /:egir $ camp de :iltre per permetre seleccio$ar els pro:essors tals q e la dedicaci 8or#ria setma$al Ke$ 8oresL estig i per so5re del 0alor a i$trod ir per l% s ari. Aa 0ista 3s9
Arecord model$6ir.ui.vie36 id$6vie3_school_pro4essor_search6+ A4ield name$6name6+school.pro4essor.searchA&4ield+ A4ield name$6model6+school.pro4essorA&4ield+ A4ield name$6tCpe6+searchA&4ield+ A4ield name$6arch6 tCpe$6Bml6+ Asearch+ Agroup+ A4ilter string$6Trainees6 name$6contract6 icon$6terp-personal6 domain$6G:EcontractE'E$E'EtraineeE;H6&+ A4ilter string$69ameds6 name$6contract6 icon$6terp-personal6 domain$6G:EcontractE'E$E'EnamedE;H6&+ Aseparator orientation$6vertical6&+ A4ield name$6partner_id6+ A4ilter help$62rincipal CompanC 2ro4essorsEs6 icon$6terp-personal(6 domain$6G:Epartner_idE'E$E'1;H6&+ A&4ield+ A4ield name$6hours_availa#le6 string$6Tours per ?ee +$6 operator$6+$6&+ A&group+ A&search+ A&4ield+ A&record+

M10. Sistemes de gesti empresarial

E2

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Fixe -0os e$ el domi$i G:Epartner_idE'E$E'1;H tilit>at per :iltrar els pro:essors associats a la compa$6ia pri$cipal d%4pe$ERP. /q est :iltre : $cio$a per q + la compa$6ia pri$cipal sempre 3s la primera i$serci a res_partner i, e$ co$seqP+$cia, sempre t3 idX1. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_1..Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

2.2.

M6todes

Per e$carar am5 gara$ties el disse$6 de m+todes e$ 4pe$45=ect es press posa $s co$eixeme$ts mS$ims de disse$6 de m+todes e$ P6t8o$. Aa capa 4RM d%4pe$45=ect :acilita $ seg it de m+todes q e s%e$carreg e$ del mapatge e$tre els o5=ectes P6t8o$ i les ta les de PostgreSDA. /ixS, disposem de m+todes per crear, modi:icar, elimi$ar i cercar registres a la 5ase de dades. /q ests m+todes s$ tilit>ats de ma$era a tom#tica per 4pe$45=ect e$ l%exec ci dels di0ersos tip s de 0ista q e 4pe$45=ect e$s permet disse$6ar. E$ ocasio$s, perF, pot ser $ecessari alterar l%acci a tom#tica de cerca e creaci e modi:icaci e elimi$aci :acilitada per 4pe$45=ect i, lla0ors, 8a rem de so5reescri re els correspo$e$ts m+todes e$ les $ostres classes. Com exemple d%aq esta $ecessitat, podem co$siderar el cas de la gesti de coma$des de 0e$da Kclasse sale_orderL di$s el :itxer sale.pC del mFd l sale d%4pe$ERP. Si 8i :em $a llada, al :i$al de la classe 8i tro5em el disse$6 dels m+todes unlin Kelimi$arL, create KcrearL i 3rite Kmodi:icarL. Cadasc $ d%ells exec ta $ seg it de compro0acio$s i)o accio$s i, si tot 3s correcte, i$0oca la crida dels correspo$e$ts m+todes unlin , create i 3rite de la capa 4RM. /ixS, el m+tode unlin Kelimi$aci de coma$desL compro0a si les coma$des a elimi$ar te$e$ l%estat draft o cancel Kestats e$ els q e l%elimi$aci 3s permesa, sego$s la lFgica de $egociLi si alg $a de les coma$des $o 3s elimi$a5le, ge$era $a excepci tot a0orta$t l%elimi$aciQ e$ ca$0i, si totes s$ elimi$a5les, procedeix a l%elimi$aci tot i$0oca$t el m+tode unlin s 5mi$istrat per la capa 4RM. Els programadors e$ el framework 4pe$45=ect 8em de co$+ixer els m+todes s 5mi$istrats per la capa 4RM i 8em de domi$ar el disse$6 de m+todes per9 Poder de:i$ir camps : $cio$als e$ el disse$6 del model.

M10. Sistemes de gesti empresarial

E(

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

Poder de:i$ir l%acci a exec tar e$ modi:icar el co$ti$g t d% $ field d% $a 0ista form Katri5 t on_change del fieldL Poder alterar les accio$s a tom#tiq es de cerca, creaci, modi:icaci i elimi$aci de rec rsos. /ls /$$exos del 7e5 8i tro5are l%a$$ex MBep raci de codi P6t8o$ e$ 4pe$ERPN, impresci$di5le a l%8ora de dese$0ol par m+todes.

U$a darrera co$sideraci a te$ir e$ compte e$ l%escript ra de m+todes i : $cio$s e$ 4pe$45=ect 3s q e els textos de missatges i$closos e$ m+todes i : $cio$s, per a poder ser trad T5les, 8a$ de ser i$trod Tts am5 la si$taxi _:EteBtE; i el :itxer .pC 8a de co$te$ir 4rom tools.translate import _ a la cap'alera.

2.2.1.

M6todes "RM

Aa ma=oria de m+todes 4RM q e proporcio$a 4pe$45=ect te$e$ els segPe$ts par#metres9 cr9 C rsor de la 5ase de dades uid9 !de$ti:icador de l% s ari q e exec ta el m+tode ids9 Alista d%e$ters am5 els ide$ti:icadors dels rec rsos als q e s%aplica el m+tode conteBt9 Biccio$ari P6t8o$ am5 $ seg it de par#metres q e pode$ ser $ecessaris e$ l%exec ci del m+tode, com per exemple9 idioma, >o$a 8or#ria, compa$6ia, ... Recordem q e 4pe$45=ect t3, per cada classe P6t8o$, $ J$ic o5=ecte e$ memFria per gestio$ar tots els rec rsos del model associat a la classe. Per aixF, $ m+tode s%i$0oca sempre so5re l%J$ic o5=ecte e$ memFria i rep, 0ia el par#metre ids, la llista dels ide$ti:icadors dels rec rsos so5re els q + act ar. Per a= dar a e$te$dre la $ecessitat del par#metre ids, o5rim la 0ista tree de pro:essors. S posem q e te$im 0aris pro:essors i $%e:ect em $a selecci K $ o 0arisL per a procedir a la se0a elimi$aci. E$ el mome$t q e premem el 5ot $elete i co$:irmem l%elimi$aci, 4pe$45=ect i$0oca el m+tode unlin so5re l%J$ic o5=ecte school_pro4essor existe$t e$ memFria i li passa la llista dels ide$ti:icadors dels pro:essors seleccio$ats, de ma$era q e el m+tode unlin pot procedir a elimi$arlos. El par#metre conteBt 3s $ calaix de sastre ideat per 4pe$45=ect per :icar-8i tots aq ells par#metres q e el m+tode pot $ecessitar i q e e$ ca$0i $o s%8a pre0ist e$ el prototip s del m+tode. Co!ti!gut dels pa 4met es uid0 ids i context Per 0e re el co$ti$g t dels par#metres uid, ids i conteBt e$ alg $ m+tode, so5reescri0im el m+tode unlin Kelimi$aciL a la classe school.pro4essor9

M10. Sistemes de gesti empresarial

E-

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

de4 unlin :sel4' cr' uid' ids' conteBt$9one;) print 6Contingut de uid ) 6 ( str:uid; print 6Llista ids am# E\dE valors) 6 \ len:ids; 4or id in ids) print 6*tE\dE6 \ id print 6<iccionari conteBt am# E\dE tuples) 6 \ * len:conteBt; 4or val in conteBt.items:;) print 6*tE\sE6 \ :val'; return osv.osv.unlin :sel4' cr' uid' ids' conteBt$conteBt;

/q est m+tode unlin mostra per la co$sola del sistema el co$ti$g t dels par#metres uid, ids i conteBt i i$0oca el m+tode unlin de la capa 4RM per procedir a l%elimi$aci. 45ser0em el co$ti$g t e$ cas q e s%8agi seleccio$at l%elimi$aci de ( pro:essors9
Contingut de uid ) 1 Llista ids am# E3E valors) E1RE E10E E1OE <iccionari conteBt am# EQE tuples) E:ElangE' uEca_EKE;E E:EtDE' False;E E:EuidE' 1;E E:Esection_idE' False;E

A%uid 1 3s l%ide$ti:icador de l% s ari q e est# procedi$t a elimi$ar els pro:essorsQ els uids dels pro:essors a elimi$ar s$ 1R, 10 i 1OQ el conteBt co$t3 - t ples9 lang acti , timeDone acti0a, uid i section_id. *egem alg $s dels m+todes 4RM m3s tilit>ats. E$ el -ec)nical 'emento d%4pe$ERP 8i tro5are la relaci completa dels m+todes 4RM am5 la se0a si$taxi i alg $ exemple.

M6tode read
read :sel4' cr' uid' ids' 4ields$9one' conteBt$9one; 4ields 9 Alista de camps dels q e es 0ol o5te$ir el co$ti$g t. Per de:ecte, tots els camps Per cada rec rs de ids, o5t3 $ diccio$ari de parelles camp)valor correspo$e$t als camps i$dicats e$ el par#metre 4ields i retor$a $a llista am5 tots els diccio$aris. Cada diccio$ari i$corpora, e$cara q e $o s%8agi explicitat a 4ields, la parella id)valor.

M10. Sistemes de gesti empresarial

E@

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

M6tode name_get
name_get :sel4' cr' uid' ids' conteBt$9one; Retor$a $a llista de t ples :id' valor; am5 la represe$taci text al dels rec rsos de ids. Recordem q e la represe$taci text al d% $ rec rs 3s, e$ pri$cipi, el co$ti$g t del camp name Kcamp especial de l%atri5 t _columns de la classe P6t8o$L o, si est# de:i$it, el camp i$dicat a l%atri5 t _rec_name de la classe P6t8o$. D a$ 4pe$45=ect $ecessita la represe$taci text al d% $ rec rs, i$0oca a tom#ticame$t el m+tode name_get. E$ ocasio$s, pot i$teressar q e la represe$taci text al d% $ rec rs sig i el res ltat d% $ determi$at c#lc l, i lla0ors caldr# so5reescri re aq est m+tode. Exemple d%utilit&aci dels m6todes read i name_get e! el m3dul school 81e si school_109 Aa classe school.student t3 les col m$es idnum, name i surname. E$ co$seqP+$cia, la represe$taci text al d% $ al m$e 3s el se $om i aixF 3s adeq at, i pre:erim q e sig i la co$cate$aci de cog$om i $om, separats per $a coma i $ espai. Per aco$seg ir-8o cal so5reescri re el m+tode name_get a la classe school_student9
de4 name_get :sel4' cr' uid' ids' conteBt$9one;) res $ GH records $ sel4.read:cr' uid' ids' GEnameE'EsurnameEH; 4or r in records) res.append::rGEidEH' rGEsurnameEH(6' 6(rGEnameEH;; return res

Fixem-$os q e per poder ge$erar la co$cate$aci i$dicada, e$s cal, per a cada rec rs, co$+ixer el cog$om i el $om, i per aco$seg ir-8o 8em tilit>at el m+tode read. 45ser0em, tam53, q e name_get 8a de retor$ar $a llista de t ples i, per aixF, e$ i$0ocar la : $ci append de P6t8o$, e$ el se i$terior co$str Tm el t ple :rGEidEH'...;. Aa modi:icaci e:ect ada a la classe school_student $o 3s 0isi5le, e$ la 0ersi 10 del mFd l sc8ool, do$cs $o 8i 8a cap 0ista e$ la q e 8agi d%apar+ixer la represe$taci text al d% $ est dia$t. Per :or'ar la tilit>aci del $o m+tode name_get, e$s pla$tegem q e a la 0ista tree de l%o5=ecte school.student, e$lloc d%apar+ixer les col m$es :ame i !urname per separat, apareg i $a J$ica col m$a .ull :ame. Per aco$seg ir-8o, cal a:egir al model school.student el camp : $cio$al 4ull_name. Sego$s la de:i$ici dels camps : $cio$als, la : $ci q e 8a d%i$0ocar $ camp : $cio$al, 8a de te$ir $ determi$at $om5re d%arg me$ts, q e $o s$ els del m+tode name_get. E$ co$seqP+$cia, cal crear $a $o0a : $ci _name_get_4nc per tilit>ar e$ la de:i$ici del camp : $cio$al.
de4 _name_get_4nc:sel4' cr' uid' ids' prop' un no3_none' conteBt;) res $ sel4.name_get:cr' uid' ids' conteBt; return dict:res;

/ la >o$a _columns de school.student 8i a:egim el camp9

M10. Sistemes de gesti empresarial

EG

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

E4ull_nameE) 4ields.4unction:name_get' tCpe$EcharE' siDe$ERRE' string$EFull 9ameE' readonlC$ETrueE;'

Bo$at q e la : $ci i$0ocada per $ camp : $cio$al 8a de retor$ar $ diccio$ari de parelles id)valor i q e la : $ci name_get retor$a $a llista de t ples :id' valor;, e$s 0a de co$6a tilit>ar la : $ci P6t8o$ dict, q e do$ada $a llista de t ples de parelles, e$s retor$a el correspo$e$t diccio$ari. Per :i$alit>ar l%exemple, come$tar q e sem5la recoma$a5le a:egir l%atri5 t _order a la classe school_student per a 0is alit>ar els est dia$ts orde$ats per cog$om. Per compro0ar la 0is alit>aci de la col m$a .ull :ame e$ la 0ista tree de school.student, cal retocar la 0ista. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_11.Dip di$s l%apartat MMFd ls 4pe$ERPN dels a$$exos del 7e5.

M6tode rowse
#ro3se :sel4' cr' uid' ids' conteBt $ 9one; Rec pera els rec rsos de la llista ids, com a llista d%o5=ectes, so5re els q e 3s possi5le tilit>ar la $otaci de p $t per accedir a q alse0ol dels se s camps i, e$ el cas de camps relacio$als, $a0egar cap els o5=ectes ap $tats. Si ids 3s $ J$ic rec rs K$o llistaL, :acilita el correspo$e$t o5=ecte K$o llista d%o5=ectesL. /q est 3s $ m+tode :a$t#stic, do$ada la pot+$cia q e :acilita per poder $a0egar e$tre els o5=ectes mit=a$'a$t els camps relacio$als. Com a exemple d% tilit>aci del m+tode 5ro7se, podem re0isar el m+tode _4ull_name de la classe school_course_event del mFd l school.

M6tode self.pool.get
sel4.pool.get :Enom_o#jecteE; M+tode especial q e permet o5te$ir l%o5=ecte P6t8o$ q e gestio$a els rec rsos del model associat a q alse0ol classe. /q est m+tode 3s impresci$di5le q a$ e$ el disse$6 d% $ m+tode d% $a classe, cal i$0ocar $ m+tode d% $a altra classe. Recordem q e 4pe$45=ect t3 $ J$ic o5=ecte q e gestio$a tots els rec rsos del model associat a cada classe. Per ta$t, e$ el co$ti$g t d% $ m+tode, s% tilit>a sel4 per :er re:er+$cia a l%o5=ecte q e gestio$a els rec rsos de la classe, perF 3s molt possi5le q e calg i accedir a l%o5=ecte q e gestio$i els rec rsos d% $a altra classe i, e$ tal sit aci, el m+tode sel4. pool.get :acilita l%acc3s.

M10. Sistemes de gesti empresarial

E.

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

M6tode search
search :sel4' cr' uid' args' o44set$.' limit$9one' order$9one' conteBt$9one' count$False;

args9 Alista de t ples especi:ica$t criteris de cerca o44set9 2om5re de registres a saltar Kopcio$alL limit) M#xim $om5re de registres a rec perar Kopcio$alL order9 Col m$es so5re les q + orde$ar el res ltat. Per de:ecte, tilit>a les col m$es i$dicades a l%atri5 t _order de la de:i$ici de la classe P6t8o$ i, e$ el se de:ecte, la col m$a id de tota classe P6t8o$. count9 Si t3 0alor True, i$dica q e el m+tode $om3s 8a de retor$ar el $om5re de registres q e coi$cideixe$ am5 els criteris i$dicats, e$lloc de rec perar els se s ide$ti:icadors. Retor$a $a llista dels ide$ti:icadors dels rec rsos q e 0eri:iq e$ els criteris de cerca o, si count$True, el $om5re de registres. Aes co$dicio$s a i$trod ir e$ els criteris de cerca 8a$ de 0eri:icar9 Cada co$dici es $ t ple del tip s :Enom_campE' EopE' valor; o$ op 3s q alse0ol dels operadors 5i$aris segPe$ts9 $, W$, +, +$, A, A$, li e, ili e, in' not in, child_o4. A%operador li e di:ere$cia ma=Jsc les de mi$Jsc les, me$tre q e ili e $o 8o :a. Aa $egaci d% $a co$dici s%e:ect a am5 l%operador W da0a$t el t ple. Aa com5i$aci de co$dicio$s am5 els operadors Z Kco$= $ciL i X Kdis= $ciL s%e:ect a tilit>a$t la $otaci polo$esa, tam53 co$eg da per $otaci pre:ix. Exemple d%utilit&aci de m6tode self.pool.get i m6tode search! am- co!dici complexa S posem q e e$ alg $ lloc K:ora de cap m+tode de la classe school.pro4essorL $ecessitem e:ect ar $a cerca de pro:essors q e el se $om co$t3 el text RodrMgueD i q e te$e$ co$tracte named. Escri rSem9
pro4 $ sel4.pool.get:Eschool.pro4essorE; ids $ pro4.search:cr'uid'GEZE':EcontractE'E$E'EnamedE;' :EnameE'Eili eE'ERodrigueDE;H;

Si la cerca s%8ag 3s d%e:ect ar di$s $ m+tode de la classe school_pro4essor, $o caldria la crida a sel4.pool.get i escri rSem directame$t9
ids $ sel4.search:cr'uid'GEZE':EcontractE'E$E'EnamedE;' :EnameE'Eili eE'ERodrigueDE;H;

Per o5te$ir els pro:essors q e el se $om $o co$ti$g i el text RodrSg e> i q e te$e$ co$tracte $amed, escri rSem9

M10. Sistemes de gesti empresarial

E&

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

ids $ sel4.search:cr'uid'GEZE':EcontractE'E$E'EnamedE;' EWE':EnameE'Eili eE'ERodrigueDE;H;

M6tode create
create :sel4' cr' uid' values' conteBt$9one; Crea $ $o registre am5 els 0alors especi:icats e$ el par#metre values, de tip s diccio$ari. Retor$a l%ide$ti:icador del registre creat.

M6tode write
3rite :sel4' cr' uid' ids' values' conteBt$9one; Modi:ica els registres especi:icats a la llista ids, am5 els 0alors i$dicats e$ el par#metre values, de tip s diccio$ari. Retor$a True.

M6tode unlin"
unlin :sel4' cr' uid' ids' conteBt$9one;

Elimi$a els registres especi:icats a la llista ids. Retor$a True.

Els m+todes create, 3rite i unlin s$ ca$didats a ser so5reescrits q a$ i$teressi alterar el se : $cio$ame$t 8a5it al. E$ tal sit aci, la se0a so5reescript ra 8a d%i$clo re, e$ alg $ p $t, la crida als m+todes create, 3rite i unlin de la classe osv.osv. Ws a dir, la so5reescript ra de q alse0ol d%aq ests m+todes seria q elcom similar a9
de4 metode :sel4' cr' uid' ...;) ... accions&comprovacions ,ue corresponguin ... ... crida al mateiB mUtode de la classe osv.osv ... ... accions&comprovacions ,ue corresponguin ... return ...

Ri 8a m3s m+todes 4RM i$teressa$ts de co$+ixer i q e tra5are e$ el -ec)nical 'emento d%4pe$ERP.

M10. Sistemes de gesti empresarial

EE

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

2.2.2.

M6todes on_change

Aes 0istes form :acilite$, e$ els camps edita5les, l%atri5 t on_change per i$dicar $a acci a exec tar q a$ l% s ari ca$0ia el 0alor del camp. El co$ti$g t d%aq est atri5 t 8a de ser la crida a $ m+tode de la classe, am5 els par#metres q e correspo$g i K$ormalme$t el $o 0alor q e 8a pres el camp i, e0e$t alme$t, 0alors d%altres campsL. El m+tode i$0ocat per l%atri5 t on_change t3 o5ligatFriame$t la si$taxi9
de4 metode :sel4' cr' uid' ids' parImetres...;

i 8a de retor$ar, sempre9
return !EvalueE) resultat"

o$ resultat 8a de ser $ diccio$ari de parelles EcampE)valor am5 els $o s 0alors dels camps q e s%8a$ de 0e re a:ectats per l%exec ci del m+tode. Exemple d%utilit&aci de m6todes on_change e! el m3dul school! 81e si school_119 E$ el :orm lari de pro:essors, e$ ca$0iar de pro:essor, el tel+:o$ -camp related- s%act alit>a a tom#ticame$t, perF si editem $ pro:essor i li ca$0iem l%adre'a, me$tre $o s%e$registra el ca$0i, el :orm lari prese$ta la $o0a adre'a perF ma$t3 el tel+:o$ de l%adre'a a$tiga i aixF $o 3s lFgic. Cal, do$cs, q e e$ ca$0iar el co$ti$g t de l%adre'a es modi:iq i a tom#ticame$t el co$ti$g t del tel+:o$ i aixF s%aco$seg eix i$trod i$t, a la 0ista form l%atri5 t on_change e$ el camp address_id9
A4ield name$6address_id6 on_change$6address_id_change:address_id;6&+

A%atri5 t on_change i$0oca el m+tode q e 8em de te$ir a la classe school_pro4essor9


de4 address_id_change :sel4' cr' uid' ids' address_id;) result $ !" i4 address_id) o#j $ sel4.pool.get:6res.partner.address6; address $ o#j.#ro3se:cr' uid' address_id; resultGEphoneEH $ address.phone else) resultGEphoneEH $ 66 return !EvalueE) result"

/ixS, e$ ca$0iar l%adre'a del pro:essor, el tel+:o$ ca$0ia a tom#ticame$t, se$se 8a0er d%esperar a e$registrar el ca$0i. E$ cas de deixar el pro:essor se$se adre'a, el tel+:o$ 8a ria de passar a estar e$ 5la$c, i aq est 3s el : $cio$ame$t correcte des del clie$t "IU, perF e$ el clie$t 7e5 d%4pe$ERP 0.G.1 $o : $cio$a. Pode tro5ar la 0ersi millorada del mFd l school a l%arxi school_12.Dip di$s l%apartat

M10. Sistemes de gesti empresarial

100

UF2 - B1. Sistemes ERP-CRM. Explotaci i adeq aci - !

MMFd ls 4pe$ERPN dels a$$exos del 7e5. Per :i$alit>ar am5 els m+todes on_change, co$siderem la segPe$t sit aci complexa. S posem $a 0ista form / des de la q e s%i$0oca $a altra 0ista form B e$ la q e $ atri5 t on_change i$0oca $ m+tode al q + s%8a de passar alg $KsL 0alorKsL del :orm lari B Kcap pro5lemaL i l%ide$ti:icador del rec rs acti e$ el :orm lari /. Per sol cio$ar aq esta sit aci, 4pe$45=ect e$s :acilita la si$taxi parent.id. E$ els mFd ls 4pe$ERP de la 0ersi G.1, aq esta sit aci J$icame$t es prese$ta e$ dos mFd ls9 *ista vie3_partner_4orm_inherit del mFd l #ase_contact K:itxer #ase_contact_vie3.BmlL *ista vie3_inventorC_4orm del mFd l stoc Karxi stoc _vie3.BmlL

You might also like