MANUAL_SQR.docx

SQR Informe estructurado de consultas (SQR) lenguaje de programación utilizado para extraer datos de la base de datos, g

Views 53 Downloads 3 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

  • Author / Uploaded
  • J AO
Citation preview

SQR Informe estructurado de consultas (SQR) lenguaje de programación utilizado para extraer datos de la base de datos, generar informes y escribir archivos. Veremos cómo SQR utiliza el lenguaje de consulta estructurado (SQL) para comunicarse con bases de datos relacionales. La herramienta SQR tiene su propio lenguaje y estructura; Cuando se usa con SQL, puede producir informes y archivos. Aprenderá los procedimientos, comandos y funciones de SQR que le permitirán producir archivos e informes informativos. PeopleSoft recomienda que SQR se use solo para informes porque las ediciones de la aplicación no se aplican cuando los datos se modifican utilizando los comandos SQL. Antes de la versión 8.46 de PeopleTools, SQR era la principal herramienta de informes entregada con la suite PeopleSoft. PeopleSoft compró el código SQR hace unas pocas versiones antes de que Brio fuera comprado por Hyperion. Desde entonces ha habido muchas mejoras en SQR, pero PeopleSoft viene con una versión anterior. La última versión ahora es parte de una suite con informes de píxeles perfectos como las declaraciones W2 y se puede obtener de Oracle (que compró Hyperion) con costos de licencia adicionales. El nombre "SQR" ha sido retirado en gran parte de la versión de Hyperion; ahora es simplemente una parte del componente de Informes de producción del Sistema Hyperion 9. Si desea aprovechar la experiencia de SQR de su personal, SQR Integrator es un complemento de terceros para ETL y utiliza SQR para hacer el almacén de datos. Tiene una capa de mapeo de procesos empresariales de arrastrar y soltar de GUI, que se convierte en el programa SQR.

Fundamentos de SQR Los SQR se pueden ejecutar a través del programador de procesos, una herramienta de edición y la mayoría del software de programación. Es una herramienta poderosa que se puede usar para actualizar, cambiar y eliminar datos. La siguiente sección tratará las diferentes herramientas de edición y cómo se procesan los programas SQR.

Editores Se puede usar una variedad de herramientas para crear su programa SQR. Cualquier editor de texto básico funcionará (por ejemplo, Bloc de notas o WordPad). Existen productos shareware gratuitos, como el Editor de archivos del programador, que permiten el procesamiento de SQR fuera de PeopleSoft. También hay productos que se pueden comprar que se crearon para ejecutar SQRs (SQR Runner).

Estos productos pueden editar y validar el SQR escrito antes de que se agregue a la aplicación. El uso de cualquiera de estos productos requiere acceso a la base de datos. Las siguientes ilustraciones muestran cómo se vería el código en cada una de estas herramientas. Usar el Bloc de notas es el método más fácil, pero no hay funciones de edición que ayuden a estructurar o formatear. Para ejecutar un SQR, debe usar un archivo bat o la aplicación, como se muestra aquí.

El Editor de archivos del programador es una herramienta gratuita que puede descargar en http://www.download.com/3640-2352-904159.html. Esta herramienta es como el Bloc de notas, ya que no ayudará con el formateo, pero puede configurarse para ejecutar su SQR desde un indicador de DOS. Es una gran herramienta para tener cuando se trabaja con cualquier dato de texto.

SQR Runner fue diseñado específicamente para crear programas SQR. Debe ser comprado. Tiene editores de formato para garantizar que el SQR se crea correctamente. Puede ayudar con la depuración y ejecutar el SQR. Se puede comprar en http://www.sqr-runner.de/subd/index.php?categoryid=10.

Independientemente de la herramienta que decida utilizar, deberá comprender la estructura básica y el lenguaje de un SQR. Tratamiento Se realizan dos pasadas a través del SQR cuando se está ejecutando. El pase de compilación hace lo siguiente:     

Inserta todos los archivos #include (SQC) en el programa fuente Interpreta y valida el código SQR y las declaraciones SQL Preprocesses #Commands (#Define, #Include, #IfAnd, #IFDef) Asigna buffers de trabajo. Procesa la sección de configuración inicial.

El paso de ejecución procesará el SQR en el siguiente orden. 1. Comienza con la sección Inicio del programa (or Begin-Report) y continuará hasta que se alcance un Programa final (or End-Report). 2. A continuación, se procesan las secciones del cuerpo.

3. A continuación, procesa la sección Inicio-Título. Esto configurará el encabezado del informe y se imprimirá en la parte superior de cada página. 4. Finalmente, procesa la sección de pie de inicio. Esto se imprimirá en la parte inferior de cada página.

Estructura del programa Hay una estructura básica para todos los programas SQR. Consta de las siguientes cinco secciones:     

Programa o Informe Configuración partida pie procedimientos

Programa o Informe Esta sección controla el flujo del programa SQR, llamando a los procedimientos, utilizando técnicas de programación modular. Begin-Program (Commands) End-Program

