martes, 31 de enero de 2017
Cómo establecer el maxAllowedContentLength a 500 MB
El límite de requests en .Net se puede configurar en dos propiedades en conjunto:
1. Web.Config/system.web/httpRuntime/maxRequestLength
Unidad de medida: kilobytes
Default value 4096 KB (4 MB)
Max. value 2147483647 KB (2 TB)
2. Web.Config/system.webServer/security/requestFiltering/maxAllowedContentLength (en bytes)
Unidad de medida: bytes
Default value 30000000 b (28.6 MB)
Max. value 4294967295 bytes (4 TB)
<system.web>
<!-- El tamañano default es 4096 kilobytes (4 MB). Maximo Valor es 2147483647 KB (2 TB)-->
<!-- 100 MB en kilobytes -->
<httpRuntime maxRequestLength="102400" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<!--El tamañano default es 30000000 bytes (28.6 MB). Maximo Valor es 4294967295 bytes (4 GB)-->
<!-- 100 MB en bytes -->
<requestLimits maxAllowedContentLength="104857600" />
</requestFiltering>
</security>
</system.webServer>
Referencias:
https://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits
jueves, 18 de abril de 2013
Como hacer un menu usando el GAM
Se parte de que se tiene activado el GAM en su propiedad Enable
Integrated Security = True
Y la propiedad Default Integrated Security = Authorization
Al tener esta ultima propiedad en autorización el gam se
encarga de agregar los objetos utilizados en Genexus a los permisos de la aplicación
La forma en que los agrega es poniéndoles _NombreDel
Evento
Ejemplo.- si tengo una transacción Menu agregara los siguientes permisos
menu_Execute (significa que puede ejecutar el objeto)
menu_Insert (permite insertar)
menu_Update (permite modificar)
menu_Delete (permite eliminar)
menu_FullControl (Permite
agregar todos los permisos anteriores)
Se cuenta con tres pasos para tener los permisos en
usuario
a) Primero debe existir el permiso en la aplicación
en
este punto en el caso de los menus principales que no llaman a un objeto deben
de darse de alta en los permisos de la aplicación usando las opciones de
agregar permisos a la aplicación.
b) Se debe agregar los permiso a los roles
c) Por último se debe agregar los roles al usuario
ahora
procederemos a crear una transacción Menu
con los campos necesarios para guardar los datos de las opciones que componen
al menú como se muestra en la figura siguiente
MenuIsHeader.- se utiliza para indicar que es un menú principal
pero que no va a llamar a ningún objeto para ejecutarse.
trim(MenuObject)+'_Execute' IF not MenuObject.isempty();
trim(MenuName)+'_Execute' IF
MenuObject.isempty();
MenuObjectNull.- se utiliza para indicar va llamar a un
objeto o no
MenuObject IF
MenuIsHeader=False
Se debe crear un subtipo con los siguientes atributos
MenuParentId
MenuParentName
De esta forma tenemos un menú recursivo
Hasta aquí ya tenemos la transacción menú para dar de alta
nuestras opciones de menú
Ahora en la master page se debe agregar el user control
de su preferencia para mostrar el menú
En este ejemplo usaremos
SmoothNavMenu
Agregamos
el user control SmoothNavMenu a nuestra master page como se muestra en la
figura
en la pestaña de eventos de nuestra master
page se debe agregar el código que muestra la imagen, se esta llamando en el
evento start el data provider que devuelve la SDT con los datos del menú que se
debe mostrar.
Ahora en el data provider se debe llenar de la siguiente
forma:
order MenuOrder
where MenuParentId = &MenuParentId or (&MenuParentId=0 and MenuParentId.IsNull() )
Where
GAMRepository.CheckPermission(MenuGAMObject)
{
Id = str(MenuId)
Title = MenuName
Description = MenuDescription
//Link = iif(MenuObjectNull.IsEmpty(),!"#",MenuObject+'.aspx')
//generador C#
Link = iif(MenuObjectNull.IsEmpty(),!"#",MenuObject) //generar java
Items =
SmoothNavMenuDP.udp(MenuId)
}
La siguiente instrucción GAMRepository.CheckPermission(MenuGAMObject)
Nos devuelve si tiene permisos el usuario
autentificado al objeto enviado como parámetro a la funcion
Asi
es como debe aparecer el menú del ejemplo
si usas otro user control solo debes hacer algunos cambios para llenar la SDT del menu, el principio de este ejemplo es el mismo para cualquier User Control de Menu
si quieres el ejemplo completo en xpz comenta esta entrada y dale en ++Google
Espero les sea de utilidad
jueves, 25 de octubre de 2012
Ejemplo Servicio Rest con Genexus Java
Servicio Rest con Genexus Java
Crear el modelo de genexus con el generador de java y el DataStore de SQL Server
Configurar modelo con el generador Java
agregar en el classpath las siguientes librerias
(Se pueden encontrar en el directorio <GenexusInstall>\gxjava):
jackson-core-asl-1.5.5.jar
jackson-jaxrs-1.5.5.jar
jackson-mapper-asl-1.5.5.jar
jersey-core-1.4.jar
jersey-json-1.4.jar
jersey-server-1.4.jar
Classpath = gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar;.\drivers\jt400.jar;.\ojdbc14.jar;C:\Tomcat 6.0\lib\servlet-api.jar;jackson-core-asl-1.5.5.jar;jackson-jaxrs-1.5.5.jar;jackson-mapper-asl-1.5.5.jar;jersey-core-1.4.jar;jersey-json-1.4.jar;jersey-server-1.4.jar
ahora ya puedes crear los objetos de tu proyecto
en el momento que lo requieras Generar y ejecuta la aplicacion(F5), la primeras vez les pide los datos de la base de datos
si te marca error en la creacion de la base de datos debes asegurarte que el servidor de sql server permite la conexiones tcpip y el puerto 1433 este configurado
Si el documento te sirvio deja tu comentario o dale clic a google+
Ejemplo:
para consumir el servicio Rest
Crear procedimiento SyncReceive
Rules:
parm(out:&LVC);
Source:
&serverHost = !"192.168.0.3"&serverRestBaseURL = !"/appJavaEnvironment/rest/"&Port = 8080 //para tomcat&Url = !'GetDatos1?fmt=json'&httpclient.Host = &serverHost&httpclient
.Port = &Port&httpclient
.BaseUrl = &serverRestBaseURL&httpclient
.AddHeader(!'Content-type',!'application/json')&httpclient.Execute(!'GET', &Url)&i = 0&Datos1List.FromJson(&httpclient.ToString())
For &Datos1 in &Datos1List new DatoId = &Datos1.DatoId DatoNombre =
&Datos1.DatoNombre DatoDireccion =
&Datos1.DatoDireccion
endnew &i+= 1endforcommit
if &i = 0
&LVC = " No existen registros para agregar"else &LVC = &i.ToString() + " registros agregados"endif
fuentes:
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,E,0,,31458
Crear el modelo de genexus con el generador de java y el DataStore de SQL Server
Configurar modelo con el generador Java
agregar en el classpath las siguientes librerias
(Se pueden encontrar en el directorio <GenexusInstall>\gxjava):
jackson-core-asl-1.5.5.jar
jackson-jaxrs-1.5.5.jar
jackson-mapper-asl-1.5.5.jar
jersey-core-1.4.jar
jersey-json-1.4.jar
jersey-server-1.4.jar
Classpath = gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar;.\drivers\jt400.jar;.\ojdbc14.jar;C:\Tomcat 6.0\lib\servlet-api.jar;jackson-core-asl-1.5.5.jar;jackson-jaxrs-1.5.5.jar;jackson-mapper-asl-1.5.5.jar;jersey-core-1.4.jar;jersey-json-1.4.jar;jersey-server-1.4.jar
ahora ya puedes crear los objetos de tu proyecto
en el momento que lo requieras Generar y ejecuta la aplicacion(F5), la primeras vez les pide los datos de la base de datos
si te marca error en la creacion de la base de datos debes asegurarte que el servidor de sql server permite la conexiones tcpip y el puerto 1433 este configurado
Si el documento te sirvio deja tu comentario o dale clic a google+
Ejemplo:
para consumir el servicio Rest
Crear procedimiento SyncReceive
Rules:
parm(out:&LVC);
Source:
&serverHost = !"192.168.0.3"&serverRestBaseURL = !"/appJavaEnvironment/rest/"&Port = 8080 //para tomcat&Url = !'GetDatos1?fmt=json'&httpclient.Host = &serverHost&httpclient
.Port = &Port&httpclient
.BaseUrl = &serverRestBaseURL&httpclient
.AddHeader(!'Content-type',!'application/json')&httpclient.Execute(!'GET', &Url)&i = 0&Datos1List.FromJson(&httpclient.ToString())
For &Datos1 in &Datos1List new DatoId = &Datos1.DatoId DatoNombre =
&Datos1.DatoNombre DatoDireccion =
&Datos1.DatoDireccion
endnew &i+= 1endforcommit
if &i = 0
&LVC = " No existen registros para agregar"else &LVC = &i.ToString() + " registros agregados"endif
fuentes:
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,E,0,,31458
Requerimientos Android Smart Device en Genexus
Introducción Android es el sistema operativo desarrollado por un consorcio liderado por Google que se ha masificado gracias a su licenciamiento de código abierto, lo que permite que cualquier fabricante lo utilice.
Android está basado en Linux y el lenguaje de programación que se debe utilizar para poder programar aplicaciones es Java. Requisitos Es necesario tener el JDK de Java en versión 5 o 6, el mismo se puede descargar desde:
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
Para poder desarrollar aplicaciones en Android es necesario instalar el Android SDK
El mismo se puede descargar desde: http://developer.android.com/sdk/index.html Setup
Luego de instalado el SDK de Android es necesario ejecutar el SDK Manager.exe del directorio de instalación
Esto desplegará la siguiente ventana que muestra los paquetes disponibles para instalar, es necesario instalar el Android SDK 2.1 y Google API 7 y el Android SDK 4.0.3 Google API 15
Después de instalado el SDK, ya se podrá generar y prototipar aplicaciones generadas en Android.
¿Por qué es necesario instalar tanto a nivel de API?
Nivel API 15 es necesario para compilar la aplicación. Sin embargo API 7 incluye un emulador más rápido, así que tener dos niveles de API instalada la aplicación se compila utilizando 15 y ejecute con 7.
Comprobación de la instalación del SDK de Android
Si tiene dudas sobre lo que Android SDK versión que ha instalado y / o qué niveles de API que soporta usted puede:- ejecute el comando siguiente para obtener una lista de todas las API instalado: "
- c:\SDK_Installation_Directory\Tools\android.bat list target
- ejecutar el Administrador de SDK en el menú Inicio de Windows o el comando siguiente:
- c:\SDK_Installation_Directory\"SDK manager"
fuentes: http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Android+Requirements,
martes, 28 de agosto de 2012
Archivos ASCII Delimitados
&Archivo = trim(&Directorio) + 'Datos.txt'
&Longitud = &Valor1.Length() + &Valor2.Length() + &Valor3.Length()
//caracter delimitador entre campos
//Si se quiere especificar el caracter de tabulación como separador,
//el valor de este parámetro debe ser el string “\t”.
//variable de tipo character
&fdel= ','
//caracter delimitador de los campos strings
//variable de tipo character
&sdel ='"'
//dfropen Abre un archivo de texto para su procesamiento.
//Es la primera función que hay que llamar para comenzar a leer un archivo de texto.
// devuelve 0 si la operacion es satisfactoria
&i = dfropen(&Archivo, &Longitud, &fdel, &sdel)
//Lee el siguiente registro (línea) del archivo de texto delimitado
// devuelve 0 si la operacion es satisfactoria
&jj=dfrnext( )
do while &jj = 0 .or. &jj=-3
&i = dfrgnum( &Valor1)
&i = dfrgtxt( &valor2, &valor2.Length())
&i = dfrgnum( &valor3 )
&jj=dfrnext( )
enddo
&i = dfrclose( )
referencias:
http://www.gxtechnical.com/gxdlsp/pub/genexus/java/docum/manuals/7.0/java70sp14.htm
martes, 14 de agosto de 2012
Mi primer User Control
User Control “Hola Mundo”
El propósito de este documento es explicar como crear un
simple UserControl (UC) “Hola Mundo”. Una Vez terminado este ejemplo paso a
paso, se tendrá un user control llamado “HolaMudo” en la caja de herramientas.
Después de arrastrar este user control a un formulario web (como lo hace normalmente con los cuadros de texto, Grid, Tablas etc.) el control solo mostrara un mensaje “Hola Mundo” en su aplicación Genexus con el color y la fuente que configure en las propiedades del control.
Lo más probable es que la creación de un user control "Hola
Mundo" no va a sonar muy atractivo, pero recuerde que esto es sólo para
fines de aprendizaje. Después de leer este tutorial se puede empezar a pensar
en la creación de controles de usuario muy interesantes, como los menús,
treeviews, los controles de Silverlight, etc.
Así que primero vamos a definir qué es exactamente el
control va a hacer.
Definición del User Control “Hola Mundo”
El control deberá hacer lo siguiente:
·
Mostrar un mensaje “Hola Mundo”
·
Permitir al programador configurar el color del
texto “Hola Mundo”
·
Permitir al programador configurar la fuente del
texto “Hola Mundo”
·
Permitir al programador configurar el tamaño del
texto “Hola Mundo”
Crear el Control
Ejecutar "UserControlEditor.exe" que se
encuentra en el directorio de instalación de Genexus y pulse el botón Nuevo.
![]() |
| [01] User Control Designer |
Introduzca el nombre del control de usuario y la
ubicación de la carpeta. Todos los controles de usuario se deben colocar en el
directorio UserControls que también está en el directorio de instalación de
Genexus.
Nombre del User Control: HolaMundo
Ubicación del User Control:
“C:\Program Files
(x86)\ARTech\GeneXus\GeneXusXEv1\UserControls\HolaMundo”
![]() |
| [02] Nuevo User Control |
Ficha Definición
del control (Control Definition)
En la ficha Definición de control, establezca el
"Icono (utilizado en la caja de herramientas)" de propiedad. En este
caso estamos usando un icono llamado HolaMundoIcon.ico que tiene que ser
colocado en la carpeta HolaMundo que hemos creado en el paso 1. Debido a que
este es un ejemplo sencillo, no hay más trabajo que hacer en esta ficha.
![]() |
| [03] Control Definition |
Ficha Propiedades
Como mencionamos anteriormente, el control debe tener 3
propiedades que nos permitan establecer el "Hola Mundo" texto, la
fuente y el tamaño. En consecuencia, en la pestaña Propiedades, tenemos que
crear 3 propiedades:
•FontFace
◦Type: Combo
◦Default:
Verdana
◦Values:
Arial=Arial,Verdana=Verdana,Comic Sans MS=Comic Sans MS
•FontColor
◦Type: Text
◦Default:
#000000 (black)
•FontSize ◦Type: Text
◦Default: 10
![]() |
| [04] Font Face |
![]() |
| [05]Font Color |
![]() |
| [06] Font Size |
Ficha “JScript Runtime Render”
En el momento de renderizar nuestro control, Genexus
invocara el método Show de nuestro archivo de render en tiempo de ejecución (se
especificó bajo la ficha de definición de control).
Este archivo se puede acceder en la ficha “JScript
Runtime Render” y es donde vamos a tener que programar toda la lógica principal
de nuestro control. En este caso, ya que sólo desea mostrar un "Hola
Mundo" con el mensaje de una fuente determinada, el color y el tamaño, el
archivo de procesamiento contendrá lo siguiente:
![]() |
| [07] JScript Runtime Render |
Tenga en cuenta que todo el código de sombreado en gris
es generada automáticamente por el editor por lo que sólo tendrá que añadir el texto
"Hola Mundo" con los parámetros (tipo de letra, color y tamaño) que
recibe de GeneXus. En este caso la línea es:
var buffer= '<font face="' + this.FontFace +
'" color="'
+ this.FontColor +
'" size="' + this.FontSize +
'">Hello
World!!!</font>';
this.setHtml(buffer);
Ficha XSL Designer Render
Este paso es opcional.
Cuando creas un user control, indica como mostrar su control en tiempo de
diseño (en el IDE de Genexus). Puede, por ejemplo, mostrar una imagen que
representa el control o que puede hacer cosas más sofisticadas, como renderizar
el control de forma dinámica de acuerdo a sus propiedades.
En este caso, vamos a
mostrar un simple texto "Control Hola Mundo" cuando el control se
arrastra al web form. Para ello, es necesario editar en la ficha "XSL
Designer Render", agregando solo el texto "Control Hola Mundo"
como se muestra a continuación:
![]() |
| [08] XSL Designer Render - Control Hola Mundo |
Después de eso el
control se vera asi:
![]() |
| [09] UC Hola Mundo |
Instalar el user control en Genexus
Cierre Genexus si esta
abierto, y ejecute "Genexus.exe /install" bajo en directorio de
instalación de Genexus. A continuación, iniciar Genexus como de costumbre.
![]() |
| [10] Instalar User Control |
El control está
terminado y listo para usarse!
Usando el user control
Ahora vamos a utilizar
el control que acabamos de crear. Este es un proceso muy sencillo:
![]() |
| [09] Cree un web panel y arrastre el control “Hola Mundo” de la caja de herramientas |
![]() |
| [11] Configure las propiedades |
![]() |
| [12] Ejecute |
Imagen en el user control
Ahora vamos hacer que en lugar del texto
“Control Hola Mundo” aparezca una imagen
En la ficha "XSL Designer Render" vamos a cambiar esta
línea
Control Hola Mundo
Por estas:
<img>
<xsl:attribute name="src">
<xsl:value-of select="gxca:GetMyPath()"/>
<xsl:text>\HolaMundo.jpg</xsl:text>
</xsl:attribute>
<xsl:call-template
name="AddStyleAttribute"/>
</img>
![]() |
| [13] Poner Imagen en el User Control |
lunes, 16 de julio de 2012
Configurar Modelo Genexus Evolution I U7
Preparar archivos de la aplicación
·
Software a Instalar:
o JavaSE 7 [http://www.oracle.com/technetwork/java/javase/downloads/index.html]
o
SQL
Server
o ApacheTomcat 6.0.35 [http://tomcat.apache.org/download-60.cgi] o tomcat 7.0 [http://tomcat.apache.org/download-70.cgi]
·
Crear carpeta del sistema web en
C:\pahtInstallTomcat\webapps\<nombre carpeta>
·
Dentro de la carpeta <nombre carpeta>,
crear la carpeta static
·
Dentro de la carpeta <nombre carpeta>,
crear la carpeta META-INF y dentro
de esta carpeta debe crear o copiar el archivo context.xml [https://docs.google.com/open?id=0B72G0BdzutieTUhRNGh6U3lJdjg]
·
Dentro de la carpeta <nombre carpeta>,
crear la carpeta WEB-INF
·
Dentro de la carpeta WEB-INF crear o copiar el archivo web.xml
o
Versiontomcat 6 [https://docs.google.com/open?id=0B72G0BdzutieSzN0VklNRGtzSlU]
o Versión
tomcat 7 ( renombrar a web.xml ) [https://docs.google.com/open?id=0B72G0BdzutieTWZEaTdPdXBzcGc]
·
Dentro de la carpeta WEB-INF crearla carpeta classes
y lib.
·
Dentro de la carpeta lib copiar las librerías
o gxclassr.zip
o GxUtils.jar;
(utilidades de Genexus)
o iText.jar;
(utilidades PDF)
o jtds-1.2.jar;
o lucene-core-2.2.0.jar
Configurar las propiedades del generador Java
·
Configurar las siguientes opciones de “Web Information”
o
Servlet
directory:
C:\pahtInstallTomcat\webapps\<nombre
carpeta>\WEB-INF\classes
o
use
annotations for servlet definition: No
(tomcat es 6.0) o Si (tomcat es 7.0)
o
Static
content base URL: /static
o
Static
content directory seen from client:
C:\pahtInstallTomcat\webapps\<nombre
carpeta>\static
·
Configurar las siguientes opciones de “Build Process”
o Platform:
Sun SDK
o Classpath:
gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar;
C:\ pahtInstallTomcat\lib\servlet-api.jar
o
Compiler
Path: C:\Program
Files\Java\jdk1.7.0_01\bin\javac.exe
o
Make
Path: C:\Program Files (x86)\Microsoft
Visual Studio 9.0\VC\bin\nmake.exe
o
Interpreter
Path: C:\Program
Files\Java\jdk1.7.0_01\bin\java.exe
o
Advanced
§
Use
default browser: marcado
·
Configurar las siguientes opciones de “Execution”
o
Web
aplication base URL: http://localhost:8080/<nombre
carpeta>/servlet/
Configurar las propiedades del Data Store
·
Configurar las siguientes opciones de Access technology settings
o Access technology to set: JDBC
·
Configurar las siguientes opciones de Connection Information
o
JDBC
driver: jTDS Driver (Type 4)
o
Database
name: myDataBase
o
Server
name: myServer
o
Server
TCP/IP port: 1433
o
User
id: myuser
o
User
password: mypass
·
Configurar las siguientes opciones de Database
Information
o SQL
server versión: 2005 o superior
Driver jtds-1.2.5.jar
Suscribirse a:
Entradas (Atom)




















