Francisco Jos Martnez Garca Consultor: Jordi Ceballos Villach 01/11/2011 ndice de contenidos
0 ndice de ilustraciones ................................................................................................................ 1 !ntroducci"n ............................................................................................................................... # 1.1 $b%eti&os del traba%o 'inal de carrera ................................................................................. # 1.2 ()*ectati&as ......................................................................................................................... # 1.+ ,escri*ci"n del *ro-ecto ..................................................................................................... # 1. .lani'icaci"n ........................................................................................................................ / 1..1 ,ia0ra1a de Gantt ....................................................................................................... / 1..2 Ciclo de &ida ................................................................................................................. 2 1..+ ,etalle de acti&idades .................................................................................................. 2 1.3 4erra1ientas utilizadas ...................................................................................................... 5 1.# .roductos obtenidos ........................................................................................................... 5 1./ (structura de este docu1ento ............................................................................................ 5 2 6e7uisitos iniciales ................................................................................................................... 10 2.1 (scenario de *artida .......................................................................................................... 10 2.1.1 8obre 89. ................................................................................................................... 10 2.1.2 4istoria - caractersticas de :,9 .............................................................................. 11 2.1.+ 9r7uitectura :,9 ...................................................................................................... 1+ 2.1. :eb ,-n*ro ()*lorer ................................................................................................. 1 2.2 .re*araci"n del siste1a .................................................................................................... 1# 2.2.1 Custo1azin0 89. ........................................................................................................ 1/ 2.+ (%e1*lo *r;ctico del Custo1azin0 realizado .................................................................... 20 + 9n;lisis del siste1a .................................................................................................................. 21 +.1 ,ia0ra1a de casos de uso ................................................................................................. 21 +.2 ,escri*ci"n te)tual de casos de uso ................................................................................. 2+ +.2.1 C<01 = !niciar sesi"n ................................................................................................... 2+ +.2.2 C<02 = Finalizar sesi"n ............................................................................................... 2+ +.2.+ C<0+ = >uscar solicitudes ........................................................................................... 2+ +.2. C<0 = ?istado de solicitudes *endientes de liberar .................................................. 2 +.2.3 C<03 = ?iberar solicitud .............................................................................................. 2 +.2.# C<0# = @rans'or1ar solicitudes en *edidos de co1*ra ............................................. 23 +.2./ C<0/ = ?istado de solicitudes trans'or1adas ............................................................. 23 +.2.2 C<02 = ?istado de solicitudes liberadas -/o rechazadas ............................................ 2# +.2.5 C<05 = Visualizar 1aestro de 1ateriales ................................................................... 2# +.2.10 C<10 = Visualizar 1aestro de *ro&eedores .............................................................. 2/ +.2.11 C<11 = 6echazar solicitud ......................................................................................... 2/ +.2.12 C<12 = ,eshacer to1a de decisi"n .......................................................................... 2/ ,iseAo ....................................................................................................................................... 22 .1 9r7uitectura 0lobal............................................................................................................ 22 .2 9r7uitectura es*eci'ica ..................................................................................................... 22 .+ 9r7uitectura 'sica ............................................................................................................. +0 .+ 8obre la base de datos ...................................................................................................... +1 .+.1 ,ia0ra1a entidad relaci"n ......................................................................................... +1 .+.2 Consideraciones sobre ca1*os .................................................................................. +2 . ,ia0ra1a de clases ............................................................................................................ +2 ..1 (s7ue1a dia0ra1a de clases ..................................................................................... ++ .3 ,ia0ra1a de secuencia ..................................................................................................... ++ .3.1 (s7ue1a dia0ra1a de secuencia: C<03 B ?iberar solicitud ...................................... + .3.2 (s7ue1a dia0ra1a de secuencia: C<05 B Visualizar 1aestro de 1ateriales ........... +3 .3.+ (s7ue1a dia0ra1a de secuencia: C<0# B @rans'or1ar solicitudes en *edidos de co1*ra ................................................................................................................................ +# 3 !1*le1entaci"n ....................................................................................................................... +/ 3.1 VieC: M9!D ....................................................................................................................... +2 3.1.1 Co1*onente 8(?(C@E$.@!$D8 .................................................................................. +5 3.1.2 Co1*onentes: .(D,!(D@(8F ?!>(69,98 - @69D8F$6M9,98 .................................. 0 3.2 VieCs: M9(8@6$E.6$V((,$6 - M9(8@6$EM9@(6!9? .................................................. 0 3. :eb ,-n*ro a**lication ................................................................................................... 2 # Conclusiones ............................................................................................................................. + / Fuentes de in'or1aci"n ...........................................................................................................
0 ndice de ilustraciones
!lustraci"n 1. ,ia0ra1a de Gantt .................................................................................................. / !lustraci"n 2. ,ia0ra1a ciclo de &ida............................................................................................. 2 !lustraci"n +. Co1*onentes del 8er&idor 89. Det:ea&er ......................................................... 11 !lustraci"n . (&oluci"n de las <! de 89. .................................................................................... 12 !lustraci"n 3. Modelo de *ro0ra1aci"n :eb ,-n*ro ................................................................ 1+ !lustraci"n #. 9>9. CorGbench 1ostrando la inter'ace :eb ,-n*ro ()*lorer ......................... 1 !lustraci"n /. ?ista de ob%etos *ro0ra1ables en 89. .................................................................. 13 !lustraci"n 2. ,etalle en ;rbol del co1*onente :,9 de este .FC ............................................. 13 !lustraci"n 5. @ransacci"n M(3+D B Visualizar solicitudes de *edidos de co1*ra. ................... 1# !lustraci"n 10. ,etalle de la *estaAa de estrate0ias de liberaci"n en una solicitud ................... 1/ !lustraci"n 11. @ransacci"n 8.6$ B Ca1ino a se0uir *ara *ara1etrizar liberaciones ................ 1/ !lustraci"n 12. ,etalle en 89. del 0ru*o de liberaci"n - clase asociada .................................... 12 !lustraci"n 1+. ,etalle de la caracterstica 7ue co1*one una clase ........................................... 12 !lustraci"n 1. ,etalle de una caracterstica - su &alor ............................................................. 12 !lustraci"n 13. ,etalle en 89. del 0ru*o de liberaci"n - clase asociada .................................... 12 !lustraci"n 1#. ,etalle en 89. de las estrate0ias de liberaci"n. ................................................. 15 !lustraci"n 1/. ,etalle en 89. del c"di0o de liberaci"n .............................................................. 15 !lustraci"n 12. ,etalle en 89. de los indicadores de liberaci"n ................................................. 15 !lustraci"n 15. ,etalle de una solicitud de *edido - la estrate0ia de liberaci"n deter1inada... 20 !lustraci"n 20. ,etalle de las estrate0ias de liberaci"n desde la transacci"n M(3D ................ 20 !lustraci"n 21. ,etalle de la estrate0ia de liberaci"n una &ez to1ada la decisi"n ..................... 20 !lustraci"n 22. Caso de uso - actores .......................................................................................... 21 !lustraci"n 2+. Caso de uso: Gesti"n solicitudes ......................................................................... 22 !lustraci"n 2. 9r7uitectura 0eneral de un co1*onente :eb ,-n*ro ...................................... 22 !lustraci"n 23. 9r7uitectura es*ec'ica del co1*onente :eb ,-n*ro desarrollado ................. 25 !lustraci"n 2#. Visualizaci"n en broCser del co1*onente 8(?(C@E$.@!$D8 ............................ 25 !lustraci"n 2/. Visualizaci"n en broCser del co1*onente .(D,!(D@(8 .................................... 25 !lustraci"n 22. Visualizaci"n en broCser del co1*onente ?!>(69,98....................................... +0 !lustraci"n 25. Visualizaci"n en broCser del co1*onente @69D8F$6M9,98 ........................... +0 !lustraci"n +0. 9r7uitectura 'sica de la a*licaci"n ..................................................................... +0 !lustraci"n +1. (s7ue1a del dia0ra1a entidad relaci"n ............................................................. +1 !lustraci"n +2. ,o1inio de datos del ca1*o >9D.6 .................................................................. +2 !lustraci"n ++. (s7ue1a del dia0ra1a de clases ......................................................................... ++ !lustraci"n +. (s7ue1a del dia0ra1a de secuencia C<03 ......................................................... + !lustraci"n +3. (s7ue1a del dia0ra1a de secuencia C<05 ......................................................... +3 !lustraci"n +#. (s7ue1a del dia0ra1a de secuencia C<0# ......................................................... +# !lustraci"n +/. 9r7uitectura es*ec'ica del co1*onente :eb ,-n*ro desarrollado ................. +/ !lustraci"n +2. Vista interna de los ele1entos usados en la &ieC M9!D .................................... +2 !lustraci"n +5. Vista interna de los ele1entos usados en la &ieC M9(8@6$E.6$V((,$6 ....... 0 !lustraci"n 0. Vista interna de los ele1entos usados en la &ieC M9(8@6$EM9@(6!9?........... 0 !lustraci"n 1. Vista interna de la :eb ,-n*ro a**lication ....................................................... 2
1 Introduccin 1.1 Objetivos del trabajo final de carrera
(l ob%eti&o *rinci*al del @FC es crear una a*licaci"n :eb a tra&s de la herra1ienta 7ue 'acilita 89. en su &ersi"n 89. (CC #.0 - si0uientesF deno1inada :eb ,-n*ro 9>9. Hen adelante :,9I.
:,9 es el recurso tecnol"0ico 7ue o'rece la *lata'or1a *ara 1ane%ar la ca*a de *resentaci"n de las a*licacionesF es decirF la inter'az de usuario de las a*licaciones :eb. :,9 *ro&ee un con%unto de herra1ientas *ara 1odelar - diseAar las inter'aces de usuario bas;ndose en el *aradi01a MVC HModel VieC ControlerI. 1.2 Expectativas
(sta nue&a tecnolo0a resulta 1u- atracti&a *ara las *ersonas 7ue nor1al1ente han traba%ado con 89. en entornos con&encionales. Dor1al1ente las a*licaciones 7ue se crean Jnica - e)clusi&a1ente *ueden ser e%ecutadas dentro de 89.. Con :,9 se *ueden crear a*licaciones :eb 7ue corren a tra&s de un na&e0ador con&encional - ser usadas en la 0ran 1a-ora de los actuales dis*ositi&os 1"&iles Htablets .C - s1art*hones *or e%e1*loI.
9de1;sF con el desarrollo de esta a*licaci"n se 7uiere dar soluci"n a un *roble1a recurrente en di&ersas ti*olo0as de *-1es. ,otar de cierta 1o&ilidad - a su &ez a0ilidad en la to1a de decisiones al de*arta1ento de co1*ras de una e1*resa. 1.3 Descripcin del proyecto
8e i1*le1entar; un caso *r;ctico - Jtil. ,entro del 1"dulo de co1*rasF e)iste el ob%eto de ne0ocio lla1ado solicitud de *edido de co1*ras 7ue re'le%a la necesidad de ad7uirir ciertos 1aterialesF bienesF acti&os o ser&icios sin tener 7ue es*eci'icar de 1anera 'ir1e el *ro&eedor 7ue lo realizar;F el coste econ"1ico 7ue su*ondr; o los detalles de rece*ci"n de la 1ercanca si es 7ue se diera el caso.
.osterior1ente estas solicitudes tras ser estudiadas *or el res*onsable - acordadas con el *ro&eedor ele0ido son con&ertidas en *edidos de co1*ra en 'ir1e en 89..
?a a*licaci"n :eb 7ue desarrollar ser; un *e7ueAo centro de traba%o *ara 0estionar este *roceso. ,entro de la a*licaci"n se *odr;n &er las solicitudes 7ue ha- *endientes de tratarF las solicitudes a*robadas - las solicitudes rechazadas. ,entro de las solicitudes a*robadas distin0uire1os las solicitudes 7ue han sido con&ertidas en *edidos - las 7ue no. 8e obtendr; de 1anera r;*ida - sencilla datos sobre el 1aterial solicitado - los *ro&eedores deseados.
?as solicitudes con&ertidas contendr;n in'or1aci"n del docu1ento 7ue han 0enerado - *ara las 7ue aJn 'alta realizar ste *rocesoF se dotar; de las *antallas necesarias *ara 7ue el res*onsable introduzca la in'or1aci"n 7ue se necesita H.ro&eedorF 1aterial/ser&icio es*ec'icoF condiciones de *recioF etc.I
1. !lanificacin
4a- cuatro 'echas cla&es *ara el se0ui1iento - cu1*li1iento del @FCF corres*onden con las 'echas de entre0a de cada una de las .9CF stas son:
Fecha Documento Descripcin 0+.10.2011 .9C1 6edacci"n del *lan de traba%o: ,escri*ci"nF ob%eti&osF 'uncionalidad - *lani'icaci"n te1*oral. +1.10.2011 .9C2 6edacci"n de la es*eci'icaci"n tcnica del traba%o: ,ia0ra1as <M?F ,iseAo de la ar7uitecturaF *ara1etrizaci"n es*ec'ica de 89.. 15.12.2011 .9C+ !1*le1entaci"n del desarrollo 05.01.2011 (ntre0a 'inal 6edacci"n de los docu1entos: Me1oria - *resentaci"n &irtual
1.4.1 Diagrama de Gantt
Ilustracin 1. Diagrama de Gantt 1.4.2 Ciclo de vida
(l *ro-ecto ha sido desarrollado to1ando co1o base el ciclo de &ida cl;sico de creaci"n de so'tCare Hta1bin deno1inado ciclo en cascadaI li0era1ente ada*tado a las necesidades del @FCF - se ha co1*uesto de las si0uientes eta*as:
Ilustracin 2. Diagrama ciclo de vida
4a- 7ue destacar 7ue durante el *roceso de i1*le1entaci"n - *ruebas se tu&o 7ue &ol&er a la eta*a de diseAo -a 7ue la realidad del diseAo no se a%ustaba a la i1*le1entaci"n. 1.4.3 Detalle de actividades
9 continuaci"n se detalla *or cada eta*a 7ue co1*one el ciclo de &idaF las *rinci*ales acti&idades realizadas con ob%eto de obtener el *roducto son las si0uientes:
Anlisis previo y planificacin .resentaci"n de la docu1entaci"n es*ec'ica *or ser un @FC adhocF bJs7ueda de una instalaci"n real de 89. *ara *oder realizar el *ro-ecto - te1*orizaci"n del *ro-ecto con'or1e a la 1etodolo0a a utilizar - los hitos 7ue alcanzar.
Anlisis de re!uisitos Creaci"n - docu1entaci"n de los casos de uso e identi'icaci"n - docu1entaci"n de los re7uisitos 'uncionales.
Dise"o ,iseAo de la ar7uitectura de la soluci"nF de'inici"n de la estructura de la base de datos - estudio de la inter'ace de las *antallas
#mplementacin y pruebas !1*le1entaci"n de la a*licaci"n teniendo en cuenta las es*eci'icaciones de'inidas hasta el 1o1ento - creaci"n de un %ue0o de datos.
Finali$acin 6edacci"n 'inal de la 1e1oriaF 1odi'icaciones *untuales de la i1*le1entaci"n - creaci"n de la *resentaci"n &irtual.
1." #erra$ientas utili%adas
.ara la realizaci"n del @FC se han utilizado las si0uientes herra1ientas:
%icrosoft Word 6edacci"n de docu1entos. %icrosoft Po&erPoint Creaci"n de la *resentaci"n del *ro-ecto. 'antt Pro(ect Creaci"n del dia0ra1a de Gantt Bouml (s*eci'icaci"n casos de uso. SAP )** +,- !1*le1entaci"n de la a*licaci"n - %ue0o de datos. *amtasia .ecorder Creaci"n del &ideo de *resentaci"n. Dia Con'ecci"n del dia0ra1a entidad relaci"nF dia0ra1a de secuenciaF dia0ra1a de clases F ciclo de &ida - otros 0r;'icos. 1.& !roductos obtenidos
,urante la realizaci"n del *resente traba%o se han 0enerado los si0uientes entre0ables:
,ocu1ento del .lan de @raba%o. ,ocu1ento de 9n;lisis - ,iseAo del siste1a. ,ocu1ento !1*le1entaci"n de la a*licaci"n :(> desarrollada 7ue e1ulara a la entre0a de los e%ecutables. Me1oria 'inal del *ro-ectoF este docu1ento. .resentaci"n &irtual. 1.' Estructura de este docu$ento
(l resto de esta 1e1oria reco0e los as*ectos 1;s destacables de las tareas realizadasF co1enzando *or los re7uisitos inicialesF 7ue describen el escenario sobre el 7ue se ha traba%ado. ()*licando entre otras cosas 7u es 89. - los as*ectos tcnicos de :,9.
9cto se0uido se introducir; el resultado de la 'ase de an;lisisF con el diseAo 0lobal de :,9 - es*ec'ico de la a*licaci"nF (l dia0ra1a entidad relaci"nF el es7ue1a de dia0ra1a de clases - dia0ra1a de secuencias.
,es*us se entrar; a describir la 'ase de i1*le1entaci"nF donde se co1entar;n las *rinci*ales *articularidades - decisiones 7ue han sido to1adas durante esta eta*a del *ro-ecto *ara cada uno de los co1*onentes creados - se describir;n los as*ectos 1;s destacados.
(l Jlti1o ca*tulo se centrar; en las conclusiones 'inales a las 7ue se han lle0ado a lo lar0o de la realizaci"n del *ro-ectoF - a continuaci"n se *odr; encontrar in'or1aci"n adicional co1o las 'uentes utilizadas.
2 (e)uisitos iniciales
?os si0uientes *;rra'os describen un escenario real sobre el 7ue se &a a desarrollar el @FCF as co1o las *rinci*ales necesidades establecidas desde el inicio. 2.1 Escenario de partida
!MC @o-s es una e1*resa dedicada al diseAoF 'abricaci"n - distribuci"n de %u0uetes a ni&el internacional. Cuenta con los derechos de e)*lotaci"n de 1arcas conocidas a ni&el 1undialF *or e%e1*loF ,isne-.
@iene *lantas de 'abricaci"n en 4on0 Kon0 - 6u1ana entre otras - 0randes centros lo0sticos en CataluAa.
<na de sus recientes decisiones estrat0icas en su ne0ocio ha sido la i1*lantaci"n de 89. en todas sus 'ilialesF centros lo0sticos - centros de *roducci"n *ara uni'icar los datos en un Jnico siste1a.
<na de las *articularidades de la i1*lantaci"n de 89. es dotar a su de*arta1ento de co1*ras de un acceso r;*ido - sencillo en la liberaci"n de solicitudes de *edidos de co1*ra. (l acceso a 89. de los res*onsables del de*arta1ento es un as*ecto crtico - es *or este 1oti&o 7ue se desarrollar; una a*licaci"n :eb 7ue *ueda ser accesible desde cual7uier na&e0adorF -a sea desde .CF s1art*hones o tablets con cone)i"n a internet.
(l usuario autenti'icado en la a*licaci"n :eb *odr; &er las solicitudes del siste1a 89. en + 0randes 0ru*os. ?as solicitudes *endientes de to1a de decisi"nF las solicitudes liberadas - rechazadas - las solicitudes 7ue han sido trans'or1adas en *edidos de co1*ra en 'ir1e. (n cual7uiera de los + 0ru*os *odr; acceder a los datos 1aestros del 1aterial - *ro&eedor. Consecuente1ente se *odr; liberar - rechazar las solicitudesF as c"1o &ol&er al estado inicial de to1a de decisi"n en caso de error. 8e dotar; ta1bin de la creaci"n auto1;tica de los *edidos de co1*ra en base a las solicitudes en las 7ue el usuario lo crea con&eniente.
.ara satis'acer estas necesidadesF 89. cuenta con la tecnolo0a :eb ,-n*ro *ara realizar a*licaciones :eb. 2.1.1 Sobre SAP
89. son las si0las de 8iste1asF 9*licaciones - .roductosF una e1*resa 7ue desde su creaci"n ha ido creciendo sin *arar - se ha situado co1o lder de los 'abricantes de (6.s. 89. es so'tCare de 0esti"n inte0rado. (s una soluci"n estrat0ica - 0lobal *ara las e1*resas. 8u )ito se debe en *arte a su ada*tabilidad H0racias a su 0rado de *ara1etrizaci"nI en la 1a-ora de e1*resas.
89. es una a*licaci"n del ti*o cliente / ser&idor. ?as a*licaciones cliente inician la co1unicaci"n conect;ndose - de1andando ser&icios al ser&idor de a*licaci"nL ser&idores con una 0ran ca*acidad de *rocesa1iento - al1acena1iento de datos. ?os ordenadores clienteF de 1enos ca*acidadF consultan la in'or1aci"n - la 1odi'ican 1ediante *eticiones al ser&idor.
89. tiene la caracterstica de ada*tarse a di'erentes ti*os de con'i0uracionesF *ero la 1;s 'recuente es la de + ni&eles. (l *ri1er ni&el sera el ser&idor d"nde reside la base de datos. (l se0undo ni&el sera una serie de ser&idores de a*licaciones - el tercer ni&el sera las estaciones de traba%o del usuario.
Ilustracin 3. Componentes del Servidor SAP NetWeaver
89. es un siste1a abierto *or el hecho de 7ue *uede ada*tarse a 1Jlti*les con'i0uraciones. 9 ni&el de siste1as *uede instalarse en siste1as o*erati&os con <D!MF :indoCs D@ o 98/00. 9 ni&el de base de datosF las tablas del diccionario *ueden residir en siste1as c"1o $racleF !n'or1i)F ,>2 - M88N? 8er&er entre otros. 9 ni&el de a*licaci"n 89. *ro*orciona 1uchas *osibilidades de co1unicaci"nF tanto de entradaF c"1o de salida de datos con otras a*licaciones. (s ca*az de utilizar los *rotocolos de co1unicaci"n 1;s conocidos. 2.1.2 Historia y caractersticas de DA
(l 1ercado actualF es*ecial1ente 89.F necesita a*licaciones Ceb 7ue *uedan ser e%ecutadas directa1ente en cual7uier na&e0ador sin una instalaci"n ni 1anteni1iento co1*licado. .ara satis'acer estos re7ueri1ientos 89. inicial1ente ada*t" la inter'az de d-n*ros H<!sI 7ue tenan 7ue ser &istas en un na&e0ador usando !nternet @ransaction 8er&er H!@8I. 8in e1bar0oF esto s"lo era una soluci"n *ro&isional -a 7ue las dos tecnolo0as eran 1u- di'erentes - haba de1asiados escollos 7ue sal&ar. (ntonces 89. desarroll" las >usiness 8er&er .a0es H>8.IF una tecnolo0a 7ue 'ue es*ec'ica1ente creada *ara !nternetL sin e1bar0oF esta tecnolo0a no era lo su'iciente1ente 1adura *ara establecerse *or s sola co1o la sucesora de las ori0inales d-n*ros.
Con la introducci"n de :eb ,-n*ro en 2003F 89. 'ue 'inal1ente ca*az de o'recer una e)hausti&a tecnolo0a ';cil de *ro0ra1ar 7ue tiende a ser la sucesora de las d-n*ros.
Ilustracin . !volucin de las "I de SAP
(n el 1arco de la estrate0ia de 89. Det:ea&erF :eb d-n*ro es la tecnolo0a o'icial de <! *ara las a*licaciones Ceb de 89.. (sta *uede ser *ro0ra1ada en 9>9. o Ja&a. :eb ,-n*ro est; dis*onible en su *lata'or1a Ja&a desde la *ri1era &ersi"n de 89. Det:ea&er en 200L ?a &ersi"n 9>9. 'ue liberada a 'inales del 2003. 9ctual1ente 89. est; descartando la tecnolo0a Ja&a - usando Jnica1ente la 9>9..
?o Jnico necesario *ara &er a*licaciones :eb ,-n*ro es un na&e0ador. ?as &enta%as 7ue o'rece de sus tecnolo0as sucesoras son:
:eb ,-n*ro o'rece al desarrollador de a*licaciones un con%unto 'i%o de ele1entos de inter'az. ?os 1etadatos describen las *ro*iedades de la dis*osici"n - caractersticas de estos ele1entos.
(l *roceso de co1unicaci"n entre la a*licaci"n - el 'ra1eCorG se lle&a a cabo Jnica1ente en 9>9. - en deter1inados lu0ares.
Do es necesario 7ue el desarrollador conozca 4@M? o Ja&a 8cri*t *ara desarrollar las <!F ade1;s 0racias a la estricta se*araci"n entre la l"0ica de la a*licaci"n - la tecnolo0a de la &ista se *ueden crear <!s sin un 0ran conoci1iento tcnico.
?a reutilizaci"n de los co1*onentes de un desarrollo a otro es relati&a1ente sencilla. 89. *ro*orciona co1*onentes est;ndar *ara ser usados en las a*licaciones.
.ro*orciona a-udas de bJs7ueda casi auto1;tica de los ob%eto de datos del diccionario de 89..
?a ri0urosa enca*sulaci"n del 'ra1eCorG de :eb ,-n*ro - de la l"0ica de la a*licaci"n o'rece un ni&el alto de *rotecci"n de las in&ersionesF es decirF ase0ura 7ue ser; ';cil de ada*tar las a*licaciones desarrolladas en 'uturas tecnolo0as. 2.1.3 Ar!"itect"ra DA
?as a*licaciones :eb ,-n*ro no se basan en un 1odelo i1*erati&o de *ro0ra1aci"n si no en un 1odelo declarati&oF *or consi0uiente la inter'az de usuario - sus relaciones no son *ro0ra1adasL son construidas en un editor 0r;'ico. (l editor 0uarda la in'or1aci"n obtenida a tra&s de la inter'az de usuario declarada c"1o 1etadatos. (n *rinci*ioF estos 1etadatos *er1iten 0enerar el c"di0o en cual7uier len0ua%e de *ro0ra1aci"nF sin e1bar0oF actual1ente s"lo 9>9. - Ja&a est;n so*ortados *ara :eb ,-n*ro.
?os *untos de salida dentro del c"di0o 'uente *er1iten a los desarrolladores i1*le1entar su *ro*io c"di0o en ciertos *untos de la a*licaci"n. ,es*us el co1*ilador traduce toda la in'or1aci"n en una a*licaci"n e%ecutable.
Ilustracin #. $odelo de programacin We% D&npro
(l uso del 1odelo declarati&o consi0ue 7ue Jnica1ente sea necesario i1*le1entar una Jnica inter'az contra el ser&idor de a*licaciones 89. Det:ea&er *ara obtener so*orte :eb ,-n*ro. Versiones anteriores de :,9 s"lo so*ortan 4@M?. Con la liberaci"n de la &ersi"n /.01 se so*orta 9J9M.
?os co1*onentes re*resentan los blo7ues de construcci"n centrales de :,9. Co1binan la l"0ica de los ob%etos relacionados con :,9 - de los *rocesos en 0ru*o. ?os co1*onentes inclu-enF *rinci*al1enteF los controllersF las CindoCsF las &ieCs - las :eb ,-n*ro a**lications. 8i1*li'icandoF desde el *unto de &ista de la ar7uitectura MVCF los co1*onentes son un con%unto de &ieCs - controllers.
Do ha- 7ue con'undir los co1*onentes en :eb ,-n*ro *or las :eb ,-n*ro a**lications. ?as :eb ,-n*ro a**lications re*resentan un *unto de entrada de los co1*onentesF dicho de otra 'or1aF consisten en una direcci"n del ser&idor 7ue *uede ser usada en los na&e0adores :eb. .or lo tantoF una :eb ,-n*ro a**lication no tiene nada 7ue &er con la 1anera usual de hablar de la a*licaci"n.
Do se *uede e%ecutar un co1*onente sin una a*licaci"n. 8in e1bar0oF estas inter'aces *er1iten 7ue los co1*onentes 'or1en *arte de otros co1*onentesF *or lo tantoF :eb ,-n*ro *er1ite co1*onentes con cual7uier nJ1ero de :eb ,-n*ro a**lications.
2.1.4 eb Dyn#ro $%#lorer
9ntes de entrar en 1ateriaF aclaro unos *untos. (n el a*artado /, #mplementacin se e)*licar;n los *untos - decisiones 1;s destacadas sobre la i1*le1entaci"n - en el docu1ento #mplementacin de la aplicacin W)B desarrollada entre0ado *or 1ail se 1ostrar; el c"di0o interno 0enerado en 89. ante la i1*osibilidad de *oder 0enerar los 'icheros de c"di0o 7ue se *iden en el @FC. (n este a*artado Jnica1ente se e)*licar; la herra1ienta usada - las caractersticas de los di'erentes ti*os de ob%etos HVieCsF :indoCsF :eb ,-n*ro a**licationsF etc.I de los 7ue se co1*one un co1*onente :,9.
:eb ,-n*ro ()*lorerF la herra1ienta *ara desarrollar :,9F est; co1*leta1ente inte0rada en el 9>9. :orGbench Hherra1ienta *ara 0enerar cual7uier otro ti*o de desarrollo dentro de 89.I. 8e accede a tra&s de la transacci"n S)0- - tiene el si0uiente as*ecto:
Ilustracin '. A(AP )or*%enc+ mostrando la inter,ace We% D&npro !-plorer
?a secci"n 1 'or1a *arte del 9>9. :orGbenchF es el na&e0ador de ob%etos. 4a- un 0ran abanico de ob%etos c"1o *odra ser el 6e*ositor- M!M(F d"nde se *ueden 0uardar entre otras cosas i1;0enes *ara ser usadas en 'uturas a*licaciones. (n concreto todos los ti*os de ob%etos *ro0ra1ables se encuentran dentro de la entrada Bro&ser de .epository.
?a secci"n 2 contiene la lista de ob%etos *ro0ra1ablesF en detalle contiene las si0uientes entradas - las a*licaciones :,9 se encuentran en el a*artado resaltado en azul.
Ilustracin .. /ista de o%0etos programa%les en SAP
?a secci"n + es la *ri1era &ista es*ec'ica del :eb ,-n*ro ()*lorer. Contiene todos los ob%etos de los 7ue se co1*one una a*licaci"n :,9F en este caso el no1bre tcnico es 1WDA2S3LP)D.
Ilustracin 1. Detalle en 2r%ol del componente WDA de este P3C
*omponent controller Cada co1*onente :, tiene un Jnico co1*onent controller. Contiene los atributosF 1todosF e&entos - conte)to. ,entro del co1*onenteF el co1*onent controller est; dis*onible en todos los ob%etos - es *or eso 7ue es un ele1ento esencial1ente i1*ortante.
*omponent interface Cada :, co1*onente contiene una instancia de este ob%eto 7ue *er1ite el diseAo entre ar7uitecturas de co1*onentes :,.
4ie&s Contienen la *arte &isible del co1*onenteF *or lo tanto contiene todos los ele1entos <!.
Windo&s <n co1*onente :, contiene al 1enos un ele1ento de este ti*o. !nte0ran las &ieCs - *er1ite na&e0ar entre ellas.
?a secci"n 1uestra las &istas es*ec'icas del :eb ,-n*ro ()*lorer. Contiene el detalle del ob%eto seleccionado en la secci"n +. (n la ilustracin + concreta1ente se 1uestra las caractersticas *rinci*ales de 1WDA2S3LP)D as c"1o los otros co1*onentes usados dentro de nuestro co1*onente. 2.2 !reparacin del siste$a
(s necesario *ara1etrizar nuestro siste1a 89. *ara 7ue una solicitud de *edido 7uede blo7ueada *ara deter1inados 0ru*os de co1*ra al ser creada - no *ueda con&ertirse en *edido de co1*ras hasta 7ue el res*onsable no la libere.
Visual1ente dentro de 89. una solicitud de co1*ras Htransacci"n %)/56I tiene el si0uiente as*ecto:
Ilustracin 4. 5ransaccin $!#3N 6 7isuali8ar solicitudes de pedidos de compra.
$bser&a1os 7ue la solicitud 7----780 Hsecci"n 1I contiene una lnea del 1aterial con c"di0o 9/-7/:'S5 - descri*ci"n .* *A. '3.%#;# S)A S).#) 5 Hsecci"n 2F *arte iz7uierdaI.
8olicita1os 7--- unidades *ara nuestro centro #%* ;3<S => L;D - en concreto *ara el al1acn Stoc? 'eneralF con 0ru*o de co1*ras +-- Hsecci"n 2 *arte derechaI.
(n la secci"n + se encuentra la cabecera del docu1ento. (n el caso de las solicitudes de *edido Jnica1ente se *uede introducir un te)to.
(n la secci"n se *ueden &isualizar las distintas *estaAas con in'or1aciones es*ec'icas de la lneaF c"1o *uede ser los datos 0enerales del 1aterialF Cantidades - 'echasF Fuentes de a*ro&isiona1ientoF etc. .ara nuestro caso en *articular nos interesa la *estaAa (strate0ia liberaci"nL d"nde se 1uestra en detalle in'or1aci"n de la liberaci"n.
Ilustracin 19. Detalle de la pesta:a de estrategias de li%eracin en una solicitud
(n la secci"n 1 se nos in'or1a del 0ru*o de liberaci"n - la estrate0ia de liberaci"n deter1inada *ara nuestra solicitudL en el si0uiente *unto e)*licare1os en detalle 7ue si0ni'ica cada ele1ento.
(n la secci"n 2 ha- un *e7ueAo listado d"nde se nos indica el usuario res*onsable de la liberaci"nF as co1o el c"di0o de liberaci"n deter1inado auto1;tica1ente.
(n la secci"n + encontra1os in'or1aci"n del estado actual de liberaci"n. (n el caso de nuestra i1a0en es una *osici"n liberada. 2.2.1 C"stoma&ing SAP
.ara habilitar las estrate0ias de liberaci"n en 89. - en concreto *ara el *ro-ecto 7ue se est; realizando se ha tenido 7ue *ara1etrizar el siste1a *ara 1odi'icar su co1*orta1iento nor1alF el cual no considera 7ue una solicitud deba liberarse.
,entro del 1enJ de *ara1etrizaci"n cl;sico 7ue trae 89. Htransacci"n SP.3I - en concreto en la ruta seAalada en la i1a0en *ode1os 1odi'icar este co1*orta1iento.
Ilustracin 11. 5ransaccin SP;< 6 Camino a seguir para parametri8ar li%eraciones
,entro de 89. se *ueden crear di'erentes 0ru*os de liberaci"n. Cada 0ru*o de liberaci"n nos *osibilita crear una estrate0ia de blo7ueo se0Jn la caracterstica 7ue le enlaza1os a tra&s de una clase.
Ilustracin 12. Detalle en SAP del grupo de li%eracin & clase asociada
?a clase 1PF*S3L contiene la caracterstica 1PF*S3L
Ilustracin 13. Detalle de la caracter=stica >ue compone una clase
O la caracterstica 1PF*S3L contiene el &alor +--.
Ilustracin 1. Detalle de una caracter=stica & su valor
(l 0ru*o de liberaci"n creado en este caso es %- - li0a la clase 7ue contiene a su &ez una caracterstica con &alor +--.
Ilustracin 1#. Detalle en SAP del grupo de li%eracin & clase asociada
8i crea1os solicitudes de co1*ra con 0ru*os de co1*ras distintos a +--F al no haber enlazado %- con estos &alores no ser; necesario liberar.
?a estrate0ia de liberaci"n nos *er1ite crear los di'erentes ni&eles de liberaci"n *or los cuales debe *asar nuestro 0ru*o de liberaci"n.
?a estrate0ia de liberaci"n en nuestro caso es )- - contiene un Jnico ni&el.
Ilustracin 1'. Detalle en SAP de las estrategias de li%eracin.
8i *usira1os 1;s c"di0os de liberaci"n la solicitud debera ser autorizada *or 1;s de un usuario de 'or1a secuencial. (n el caso *articular del @FC un Jnico usuario es su'iciente.
(l c"di0o de liberaci"n enlaza con el usuario de 89. 7ue *uede liberar la solicitud. (n nuestro caso es *-.
Ilustracin 1.. Detalle en SAP del cdigo de li%eracin
?os di'erentes estados *or los 7ue *uede *asar una solicitud de co1*ras se deno1inan indicadores de liberaci"n en 89.. (n nuestro caso s"lo he1os creado dosF *ero *ara otras necesidades - de*endiendo de los ni&eles de liberaci"n *odran crearse 1;s.
Ilustracin 11. Detalle en SAP de los indicadores de li%eracin
(n resu1enL *ara1etrizando el siste1a de 'or1a adecuada se *uede satis'acer las necesidades es*ec'icas de la e1*resa d"nde i1*lanta1os las liberaciones de solicitudes de co1*ra.
89. contiene la a*licaci"n %)/@6 *ara *oder liberar los *edidos blo7ueados. Pnica1ente el usuario res*onsable *uede ace*tar o rechazar. <no de los ob%eti&os de la a*licaci"n 7ue se ha desarrollado es crear un centro de traba%o accesible desde un na&e0ador cual7uiera *ara no de*ender del acceso a 89. *ara realizar las tareas de 0esti"n de un res*onsable. 2.3 Eje$plo pr*ctico del +usto$a%in, reali%ado
8i crea1os una solicitud de co1*ras con 0ru*o de co1*ras +--F el *edido 7ueda blo7ueado.
Ilustracin 14. Detalle de una solicitud de pedido & la estrategia de li%eracin determinada
9ccediendoF con el usuario adecuandoF a la transacci"n %)/@6F *ode1os liberar la solicitud.
Ilustracin 29. Detalle de las estrategias de li%eracin desde la transaccin $!#N
Ilustracin 21. Detalle de la estrategia de li%eracin una ve8 tomada la decisin
3 -n*lisis del siste$a
9 continuaci"n se reco0e el resultado de la 'ase de an;lisis del siste1a. .ara elloF *artiendo de la &ista 0eneral a*ortada *or los dia0ra1as de casos de usoF se detallar; cada uno de ellosF - se 'or1alizar;n - concretar;n los re7uisitos no 'uncionales. 3.1 Dia,ra$a de casos de uso
(l si0uiente dia0ra1a reco0e una &ista 0lobal de los actores - casos de uso 7ue describen los re7uisitos 'uncionales de la a*licaci"n:
Ilustracin 22. Caso de uso & actores
C"1o se obser&a ha- dos ti*os de actores di'erentes:
Asuario 6e*resenta a todos los usuarios 7ue *ueden iniciar la a*licaci"n.
.esponsable <na es*ecializaci"n del *ri1ero. !nclu-e a todos los actores 7ue *ueden liberar solicitudes de *edido o *ueden consultar docu1entos.
.ara 'acilitar la lecturaF en el dia0ra1a anterior se ha a0ru*ado en un *a7uete el con%unto de 'uncionalidades 7ue a'ectan al 1is1o actor - cu-o ob%eti&o es la 0esti"n de solicitudes.
(l si0uiente dia0ra1a de casos de uso reco0e el contenido del *a7uete 'uncional 0esti"n solicitudes:
Ilustracin 23. Caso de uso? Gestin solicitudes
?a si0uiente tabla resu1e los casos de uso conte1*ladosF 7ue ser;n desarrollados en la secci"n *osterior.
*diBo Descripcin Actor C<01 !niciar sesi"n <suario C<02 Finalizar sesi"n 6es*onsable C<0+ >uscar solicitudes 6es*onsable C<0 ?istado de solicitudes *endientes de liberar 6es*onsable C<03 ?iberar solicitud 6es*onsable C<0# @rans'or1ar solicitudes en *edidos de co1*ra 6es*onsable C<0/ ?istado de solicitudes trans'or1adas 6es*onsable C<02 ?istado de solicitudes liberadas -/o rechazadas 6es*onsable C<05 Visualizar 1aestro de 1ateriales 6es*onsable C<10 Visualizar 1aestro de *ro&eedores 6es*onsable C<11 6echazar solicitud 6es*onsable C<12 ,eshacer to1a de decisi"n 6es*onsable
3.2 Descripcin textual de casos de uso 3.2.1 C'(1 ) *niciar sesi+n
#dentificador C<01 6ombre !niciar sesi"n .esumen (l usuario se identi'ica en el siste1a Actor <suario Precondiciones Do ha- nin0una sesi"n acti&a Postcondiciones (l usuario ha iniciado una sesi"n o el actor ha 'inalizado la a*licaci"n Flu(o normal 1.= 8e inicia cuando el actor accede *or *ri1era &ez al siste1a. 2.= (l siste1a solicita un idio1aF usuarioF contraseAa - 1andante &;lido en 89.. +.= (l usuario in'or1a de los *ar;1etros re7ueridos en el *unto 2 .= (l siste1a co1*rueba los datos. 3.= 8i todo es correctoF la sesi"n se inicializa - se 1uestra el 1enJ *rinci*al de la a*licaci"n.
3.2.2 C'(2 ) ,inali&ar sesi+n
#dentificador C<02 6ombre Finalizar sesi"n .esumen (l res*onsable 'inaliza la sesi"n en el siste1a Actor 6es*onsable Precondiciones (l actor ha iniciado la sesi"n *re&ia1ente Postcondiciones Do ha- sesiones acti&as Flu(o normal 1.= (l actor selecciona 'inalizar la sesi"n. 2.= (l siste1a 1uestra un a&iso - solicita con'ir1aci"n. +.= (l actor con'ir1a la 'inalizaci"n. .= (l siste1a da *or 'inalizada la sesi"n.
3.2.3 C'(3 ) -"scar solicit"des
#dentificador C<0+ 6ombre >uscar solicitudes .esumen (l res*onsable busca solicitudes de *edidos de co1*ra Actor 6es*onsable Precondiciones (l actor ha iniciado la sesi"n *re&ia1ente Postcondiciones $btene1os + listados di'erentes de solicitudes de co1*ra. ?istado de solicitudes *endientes de liberarF listado de solicitudes trans'or1adas - listado de solicitudes liberadas -/o rechazadas Flu(o normal 1.= (l res*onsable busca solicitudes de co1*ra *or los si0uientes ca1*os: 8olicitud de *edidoF clase de docu1entoF centroF al1acnF 1aterialF 0ru*o de artculosF *ro&eedor deseadoF *ro&eedor 'i%oF 'echa de creaci"n - 'echa de entre0a. 2.= (l siste1a de&uel&e + listados con las solicitudes seleccionadas. )Ctensiones C<0 B ?istado de solicitudes *endientes de liberar C<0/ B ?istado de solicitudes trans'or1adas C<02 B ?istado de solicitudes liberadas -/o rechazadas 3.2.4 C'(4 ) .istado de solicit"des #endientes de liberar
#dentificador C<0 6ombre ?istado de solicitudes *endientes de liberar .esumen 8e 1uestra un listado de las solicitudes 7ue son susce*tibles a ser liberadas o rechazadas *or el res*onsable 7ue ha iniciado la sesi"n. Actor 6es*onsable Precondiciones (l actor ha iniciado una bJs7uedaF in'or1ando o sin in'or1ar al0Jn *ar;1etro de selecci"n descrito en C<0+ Postcondiciones 1.= (l siste1a de&uel&e un listado de solicitudes *endientes de liberar / rechazar. 2.= (l listado se co1*one de los ca1*os: 8olicitud de *edidoF *osici"nF clase de docu1entoF 0ru*o de artculosF 1aterialF descri*ci"n 1aterialF centroF al1acnF 0ru*o de co1*rasF *ro&eedor deseadoF *ro&eedor 'i%oF 'echa de creaci"nF 'echa de entre0aF cantidad solicitadaF unidad de 1edidaF i1*orte - 1oneda. +.= ?os ca1*os *ro&eedor - 1aterial son sensibles a ser seleccionados *ara 1ostrar in'or1aci"n adicional. Flu(o normal 1.= (l res*onsable &isualiza en 'or1a de listado las solicitudes *endientes de liberar/rechazar. 2.= (l res*onsable *uede seleccionar el bot"n de liberar o rechazar. )Ctensiones C<03 B ?iberar solicitud C<11 B 6echazar solicitud C<05 B Visualizar 1aestro de 1ateriales C<10 B Visualizar 1aestro de *ro&eedores
3.2./ C'(/ ) .iberar solicit"d
#dentificador C<03 6ombre ?iberar solicitud .esumen (l res*onsable 1arca una lnea del listado de solicitudes *endientes de liberar - selecciona el bot"n liberar. Actor 6es*onsable Precondiciones (s una solicitud *endiente de ser liberada. Postcondiciones (l estado de una solicitud se 1odi'icaL *asa de estado *endiente a liberado. ?os listados se re'rescan auto1;tica1ente. Flu(o normal 1.= (l res*onsable selecciona una lnea 2.= .resiona el bot"n de liberar +.= ?a lnea desa*arece del listado de solicitudes *endientes de ser liberadas. .= ?a lnea a*arece en el listado de solicitudes liberadas -/o rechazadas.
3.2.0 C'(0 ) 1rans2ormar solicit"des en #edidos de com#ra
#dentificador C<0# 6ombre @rans'or1ar solicitudes en *edidos de co1*ra .esumen (l res*onsable 1arca una lnea del listado de solicitudes liberadas -/o rechazadas. 8i la solicitud seleccionada est; liberada se crea auto1;tica1ente un *edido de co1*ras se0Jn la in'or1aci"n 'acilitada. ?os listados se re'rescan *ara re'le%ar la nue&a realidad. Actor 6es*onsable Precondiciones ?a lnea seleccionada Jnica1ente *uede ser una solicitud liberadaF en caso contrario la o*ci"n desa*arece. Postcondiciones ?a solicitud 0enera un *edido de co1*ras. Flu(o normal 1.= (l res*onsable selecciona una solicitud liberada. 2.= 8e selecciona el bot"n de trans'or1ar. 2.= ?a solicitud se con&ierte en *edido de co1*ras tras introducir *or *arte del res*onsable in'or1aci"n adicional. +.= ?a solicitud 0enera un *edido de co1*ras. .= ?os listados se re'rescan con la nue&a in'or1aci"n.
3.2.3 C'(3 ) .istado de solicit"des trans2ormadas
#dentificador C<0/ 6ombre ?istado de solicitudes trans'or1adas .esumen 8e 1uestran un listado de las solicitudes 7ue han sido trans'or1adas en esta sesi"n o en otras. Actor 6es*onsable Precondiciones (l actor ha iniciado una bJs7uedaF in'or1ando o sin in'or1ar al0Jn *ar;1etro de selecci"n descrito en C<0+ Postcondiciones 1.= (l siste1a de&uel&e un listado de solicitudes trans'or1adas. 2.= (l listado se co1*one de los ca1*os: 8olicitud de *edidoF *osici"nF docu1ento de co1*rasF *osici"nF clase de docu1entoF *ro&eedorF or0anizaci"n de co1*rasF sociedadF centroF al1acnF 1aterialF descri*ci"nF cantidadF unidad de 1edidaF *recio neto unitarioF i1*orte neto - 1oneda. +.= ?os ca1*os *ro&eedor - 1aterial son sensibles a ser seleccionados *ara 1ostrar in'or1aci"n adicional. Flu(o normal 1.= (l res*onsable &isualiza en 'or1a de listado las solicitudes 7ue han 0enerado *edidos de co1*ra. 2.= (l res*onsable *uede &isualizar in'or1aci"n detallada sobre el *ro&eedor o el 1aterial. )Ctensiones C<05 B Visualizar 1aestro de 1ateriales C<10 B Visualizar 1aestro de *ro&eedores
3.2.4 C'(4 ) .istado de solicit"des liberadas y5o rec6a&adas
#dentificador C<02 6ombre ?istado de solicitudes liberadas -/o rechazadas .esumen 8e 1uestran un listado de las solicitudes 7ue han sido liberadas o rechazadas *or el res*onsable 7ue ha iniciado la sesi"n. Actor 6es*onsable Precondiciones (l actor ha iniciado una bJs7uedaF in'or1ando o sin in'or1ar al0Jn *ar;1etro de selecci"n descrito en C<0+ Postcondiciones 1.= (l siste1a de&uel&e un listado de solicitudes 7ue han sido liberadas - rechazadas. 2.= (l listado se co1*one de los ca1*os: 8olicitud de *edidoF *osici"nF clase de docu1entoF 0ru*o de artculosF 1aterialF descri*ci"n 1aterialF centroF al1acnF 0ru*o de co1*rasF *ro&eedor deseadoF *ro&eedor 'i%oF 'echa de creaci"nF 'echa de entre0aF cantidad solicitadaF unidad de 1edidaF i1*orteF 1oneda - se1;'oro. +.= ?os ca1*os *ro&eedor - 1aterial son sensibles a ser seleccionados *ara 1ostrar in'or1aci"n adicional. .= 8e *uede deshacer la to1a de decisi"n de las solicitudes liberadas - rechazadas. 3.= ?as solicitudes liberadas adicional1ente *ueden ser trans'or1adas en *edidos de co1*ra. Flu(o normal 1.= (l res*onsable &isualiza en 'or1a de listado las solicitudes liberadas - rechazadas. 2.= (l res*onsable *uede seleccionar el bot"n de trans'or1ar *ara las solicitudes liberadas. +.= (l res*onsable *uede seleccionar el bot"n de deshacer *ara las solicitudes rechazadas - liberadas. .= (l res*onsable *uede &isualizar in'or1aci"n detallada sobre el *ro&eedor o el 1aterial. )Ctensiones C<0# B @rans'or1ar solicitudes en *edidos de co1*ra C<12 B ,eshacer to1a de decisi"n C<05 B Visualizar 1aestro de 1ateriales C<10 B Visualizar 1aestro de *ro&eedores
3.2.7 C'(7 ) 8is"ali&ar maestro de materiales
#dentificador C<05 6ombre Visualizar 1aestro de 1ateriales .esumen 8e &isualiza en una *antalla nue&a in'or1aci"n detallada sobre el 1aterial seleccionado. Actor 6es*onsable Precondiciones 8e selecciona un 1aterial desde uno de los tres listados de la a*licaci"n Postcondiciones 8e &isualiza in'or1aci"n detallada del 1aterial en una nue&a *antalla. Flu(o normal 1.= 8e selecciona un 1aterial desde uno de los tres listados. 2.= 8e abre una nue&a &entana con la in'or1aci"n detallada. +.= ?a Jnica acci"n *er1itida en la nue&a *antalla es &ol&er hacia atr;s.
3.2.1( C'1( ) 8is"ali&ar maestro de #roveedores
#dentificador C<10 6ombre Visualizar 1aestro de *ro&eedores .esumen 8e &isualiza en una *antalla nue&a in'or1aci"n detallada sobre el *ro&eedor seleccionado. Actor 6es*onsable Precondiciones 8e selecciona un 1aterial desde uno de los tres listados de la a*licaci"n Postcondiciones 8e &isualiza in'or1aci"n detallada del *ro&eedor en una nue&a *antalla. Flu(o normal 1.= 8e selecciona un *ro&eedor desde uno de los tres listados. 2.= 8e abre una nue&a &entana con la in'or1aci"n detallada. +.= ?a Jnica acci"n *er1itida en la nue&a *antalla es &ol&er hacia atr;s.
3.2.11 C'11 ) 9ec6a&ar solicit"d
#dentificador C<11 6ombre 6echazar solicitud .esumen (l res*onsable 1arca una lnea del listado de solicitudes *endientes de liberar - selecciona el bot"n rechazar. Actor 6es*onsable Precondiciones (s una solicitud *endiente de ser liberada. Postcondiciones (l estado de una solicitud se 1odi'icaL *asa de estado *endiente a rechazado. ?os listados se re'rescan auto1;tica1ente. Flu(o normal 1.= (l res*onsable selecciona una lnea. 2.= .resiona el bot"n de rechazar. +.= ?a lnea desa*arece del listado de solicitudes *endientes de ser liberadas. .= ?a lnea a*arece en el listado de solicitudes liberadas -/o rechazadas.
3.2.12 C'12 ) Des6acer toma de decisi+n
#dentificador C<12 6ombre ,eshacer to1a de decisi"n .esumen (l res*onsable 1arca una lnea del listado de solicitudes liberadas -/o rechazadas - *resiona sobre el bot"n deshacer. ?a to1a de decisi"n se reinicializa - los listados se re'rescan auto1;tica1ente. Actor 6es*onsable Precondiciones (s una solicitud liberada o rechazada Postcondiciones (l estado de una solicitud se reinicializa. Flu(o normal 1.= (l res*onsable selecciona una lnea. 2.= .resiona el bot"n de deshacer. +.= ?a lnea desa*arece del listado de solicitudes liberadas -/o rechazadas. .= ?a lnea a*arece en el listado de solicitudes *endientes de ser liberadas
Dise.o
9 continuaci"n e)*lica1os la ar7uitectura de nuestra a*licaci"n as co1o los co1*onentes 7ue *ode1os encontrar dentroF las relaciones 7ue e)isten entre ellos - c"1o se co1unican entre s. .1 -r)uitectura ,lobal
8e esco0e el *atr"n MVC HModelo Vista ControladorI -a 7ue :,9 se basa en este *atr"n 7ue ade1;s nos *er1itir; *oder a1*liarF 1antener e incluso a*ro&echar co1*onentes *ara 'uturas a*licaciones de 1anera 1;s sencilla.
(l *atr"n MVC no *retende se*arar la ca*a de ne0ocio - la ca*a de *resentaci"n *ero s se*arar la ca*a &isual de su corres*ondiente *ro0ra1aci"n - acceso a los datosF al0o 7ue 1e%ora el desarrollo - 1anteni1iento de la Vista - el ControladorF -a 7ue a1bos cu1*len ciclos de &ida 1u- distintos entre s.
(n la si0uiente i1a0en &e1os la ar7uitectura de un co1*onente 0enrico en :,9. <n controlador de co1*onente *uede contener &arias &entanas 7ue a su &ez contienen &arias &istas - cada una de las &istas tiene su *ro*io conte)to - controlador de &ista.
Ilustracin 2. Ar>uitectura general de un componente We% D&npro
.2 -r)uitectura especifica
?a ar7uitectura es*ec'ica de la a*licaci"n se co1*one de un :eb ,-n*ro Co1*onent con un :eb ,-n*ro a**lication *ara acceder a l desde cual7uier na&e0adorF tal - c"1o se e)*lica en el *unto 8,7,5 Ar!uitectura WDA. (l es7ue1a se *uede &er en la ilustracin 8/.
8e ha creado una Jnica :indoC 7ue contiene + VieCs. ?as VieCs %A)S;.32P.34))D3. - %A)S;.32%A;).#AL sir&en *ara 1ostrar el 1aestro de 1ateriales - el 1aestro de *ro&eedores de 89..
?a VieC %A#6 es la *antalla *rinci*al de la a*licaci"n - est; co1*uesta a su &ez *or :eb ,-n*ro co1*onents.
Ilustracin 2#. Ar>uitectura espec=,ica del componente We% D&npro desarrollado
(l co1*onente 1 7ue interna1ente se lla1a S)L)*;23P;#36S contiene los *ar;1etros de selecci"n necesarios *ara 'iltrar los datos 7ue se reco0en de la base de datos.
Ilustracin 2'. 7isuali8acin en %ro)ser del componente S!/!C5@<P5I<NS
(l co1*onente 2 7ue interna1ente se lla1a P)6D#)6;)S contiene el listado de solicitudes *endientes de liberar.
Ilustracin 2.. 7isuali8acin en %ro)ser del componente P!NDI!N5!S
(l co1*onente + 7ue interna1ente se lla1a L#B).ADAS contiene el listado de solicitudes liberadas - rechazadas.
Ilustracin 21. 7isuali8acin en %ro)ser del componente /I(!;ADAS
(l co1*onente 7ue interna1ente se lla1a ;.A6SF3.%ADAS contiene el listado de solicitudes trans'or1adas en *edidos de co1*ra.
Ilustracin 24. 7isuali8acin en %ro)ser del componente 5;ANS3<;$ADAS
()iste un Co1*onent controller 0eneral a toda la a*licaci"n c"1o es *ro*io en toda a*licaci"n :,9 - accesible en cual7uier :indoC - VieC. .3 -r)uitectura f/sica
(l si0uiente dia0ra1a reco0e una *osible distribuci"n de nodos en un escenario real de la a*licaci"n. 8e *uede obser&ar 7ue e)iste un Jnico ser&idor central de a*licaciones - un ser&idor dedicado *ara al1acenar la in'or1aci"n.
Ilustracin 39. Ar>uitectura ,=sica de la aplicacin
.3 0obre la base de datos
89. contiene una 0ran base de datos creada cuando se instala el *ro0ra1a. (n este a*artado 1uestro el dia0ra1a entidad relaci"n de las tablas 7ue he usado. Cabe destacar 7ue Jnica1ente 1uestro los ca1*os 7ue son rele&antes *ara el 'unciona1iento de 1i a*licaci"n. 4.3.1 Diagrama entidad relaci+n
Ilustracin 31. !s>uema del diagrama entidad relacin
4.3.2 Consideraciones sobre cam#os
?a tabla )BA6 contiene ca1*os HF.'>1F BA6P.F )B)L6 - )B)LPI 0racias a los cuales *uedo saber si una solicitud de co1*ras est; *endiente de to1a de decisi"nF liberadaF rechaza o trans'or1ada en *edido de co1*ras.
8e0Jn el es7ue1a 7ue *ro*orciono 1;s adelanteF *ode1os deter1inar de 1anera sencilla los estados de una solicitud de *edido de co1*ras.
(l ca1*o F.'>1 contiene los di'erentes indicadores de liberaci"n 7ue he1os *ara1etrizado en el *unto 8,8,7 *ustoma$inB SAP.
(l ca1*o BA6P. contiene el si0uiente do1inio - lo 0estiona interna1ente 89..
Ilustracin 32. Dominio de datos del campo (ANP; . Dia,ra$a de clases
?as clases de'inidas en la a*licaci"n desarrolladaF corres*onden a los di'erentes listados 7ue *ode1os acceder 1ediante nuestra a*licaci"n Ceb as co1o los di'erentes 1todos 7ue *ode1os lla1ar.
*lase loBin Clase encar0ada de &alidarnos contra 89. 1ediante un usuario - contraseAa. (n esta *antalla se *uede seleccionar 1andante e idio1a. (sta clase la *ro*orciona auto1;tica1ente 89. al crear una :eb d-n*ro 9>9..
*lase centro de traba(o (n este *roceso *ode1os buscar los di'erentes ti*os de solicitudes se0Jn los *ar;1etros de bJs7ueda incor*orados. ?os *ar;1etros de bJs7ueda son: = 8olicitud de *edidoF clase de docu1entoF centroF al1acnF 1aterialF 0ru*o de artculosF *ro&eedor deseadoF *ro&eedor 'i%oF 'echa de creaci"n - 'echa de entre0a.
*lase listado de solicitudes pendientes ?istado d"nde se encuentran las solicitudes 7ue no han sido *rocesadas. Contiene los 1todos necesarios realizar la to1a de decisi"n.
*lase listado de solicitudes liberadas yDo recha$adas ?istado d"nde se encuentran las solicitudes 7ue -a han sido *rocesadas.
*lase listado solicitudes transformadas ?istado d"nde se encuentran las solicitudes trans'or1adas en *edidos de co1*ra.
*lase %aestro proveedores Clase *ara la &isualizaci"n de datos re'erentes a los *ro&eedores 7ue he1os seleccionado.
*lase %aestro materiales Clase *ara la &isualizaci"n de datos re'erentes a los 1ateriales 7ue he1os seleccionado. 4.4.1 $s!"ema diagrama de clases
Ilustracin 33. !s>uema del diagrama de clases ." Dia,ra$a de secuencia
(n este a*artado de'inire1os al0unas secuencias de na&e0aci"n sobre la a*licaci"n :eb creada. (n concreto &a1os a 1ostrar las corres*ondientes a los casos de uso:
C<03 B ?iberar solicitud C<05 B Visualizar 1aestro de 1ateriales C<0# B @rans'or1ar solicitudes en *edidos de co1*ra
(l resto de casos de uso o son 1u- *arecidosF co1o *or e%e1*lo C<11 = 6echazar solicitudF o son intranscendentesF co1o C<01 = !niciar sesi"n.
4./.1 $s!"ema diagrama de sec"encia: C'(/ ; .iberar solicit"d
Ilustracin 3. !s>uema del diagrama de secuencia C"9#
4./.2 $s!"ema diagrama de sec"encia: C'(7 ; 8is"ali&ar maestro de materiales
Ilustracin 3#. !s>uema del diagrama de secuencia C"94
4./.3 $s!"ema diagrama de sec"encia: C'(0 ; 1rans2ormar solicit"des en #edidos de com#ra
Ilustracin 3'. !s>uema del diagrama de secuencia C"9' " I$ple$entacin
.ara el correcto 'unciona1iento de la a*licaci"n los clientes s"lo necesitan e%ecutar la direcci"n 'acilitada *or la :eb ,-n*ro a**lication en un broCser con&encional. 4a- 7ue resaltar 7ue la 1a-or co1*atibilidad de :,9 se consi0ue con !nternet ()*lorer.
(s i1*rescindible traba%ar contra un ser&idor 89. en su &ersi"n 89. (CC #.0 - si0uientes *uesto 7ue la *ro0ra1aci"n se realiza en el entorno con&encional de 89. a tra&s del :eb ,-n*ro ()*lorer. ?os ob%etos 0enerados Jnica1ente son accesiblesF - *or lo tanto 1odi'icablesF desde la instalaci"n en la 7ue se ha realizado la a*licaci"n.
89. 0uarda la a*licaci"n 0enerada en lo 7ue se deno1ina una orden de trans*orte 7ue sir&e *ara enca*sular todo el desarrollo en un Jnico *a7ueteF 7ue al ser liberado *uede trans*ortarse al ser&idor de calidad *ara realizar las *ruebas - 'inal1ente al ser&idor de *roducti&o d"nde la a*licaci"n co1ienza a ser usada *or el usuario 'inal.
?a i1*le1entaci"n se ha realizado en una &ersi"n 89. (CC #.0 enhance1ent *acGa0e 3 instalado sobre un :indoCs D@ - con una base de datos M88N? &ersi"n 10.
(s ob%eti&o de este *ro-ecto es usar la tecnolo0a :,9 c"1o se ha e)*licado a lo lar0o de toda la 1e1oria *ero se ha bara%ado usar la tecnolo0a :, Ja&a. 8e o*t" *or la *ri1era *or dos razonesL 89. Jlti1a1ente est; a*ostando 'uerte *or :,9 en detri1ento de :, Ja&a - *or 7ue los *roductos obtenidos en :,9 al usar *arte del c"di0o nati&o de 89. tienen una res*uesta 1ucho 1;s e'icaz - el ser&idor debe so*ortar 1enor car0a de *roceso.
6eto1ando la e)*licaci"n 7ue se ha usado en el *unto @,8 Ar!uitectura especEfica se &a a e)*licar los detalles 1;s i1*ortantes de los co1*onentes :,9 usados.
Ilustracin 3.. Ar>uitectura espec=,ica del componente We% D&npro desarrollado
C"1o -a se ha e)*licadoF el co1*onente *rinci*alF interna1ente lla1ado 1WDA2S3LP)DF contiene una Jnica :indoC con + VieCs.
".1 1ie23 4-I5
?a &ieC M9!D contiene ele1entos 1u- i1*ortantes dentro de :,9L son los deno1inados VieCContainer<!(le1ent.
Ilustracin 31. 7ista interna de los elementos usados en la vie) $AIN
(stos ele1entos sir&en *ara incluir otros co1*onentes :,9 -a sean est;ndares Hc"1o es el caso de esta a*licaci"nI o co1*onentes desarrollados *or nosotros 1is1os.
8e ha incluido el 1todo 362BAS*A.FG en el co1*onent controller 7ue se e%ecuta cuando se *ulsa sobre el bot"n buscar.
?o *ri1ero 7ue hace es leer los *ar;1etros de selecci"n 7ue se encuentran en la secci"n S)L)**#H6 - 7ue *ro&ienen de un co1*onente est;ndar lla1ado WD.2S)L)*;23P;#36S. ,e la 'or1a si0uiente:
. ?ue0o se e%ecutan las selecciones o*ortunas sobre la base de datos en c"di0o 9>9. - se trans'ieren los datos a los otros + co1*onentes est;ndares de la 'or1a si0uiente:
.or Jlti1o se in&oca a los 1todos confiB2alv2libFGF confiB2alv2traFG - confiB2alv2penFG *ara 1odi'icar las *ro*iedades de los listados 7ue *resenta nuestra a*licaci"nF co1o *or e%e1*lo el catalo0o de ca1*osF los botones es*ec'icos o re0istrar los e&entos 7ue se usar;n en las di'erentes situaciones. /.1.1 Com#onente S$.$C1<=P1*=>S
(l co1*onente est;ndar WD.2S)L)*;23P;#36S nos 'acilita la tarea de crear una secuencia de *ar;1etros de entrada susce*tibles a ser usados en los di'erentes accesos a la base de datos.
,entro del co1*onent controller - en concreto en el 1todo WDD3#6#;FG 7ue se e%ecuta en *ri1era instancia al entrar en la a*licaci"n es necesario *asarle los *ar;1etros del diccionario 7ue &a1os a usarF de la 'or1a si0uiente:
/.1.2 Com#onentes: P$>D*$>1$S? .*-$9ADAS y 19A>S,=9@ADAS
?os + co1*onentes usan el co1*onente est;ndar SAL42WD2;ABL)F 7ue nos 'acilita 1ostrar listados *or *antalla en :,9.
8on alta1ente con'i0urablesF *udiendo es*eci'icar concreta1ente el catalo0o de ca1*os 7ue se &a a usarF trans'or1ar &alores de celda en iconos Hc"1o es el caso de los se1;'oros introducidos en nuestro desarrolloIF hacer los ca1*os editables o si1*le1ente &isualesF aAadir una botonera es*ec'ica hacindola din;1ica 0racias a los di'erentes e&entos 7ue contieneF co1o *or e%e1*loF el e&ento 362L)AD2S)L)*;F 7ue se e%ecuta cada &ez 7ue te *osicionas sobre una lnea. ".2 1ie2s3 4-E06(O7!(O1EEDO( y 4-E06(O74-6E(I-8
,entro de las 2 VieCs inserta1os un ti*o de ele1ento lla1ado #Frame 7ue nos *osibilita car0ar transacciones est;ndares *as;ndole una <6? en uno de sus *ar;1etros.
Ilustracin 34. 7ista interna de los elementos usados en la vie) $A!S5;<@P;<7!!D<;
Ilustracin 9. 7ista interna de los elementos usados en la vie) $A!S5;<@$A5!;IA/
Gracias a la a*licaci"n &ebBuiF 89. nos traduce el as*ecto &isual en 4@M? - *uede ser usado en un broCser Hsin *oder 1odi'icar en nin0Jn caso el co1*orta1iento de la transacci"n a la 7ue lla1a1osI.
.ara &isualizar el 1aestro de 1ateriales lla1a1os a la transacci"n %%-5 - *ara &isualizar el 1aestro de *ro&eedores lla1a1os a la transacci"n I>-5.
(n los trozos de c"di0o si0uientes &e1os la 'or1a de construir las <6?s:
<na 1e%ora en la i1*le1entaci"n de este *unto sera crear una Jnica &ieC *ara car0ar indistinta1ente los 2 1aestros - se0Jn los datos de entrada H%A;6. in'or1ado o L#F6. in'or1adoI se construira una <6? u otra.
". 9eb Dynpro application
9Aadiendo este ele1ento en la :,9 se obtiene un *unto de entrada a la a*licaci"n. (n concreto se nos 'acilita una <6? *ara ser usada en cual7uier broCser HhttpDDS4SAPD)4-7,imcnt,com0---DsapDbcD&ebdynproDsapD$&da2solpedI.
Ilustracin 1. 7ista interna de la We% D&npro application
& +onclusiones
(n el *resente docu1ento se ha dado res*uesta a la necesidad 7ue concibi" este *ro-ectoL dotar de 'le)ibilidad la to1a de decisiones en una a*licaci"n sencilla - ;0il.
8e ha usado una tecnolo0a relati&a1ente nue&a dentro de la *ro0ra1aci"n de 89. conocida c"1o :eb ,-n*ro 9>9. - he tenido la o*ortunidad de *oder 'a1iliarizar1e con ella 0racias a tener acceso a una instalaci"n real.
9de1;s de a*render una nue&a tecnolo0aF he tenido 7ue adentrar1e en unos te1as total1ente nue&os *ara 1 dentro de 89.L la *ara1etrizaci"n del 1"dulo de co1*rasF as co1o el 'unciona1iento real de una e1*resa.
4e re'rescado los conoci1ientos ad7uiridos hace aAos en la Facultad de !n'or1;tica de >arcelona - 1;s reciente1ente en la <ni&ersitat $berta de Catalun-aL no sie1*re la &ida laboralF *ersonal - acad1ica 'raternizan *ara *oder tener una e)*eriencia lineal - l"0ica.
(sto- satis'echo con el traba%o realizado - con el *roducto 'inal 7ue *resento. Gracias a los conoci1ientos ad7uiridos en este *ro-ecto ten0o una 0a1a a1*lia de herra1ientas con las 7ue en'rentar1e a los retos 7ue se *resentan da a da en el 1undo laboral.
.or Jlti1o do- 0racias a Jordi Ceballos *or los co1entarios crticos en las entre0as anteriores a la 1e1oria 'inal *ara lle&ar a buen *uerto el *ro-ecto.
' :uentes de infor$acin
SAP *ertification Success 'uide J SAP *ertified Development Associate J ABAP &ith SAP 6etWeaver 9,- (ditorial Galileo .ress .uneet 9sthana ,a&id 4asla1
'ettinB Started &ith Web Dynpro ABAP (ditorial Galileo .ress ,o1iniG $'enlonch 6oland 8chCai0er
SAP *ommunity 6et&or? @he social Det:orG 'or 89. *ro'essionals htt*://CCC.sdn.sa*.co1/