RPG Free - ferPiece/docs GitHub Wiki

Contenido


Introducción

El RPG Free es un estilo de formato libre de desarrollo, similar a los leguajes de programacion como JAVA, Python, C++. El RPG provee en sus especificaciones hojas de desarrollo, como la H, F, D, C, I entre otras.

Algunas equivalentes en formato free:

+ CTL-OPT para especificaciones de control (H)
+ DCL-F para especificaciones de archivos (F)
+ DCL-S, DCL-DS, DCL-SUBF, DCL-C, DCL-PR, DCL-PARM para especificaciones de datos (D)
+ DCL-PROC para especificación de procedimientos (P)

Ventajas

La sintaxis del RPG-Free es similar a los lenguajes modernos por lo que es puede ser mas
fácil de aprender, ya que resulta un poco mas familiar para los programadores y mas 
beneficiosa.

Ejemplo de definición.

Formato columna                                   Formato Free
D name       S         10A                        DCL-S name char(10);

Declaración con directivas del compilador.
DCL-S Salario
  /IF DEFINED(large_vals)
      PACKED(13:3)
  /ELSE
      PAcKED(7:3)
  /ENDIF
  ;

Comandos basicos:

  • EDTLIBL --> Editar listado de las bibliotecas
  • ADDLIBLE --> Añadir biblioteca al listado de bibliotecas existentes, solo dura la sesión
  • STRPDM --> Para Desarrollo de programas, trabajar con miembros, objetos, bibliotecas.
  • STRSEU --> Editor nativo del AS400

AVANZADOS

  • WRKACTJOB - Trabajar con trabajos activos, muestra el rendimiento de los trabajos básicamente un administrador de tareas.
  • WRKOBJ - Trabajar con objetos, muestra información referente a los objetos.
  • DSPPFM - Muestra miembro de archivo físico, los datos que contiene.
  • WRKPF - Emisión de estructura
  • WRKF - Trabajar con archivos, solo con archivos
  • STRSQL - SQL interactivo
  • CHGPRTF - Cambia los atributos del archivo de impresora
  • WRKMSG *SYSOPR - Visualizar mensajes
  • CHGJOB - Cambiar trabajo
  • CPYF - Copiar archivo
  • CLRPFM - Limpiar tabla || archivo fisico

LISTADO DE %BIFs en RPG ILE (RPG-IV)


  Función            Sintaxis                        Descripción
  ----------------------------------------------------------------------------------------
  %Abs         %Abs(numeric expression)              Devuelve el valor absoluto.
  ----------------------------------------------------------------------------------------
  %Addr        %Addr(variable)                       Devuelve un puntero que 
                                                     contiene la dirección a la 
                                                     variable especificada.
  ----------------------------------------------------------------------------------------
  %Alloc       %Alloc(num)                           Asigna la cantidad específica
                                                     de almacenamiento.
  ----------------------------------------------------------------------------------------
  %Char        %Char(expression)                     Convierte la expresión de 
                                                     carácter de tipo.
  ----------------------------------------------------------------------------------------
  %Check       %Check(comparator:base{:start})	 Busca el primer carácter en la 
                                                     cadena de base que no está en 
                                                     la comparación.
  ----------------------------------------------------------------------------------------
  %CheckR      %CheckR(comparator:base{:start})      Busca el último carácter en la 
                                                     cadena de base que no está en 
                                                     la comparación.
  ----------------------------------------------------------------------------------------
  %Date        %Date(expression{:date-format})       Convierte la expresión de una fecha.
  ----------------------------------------------------------------------------------------
  %Days        %Days(num)                            Convierte el número en una duración,
                                                     en días.
  ----------------------------------------------------------------------------------------
  %Dec         %Dec(numeric{:precision:decimal})     Convierte el valor de la expresión 
                                                     numérica a decimal (con embalaje) 
                                                     con formato de dígitos decimales de 
                                                     precisión y las posiciones decimales.
  ----------------------------------------------------------------------------------------
  %DecH        %DecH(numeric{:precision:decimal})    Igual que el% de diciembre función 
                                                     integrada, excepto media modifica se 
                                                     aplica.
  ----------------------------------------------------------------------------------------
  %DecPos      %DecPos(numeric expression)           Devuelve el número de posiciones 
                                                     decimales en la expresión numérica.
  ----------------------------------------------------------------------------------------
  %Diff        %Diff(op1:op2:unit)                   Calcula la diferencia (duración) entre
                                                     dos fecha, la hora, o los valores de 
                                                     marca de tiempo en las unidades 
                                                     especificadas.
  ----------------------------------------------------------------------------------------