Dentro de esta sección, todos los programas SQR deben incluir el setenv.SQC entregado para identificar el entorno específico de la plataforma. Esto le dice al SQR en qué entorno necesita ejecutarse. Más SQC que pueden incluirse se tratarán más adelante en este capítulo. #include 'setenv.sqc'

Preparar Esta sección describirá las características del informe (es decir, tamaño de página, columnas, fuentes de formularios, gráficos). Declare comandos residen en esta sección. Begin-Setup (Commands) End-Setup

Título Esta sección contendrá comandos que imprimirán un encabezado en la parte superior de cada página del informe. "#" Representa el número total de líneas

reservadas para el encabezado. PeopleSoft ofrece encabezados estándar (archivos SQC) que pueden agregarse utilizando #include al principio o al final del programa SQR. Begin-Heading # (Commands) End-Heading

Pie Esta sección contendrá comandos para imprimir el pie de página en cada página del informe. PeopleSoft entrega pies de página estándar (archivos SQC) que se pueden agregar usando #include. Begin-Footing # (Commands) End-Footing

Procedimientos Un procedimiento es cómo organizar el programa para producir el informe deseado. Procesará los comandos y párrafos SQR (SQL, Documento y Selección), pero cada procedimiento debe tener un nombre único. Begin-Procedure procedure_name (Paragraphs) (Commands) End-Procedure procedure_name

Variables y Comandos Los nombres de las variables pueden tener cualquier longitud y no distinguen entre mayúsculas y minúsculas. Las siguientes son variables de tiempo de ejecución válidas. Los campos de texto y fecha comienzan con "$". Los números comienzan con "#". Los registros y campos de la base de datos comienzan con "&". Las variables de tiempo de ejecución no tienen que ser declaradas explícitamente. Las variables de texto y fecha se inicializan con nulo y cero para las variables numéricas; de forma predeterminada, todas las variables numéricas se crean como un tipo de datos de flotador. SQR entrega muchas variables reservadas, que se mantienen dentro de SQR. Ejemplos de Variables de Cadena y Fecha $Name $CurrDate

Ejemplos de números #Amount #Age

Ejemplos de campos de base de datos &JobCode &Emplid

Tipos de datos SQR soporta muchos tipos de datos para variables. Estos pueden definirse explícitamente dentro del comando Declare-Variable. Si las variables no se definen explícitamente, utilizarán el valor predeterminado para ese tipo de datos. 1. Decimal le permite definir la precisión después del punto decimal. La precisión puede ser de 1 a 38, con el valor predeterminado en 16. Decimal Variable_Name [(precision)] Decimal #Salary(2) Decimal #Age(1)

2. Flotante Este es el valor predeterminado si se usa una #variable y no se declara. Los valores después del punto decimal pueden ser cualquier número; esto depende de la máquina en la que se está ejecutando. Float Variable_Name Float #AnnSal

3. Entero Este es un valor numérico sin valores después del punto decimal. Integer Variable_Name Integer #Year

4. Fecha Esta variable identifica que estos son campos de Fecha y se formatearán en consecuencia. Esto también permitirá que se utilicen funciones de fecha en estos campos. Date Variable_Name Date $Curr_Date

5. Texto / Char Esto identifica que los valores son variables de cadena. Text Variable_Name Text $Empl_Name

6. Lista Las variables de lista contienen una lista de otras variables. Asigne la lista a un nombre de variable que comience con ‘%’. LIST (number_variable1|string_variable1, number_variable2|string_variable2,...) Let %ListAddress = List($address1, $address2, $city,$state,$zip);

Tipo de archivo de salida Los informes SQR se almacenan en su servidor de archivos. Al ejecutar el programador de procesos, puede determinar cómo desea que se vea su salida sin realizar ninguna codificación. La siguiente es una lista de los tipos de archivos de salida que están disponibles: 

     

PDF Adobe Acrobat Reader es el tipo predeterminado para la salida SQR cuando se ejecuta a través del programador de procesos a menos que se modifique. Esto genera el informe en un formato legible agradable. La mayoría de los usuarios se sienten cómodos con este formato. SPF Este es el formato independiente de la impresora, por lo que se puede crear el formato para una impresora específica. CSV Este es un archivo delimitado por comas de texto. Este formato es bueno cuando los datos deben importarse a Excel o Access. HTM Esto crea el informe en formato HTML, para que el informe pueda enviarse a la web. LIS Esta es la salida predeterminada para SQR. Cuando el archivo se ejecuta localmente, este tipo de archivo se mostrará en la biblioteca C:\temp. No es muy bonito, pero es bueno para probar. REGISTRO Aquí es donde se mostrarán los errores. Además, cualquier muestra o visualización dentro del programa se enviará al registro. OUT Esto solo se mostrará cuando el SQR se ejecute a través de un programador de procesos. Mostrará todos los caminos que se utilizaron.

