Professional Documents
Culture Documents
Aplicacin del caso prctico de tienda al
por menor de iSeries
Versin 5.1 para Windows
ii
Contenido
Captulo 1. Introduccin a la aplicacin
del caso prctico de tienda al por menor
de iSeries . . . . . . . . . . . . . . 1
Casos prcticos basados en proyectos .
. 2
. 9
. 9
. 10
. 11
.
.
.
.
12
12
13
14
.
.
.
.
.
14
15
16
17
17
. 17
. 18
. 19
. 19
. 20
. 21
. 22
. 23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
26
26
26
27
28
29
31
32
32
33
34
35
36
36
36
39
40
41
. . .
. . .
. . .
archivos
. . 43
. . 43
. . 44
JSP 44
. . 53
. . 55
JSP
. . 55
.
. 57
Captulo 8. Avisos . . . . . . . . . . 59
LICENCIA DE COPYRIGHT: . . . .
Informacin acerca de las interfaces de
programacin . . . . . . . . . .
Marcas registradas y marcas de servicio .
. 60
.
.
.
.
.
.
. 61
. 61
iii
iv
Visualizar los
precios de los
productos.
Formular un
pedido desde la
tienda
Formular pedido al
suministrador al por
mayor con el ID de la
mercanca y la
cantidad.
mismo los diversos proyectos. Los mdulos paso a paso estn destinados a los
desarrolladores que sean relativamente nuevos en el desarrollo de aplicaciones, as
como en Development Studio Client. Los mdulos avanzados estn destinados a
los desarrolladores que tengan experiencia en el desarrollo de aplicaciones y estn
ms familiarizados con Development Studio Client.
Nota: Aunque existen cinco proyectos, solo hay cuatro mdulos porque los
proyectos SV001586 y SV000514 se obtienen combinando los mdulos de
servicios Web.
Este caso prctico viene en formato de cinco proyectos:
Proyecto SV000501: crear un proyecto Web para ver los pedidos pendientes, el
inventario y los detalles del producto Este proyecto se crea con las herramientas
de desarrollo Web para iSeries y la herramienta IBM WebFacing y est destinado a
los programadores en RPG que posean un conocimiento limitado del desarrollo de
aplicaciones Web y deseen utilizar la herramienta IBM WebFacing para llevar sus
aplicaciones RPG a la Web.
Proyecto SV001585: Crear cdigo HTML, servlets y archivos JSP que formulen
los pedidos de los clientes en un servidor iSeries Este proyecto utiliza las clases
SQL y JDBC de IBM Toolbox para Java, el bean RecordIOManager de herramientas
de desarrollo Java para iSeries y el asistente de llamada a programa de iSeries.
Estos elementos muestran las diversas formas de acceder y manipular los datos y
programas que existen en el servidor iSeries. Este proyecto est destinado a los
programadores en Java y a los desarrolladores de aplicaciones Web que deseen
desarrollar pginas Web para acceder a los datos y al cdigo de iSeries. Adems,
hay que tener un conocimiento suficiente de la gestin de servidores iSeries y la
programacin en RPG.
Proyecto SV000514: Crear un servicio Web de iSeries para proporcionar los
precios de los productos El asistente de servicios Web utiliza un bean Java
generado por el asistente de llamada a programa de iSeries para llamar a uno o
ms procedimientos de programa en el servidor iSeries y transmitir la informacin
de nuevo al navegador. Este proyecto est diseado para los programadores en
RPG que deseen utilizar servicios Web para crear aplicaciones modulares y
autocontenidas que se puedan describir, publicar, localizar e invocar en la World
Wide Web.
Proyecto SV001586: Crear un servicio Web para formular pedidos al
suministrador al por mayor mediante un servidor iSeries El servicio Web acepta
un ID de mercanca, adems de la cantidad requerida, y luego formula el pedido al
suministrador al por mayor. Este proyecto es un componente de SV000514 y est
destinado a los programadores en RPG que deseen crear servicios Web.
Proyecto SV000618: crear un proyecto Web que funcione como interfaz del
formulario de pedido, del formulario de inventario y del pedido de compra
generado por la herramienta IBM WebFacing Para este proyecto se necesitan las
herramientas de desarrollo Web para iSeries; en l se crean archivos HTML y JSP
para utilizar y conectar los servicios Web desarrollados en SV000514 y SV001586. El
proyecto est destinado a los desarrolladores que deseen trabajar con los servicios
Web y posean conocimientos de programacin en RPG y Java.
Captulo 1. Introduccin a la aplicacin del caso prctico de tienda al por menor de iSeries
IBM WebSphere Development Studio Client para iSeries est construido sobre
WebSphere Studio Workbench, que es la implementacin IBM de la plataforma
Eclipse. En el entorno de trabajo universal ampliable se integran todas las
herramientas necesarias para construir y mantener las aplicaciones. Los
desarrolladores pueden utilizar Development Studio Client para incorporar nuevos
objetos en el entorno de desarrollo mediante el uso de conectores y aadir sin
fisuras archivos Java, grficos, vdeo, etctera.
Antes de empezar
Para probar las aplicaciones desde el entorno de trabajo, debe asegurarse de que:
v Tiene un servidor iSeries V5R1 o posterior
v Tiene aplicados los PTF ms recientes de WebFacing. Consulte nuestra pgina de
soporte para obtener los PTF:
http://www.ibm.com/software/awdtools/wdt400/support/
v Tiene acceso NET USE al Servidor iSeries
v SV001586.zip
Los archivos .savf contienen datos y programas RPG del iSeries, y los archivos .zip
contienen las aplicaciones Web que interaccionan con los programas del iSeries
para manipular los datos del iSeries. Primero tendr que restaurar los archivos
.savf en el servidor iSeries y luego podr importar los archivos .zip en
Development Studio Client y ejecutar la aplicacin en el entorno de trabajo.
2. En
a.
b.
c.
d.
e.
Estas lneas indican que desea crear los archivos de salvar en la biblioteca
SCENARIO.
la estacin de trabajo, abra una ventana de indicador de mandatos.
Debe cambiar al directorio en el que residen los archivos .savf. Por omisin,
debe especificar cd c:\wdsc\wdscsampl. Si ha instalado el producto en otra
unidad o elige no utilizar wdsc como directorio inicial de Development
Studio Client, cambie al directorio wdscsampl de la ubicacin correcta en la
que ha instalado el producto.
En la lnea de mandatos, escriba: ftp nombresistpral, siendo nombresistpral
el nombre de su sistema principal iSeries; por ejemplo, PROD400.
Escriba su ID de usuario y su contrasea del servidor iSeries.
En la lnea de mandatos, entre cd /qsys.lib/scenario.lib para pasar a la
biblioteca SCENARIO.
Entre las siguientes lneas:
bin
put WHOLESALE.savf WHOLESALE.savf
put RETAILSTOR.savf RETAILSTOR.savf
quit
10
Estas lneas (antes de salir) especifican que desea tomar los archivos de
salvar del sistema local y colocarlos en el servidor iSeries.
3. De nuevo en la consola de iSeries, restaure la biblioteca Wholesale:
a. Entre RSTLIB y pulse F4 para definir cmo desea restaurar la biblioteca.
b. En el campo Biblioteca salvada, entre WHOLESALE y pulse la tecla de
tabulacin.
c. En el campo Dispositivo, entre *savf y pulse la tecla de tabulacin.
d. En el siguiente campo, pulse Intro para visualizar valores adicionales y
pulse la tecla de tabulacin para ir al campo Archivo de salvar.
e. Especifique WHOLESALE en el campo Archivo de salvar y pulse el tabulador.
f. En el campo Biblioteca, suprima el valor existente y escriba scenario.
g. Pulse Intro para restaurar la biblioteca WHOLESALE en el servidor iSeries.
4. Repita este procedimiento para el archivo Retailstor.savf:
a. Especifique RSTLIB y pulse F4 para definir cmo desea restaurar la
biblioteca.
b. En el campo Biblioteca salvada, entre RETAILSTOR y pulse la tecla de
tabulacin.
c. En el campo Dispositivo, entre *savf y pulse la tecla de tabulacin.
d. En el siguiente campo, pulse Intro para visualizar valores adicionales y
pulse la tecla de tabulacin para ir al campo Archivo de salvar.
e. Especifique RETAILSTOR en el campo Archivo de salvar y pulse el tabulador.
f. En el campo Biblioteca, suprima el valor existente y escriba scenario.
g. Pulse Intro para guardar su accin y restaurar la biblioteca RETAILSTOR en
el servidor iSeries.
11
SV000514.zip
SV000618.zip
SV001585.zip
SV001586.zip
SV000501.zip
12
13
14
Ahora que ya ha importado todos los archivos, el rea de trabajo debe parecerse a
la de esta figura:
Configuracin de servidor
Ahora que ya ha importado todos los archivos fuente, tendr que configurar el
servidor del entorno de prueba WebSphere para que reconozca las aplicaciones
SVWholesaleEAR y SVStoreEAR.
Para configurar el servidor del entorno de prueba WebSphere:
1. Pase a la perspectiva Servidores. En la barra de mens del entorno de trabajo,
pulse Ventana > Abrir perspectiva > Otras > Servidor y, despus, Aceptar.
2. En la vista Configuracin de servidor, pulse Servidores con el botn derecho
del ratn y seleccione Nuevo > Servidor y configuracin de servidor.
3. En el campo Nombre de servidor, escriba Servidor Scenario.
4. En el campo Carpeta, escriba Carpeta Scenario.
5. En el recuadro Tipo de servidor, expanda WebSphere Versin 5.0 y pulse
Entorno de prueba, si es que todava no est seleccionado por omisin.
6. Pulse Finalizar y, si recibe mensajes, pulse S.
7. Para aadir los archivos EAR a la configuracin de servidor:
a. Expanda Servidores.
b. Pulse Scenario server con el botn derecho del ratn y seleccione Aadir >
SVWholeSaleEAR.
Captulo 3. Ejecutar el caso prctico
15
c. Expanda Servidores.
d. Pulse de nuevo Scenario server con el botn derecho del ratn y seleccione
Aadir y eliminar proyectos.
e. Pulse el botn Aadir todo para trasladar SVStoreEAR y SVWholeSaleEAR
al lado derecho de la ventana.
f. Pulse Finalizar.
8. En la vista Configuracin de servidor, expanda Servidor Scenario, y luego
expanda SVStoreEAR y SVWholeSaleEAR para ver todas las aplicaciones
listadas:
16
17
18
19
v Sabe cules son los nmeros de puerto de las instancias de HTTP y WebSphere
Application Server en el sistema principal iSeries.
v Tiene instalada la versin 4.0 5.0 de la consola administrativa de WebSphere en
la estacin de trabajo.
Nota: En el caso de la versin 5.0 de WAS, la consola est basada en navegador,
por lo que no necesita tener una consola en la estacin de trabajo. Consulte
la documentacin en lnea para obtener ms informacin sobre las diversas
versiones de WAS.
Las aplicaciones de iSeries habilitadas para Web utilizan WebSphere Application
Server para ejecutar los servlets Java y los archivos JavaServer PagesTM (JSP) que
sirven para comunicar entre el navegador Web del usuario y los programas o datos
del iSeries. Para servir sus pginas HTML y sus archivos JSP desde el mismo
sistema iSeries, tambin necesitar un servidor HTTP en ese sistema. Le
recomendamos que utilice IBM HTTP Server (powered by Apache). Para obtener
documentacin sobre cmo utilizar este servidor, visite el Centro de
documentacin de IBM HTTP Server para iSeries en
http://publib.boulder.ibm.com/pubs/html/iseries_http/v5r1/index.htm.
WebSphere Application Server ejecuta los archivos JavaServer Pages, los beans Java
y los servlets Java que se generan en los diversos procesos. Los recursos de
documentacin primaria de IBM WebSphere Application Server para iSeries y de la
consola administrativa de IBM WebSphere para iSeries estn disponibles en los
siguientes sitios Web:
v IBM WebSphere Application Server Versin 4.0 Advanced Edition para iSeries en
http://publib.boulder.ibm.com/was400/40/AE/english/docs/
v IBM WebSphere Application Server Versin 4.0 Advanced Single Server Edition
para iSeries en http://publib.boulder.ibm.com/was400/40/AEs/english/docs/
Le recomendamos encarecidamente que se familiarice con la documentacin de
IBM WebSphere Application Server, concretamente, con los apartados que tratan
sobre Mdulos J2EE, Instalacin de WebSphere Application Server y Configurar mltiples
instancias del servidor administrativo de WebSphere. Como mnimo, deber seguir los
pasos que figuran en el enlace Instalacin.
Utilice el mapa del sitio para localizar informacin sobre cmo instalar, configurar
y obtener los PTF necesarios para la consola administrativa de WebSphere.
20
21
22
23
24
Antes de empezar
Solo podr llevar a cabo los ejercicios si se cumplen los siguientes prerrequisitos.
En el tema Captulo 3, Ejecutar el caso prctico, en la pgina 9 hallar ms
detalles sobre los prerrequisitos.
v Tiene acceso TCP/IP a un servidor iSeries.
v Tiene aplicados los PTF ms recientes del servidor iSeries. Consulte nuestra
pgina de soporte para obtener informacin acerca de los PTF y paquetes de
servicio: http://www.ibm.com/software/awdtools/wdt400/support/
v Ha iniciado los servidores iSeries con el mandato STRTCPSVR *ALL.
v Ha iniciado el servidor WebFacing con el mandato STRTCPSVR *WEBFACING.
25
v Ha llevado a cabo todas las tareas del Captulo 3, Ejecutar el caso prctico, en
la pgina 9 (salvo las tareas de WebSphere Application Server opcionales, que no
son necesarias para probar la aplicacin en el entorno de trabajo).
26
27
28
Finalizar. Puede que sea necesario pulsar Finalizar una segunda vez si observa
errores. Si no puede finalizar el asistente, pulse simplemente Cancelar; la
mayora de los archivos necesarios se crearn de todas formas.
Probar el ejemplo
Cuando cre el servicio Web, una de las instrucciones era solicitar la generacin de
un ejemplo. Dado que la opcin estaba seleccionada, el asistente de servicios Web
cre un proyecto nuevo con pginas de prueba que le permitirn probar el servicio
Web. En la vista Navegador, observe que el nombre de este proyecto nuevo es
Project514Client. Fjese asimismo en que la herramienta ha abierto
automticamente el archivo TestClient.jsp en la parte derecha del entorno de
trabajo. Este archivo est situado bajo Project514Client > Web Content > sample >
InventoryServices.
Para probar el ejemplo:
1. En la pgina cargada, desplcese hacia abajo en el panel de mtodos hasta que
llegue al final del todo. Pulse el mtodo Inventory (java.math.BigDecimal).
2. En el campo itemno, escriba 4 y pulse Invocar.
3. Verifique que como salida se obtiene:
result:
cost: 12.99
Una vez que haya confirmado el resultado, habr terminado con el mdulo. Ha
creado un servicio Web que devuelve precios de productos en la interfaz de la
aplicacin.
Captulo 4. Mdulo 1 paso a paso: Crear un servicio Web que devuelva los precios de los productos (SV000514)
29
30
31
Antes de empezar
Solo podr llevar a cabo los ejercicios si se cumplen los siguientes prerrequisitos.
En el tema Captulo 3, Ejecutar el caso prctico, en la pgina 9 hallar ms
detalles sobre los prerrequisitos.
v Tiene acceso TCP/IP a un servidor iSeries.
v Ha iniciado los servidores iSeries con el mandato STRTCPSVR *ALL.
v Ha iniciado el servidor WebFacing con el mandato STRTCPSVR *WEBFACING.
v Ha llevado a cabo todas las tareas del Captulo 3, Ejecutar el caso prctico, en
la pgina 9 (salvo las tareas de WebSphere Application Server opcionales, que no
son necesarias para probar la aplicacin en el entorno de trabajo).
32
33
4. Desplcese hacia abajo hasta ms o menos la lnea 16, donde ver la lnea:
A*%%WB 12 FLD 1 next (/SV000501/DetailPage.do?PRODNO=&{PRODNO})
34
Captulo 5. Mdulo 2 paso a paso: Crear una interfaz para ver el inventario y formular pedidos de artculos (SV000501)
35
36
Antes de crear la interaccin Web, tendr que copiar los estilos correctos y la hoja
de estilo para que Project501 se visualice con el debido formato de archivo JSP. (No
tendra que realizar esta tarea si hubiese llevado a cabo el ejercicio del apartado
(Opcional) Personalizar manualmente la hoja de estilo en cascada (CSS) en la
pgina 36). Primero copiar la carpeta de estilos y, despus, el archivo
DetailPageResults.jsp:
1. En la vista Navegador, expanda SV000501 > Web Content.
2. Pulse Styles con el botn derecho del ratn y seleccione Copiar.
3. Desplcese hacia arriba en la vista Navegador hasta que vuelva a ver
Project501.
4. Expanda el proyecto, pulse Web Content con el botn derecho del ratn y
seleccione Pegar en el men emergente. Pulse S para sobrescribir los estilos
existentes.
5. Desplcese hacia abajo hasta SV000501 > Web Content.
6. Pulse DetailPageResults.jsp con el botn derecho del ratn y seleccione
Copiar.
7. Desplcese hacia arriba hasta que vuelva a ver su proyecto Project501.
8. Expanda el proyecto, pulse Web Content con el botn derecho del ratn y
seleccione Pegar en el men emergente.
Observe los nuevos elementos que se han aadido bajo la carpeta Web Content de
Project501.
Ahora ya puede crear la interaccin Web:
1. Pulse Archivo > Nuevo > Otros.
2. En el dilogo Nuevo, pulse Web en la parte izquierda, y luego pulse
Interaccin Web en la parte de la derecha. Pulse Siguiente.
3. En el campo Nombre de interaccin Web, escriba DetailPage y pulse
Siguiente.
4. Marque el botn de seleccin Generar JSP de entrada.
5. Marque el botn de seleccin Utilizar pginas de salida (si es que todava no
est marcado) y pulse Aadir.
6. En el dilogo JSP de salida, expanda Web Content, seleccione
DetailPageResults.jsp, que es su pgina de salida preformateada, y pulse
Aceptar.
7. Pulse Siguiente.
Ahora ya puede aadir programas y parmetros a la interaccin. Tendr que
aadir 11 parmetros al mismo programa. En vez de ir aadiendo manualmente
cada parmetro con sus valores individuales, puede aadirlos con un
procedimiento algo ms rpido:
1. Seleccione Utilizar un programa ILE de iSeries, si es que todava no est
seleccionado.
2. Pulse Aadir programa.
3. En el campo Alias de programa, escriba DetailPage.
4. Para el campo Objeto de programa, pulse Examinar.
a. Expanda servidoriSeries > *LIBL > RETAILSTOR.
b. Pulse DETAILPAGE.*pgm.rpgle (que es el primer archivo bajo
RETAILSTOR) y pulse Aceptar.
Captulo 5. Mdulo 2 paso a paso: Crear una interfaz para ver el inventario y formular pedidos de artculos (SV000501)
37
38
Captulo 5. Mdulo 2 paso a paso: Crear una interfaz para ver el inventario y formular pedidos de artculos (SV000501)
39
Si desea crear una aplicacin similar a SV000501 en el futuro, tambin tiene que
cambiar un valor Web en su fuente DDS para habilitar la imagen que ha aadido,
y habilitar asimismo el enlace de cerrar ventana para la funcin JavaScript.
El cdigo RPG incluido en esta aplicacin se ha modificado para que muestre el
cambio, pero usted tendr que realizar el cambio manualmente en las futuras
aplicaciones. Adems, tras cambiar los valores Web, deber reconvertir el fuente
DDS.
Puede comprobar el cdigo para duplicar el resultado.
Para ver el fuente DDS:
1. Pase a la perspectiva WebFacing.
2. En la vista Proyectos WebFacing, expanda Project501 > DDS.
3. Pulse <servidoriSeries > RETAILSTOR/QDDSSRC(QUERY) con el botn
derecho del ratn y seleccione Abrir con > CODE Designer.
4. Una vez abierto el Diseador CODE, expanda SCREEN1 > ITEMSUB.
5. Pulse IMAGESRC para seleccionarlo.
6. Pulse la pestaa Fuente.
7. Pulse la pestaa Valores Web, en la parte inferior derecha de la ventana.
Nota: Compruebe las propiedades de los valores Web; por ejemplo, la
anchura en pxels y el nombre del archivo. En el futuro, tendr que
hacer los mismos cambios en el fuente DDS y luego reconvertir el
fuente.
8. Fjese en las siguientes lneas del fuente:
A
PRODNO R 0 5 6
A
PRODNAME R 0 5 16
A
IMAGESRC
19A 0 5 33
A*%%WB 13 FLD 100|100|&{IMAGESRC}
A*%%WB 12 FLD 1 javascript:next
(/Project501/DetailPageServlet?PRODNO=&{PRODNO})
40
Probar la interfaz
Ahora ya ha llevado a cabo los pasos necesarios para crear una interfaz que
permite ver los pedidos y ver el inventario. Para probar la interfaz:
1. Pase a la perspectiva Web.
2. Expanda Project501 > Web Content.
3. Pulse index.html con el botn derecho del ratn y seleccione Ejecutar en
servidor.
4. Se abre el dilogo Seleccin de servidor. Verifique que el Servidor Scenario
est seleccionado por omisin y pulse Finalizar.
5. Pulse Ver pedidos Lanzar en la ventana principal del navegador, para
invocar la aplicacin del administrador. Tras iniciar sesin con su ID de usuario
y su contrasea de iSeries (en el servidor iSeries que utiliz mientras
Captulo 5. Mdulo 2 paso a paso: Crear una interfaz para ver el inventario y formular pedidos de artculos (SV000501)
41
Intente escribir una X junto a uno de los nmeros de producto para ver los
detalles de ese producto.
6. Pulse la flecha atrs para acceder a la pgina index.html, y pulse Ver
inventario Lanzar en la ventana principal del navegador para invocar la
aplicacin del cliente; se le dirigir a la siguiente pgina (despus de que haya
iniciado sesin en el servidor iSeries con su ID de usuario y su contrasea):
Intente pulsar una imagen para visualizar los detalles de un artculo concreto.
Ya ha llegado al final del mdulo. Ha creado una interfaz de usuario para ver el
inventario y formular pedidos de artculos.
42
43
2. Escribir un servlet que puebla un bean Java (mediante JDBC y SQL) con los
artculos disponibles que el cliente puede comprar.
3. Escribir un archivo JSP que permita a los clientes ver los artculos a la venta,
entrar la cantidad y la talla del artculo que desean, y seleccionar el artculo
pulsando un botn Aadir a la cesta.
4. Mediante el bean RecordIOManager, escribir un servlet que se invoca al pulsar
el botn Aadir a la cesta y que actualiza la base de datos INVENTORY de
iSeries, restando la cantidad y la talla requerida del artculo, y aadiendo esta
seleccin a un bean Java que se llama cesta. Luego, el servlet redirige la
respuesta al archivo ViewBasket.jsp, si la operacin es satisfactoria. Si no lo es,
el servlet visualiza una pgina de error.
5. Escribir un formulario HTML para que el cliente entre informacin personal.
6. Escribir un archivo JSP que sea una pgina de confirmacin de compra y que
visualice el contenido de la cesta, los impuestos y los costes de envo y de
manejo. En la pgina tambin debe haber un botn de confirmacin para el
cliente.
7. Escribir un servlet al que se llama cuando el cliente pulsa el botn de
confirmacin, y que utiliza un bean Java creado con el asistente de llamada a
programa de iSeries. Uno de los mtodos del bean Java llama a un programa
RPG para crear en la base de datos ORDERS del servidor iSeries un pedido
nuevo que se corresponde con el contenido de la cesta del cliente. Luego el
servlet devuelve un nmero de pedido, coloca el bean Java en la sesin de la
aplicacin Web y carga un archivo JSP de confirmacin de pedido que contiene
el nmero del pedido.
Antes de empezar
Solo podr llevar a cabo los ejercicios si se cumplen los siguientes prerrequisitos.
En el tema Captulo 3, Ejecutar el caso prctico, en la pgina 9 hallar ms
detalles sobre los prerrequisitos.
v Tiene acceso TCP/IP a un servidor iSeries.
v Ha iniciado los servidores iSeries con el mandato STRTCPSVR *ALL.
v Ha iniciado el servidor WebFacing con el mandato STRTCPSVR *WEBFACING.
v Ha restaurado las bibliotecas WHOLESALE y RETAILSTOR en el servidor
iSeries.
v Las bibliotecas WHOLESALE, RETAILSTOR y QGPL figuran en la lista de
bibliotecas.
v Ha llevado a cabo todas las tareas del Captulo 3, Ejecutar el caso prctico, en
la pgina 9 (salvo las tareas de WebSphere Application Server opcionales, que no
son necesarias para probar la aplicacin en el entorno de trabajo).
44
5. Escriba un archivo JSP ViewItems que recupere los artculos de ropa a partir
del bean ResultSet obtenido en el paso anterior, para visualizar dichos
artculos en formato de tabla. El archivo JSP tambin debe incluir, para cada
artculo, un formulario que permita seleccionar la talla y la cantidad y luego
Captulo 6. Mdulo 1 avanzado: Crear cdigo HTML, servlets y archivos JSP que formulan pedidos de cliente en un servidor iSeries
(SV001585)
45
46
}
%>
</TBODY>
</TABLE>
<%
}
47
totalNewQuantity =
new BigDecimal
(totalQuantityAvailable - quantityRequested);
record.setValueAt(newQuantity, 0, sizeColumn);
record.setValueAt(totalNewQuantity, 0, 8);
// Observe que actualizamos el registro, pero no comprometemos
// si el cliente decide
// vaciar la cesta, en cuyo caso
// llamamos al mtodo rollBack para restrotraer
updateRecord(record);
status = success;
} else {
status = notEnough;
}
} else
status = accessError;
} catch (Exception e) {
e.printStackTrace();
status = accessError;
}
//Cerrar el archivo y aadir
try {
closeFile();
} catch (Exception e) {
//En caso de error, retrotraer (rollback)
try {
rollback();
} catch (Exception e1) {
e1.printStackTrace();
}
status = accessError;
}
return status;
}
}
//Mtodo init del servlet AddtoBasket
public void init() {
hostInfo = GetItems.getHostInfo();
}
public void doGet(HttpServletRequest req, HttpServletResponse res) {
.
.
.
Basket basket = (Basket) session.getAttribute("basket");
MyRecordIOManager recIO =
(MyRecordIOManager) session.getAttribute("recIO");
if (basket == null) {
basket = new Basket();
session.setAttribute("basket", basket);
}
if(recIO == null){
if (recIO == null) {
try {
recIO =
new MyRecordIOManager(
hostInfo[0],
hostInfo[1],
hostInfo[2],
GetItems.getInventoryFile(),
GetItems.getRetailLibrary());
} catch (Exception e) {
48
try {
res.sendRedirect("errorPage.html");
return;
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
id = req.getParameter("id");
size = req.getParameter(id + "S");
quantity = req.getParameter(id + "Q");
status = recIO.updateDBFile(id, size, quantity);
session.setAttribute("recIO", recIO);
if (status.equals("SUCCESS")) {
basket.addItem(id, quantity, size);
try {
res.sendRedirect("ViewBasket.jsp");
return;
} catch (Exception e) {
e.printStackTrace();
}
} else {
if (status.equals("NOT_ENOUGH")) {
try {
res.sendRedirect("insufficient.html");
return;
} catch (Exception e) {
e.printStackTrace();
}
} else
if (status.equals("ACCESS_ERROR")) {
try {
res.sendRedirect("errorPage.html");
return;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Captulo 6. Mdulo 1 avanzado: Crear cdigo HTML, servlets y archivos JSP que formulan pedidos de cliente en un servidor iSeries
(SV001585)
49
50
response.sendRedirect("errorPage.html");
} catch (IOException e) {
e.printStackTrace();
}
} else {
items = basket.elements();
// Establecer la matriz de elementos de tipo estructura
while (items.hasMoreElements()) {
item = (String[]) items.nextElement();
inputStruct = orderBean.getOrdItemAr(j);
inputStruct.setItemNo(new BigDecimal(item[0]));
inputStruct.setQuantity(new BigDecimal(item[1]));
inputStruct.setSizeOrd(item[2]);
j = j + 1;
}
// Establecer el resto de los elementos de la matriz en valores ficticios
for (int i = j - 1; i < 100; i++) {
inputStruct = orderBean.getOrdItemAr(i);
inputStruct.setItemNo(new BigDecimal(0));
inputStruct.setQuantity(new BigDecimal(0));
inputStruct.setSizeOrd("s");
}
// Establecer los otros dos parmetros de entrada del bean
orderBean.setNumOfItems(new BigDecimal(j));
orderBean.setBalance((BigDecimal)
request.getSession().getAttribute("balance"));
try {
// Invocar el programa iSeries
orderBean.invoke();
// Recuperar el nmero de pedido a partir del bean PLACEORD
orderNumber = (orderBean.getRetCode()).toString();
request.getSession().setAttribute("orderNumber",
orderNumber);
basket.empty();
// Comprometer este pedido ahora
recIO.commit();
response.sendRedirect("orderNumber.jsp");
return;
} catch (Exception e) {
response.sendRedirect("errorPage.html");
e.printStackTrace();
}
}
}
Captulo 6. Mdulo 1 avanzado: Crear cdigo HTML, servlets y archivos JSP que formulan pedidos de cliente en un servidor iSeries
(SV001585)
51
52
53
54
Antes de empezar
Solo podr llevar a cabo los ejercicios si se cumplen los siguientes prerrequisitos.
En el tema Captulo 3, Ejecutar el caso prctico, en la pgina 9 hallar ms
detalles sobre los prerrequisitos.
v Tiene acceso TCP/IP a un servidor iSeries.
v Ha iniciado los servidores iSeries con el mandato STRTCPSVR *ALL.
v Ha iniciado el servidor WebFacing con el mandato STRTCPSVR *WEBFACING.
v Ha restaurado las bibliotecas WHOLESALE y RETAILSTOR en el servidor
iSeries.
v Las bibliotecas WHOLESALE, RETAILSTOR y QGPL figuran en la lista de
bibliotecas.
v Ha llevado a cabo todas las tareas del Captulo 3, Ejecutar el caso prctico, en
la pgina 9 (salvo las tareas de WebSphere Application Server opcionales, que no
son necesarias para probar la aplicacin en el entorno de trabajo).
Crear las pginas Web, los servlets, los archivos JSP y el cdigo RPG
Para construir los componentes de SV000618:
1. Cree un proyecto Web destinado a contener todos los archivos que va a crear.
2. Escriba un archivo JSP ListItems que proporcione una lista de los artculos
existentes en la base de datos del inventario de iSeries. Para escribir el servlet,
puede utilizar Page Designer en las herramientas de desarrollo Web para
iSeries. Concretamente, puede dibujar la pgina en la vista Diseo, y aadir el
correspondiente cdigo en la vista Fuente. Tambin tendr que insertar un
control de tiempo de diseo (DTC) de subarchivo para que interaccione con el
programa de servicio RPG TNLSTITM, rellenando el subarchivo con los
registros de base de datos. Puede especificar el programa de servicio en los
valores del control DTC.
A continuacin tendr que utilizar el asistente Interaccin Web para crear la pgina
de entrada:
v Especifique ListItems.jsp como pgina de salida para listar los artculos del
inventario; as se asegura de que el pgina Interaccin Web cree un archivo
ListItems.wit.
v Asegrese de que no especifica llamadas a programa en el asistente Interaccin
Web, porque el DTC de subarchivo invoca automticamente el programa de
servicio RPG TNLSTITM. El asistente tambin genera un servlet
ListItemsWitServlet que funciona a modo de enlace para invocar la pgina
ListItems.jsp.
v Para revisar el archivo ListItemsWit.wit generado por el asistente Interaccin
Web:
1. Expanda SV001618 y pulse ListItems.wit dos veces para visualizar el
asistente de interaccin del archivo.
2. Pulse Siguiente mediante el asistente para revisar los valores especificados
para la interaccin.
A continuacin, debe escribir una pgina de salida JSP GetCost con Page Designer,
que toma los datos de entrada a partir de la pgina de entrada ListItems.jsp.
Captulo 7. Mdulo 2 avanzado: Crear el proyecto Web que utiliza los servicios Web SV000514 y SV001586 (SV000618)
55
56
Captulo 7. Mdulo 2 avanzado: Crear el proyecto Web que utiliza los servicios Web SV000514 y SV001586 (SV000618)
57
58
Captulo 8. Avisos
Note to U.S. Government Users Restricted Rights - Use, duplication or disclosure
restricted by GSA ADP Schedule Contract with IBM Corp.
Esta informacin se ha desarrollado para productos y servicios ofrecidos en los
Estados Unidos. Es posible que IBM no ofrezca los productos, servicios o
caractersticas descritas en esta documentacin en otros pases. Consulte a su
representante local de IBM para obtener informacin acerca de los productos y
servicios disponibles actualmente en su rea geogrfica. Las referencias a
productos, programas o servicios de IBM no pretenden afirmar ni implican que
slo puedan utilizarse dichos programas, productos o servicios. En su lugar, puede
utilizarse cualquier producto, programa o servicio funcionalmente equivalente que
no infrinja ninguno de los derechos de propiedad intelectual de IBM. Sin embargo,
es responsabilidad del usuario evaluar y verificar la operativa de los productos,
programas y servicios que no pertenezcan a IBM.
IBM puede tener patentes o patentes pendientes de aplicacin referentes a los
temas descritos en esta documentacin. La adquisicin de esta documentacin no
le otorga ninguna licencia sobre dichas patentes. Puede enviar consultas sobre
licencias, por correo, a:
IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785
U.S.A.
Para formular consultas sobre licencias referentes a informacin de doble byte
(DBCS), pngase en contacto con el Departamento de propiedad intelectual de IBM
de su pas, o enve las consultas por correo a:
IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo
106, Japan
El prrafo que sigue no se aplica en los Estados Unidos ni en ningn otro pas
en el que tales disposiciones sean incoherentes con las leyes
locales:INTERNATIONAL BUSINESS MACHINES CORPORATION
PROPORCIONA ESTA PUBLICACIN TAL CUAL, SIN GARANTA DE
NINGUNA CLASE, YA SEA EXPRESA O IMPLCITA, INCLUIDAS LAS
GARANTAS O CONDICIONES IMPLCITAS DE NO VULNERABILIDAD,
COMERCIALIZACIN O ADECUACIN A UN PROPSITO DETERMINADO,
PERO SIN LIMITARSE A ELLAS. Algunos estados no permiten la declaracin de
limitacin de responsabilidad con respecto a las garantas expresas o implcitas en
determinadas transacciones y, por tanto, esta afirmacin puede no ser procedente
en su caso.
Esta documentacin puede incluir inexactitudes tcnicas o errores tipogrficos. La
informacin que contiene est sujeta a cambios peridicos, que se incorporarn en
nuevas ediciones de la publicacin. IBM puede efectuar mejoras y/o cambios en
los productos y programas descritos en esta publicacin en cualquier momento sin
previo aviso.
Las referencias efectuadas en esta informacin a sitios Web que no son de IBM se
suministran nicamente a efectos de comodidad, y no implican garanta alguna
59
acerca de dichos sitios Web. Los materiales de esos sitios Web no forman parte de
los materiales de este producto IBM, y el usuario asume la responsabilidad de
utilizarlos.
IBM puede utilizar o distribuir la informacin suministrada por el cliente de
cualquier forma que considere adecuada sin contraer ninguna obligacin con
respecto a l.
Los licenciatarios de este programa que deseen obtener informacin acerca del
mismo con la finalidad de permitir: (i) el intercambio de informacin entre
programas creados independientemente y otros programas (incluido este) y (ii) la
utilizacin mutua de la informacin intercambiada, deben ponerse en contacto con:
Lab Director IBM Canada Ltd. Laboratory 8200 Warden Avenue Markham, Ontario,
Canada L6G 1C7
Tal informacin puede estar disponible, sujeta a los trminos y condiciones
adecuados, incluyendo en algunos casos el pago de una tasa.
IBM suministra el programa bajo licencia descrito en esta documentacin y todo el
material bajo licencia disponible para el mismo bajo los trminos del IBM
Customer Agreement (Acuerdo de cliente de IBM), IBM International Program
License Agreement (Acuerdo internacional de licencia de programa de IBM) o
cualquier acuerdo equivalente entre las partes.
La informacin concerniente a los productos que no pertenecen a IBM se ha
obtenido de los proveedores de dichos productos, de sus anuncios publicados y de
otras fuentes disponibles pblicamente. IBM no ha probado dichos productos y no
puede confirmar la exactitud de las declaraciones sobre rendimiento,
compatibilidad ni de cualquier otro tipo relacionadas con productos que no
pertenecen a IBM. Las preguntas relativas a las posibilidades de productos no IBM
deben dirigirse a los proveedores de dichos productos.
Esta informacin contiene ejemplos de datos e informes utilizados en operaciones
habituales de gestin. Para ilustrarlos de la forma ms completa posible, los
ejemplos pueden incluir los nombres de personas, empresas, marcas y productos.
Todos estos nombres son ficticios y cualquier parecido con nombres y direcciones
utilizados por empresas reales es mera coincidencia.
LICENCIA DE COPYRIGHT:
Esta informacin ejemplos de programas de aplicacin en lenguaje fuente, que
ilustran tcnicas de programacin en diversas plataformas operativas. Puede
copiar, modificar y distribuir estos programas de ejemplo de cualquier forma sin
pago a IBM, con la finalidad de desarrollar, utilizar, comercializar o distribuir
programas de aplicacin compatibles con la interfaz de programacin de
aplicaciones correspondiente a la plataforma operativa para la que se han escrito
los programas de ejemplo. Estos ejemplos no se han probado exhaustivamente bajo
todas las condiciones. Por tanto, IBM no puede garantizar la fiabilidad, capacidad
de servicio ni funcionamiento de estos programas. Puede copiar, modificar y
distribuir estos programas de ejemplo de cualquier forma sin pago a IBM, con la
finalidad de desarrollar, utilizar, comercializar o distribuir programas de aplicacin
compatibles con las interfaces de programacin de aplicaciones de IBM.
Cada una de las copias, cualquier parte de estos programas de ejemplo o cualquier
producto derivado debe incluir una aviso de copyright como el siguiente:
60
(C) (nombre de la empresa) (ao). Partes de este cdigo se derivan de IBM Corp.
Sample Programs. (C) Copyright IBM Corp. 1992, 2002. Reservados todos los
derechos.
v CUA
v OS/390
v AFP
v DB2
v OS/400
v AIX
v DB2 Extenders
v POWER2
v AIX windows
v PowerPC
v APPN
v PROFS
v Application System/400
v GDDM
v RPG/400
v AS/400
v IBM
v RS/6000
v AS/400e
v IBMLink
v S/390
v BookManager
v Integrated Language
Environment
v SAA
v C Set ++
v iSeries
v SQL/400
v C/400
v Language Environment
v System/36
v CICS
v MQSeries
v System/38
v CICS/400
v Network Station
v VisualAge
v CICS/ESA
v Open Class
v VTAM
v COBOL/2
v Operating System/2
v WebSphere
v COBOL/400
v Operating System/400
v OS/2
Captulo 8. Avisos
61
62
Impreso en Espaa