Re: [as400-l] Re: Implementación GX

Para hacer llamadas remotas (desde otras plataformas) a programas RPG residentes en el Iseries, sean estos generados con Gx o a "mano", se deben declarar via la opción DECLARE PROCEDURE del SQL propietario de la plataforma ISeries.
Recuerdo que la opción para hacerlo automaticamente para los programas invocados por GX desde otras plataformas, aparecia en el developer menu cuando se genera en Java/Win, no recuerdo haberlo visto para .Net.
Una solución rápida para tu caso, seria crear otro generador dentro de tu environment, con las propiedades Java/Win, crear un work panel main dummy y luego ejecutar el developer menu para arrancar el programa que define los stored procedures.
Nos cuentas, saludos.

Atte
Juan Carlos Báez
--------------------------


El 26 de diciembre de 2012 09:50, Christian Berrios <berrios.christian@gmail.com> escribió:
Estimados, gracias por sus respuestas, la solución que use fue la siguiente:

En la creación del dataview en el record format, ingrese el nombre del registro de las tablas a las que estaba haciendo los dataview, con esto pude compilar en rpg sin problemas.

Ahora tengo el siguiente problema:

Los procedimientos RPG los tengo como main para ejecutarlos como procedimientos almacenados.

En un modelo nuevo WEB Genexus X Ev 1 U8 .Net contra ISeries, los declaro en el datastore, como lista externa de procedimientos almacenados, y en la lista de librerías, agrego la biblioteca donde se encuentra el procedimiento almacenado. Hasta aca todo perfecto bajo las normas de genexus, ya que al momento de especificar el objeto solo me da el warning del llamado al procedimiento con una función deprecate como indica la linea de más abajo:

warning: spc0145: Calling stored procedure 'AINF000' in datastore 'PPC' via the call keyword is deprecated. (Events, Line: 889#987e06db-145d-4376-9be0-ee0c676e663b, Details#609421dc-feff-4798-aea2-3dbe12f519f4)

Ahora el problema se produce al ejecutar el objeto y llamar el procedimiento, arrojando el siguiente error:

Error de servidor en la aplicación '/UAIUAIAS400'.

SQL0204 AINF000 en de tipo *N no encontrado.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: IBM.Data.DB2.iSeries.iDB2SQLErrorException: SQL0204 AINF000 en de tipo *N no encontrado.

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:

[iDB2SQLErrorException (0x80004005): SQL0204 AINF000 en  de tipo *N no encontrado.]     IBM.Data.DB2.iSeries.iDB2Exception.throwDcException(MpDcErrorInfo mpEI, MPConnection conn) +146     IBM.Data.DB2.iSeries.iDB2Command.reportDCError(Int32 rc) +586     IBM.Data.DB2.iSeries.iDB2Command.Prepare() +461     IBM.Data.DB2.iSeries.iDB2Command.ExecuteNonQuery() +110     GeneXus.Data.GxDataRecord.ExecuteStoredProcedure(IDbCommand cmd) +16     GeneXus.Data.ADO.GxCommand.ExecRpc() +610    [GxADODataException: SQL0204 AINF000 en  de tipo *N no encontrado.]     GeneXus.Data.ADO.GxCommand.ExecRpc() +902     GeneXus.Data.ADO.GxCommand.FetchDataRPC(IDataReader& dr) +78    [GxADODataException: SQL0204 AINF000 en  de tipo *N no encontrado.SQL0204 AINF000 en  de tipo *N no encontrado.]     GeneXus.Data.ADO.GxCommand.FetchDataRPC(IDataReader& dr) +366     GeneXus.Data.NTier.ADO.CallCursor.execute() +86     GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms, Boolean batch) +609     GeneXus.Data.NTier.DataStoreProvider.execute(Int32 cursor, Object[] parms) +11     GeneXus.Programs.presprueba.E163Z2() +1200     GeneXus.Programs.presprueba.EVT3Z2() +891     GeneXus.Programs.presprueba.DispatchEvents() +5     GeneXus.Programs.uai1.EVT0H2() +1166     GeneXus.Programs.uai1.webExecute() +131     GeneXus.Programs.presprueba.webExecute() +251     GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +266    [Exception: GXApplication exception]     GeneXus.Http.GXHttpHandler.ProcessRequest(HttpContext httpContext) +355     System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181     System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75  


Información de versión: Versión de Microsoft .NET Framework:2.0.50727.5466; Versión ASP.NET:2.0.50727.5456


Esperando se encuentren bien y atento a sus comentarios, me despido cordialmente deseándoles feliz navidad a todos.

  
Christian Berrios Sepúlveda.
Ing. Industrial.
Analista Genexus.




 

El 7 de diciembre de 2012 09:48, Christian Berrios <berrios.christian@gmail.com> escribió:

Estimad@s, buenos dias.

Estoy implementando GeneXus desde 0, para formar un área de desarrollo. Esta tiene un ISeries con compilador rpg.

En este ISeries ya instale la biblioteca GX y estoy creando tablas y procedimientos.

Mi problema es que cuando creo procedimientos que leen Dataview, estos no se compilan en el ISeries.

                             Visualizar Mensajes                            
                                                     Sistema:   ISISDAF      
Cola  . . . . . :   CBS                     Programa  . . . :   *DSPMSG      
  Biblioteca  . :     QUSRSYS                 Biblioteca  . :                
Gravedad  . . . :   00                      Entrega . . . . :   *BREAK      
                                                                             
Teclee respuesta (si necesario), pulse Intro.                                
  * Could not create Procedure PPRC01 in library GWEB.                      
                                                                             
                                                                             
                                                                             
                                                                        Final
F3=Salir           F11=Eliminar un mensaje                  F12=Cancelar    
F13=Eliminar todo  F16=Eliminar todo excepto no respondido  F24=Más teclas   

El procedimiento hace lo siguiente

for each order NIMICE, UIMICE, ICLICE 

endfor


Procedure Prc01 Navigation Report
Name Prc01
Description Prc01
Output Devices None
Environment
RPG for iSeries
Spec. Version
Spec 9_0_6-009
Form Class Graphic
Program Name PPrc01
Parameters
Levels
For Each PFMICE10 (Line: 1)
Order:
NIMICE , UIMICE , ICLICE
Index: LFMICE10
Navigation filters:
Start from: FirstRecord
Loop while: NotEndOfTable
  • =PFMICE10( ICLICE) INTO ICLICE UIMICE NIMICE

Donde PFMICE10 esta asociado al dataview


Estimados necesito saber si falta algo que configurar en el ISeries o Genexus para poder realizar esto ya que necesito realizar SP para mejorar performance de aplicación

Atento a sus comentarios.




--
Christian Berríos Sepúlveda
Ing. Industrial.
Analista Genexus
Movil : 09-9185722



--
Christian Berríos Sepúlveda
Desarrollador Genexus
Movil : 09-9185722

--
 
 

0 Response to "Re: [as400-l] Re: Implementación GX"

Publicar un comentario