Variables Reservadas Las variables reservadas son variables que SQR ha predefinido. Puede usar estas variables en su programa, en lugar de tener que crear una función o código para recuperar los valores. SQR tiene variables de sistema que pueden usarse con cualquier base de datos y también hay variables creadas que solo funcionan con PeopleSoft. Variables de PeopleSoft La siguiente es una lista de variables que se crearon para trabajar con las aplicaciones de PeopleSoft. Obtienen valores que son específicos de la funcionalidad de PeopleSoft.

       

$prcs_oprid Esto devolverá el Id. De operador de la persona que ejecuta el SQR. $prcs_run_cntl_id Esto devolverá el Id. De Control de Ejecución que se está utilizando para ejecutar el SQR. Esto es útil si los parámetros se pasan a través de un registro de control de ejecución. $AsofToday Esto devolverá la fecha del sistema en el formato nativo. $Asofnow Esto devolverá la hora del sistema en el formato nativo. $SysDateTime Esto devolverá la fecha y hora del sistema en el formato nativo. ReportDate Esto devolverá la Fecha del informe, en el formato de fecha utilizado en el informe. ReportTime Esto devolverá la Hora del informe, en el formato de hora utilizado en el informe. SQL_Statement Esto generará un texto cuando haya un error de SQL.

Variables del sistema Las variables del sistema se pueden utilizar con cualquier aplicación. Como los SQR son independientes del sistema, los programas que se producen pueden ejecutarse en cualquier base de datos a la que tenga acceso. Esta lista es una muestra de las variables del sistema provistas con el lenguaje SQR.    

#current-column Mantiene la columna actual en la página del informe. #current-date Devolverá la fecha y hora actual para la máquina local que se está utilizando. #current-line Mantiene el número de línea física en la página del informe. #end-file Al leer un archivo, determinará si el archivo está al final. False se almacena como 0 y True se almacena como 1. If #end-file then break End-if

       

#page_count Almacena el número de página actual. Esto es utilizado por diferentes SQC para imprimir el número de página en los informes. #return-status Este valor proviene del sistema operativo. Si el SQR falla, este valor se puede generar para la depuración. #sql-count Cuenta las filas que están afectadas en una declaración SQL. #sql-error Almacena el último mensaje de texto cuando hay un error. Este valor se puede mostrar en el registro para ayudar con la depuración. #sql-status Estado de cada consulta SQL. #sqr-hostname El nombre de la máquina en la que se está ejecutando el SQR. #sqr-max-columns Proporciona las columnas máximas en el informe. #sqr-max-lines Da el máximo de líneas en el informe.

    

$sqr-database Almacena la base de datos con la que se está ejecutando el SQR. Las bases de datos válidas son ORACLE, DB2, ODBC, SYBASE e INFORMIX. #sqr-pid Almacena la identificación del proceso para la ejecución actual del SQR. $sqr-program Almacena el nombre del programa SQR. Los encabezados SQC entregados también lo utilizan para imprimir en el informe. $sqr-report Almacena el nombre del informe SQR, que se imprimirá en los informes. $sqr-ver La versión de SQR que se está utilizando.

Declarar-variable Esta variable se utiliza para definir explícitamente las variables. Si está dentro de la sección de configuración, estas variables serán globales. Cuando se usa en un procedimiento local, solo se conocerá ese procedimiento. Declare-variable [DEFAULT-NUMER= {Decimal [(precision)]} | Float | Integer} [Decimal Variable_Name [(precision)]] [FLOAT Variable_Name] [INTEGER Variable_Name] [DATE Variable_Name] [TEXT Variable_Name] End-Declare declare-variable decimal #Age(1) integer #year date $curr_date text $Empl_name end-declare

Variables de sustitución Las variables de sustitución se declaran al comienzo de su programa con una instrucción #define. Aquí es donde se almacenarán las columnas para la declaración de impresión. Estas variables se pueden referenciar entre paréntesis en cualquier parte del programa. Ejemplo Example #Define C1 5 #Define C2 20 … Print Name (+1, {C1}) Print Phone (0, {C2})

Mover y dejar comandos Hay dos comandos que se pueden usar para asignar valores a las variables. El primero es el comando MOVE. Esto copiará los datos de una ubicación de almacenamiento a otra. Los datos de origen pueden ser un literal o una variable. La variable de destino debe ser un campo definido por el usuario; Se puede usar una máscara de edición para formatear los datos. MOVE source data to target_variable [edit_mask] MOVE $Id to $SSN xxx-xx-xxxx

El segundo comando es la instrucción LET. Esto se utiliza para asignar valores o expresiones a una variable definida por el usuario. Las expresiones pueden usar una combinación de operandos, operadores y funciones. LET target-variable = expresión LET #total = #total + #salary

Mostrar y mostrar comandos Los siguientes comandos se utilizan para la depuración. Ellos escribirán las declaraciones en el archivo de registro. Las instrucciones DISPLAY escribirán solo una variable en cada línea. Esta variable puede contener una máscara de edición. Para detener un control de carro al final de la línea, use una opción noline. DISPLAY {variable | literal} [edit_mask] [noline] Display 'Total Salary = ' noline Display #total