%Div %Div(n:m) Divide n por m, y devuelve la parte entera del resultado. ^ %EditC %EditC(numeric : editcode) Devuelve un número de caracteres que representa el valor numérico editado de acuerdo con la edición de código. ^ %EditFlt %EditFlt(numeric expression) Convierte el valor de la expresión numérica de la representación de caracteres pantalla externa de flotador. ^ %EditW %EditW(numeric : editword) Devuelve un número de caracteres que representa el valor numérico editado según la palabra de edición. ^ %Elem %Elem(table OR array OR multiple occurence data structure name) Devuelve el número de elementos de la matriz especificada de mesa, o una estructura de múltiples apariciones de datos. ^ %EOF %EOF{(file_name)} Devuelve *On El ('1 ') si la operación más reciente leer o escribir en un subfile terminó en un fin de archivo o inicio de la condición de archivo. ^ %Equal %Equal{(file_name)} Devuelve *On El ('1 ') si la operación pertinentes más recientes se encuentran una coincidencia exacta. ^ %Error %Error Devuelve *On El ('1 ') si la operación más reciente con extensor' ^ especificado dado lugar a una condición de error. E ' %Float %Float(numeric expression) Convierte el valor de la expresión numérica de flotar formato. ^ %Found %Found{(file_name)} * Devuelve el *On ('1 ') si la operación correspondiente archivo más reciente encontró un registro. ^ %Graph %Graph(char-expr OR graph-expr OR UCS-2-expr { : ccsid }) Convierte el valor de la expresión del carácter, gráfico o UCS-2 y devuelve un valor gráfico. ^ %Hours %Hours(num) Convierte el número en una duración, en horas. ^ %Int %Int(numberic expression) Convierte el valor de la expresión numérica a un entero. ^ %IntH %IntH(numeric expression) Int Igual%, excepto media modifica se aplica. ^ %Len %Len(expression) Puede ser utilizado para obtener la longitud de una expresión o variable para establecer la longitud actual de un campo de longitud variable. ^ %LookUp %LookUp(arg:array{:startindex{:numelems}}) Encuentra una coincidencia exacta del argumento especificado en una matriz. ^ %LookUpGE %LookUpGE(arg:array{:startindex{:numelems}}) Encuentra el argumento especificado, o un valor más cercano a, pero mayor que el argumento especificado, en una matriz. ^ %LookUpGT %LookUpGT(arg:array{:startindex{:numelems}}) Busca un valor en una matriz que es el más cercano y más grande que el argumento especificado. ^ %LookUpLE %LookUpLE(arg:array{:startindex{:numelems}}) Encuentra el argumento especificado, o un valor más cercano a, pero menor que el argumento especificado, en una matriz. ^ %LookUpLT %LookUpLT(arg:array{:startindex{:numelems}}) Busca un valor en una matriz que es el más cercano y menos el argumento especificado. ^ %Minutes %Minutes(num) Convierte el número en una duración, en cuestión de minutos. ^ %Months %Months(num) Convierte el número en una duración, en meses. ^ %MSeconds %MSeconds(num) Convierte el número en una duración, en microsegundos. ^ %NullInd %NullInd(field name) Se puede utilizar para consultar o establecer el indicador nulo para los campos de nulos. ^ %Occur %Occur(dsn-name) Establece u obtiene la posición actual de una estructura de múltiples apariciones de datos. ^ %Open %Open(file name) Devuelve * El *On('1 ') si el archivo especificado está abierto. ^ %PAddr %PAddr(string representing procedure name) Devuelve un puntero cuya dirección es el punto de entrada al procedimiento establecido. ^ %Parms %Parms Devuelve el número de parámetros que se pasan al procedimiento. ^ %ReAlloc %ReAlloc(pointer:number) Reasigna la cantidad especificada de almacenamiento para el puntero especificado. ^ %Rem %Rem(n:m) Divide n por m, y devuelve el resto. ^ %Replace %Replace(replacement string: source {:start pos. {:length to replace}}) Devuelve la cadena de caracteres producida por la inserción de una cadena de reemplazo en la cadena de origen, a partir de la posición inicial y la sustitución de un número especificado de caracteres. ^ %Scan %Scan(search argument : source string {: start}) Devuelve la primera posición del argumento de búsqueda en la cadena de origen, o 0 si no fue encontrada. ^ %Seconds %Seconds(num) Convierte el número en una duración, en segundos. ^ %ShtDn %ShtDn Comprueba si el gestor de la red ha solicitado la parada. ^ %Size %Size(variable OR literal OR array OR table or multiple occurence DS) Devuelve el número de bytes ocupados por el campo o constante. ^ %SqRt %SqRt(numeric-expression) Calcula la raíz cuadrada del número especificado. ^ %Status %Status{(file_name)} Devuelve el valor más reciente establecido para el estado del programa o archivo. ^ %Str %Str(basing pointer{: max-length}) ^ Se utiliza para crear o utilizar de terminación nula cadenas de caracteres, que se utilizan comúnmente en C y C + +. %SubDt %SubDt(value:unit) Extrae la parte especificada de una fecha, hora, o el valor de marca de tiempo. ^ %SubSt %SubSt(string:start{:length}) Devuelve una subcadena de una cadena. ^ %This %This Devuelve un valor de objeto que contiene una referencia a la instancia de clase en cuyo nombre nativo es el método que se llama. ^ %Time %Time(expression{:time-format}) Convierte la expresión a la vez. ^ %TimeStamp %TimeStamp(expression{:*ISO * ISO0}) %TLookUp %TLookUp(arg:search-table{:alt-table}) Encuentra el argumento especificado, o el tipo específico de cerca al partido, en la tabla especificada. ^ %Trim %Trim(string) Devuelve una cadena sin espacios iniciales y finales. ^ %TrimL %TrimL(string) Devuelve una cadena sin espacios a la izquierda. ^ %TrimR %TrimR(string) Devuelve una cadena sin espacios finales. ^ %UCS2 %UCS2(expression) Convierte el valor de una expresión a un valor de UCS-2. ^ %Uns %Uns(numeric expression) Convierte el valor de la expresión numérica de formato sin signo. ^ %UnsH %UnsH(numeric expression) Uns mismo como%, excepto media ajuste se aplica. ^ %XFoot %XFoot(array-expression) Devuelve la suma de todos los elementos de la matriz especificada numérica o expresión. ^ %XLate %XLate(from:to:string{:startpos}) Convierte la cadena especificada, sobre la base de la cadena y la cadena de. ^ %Years %Years(num) Convierte el número en una duración, en años. ^

Referencias


IBM developWorks