<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Tutoriais de Fabricio De los Santos</title>
	<link>http://tutoriais.fabriciodelossantos.com</link>
	<description>www.fabriciodelossantos.com</description>
	<pubDate>Mon, 15 Mar 2010 12:29:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>Exercício de tratamento de nulos com GeneXus 9 Web e .NET e Oracle 10g XE</title>
		<link>http://tutoriais.fabriciodelossantos.com/2008/12/05/exercicio-de-tratamento-de-nulos-com-genexus-9-web-e-net-e-oracle-10g-xe/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2008/12/05/exercicio-de-tratamento-de-nulos-com-genexus-9-web-e-net-e-oracle-10g-xe/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 11:20:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[nulos em oracle]]></category>

		<category><![CDATA[nulos em genexus]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2008/12/05/exercicio-de-tratamento-de-nulos-com-genexus-9-web-e-net-e-oracle-10g-xe/</guid>
		<description><![CDATA[Com o passar dos anos acabamos trabalhando com um padrão determinado e muitas vezes não paramos para pensar se existe outra forma de fazer as coisas até que algum dia é questionado por alguém.
Realmente é algo complicado de explicar assim de cabeça então achei melhor deixar documentado o funcionamento de GeneXus no meu parecer respeito [...]]]></description>
			<content:encoded><![CDATA[<p>Com o passar dos anos acabamos trabalhando com um padrão determinado e muitas vezes não paramos para pensar se existe outra forma de fazer as coisas até que algum dia é questionado por alguém.<br />
Realmente é algo complicado de explicar assim de cabeça então achei melhor deixar documentado o funcionamento de GeneXus no meu parecer respeito aos nulos, e algumas considerações ao trabalhar com Oracle particularmente.</p>
<p>Existe uma propriedade em GeneXus chamada</p>
<p><strong>Generate null for nullvalue</strong></p>
<p><a href="http://picasaweb.google.com/lh/photo/nChx4MxyEoBIbwyEWXWwZg?authkey=cBUq49Olfmk"><img src="http://lh4.ggpht.com/_OVls25BnOKg/STkDRAw-69I/AAAAAAAAAQ8/CbN1AZfQikc/s288/Propriedades%20NET%20GeneXus.PNG" /></a></p>
<p>Por default ela traz o valor “no”</p>
<p>O que é que isso faz?</p>
<p>Isso faz que o ORACLE não grave NULL nos registros das tabelas.</p>
<p>Para caracteres grava <strong>‘ ’</strong></p>
<p>Para numéricos grava <strong>0</strong></p>
<p>Para datas grava <strong>01/01/0001</strong></p>
<p>Tudo bem, agora, se você quiser gravar <strong>NULOS</strong> como tem que fazer?</p>
<p><strong>1)</strong> Trocar Generate null for nullvalue para “Yes”<br />
<strong> 2)</strong> Mudar a estrutura de sua transação para permitir que os atributos permitam nulo, veja a imagem.</p>
<p><a href="http://picasaweb.google.com/lh/photo/xFPViwYb78y50Cama3xH1A?authkey=cBUq49Olfmk"><img src="http://lh5.ggpht.com/_OVls25BnOKg/STkDs1pMAyI/AAAAAAAAARE/zlvVko7v7TE/s288/Transa%C3%A7%C3%A3o%20GeneXus.PNG" /></a></p>
<p>Ok, então agora já está agora não vão aparecer meus registros em nulo.<br />
Sinto informar que não.<br />
Ainda tem um passo mais.</p>
<p><strong>3)</strong> Se você atualiza códigos com procedimentos como por exemplo</p>
<p>New //envio<br />
EnvioCodigo = 3<br />
EnvioEstado = nullvalue(EnvioEstado)<br />
EnvioValor = nullvalue(EnvioValor)<br />
//       EnvioData = nullvalue(EnvioData)<br />
EndNew</p>
<p>Veja bem o atributo <strong>comentado</strong> e pode fazer o exercício com todos os atributos secundários.</p>
<p>Se você não tiver a função associada <strong>nullvalue()</strong>, GeneXus vai a carregar no registro o valor padrão de GeneXus, neste exemplo <strong>‘01/01/0001’</strong><br />
Ahh ok, tudo bem então agora descomentando isso, sim está tudo certo?</p>
<p>Não. O mesmo acontece nas telas das transações. Se você não coloca o atributo na transação GeneXus vai a carregar no registro o valor padrão dele para os nulos.</p>
<p>Uma solução neste caso e colocar os campos nas telas e adicionar a propriedade <strong>“visible”</strong> com <strong>valor 0</strong>.</p>
<p>Exemplo:</p>
<p><a href="http://picasaweb.google.com/lh/photo/kImVie9qaIMuhUrF4jXWlg?authkey=cBUq49Olfmk"><img src="http://lh6.ggpht.com/_OVls25BnOKg/STkEhvHOgHI/AAAAAAAAARM/ZpYCQHQh644/s288/Transa%C3%A7%C3%A3o%20Web%20GeneXus.PNG" /></a></p>
<p>Bem, mas ainda existe outra alternativa ainda melhor passada por <a href="http://ealmeida.blogspot.com/" title="Blog de Enrique Almeida" target="_blank"><strong>Enrique Almeida</strong></a> que é a propriedade <strong>&#8220;Initialized not referenced atributes&#8221;</strong>  que ela por default traz o valor = &#8220;yes&#8221; e se trocamos ela para &#8220;no&#8221; evitamos colocar nas telas e nos procs a regra <strong>nullvalue.</strong></p>
<p><a href="http://picasaweb.google.com/lh/photo/vPmWTI9GaWB8y6CyoYfFDg?authkey=cBUq49Olfmk"><img src="http://lh5.ggpht.com/_OVls25BnOKg/STkuCKXvZhI/AAAAAAAAARc/dPxZGBoJtMU/s288/GeneXus%20Propriedade%20Nulos.PNG" /></a></p>
<p>Quero aclarar que inicialmente não tinha mudado esta última propriedade, porque como comentei no início eu não tenho a costume de trabalhar com os nulos de ORACLE, mas agora com a enorme colaboração de Enrique acho que fica publicado um bom exemplo que pode tirar as dúvidas de muitos.</p>
<p>Retiro a sugestão para ARTech, já que está resolvido e muito bem.</p>
<p>Continuarei testando com combinações de constraints de banco e demais.</p>
<p>Muito obrigado Enrique.</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerência de Projetos - Consultoria GeneXus -<br />
ERP – Sistemas de Missão Crítica - Bancos de Dados.</em></p>
<p><em><strong>Veja meus blogs em:</strong><br />
<a href="http://www.fabriciodelossantos.com/" target="_blank">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2008/12/05/exercicio-de-tratamento-de-nulos-com-genexus-9-web-e-net-e-oracle-10g-xe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial como hacer un WebService con GeneXus</title>
		<link>http://tutoriais.fabriciodelossantos.com/2008/07/21/tutorial-como-hacer-un-webservice-con-genexus/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2008/07/21/tutorial-como-hacer-un-webservice-con-genexus/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 15:32:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[webservice]]></category>

		<category><![CDATA[net]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2008/07/21/tutorial-como-hacer-un-webservice-con-genexus/</guid>
		<description><![CDATA[El siguiente, es un documento que creé para de alguna forma tener un ayuda memoria de como crear un WebService con GeneXus. Tanto para publicar como para consumir.
Publicando un Webservice
Paso 1
Creamos un procedimiento que será el webservice a publicar. En este ejemplo digamos que se trata de un sencillo procedimiento que devuelve la programación de [...]]]></description>
			<content:encoded><![CDATA[<p>El siguiente, es un documento que creé para de alguna forma tener un ayuda memoria de como crear un WebService con GeneXus. Tanto para publicar como para consumir.</p>
<p style="text-align: center"><span style="font-weight: bold">Publicando un Webservice</span></p>
<p><span style="font-weight: bold; color: #ff0000">Paso 1</span><br />
Creamos un procedimiento que será el webservice a publicar. En este ejemplo digamos que se trata de un sencillo procedimiento que devuelve la programación de televisión de determinado día por ejemplo. Nota: No controlo condiciones ni saco la información de una tabla para no hacer más complejo el tutorial.<br />
Debemos colocar las siguientes propiedades al objeto:</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/PropiedadesWSProgramacion.JPG" border="0" /></p>
<p style="text-align: left"><span style="font-weight: bold; color: #ff0000">Paso2</span><br />
Vamos a devolver la programación en un SDT por lo tanto lo crearemos con la siguiente estructura:</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/SDTGrilla.JPG" border="0" /></p>
<p style="text-align: left"><span style="font-weight: bold; color: #ff0000">Paso 3</span><br />
El fuente del programa como mencioné antes carga los datos &#8220;hardcode&#8221;</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/SourceWSProgramacion.JPG" border="0" /></p>
<p style="text-align: left">Como pueden ver en el fuente del programa, hice una aclaración de no poner &#8220;out:&#8221; en los parámetros. Realmente cuando es un SDT y se le pone &#8220;out:&#8221; indicando que es de salida, el webservice no funciona, con otras variables no SDT, no deberían tener problemas.Paso 4<br />
Luego de tener pronto este procedimiento, simplemente especificamos y lo compilamos.<br />
Y ya está publicado nuestro WebService.</p>
<p>Ahora siguiendo con el mismo ejemplo, veremos como:</p>
<p style="text-align: center"><span style="font-weight: bold">Consumir un WebService </span></p>
<p style="text-align: left"><span style="font-weight: bold; color: #ff0000">Paso 1</span><br />
En diseño abrimos el WSDL Inspector, esto lo hacemos en Tools / WSDL InspectorDonde dice Web Service URL colocamos la url de donde se encuentra el WebSerivce publicado en nuestro caso era:</p>
<p>http://localhost/hbo/aServidorProgramacion.aspx?wsdl</p>
<p>En mi ejemplo el directorio virtual se llama &#8220;hbo&#8221;</p>
<p>Luego le damos al botón &#8220;Inspect&#8221; y vemos como nos arma la estructura del WebService para ser consolidado en nuestra kb destino cuando hagamos click en el botón &#8220;Add Reference&#8221;</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/WSDLInspector.JPG" border="0" /></p>
<p style="text-align: left"><span style="font-weight: bold; color: #ff0000">Paso 2</span><br />
Nos pasamos a prototipo y creamos un webpanel que consumirá el WebService y nos mostrará en un Grid, la programación.<br />
A continuación el fuente:</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/SourceWbpBuscaProgramacion.JPG" border="0" /></p>
<p style="text-align: left">La variable de tipo location, nos indica donde está el webservice que queremos consumir. En el ejemplo, los datos están hardcode pero obviamente pueden ser dinámicos.<br />
Existe otra forma de definir el location que es mediante el archivo location.xml que debería estar en el directorio virtual donde estamos corriendo la aplicación.<br />
Podrían definirse varios &#8220;locations&#8221; en el mismo archivo.Dicho archivo en nuestro caso tendría la siguiente información:</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/location.JPG" border="0" /></p>
<p>Nótese que hay un elemento significativo en el nombre del location</p>
<p><span><span style="font-weight: bold">GxLocation name</span></span></p>
<p>Genexus muestra el tipo de datos del WebService como:</p>
<p><span style="font-weight: bold">Programacion.ServidorProgramacion</span></p>
<p>Pero a la hora de utilizarlo tanto con la función como en el archivo location debemos sustituir el último punto &#8220;.&#8221; que aparezca por un &#8220;_&#8221;</p>
<p>La variable &amp;ws es del tipo del WebService y es esta misma la que se usa para invocarlo.<br />
Se puede invocar de las dos formas</p>
<p>&amp;Grilla = &amp;ws.Execute()</p>
<p>o</p>
<p>&amp;ws.Execute(&amp;Grilla)</p>
<p>El evento load muestra como cargamos la grilla de programación.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 3</span><br />
Especificamos, compilamos y ejecutamos el WebPanel que llamamos BuscaProgramación y el resultado que obtenemos es el siguiente:</p>
<p style="text-align: center"><img src="http://fabriciodelossantos.com/arquivos/tutorial_webservices/gridprogramacion.JPG" border="0" /></p>
<p style="text-align: left">En fin un pequeño resumen, pueden haber variantes pero este es un mini tutorial para salir adelante con un WebService en GeneXus.Más información la puede encontrar <a href="http://www.gxtechnical.com/gxdlsp/dist/GeneXus/DevEnv/Docum/ReleaseNotes/8.0/WSDLInspector.htm" target="_blank">aquí</a>.</p>
<p>Otros tutoriales publicados por mí en <a href="http://tutoriais.fabriciodelossantos.com" target="_blank">http://fabriciodls.blogspot.com/</a></p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2008/07/21/tutorial-como-hacer-un-webservice-con-genexus/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql</title>
		<link>http://tutoriais.fabriciodelossantos.com/2008/07/21/instalacion-de-tomcat-5520-en-windows-para-usar-con-genexus-java-sin-deployment-para-mysql/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2008/07/21/instalacion-de-tomcat-5520-en-windows-para-usar-con-genexus-java-sin-deployment-para-mysql/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 15:29:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[tomcat]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2008/07/21/instalacion-de-tomcat-5520-en-windows-para-usar-con-genexus-java-sin-deployment-para-mysql/</guid>
		<description><![CDATA[Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql en 16 pasos.
El presente instructivo, manual o tutorial de Instalación de Tomcat para GeneXus y MySql, no deja de ser algo que a mi me sirvió para instalar Tomcat y poder usarlo con GeneXus rápidamente.
Muchas veces instalamos una herramienta y [...]]]></description>
			<content:encoded><![CDATA[<p>Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql en 16 pasos.</p>
<p>El presente instructivo, manual o tutorial de Instalación de Tomcat para GeneXus y MySql, no deja de ser algo que a mi me sirvió para instalar Tomcat y poder usarlo con GeneXus rápidamente.<br />
Muchas veces instalamos una herramienta y luego tenemos que volvero a hacerlo y nos cuesta tanto trabajo como la primera vez porque nos hemos olvidado.<br />
Aquí un ayuda memoria de los pasos para instalar el Tomcat 5.5.20 para usarlo con GeneXus 9.0 y el generador java.</p>
<p>Espero que este instructivo siga vigente por mucho tiempo, así que como hago referencia a bajar algunos Archivos de Internet, y estos no siempre están disponibles después de un tiempo determinado, voy a subir los archivos que se necesitan a un ftp propio por si quieren bajarlos de ahí.</p>
<p>Espero les sea útil.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 1</span><br />
Primero que nada y para que vayas ganando tiempo mientras vas leyendo el instructivo te paso lo que tienes que bajarte y los links.</p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/apache-tomcat-5.5.20.exe" target="_blank">apache-tomcat-5.5.20.exe</a></p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/jdk-1_5_0_09-windows-i586-p.exe" target="_blank">jdk-1_5_0_09-windows-i586-p.exe</a></p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/mysql-connector-java-5.0.4.zip" target="_blank">mysql-connector-java-5.0.4.zip</a></p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/mysql-5.0.21-win32.zip" target="_blank">mysql-5.0.21-win32.zip</a></p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/mysql-administrator-1.1.9-win.msi" target="_blank">mysql-administrator-1.1.9-win.msi</a></p>
<p><a href="http://fabriciodelossantos.com/arquivos/install_tomcat/nmake.zip" target="_blank">nmake.zip</a></p>
<p><span style="font-weight: bold; color: #ff0000">Paso 2</span><br />
Recomiendo desinstalar la versión de Tomcat que tengan instalado, cuidado porque en la desinstalación pregunta si deseas eliminar las aplicaciones que</p>
<p>tengas, y puede suceder que tengas una aplicación particular ya funcionando en tomcat con otra versión anterior y la borres.<br />
Te recomiendo que la copies a otro lugar.<br />
Si no entiendes que estoy diciendo fíjate en :</p>
<p>C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps</p>
<p>si tienes alguna aplicación que sea tuya, si la tienes respaldala en otro lugar del disco y luego dile al wizard de desinstalación de tomcat que borre todo.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 3</span><br />
Si tienes instalado el JDK desinstalalo y si quieres puedes desinstalar el runtime también para que no te de problema con las versiones.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 4</span><br />
Instalate el jdk-1_5_0_09-windows-i586-p.exe<br />
Cuando te pida la ruta de instalación si quieres luego seguir el ejemplo al pie de la letra, te recomiendo instalarlo en:</p>
<p>C:\Java\jdk1.5.0_09</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 5</span><br />
Instalate el apache-tomcat-5.5.20.exe<br />
En cierto momento el wizard de instalación te pregunta donde está el JDK y te pone una ruta por defecto, tu debes buscar la que mencioné en el paso 4.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 6</span><br />
Luego de instalado el Tomcat te debería quedar en la barra de tareas el ícono del monitor de tomcat.</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/monitor_stop.JPG" border="0" /></p>
<p>Si no aparece el monitor del tomcat puedes ejecutarlo</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/monitor_program.JPG" border="0" /></p>
<p>y debes levantar el tomcat si no esta levantado</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/monitor_start.JPG" border="0" /></p>
<p><span style="font-weight: bold; color: #ff0000">Paso 7</span><br />
Tomcat no ejecuta servlets que no estén detallados en el archivo web.xml de cada aplicación.<br />
Como este instructivo no muestra como hacer deployment debemos descomentar las lineas para que se permita la ejecución de clases anonimas.<br />
Para esto debemos ubicar el archivo web.xml en C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\conf<br />
editarlo, y buscar el siguiente código:</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/paso7a.JPG" border="0" /></p>
<p>Lo que haremos es cerrar y abrir el comentario para que luego cuando hagamos deployment sea más fácil ubicar que es lo que tenemos que comentar.<br />
Quedando el código de la siguiente forma:</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/paso7b.JPG" border="0" /></p>
<p>También debemos hacer lo mismo con el siguiente código:</p>
<p><img src="http://fabriciodelossantos.com/arquivos/install_tomcat/paso7c.JPG" border="0" /></p>
<p><span style="font-weight: bold; color: #ff0000">Paso 8</span><br />
Para ver si está todo bien con el tomcat, lo bajamos y lo volvemos a subir con el monitor tomcat y abrimos el navegaro y colocamos la siguiente url:</p>
<p>http://localhost:8080/servlets-examples/servlet/HelloWorldExample</p>
<p>Donde nos debe aparecer &#8220;hola mundo&#8221; como texto en la página.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 9</span><br />
Podemos ver el administrador de tomcat si ponemos la siguiente url:</p>
<p>http://localhost:8080</p>
<p><span style="font-weight: bold; color: #ff0000"></span><span style="font-weight: bold; color: #ff0000">Paso 10</span></p>
<p>Nos colocamos en el directorio C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps y creamos un nuevo folder con el nombre de nuestra</p>
<p>aplicacion por ejemplo &#8220;mi_sistema&#8221;</p>
<p>Dentro de este folder &#8220;mi_sistema&#8221; creamos los folders &#8220;images&#8221;, &#8220;temp&#8221; y &#8220;WEB-INF&#8221;.<br />
Dentro del folder &#8220;WEB-INF&#8221; creamos los folder &#8220;classes&#8221; y &#8220;lib&#8221;.</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 11</span><br />
Descomprimimos el archivo mysql-connector-java-5.0.4.zip (anteriormente bajado) en una carpeta temporal y busacmos el archivo</p>
<p>mysql-connector-java-5.0.4-bin.jar que es el connector jdbc.</p>
<p>Copiamos este archivo al folder &#8220;lib&#8221; creado en el Paso 10.</p>
<p>En este mismo folder copiaremos otros archivos &#8220;.jar&#8221; que se encuentran en el directorio de la instalación de GeneXus</p>
<p>C:\Archivos de programa\ARTech\GeneXus\GeneXus90\gxjava</p>
<p>Estos son:</p>
<p>gxclassr.jar (este archivo no se encuentra con esta extensión sino que se encuentra como &#8220;.zip&#8221;, debemos copiarlo y luego renombrarlo a &#8220;.jar&#8221;)<br />
GxUtils.jar<br />
iText.jar</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 12</span></p>
<p>Instalamos mysql con mysql-5.0.21-win32.zip y luego creamos la base de datos en nuestro ejemplo &#8220;mi_sistema&#8221; con el administrador de base de datos de tu</p>
<p>preferencia. Puedes usar si quieres el mysql-administrator-1.1.9-win.msi que bajaste en el Paso 1</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 13</span><br />
Copiaremos al folder C:\Java (creado en el Paso 4) los siguientes archivos necesarios que se harán referencia desde Genexus</p>
<p>El connector jdbc que usamos en el Paso 11 mysql-connector-java-5.0.4-bin.jar<br />
Por que este lo vamos a tener 2 veces copiado? Porque en teoria podrías tener el tomcat instalado en otra maquina, y serían usandos en momento de ejecución</p>
<p>por tomcat. Aquí estamos copiando los archivos que serán utilizados por genexus.</p>
<p>El nmake.exe y nmake.err (es un utilitario que permite construir proyectos a partir de archivo .mak. Lo provee el Visual Studio .Net ,también es provisto por</p>
<p>otros lenguajes que utilizan Makefiles, como Java) esta dentro del zip nmake.zip</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 14</span></p>
<p>Ahora en Genexus, configuraremos las propiedades del modelo se la siguiente forma.<br />
Creamos el nuevo modelo de prototipo o produccion con el nombre correspondiente y las siguientes características</p>
<p>El Enviroment<br />
Languaje: Java<br />
User Interface: Web Form<br />
DBMS: MySql<br />
Target Path: Data002</p>
<p>Luego cuando quiera hacer el impacto de base de datos le damos cancelar, para nosotros definir las propiedades a mano sin el wizard</p>
<p>En el boton Properties</p>
<p>En el nodo Client Server Information</p>
<p>Blob local storage path:<br />
/temp/</p>
<p>En el nodo Web Information</p>
<p>Servlet Directory :<br />
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps\mi_sistema\WEB-INF\classes</p>
<p>Temp media directory:<br />
/temp</p>
<p>Static Content Base URL:<br />
/images</p>
<p>Static content directory seen from client:<br />
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps\mi_sistema\images</p>
<p>En el boton DBMS Options</p>
<p>Algunos datos obligatorios a completar</p>
<p>Access technology to set: JDBC</p>
<p>Database name: mi_sistema</p>
<p>Server name: localhost</p>
<p>Server TCP/IP Port: 3306</p>
<p>Connect to server: At first request</p>
<p>Show connection dialog: Never</p>
<p>Userid:Usuario</p>
<p>User password: password</p>
<p>MySql Version: 4.x to 5.0.2</p>
<p>En el boton Execution</p>
<p>Plataform: Sun SDK</p>
<p>Classpath:<br />
gxclassr.zip;GxUtils.jar;.;C:\java\mysql-connector-java-5.0.4-bin.jar; C:\Archivos de programa\Apache Software Foundation\Tomcat</p>
<p>5.5\common\lib\servlet-api.jar</p>
<p>Compiler Path:<br />
C:\Java\jdk1.5.0_09\bin\javac.exe<br />
direct<br />
Make Path:<br />
C:\Java\nmake.exe</p>
<p>Interpreter Path:<br />
C:\Java\jdk1.5.0_09\bin\java.exe</p>
<p>Web Aplication Base URL:<br />
http://localhost:8080/mi_sistema/servlet/</p>
<p>Boton Advanced</p>
<p>Web Browser Settings: Use Default Browser</p>
<p>Luego al final boton Set as default</p>
<p>Para comprobar que la configuración de Genexus con respecto a Tomcat quedó en forma correcta, escribe la siguiente url en el browser:<br />
<span style="font-size: 85%">http://localhost:8080/mi_sistema/servlet/com.genexus.webpanels.gxver</span></p>
<p>El mensaje que debe aparecer para indicar que está todo ok es el siguiente:<br />
Running GeneXus Runtime Classes Version 9.0.2.079</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 15</span></p>
<p>Crear una trn en diseño e imapctarla en el modelo recién configurado, o si ya teníamos transacciones creadas, solo hacer el impacto de base de datos.<br />
Build / Impact Database</p>
<p>Reorganize</p>
<p><span style="font-weight: bold; color: #ff0000">Paso 16</span></p>
<p>Armar los web panels main de prueba, especificar y compilar.<br />
Ejecutar la aplicación en http://localhost:8080/mi_sistema/servlet/hmain</p>
<p>Felicitaciones!!!<br />
Usted ya tiene andando su aplicación en java.</p>
<p>Espero le haya sido util este instructivo.</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2008/07/21/instalacion-de-tomcat-5520-en-windows-para-usar-con-genexus-java-sin-deployment-para-mysql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como desinstalar oracle 9</title>
		<link>http://tutoriais.fabriciodelossantos.com/2007/12/17/como-desinstalar-oracle-9/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2007/12/17/como-desinstalar-oracle-9/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 17:32:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2007/12/17/como-desinstalar-oracle-9/</guid>
		<description><![CDATA[Como desinstalar oracle completamente, borrando entradas en el registro de windows.
Luego de probar la versión 10g de oracle me decidí a desinstalar Oracle 9.2 de mi máquina, y me encontré con algunos detalles, que no pude apagar definitivamente, como carpetas de oracle y entradas de oracle en los servicios de windows.
Intenté instalar el oracle 10 [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold">Como desinstalar oracle completamente, borrando entradas en el registro de windows.</span></p>
<p>Luego de probar la versión 10g de oracle me decidí a desinstalar Oracle 9.2 de mi máquina, y me encontré con algunos detalles, que no pude apagar definitivamente, como carpetas de oracle y entradas de oracle en los servicios de windows.<br />
Intenté instalar el oracle 10 por arriba pero me encontré con otros problemas a la hora de ejecutar.<br />
En fin, terminé creando una guia que comparto aqui con un paso a paso para desinstalar oracle 9 por completo.</p>
<p><span style="font-weight: bold">Paso a paso</span></p>
<p>- Verificar si se tiene odbcs asociados y eliminarlos ya que después quedan corruptos y da otro dolor de cabeza desinstalarlos (aunque también podemos después crear uno nuevo con el mismo nombre y ahí podemos apagarlo, pero lo más prolijo sería eliminar el odbc asociado antes de desinstalar oracle)<br />
- Ejecutar el universal installer<br />
- Borrar todos los homes que aparezcan<br />
- Borrar la variable de ambiente ORAHOME<br />
- Borrar de la variable de ambiente PATH todas las referencias a oracle (panel de control / sistema / avanzado / variables de ambiente)<br />
- Borrar del registro toda referencia a oracle (ejecutar regedit buscar carpeta oracle y borrar)<br />
- Reiniciar el pc<br />
- Borrar la carpeta oracle debajo de c:\</p>
<p>En mi caso en particular como tenia la base de datos instalada local el instalador/desinstalador no me borró los servicios OracleHome92TnsListener y OracleServiceMiMaquina.</p>
<p>Tenemos dos formas de borrar estos servicios de windows</p>
<p>1) sc delete OracleHome92TnsListener</p>
<p>Entramos en el panel de control / servicios y ya no está mas.</p>
<p>2) Ejecutando regedit<br />
Borramos la cadena correspondiente a OracleServiceMiMaquina en:</p>
<p>HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services</p>
<p>Esta segunda opción lo que tiene de diferente es que para ver si el servicio desapareció del panel de control / servicios, hay que reiniciar el pc</p>
<p>Si se usa la primera opción no es necesario reiniciar el pc.</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2007/12/17/como-desinstalar-oracle-9/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Como simular una función Session o Variable Global en Win con GeneXus y Oracle</title>
		<link>http://tutoriais.fabriciodelossantos.com/2007/07/03/como-simular-una-funcion-session-o-variable-global-en-win-con-genexus-y-oracle/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2007/07/03/como-simular-una-funcion-session-o-variable-global-en-win-con-genexus-y-oracle/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 10:17:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[oracle]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2007/07/03/como-simular-una-funcion-session-o-variable-global-en-win-con-genexus-y-oracle/</guid>
		<description><![CDATA[Cuando trabajamos en Web y queremos distinguir una sesión de otra podemos utilizar una variable de tipo WebSession.
Esto básicamente queda muy claro en cualquier ejemplo GeneXus generado por patterns, etc.
Un ejemplo puede ser el procedimiento SetContext de GxWiki
&#38;Session.Set(WikiParameters.Context, &#38;Context.ToXml())
Básicamente seteamos en la variable de tipo WebSession algo particular, en este caso un SDT que se [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando trabajamos en Web y queremos distinguir una sesión de otra podemos utilizar una variable de tipo WebSession.<br />
Esto básicamente queda muy claro en cualquier ejemplo GeneXus generado por patterns, etc.</p>
<p>Un ejemplo puede ser el procedimiento SetContext de GxWiki</p>
<p>&amp;Session.Set(WikiParameters.Context, &amp;Context.ToXml())</p>
<p>Básicamente seteamos en la variable de tipo WebSession algo particular, en este caso un SDT que se llama context.</p>
<p>Ahora bien, por que querría o precisaría tener algo similar a una WebSession pero en una aplicación Windows?</p>
<p>Si bien desde siempre existen las funciones UserID() y Wrkst() que podrían darme esa unicidad que preciso, dependiendo de la aplicación o de algunas limitantes o que nos encontremos, cantidad de licencias, etc, puede ser que ni la combinación de estas 2 funciones mencionadas, nos pueda garantir el dato de una sesión dentro de mi aplicación.</p>
<p>Por ejemplo:</p>
<p>Tengo una aplicación corriendo bajo Terminal Services con licencia para 10 usuarios, donde el nombre de usuario podría no indicarme nada en particular, digamos podrían ser del tipo User1, User2, etc, para lo cual si usara la función UserID() para grabar una auditoría en un registro, no me serviría de mucho.</p>
<p>New<br />
xxxx=yyyy<br />
xxxx=yyyy<br />
xxxx=UserID()<br />
EndNew</p>
<p>Entonces podría llegar a otra solución</p>
<p>Aplico un login y password en una pantalla cuando ingreso al sistema y lo asocio con UserID()<br />
Algo sencillo para ejemplificar (sin contemplar cientos de criterios de seguridad) sería más o menos así:</p>
<p>For Each //Usuarios<br />
Where UsrCod=&amp;UsrCod<br />
Where UsrPsw=&amp;UsrPsw<br />
New //Log<br />
LogUsrID=UserID()<br />
LogUsrCod=UsrCod<br />
EndNew<br />
EndFor</p>
<p>Para luego volver a mi rutina de auditoria</p>
<p>New<br />
xxxx=yyyy<br />
xxxx=yyyy<br />
xxxx=udp(pUserID)<br />
EndNew</p>
<p>Donde &#8220;pUserID&#8221; seria una recorrida de la tabla Log usando como condición &#8220;LogUsrID=UserID()&#8221; y devolviendo como resultado el valor de &#8220;LogUsrCod&#8221; que podria ser &#8220;Juan&#8221;</p>
<p>Perfecto, ahora si tengo un Usuario que conozco registrado para auditoría.</p>
<p>Pero bien, complicándola un poco más, que pasaría si ese &#8220;User1&#8243; (del Terminal) está ejecutando mi aplicación y necesita ejecutar otra instancia?</p>
<p>No habría problemas, porque si bien no podría hacer el &#8220;New&#8221; en la tabla de &#8220;Log&#8221;, con la función &#8220;UserID()&#8221; obtendría el mismo dato, o sea &#8220;Juan&#8221;</p>
<p>Pero&#8230;</p>
<p>Si este mismo &#8220;User1&#8243; (del Terminal) en vez de entrar como &#8220;Juan&#8221;, necesita entrar como &#8220;Pedro&#8221;?<br />
No podré hacer un &#8220;New&#8221;, y ni pensar de utilizar un &#8220;When Duplicate&#8221; porque reemplazaría un usuario por otro para dos sesiones distintas!</p>
<p>Mmm&#8230;<br />
Esto me hace pensar que a partir de la primera pantalla, tendré que pasar por parámetro el usuario que se logueó. Es una solución un poco tediosa, porque objetos que no contemplé antes voy a tener que acomodar para recibir este parámetro.</p>
<p>Sería una solución contar con una función WinSession() que me devuelva la sessión del usuario que está conectado a la base de datos. Claro, su funcionamiento interno sería particular para cada DBMS. Pero, por mientras esto no esté en GeneXus, podemos simularlo mezclando algunos ingredientes de Oracle y luego cada uno puede aplicarlo en su DBMS de desarrollo.</p>
<p>1) Debemos crear una view en nuestra base de datos.</p>
<p>CREATE OR REPLACE FORCE VIEW MISESSION AS<br />
select userenv(&#8217;SESSIONID&#8217;) SESSIONID from dual;</p>
<p>2) En GeneXus, creamos un DataView a esa View de Oracle con un atributo para identificar la sesión.</p>
<p>3) Luego creamos un procedimiento que nos devuelva la sesión, para esto, hacemos un simple for each que recorra este data view, el cual para nuestra sesión solo va a devolver un registro.<br />
En mi ejemplo lo llame &#8220;pmisession&#8221;</p>
<p>&amp;MiSession=0<br />
For Each //MISESISON<br />
Defined By SessionID<br />
&amp;MiSession=SessionID<br />
EndFor</p>
<p>Y listo, ahora simplemente en vez de utilizar la función UserId() o Wrkst(), llamaré a este procedimiento para obtener mi variable única.</p>
<p>Y si eres demasiado cómodo (<span style="font-weight: bold">y sólo si estás acostumbrado con el underground de GeneXus</span>), puedes adicionar esta &#8220;función personalizada&#8221; a los archivos &#8220;*func.pst&#8221; en el directorio de GeneXus con la sintaxis</p>
<p>pmiession.Udp():Numeric</p>
<p>para que de esta forma cuando la quieras utilizar, simplemente presionando &#8220;Ctrl + U&#8221;, aparezca dentro de la lista de funciones.</p>
<p>Otras de las posibilidades sería usar el comando SQL de GeneXus, pero lamentablemente, no permite devolver resultados, si existiera una variante del mismo que permitiera en algunos casos devolver un resultado único para almacenar en una variable GeneXus, podría ser algo parecido a esto:</p>
<p>&amp;sent=&#8221;select userenv(&#8217;SESSIONID&#8217;) from dual;&#8221;<br />
&amp;misession= sql [!&amp;sent!]</p>
<p>Pero&#8230; por ahora no existe.</p>
<p>Observación:<br />
Puede parecer simple o de poco valor esta función de unicidad, pero realmente es algo útil.<br />
Hace unos años en otra empresa, implementamos un sistema con una KB que usaba la función Wrkst() (y todavía lo sigue usando) para mantener la unicidad, y para que cada máquina corra en una sessión única, deshabilitamos la posibilidad que se ejecutara el sistema más de una vez por máquina, justamente para tener esa unicidad, algo que hoy realmente se podría solucionar de esta forma, que ya existía en aquella época, pero a veces uno toma las cosas como vienen y basados en el lema &#8220;lo que funciona no se cambia&#8221;, a veces perdemos eficiencia.</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2007/07/03/como-simular-una-funcion-session-o-variable-global-en-win-con-genexus-y-oracle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Insert Update de Caracteres especiales en Oracle &#8216; chr(39)</title>
		<link>http://tutoriais.fabriciodelossantos.com/2007/06/26/insert-update-de-caracteres-especiales-en-oracle-chr39/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2007/06/26/insert-update-de-caracteres-especiales-en-oracle-chr39/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 20:00:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[oracle]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2007/06/26/insert-update-de-caracteres-especiales-en-oracle-chr39/</guid>
		<description><![CDATA[Insert Update de Caracteres especiales en oracle &#8216; chr(39)
Acostumbrado a trabajar con GeneXus, cuando necesito insertar o actualizar un valor con comilla simple en una columna caracter, la operación es muy sencilla:
atributo=&#8221;&#8216;hola mundo&#8217;&#8221;
Ahora cuando queremos hacer esto en un script, usando por ejemplo sqlplus, la operación es distinta.
Básicamente hay que colocar otra comilla simple antes [...]]]></description>
			<content:encoded><![CDATA[<p>Insert Update de Caracteres especiales en oracle &#8216; chr(39)</p>
<p>Acostumbrado a trabajar con GeneXus, cuando necesito insertar o actualizar un valor con comilla simple en una columna caracter, la operación es muy sencilla:</p>
<p>atributo=&#8221;&#8216;hola mundo&#8217;&#8221;</p>
<p>Ahora cuando queremos hacer esto en un script, usando por ejemplo sqlplus, la operación es distinta.</p>
<p>Básicamente hay que colocar otra comilla simple antes de la que queremos poner, de la siguiente forma:</p>
<p>insert into fdtest values(&#8221;&#8217;hola mundo&#8221;&#8217;);</p>
<p>Ahora bien si el caso que tenemos es al revés.</p>
<p>Tenemos en la tabla comilla simple y queremos pasarlas a dobles, nos encontramos, con el mismo problema, porque en la función replace no podemos invertir las comillas para hacer la búsqueda.</p>
<p>La solución en este caso es:</p>
<p>En el parámetro de búsqueda, usar el valor ascii de este caracter especial de la siguiente forma</p>
<p>select replace(campo,chr(39),&#8217;&#8221;&#8216;) from fdtest;</p>
<p>Nuestro resultado será:</p>
<p>&#8220;hola mundo&#8221;</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2007/06/26/insert-update-de-caracteres-especiales-en-oracle-chr39/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tips: Como usar Case en Oracle</title>
		<link>http://tutoriais.fabriciodelossantos.com/2007/04/24/tips-como-usar-case-en-oracle/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2007/04/24/tips-como-usar-case-en-oracle/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 00:57:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2007/04/24/tips-como-usar-case-en-oracle/</guid>
		<description><![CDATA[Puede darse el caso de que querramos devolver un texto o valor dependiendo del dato de una columna en una tabla Oracle.
Por ejemplo
Si tenemos una tabla de nombre Empleados_Salarios con los campos
Empleado, Salario
y con valores
Agustin, 20.000
Ignacio, 1.500
Nicolás, 10.000
Y en un select queremos en vez de reflejar los valores exactos y mostrar categorías, podemos usar la [...]]]></description>
			<content:encoded><![CDATA[<p>Puede darse el caso de que querramos devolver un texto o valor dependiendo del dato de una columna en una tabla Oracle.</p>
<p>Por ejemplo</p>
<p>Si tenemos una tabla de nombre Empleados_Salarios con los campos<br />
Empleado, Salario<br />
y con valores</p>
<p>Agustin, 20.000<br />
Ignacio, 1.500<br />
Nicolás, 10.000</p>
<p>Y en un select queremos en vez de reflejar los valores exactos y mostrar categorías, podemos usar la sentencia CASE de Oracle como el siguiente ejemplo muestra.</p>
<p>Select Empleado,<br />
CASE<br />
when Salario when Salario &gt;= 5.000 and Salario else &#8216;Salario Alto&#8217;<br />
END Categoria_Salario<br />
from Empleados_Salarios;</p>
<p>La sentencia contiene las palabras reservadas &#8220;when&#8221; para establecer las condiciones, &#8220;else&#8221; para el caso que no cumpla una de las condiciones when, y &#8220;CASE&#8221; y &#8220;END&#8221; que encierran la cláusula condicional, coloqué la palabra &#8220;Categoria_Salario&#8221; como alias de la columna de categorías.</p>
<p>Otro ejemplo sencillo podría ser:</p>
<p>Tengo  una tabla de nombre Stock con 3 campos:</p>
<p>Material char(20),<br />
Entradas number(10),<br />
Salidas number(10)</p>
<p>Y quisiera saber los saldos positivos de Entradas - Salidas, y en el caso que las Salidas sean mayores que las Entradas, no quiero mostrar el valor negativo, sino un valor 0.<br />
Tengo que tener en cuenta los valores nulos que pudiera tener de Entradas o Salidas</p>
<p>El select sería el siguiente:</p>
<p>Select Material,Nvl(entradas,0) Entradas, Nvl(salidas,0) Salidas,<br />
Case Nvl(entradas,0) - Nvl(salidas,0) &gt; 0 then Nvl(entradas,0) - Nvl(salidas,0)<br />
else 0<br />
End Diferencia<br />
from Stock;</p>
<p>Espero que estos mini ejemplos sean de utilidad.</p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2007/04/24/tips-como-usar-case-en-oracle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cual es mi numero de skype</title>
		<link>http://tutoriais.fabriciodelossantos.com/2007/04/22/cual-es-mi-numero-de-skype/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2007/04/22/cual-es-mi-numero-de-skype/#comments</comments>
		<pubDate>Sun, 22 Apr 2007 17:48:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[noticias ti]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2007/04/22/cual-es-mi-numero-de-skype/</guid>
		<description><![CDATA[
Probablemente a esta altura ya tengas Skype y hayas comprado un número SkypeIn (el número que eliges en una ciudad, y a al cual te puede llamar cualquier persona que tenga o no tenga Skype, y te deriva la llamada a tu Skype), pero probablemente también no te acuerdas cual es el número.
Ayudando un poco [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_OVls25BnOKg/RiukmlqDQGI/AAAAAAAAABk/FeJV_3xdH9I/s1600-h/llamargratis.jpg"><img src="http://bp2.blogger.com/_OVls25BnOKg/RiukmlqDQGI/AAAAAAAAABk/FeJV_3xdH9I/s200/llamargratis.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer" border="0" /></a><br />
Probablemente a esta altura ya tengas Skype y hayas comprado un número SkypeIn (el número que eliges en una ciudad, y a al cual te puede llamar cualquier persona que tenga o no tenga Skype, y te deriva la llamada a tu Skype), pero probablemente también no te acuerdas cual es el número.<br />
Ayudando un poco a la gente de Skype, ya que en el sitio tienes que dar 2 o 3 click para llegar a obtener esa información te explico como llegar.</p>
<p>Entras al sitio de Skype, www.skype.com<br />
Alli arriba, te aparece un link que dice &#8220;Entrar&#8221; o &#8220;Sign in&#8221;  con un idioma por default o puedes alterar el idioma en &#8220;Alterar&#8221;</p>
<p>Caso que coincida el idioma con el que tu estás acostumbrado, haces click en &#8220;Entrar&#8221;</p>
<p>Ahi en la misma pantalla te tu usuario y contraseña.</p>
<p>Y enseguida caes en una pantalla donde aparecen tus 3 posibles servicios</p>
<p>SkypeOut - SkypIn - Skype Voicemail</p>
<p>y allí aparece tu número de SkypeIn</p>
<p>Lamentablemente, te tengo que decir, que si comienzas a navegar por el sitio de Skype, realmente, después es muy dificil nuevamente ir a esa pantalla, además constantemente te pide usuario y contraseña de nuevo (van a tener que mejorar el sitio amigos de Skype), así que por las dudas te dejo el link <img src='http://tutoriais.fabriciodelossantos.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Si ya te logueaste al menos una vez en los últimos 10 minutos en el sitio de Skype, y estás en la misma pantalla del browser, que te logueaste al sitio de Skype puedes hacer click en el siguiente link</p>
<p><a href="https://secure.skype.com/store/myaccount/overview.html" target="_blank">Ver tus números de SkypeIn</a></p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2007/04/22/cual-es-mi-numero-de-skype/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tips: Como hacer nuestro clásico debug en java/tomcat con GeneXus</title>
		<link>http://tutoriais.fabriciodelossantos.com/2006/09/21/tips-como-hacer-nuestro-clasico-debug-en-javatomcat-con-genexus/</link>
		<comments>http://tutoriais.fabriciodelossantos.com/2006/09/21/tips-como-hacer-nuestro-clasico-debug-en-javatomcat-con-genexus/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 14:34:00 +0000</pubDate>
		<dc:creator>Fabricio De los Santos</dc:creator>
		
		<category><![CDATA[tomcat]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[genexus]]></category>

		<guid isPermaLink="false">http://tutoriais.fabriciodelossantos.com/2006/09/21/tips-como-hacer-nuestro-clasico-debug-en-javatomcat-con-genexus/</guid>
		<description><![CDATA[Generalmente cuando programábamos para plataformas Windows y queríamos saber que valor tenía una variable o un campo, simplemente poníamos un msg en el programa y este aparecía en pantalla.
Para realizar esta tarea en java si estamos programando para web, podemos usar la siguiente sentencia:&#38;msg=’Texto identificatorio ’ + &#38;variable
Msg(&#38;msg,status)
Luego de esto vamos al directorio que está [...]]]></description>
			<content:encoded><![CDATA[<p class="Section1">Generalmente cuando programábamos para plataformas Windows y queríamos saber que valor tenía una variable o un campo, simplemente poníamos un msg en el programa y este aparecía en pantalla.<br />
Para realizar esta tarea en java si estamos programando para web, podemos usar la siguiente sentencia:&amp;msg=’Texto identificatorio ’ + &amp;variable<br />
Msg(&amp;msg,status)</p>
<p>Luego de esto vamos al directorio que está instalado el tomcat y buscamos la carpeta “logs”<br />
Ejemplo de una instalación Windows:</p>
<p>C:\Program Files\Apache Software Foundation\Tomcat 5.0\logs</p>
<p>Aqui buscamos el archivo stdout.log, lo abrimos y buscamos el &#8220;texto identificatorio&#8221; que pusimos en el msg() y allí encontraremos el valor de nuestra variable.</p>
<p class="MsoNormal"><span style="font-family: Arial; font-size: 85%"><span style="font-family: Arial; font-size: 10px"></span></span></p>
<p><em><strong>Fabricio De los Santos</strong><br />
Gerencia de Proyectos - </em><em> Consultoría GeneXus -</em><br />
<em> ERP – Sistemas de Misión Crítica - Bases de Datos.</em></p>
<p><em><strong>Vea mis blogs en:</strong><br />
<a href="http://www.fabriciodelossantos.com/">www.fabriciodelossantos.com</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://tutoriais.fabriciodelossantos.com/2006/09/21/tips-como-hacer-nuestro-clasico-debug-en-javatomcat-con-genexus/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