El uso de un comando MOSTRAR permitirá que se escriban múltiples literales o variables en la misma línea. Editar máscara también está permitido formatear variables. SHOW {variable | literal} [edit_mask] [{variable | literal} [edit_mask]…] Show 'Total Salary = ' #total ' Total Employees = ' #totemp

Comandos del programa SQR Los siguientes comandos SQR utilizados en las conjugaciones con comandos SQL permitirán escribir un programa que pueda modificar, manipular y formatear los requisitos de datos. Comentarios Para incluir comentarios en su programa, use el signo de exclamación (!). Los comentarios se utilizan para documentar su programa.

Comando DO Este comando se utiliza para llamar a un procedimiento. El procedimiento debe existir dentro del SQR o un archivo SQC incluido. Cuando el procedimiento se haya completado, volverá a la siguiente declaración. Se puede pasar una lista de parámetros al procedimiento. Cada variable está separada por una coma. DO procedure_name [(parm_list)] Do Get-Name

Comando IF Este comando se usa para pruebas condicionales de variables. Todos los comandos IF terminan con un END-IF. Los comandos ELSE se ejecutan si la condición es falsa. SQR utiliza los operadores lógicos de =, , y los operadores booleanos "and", "or", y "not". If condition {When condition is true} [Else {When condition is false}] End-If If #total > 50,000 Let $overflag = 'Y' Else Let $overflag = 'N' End-if

Comando de evaluación El comando EVALUAR es otra forma de realizar pruebas condicionales cuando hay varios procesos que deben realizarse en función del valor. Cada comando de EVALUACIÓN debe terminar con una EVALUACIÓN DE FINALIZACIÓN. Cada variable se evalúa contra la variable cuando o literal. Las declaraciones de condición pueden incluir operadores lógicos (=, , ), pero los operadores booleanos no están permitidos. Un comando OR se puede simular teniendo múltiples comandos WHEN sin ningún otro comando SQR entre ellos. Una condición WHEN-OTHER capturará todos los demás valores. Agregue un comando BREAK para salir de la instrucción EVALUATE. EVALUATE {literal | variable} WHEN condition_1 {When condition_1 true} [Break] WHEN condition_2 {When condition_2 true} [Break]

WHEN-OTHER {When none of the other conditions are true} END-EVALUATE Evaluate &Status When 'A' Let #activecount = #activecount + 1 When 'L' Let #leavecount = #leavecount + 1 When-Other Let #termcount = #termcount + 1 End-Evaluate

Comando WHILE LOOP Este comando continuará procesando sentencias cuando la condición sea verdadera. Un WHILE LOOP se termina con un END-WHILE. Se puede agregar un comando BREAK para salir del WHILE LOOP para otras condiciones, además de la condición WHILE. WHILE condition {Statements when condition is true} END-WHILE While &emplid = $prevemplid Do Get-Salary-Data Do Get-Tax-Data End-While

Comando BREAK El comando BREAK se puede usar para salir de las declaraciones EVALUATE y WHILE. BREAK Evaluate &Status When 'A' Let #activecount = #activecount + 1 Break When 'L' Let #leavecount = #leavecount + 1 Break When-Other Let #termcount = #termcount + 1 End-Evaluate

Comando EXIT-SELECT Estos comandos son similares a los comandos BREAK, pero se usan para salir de una instrucción SELECT de SQL. EXIT-SELECT Let #count = 0 Begin-select Select Emplid Name If #count =100 Exit-select Else Let #count = #count + 1 End-if From ps_personal_data End-Select

Comando GOTO Este comando se ramificará a una sección del programa. GOTO {Label} Begin-Procedure GetHighSalary If #total < 50,000 GoTo GetHighSalaryExit End-if GetHighSalaryExit: End-Procedure GetHighSalary

Comando de parada El comando STOP terminará un comando SQR. Al agregar la opción de silencio a su código, suprimirá el archivo de Rastreo. STOP [Quiet] If #activecounts < 1 Show 'No active employees to process' Stop End-if

Funciones y comandos de formato entregados PeopleSoft ofrece muchos comandos y funciones que se utilizan para la manipulación de datos. Esta sección mostrará algunas manipulaciones de cadena, conversiones de fecha y funciones numéricas.

Función STRING La función STRING permite la concatenación de dos o más campos o variables mediante el uso de un delimitador común. STRING {String1 | Variable1} {String2 | Variable2} … {StringN | VariableN} BY {Delimiter} INTO Results_String String &LastName &FirstName by ', ' into $FullName

Funciones SUBSTR y UNSTRING Hay dos funciones principales que separan una parte de una cadena. SUBSTR requiere un punto de partida y la cantidad de caracteres que se están extrayendo. Let $NewString = SUBSTR({String|Variable}, {Starting Position}, {Length}) Let $FirstInitial = SUBSTR(&FirstName, 1, 1)

UNSTRING separará las variables de cadena en múltiples cadenas dependiendo del delimitador UNSTRING {String|Variable} BY {Delimiter} INTO {Results_String1 … Results_StringN} Unstring $FullName by ',' Into $FirstName $LastName

Función de longitud La función LENGTH devolverá la longitud de la cadena o variable, incluidos los espacios. Let Numeric = LENGTH({String|Variable}) Let #LastNameLen = Length(&LastName)

Funciones de edición Para formatear una cadena, use la función EDITAR. Esto se usa normalmente en la función IMPRIMIR, pero a veces será necesario formatear la cadena para la salida. Let String = EDIT({String|Variable}, edit_mask) Let $SSN = EDIT(&SSN, 'XXX-XX-XXXX')

Funciones RTRIM y LTRIM Para eliminar caracteres no deseados utilice las funciones RTRIM y LTRIM. Se eliminarán los caracteres de los lados derecho e izquierdo de la cadena.

Let NewString = {Rtrim|LTrim} ({String|Variable}, UnwantedCharacter) Let $JobCode = Rtrim(&Jobcode, ' ') Let $Sal = Ltrim($Total, '$')

Funciones RPAD y LPAD Para agregar caracteres a una cadena, use las funciones RPAD y LPAD. Esto permite que todas las cadenas tengan la misma longitud. Let Newstring = {Rpad|Lpad} ({String|Variable}, Max_length, Character) Let $FullName = Rpad(&FullName, #largestName, ' ') Let $Sal = Lpad($EmpSal, 7, '0')

Comandos de mayúsculas y minúsculas Para asegurarse de que sus variables de cadena sean todas del mismo caso, use los comandos en mayúsculas o en minúsculas. {UPPERCASE|LOWERCASE} String Uppercase $FullName Lowercase $JobDescr

Función TO_CHAR Para cambiar una variable numérica de un número a una cadena, use la función TO_CHAR. Let String = TO_CHAR(Numeric) Let $Salary = To_Char(#Totalary)

Función TO_NUMBER Para cambiar una variable de cadena a un número, use la función TO_NUMBER. Esto solo funcionará si la variable de cadena contiene solo caracteres numéricos. Let Numeric = TO_NUMERIC({String|Variable}) Let $AnnualSal = To_Numeric(&Annual_Sal)

Aritmética básica Hay dos formas de hacer aritmética básica. SQR utiliza los operadores estándar con el comando LET ("+", "-", "*", "/"). Let Numeric = {Numeric1|Variable1} Operator1 {Numeric2|Variable2} [Operator2 {NumericN|VariableN}] Let #Total = #Total + #EmplSal Let #AvgSal = #Total / #TotCount

Funciones aritméticas SQR también tiene las siguientes funciones: AGREGAR, DESTACAR, MULTIPLICAR y DIVIDIR. El nuevo valor se almacena en el campo Objetivo. Estas funciones permiten argumentos opcionales para redondear y probar errores. Add {Numeric|Variable} TO Target_Numeric[Round = nn] Subtract {Numeric|Variable} from Target_Numeric [Round = nn] Multiply {Numeric|Variable} Times Target_Numeric [Round = nn] Divide {Numeric|Variable} into Target_Numeric [On-Error = {High|Zero}] [Round = nn] Add #EmplSal to #Total Subtract 1 from #TotEmp Multiply #hours times #TotEmp Round=2 Divide #TotCount Into #AvgSal On-Error=Zero Round=2

Función ROUND La función ROUND se utiliza para especificar la precisión decimal. Esto se utiliza con los cálculos del comando LET. La precisión puede ser de 0 a 38 posiciones a la derecha del punto decimal. Cualquier valor 5 o superior se redondeará al siguiente valor dependiendo de la precisión decimal. Let Numeric = ROUND({Numeric|Variable}, Precision) Let #AvgSal = Round(#Total/#TotCount, 4)

Función TRUNC La función TRUNC elimina todos los dígitos más allá del valor de precisión. Let Numeric = TRUNC({Numeric|Variable}, Precision) Let #Amount = Trunc(#hours * #rate, 2)

Funciones ISNULL e ISBLANK Para verificar si hay una variable vacía, use la función ISNULL. Esta función se puede utilizar en cadenas o fechas. Devolverá un valor Booleon, 1 para verdadero y 0 para falso. Esto es bueno para usar al verificar entradas válidas. Una cadena se considera vacía si la longitud es cero. Una fecha se considera vacía si contiene valores nulos. ISNULL({String|Date}) If ISNULL($Input_date) Show 'No Date Entered' Stop End-if

Para verificar el espacio en blanco use la función ISBLANK. Los espacios en blanco pueden ser nulos, tabulación, control de carro, avance de línea y caracteres de avance de página. ISBLANK({String|Date}) If ISBLANK($Input_Name) Show 'No Name Entered' Stop End-if

Función STRTODATE Para convertir una cadena en una fecha, use la función STRTODATE. Esta función devolverá la representación de fecha de la cadena en función de la máscara de edición. Si no se especifica una máscara de fecha, entonces el valor predeterminado usará SQR_DB_DATE_FORMAT entregado en el archivo PSSQR.INI. Let Date = STRTODATE(String [, edit_mask]) Let $YearEndDate = STRTODATE ('12/31/2007', 'MM/DD/YYYY')

Función DATETOSTR Para convertir una fecha en una cadena, use la función DATETOSTR. Esto utiliza los mismos valores predeterminados de fecha. Let String = DATETOSTR(DATE [, edit_mask]) Let $Birthdate = DATETOSTR(&Birthdate, 'MM/DD/YYYY')

Función DATENOW Para obtener la fecha de hoy, use la función DATENOW. Devolverá la fecha del sistema operativo. Let String = DATENOW() Let $Totay = DATENOW()

Función DATEADD Para agregar a una fecha, use la función DATEADD. Esta función permite que las siguientes unidades de fecha (año, trimestre, mes, semana, día, hora, minuto o segundo) se agreguen o resten de una fecha determinada. Let String = DATEADD(Date, date units, amount) Let $AddTenYears = DateAdd($Today, 'year', 10)

Función DATEDIFF Para encontrar la diferencia entre dos fechas dadas, use la función DATEDIFF. Esta función devolverá el valor en las siguientes unidades de fecha (año, trimestre, mes, semana, día, hora, minuto o segundo). Let Numeric = DATEDIFF(Date1, Date2, date units) Let #age = DATEDIFF($Today, $Birthdate, 'year')

SQR Arrays Para guardar varias filas del mismo tipo de datos, es mejor trabajar con matrices SQR. Las matrices son unidades de almacenamiento temporal de datos que se utilizarán dentro del programa SQR. Los siguientes comandos se utilizan para trabajar con arrays: CREATE-ARRAY, CLEARARRAY, GET, PUT, ARRAY-ADD, ARRAY-SUBTRACT, ARRAY-MULTIPLY y ARRAY-DIVIDE. El primer paso es crear una matriz vacía con los campos requeridos. Create-Array Name={ArrayName} Size= {number} Field = {name:type[:occurs][=initial_value]} Clear-Array Name={ArrayName}

Este ejemplo creará una matriz, cargará datos y luego borrará la matriz. Create-Array Name=Employees_by_Dept Size=12 Field=Month:Char Field=DeptCnt:3 Put 'Jan' 4 6 10 Into Employees_by_Dept(0) Month DeptCnt(0) DeptCnt(1) DeptCnt(2) Put 'Feb' 7 2 4 Into Employees_by_Dept(0) Month DeptCnt(0) DeptCnt(1) DeptCnt(2) … Put 'Dec' 5 4 5 Into Employees_by_Dept(0) Month DeptCnt(0) DeptCnt(1) DeptCnt(2) Clear-Array Employees_by_Dept

Impresión El comando IMPRIMIR (PRINT) se puede usar para controlar la forma en que el usuario final debe ver la información. Estos comandos pueden usarse dentro de un párrafo (impresión explícita) o adjuntarse al SQL (impresión implícita). El comando IMPRIMIR utiliza tres coordenadas (línea, columna, longitud), que son opcionales, para determinar dónde colocar la información en el informe. Estas coordenadas pueden ser fijas o relativas a otra posición, utilizando un signo más o menos. EDITMASK se puede utilizar para formatear el campo que se muestra.

Print {Variable|Literal} ([line][, [column][,[length]]]) format edit-mask Print 'My Company' (1,1,10) Center

Opciones de formato Hay diferentes opciones de formato disponibles. No todas las opciones de formato son compatibles entre sí o con algunas impresoras. Aquí hay algunas opciones de uso común.         

Bold Hace que el valor esté en negrita Box Crea un cuadro alrededor del valor. Center Centra el valor en toda la página Fill Rellena el búfer de longitud con el carácter. Shade Coloca un cuadro sombreado alrededor de los datos. Money usa la máscara de edición de dinero Number Utiliza la máscara de edición de número estándar Underline Subraya el valor Wrap Envuelve los caracteres cuando es un campo de texto largo

EN EL ALMUERZO O DESCANSO (ON-BREAK) Los programas SQR pueden imprimir datos desde las sentencias SELECT. Esto se hace usando la función ON-BREAK. La función ON-BREAK tiene las siguientes opciones que se utilizan para determinar cómo imprimir el campo.        

Print = Always imprime el valor del campo Print = Change solo se imprime si el valor del campo cambia Print = Change / Top-Page Inicia una nueva página cuando cambia el valor Skiplines = nn identifica cuántas líneas omitir Procedure = procedure-name Llama a un procedimiento After = procedure-name Llama al procedimiento después de un descanso Before = procedure-name Llama al procedimiento antes de un descanso Level Determina el nivel de descanso

El siguiente es un ejemplo de cómo se puede usar la función On-Break en un programa SQR. La empresa se utiliza como un salto de página, de modo que todos los empleados de una empresa se muestren en la misma página. Begin-Select Company (,1,4) On-Break Print=Change/Top-Page Emplid (,15,10) Name (, 35,40) From Ps_Employees Order by Company, Name

EDITAR MÁSCARA EDIT-MASK permite el formateo de la variable que se está imprimiendo. Hay tipos específicos de máscaras según el tipo de campo. Enmascaramiento de texto               

X ocupa el lugar de cada personaje del campo B Insertará un espacio en lugar del carácter. ~ Se salta el valor del personaje en el campo / Le dice al sistema que use los caracteres después de una barra invertida como literal | Se utiliza para concatenar diferentes basks. Enmascaramiento numérico 9 imprimirá el número del campo, cero rellenar con el decimal correcto, y espacio de relleno a la izquierda. 8 imprimirá el número del campo, cero rellenos a la derecha del decimal, recortar espacios en blanco, y la izquierda justificar el número. 0 imprimirá el número del campo y el cero se llenará a la izquierda. . El punto se agregará cuando se imprima el campo. , la coma se agregará cuando se imprima el campo. $ Imprimirá el número y un signo de dólar a la derecha del número. El uso de un símbolo de dólar se imprimirá en una posición fija; el uso de más de un símbolo de dólar se imprimirá a la izquierda del número. B Imprimirá el número a menos que sea un cero, en cuyo caso se convertirá en un espacio en blanco.

Enmascaramiento de fecha (mayúsculas y minúsculas)                 

MM mes de dos dígitos (01–12) MON Abreviatura de tres caracteres del mes. MES Nombre completo del mes Día Nombre del día DD Día de dos dígitos del mes (01–31) D Día de la semana (1–7) YYYY año de cuatro dígitos YY Año de dos dígitos (se supone el siglo actual) RR año de dos dígitos (se calcula el siglo) Q Trimestre del año (1–4) WW Semana del año (1–53) W semana del mes (1–5) HH Hora del día reloj de 24 horas. Minutos de MI (0–59) Segundos SS (0–59) AM PM indicador de tiempo B agregará un espacio en blanco

Estas son solo algunas de las máscaras de edición disponibles. Para obtener una lista completa, vaya a PeopleSoft Library People Books de Oracle, SQR Language Reference, Copyright © 1988–2005 PeopleSoft, Inc. La Tabla 10-1 proporciona ejemplos de cómo usar máscaras.

PeopleSoft entrega un repositorio de informes para ver todos los informes y procesos a través de las aplicaciones de PeopleSoft. Hay muchas opciones para mostrar automáticamente su salida (Web, CSV, texto, PDF). Para obtener capacidades más amplias para administrar la salida de SQR, vaya a http://blog.greysparling.com/2005/08/reportdistribution-with-3rd-party.html. Gráficos SQR admite diferentes objetos gráficos que permiten el uso de cuadros, gráficos, etiquetas e imágenes. Estos tipos de objetos mejoran los informes y formularios. Tenga en cuenta que no todas las impresoras admitirán estas funciones. El control de la posición de un gráfico en una página puede ser complicado, ya que el SQR comenzará en la esquina superior izquierda después de haber impreso el gráfico. SQR entrega diferentes comandos para ayudar a crear estos objetos gráficos.

DECLARAR CARTA Este comando definirá todas las características básicas del gráfico. Los tipos de gráficos disponibles son gráficos de líneas, gráficos de barras, histogramas, gráficos de área, diagramas de dispersión XY y gráficos de alta-baja-baja. Begin-Setup Declare-Chart {Chart Name} Title={'Chart Title'} Type = {Line|Pie|Bar|Stacked-Bar|100%-Bar|Overlapped-Bar| floating|Bar|Histogram|Area|Stacked|100%-Area|XY-Scatter-Plot| High-LowClose} Legend = {YES|NO} Legend-Placement = {Center-Right|Center-left|Upper-Right|Upper-Left| UpperCenter| Lower-Right | Lower-Left | Lower-Center} X-Axis-Label= {'Label Name'} Y-Axix-Label = {'Label Name'} End-Declare End-Setup

Lo siguiente declarará un gráfico de barras. Begin-Setup Declare-Chart Employees_By_Department Title = 'Count of employees by Department' Type = STACKED-BAR Legend = YES X-Axis-Label = 'Months' Y-Axis-Label = '# of Employees' End-Declare End-Setup

TABLA DE IMPRESIÓN Después de que se haya declarado un gráfico, se puede hacer referencia a él dentro de la función PRINT-CHART. Normalmente, una matriz de datos se utiliza para rellenar el gráfico y con estos datos se puede crear un Gráfico de impresión. Print-Chart {ChartName} (X [,Y]) Data-Array = {ArrayName} Data-Array-Row-Count= number Data-Array-Column-Count = number Data-Array-Column-Labels = {None|ArrayName|Label} Sub-title = {Subtitle} Print-Chart Employees_By_Department (+5 ,10) Data-Array = Employees_by_Dept Data-Array-Row-Count= 12 Data-Array-Column-Count = 3 Data-Array-Column-Labels = (Dept1, Dept2, Dept3) Sub-title = 'By Month'

DECLARAR IMAGEN Las imágenes pueden personalizar su documento, como los logotipos de la empresa o las imágenes que representan los datos del documento. Para utilizar una imagen, debe guardarse en el directorio SQRDIR o debe especificarse una ruta completa. Esta imagen se puede utilizar más adelante dentro de un comando IMPRIMIR IMAGEN. Declare-Image ImageName [Type = {EPS- FILE |HPGL- FILE |GIF- FILE |JPEG- FILE |BMP- FILE }] [Image-Size = (width, height)] [Source = File_name] End-Declare Declare-Image Company_Logo Type = JPEG-FILE Image-Size = (10, 20) Source = 'My_Company_Logo.JPG' End-Declare

IMPRIMIR IMAGEN PRINT-IMAGE utilizará la información de DECLARE-IMAGE para imprimir la imagen en el documento. Las definiciones de tipo, tamaño de imagen y fuente se pueden sobrescribir en el comando PRINT-IMAGE. Print-Image ImageName (row, column) [Type = {EPS- FILE |HPGL- FILE |GIF- FILE |JPEG- FILE |BMP- FILE }] [Image-Size = (width, height)] [Source = File_name] Print-Image Company_Logo (+4, 30) Image-Size = (15, 30)

Lenguaje de consulta estructurado El lenguaje de consulta estructurado (SQL) se utiliza dentro del programa SQR para extraer datos de la base de datos. Para usar estos comandos, uno necesita conocer sus tablas dentro de la base de datos. Todos los ejemplos en esta sección harán referencia a la base de datos de HRMS de PeopleSoft. Todos los comandos SQL, incluidas las columnas, deben comenzar con justificación a la izquierda. Cualquier comando SQR incluido dentro del comando SQL debe estar sangrado; de lo contrario, se producirá un error. Los comandos principales son BEGIN-SELECT y BEGIN-SQL.

COMENZAR-SELECCIONAR (BEGIN-SELECT) Este comando se utiliza para extraer datos de la base de datos. Aquí es donde se identifican las columnas para su uso dentro del programa SQR. Cada columna, a menos que se especifique, comenzará con una "&" y luego el nombre de la columna. Cada columna está alineada a la izquierda sin una coma. siguiendo. Si más de un campo tiene el mismo nombre de columna de la base de datos, debe agregar un sinónimo que comience con "&". El siguiente ejemplo es leer dos tablas, obtener tres variables de estas tablas y usar el comando SQR DO para llamar a otro párrafo. Luego imprimirá las variables recuperadas. Begin-Procedure Get-Empl-Job Begin-Select A.EMPLID A.NAME &NAME B.JOBCODE &JOBCDE Do Get-Job-Desc FROM PS_PERSONAL_DATA A, PS_JOB B WHERE …… END-SELECT Print &A.Emplid (+1,1) Print &Name (+0, 10) Print &Desc (+0, 40) End-procedure Get-Empl-Job

COMENZAR-SQL Este comando se utiliza para todos los demás comandos SQL (INSERTAR, ACTUALIZAR, BORRAR, etc.). Estas declaraciones se utilizan para manipular los datos en la base de datos. Debe tener el acceso adecuado a la base de datos para usar estas declaraciones SQL. Begin-SQL on-error={procedure_name or STOP|WARN|SKIP} {SQL statements} End-SQL

Este ejemplo está actualizando el campo ubicación_trabajo en la tabla de trabajos donde la ubicación_trabajo actualmente es igual a "BuildingA". Begin-Procedure Update-location Let $location = 'BLDG1' Begin-SQL UPDATE PS_JOB

SET WORK-LOCATION = $location WHERE WORK_LOCATION = 'BuildingA' End-SQL End-procedure Update-location

Filas Fechadas Efectivas Esta aplicación de PeopleSoft utiliza filas con fecha efectiva en todo el historial de mantenimiento del sistema. Esto permite el procesamiento basado en ciertas fechas. Las filas con fecha futura se pueden ingresar por adelantado y no afectan la forma en que se procesan los datos en la fecha actual. El historial se puede recuperar en base a ciertas fechas para fines de auditoría. Al recuperar estos registros para los informes, deseará seleccionar solo la fila más actual para el período de tiempo para el que está informando. La tabla PS_JOB se utiliza para almacenar datos de trabajo para los empleados. El siguiente ejemplo le mostrará cómo obtener la fila de trabajo actual. Begin-Select A.EMPLID A.NAME &NAME B.JOBCODE &JOBCDE Do Get-Job-Desc FROM PS_PERSONAL_DATA A, PS_JOB B WHERE A.EMPLID = B.EMPLID AND B.EFFDT = (SELECT MAX(EFFDT) FROM PS_JOB B1 WHERE B.EMPLID = B1.EMPLID AND B.EMPL_RCD = B1.EMPL_RCD AND B1.EFFDT