Procesos PeopleSoft Qualsys Consulting S.C.
Arianna Valencia Erika Santamaría José Enríquez Francisco Hernández
Octubre, 2008
Procesos PeopleSoft
Índice Procesos PeopleSoft
7
PeopleSoft PeopleCode
7
2|
Vista general de PeopleCode
7
Estructura del lenguaje PeopleCode
7
Tipo de datos Tipos de datos convencionales Consideraciones para los tipos Float, Integer y Number Tipos de datos Tipos API Object
7 7 8 8 10
Comentarios
10
Sentencias Separadores Sentencias de asignación Asignación por valor Asignación por referencia
11 12 12 12 12
Construcciones del lenguaje Funciones como subrutinas
13 13
Sentencias de control Sentencias If, Then y Else Sentencia Evaluate Sentencia For
14 14 14 15
Ciclos condicionales Sentencia Repeat Sentencia While
16 16 16
Funciones Funciones soportadas Definición de funciones Declaración de funciones Llamado de funciones: Valores regresados por funciones Conflictos al nombrar funciones
16 16 17 17 17 18 19
Expresiones Expresiones fundamentales Constantes Constantes numéricas Constantes string Constantes booleanas Constantes nulas Constantes definidas por el usuario Funciones como expresiones Variables del sistema
19 19 20 20 20 20 21 21 21 21 Qualsys Consulting S.C
Procesos PeopleSoft
Índice Procesos PeopleSoft
7
PeopleSoft PeopleCode
7
2|
Vista general de PeopleCode
7
Estructura del lenguaje PeopleCode
7
Tipo de datos Tipos de datos convencionales Consideraciones para los tipos Float, Integer y Number Tipos de datos Tipos API Object
7 7 8 8 10
Comentarios
10
Sentencias Separadores Sentencias de asignación Asignación por valor Asignación por referencia
11 12 12 12 12
Construcciones del lenguaje Funciones como subrutinas
13 13
Sentencias de control Sentencias If, Then y Else Sentencia Evaluate Sentencia For
14 14 14 15
Ciclos condicionales Sentencia Repeat Sentencia While
16 16 16
Funciones Funciones soportadas Definición de funciones Declaración de funciones Llamado de funciones: Valores regresados por funciones Conflictos al nombrar funciones
16 16 17 17 17 18 19
Expresiones Expresiones fundamentales Constantes Constantes numéricas Constantes string Constantes booleanas Constantes nulas Constantes definidas por el usuario Funciones como expresiones Variables del sistema
19 19 20 20 20 20 21 21 21 21 Qualsys Consulting S.C
Procesos PeopleSoft Metastring Referencias del campo de registro Sintaxis de la referencia del campo del registro
21 22 22
Variables Tipos de variables soportadas Variables definidas por el usuario Declaración de variables Inicialización de variables definidas por el usuario
23 23 23 24 25
Operadores Operadores matemáticos Operadores de fecha y hora Concatenación de cadenas Operador @ Operadores de comparación Operadores booleanos
25 25 26 26 27 27 28
Eventos en PeopleCode Evento Activate Evento FieldChange Evento FieldDefault Evento FieldEdit Evento FieldFormula Evento ItemSelected Evento PosBuild Evento PreBuild Evento PrePopup Evento RowDelete Evento RowInit Evento RowInsert Evento RowSelect Evento SaveEdit Evento SavePostChange Evento SavePreChange Campo ChartField
29 29 29 29 30 30 30 30 31 31 31 31 31 31 32 32 33 33
PeopleSoft Application Engine
34
Entendiendo PeopleSoft Application Engine Fundamentos de PeopleSoft Application Engine Meta-SQL Elementos del programa de Application Engine. Secciones Pasos Acción Acciones Do SQL PeopleCode Log Message Call Section State Records 3|
34 34 35 35 35 36 36 36 36 37 37 37 37 Qualsys Consulting S.C
Procesos PeopleSoft Tipos de programas del Application Engine Daemon Program Transform Program
4|
37 38 38
Creando programas de Application Engine Visualizando programas de Application Engine Utilizando vista Definition Definición de la vista Pop-up Menu Utilizando la vista Program Flow Menú pop-up del Program Flow Cambiando éntre las vistas Definition y Program Flow Cambiando dentro de la vista Program Flow Utilizando la opción actualizar Filtrando el contenido de la vista Comportamiento de las opciones de la sección de filtrado Creando, abriendo y renombrando los programas. Creando nuevos programas Abriendo programas existentes Renombrando programas Copiando o moviendo elementos del programa Probando programas de Application Engine Configurando las propiedades del programa Accediendo a las propiedades Configuración las propiedades generales Configurando las propiedades del registro de estado Especificando las tablas temporales Configurando propiedades avanzadas Agregando secciones Sección de orden de ejecución Insertando secciones Localizando las secciones. Buscando las llamadas a las secciones de referencia Buscando secciones en el programa actual Configurando las propiedades de las sección Agregando pasos Insertando pasos Configurando las propiedades de los pasos Especificando las acciones Entendiendo las acciones Acción orden de ejecución Insertando acciones Configurando las propiedades de la acción
38 38 38 39 41 42 42 43 43 44 44 46 46 46 46 47 47 48 48 48 49 50 51 52 53 53 53 53 54 54 55 55 56 57 57 57 58 59
Gestionando los programas de Application Engine Ejecutando programas de Application Engine Entendiendo las opciones de ejecución de un programa Programas batch utilizando PeopleSoft Process Scheduler Programas en línea utilizando PeopleCode Programas manuales utilizando la línea de comando Creando las definiciones del proceso Listando los parámetros del proceso de definición
59 59 59 60 60 60 60 61
Qualsys Consulting S.C
Procesos PeopleSoft Empezando programas con la página Application Engine Process Request Tablas utilizadas en la página Process Request. Requisitos de Application Engine Utilizando el PeopleCode para invocar programas del Application Engine Utilizando la línea de comandos para invocar programas Application Engine Opciones de la línea de comando Depurando los programas de Application Engine Activando el depurador de PeopleSoft Application Engine Definiendo las opciones de depuración Tips de depuración Opciones de depuración Restaurando los programas Application Engine Determinando cuando utilizar la restauración Utilizando la restauración a nivel de programa Utilizando la restauración en el nivel de sección Utilizando la restauración en el nivel de pasos Controlando las terminaciones anormales Restaurando los programas del Application Engine Restaurando desde la línea de comando Restaurando desde la página Process Request Empezando los programas de Application Engine desde el principio Habilitando y deshabilitando la restauración PeopleSoft Component Interface
5|
62 62 63 64 65 66 68 68 69 69 69 70 71 71 72 72 73 73 73 74 74 75 76
Iniciando con PeopleSoft Component Interface
76
Introducción al Component Interface Comprendiendo el Component Interface Arquitectura del Component Interface Atributos del Component Interface Definiciones y vistas del Component Interface Iconos del Component Interface Columnas del Component Interface
76 76 77 77 78 79 80
Desarrando un Component Interface Creando la definición del Component Interface Creando un nuevo Component Interface Asociando un Component Interface con un menú Determinando cuales campos exponer Utilizando llaves Agregando y borrando llaves Propiedades de configuración Propiedades estándar Creando propiedades definidas por el usuario Eliminación de propiedades Renombrar las propiedades definidas por el usuario Creando las propiedades de referencia Creando las propiedades de sólo lectura Trabajando con colecciones Trabajando con métodos Trabajando con funciones y métodos de sesión.
80 81 81 82 83 83 83 84 84 87 88 88 89 90 90 91 91
Qualsys Consulting S.C
Procesos PeopleSoft Funciones de sesión del Component Interface. Métodos de sesión del Component Interface Métodos estándar Habilitar y deshabilitar métodos estándar Creando métodos definidos por el usuario Validación de un Component Interface Configurando las opciones de seguridad Probando el Component Interface Búsqueda de un Component Interface Obtención de registros existentes utilizando llaves parciales Prueba del Component Interface Prueba de las propiedades de Component Interface Prueba de los métodos de Component Interface Probando los métodos de colección Reglas del método de colección Determinando los parámetros ItemByKeys Entendiendo la sincronización Consideraciones del tiempo de ejecución Consideraciones generales Conflictos de ámbito Programación de un Component Interface en PeopleCode Generando una plantilla de PeopleCode Entendiendo la plantilla de PeopleCode Notas de las plantillas de PeopleCode
91 91 91 93 93 94 95 96 96 97 98 98 99 99 99 100 101 102 102 102 102 104 104 105
Glosario
107
Bibliografía
108
6|
Qualsys Consulting S.C
Procesos PeopleSoft
Procesos PeopleSoft PeopleSoft PeopleCode PeopleCode es el lenguaje utilizado por las aplicaciones de PeopleSoft. Este tema proporciona una visión general de PeopleCode y muestra como crear programas en PeopleCode. También proporciona información que se debe considerar antes de empezar a utilizar PeopleCode.
Vista general de PeopleCode Esta sección proporciona la información conceptual disponible acerca de PeopleCode. Como son la descripción de funciones, métodos y propiedades entre otros. PeopleCode es similar a otros lenguajes de programación. Sin embargo, en algunos aspectos es especial para el lenguaje y entorno de PeopleTools. PeopleCode es un lenguaje orientado a objetos.
Estructura del lenguaje PeopleCode Esta sección asume que esta familiarizado con los lenguajes de programación, como C, Visual Basic o Java. En esencia, la sintaxis de PeopleCode es similar a otros lenguajes de programación. Sin embargo algunos aspectos de PeopleCode, son específicos para el entorno de PeopleTools. Por ejemplo, la definición de referencias, que permiten hacer referencia a las definiciones de PeopleTools, así como a registro o páginas. Otra característica del lenguaje, son los tipos de datos y Metastrings que reflejan la estrecha relación que existe entre PeopleTools y SQL. Las clases y métodos en PeopleCode son similares a otros lenguajes orientados a objetos, como java.
Tipo de datos Los tipos de datos convencionales incluyen, números, fechas, caracteres. Utilizados en la programación básica. Tipos de Objetos de datos, instancias de objetos para las clases de PeopleTools.
Tipos de datos convencionales PeopleCode incluye estos tipos de datos convencionales: 7|
Qualsys Consulting S.C
Procesos PeopleSoft Any Boolean Date DateTime Float Integer Number Object String Time
Consideraciones para los tipos Float, Integer y Number El tipo Integer es un número complementario de 32 bits con signo, por lo que el rango es de -2,147,438,648 a 2,147,438,648. El tipo Float binario es un número de doble precisión. No es apropiado para cálculos exactos de fracciones, en particular, cálculos que involucren dinero. Por ejemplo, un décimo (1/10 o .1), no puede ser representado exactamente en un Float binario de doble precisión, la suma de flotantes binarios de doble precisión de .10 + .10, no es igual a 20.
Tipos de datos Para la mayoría de las clases en PeopleTools, se necesita un tipo de datos correspondiente a las instancias de objetos. PeopleCode incluye este tipo de datos para acceso al buffer: Field Record Row Rowset PeopleCode incluye estos tipos de datos para la pantalla: AnalyticGrid 8|
Qualsys Consulting S.C
Procesos PeopleSoft Char Gray GridColumn Page PeopleCode incluye estos tipos de datos para Internet script: Cookie Request Response PeopleCode incluye estos tipos de datos extras: AESection AnalyticInstance Array Crypt Execption File Interlink BIDocs JavaObject Message MCFIMInfo OptEngine PostReport ProcessRequest RowsetCahce SoapDoc 9|
Qualsys Consulting S.C
Procesos PeopleSoft SQL SyncServer TransformData XmlDoc XmlNode
Tipos API Object Utilice este tipo de datos para cualquier ApiObject, como un Object Session, un Object Tree, un Component Interface, un Registry Portal, entre otros. Los siguientes tipos de datos ApiObject pueden declararse como Globales: Session PSMessages Collection PSMessages Todos las clases Tree Todas las clases query
Comentarios Utilice los comentarios para explicar, preferentemente en un lenguaje comprensible para cualquiera que lea su programa sepa que hace su código. Los comentarios hacen posible diferencia entre el PeopleCode que le entregan y los cambios que haga. Esto es útil para la búsqueda de errores y actualizaciones. Las siguientes son algunas maneras de insertar comentarios en PeopleCode: Puede encerrar comentarios empezando con / * y finalizando con */ También puede utiliza REM (remark) para establecer que es un comentario Puede encerrar el texto a comentar entre <* al inicio y *> al final El siguiente código muestra los formatos para hacer comentarios:
10 |
Qualsys Consulting S.C
Procesos PeopleSoft Ejemplo: <* this program is no longer valid commenting out entire thing REM This is an example of commenting PeopleCode; /* ----- Logic for Compensation Change ----- */ /* Recalculate compensation change for next row. Next row is based on prior value of EFFDT. */ calc_next_compchg(&OLDDT, EFFSEQ, 0); /* Recalculate compensation change for current row and next row. Next row is based on new value of EFFDT. */ calc_comp_change(EFFDT, EFFSEQ, COMP_FREQUENCY, COMPRATE, CHANGE_AMT, CHANGE_PCT); calc_next_compchg(EFFDT, EFFSEQ, 0); *>
Sentencias Una sentencia puede ser una declaración, una asignación, la construcción de programas o una llamada de subrutinas: Esta sección habla de: Separadores Sentencias de asignaciones Construcciones del lenguaje Sentencias de control Condicionales Loop
11 |
Qualsys Consulting S.C
Procesos PeopleSoft Separadores Las sentencias de PeopleCode generalmente terminan con punto y coma. PeopleCode acepta puntos y comas aun cuando no son requeridos, como después de terminar la última sentencia de un If. Esto permite añadir punto y coma después de cada sentencia. Los espacios extras son ignorados. Pueden ser eliminados por el editor de PeopleCode cuando salva el código.
Sentencias de asignación Las sentencias de asignación son las más básicas de las sentencias en PeopleCode. Consiste en igualar una variable que esta ala izquierda con una expresión a la derecha:
Sintaxis: VariableName = expression; La expresión a la derecha es evaluada, y el resultado es introducido a al variable de la izquierda. Dependiendo del tipo de dato, la asignación se pasa un valor o una referencia.
Asignación por valor En la mayoría de las asignaciones, el resultado de la expresión de la derecha es asignada para la variable como una nueva creación del valor, en nuestra variable almacenada en el área de la memoria. Cambios a la variable no afectan a otros datos.
Asignación por referencia Cuando los dos lados de una sentencia de asignación son variables, el resultado de la asignación no crea una copia del objeto en la memoria y la asigna en la variable. En vez de eso, la variable apunta al objeto en la memoria. Por ejemplo, &AN y &AN2 son arreglos de tipo número. Asignando &AN2 a &AN, no copia &AN2 en &AN. Los dos arreglos apuntan al mismo lugar en la memoria.
12 |
Qualsys Consulting S.C
Procesos PeopleSoft Sintaxis: Local array of number &AN, &AN2; Local number &NUM; &AN = CreateArray (100, 200, 300) &AN2=&AN &NUM=&AN[1] En el código de ejemplo, &AN2 y &AN apuntan al mismo objeto: un arreglo de números.
Construcciones del lenguaje La construcción de lenguaje en PeopleCode incluye: Sentencias de control: If y Evaluate Loops y condicionales Loop: For, Repeat y While Sentencias Break, Continue y Exit para controlar Loops y terminar programas La sentencia Return para regresar a funciones Sentencias de declaración de variables y funciones: Globales, locales y variables de componentes, y declaración de funciones par funciones Sentencias de funciones para definir funciones Sentencias para definir clases Sentencias Try, Match y Throw para capturar errores.
Funciones como subrutinas PeopleCode, como C, no tienen subrutinas como generalmente nos referimos a ellas. Las subrutinas de PeopleCode son un subconjunto de las funciones de PeopleCode y solo están definidas para no regresar valores o regresar valores opcionales. Llamar una subrutina es lo mismo que llamar una función que no regresa valores.
Sintaxis: function_name(param_list);
13 |
Qualsys Consulting S.C
Procesos PeopleSoft
Sentencias de control Las sentencias de control controlan el flujo del programa basándose en evaluar expresiones condicionales.
Sentencias If, Then y Else Sintaxis: If condición Then [Lista de sentencias1] Else [Lista de sentencias2] End-If; Esta sentencia evalúa la expresión condición. Si la condición es verdadera, la sentencia If ejecuta la lista de sentencias1. Si la condición es falsa, entonces el programa ejecuta las sentencias en la cláusula Else; si no hay cláusula Else, el programa continúa con la siguiente sentencia.
Sentencia Evaluate Utilice la sentencia Evaluate para evaluar varias condiciones.
Sintaxis: Evaluate left_term When [relop_1] right_term_1 [Lista de sentencias] . . . When [relopn1] right_term_n [Lista de sentencias] When-other [Lista de sentencias]
14 |
Qualsys Consulting S.C
Procesos PeopleSoft End-evaluate; La sentencia Evaluate toma una expresión, left_term, y lo compara con la expresión compatible right_term_1 utilizando el operador relacional (relop) en una secuencia de clausulas When. Si relop se omite, entonces se asume una igualdad de signos. Si el resultado de la comparación es TRUE, el programa ejecuta las sentencias de la clausula When, entonces se mueve para comparar la siguiente cláusula When. El programa ejecuta las sentencia en todas la clausulas When en las cuales la comparación resulte TRUE, si ninguna de las comparaciones resulta en TRUE el programa ejecuta la sentencias de la cláusula When-other, el siguiente ejemplo de Evaluate ejecuta solo las sentencias de la primera cláusula When.
Ejemplo: evaluate &USE_FREQUENCY when = "never" PROD_USE_FREQ = 0; when = "sometimes" PROD_USE_FREQ = 1; when = "frequently" PROD_USE_FREQ = 2; when-other Error "Unexpected value assigned to &USE_FREQUENCY." end-evaluate;
Sentencia For La sentencia For repite una secuencia de sentencias un específico número de veces.
Sintaxis: For count = expresion1 to expresion2 [Step i]; [Lista de sentencias] End-for; 15 |
Qualsys Consulting S.C
Procesos PeopleSoft La sentencia For inicializa el valor de count con expresion1 entonces incrementa count con cada i veces después de ejecutar las sentencias en lista de sentencias. El programa continúa el ciclo hasta que count es igual a expresion2, si la cláusula Step se omite, entonces i se iguala a uno. Para contar hacia atrás desde un valor mas alto a uno más pequeño, se utiliza un valor negativo para i. Puede salirse de un ciclo For utilizando una sentencia Break.
Ciclos condicionales Los ciclos condicionales, Repeat y While, repiten una secuencia de sentencias, evaluando una expresión condicional cada vez que pasan el ciclo. El ciclo termina cuando la condición a evaluar es verdadera. Puede salir de un ciclo utilizando la sentencia Brear. Si la sentencia Break esta en un ciclo dentro de otro ciclo, el Break aplica solo a al ciclo interno.
Sentencia Repeat Sintaxis: Repeat [Lista de sentencias] Until expresión_logica; La sentencia Repeat ejecuta las sentencias una vez, entonces evalúa la expresión lógica. Si la expresión lógica es falsa, la secuencia de sentencias se repite hasta que la sentencia sea verdadera.
Sentencia While Sintaxis: While expresión_logica [Lista de sentencias] End-while;; La sentencia While evalúa la expresión lógica antes de ejecutar la lista de sentencias. Continua repitiendo la lista de sentencias hasta que la expresión lógica resulte falsa.
Funciones Funciones soportadas PeopleCode soporta los siguientes tipos de funciones: 16 |
Qualsys Consulting S.C
Procesos PeopleSoft Built-in: La función estándar para PeopleCode. Esta puede ser llamada sin declarar el Begin Internal: Funciones que ya están definidas en un programa de PeopleCode en el cual son llamadas External PeopleCode: las funciones de PeopleCode definidas fuera del programa que las llama. Generalmente están en la definición de Registros que funcionan como librerías. External non-PeopleCode: (librerías de C)
funciones almacenadas en librerías externas
Adicionalmente PeopleCode soporta métodos. Las principales diferencias entre una función built-in y el método son: Una función built-in, en su código, se llama a si mismo y generalmente no depende de ningún otro. Un método puede se ejecutado solo por un objeto
Definición de funciones Las funciones en PeopleCode pueden ser definidas en cualquier programa de PeopleCode. La definiciones deben ponerse al principio del programa, junto con cualquier variable externa y declaraciones de funciones externas. Por convención, los programas de PeopleCode se almacenan en registros cuyos nombre empiecen con FUNCLIB_, y siempre se adjuntan a un evento FieldFormula.
Declaración de funciones Si llama una función externa desde un programa de PeopleCode, debe declarar la función al principio del programa. La sintaxis de la declaración de funciones varia, dependiendo de si la función externa se escrita en PeopleCode o compilada en una librería dinámica. El siguiente es un ejemplo de la declaración de una función en otro registro a FUNCLIB.
Ejemplo: Declare Funtion UpdatePSLOCK PeopleCode FUNCLIB_NODES.MSGNODENAME FieldFormula
Llamado de funciones:
17 |
Qualsys Consulting S.C
Procesos PeopleSoft Sintaxis: Function_name (lista_parametros) La lista de parámetros, es una lista de expresiones, separadas por comas, que la función espera le suministre. Los parámetros de la lista pueden ser opcionales o requeridos. Puede verificar los parámetros de los valores que pasa a la función al momento de ejecución en la ventana Parameter del debugger de PeopleCode. Si el valor regresado es requerido, entonces la función debe llamarse como una expresión.
Ejemplo: &RESULT = Product (&RAISE_PERCENT,.01,EMPL_SALARY); Si la función regresa un valor como una opción, puede ser llamada como una subrutina. Si la función no regresa valores, debe se llamada como subrutina.
Ejemplo: WinMessage(64,“I can´t do that,“| &OPER_NICKNAME |”.””); Los parámetros siempre pasan funciones de PeopleCode por referencias internas y externas. Si la función cambia los datos al pasarlos, entonces debe pasar una variable. Los parámetros de la función Built-in pueden pasar por referencia o por valor, dependiendo de la función. Los parámetros de una función externa de C pueden pasar valores o referencias, dependiendo de la declaración y del tipo.
Valores regresados por funciones Las funciones pueden regresar valores de cualquier tipo de dato que soporten; algunas funciones no regresan ningún valor. La opción de regresar valores ocurre solo en funciones Built-in. No puede definir una función opcionalmente regrese un valor. El regreso opcional de valores es típico en las funciones que regresan un valor bolean indicando si la ejecución tuvo éxito. Por ejemplo, la siguiente llamada para DeleteRow ignora el valor de regreso y corra la fila.
Ejemplo: DeleteRow (RECORD.BUS_EXPENSE_PER,&L1_ROW,RECOD:BUS_EXPENSE_DTL,&L2_ROW);
18 |
Qualsys Consulting S.C
Procesos PeopleSoft El siguiente ejemplo verifica el valor regresado y muestra un mensaje diciendo que ha sucedido.
Elemplo: If DeleteRow (RECORD.BUS_EXPENSE_PER, &L1_ROW, RECOD:BUS_EXPENSE_DTL, &L2_ROW) then WinMessage (“RowDelete”); Else WinMessage (”Sorry---couldn´t delete that row”); End-if
Conflictos al nombrar funciones Si define una función con el mismo nombre de una función built-in, la función que definió toma preferencia sobre la función Built-in. En cualquier momento que compile el PeopleCode en el editor de PeopleCode, un mensaje de advertencia aparece en la pestaña de validación, indicando que el usuario definió una función con el mismo nombre de una función existente. También, si selecciona Compile All PeopleCode, un mensaje de error es generado en el archivo log por cada función que el usuario defina con el mismo nombre de una función existente. El siguiente es un ejemplo de un mensaje de error: “User defined funtion IsNumber is overrriding the builtin funtion of the same name. (2,98)”
Expresiones Expresiones fundamentales Evalúa expresiones para los valores de los tipos de datos de PeopleCode. Una simple expresión de PeopleCode puede consistir en una constante, una variable temporal, una variable de sistema, una referencia a un registro o la llamada de una función. Una simple expresión puede modificarse por operadores (como un signo negativo o la expresión lógica NOT) o combinando expresiones utilizando operadores binario (como un signo plus u operador lógico AND) El verificador de nombres compara la cadena del nombre con las definiciones existentes en PeopleTools, como registros o paginas.
19 |
Qualsys Consulting S.C
Procesos PeopleSoft Metastrings (también llamados meta-SQL) son expresiones especiales utilizadas como cadenas literales de SQL. En tiempo de ejecución, el metastring se expande apropiadamente dentro del SQL.
Constantes PeopleCode soporta constantes numéricas, string y boolean, como constantes definidas por el usuario. También soportan la constante Null, el cual indica que un objeto que no hace referencia a un objeto valido.
Constantes numéricas Constantes numéricas pueden ser cualquier número. Como por ejemplo: 7 0.8725 -172.324
Constantes string Las constantes string pueden delimitarse utilizando la coma simple („) o al doble coma (“). Si la comas forman parte de la cadena, la cadena puede encerrase dentro de otro tipo de delimitador. Como una alternativa, puede incluir dos veces el delimitador. Los siguientes son algunos ejemplos: “Esta es una constante string „También esta‟ ´Ella dijo, “esta es una constante string”´ “Ella dijo, “esta es una constante string””
Utilice el siguiente código para incluir literalmente comas dentro de un string.
Ejemplo: &cDblQoute =´”´; /*coma simple comas dobles coma simple*/
Constantes booleanas Las constantes booleanas representan un valor verdadero. Solo hay dos posibilidades True y False.
20 |
Qualsys Consulting S.C
Procesos PeopleSoft Constantes nulas Las constantes nulas representan un objeto que hace referencia a un objeto no valido. Esto significa que llama un método o un objeto o trata de obtener o establecer propiedades que no existen. La constante nula es la palabra null.
Constantes definidas por el usuario El usuario puede definir constantes al inicio de un programa en PeopleCode. Puede utilizar la declaración de constantes donde desee almacenar el valor. Las constantes pueden definirse como valores number, string o boolean. El usuario al definir constates solo pueden declararse locales El siguiente es un ejemplo de la declaración de constantes por parte del usuario.
Ejemplo: Constant &Stara_New_Instance = Trae; Constant &Display_Mode = 0; Constant &AddMode = “A”: Local Field &Start_date; ……. MyFunction (&Start_New_Instance, &Display_Mode, &Add_Mode);
Funciones como expresiones Puede utilizar cualquier función que regrese un valor o una expresión. La función puede ser utilizada del lado derecho de una sentencia, pasar como un parámetro a otra función o combinarse con otra expresión para formar una expresión compuesta.
Variables del sistema Las variables del sistema están precedidas del símbolo de porcentaje (%). Utilice estas variables para obtener la fecha actual u obtener información del usuario, el lenguaje actual, el registro actual, página, componente o más.
Metastring Los metastring son expresiones especiales de SQL. Los metastring, también llamados meta-SQL, están precedidos del símbolo porcentaje (%) y pueden incluirse
21 |
Qualsys Consulting S.C
Procesos PeopleSoft directamente en cadenas. Se expanden al momento de ejecutarse dentro de una subcadena para la actual base de datos. Los metastring son utilizados en: SQLExec En la construcción de vistas dinámicas en PeopleSoft Application Designer Con Objetos SQL En PeopleSoft Application Engine Con algunos métodos de clases Con COBOL
Referencias del campo de registro Utilice las referencias del campo del registro para recuperar valores almacenados en un campo de tabla o para asignar un valor a un campo del registro.
Sintaxis de la referencia del campo del registro Para hacer referencia a un campo de un registro siga la siguiente forma.
Sintaxis: [recordname.]fieldname Debe poner el recordname solo si el campo y su programa PeopleCode están en diferentes registros Por ejemplo, supongamos que en la base de datos para veterinarios tiene dos registros PET_OWNER y PET. Un programa en el registro PET_OWNER debe hacer referencia a PET_BREED que esta en el registro PET, entonces la definición del registro será PET.PET_BREED. De cualquier manera, un programa en el registro PET puede hacer referencia a el mismo registro directamente a PET_BREED. Si el programa esta en el mismo campo del registro PET_BREED, puede hacer referencia a este mismo campo utilizando el símbolo caret (^).
22 |
Qualsys Consulting S.C
Procesos PeopleSoft
Variables Tipos de variables soportadas PeopleCode Soporta este tipo de variables:
Concepto
Característica
Variables definidas por el usuario
El nombre de estas variables deben estar precedidos por el símbolo &. Los nombres de las variables pueden tener de 1 a 1000 caracteres, de A-Z y a-z, números de 0-9 y caracteres #,@,$ y _.
Variables del sistema
Las variables del sistema proporcionan acceso a la información del sistema. Estas variables tienen el prefijo % en vez del &, utilice estas variables siempre que use una constante, pasándolo como parámetro a funciones o asignando su valor a campos o variables temporales
Variables definidas por el usuario Las variables definidas por el usuario pueden mantener la información de un campo de registro, para programar claramente un código. Por ejemplo, puede darle a una variable un nombre más descriptivo que a un campo, basándose en el contexto del programa. Si el campo es de otro registro, puede asignarle una variable temporal en lugar de utilizar la referencia al campo. Esto hace más fácil la programación y más fácil de leer. Declaración y alcance de las variables definidas por el usuario La diferencia entre las declaraciones de variables consiste en el periodo de vida: Global: esta variable es valida para toda la sesión Component: la variable es valida mientras cualquier página en el componente donde la variable fue definida se mantenga activa. Local: la variable es valida durante el programa de PeopleCode o función en la cual la variable fue definida. Puede declarar variables utilizando sentencias Global, Local o Componente, o puede utilizar las variables locales sin declararlas.
23 |
Qualsys Consulting S.C
Procesos PeopleSoft Ejemplo: Local Number &AGE; Global String &OPER_NICKNAME; Component Rowset &MY_ROWSET; Local Any &SOME_FIELD; Local ApiObjet &MYTREE; Local Boolean &Compare = True; La declaración de variables se hace normalmente en la parte superior del programa en PeopleCode. La excepción es la declaración de variables Locales, las cuales se pueden utilizar en una función o en el cuerpo del programa. Si una variable es declarada cono tipo ANY o si una variable no es declarada, PeopleTools utiliza un apropiado tipo de datos basándose en el contexto Las variables globales pueden ser acezadas desde diferentes componentes y aplicaciones, incluyendo un programa Application Engine. Una variable global debe ser declarada en cada programa en que es utilizada. Utilice las variables globales lo menos posible debido a que es difícil su mantenimiento. Las variables Globales están disponibles para un portal o aplicación con bases de datos diferentes.
Declaración de variables Declare las variables antes de utilizarlas. Si no declara una variable, es declarada automáticamente con el tipo de dato Any. Recibe un mensaje de advertencia en la pestaña de validación del PeopleSoft Application Designer por cada variable que no este declarada cuando salve su programa PeopleCode.
Si declara todas las variables, puede utilizar estos valores para asegurar que no tiene errores ortográficos. Por ejemplo, si declara una variable como &END_DATE, y
24 |
Qualsys Consulting S.C
Procesos PeopleSoft accidentalmente escribe &EDN_DATE, la “nueva” variable aparece en la pestañas
cuando guarde el programa.
Inicialización de variables definidas por el usuario Para declarar e inicializar variables en un paso, utilice el siguiente formato.
Ejemplo: Local String &MyString = “New”; Local Date &MyDate= %Date; Esto esta disponible solo para variables de alcance Local. Aunque puede declarar más de una variable en una sola línea, puede inicializar solo una variable por línea. El siguiente código crea un error de sintaxis cuando trata de salvar el programa.
Ejemplo: Local Number &N1,&N2 = 5; No puede declarar una variable, después inicializar en una segunda sentencia otra. El siguiente código produce un error cuando trata de salvar el programa, por duplicar una declaración.
Ejemplo: Global Number &N1; …. Local Stringr &N1 = “String”; Si no inicializa las variables, cuando las declara o antes de utilizarlas, las variables tipo String son inicializadas con Null, date y times con Null, y Number con cero.
Operadores Las expresiones en PeopleCode piden modificarse y combinarse utilizando operadores matemáticos, de caracter, comparación y booleanos.
Operadores matemáticos Los operadores estándar utilizado son:
25 |
Qualsys Consulting S.C
Procesos PeopleSoft Símbolo
Acción
+
Mas
-
Menos
*
Multiplicación
/
División
**
Potencia
Operadores de fecha y hora Puede agregar o restar dos fechas o dos valores de horas, lo que proporciona como resultado un número. En el caso de las fechas, el número representa la diferencia entre las dos fechas en días. Y en el caso de las horas, el número representa la diferencia en segundos. Puede también sumar y restar números a una hora o una fecha, y el resultado será otra hora u otra fecha. En el caso de los días, el número representa los días y en el caso de las horas representa los segundos.
Operación
Resultado
El resultado representa
Hora + numero de segundos
Tiempo
Horas
Fecha + numero de días
Fecha
Fecha
Fecha – Fecha
Número
Diferencia en días
Hora – Hora
Número
Diferencia en segundos
Fecha + Hora
FechaHora
Fecha y Hora combinados
Concatenación de cadenas Las concatenación de cadena se hace con el operador (|). Por ejemplo, asumiendo que &OPER_NICKNAME es David, y que la variable &RETORT debe decir “No puedo hacer eso Davis”:
Ejemplo: Global Number &N1; &RETORT = “I can´t do that, ”| &OPER_NICKNAME | “.”;
26 |
Qualsys Consulting S.C
Procesos PeopleSoft El operador de concatenación automáticamente convierte el operador a string. Esto hace más fácil de escribir sentencias que muestren diferentes tipos de datos.
Ejemplo: &DAYS_LEFT = &CHRISTMAS - %Date; WinMessage (“Today is “ | %Date | “. Only “ | &DAYS_LEFT | “ shopping days left ! “);
Operador @ El operador @ convierte una cadena almacenándola en una referencia dentro de una definición. Esto es útil, por ejemplo, si desea almacenar referencias en la base de datos como cadenas y recuperarlas utilizando PeopleCode, o si desea obtener una referencia en forma de una cadena. Tomemos un ejemplo sencillo, si el campo EMPLID actualmente es 8001, la siguiente expresión evalúa a 8001.
Ejemplo: @”EMPLID” El siguiente ejemplo explica el uso del operador @ para convertir una cadena almacenándola en un registro y un campo.
Ejemplo: &STR1 = “RECORD.BUS_EXPENSE_PER”; &STR2 = “BUS_EMPENSE_DTL.EMPLID”; &STR3 = FerchValue(@(&STR1), CurrentRowNumber (1), @(&STR2),1); WinMessage (&STR3, 64);
Operadores de comparación Los operadores de comparación, comparan dos expresiones del mismo tipo de datos. El resultado de la comparación es un valor booleano. La siguiente tabla resume estos operadores.
Operador =
27 |
Significado Igual
Qualsys Consulting S.C
Procesos PeopleSoft Operador
Significado
!=
Diferente
<>
Diferente
<
Menor que
<=
Menor o igual
>
Mayor
>=
Mayor o igual
Puede agregar al inicio de cualquier operador el operador NOT, por ejemplo: Not= Not< Not>=
Operadores booleanos Los operadores lógicos AND, OR y NOT son utilizados para combinar expresiones Booleanas. La siguiente tabla muestra el resultado de combinar dos expresiones booleanas con los operadores AND y OR.
Expresión 1
Operador
Expresión 2
Resultado
FALSE
AND
FALSE
FALSE
FALSE
AND
TRUE
FALSE
TRUE
AND
TRUE
TRUE
FALSE
OR
FALSE
FALSE
FALSE
OR
TRUE
TRUE
TRUE
OR
TRUE
TRUE
El operador NOT niega la expresión bolean, cambiando el valor de True a Falso y de False a True. El siguiente ejemplo de sentencias contiene expresiones booleanas.
28 |
Qualsys Consulting S.C
Procesos PeopleSoft Ejemplo: &FLAG = (Not (&FLAG)); If ((&HAS_FLEAS or &HAS_TICKS) and SOAP_QTY <= MIN_SOAP_QTY) then SOAP_QTY = SOAP_QTY + OrderFleaSoap (SOAP_ORDER_QTY); End-if;
Eventos en PeopleCode Evento Activate El evento actívate actívate es iniciado cada vez que se activa una página, inclusive cuando una página es mostrada al usuario por primera vez, o si el usuario presiona TAB entre las diferentes paginas en un componente. Cada página activa su propio evento. Solo se puede activar PeopleCode asociándolo con páginas
Evento FieldChange Utilice FieldChange PeopleCode para re-calcular los valores de los campos en la pagina, cambiar la apariencia de la pagina de control. Para validar el contenido de un campo, utilice el evento FieldEdit. El evento FieldChange se aplica al campo o fila que acaba de cambiar. FieldChange PeopleCode se acompaña de RowInit PeopleCode. En esta combinación RowInit/FieldChange, el código en RowInit evalúa los valores en el componente e inicializa su estado o los controles de la página. FIeldChange vuelve a evaluar los valores en el componente al momento de la ejecución y resetea los valores o las páginas.
Evento FieldDefault El evento FieldDefault PeopleCode permite programar los valores por default para los campos cuando se van a mostrar. Este evento se inicia en todos los campos como parte de diferentes procesos, sin embargo, los triggers de PeopleCode se disparan cuando las siguientes condiciones son verdaderas: Los campos de la página continúan en blanco después de aplicar cualquier valor especificado en las propiedades del registro. El campo tiene un programa PeopleCode para FieldDefault 29 |
Qualsys Consulting S.C
Procesos PeopleSoft En la práctica, el PeopleCode para FieldDefault normalmente configura los campos por default cuando nuevos datos se agregan al componente, esto es, en modo de agregar y cuando una nueva fila es insertada. Si el valor de un campo es cambiado, ya sea a través de PeopleCode o por el usuario, la propiedad IsChange para la filase pone en verdadero. La excepción a esto en cuando un cambio esta hecho con los eventos FieldDefautl o FieldFormula. Si un valor se configura en FieldDefault o FieldFormula, la fila no se marca como cambiada. Al guardar, las nuevas inserciones y cambios a filas se escriben en la base de datos. Las nuevas inserciones
Evento FieldEdit Use el evento FieldEdit para validar el contenido de un campo. Si el dato no pasa la validación el programa PeopleCode debe mostrar un mensaje de error, el cual vuelve a mostrar la página, mostrando el mensaje de error y poniendo el campo en rojo. Para permitir al usuario editar un campo pero alertarlo de la posibilidad de un error, use una sentencia de advertencia o de error. Una sentencia de advertencia muestra una ventana de advertencia con un botón OK y explicación. Esto permite que el contenido del campo pueda ser cambiado y continuar el proceso como normalmente sucede.
Evento FieldFormula El evento FieldFormula normalmente no es utilizado. Porque FieldFormula PeopleCode inicia de diferentes maneras y lanza PeopleCode en cada campo o cada fila en el buffer del componente, y puede degradar el desempeño de la aplicación. Use RowInit y FieldChange en lugar de evento FieldFormula.
Evento ItemSelected El evento ItemSelected es iniciado donde sea que el usuario seleccione un elemento de un menú. En menús emergentes, ItemSelected PeopleCode se ejecuta en el contexto de la página donde se encuentra el menú, lo que significa que puede tener un menú diferente por cada página. ItemSelected PeopleCode esta asociado solo con los menús emergentes.
Evento PosBuild El evento PostBuild es asociado después de construir todos los eventos del componente. Este evento normalmente utilizado para mostrar u ocultar páginas. También es utilizado para configurar las variables del componente. PeopleCode PostBuild esta asociado solo con los componentes 30 |
Qualsys Consulting S.C
Procesos PeopleSoft Evento PreBuild El evento PreBuild es iniciado antes del resto de los eventos Built del componente. Este evento se utiliza para esconder o mostrar páginas. También es utilizado para configurar las variables del componente. También use el evento PreBuild para validar la entrada de datos en las páginas de búsqueda.
Evento PrePopup El evento PrePopup es iniciado antes de mostrar un menú emergente. Puede utilizar PeopleCode PrePopup para controlar la apariencia del menú emergente.
Evento RowDelete El evento RowDelete es iniciado cuando el usuario intenta borrar un afila de datos desde un página. Use PeopleCode RowDelete para prevenir la eliminación de una fila o para ejecutar algún proceso después de la eliminación. PeopleCode RowDelete puede ser asociado con campos y registros
Evento RowInit El evento RowInit se inicia por primera vez cuando el Component Processor encuentra una fila de datos. Se utiliza para configurar el estado inicial del control de componentes. Esto ocurre durante el proceso de construcción del componente y la inserción de una fila. Esto ocurre después del método Select o SelectAll. No use sentencias de advertencia o error en el PeopleCode RowInit; esto causa un error de ejecución.
Evento RowInsert Cuando el usuario agrega una fila de datos, el Component Processor genera un evento RowInsert. Debe utilizar PeopleCode RowInsert para procesos especificos para insertar nuevas filas. No ponga PeopleCode en RowInsert si existe RowInint, debido a que el evento RowInit siempre inicia antes del evento RowInsert, lo que causa que el código.se ejecute dos veces.
Evento RowSelect El evento RowSelect se inicia en al principio del proceso de construcción del componente en cualquiera de los modos de acción (Update, Update/Display All,
31 |
Qualsys Consulting S.C
Procesos PeopleSoft Correction). RowSelect se utiliza para filtrar las filas de los datos que se están leyendo en el buffer del componente Una función DiscardRow en RowSelect causa que el Component Processor salte la fila actual y continúe el proceso a otra fila. La sentencia StopFetching causa que el Component Processor acepte la fila de datos y pare la lectura de las filas de datos. Si se ejecutan las dos sentencias, el programa salta la fila actual y entonces detiene la lectura de las demás filas. Rara vez se utiliza el RowSelect, debido a que es ineficiente para filtrar filas que ha seleccionado anteriormente.
Evento SaveEdit El evento SaveEdit se indica cuando un usuario intenta guardar el componente. Puede utilizar el PeopleCode SaveEdit para validar la consistencia de datos en los campos del componente. Siempre que una validación involucre más de una campo en el componente, debe utilizar PeopleCode SaveEdit. Si una validación involucra solo un campo en la página del componente, use PeopleCode FieldEdit. Un error en una sentencia en SaveEdit PeopleCode muestra un mensaje y muestra otra vez el componente sin guardar los datos. Una sentencia de advertencia permite al usuario dar clic en OK y guardar los datos o dar Clic en Cancel y regresar al componente sin guardar los datos. SaveEdit puede asociarse con registros y componentes
Evento SavePostChange Después de que el Component Processor actualiza la base de datos, inicia el evento SavePostChange. Puede utilizar SavePostChange para actualizar las tablas sin utilizar el componente sino la función SQLExec. Un error o advertencia en SavePostChange causa un error de ejecución. Evite los errores y advertencias en este evento. El sistema utiliza la sentencia commit de SQL después de completar exitosamente el evento SavePostChange. Si esta ejecutando Workflow PeopleCode, tenga en cuenta que si el Workflow falla, el evento SavePostChange no sera ejecutado. Si su componente tiene ambos eventos, Workflow y SavePostChange considere cambiar el evento SavePostChange a SavePreChange.
32 |
Qualsys Consulting S.C
Procesos PeopleSoft Evento SavePreChange El evento SavePreChange es iniciado después de que SaveEdit se complete sin errores. SavaPreChange proporciona una oportunidad final para manipular datos antes de que el sistema actualicé la base de datos, para instancias puede utilizar SavePreChange poner en alto nivel las llaves. Si SavePreChange corre satisfactoriamente, un evento Workflow se genera, y el Component Processor utiliza apropiadamente las sentencias SQL Inser, Update o Delete.
Campo ChartField Es un campo que almacena caracteres de cuentas, recursos, y otros, dependiendo de la aplicación PeopleSoft. Los valores ChartField representan números de cuentas individuales, códigos de departamento, y así sucesivamente.
33 |
Qualsys Consulting S.C
Procesos PeopleSoft
PeopleSoft Application Engine PeopleSoft Application Engine es una PeopleTools designada para ayudarle a desarrollar a fondo programas SQL. Esta herramienta esta destinada para ser utilizada por desarrolladores con conocimiento de SQL, SQL tools y PeopleTools. PeopleSoft Application Engine ofrece una alternativa para escribir programas en cobol o SQR para procesamiento afondo de SQL. Mientras PeopleSoft Application Engine no genera, analiza o entiende SQL, si ejecuta el SQL que usted proporcione.
Aplicación
Sección
Sección
Sección
Paso
Paso
Paso
Acción
Acción
Acción
Entendiendo PeopleSoft Application Engine Puede utilizar PeopleSoft Application Engine para desarrollar programas batch o en línea que realizan procesos de altos volúmenes, procesando a fondo sus datos.
Fundamentos de PeopleSoft Application Engine PeopleSoft Application Engine comprende dos componentes distintos, un diseñador donde se define los programas batch y el entorno de ejecución donde se corren y monitorean los programas.
34 |
Qualsys Consulting S.C
Procesos PeopleSoft En PeopleSoft Application Engine, un programa es un conjunto de sentencias SQL y de PeopleCode. Un programa se define en PeopleSoft Application Designer y realiza un proceso de negocio. PeopleSoft Application Engine no genera SQL o PeopleCode. Este ejecuta las sentencias SQL y PeopleCode que se incluye en una acción de Application Engine como parte de su programa. PeopleSoft Application Engine esta diseñado para el procesamiento batch donde usted tiene los datos que deben ser procesados sin intervención del usuario.
Meta-SQL Puede escribir SQL dentro de PeopleSoft Application Engine o puede copiar sentencias SQL en un Application Engine de cualquier utilidad SQL con unos cuantos cambios (si los hubiera). Esto permite escribir y ajustar sentencias SQL antes de tratar de incorporarlos en un programa de Application Engine Las plataformas de las bases de datos pueden tener diferentes reglas de sintaxis especialmente en lo que respecta a la fecha, la hora, y otros cálculos numéricos. Generalmente puede trabajar en torno a las diferencias de sintaxis utilizando PeopleSoft meta-SQL, el cual apoya un PeopleSoft Application Engine. Meta-SQL es un conjunto de condiciones predefinidas diseñado para sustituir RDBMS con una sintaxis común
Elementos del programa de Application Engine. Un programa de Application Engine comprende un conjunto de procesos para ejecutar una tarea dada y esta compuesta de varios elementos claves: Secciones Pasos Acciones Registros de estado.
Secciones Las secciones comprenden uno o más pasos y son equivalentes a un párrafo en COBOL o a un procedimiento en SQR. Todos los programas del Application Engine deben contener al menos una sección Main. Una sección es un conjunto de pasos ordenados que se ejecutan como parte de un programa. Puede llamar a estas secciones (y otros programas) de los pasos dentro de otras secciones.
35 |
Qualsys Consulting S.C
Procesos PeopleSoft Un programa debe contener al menos una sección. La ejecución del programa siempre comienza con la sección definida como Main.
Pasos Los pasos son las unidades más pequeñas de trabajo que pueden ser incluidas dentro de un programa. Aunque puede utilizar un paso para ejecutar un comando de PeopleCode o iniciar un mensaje, normalmente, un paso se utiliza para ejecutar una sentencia SQL o para llamar otras secciones. Cuando una sección es llamada, sus pasos se ejecutan secuencialmente. Cada programa empieza por ejecutar el primer paso de la sección requerida llamada Main y termina después del último paso en la última sección completada correctamente
Acción Hay múltiples tipos de acciones que puede especificar para incluir dentro de un paso. Es común tener múltiples acciones asociadas con un simple paso.
Acciones Do Las acciones Do contienen una sentencia SQL designada a regresar resultados del cual dependen acciones subsecuentes. Por ejemplo, si la sentencia Select no devuelve líneas, las acciones subsecuentes no necesitan ejecutarse. Los 4 tipos de acciones Do son: Do While Do When Do Select Do Unit
SQL La mayoría de las acciones SQL contienen una simple sentencia de SQL. Estas acciones pueden realizar los siguientes tipos de sentencias SQL: Update Delete Insert Select Las acciones SQL difieren de las acciones Do, las cuales también contienen SQL, y en que la acción de SQL no controla el flujo del programa. 36 |
Qualsys Consulting S.C
Procesos PeopleSoft PeopleCode PeopleSoft Application Engine PeopleCode proporciona una excelente forma de construir SQL dinámicos, realizando simples if/else, establecidos por default y otras operaciones que no requieren una consulta a la base de datos. Lo más importante, PeopleCode proporciona acceso a las tecnologías de integración de PeopleSoft como PeopleSoft Integration Broker, Component Interface y Business Interlinks.
Log Message Se utiliza la acción Log Message para escribir un mensaje basado en una condición en su programa. Esto da a su programa capacidad multilenguaje. El sistema almacena el mensaje generalmente como un mensaje conjunto, números de mensaje y valores de los parámetros. Cuando el usuario ve los mensajes utilizando la pagina de Application Engine Message Log, el sistema recupera el mensaje apropiado del catalogo de mensajes basado en el idioma seleccionado por el usuario.
Call Section Puede también insertar una acción que llame a otra sección. La sección llamada puede estar en el mismo programa, o puede ser en un programa externo. Esto le permite reutilizar el programa, en lugar de crear la acción. Si una sección ya existe en un programa, en vez de copiarla en otro programa, sólo mándela llamar.
State Records El State Record es un registro que se debe crear y mantener por el desarrollador del Application Engine. Este registro define los campos que un programa utiliza para pasar valores de una acción a otra. Un State Record puede ser cualquier record físico o record de trabajo, y cualquier número de State Records que puedan ser asociados con el programa.
Tipos de programas del Application Engine Hay cinco tipos de programas en el Application Engine. Usted especifica el tipo de programa en cuadro de dialogo de las propiedades para la definición de el programa. Los tipos son: Standard, es un punto de entrada normal del programa. Upgrade Only, es utilizada para las actualizaciones de PeopleSoft. Import Only, el cual es utilizado importar utilerías de PeopleSoft. 37 |
Qualsys Consulting S.C
Procesos PeopleSoft Daemon Only, un tipo de programa utilizado como un demonio proceso. Transform Only, un tipo de programa utilizado para apoyar Extensible Stylesheet Language Transformaciones (XSLT).
Daemon Program Application Engine proporciona un Daemon Program, llamado PSDAEMON, que se ejecuta continuamente cuando el Process Scheduler esta corriendo, y es identificado por trabajos recurrentes. Un conjunto predefinido de condiciones es un evento.
Transform Program Los tipos de programas Transform Only, permite diferentes sistemas para comunicarse uno con el otro transformando mensajes en formatos apropiados. Cuando se especifica un Application Engine program como Transform Only, se debe especificar la acción del tipo XSLT o PeopleCode. Puede utilizar Transform Program para hacer cualquiera de lo siguiente: Aplicar una transformación a un mensaje para hacer su estructura cumplir con el objetivo de los requerimientos del sistema. Realizar una traducción de datos en un mensaje como los datos están representados de acuerdo a los convenios del sistema. Determinar si para pasar un mensaje a través de su objetivo, para filtrar esto basado en su contenido.
Creando programas de Application Engine Un Application Engine incluye un orden lógico de secciones, pasos, y acciones. Un programa ejecutable debe contener al menos una sección llamada Main, utilizada para identificar el punto de comienzo del programa, este debe contener al menos un paso y cada paso debería contener al menos una acción.
Visualizando programas de Application Engine Utilizando vista Definition Utilice la vista Definition para crear definiciones dentro de una estructura jerárquica definida, en la cual los nodos representan las definiciones. Un nodo es una representación visual de una sección, un paso o una acción que puede seleccionar colapsar, modificar, etc.
38 |
Qualsys Consulting S.C
Procesos PeopleSoft Las secciones que aparecen en la vista Definition no necesariamente aparecen en el orden en que estos se ejecutan. Para ver el orden real en las cuales las secciones se ejecutan, cambie a la vista Program Flow. Puede navegar en esta vista utilizando las siguientes teclas de combinaciones: Presione CTRL + HOME para desplazarse a la parte superior de la definición del programa y seleccione el primer nodo. Presione CTRL + END para desplazarse hasta el final de la definición del programa y seleccione el último nodo visible. Presione TAB para pasar del campo seleccionado actualmente a la próximo campo actualizado Presione CTRL + DOWN ARROW para desplazarse desde el nodo seleccionado actualmente para el próximo nodo. Presione CTRL + UP ARROW para pasar de la actual nodo seleccionado a la anterior nodo. La siguiente ilustración muestra la vista Definition.
Definición de la vista Pop-up Menu La siguiente tabla describe cada tema que ve cuando le da clic a la ventana de Definition. Algunos elementos del menú se activan sólo cuando una definición en particular está seleccionada.
39 |
Qualsys Consulting S.C
Procesos PeopleSoft Comando del menú
Descripción
View PeopleCode
Ejecuta el editor de PeopleCode con el PeopleCode apropiado. Se habilita cuando una acción PeopleCode es seleccionada.
View SQL
Ejecuta el editor SQL con el SQL apropiado. Se habilita cuando una acción que contiene un SQL es seleccionada.
View XSLT
Ejecuta el editor SQL cuando el se relacionan el texto cargado y el Extensible Stylesheet Language Transformations (XSLT). Se habilita solo para un programa tipo Transform Only, cuando una acción XSLT es seleccionada.
Cut
Remueve el elemento seleccionado y sus copias del portapapeles. No puede copiar o pegar dentro de ningún programa.
Copy
Copia un elemento seleccionado.
Paste
Pega el contenido del portapapeles de PeopleTools, (el más reciente corte o copiado) a la ubicación actual del cursor.
Delete
Borra el nodo actualmente seleccionado de la definición del programa.
Refresh View
Actualiza la vista actual y reordena la definición de objetos, según sea necesario.
Insert Section
Inserta una nueva sección en el programa actual, en el lugar donde el cursor esta en posición. Esta opción está habilitada sólo cuando tienes MAIN u otra sección seleccionada.
Insert Step/Action
Inserta un nuevo paso y la acción dentro de la sección seleccionada actualmente. Esta opción está activada sólo cuando usted tiene una sección o un paso seleccionado.
Insert Action
Inserta una nueva acción en el paso actualmente seleccionado. Esta opción está habilitada sólo cuando se tiene un paso o acción seleccionada.
Jump to This Program Flow
Cambia a el programa Program Flow view
40 |
Qualsys Consulting S.C
Procesos PeopleSoft Comando del menú
Descripción Con la primera aparición de la actual selección definiendo en el punto de mira.
Print
Muestra el cuadro de diálogo Imprimir para la vista de la definición.
Insert Section Into Project
Se aplica a las secciones. Inserta la actual selección en el proyecto.
Utilizando la vista Program Flow La vista Program Flow es solo de lectura, muestra las secuencias de los pasos para ser ejecutados en el programa que se esta desarrollando. La siguiente ilustración muestra el programa:
Usted puede controlar la cantidad de detalle que aparece para cada definición haciendo clic en ella para ampliar al siguiente nivel. También puede ver el SQL o PeopleCode en la parte inferior (splitter) del área de la ventana, haciendo clic en la parte baja de la misma. Si un nodo de primer paso (uno que no es el resultado de llamar una sección) es seleccionado, el cuadro de dialogo Print Options permite la impresión, ya sea para comenzar en ese nodo de paso o la impresión de todo el programa. Sin embargo, si un nodo del segundo paso (uno que es el resultado de llamar una sección), un nodo de la segunda acción, un nodo SQL o un nodo PeopleCode, es seleccionado en la vista Program Flow, el cuadro de dialogo Printf Options solo permite la impresión de todo el programa.
41 |
Qualsys Consulting S.C
Procesos PeopleSoft Para mostrar el menú pop-up para un nodo, de clic derecho al mismo nodo. No tiene que seleccionar primero el nodo. Puede también mostrar los comentarios asociados con las definiciones seleccionando View, Show All Comments o para un nodo en particular, haga clic derecho y seleccione Show Comment.
Menú pop-up del Program Flow La siguiente tabla contiene cada tema de menú pop-up de la vista Program Flow.
Comando del menú
Descripción
View PeopleCode
Ejecuta el editor de PeopleCode con el apropiado PeopleCode cargado. Habilitado cuando una acción de PeopleCode esta seleccionada.
View SQL
Ejecuta el editor de SQL con el apropiado SQL cargado. Habilitado cuando una acción con SQL esta seleccionada.
Refresh View
Actualiza la vista actual y reordena la definición de objetos, según sea necesario.
Show Comment
Revela los comentarios para un simple objeto que aparece en la vista Program Flor.
Jump to This Definition
Cambia a la vista Definition con la primera aparición de la definición actual del objeto seleccionado actualmente.
Print
Ejecuta el cuadro de diálogo para imprimir para la vista del programa.
Cambiando éntre las vistas Definition y Program Flow Por default, la navegación dentro de cualquier vista no afecta a la fila activa actual en otra vista. Esto permite recuperar el lugar mientras se desplaza en alguna otra. Para cambiar entre dos vistas, puede utilizar cualquiera de los siguientes métodos: Pestañas de vistas. Como con cualquier interfaz con pestañas, si selecciona una pestaña, la vista de la interfaz asociada se convierte en una interfaz activa. Cuando regrese la vista previa, este sigue posicionada en el actual o ultimo nodo dentro del programa cuando se encienda. Menú de vistas
42 |
Qualsys Consulting S.C
Procesos PeopleSoft Seleccione una sección o paso en la actual vista (note que seleccionando una acción no habilita esta funcionalidad). Seleccione View Jump to Program Flow o View Jump to Definition, dependiendo en que vista este activo actualmente. Cuando selecciona uno de estos comandos, el centro del objetivo depende de que lo tenga seleccionado en la vista previa. Menú pop-up Los mismos comandos como el menú View también están disponibles desde el menú pop-up.
Cambiando dentro de la vista Program Flow Mientras se encuentre en la vista Program Flow, puede seleccionar estas opciones del menú pop-up: Go to Next Reference Seleccione esta opción para cambiar la siguiente referencia de una definición de un objeto en particular. Esto le ayuda a navegar rápidamente a través del programa. Por ejemplo, si las referencias a la sección C, el paso 4 aparece tres veces, porque hay varias llamadas a este objeto en tiempo de ejecución, seleccione Go to Next Reference para navegar fácil y rápidamente en cada referencia. Jump to this Definition Seleccione esta opción para ir directamente a la definición del nodo en la vista Definition que pertenece a la actual selección en la vista Program Flow.
Utilizando la opción actualizar Como desarrollador de un programa Application Engine, tal vez inserte, renombre y borre definiciones. En un largo programa puede ser fácil perder su lugar o desorientarse. La opción actualizar reordena todos los nodos para la actual definición de acuerdo a la siguiente lógica: Para las definiciones de un programa estándar, la sección del Main siempre aparece primero. Las secciones restantes aparecen alfabéticamente por nombre, esto hace más fácil localizar una sección dentro de un programa. El sistema ejecuta secciones a través de la acción Call Sections dentro de los pasos, no por el orden que fueron definidos. Los pasos nunca se reordenan automáticamente en la vista Definition, y, en tiempo de ejecución se ejecutan en el orden en que fueron definidos. 43 |
Qualsys Consulting S.C
Procesos PeopleSoft Las acciones se reordenan lógicamente siempre dentro de un paso, basado de su tipo de acción, que define su tiempo de ejecución.
Filtrando el contenido de la vista Las sección de las opciones de filtrado le permiten filtrar la vista actual de manera que sólo vea las secciones y las pasos basados en los criterios especificados. Para habilitar o modificar las opciones de filtrado, seleccione View Secction Filtering. Para habilitar o modificar las opciones de filtro, seleccione View Puede seleccionar una de las siguientes opciones de filtrado:
Comando de menú
Section Filtering.
Descripción
No Filtering
Seleccione para ver todos los objetos en el programa independientemente de cualquier sección de atributos, tales como mercado, tipo de base de datos, fecha efectiva y estado efectivo.
Default
Seleccione para mostrar la definición de filtro de acuerdo con el valor por default de los criterios de filtrado. Si cambia el valor de cualquier opción de filtrado haga clic en OK, para tener definido una filtro personalizado.
Custom
Seleccione para mostrar el cuadro de diálogo de la definición de filtro y definir las opciones del filtrado para la vista actual.
Comportamiento de las opciones de la sección de filtrado Cuando use la sección de opciones de filtrado considere lo siguiente: El valor por default es no filtrado, por lo tanto, todas las definiciones de la sección se incluyen en esta vista. Si selecciona filtrado, el filtrado de las opciones por defecto se muestran mientras está en la sección actual de PeopleSoft Application Designer Si modifica este filtro y da clic en OK, las nuevas opciones serán guardadas como opciones activas actuales y en consecuencia se actualiza la vista. Si selecciona los filtros por default, las opciones aparecerán en el cuadro de dialogo. Si selecciona Section Filtering, Default o Section Filtering siguiente cuadro de diálogo:
44 |
Custom aparecerá el
Qualsys Consulting S.C
Procesos PeopleSoft
En este ejemplo, sólo las definiciones que representan a los siguientes criterios aparecen en las vistas Definition y Program Flor.
Atributo
Definición
Market
Seleccione un código de mercado para ver sólo las definiciones dentro de ese mercado. Para ver todos los agentes del mercado relacionados con las definiciones de un programa, puedes actualizar el perfil predeterminado, o definir un filtro personalizado, seleccionando (none) de la lista desplegable Market Drop-Down.
Platform
Seleccione la plataforma de filtrado. En la ilustración, las secciones que se definen sólo para Microsoft SQL Server son mostradas. Seleccione Default para mostrar las secciones definidas para ser independientes de la base de datos de la plataforma independiente. Las plataformas especificas incluyen Oracle, DB2 UDB parar OS/390 y z/OS, DB2/UNIX, Informix, Microsoft, y Sybase.
As of Date
Seleccione la fecha filtrada. En la imagen de arriba, las secciones con secciones como una fecha igual o superior a 7 de abril de 2000. Seleccione None para mostrar todas las secciones a pesar de la fecha efectiva.
Active Status
Seleccione para mostrar las definiciones sección activa
45 |
Qualsys Consulting S.C
Procesos PeopleSoft Creando, abriendo y renombrando los programas. Creando nuevos programas Para crear nuevos programas: 1. Seleccione File New o presione CTRL + N. 2. En el cuadro de dialogo, seleccione App Engine Program y de clic en OK. 3. Nómbrelo y guarde el programa. Seleccione File Save As ingrese le nombre del programa en el cuadro de dialogo Save Name As y de clic en OK.
Abriendo programas existentes Para abrir un programa existente: 1. Seleccione File Open. 2. En el cuadro de dialogo Open Definition seleccione App Engine Program de la lista desplegable 3. Ingrese su criterio de búsqueda del programa que quiera, seleccione su programa en los resultados de la búsqueda y de clic en Open.
Renombrando programas Para renombrar un programa: 1. Seleccione File Rename. 2. En el cuadro de dialogo de renombrar, asegúrese de que aparezca App Engine Program como el tipo de definición. 3. En el menú desplegado que contiene los resultados de su búsqueda seleccione el programa que quiera renombrar. 4. Seleccione Rename. 5. Sitúe el cursor en la casilla que aparece destacado en todo el nombre del programa. 6. Ingrese el nuevo nombre del programa. 7. Haga clic en Rename y, a continuación, responder adecuadamente en el cuadro de de diálogo Confirm Rename.
46 |
Qualsys Consulting S.C
Procesos PeopleSoft Copiando o moviendo elementos del programa Los siguientes procedimientos aplican a las sesiones, pasos y acciones. Tenga en cuenta que cuando estas funciones se llevan a cabo para un determinado objeto, el resultado no sólo se aplica al objeto seleccionado, sino que también incluye las definiciones asociadas si es que existen. Para copiar una definición: 1. Seleccione la definición. 2. Seleccione Edit Copy. 3. Sitúe el cursor donde usted desea poner la definición copiada, y seleccione Edit Paste. Para mover una definición: 1. Seleccione la definición de objeto. 2. Seleccione Edit Cut. 3. Sitúe el cursor en la ubicación de destino y seleccione Edit Paste.
Probando programas de Application Engine Después de crear o modificar su programa, usted puede probarlos en PeopleSoft Application Designer en segundo plano. Puede utilizar Ejecutar en el cuadro de diálogo:
Para ejecutar un programa Application Engine en segundo plano: 1. Seleccione Edit Run Program desde la barra de herramientas de PeopleSoft Application Designer. El cuadro de dialogo Run Request aparecerá.
47 |
Qualsys Consulting S.C
Procesos PeopleSoft 2. Introduzca los valores adecuados. Al hacer clic en OK, estos valores se pasan como parámetros al ejecutable de PeopleSoft Aplicación Engine. 3. Presione OK. Los datos que necesita son:
Atributo
Descripción
Run Control ID
Introduzca el run control ID del programa que usted está probando
Run Minimized
Seleccione para que la ventana del proceso solicitado se minimizara al ejecutar el programa.
Output Log to File
Seleccionar para escribir el registro de salida a un archivo.
Log File Name
Especifique el nombre del archivo de registro de salida (permitido sólo cuando la salida del archivo de registro está seleccionada).
Process Instance
Especifique el proceso para ejecutar esta petición, o utilizar el valor por default de cero si el número de la instancia no es necesario.
Configurando las propiedades del programa Accediendo a las propiedades Cuando tiene un programa Application Engine abierto en el PeopleSoft Application Designer, puede ver y modificar las propiedades asignadas a la totalidad de un programa sólo como lo haría un paso o una sección. Para ver o modificar las propiedades asociadas con un programa, haga clic en el botón propiedades y seleccione File Definition Properties, mientras que el programa está abierto. También puede pulsar ALT + ENTER. El cuadro de diálogo Program Properties aparece.
Configuración las propiedades generales Acceda al Programa de cuadro de diálogo Propiedades y seleccione la pestaña General. Puede especificar los valores de identificación para su programa Application Engine.
Atributo Owner ID 48 |
Descripción (Opcional) Introduzca el ID del propietario para el Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción programa. El propietario de identificación es una forma de identificar que las definiciones son propiedad de las aplicaciones de PeopleSoft, como PeopleSoft General Ledger, Accounts Receivables, y así sucesivamente.
Configurando las propiedades del registro de estado Seleccione la pestaña del registro de estado.
Atributos
Definición
Qualify Search
Introduzca los caracteres o nombre de la tabla para limitar los resultados que aparecen en la lista de registro. De forma predeterminada, la casilla Record List contiene todos los nombres de records que terminan con la extensión AET. Esta extensión identifica el registro como un registro Application Engine.
Get List
Haga clic aquí para rellenar la Record List
Record List
Esta casilla contiene los resultados de su búsqueda del registro de estados
49 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributos Selected
Definición Seleccione un registro de estados para su uso con un programa en particular. Haga clic en Add para incluir registros seleccionados de la lista de registros. Haga clic en Remove para eliminar los registros seleccionados de la lista. Indican que el registro actúa como un registro de estados por defecto para la selección de su casilla de verificación.
Especificando las tablas temporales Seleccione la pestaña de tablas temporales. Las tablas temporales almacena resultados durante un programa que se esta ejecutando.
Atributo
Descripción
Qualify Search
Introduzca los caracteres o nombres de tabla completa para limitar los resultados que aparecen en la lista de registro. De forma predeterminada, el cuadro Record List sólo contiene registros que son de tipo tabla temporal.
Get List
Haga clic aquí para rellenar la Record List.
50 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción
Record List
Este cuadro de texto contiene resultados de su búsqueda en tablas temporales
Selected
Seleccione las tablas temporales para su uso con un programa en particular. Haga clic en Add para incluir los registros seleccionados que aparecen en la lista de registro. Haga clic en Remove para excluir los registros seleccionados que aparecen en la lista seleccionada.
Instance Count
Introduce el número de tablas físicas que se creará para cada tabla dedicada a este programa durante el procedimiento de SQL Build en PeopleSoft Application Designer.
Insert Selected List into Project
Si la definición del programa activo de Application Engine pertenece a un proyecto, seleccionelo para incluir las tablas temporales para este programa dentro del mismo proyecto.
Runtime
Controla como se comporta un programa Application Engine si una instancia de sus tablas temporales especificadas no está disponible. Si usted selecciona Continue, entonces PeopleSoft Application Engine utiliza la versión baja, o la versión no dedicada, de las tablas temporales. Si usted selecciona Abort, entonces las salidas de programa tendrán un mensaje de error.
Configurando propiedades avanzadas
51 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributos
Descripción
Disable Restart
Seleccione para desactivar de la capacidad de reiniciar un programa en particular.
Application Library
En algunos casos, puede que quiera un programa para contener sólo una colección, o una biblioteca, de las rutinas comunes que no desea para ejecutarse como un programa independiente. Cuando las secciones se definen como público, otros pueden llamar a los programas de las secciones, o rutinas, que existen en la biblioteca en tiempo de ejecución.
Batch Only
Los programas Batch Only no se ejecutan a partir de la función CallAppEngine PeopleCode. Cualquier tabla temporal utilizada para Batch Only crea instancias en línea.
Message Set
Especifique el mensaje por default, el valor establecido para este programa. El sistema utiliza este mensaje de valor para todos los mensajes de registro, acciones en las que el mensaje conjunto no se especifica.
Program Type
• Standard: Utilizado por programas Entry-Point. • Upgrade Only: Utilizado por PeopleSoft para actualizar. • Import Only: Utilizado por PeopleSoft para importar
utilidades. • Daemon Only: Utiliza los programas Daemon Type. • Transform Only: Apoyado por programas XSLT.
Agregando secciones Una sección incluye pasos y es equivalente a un párrafo de COBOL o una función de PeopleCode. Puede crear secciones que son independientes de la plataforma o plataformas específicas, destinados a un mercado particular, y de fecha efectiva. Cuando usted crea un nuevo programa, al mismo tiempo crea una sección llamada Main. La sección Main identifica el punto de inicio del programa para que pueda ser llamado por otro programa.
52 |
Qualsys Consulting S.C
Procesos PeopleSoft Sección de orden de ejecución Una sección es única basada en el programa y los nombres de la sección, y basada en la plataforma de la base de datos y fecha efectiva. Cuando ejecuta un programa de Application Engine, este ejecuta secciones basadas en el siguiente orden de precedencia: 1. Si una sección por el mercado actual existe, ejecútela. De otra manera, ejecute la sección de mercado global. 2. Si una sección por la plataforma actual o base de datos existe, ejecútela. De otra manera, ejecute la sección por default de la plataforma de la base de datos. 3. Si secciones múltiples de fecha efectiva existen, ejecute la sección con la más reciente fecha efectiva, basada en el dato actual.
Insertando secciones Para insertar una sección: 1. Seleccione Insert Section o con el clic derecho seleccione Insert Section El nombre por default para una sección que se inserta es Section N, donde N es un número que incrementa los intentos lo que proporciona un nombre único para cada una de los objetos de sección. Sino renombra las secciones, las secciones se llamaran Sección N + 1, donde N es la última sección que se insertó. En consecuencia, se obtiene como nombres, Section1, Section2, Section3, y así sucesivamente. Las secciones son siempre reordenadas alfabéticamente por nombre al momento de guardar para hacer más fácil localizar la sección dada. Nota.
2. Introduzca los valores restantes de la propiedad de la sección. 3. Guarde el programa
Localizando las secciones. Hay varios métodos para localizar las referencias de las secciones dentro toda una base de datos, así como dentro de un programa.
Buscando las llamadas a las secciones de referencia Puede generalizar una lista de todas las referencias para una sección en particular. La lista aplica solo a programas de Application Engine definidas dentro de una simple base de datos. 53 |
Qualsys Consulting S.C
Procesos PeopleSoft Para localizar las secciones de referencia: 1. Abra el programa que contenga la sección compartida o llamada. 2. Seleccione EditFind References 3. Aparece el cuadro de dialogo Definition Reference 4. En la pestaña Call Sections, seleccione la sección apropiada de la lista de nombres de sección o introduzca en nombre directamente 5. Clic Ok La ventana de salida enlista los programas y secciones que llama a un programa en particular. Esta lista muestra el total de llamadas de referencias realizadas a una sección particular. Las secciones llamadas dentro del programa actual aparecen en la lista en primer lugar.
Buscando secciones en el programa actual Mientras mas largos y complicados los programas Application Engine, tales como actualizaciones, no es común tener mas de cien secciones. En lugar de desplazarse a través del programa, use la función Go To.
Configurando las propiedades de las sección Los controles que especifican las propiedades de la sección están localizadas en las vista Definition. Por ejemplo para cada sección que incluye en su programa, esta un nodo, como se muestra en el siguiente ejemplo, a partir de la cual usted especificara todos los atributos que se asocian con una sección específica.
Los valores que especificas en el nivel de la sección generalmente aplican a todos los objetos contenidos dentro de la sección.
Atributo
Descripción
Section Name
Elaborar una convención de nomenclatura y ser coherentes en todo su proyecto. Usted está limitado a ocho caracteres.
Market
Seleccione el mercado para el cual la sección esta destinada. Si un mercado es irrelevante a su programa por batch (lotes), mantener el valor por defecto el valor de mercado de Global (GBL).
54 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción
Platform
Seleccione la plataforma de la base de datos de para la definición que esta se esta ejecutando. Deje el valor predeterminado para todas las secciones cuyas acciones definidas no son específicas para ninguna plataforma de base de datos.
Effective Date
Para hacer una sección particular de fecha-efectiva, ingrese la fecha.
Effective Status
Especifique si una sección está activa, o habilitada en tiempo de ejecución.
Section Type
En el caso de una terminación abrupta del programa, este valor se especifica al campo al reiniciar la sección.
Auto Commit
Seleccione para especificar el nivel del commit de la sección. Usted omitir el commit o tener un commit después de que se complete exitosamente el Application Engine
Public
Seleccionar para habilitar la llamada a la sección desde otro programa.
Agregando pasos Un paso representa la más pequeña unidad de trabajo que puede ser incluida en un programa. Cuando crea un programa, se tiene por default la sección Main y un paso, inicialmente llamado step01.
Insertando pasos 1. Resaltar la sección o el paso que necesite precede al nuevo paso. Por ejemplo, si quiere que el nuevo paso sea el primero en la sección, seleccione el nodo. Dé lo contrario, seleccione le paso existente que quiera que sea el siguiente paso. 2. Seleccione Insert Step/action. Por default, los pasos tienen un nombre de StepN + 1 empezando con Step01. Renombre el paso para una mejor definición del tipo de acción que contiene el paso. 3. Especifica el nombre de un paso y los restantes valores.
55 |
Qualsys Consulting S.C
Procesos PeopleSoft Para renombrar el nombre del paso, posicione del cursor en el nombre del paso de el cuadro de dialogo e ingrese un nombre. Sólo se acepta el nombre predeterminado para la creación rápida, sencilla y programas con fines de capacitación.
Configurando las propiedades de los pasos Puede establecer las propiedades de paso en Definition view.
Atributo
Definición
Step Name
Ingrese un nombre (máximo ocho caracteres)
Commit
Especifica el nivel del “commit” para el paso:
Default: Seleccione para heredar cualquier nivel de COMMIT que ha especificado para la sección en la que esta el paso. Later: Seleccione para posponer el COMMIT hasta que se produzca otro COMMIT. Aquí puede anular le nivel del Commit. After Step: Seleccione si tiene un nivel de COMMIT de NONE especificado en el nivel de sección. De esta manera puede anular el nivel de COMMIT de la sección y especificar un paso COMMIT dentro de una sección con ningún otro COMMIT
Frequency
Habilitado sólo cuando un paso contiene una de las siguientes acciones: Do While, Do Select, or Do Until. Introduzca la frecuencia numérica con la que PeopleSoft Application Engine debería hacer el COMMIT. Si ninguna, PeopleSoft Application Engine hace COMMITS cada N iteraciones y, a continuación, de nuevo después de la última iteración.
On Error
Especifica cómo la aplicación PeopleSoft Engine debe responder a un error en el nivel de paso. En la rutina de error se comporta de la misma manera para SQL y acciones Peoplecode. El programa termina sólo en los errores, y no en las advertencias. Abort: La aplicación termina con error en los mensajes. Ignore: El programa continúa pero registra un mensaje de
56 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Definición error. Suppress: El programa continúa y no presenta mensajes de error. SQL: Por lo general, un programa termina si una declaración SQL falla. Si selecciona Ignore o Suppress, los errores en la ejecución de programas son suprimidos, pero los errores de compilación continúan hasta que el programa termine. Por lo tanto, si selecciona para reutilizar sobre la sentencia de actualizacion, el programa falla al compilar se la sentencia SQL es incorrecta, pero no falla en una duplicación de llaves o error similar cuando se ejecuta el programa PeopleCode: Hay un error en el programa PeopleCode si el código regresado satisface la sentencia If(nRet & PCM_ERROR)
Status
Seleccione para activar un paso. Si el paso es actualmente aplicable a su programa (y trabajo) probablemente querrá que le mantenga activo.
Especificando las acciones Esta sección provee una especificación de las acciones
Entendiendo las acciones Hay ocho tipos de acciones que puedes incluir dentro de un paso, y un paso puede contener múltiples acciones. Las acciones que define para un paso dependen del resultado que el programa requiera en cada etapa de la ejecución. Las únicas acciones mutuamente exclusivas dentro de un simple paso son llamadas secciones y sentencias SQL; no puede agregar una llamada a las acciones de la sección que ya contenga acciones de SQL y viceversa. Puede incluir solo uno en cada tipo de acción dentro de un paso. Porque hay ocho tipos de acciones y dos son mutuamente excluyentes, el máximo número de acciones en un simple paso son siete.
Acción orden de ejecución En tiempo de ejecución, el sistema evalúa las acciones por tipo y las ejecuta dentro de una estricta jerarquía. Por ejemplo un Do When y Peoplecode existen dentro de un determinado paso. Application Engine siempre ejecuta el Do When primero 57 |
Qualsys Consulting S.C
Procesos PeopleSoft El siguiente diagrama muestra la secuencia y el nivel de ejecución para cada tipo de acción:
A medida que se añaden acciones a un paso en Definition View las acciones son inicialmente insertadas después de la definición. Sin embargo, tras gu ardar una solicitud o un recargar una vista, el Designer reordena pedidos de todas las acciones para que coincida con la ejecución jerárquica. Esta característica le ayuda a visualizar la secuencia en la que cada paso de su programa será ejecutado.
Insertando acciones Para insertar una acción: 1. Resalte el paso en el que desea insertar la acción. 2. Insertar la acción. Seleccione insert Step/Action. Haga clic en el paso insertar y seleccione Step/Action. 3. Seleccione el tipo de acción desde el cuadro de lista desplegable, o cuando el tipo de acción actual está seleccionada, escriba el primer carácter, o de la acción deseada tipo, a continuación, presione TAB. 4. Escriba una descripción de la acción. 5. Especificar las propiedades de la acción que ha seleccionado.
58 |
Qualsys Consulting S.C
Procesos PeopleSoft Configurando las propiedades de la acción Para modificar las propiedades de acción, debe tener Definition view activa. Dado que puede incluir una variedad de acciones dentro de un paso, hay diferentes tipos de propiedades específicas para un tipo particular de acción. Dependiendo de la tipo de acción que seleccione, las propiedades que aparecen cambian. Por ejemplo, puede especificar el reutilización de características con una acción SQL. Esta característica no aplica para una acción PeopleCode. La siguiente ilustración muestra cómo se puede seleccionar las específicas para los diferentes tipos de acciones.
propiedades
Gestionando los programas de Application Engine Ejecutando programas de Application Engine Entendiendo las opciones de ejecución de un programa Los programas del Application Engine se ejecutan en uno de los siguientes modos: modo batch utilizando PeopleSoft Process Scheduler, modo en línea utilizando funciones PeopleCode y manualmente utilizando la línea de comandos. La siguiente tabla lista algunas diferencias entre programas en línea y programas batch:
Ejecución en línea
Ejecuciones Batch
Empeza por la función CallAppEngine de PeopleCode
Empeza a través de PeopleSoft Process Scheduler
Los programas se ejecutan rápidamente, sincrónicamente, y al azar
Los programas se ejecutan a largo plazo de forma asincrónica y en tiempos previstos.
Potencial para la ejecución simultanea
Puede ser diseñado para la ejecución paralela
Utiliza la tabla temporal en línea
Utiliza las tablas temporales de batch/dedicated.
59 |
Qualsys Consulting S.C
Procesos PeopleSoft Programas batch utilizando PeopleSoft Process Scheduler Este es el modo típico de ejecución. Usted invoca programas que se ejecutan en este modo utilizando PeopleSoft Process Scheduler o la página de Application Engine Process Request. El modo batch también se conoce como ejecución asincrónica, lo que significa que se ejecuta independientemente en el fondo. PeopleSoft Application Engine se ejecuta en cualquier sistema operativo que soporte PeopleSoft como un servidor de aplicación. Si su sitio utiliza un sistema operativo que no es soportado por PeopleSoft Application Engine, usted debe ejecutar programas de Application Engine en el servidor de aplicaciones (La única excepción es OS/390 [z/OS]). Para ejecutar programas de Application Engine en el servidor batch, usted debe instalar BEA Tuxedo. Esto aplica tanto servidores batch UNIX y como Microsoft Windows NT. Si usted ejecuta su servidor batch en la misma maquina del servidor de aplicaciones entonces el servidor de aplicaciones y el servidor batch puede compartir una instalación BEA Tuxedo. Si su servidor batch esta separado de su servidor de aplicación, usted debe instalar BEA Tuxedo en su servidor batch. Los parámetros TOOLBINSRV en los archivos de configuración del PeopleSoft Process Scheduler determinan donde PeopleSoft Process Scheduler invoca un programa Application Engine.
Programas en línea utilizando PeopleCode Los programas de Application Engine que se ejecutan en línea son ejecutados típicamente de una página con las funciones CallAppEngine de Peoplecode. Tal proceso en línea es síncrono, lo que significa que los procesos posteriores esperan los resultados.
Programas manuales utilizando la línea de comando Normalmente, se utiliza esta técnica solo durante las pruebas o si se necesita reiniciar el programa.
Creando las definiciones del proceso Seleccione PeopleToolsProcess SchedulerProcesses para acceder a la página Process Process Definition.
60 |
Qualsys Consulting S.C
Procesos PeopleSoft
Al utilizar PeopleSoft Process Scheduler para empezar programas batch en el Application Engine, debe crear una definición de proceso para cada programa. Los programas Running Application Engine son muy parecidos a la ejecución de cualquier programa de COBOL o SQR que usted invoca normalmente en PeopleSoft Process Scheduler. Utilice PeopleSoft Application Engine como la definición de un tipo de proceso genérico. Cada programa de Application Engine que invoque utilizando PeopleSoft Process Scheduler requiere una única definición del proceso derivada de la definición del tipo de proceso genérico.
Listando los parámetros del proceso de definición Acceda a la página Processes Process Definition Options.
Utilice esta página para la lista de parámetros. Aquí está la lista completa de parámetros: 61 |
Qualsys Consulting S.C
Procesos PeopleSoft ct MICROSFT cd %%DBNAME%% co%%OPRID%% cp %%OPRPSWD%% r %%RUNCNTLID%% i %%INSTANCE%% ai %%PRCSNAME%
Empezando programas con la página Application Engine Process Request Usted puede empezar un programa Application Engine mediante el uso de la página Process Request. Utilizando esta página de solicitud permite especificar valores adicionales y parámetros que los que aparecen dentro de las definiciones de proceso de PeopleSoft Process Scheduler. La mayoría de los usuarios inician los programas de Application Engine desde una página de solicitud de una aplicación específica utilizando el PeopleSoft Process Scheduler. Un experto en sistema, a veces, necesita crear procesos de solicitud estándar que requieren programas múltiples para realizar procesos en paralelo o que necesiten un conjunto específico, iniciar valores en un State Record. Este es un ejemplo de donde podría utilizar la página de solicitudes de proceso del Application Engine.
Tablas utilizadas en la página Process Request. El Process Request inserta valores dentro de las siguientes tablas. AEREQUESTTBL. Contiene todos los valores que aparecen en la página a excepción de los parámetros en el grupo. AEREQUESTPARM. Incluye solo valores iníciales en el State Record especificados del grupo de parámetros, si es necesario. Usted necesita para utilizar la página Application Engine Request, invocar un Application Engine e insertar filas en los registros requeridos del Application Engine solo si necesita realizar cualquiera de las siguientes tareas. Ingresar valores iníciales en el State Record asociado con un programa en particular. 62 |
Qualsys Consulting S.C
Procesos PeopleSoft Establecer una fecha para el programa Application Engine para realizar procesamiento retroactivo. No establecer una marca por default para el programa. Configurar una imagen de tabla temporal para utilizarse si se presenta un proceso de solicitud PeopleSoft EPM que realice un proceso paralelo.
Requisitos de Application Engine Seleccione Peopletools Application Engine acceder a la página Application Engine Request.
Atributo
Request
Application Engine para
Descripción
Process Origin
Muestra donde fue invocado el programa: desde PeopleSoft Process Scheduler, desde línea de comando , etc.
Process Instance
Muestra el proceso asignado a la ejecución del programa anterior
Status
Muestra el estado del último programa que se ejecuto, si tiene éxito, esta pendiente, etc.
Process Frequency
Especifica cuanto tiempo requiere que el proceso permanecer activo o valido: Always: Seleccione para correr el proceso como necesario. Once: Seleccione si solamente requiere el proceso una vez. Don’t: Seleccione para desactivar el proceso, para que
nadie lo invoque y potencialmente corrompa los datos 63 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción
As Of Date
Si requiere procesos retroactivos, especifique la fecha apropiada
Bind Variable Name
Introduzca el campo apropiado o la variable obligada para el cual se esta ingresando un valor
Value
Introduzca el valor inicial que desea establecer para el campo especificado
Utilizando el PeopleCode para invocar programas del Application Engine Para llamar un programa particular del Application Engine de una página utilizando PeopleCode, utilice la función CallAppEngine en SavePreChange o SavePostChange PeopleCode.
Sintaxis: CallAppEngine(applid [, Statereclist ] ); Se utiliza CallAppEngine si el programa que esta llamado es un proceso rápido. Debido a que el proceso es sincrónico, un usuario debe esperar por cualquier proceso invocado por CallAppEngine hasta que se complete, antes de hacer cualquier otra cosa. Si el programa llamado causa una demora injustificada, entonces utilice otra alternativa, como la funcion ScheduleProcess de PeopleCode Se utiliza CallAppEngine cuando tiene un negocio complejo e intenso en el que la mayoría de los procesos corren en batch y en línea, o el proceso requiere que se utilicen tablas temporales. Si este no es el caso, es mejor escribir el programa en PeopleCode. Si tiene lógica el PeopleCode para la ejecución en línea, y desea volver a utilizarlo en un programa batch, puede ser forzado a procesarlo fila por fila. Diseñe primero la lógica del batch, y entonces decida si tener una versión en línea separada o solo rehusar el código batch utilizando CallAppEngine. No utilice un CallAppEngine dentro de un paso de PeopleCode del Application Engine. Si usted necesita llamar un programa Application Engine de otro programa Application Engine, debe de utilizar la acción Call Section. No utilice CallAppEgine para controlar la operación commit. Los programas llamados con CallAppEngine son incrustados dentro de una mayor unidad de trabajo definida por la página de activación, tal como guardar una pagina.
64 |
Qualsys Consulting S.C
Procesos PeopleSoft Utilizando la línea de comandos para invocar programas Application Engine Usted podría llamar programas de Application Engine a través de la línea de comandos en las siguientes situaciones: Reiniciando Cuando un programa truena, un administrador de sistemas podrá reiniciar el programa utilizando la línea de comandos. Si necesita, usted puede localizar todos los programas específicos y la información de los procesos del Process Monitor en el cuadro de dialogo del Process Request Detail. Desarrollo o prueba Muchos desarrolladores incluyen la línea de comandos en archivos batch para lanzar los programas que están desarrollando. De esta forma pueden fácilmente ejecutar los archivos batch como necesiten. Esto también permite la separación del desarrollo de programas de aplicación de sus páginas asociadas. Depuración Para depurar un programa que se ejecuta en el servidor usted puede entrar al servidor y llamar al programa en la línea de comandos. Para empezar un programa Application Engine en la línea de comandos usted debe especificar el ejecutable Application Engine (PSAE.EXE) seguido por los parámetros requeridos,
Ejemplo: psae
-CT dbtype -CS server -CD database_name -CO oprid -CP oprpswd?
-R run_control_id -AI program_id -I process_instance -DEBUG (Y|N)? -DR (Y|N) -TRACE tracevalue -DBFLAGS flagsvalue -TOOLSTRACESQL value? -TOOLSTRACEPC value -OT outtype -OF outformat -FP filepath O si las opciones línea de comandos son almacenadas en el archivo de texto puede ingresar lo siguiente:
Ejemplo: psae
65 |
optfilename
Qualsys Consulting S.C
Procesos PeopleSoft Opciones de la línea de comando
Atributo
Descripción
-CT
Especifica el tipo de base de datos al cual esta conectado (ORACLE , MICROSFT , SYBASE , INFORMIX , DB2UNIX , y DB2ODBC .)
-CS
Requerido para Sybase e Informix. Para las plataformas que requieran un nombre del servidor como parte de singon, ingrese el nombre correcto. Esto afecta a Sybase, Informix, y Microsoft SQL Server. Sin embargo para Microsoft SQL Server, esta opción es valida pero no requerida.
-CD
Introduzca el nombre de la base de datos para la cual el programa se conectara.
-CO
Introduzca el ID del usuario que esta ejecutando el programa.
-CP
Introduzca el password asociado con el ID especifico del usuario.
-R
Especifique el run control ID para este programa
-AI
Especifique el programa de Application Engine para ejecutar
-I
Requerido para reiniciar. Introduzca el proceso para ejecutar el programa. El default es 0, lo que significa que PeopleSoft Application Engine utilice el siguiente proceso disponible
-DEBUG
Este parámetro controla las utilidades de depurador. Introduzca Y para indicar que usted quiere el programa a ejecutar este en modo de depuración, o introduzca N para indicar lo contrario.
-DR
Este parámetro controla la capacidad de reinicio. Introduzca Y para desactivar el reinicio, o introduzca N para activar el reinicio.
-TRACE
Para permitir el rastreo desde la línea de comando, introduzca este parámetro y un valor específico de la señal.
66 |
Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción
-DBFLAGS
Para deshabilitar %UpdateStats meta-SQL construct, ingrese 1.
-TOOLSTRACESQL
Habilita la señal de SQL.
-TOOLSTRACEPC
Habilita la señal de PeopleCode.
-OT
(Opcional) iniciar el PeopleCode meta-variable %OutDestType (numerico).
Ejemplo: &ProcessRqst.OutDestType = %OutDestType ;
-OF
(Opcional) Iniciar PeopleCode meta-variable %OutDestFormat (numérico).
Ejemplo: Query.RunToFile(Record QryPromptRecord, %OutDestFormat);
-FP
(Opcional) Initialize the PeopleCode meta-variable %FilePath (cadena de caracter).
Ejemplo: If All(%FilePath) Then &FILENAME = %FilePath | &FILENAME; &MYFILE = GetFile(&FILENAME, "E", %FilePath_Absolute); Else &MYFILE = GetFile(&FILENAME, "E", %FilePath_Relative); End-If;
optfilename
67 |
Si envía un archivo para PeopleSoft Application Engine como el primer parámetro en la línea de comandos, Application Engine lee el contenido del archivo e interpreta Qualsys Consulting S.C
Procesos PeopleSoft Atributo
Descripción el contenido como si fueran parámetros ingresados por la línea de comandos .Esta opción es destinada principalmente para ambiente de servidor Microsoft Windows NT o UNIX Process Scheduler
Depurando los programas de Application Engine Activando el depurador de PeopleSoft Application Engine Para ejecutar un programa en modo de depuración: 1. Configurar la opción de depuración. Usted puede configurar la opción de depuración en las siguientes locaciones: Abra PeopleSoft Configuration Manager y seleccione la pestaña Process Scheduler. Si usted esta utilizando la opción de línea de comando para invocar a su programa de Application Engine, entonces puede incluir el parámetro – DEBUG Y en la línea de comendos y envíelo a PSAE.EXE. Si usted tiene código PeopleCode en su programa de Application Engine, habilite el depurador de PeopleCode. 2. Ejecute el programa del Application Engine para depurarlo. 3. En el prompt Application Engine Debugger ingrese un comando para habilitar la opción de depuración. Cada comando esta representado por una única letra como X, L o M. Ingrese la letra que corresponde a la opción que usted quiere ejecutar. Para ver la lista de opciones disponibles de depuración, ingrese el símbolo ? en el prompt. Para habilitar el depurador de PeopleCode para Application Engine. 1. Acceda a las PeopleTools con el mismo usuario que utiliza cuando llama a los programas del Application Engine 2. Abra PeopleSoft Application Designer 3. Seleccione Debug PeopleCode Debugger Mode. 4. Seleccione Debug Break at Start Esto causa que los programas de Application Engine truenen antes de ejecutar cualquier PeopleCode dentro del programa. 68 |
Qualsys Consulting S.C
Procesos PeopleSoft Definiendo las opciones de depuración Cada opción de depuración es representada por una letra sencilla que se especifica en el prompt. Para ejecutar la opción que usted selecciono, presione ENTER.
Tips de depuración En algunos casos, como cuando se establecen interrupciones los submenús ofrecen más opciones. Después de estar familiarizado con los comandos, puede introducir múltiples temas en la línea de comando para combinar comandos y pasar por alto los submenús. Los comandos de letras no distinguen entre mayúsculas o minúsculas.
Opciones de depuración
Opción
Descripción
Quit
Ingrese Q. Esta opción realiza un rollback y termina la depuración.
Exit
Esta opción es valida solo después de que un paso se ha completado y otro aún no ha empezado.
Commit
Ingrese C. para dar commit a la actual unidad de trabajo en su programa. Es valida solo después de que un paso se ha completado y antes de que comience otro.
Break
Ingrese B, para establece un punto de interrupción. Las opciones del Breakpoint incluyen: Set : Escriba S para establecer un punto de interrupción para la localizacion. Unset : Introduzca U para eliminar los puntos de interrupción establecidos anteriormente List : Ingrese L para enlistar los puntos de interrupción.
Look
Ingrese L. Puede especificar el nombre del campo en el State Record en el prompt Field Name.
Modify
Ingrese M. Permite modificar el valor del State Record para propósitos de depuración.
69 |
Qualsys Consulting S.C
Procesos PeopleSoft Opción
Descripción
Watch
Ingrese W. Cuando especifique un campo como watch, el programa se detiene cuando el valor del campo cambia.
Step Over
Ingrese S. Ejecuta el paso actual hasta terminarlo y se detiene en el siguiente paso en la sección actual
Step Into
Ingrese I. Use esta opción para observar un paso o una sección en un nivel mas granular.
Step Out of
Ingrese O. Después de que se ha aumentado un paso o sección, utilice las opciones del Step Out of para ejecutar el resto del paso o la sección y se detiene.
Go
Ingrese G. Después de que el programa se detuvo en una locación específica y ha examinado su estado actual, usted puede utilizar el comando GO para resumir la ejecución del programa.
Run to commit
Ingrese R. Resume la ejecución de su programa después de que se ha detenido
Restaurando los programas Application Engine Una característica clave de PeopleSoft Application Engine es la construcción de punto de restauración y capacidad para restaurarse. Si hay una terminación abrupta o un paso fallido en el programa, puede restaurar desde el último punto de restauración exitosa, o un paso antes del paso que fallo. Restaure el programa desde la página de solicitud de procesos. Los programas Application Engine guardan en la base de datos (ejecutando un commit) solo cuando un programa termina exitosamente. Puede establecer commits donde considere necesario. En el nivel de sección, puede poner un commit después de cada paso en la sección. En el nivel de paso, puede exigir o aplazar los commits en cada paso, o puede aumentarlos en una iteración con las acciones de ciclos dentro de un paso, como en acciones Do Select, o Do While. El nivel de commit que seleccione juega un papel importante cuando se restaura el programa. Cada vez que PeopleSoft Application Engine utiliza un commit permite restaurar el programa, en el registro actual. Utilizar la característica de restaurar, permite que ejecute mas a menudo commits en un programa. Restaurar reduce todo el impacto en otros usuarios y procesos mientras el 70 |
Qualsys Consulting S.C
Procesos PeopleSoft programa de respaldo se ejecuta, debido a que reduce la cantidad de registros bloqueados por el programa, permitiendo que múltiples instancias del programa corran, lo que puede ser útil en programas de altos volúmenes de información. Con la restauración, si ocurre una falla en cualquier punto del proceso, el usuario puede restaurar el programa y esperar que el programa se comporte de las siguientes maneras: Ignorar los pasos que estén completados hasta el último commit. Empezar el procesamiento hasta el siguiente paso después del último commit exitoso. Cuando un programa se ejecuta, cada vez que PeopleSoft Application Engine establece un commit esto también guarda toda la información solicitada de un programa restaurado en el registro AERUNCONTROL.
Determinando cuando utilizar la restauración Usualmente, desea desarrollar programas para tomar ventaja de las capacidades de restauración del PeopleSoft Application Engine. Los programas que son buenos candidatos para hacer uso de la restauración son los que tiene que hacer muchas tareas, como tablas de unión y datos de carga en tablas de trabajo temporales. Como regla general, la restauración es esencial para programas que principalmente hacen procesos Set-based. De cualquier manera, si su programa tiene una de las siguientes características, puede habilitar la restauración: Procesar línea por línea Las cabeceras involucradas con PeopleSoft Application Engine ejecutan un checkpoint durante la ejecución de un programa que no es deseado. El programa hace commit después de N iteraciones en un ciclo, y la sentencia Select que maneja el ciclo esta compuesta de tal manera que termina y se inicia de nuevo, ignora procesos corrieron previamente.
Utilizando la restauración a nivel de programa El Application Engine automáticamente realiza todas las actualizaciones del State Record. Cuando un programa Application Engine comienza, este inserta una fila en el State Record de una asignada instancia de proceso. Entonces el sistema actualiza el State Record siempre que el programa realice un commit para cambiar valores dentro de la base de datos.
71 |
Qualsys Consulting S.C
Procesos PeopleSoft Utilizando la restauración en el nivel de sección Si una sección solo prepara datos, los selecciona, llena tablas temporales o actualiza las tablas temporales entonces configure el tipo sección para Prepare Only. Pero, si la sección actualiza permanentemente las tablas de aplicaciones en la base de datos, configure la opción Critical Updates. Durante el tiempo de ejecución, cuando el sistema llega a la primera sección define el Critical Updates, y esta define el valor AE_CRITICAL_PHASE en el registro AERUNCONTROL como Y. una vez definido, el valor de AE_CRITICAL_PHASE sigue siendo Y hasta que el programa se complete exitosamente. Cuando el programa se completa, le fila correspondiente en AERUNCONTROL es eliminada.
Utilizando la restauración en el nivel de pasos En las sentencias Where del programa de una seccion Do Select, deben incluir condiciones que reduzcan la respuesta que regresa desde la sentencia Select.
Ejemplo: SELECT RECNAME, FIELDNAME FROM PS_AE_RECFIELD ORDER BY RECNAME, FIELD NAME Si ejecuta este Select como parte de una acción DO Select con Restartable, como tipo Do Select, el sistema puede procesar algunas filas dos veces antes de iniciar. Por esto, si específica Reselect, el programa puede ejecutar de manera infinita el ciclo, por que no hay nada para salir del ciclo. Sin embargo, si modifica la sentencia Select para que se parezca más a la siguiente, puede hacerlo Restartable.
Ejemplo: SELECT RECNAME, FIELDNAME FROM PS_AE_RECFIELD WHERE RECNAME > %BIND (RECNAME) OR (RECNAME = %BINF (RECNAME) AND FIELDNAME > %BIND (FIELD NAME)) ORDER BY RECNAME, FIELDNAME Una acción do select que ha sido codificada para Restartable puede ser convertida a Select/Fetch, pero no de manera inversa.
72 |
Qualsys Consulting S.C
Procesos PeopleSoft Los ejemplos previos muestran el uso de una llave columna para reducir el grupo de respuestas. Esto puede ser conveniente si el record tiene solo uno o dos campos llaves. Sin embargo, si el record tiene dos o tres campos llaves, su SQL se convertirá en algo complejo.
Controlando las terminaciones anormales Un control de terminaciones anormales (a veces llamado un abend) significa que hay salidas del Application Engine por medio de una condición de error calculado. Algunos ejemplos de abends (termino anormal) controlados son: Errores SQL mientras se define un Abourt en On Error. Un valor PeopleCode regresa, cuando en On Return se define un Abourt. Una sentencia SQL que no afecta a las filas, cuando se define un Abort en On No Rows. En estos casos el campo Run Status del Process Monitor leerá “Error”. Una terminación no controlada ocurre cuando se viola la memoria o un usuario termina un proceso. En este caso, el campo Run Status del Process Monitor muestra “Processing”.
Restaurando los programas del Application Engine Hay dos formas de restaurar un programa del Application Engine Desde la línea de comandos. Desde la página Process Request.
Restaurando desde la línea de comando Normalmente solo los desarrolladores utilizan la línea de comando para restaurar programas del Application Engine. Los usuarios en la mayoría de los casos no suelen ser expertos en este método. Se puede utilizar la opción de línea de comando para restaurar un programa que se ejecuta en el servidor. El Application Engine referencia solo las instancias de los procesos en los procesos no exitosos. Para restaurar la aplicación del comando de línea 1. Coleccione los valores de la línea de comandos asociados con el programa fallido. Este valor incluye los tipos de base de datos, nombre de la base de datos, usuarios, password, run control ID, nombres del programas y las insyancias de 73 |
Qualsys Consulting S.C
Procesos PeopleSoft proceso. Usted puede encontrar estas variables en el cuadro de diálogo del Process Detalis, el correspondiente State Record o en la tabla del run control del Application Engine. Donde los valores dependen de cómo usted llama a los programas. 2. ingrese la siguiente línea de comandos sustituyendo los valores del paso anterior.
Ejemplo: PSAE.EXE −CT DB_TYPE -CD RUN_CONTROL -AI PROGRAM
DB_NAME
-CO
OPRID
-CP
PASSWORD
-R
NAME – I PROCESS_INSTANCE
Restaurando desde la página Process Request Se pueden restaurar programas desde la página de Process Request solo para los programas que se ejecutan en el servidor. Para restaurar un programa del Application Engine desde una pagina de Process Request: 1. Abra PeopleSoft Process Scheduler, seleccione Peopletools
Process
Scheduler, System Process Request. 2. Localice el número del run control ID del programa que se restablecerá. 3. Para mostrar los detalles de los procesos fallidos de clic en el hipervínculo Process Detail 4. En la página del Process Request Details, seleccione Restart Request y de clic en OK.
Empezando los programas de Application Engine desde el principio Cuando un programa del Application Engine termina normalmente usted puede tiene que decidir si quiere restaurar el proceso o solo empezar desde el principio. Como su programa del Application Engine ejecuto al menos una parte puede dejar sus datos en un lugar desconocido. Para empezar el programa desde el principio usted necesita utilizar SQL para eliminar los registros que correspondan al programa que fallo de la tabla del Run Control del Application Engine y su State Record. Para restaurar un programa Application Engine desde el principio: 74 |
Qualsys Consulting S.C
Procesos PeopleSoft 1. Abra su editor SQL nativo y manualmente borre los records en la tabla PS_AERUNCONTROL que corresponda al programa que quiera empezar desde el principio. Utilice el siguiente SQL para lograr este paso.
Ejemplo: DELETE FROM PS_AERUNCONTROL WHERE OPRID= OPRID AND RUN_CNTL_ID= Run_Control_ID 2. Elimine de su State Record los registros que correspondan al programa fallido. Utilice el siguiente SQL para lograr este paso.
Ejemplo: DELETE FROM PS_ MY_AET WHERE PROCESS_INSTANCE= Process_Instance
Habilitando y deshabilitando la restauración Para deshabilitar la restauración utilice cualquiera de estos métodos: Seleccione el Disable Restart en el cuadro de dialogo de Peoplesoft Application Engine. Para acceder a las propiedades del programa, seleccione File Definition Properties, y seleccione la petaña Advanced. Seleccione el Disable Restart en el perfil Configuration Manager. Para acceder al perfil, se abrirá el Configuration Manager, seleccione la pestaña Propfile, y de clic en Edit. Después seleccione la pestaña Process Scheduler. Incluya la opción –DR Y en la línea de comando de PSAE.EXE.
75 |
Qualsys Consulting S.C
Procesos PeopleSoft
PeopleSoft Component Interface Un Component Interface es una definición de PeopleSoft PeopleTools que se crea en Application Designer. Este permite un acceso síncrono a un componente desde otra aplicación.
Iniciando con PeopleSoft Component Interface Un Component Interface es un conjunto de interfaces de aplicación de programación (APIs) que se pueden utilizar para acceder y modificar información de base de datos mediante programación. PeopleSoft Component Interface expone un componente PeopleSoft (un conjunto de páginas agrupadas para propósitos de negocios) para un acceso síncrono desde otra aplicación (PeopleCode, Java, C/C++ o Component Object Model [COM]). Un programa PeopleCode o un programa externo (Java, C/C++ o COM) pueden ver, entrar, manejar y acceder a datos del componente de PeopleSoft, la lógica y la funcionalidad de negocio. Adicionalmente, se puede utilizar el Component Interface Tester para revisar la validación del Component Interface y el Excel al Component Interface Utility para manejar los datos. Los Component Interface son creados en Application Designer, así que debe asegurarse de estar familiarizado con las PeopleTools.
Introducción al Component Interface En este capítulo se expondrá: Arquitectura del Component Interface. Conceptos del Component Interface, como nombres y propiedade s. Definición del Component Interface en Application Designer.
Comprendiendo el Component Interface Un Component Interface permite la exposición de un componente PeopleSoft (un conjunto de páginas agrupadas para un propósito de negocio) para un acceso síncrono desde otra aplicación (como PeopleCode, Java, C/C++, COM, o XML). Los Component Interface pueden ser utilizados para integrar una aplicación con otra o con sistemas externos. Los Component Interface ejecutan la lógica de negocio construida en el componente y como resultado, proporcionan un nivel más alto de validación de datos que un simple SQL. Se pueden crear múltiples Component Interface para el mismo componente. Cuando se crea un Component Interface en Application Designer. Los campos del registro en el
76 |
Qualsys Consulting S.C
Procesos PeopleSoft componente son mapeados a las llaves y propiedades del Component Interface. Los métodos son utilizados para encontrar, crear, modificar y borrar datos.
Arquitectura del Component Interface La arquitectura del Component Interface comprende tres elementos fundamentalescomponentes, Component Interface y el Component Interface API. Cada Component Interface tiene los siguientes atributos principales: Nombre Llaves (obtener, crear y encontrar llaves) Propiedades y Colecciones (fields y records) Métodos
Atributos del Component Interface Nombre Cada Component Interface requiere un nombre único que es especificado cuando el Component Interface es creado. Los programas llamados utilizan el nombre del Component Interface para acceder a las propiedades y métodos.
Llaves Las llaves son propiedades especiales que contienen valores que recuperan una instancia (obtener llaves) o una lista de instancias (encontrar llaves) del Component Interface. Cuando se crea un nuevo Component Interface, obtener (get) y encontrar (find) llaves son creadas basadas en la búsqueda de la definición del registro para el componente. Sin embargo, se pueden agregar, eliminar o cambiar las llaves en Application Designer.
Propiedades Las propiedades proporcionan acceso tanto a los datos del componente como a la configuración del Component Interface. Los Component Interface incluyen dos tipos de propiedades: estándar y definidas por el usuario (user-defined).
Propiedades Estándar son asignadas automáticamente cuando un Component Interface es creado. Las propiedades estándar pueden estar definidas como verdaderas o falsas. Estas propiedades no son mostradas en Application Designer.
77 |
Qualsys Consulting S.C
Procesos PeopleSoft Propiedades Definidas por el Usuario mapean los campos del registro en el Component Interface y son mostrados en Application Designer. Una propiedad puede corresponder a un campo o a un scroll. Se tiene control sobre las propiedades definidas por el usuario las cuales son incluidas en el Component Interface.
Colecciones Una colección del Component Interface es un tipo específico de propiedad que corresponde a un scroll. Por default cada colección utiliza el nombre del registro primario para el scroll subyacente.
Métodos Un método es una función que realiza una tarea específica en un Component Interface en un tiempo de ejecución. Existen dos tipos principales de métodos: estándar y definidos por el usuario. Por ejemplo, los métodos se pueden utilizar para guardar o crear una nueva orden de compra. El acceso al tiempo de ejecución para cada método es determinado por la seguridad que se tenga para ese método específico. Métodos Estándar son aquellos que son disponibles para todos los Component Interface. Los métodos de Find, Get, Save y Cancel son generados automáticamente por el Application Designer cuando un nuevo Component Interface es creado. En el Component Interface, los métodos estándar son resaltados en gris. Métodos definidos por el usuario son creados en Application Designer para proporcionar funcionalidad añadida al Component Interface. Estos métodos son funciones que son hechas accesibles a través del Component Interface. Cada función mapea un método definido por el usuario. En el Component Interface estos métodos son resaltados en azul.
Definiciones y vistas del Component Interface Se puede crear, modificar y revisar la definición del Component Interface utilizando Application Designer. Cuando trabaja con una definición del Component Interface en Application Designer, se puede observar que la vista del componente se encuentra del lado izquierdo, y la vista del Component Interface se encuentra del lado derecho. La siguiente pantalla muestra las vistas del componente y del Component Interface en Application Designer.
78 |
Qualsys Consulting S.C
Procesos PeopleSoft
La vista del componente muestra los registros y scrolls utilizando un árbol de la representación. Arrastre los campos y colecciones que desee exponer a la vista del Component Interface. La vista del Component Interface muestra las llaves, propiedades y métodos, utilizando un árbol de representación. Cuando un Component Interface es abierto, las propiedades son mostradas en el orden en el cual éstas aparecen en la vista del componente. El árbol tanto en la vista del componente como en la del Component Interface tiene diferentes íconos. Algunos íconos son utilizados tanto en la vista del componente y en la del Component Interface con significados ligeramente diferentes. A continuación se explica el significado de cada icono y columna en la vista del Component Interface.
Iconos del Component Interface Ícono
Descripción Component Interface. Grupo de llaves. Propiedad que es un campo llave desde el registro. Llave de búsqueda alterna. Grupo de Propiedades o Métodos.
79 |
Qualsys Consulting S.C
Procesos PeopleSoft Ícono
Descripción Colección. Propiedad o método definido por el usuario. Método Estándar. Propiedad que indica que es un campo requerido para el registro. Elemento en un Component Interface que no está en sincronía con el Componente.
Columnas del Component Interface Nombre
Descripción
Name
Nombre de un elemento específico en un Component Interface (como el nombre de una propiedad o un método). El nombre por default para las propiedades de los campos es el nombre del campo. El nombre por default para las colecciones es el nombre primario del record.
Record
Nombra el record en el cual un elemento específico es basado. Si el nombre del record cambia el Component Interface continua con registro apropiado
Field
Nombre del campo al cual la propiedad del Component Interface hace referencia. Como con el nombre del registro, el campo también puede cambiar y el Component Interface continúa con el campo apropiado.
Read Only
Y en esta columna indica que una propiedad específica ha sido marcada de sólo lectura.
Comment
Identifica comentarios que existen en el cuadro de Edit Property para las llaves, colecciones o propiedades.
En la vista del Component Interface, las propiedades aparecen en el mismo orden como aparecen en el componente y no están ordenadas alfabéticamente Nota.
Desarrando un Component Interface Este capítulo expondrá como: 80 |
Qualsys Consulting S.C
Procesos PeopleSoft Crear un Component Interface. Utilizar llaves, propiedades, colecciones y métodos del Component Interface. Validar el Component Interface. Configurar la seguridad del Component Interface. Probar el Component Interface. Comprender consideraciones de tiempo de ejecución.
Creando la definición del Component Interface Como cada Component Interface se refiere a un componente, se debe conocer la estructura del componente por el cual se está construyendo un Component Interface. Se puede utilizar un componente existente o bien crear uno nuevo. Muchas partes del Component Interface, tales como las llaves, son creadas en base a la configuración en el componente de referencia.
Creando un nuevo Component Interface
1. Selecciona del menú de Application Designer FileNew. 2. Selecciona Component Interface. 3. Selecciona el componente en el cual este Component Interface estará basado.
81 |
Qualsys Consulting S.C
Procesos PeopleSoft Después de seleccionar el componente apropiado, aparece un mensaje en el cual pregunta si se desea que los campos expuestos en el componente seleccionado tengan las propiedades por default del Component Interface. 4. Haga clic en Yes para confirmar las definiciones de propiedades por default o No si no se quiere ninguna propiedad creada inicialmente. Si se elije tener las definiciones de propiedades automáticamente por default por el sistema, todas las propiedades que aparecen en las páginas del componente son añadidas al Component Interface. Incluso aunque el sistema agrega las propiedades por default, quizás se necesita mover otras propiedades a la vista del componente para que este funcione. 5. Guarde el Component Interface.
Asociando un Component Interface con un menú
1. Seleccione FileOpen desde Application Designer para abrir un Component Interface existente. 2. Seleccione FileDefinition Properties desde el menú de Application Designer. 3. Seleccione el nombre del menú apropiado para este Component Interface. 82 |
Qualsys Consulting S.C
Procesos PeopleSoft Determinando cuales campos exponer La primera vez que se arrastra un scroll del componente a la vista del Component Interface, el sistema utiliza las siguientes reglas para determinar que propiedades exponer: Las llaves son expuestas solo en el nivel mas alto de la colección en la cual éstas aparecen Asegúrese de no borrar las propiedades dentro de la colección ya que esto traería como resultado una colección vacía. Si existen colecciones vacías, elimínelas; de lo contrario, aparecerán con X en la vista del Component Interface. No exponga campos que no son visibles en la vista del componente.
Utilizando llaves La siguiente tabla muestra los tres tipos de llaves del Component Interface:
Tipo de llave
Características de llave
Get keys
Estas llaves automáticamente mapean la búsqueda de encontrar llaves (field keys) en el componente. Se puede cambiar Get keys solo si se modifican las llaves del componente después de crear un Component Interface.
Find keys
Estas mapean tanto los campo llave como los campos llave de búsqueda alterna. Se puede eliminar cualquier Find Keys basado en campos llave de búsqueda alterna que no se quieran hacer disponibles para búsqueda.
Create keys
Si el componente permite la acción Add, Create Keys son generadas por el Component Interface automáticamente.
Cada búsqueda de campo llave produce un Get key y un Find key. Cada búsqueda de campo llave también produce un Create key si el componente permite el modo Add. Cada campo llave de búsqueda alterna produce un Find key.
Agregando y borrando llaves Para agregar una llave
83 |
Qualsys Consulting S.C
Procesos PeopleSoft 1. Expandir la colección de la llave de búsqueda (la primera colección) en la vista del componente. 2. Arrastrar la llave a la vista del Component Interface. Para borrar una llave 1. Seleccionar la llave en la vista del Component Interface. 2. Presionar DEL Key.
Propiedades de configuración Esta sección expone como: Crear propiedades definidas por el usuario Borrar propiedades Renombrar propiedades Nombrar propiedades del Component Interface.
Propiedades estándar Las propiedades estándar no aparecen en la vista del Component Interface en el Application Designer. La siguiente tabla nombra y define las propiedades estándar del Component Interface:
Nombre
Descripción
CreateKeyInfoCollection
Regresa una colección de elementos que describen las llaves Create. Esta propiedad es sólo de lectura.
GetKeyInfoCollection
Regresa una colección de elementos que describen las llaves Get. Esta propiedad es de sólo lectura.
FindKeyInfoCollection
Regresa una colección de elementos que describen las llaves Find. Esta propiedad es de sólo lectura.
GetHistoryItems
Controla si el componente se ejecuta en modo Update/Display o modo Correction cuando el componente es de fecha efectiva. Si GetHistory es definido como verdadero, los datos pueden ser recuperados pero no modificados. El valor por default es Falso. Esta propiedad es de sólo lectura.
84 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre
Descripción
EditHistoryItems
Controla si el Component Interface se ejecuta en modo Update/Display All , Update /Display o Correction cuando el componente es de fecha efectiva. Si los elementos EditHistory son definidos como verdaderos, entonces los datos pueden ser modificados, los elementos EditHistory trabajan en conjunto con los elementos GetHistory. El valor por default es Falso. Esta propiedad es sólo de lectura.
InteractiveMode
Controla si los valores se aplican y las reglas de negocio se ejecutan inmediatamente, o si los elementos están en espera y las reglas de negocio se ejecutan después en un paso individual. El valor por default es falso. Esta propiedad es de solo lectura.
StopOnFirstError
Cuando esta propiedad es definida como verdadera, el primer error generado por el Component Interface detiene el programa. El valor por default es falso. Esta propiedad es de solo lectura
CompIntfcName
Regresa el nombre de la clase de Component Interface como es nombrado en el Application Designer. Esta propiedad es de solo lectura.
ComponentName
Regresa el nombre de la clase de Component Interface como es nombrado en el Application Designer. Esta propiedad es de solo lectura. (Actúa igual que CompIntfcName)
Description
Regresa la descripción de la clase de Component Interface como esta definida en el Application Designer. Esta propiedad es de solo lectura.
Market
Regresa la configuración de mercado del componente utilizado para construir el Component Interface. Esta propiedad es de solo lectura.
GetDummyRows
Cuando un nuevo scroll es insertado en una página, este
85 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre
Descripción scroll es mostrado aunque no tenga dato. Cualquier scroll que este vacío tiene una fila dummy con solo la definición por default. Si esta propiedad es verdadera y se muestra la fila dummy, si es fals no se muestra la fila dummy. El valor por default es verdadero y es de lectura y escritura.
PropertyInfoCollection
Regresa una colección de elementos que describen una propiedad específica. Esta propiedad es de solo lectura.
Los objetos CompIntfPropInfoCollection soportan las siguientes propiedades:
Nombre
Descripción
Name
Esta propiedad regresa el nombre del objeto como una cadena si se ejecuta la propiedad. Esta propiedad es de solo lectura.
RecordName
Esta propiedad regresa el Record Name asociado con el objeto, ejecutando la propiedad. Esta propiedad es de solo lectura.
FieldName
Esta propiedad regresa el Field Name asociado con el objeto, ejecutando la propiedad. Esta propiedad es de solo lectura.
LabelLong
Esta propiedad regresa el valor del campo del registro LongName como una cadena. Si hay un componente anulado para este valor, este no será incluido. Esta propiedad es de solo lectura.
LabelShort
Esta propiedad regresa el valor del campo del registro ShortName como una cadena. Si hay un componente anulado para este valor, este no será incluido. Esta propiedad es de solo lectura.
IsCollection
Esta propiedad regresa verdadera si el objeto es una colección de datos, ejecutando la propiedad, y falso en caso contrario. Esta propiedad es de solo lectura.
Type
Regresa el tipo del campo como un número del objeto. Esta propiedad es de solo lectura.
OAType
Regresa el tipo del campo como un número del objeto. Esta propiedad es de solo lectura. (Igual que Type).
86 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre
Descripción
Format
Regresa el formato del campo del objeto en un número, ejecutando la propiedad. Esta propiedad es de solo lectura.
Key
Regresa verdadera si el objeto, ejecutando la propiedad, es una llave. Esta propiedad es de solo lectura.
Required
Regresa verdadera si el objeto, ejecutando la propiedad, es una propiedad requerida. Esta propiedad es de solo lectura.
Xlat
Regresa verdadera si el objeto, ejecutando la propiedad, es asociado con una tabla XLAT. Esta propiedad es de solo lectura.
Yesno
Regresa verdadera si el objeto, ejecutando la propiedad, es asociado con la tabla Yes/No. Esta propiedad es de solo lectura.
Prompt
Regresa verdadera si el objeto, ejecutando la propiedad, es asociado con una tabla prompt. Esta propiedad es de solo lectura.
Length
Regresa la longitud del objeto, ejecutando la propiedad. Esta propiedad es de solo lectura.
DecimalPosition
Regresa la posición decimal del objeto, ejecutando la propiedad. Esta propiedad es de solo lectura.
IsReadOnly
Regresa verdadera si la propiedad es marcada como solo lectura en la definición del Component Interface. Esta propiedad es de solo lectura.
Altkey
Regresa verdadera si el objeto, ejecutando la propiedad es una llave alterna. Esta propiedad es de solo lectura.
Listboxitem
Regresa verdadera si el objeto, ejecutando la propiedad es asociado con una List Box. Esta propiedad es de solo lectura.
Creando propiedades definidas por el usuario Las propiedades son aquellas propiedades en el componente que están expuestas a través del Component Interface. Las propiedades definidas por el usuario son derivadas
87 |
Qualsys Consulting S.C
Procesos PeopleSoft del componente al cual el Component Interface esta asociado y debe ser añadido manualmente. Para crear una propiedad definida por el usuario, arrastre un registro, campo o scroll desde la vista del componente a la vista del Component Interface. En la vista del Component Interface, no importa donde los inserte, porque cuando el Component Interface es abierto, el sistema convierte automáticamente el campo o registro en la propiedad del Component Interface y lo coloca en el lugar adecuado dentro de la lista de las propiedades. Cuando se arrastra una definición de la vista del componente a la del Component Interface, todas las definiciones se colocan en el Component Interface automáticamente. Cuando estas propiedades son agregadas al Component Interface, se puede eliminar cada propiedad individualmente, si se desea.
Eliminación de propiedades Para eliminar una propiedad: 1. Seleccione la propiedad que desee eliminar 2. Presione la tecla DEL o haga clic derecho y seleccione Delete.
Renombrar las propiedades definidas por el usuario Los nombres de las propiedades son generados automáticamente en función a los campos correspondientes del componente. Cambiar el nombre de una propiedad no cambia el campo al que las propiedades hacen referencia.
Para renombrar una propiedad: 1. Haga doble clic en el nombre de la propiedad o clic derecho en el nombre de la propiedad y seleccione Edit Name desde el menú emergente. 2. Introduzca el nuevo nombre de la propiedad. 3. Agregue comentarios que puedan ser útiles.
88 |
Qualsys Consulting S.C
Procesos PeopleSoft 4. Seleccione la casilla de Read-Only para hacer esta propiedad de sólo lectura. Application Designer genera un error si detecta que un Component Interface tiene propiedades con el mismo nombre cuando se crea, guarda o abre el Component Interface. Nota.
Creando las propiedades de referencia Cada Component Interface es aislado e inconsciente de otros Component Interface en el sistema. Para acceder y actualizar información desde otros Component Interface, las referencias establecen relaciones entre los Component Interface. Cree una propiedad de referencia en un Component Interface para acceder datos expuestos en otro Component Interface. Para acceder al cuadro de texto Create Reference haga clic derecho en la propiedad y seleccione Create Reference.
El cuadro de texto Create Reference tiene los siguientes campos:
Nombre
Descripción
Name
Describe el nombre de la referencia que se está creando.
Related Component
Designa el Component Interface referenciado desde el actual Component Interface.
Interface 89 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre
Descripción
Comments
Introduce cualquier comentario para mantener la referencia.
Related Key Mapping
Mapea la propiedad desde el Component Interface a la propiedad seleccionada de éste.
Valid Reference Path
Apoya objetos que pueden ser seleccionados como valores de propiedades de referencia definidas.
Creando las propiedades de sólo lectura Se puede hacer cualquier propiedad de sólo lectura. En el tiempo de ejecución, el valor de una propiedad de sólo lectura podrá ser leído pero no actualizado. Para hacer una propiedad de sólo lectura: 1. Seleccione la propiedad 2. Seleccione EditToggle Read Only Access desde el menu de Application Designer
Trabajando con colecciones Una colección es una propiedad que apunta a un scroll en el componente. Las colecciones se crean de la misma manera que se crean las propiedades (arrastre el scroll desde la vista del componente a la vista del Component Interface). Considere los siguientes puntos cuando cree colecciones: Cuando arrastre un scroll a la vista del Component Interface, todos los scrolls asociados vienen con éste. Este es el mismo comportamiento que se esperaría cuando se crea una propiedad. Las propiedades asociadas son siempre añadidas automáticamente cuando se arrastra un campo desde la vista del componente la vista del Component Interface. Después de que la propiedad o colección ha sido creada, tú puedes borrar propiedades individuales asociadas o colecciones manualmente si es necesario. Cuando se arrastra un scroll a la vista del Component Interface, todos los campos del registro contenidos en ese scroll vienen con él. Los campos en ese nivel de scroll están expuestos como parte de la misma colección.
90 |
Qualsys Consulting S.C
Procesos PeopleSoft Cuando se arrastra un scroll hijo a la vista del Component Interface, las colecciones padres son creadas automáticamente.
Trabajando con métodos Esta sección explicará como: Habilitar y Deshabilitar métodos estándar. Crear métodos definidos por el usuario.
Trabajando con funciones y métodos de sesión. Las funciones y métodos de sesión conectan a una sesión en un servidor de aplicación. Esta conexión debe ser realizada antes de poder utilizar los métodos del Component Interface.
Funciones de sesión del Component Interface.
Nombre
Descripción
CreateSession
Regresa un objeto de sesión.
Métodos de sesión del Component Interface
Nombre
Descripción
Connect
Lo conecta al servidor de la aplicación.
getCompIntfc
Regresa una referencia a un Component Interface.
Métodos estándar Un método es una definición que realiza una función específica en un Component Interface al momento de ejecución. Cada método estándar es añadido por default cuando el Component Interface es creado y esta disponible en PeopleCode u otros lenguajes de programación. Como las propiedades, los métodos son guardados como parte de un Component Interface. Existen dos tipos de métodos: los métodos estándar y los definidos por el usuario.
Nombre
Descripción
Cancel
Regresa al Component Interface actual, cancelando los cambios hechos desde la última vez que fue guardado. Regresa verdadero si fue exitoso, y falso en caso contrario.
Create
Crea una nueva instancia de un Component Interface.
91 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre
Descripción Regresa verdadero si fue exitoso y falso en caso contrario.
Find
Realiza una búsqueda de llave parcial de una instancia particular de un Component Interface, utilizando las llaves de búsqueda del nivel 0.
Get
Recupera una instancia particular de un Component Interface. Regresa verdadero si fue exitoso y falso en caso contrario.
Save
Guarda una instancia de un Component Interface. Regresa verdadero si fue exitoso y falso en caso contrario.
GetPropertyByName
Regresa el valor de una propiedad que es especificada por el nombre. Esta función es utilizada normalmente solo en aplicaciones que no pueden obtener el nombre del Component Interface.
SetPropertyByName
Define el valor de una propiedad que especificada por el nombre. Esta función es utilizada normalmente solo en aplicaciones que no pueden definir los nombres de las propiedades del Component Interface, hasta el tiempo de ejecución.
GetPropertyInfoByName
Regresa información específica, como longitud, sobre la definición de una propiedad que es especificada por el nombre. Esta función es utilizada normalmente solo en aplicaciones que no pueden obtener los nombres de las propiedades del Component Interface, hasta el tiempo de ejecución.
Por default cada Component Interface es creado con 4 métodos estándar (Cancel, Find, Get y Save).
92 |
Qualsys Consulting S.C
Procesos PeopleSoft Habilitar y deshabilitar métodos estándar
Para habilitar o deshabilitar métodos Standard: 1. Seleccione FileDefinition Properties desde el menú de Application Designer. 2. Seleccione la pestaña de Standard Methods
Creando métodos definidos por el usuario Esta sección expone como crear métodos definidos por el usuario.
93 |
Qualsys Consulting S.C
Procesos PeopleSoft Para crear un método definido por el usuario: 1. Haga clic derecho en cualquier parte de la vista del Component Interface. 2. Seleccione View PeopleCode desde el menú emergente. Aparece el editor del PeopleCode. Si está utilizando un nuevo Component Interface, el PeopleCode no aparecerá en el editor porque los métodos definidos por el usuario no han sido creados. 3. Escriba las funciones requeridas del PeopleCode. Las funciones del PeopleCode que usted escribe son almacenadas en un programa PeopleCode que es adjunto al Component Interface y asociado con el evento Methods. Un nuevo método definido por el usuario no aparece en la lista de métodos hasta que guarde el Component Interface. Haga doble clic en el icono de cualquier método definido por el usuario para regresar a éste programa PeopleCode. Nota.
4. Defina los permisos para los métodos que creó. Se deben definir permisos para cada método definido por el usuario. Si se definen los permisos a Full Access, al ejecutarse esa función esta expuesta a sistemas externos como un método en el objeto del Component Interface.
Validación de un Component Interface La validación asegura que la estructura del Component Interface aún sea válida. La estructura de un Component Interface puede convertirse en inválida debido a los cambios estructurales del componente y a sus modificaciones. Por ejemplo, puede suceder siempre y cuando un componente elimina o agrega un registro o un campo. Esto puede pasar si las llaves en el componente son añadidas o eliminadas. EL proceso de validación sólo determina si el componente de un Component Interface ha cambiado, no valida el PeopleCode que es asociado con el Component Interface. Para validar el PeopleCode, abra el componente y seleccione Tools V alidate del menú del Application Designer. Nota.
Para corregir un componente inválido, se tienen que borrar las propiedades por las cuales no hay campos o registros. Si la estructura del componente de origen ha cambiado, tendrá que borrar las propiedades viejas y agregar las nuevas propiedades en sus lugares adecuados. También quizás necesite renombrar la propiedad o la colección. Para validar un Component Interface: 1. Abra el Component Interface en Application Designer
94 |
Qualsys Consulting S.C
Procesos PeopleSoft La validación ocurre automáticamente siempre que se abra un Component Interface en Application Designer. 2. Seleccione ToolsValidate from Consistency desde el menú de Application Designer.
Configurando las opciones de seguridad Después de crear un Component Interface, se debe configurar la seguridad para éste. La seguridad para el Component Interface es proporcionada a través de las páginas de PeopleSoft Internet Architecture. Los permisos del Component Interface se establecen en la lista de permisos de la seguridad de PeopleSoft.
Para establecer la seguridad del Component Interface 1. Acceder a PeopleSoft Pure Internet Arquitecture a través del navegador y seleccionar PeopleToolsSecurityPermissions & RolesPermission Lists. 2. Seleccionar la lista de permisos para el cual se desee establecer la seguridad 3. Acceder a la página de Component Interface. 4. Seleccionar el Component Interface para el cual se desee establecer seguridad. Si desea agregar otro Component Interface a la lista, haga clic en el botón Add. 5. haga clic en Edit. 6. Establece el permiso de acceso para cada método. Seleccione Full Access o No Access. Debe conceder Full Access a por lo menos un método para hacer el componente disponible para pruebas y otros usos en línea. 7. Haga clic en OK cuando haga hecho todo lo anterior.
95 |
Qualsys Consulting S.C
Procesos PeopleSoft 8. Guarde la página.
Probando el Component Interface Después de establecer la seguridad para el Component Interface, se procede a probar los contenidos y el comportamiento utilizando el Component Interface de pruebas. Se debe probar el Component Interface antes de utilizarlo en el sistema externo. Esta herramienta ayuda a descubrir problemas en el componente o en el Component Interface. Cuando se está probando un Component Interface datos reales de la base de datos son utilizados. Por tanto, si se guarda la información que se cambió llamando el método de Save, la información es cambiada en la base de datos.
Búsqueda de un Component Interface Para probar el Component Interface, primero se realiza la búsqueda del Component Interface a probar, y después se prueba. Acceder al Component Interface Tester
Buscar el Component Interface para probarlo: 1. Abrir el Component Interface en Application Designer. 2. Seleccionar ToolsTest Component Interface desde el menú de Application Designer. El Component Interface Tester muestra en pantalla las llaves (en la columna del lado izquierdo) para obtener, crear o encontrar una instancia del Component
96 |
Qualsys Consulting S.C
Procesos PeopleSoft Interface. La columna del lado derecho proporciona un espacio para introducir los valores de las llaves a probar. 3. Introducir los valores de las llaves. Los datos que son utilizados para la prueba corresponden a los valores de las llaves que se introducirán aquí.
Nombre Interactive Mode
Descripción En el modo interactivo cualquier acción requerida ocurre inmediatamente. Cada propiedad siendo configurada causa un envío inmediato al servidor de aplicación. Esto difiere un modo no interactivo en el cual las acciones a menudo son ocultas y enviadas más tarde en batches. Por ejemplo, en el modo no interactivo si se configura una propiedad, ésta no es validada hasta realizar el momento de guardar. Sin embargo, en el modo interactivo la propiedad es validada inmediatamente. En el modo no interactivo, los errores y propiedades no son actualizados hasta que el método es ejecutado.
Get History Items
Esta opción recupera datos, aplica en los campos de fecha efectiva y es equivalente a ejecutar el modo Update/Display o Update/Display All
Edit History Items
Habilita la opción de borrar y guardar datos. Aplica para campos de fecha efectiva y es equivalente a ejecutar en el modo Update/Display o Correction
Get Dummy Rows
Esta opción es seleccionada por default. El procesador del componente proporciona líneas dummy para permitir la entrada de datos rápida cuando al nivel al que se accediendo no tiene ningún dato.
Get Existing
Es equivalente a abrir un registro en modo Update/Display o Correction. Este recupera una instancia de la base de datos.
Create New
Es equivalente a crear una nueva línea en el modo Add.
Obtención de registros existentes utilizando llaves parciales Si se quiere recuperar una llave parcial, haga clic en el botón Find. El cuadro de diálogo Find Results aparece:
97 |
Qualsys Consulting S.C
Procesos PeopleSoft
Se puede elegir la instancia específica seleccionando el botón Get Selected. Si no introduce una llave parcial antes de dar clic en Find, todos los valores de las llaves en la base de datos son regresados. Esto es lo mismo que llamar el método Find a través del Component Interface API; continuando por seleccionar un valor del Find Results, configurando el Get Key y llamando el método Get. Después de hacer clic en el botón Get Selected, el cuadro de diálogo del Component Interface Tester aparece.
Prueba del Component Interface
Prueba de las propiedades de Component Interface Desde el cuadro de diálogo del Component Interface, cambie el valor de una propiedad, haga doble clic en un valor e introduzca un nuevo valor. Esta validación incluye los eventos FieldChange y Field Edit de PeopleCode. La validación debe ser hecha cuando el método Save es llamado (SaveEdit, SavePreChange, Workflow, y SavePostChange). Si hay errores se mostrarán en el área Error Message Log. 98 |
Qualsys Consulting S.C
Procesos PeopleSoft Prueba de los métodos de Component Interface Pruebe los métodos del Component Interface haciendo clic derecho en el nombre del componente. Un menú emergente aparece mostrando los métodos estándar Save y Cancel y métodos definidos por el usuario que existen para el Component Interface. Los métodos estándar Find, Create y Get no son válidos para una instancia del componente y por lo tanto no son mostrados. Si un método de Component Interface requiere uno o más parámetros, un cuadro de diálogo aparece para introducirlos. Después de que el método es ejecutado, el mismo cuadro de diálogo aparece, mostrando los cambios a los parámetros que fueron causados por el método. Si un Component Interface no requiere parámetros.
Probando los métodos de colección La prueba de los métodos de colección se realiza dando clic derecho en el nombre de la colección. Para que aparezca un menú pop-up se deben mostrar los métodos de colección estándar. Seleccione el método de colección que desee para probar este Component Interface. Ingrese un número de objeto para el método de colección que esta utilizando. Este valor que esta utilizando puede regresar, insertar o borrar un objeto, de acuerdo a las siguientes reglas. Después de ingresare l número, el resultado aparecerá en el cuadro de dialogo. Si se regresa un valor, este se mostrara en el titulo de la barra. En caso contrario se mostrara un NO. De clic en OK o Cancel para cerrar el cuadro de dialogo.
Reglas del método de colección La siguiente tabla contiene las reglas del método de colección:
99 |
Qualsys Consulting S.C
Procesos PeopleSoft Nombre del método
Descripción
Item (index)
Regresa la línea del índice indicado. Solo el éxito o fracaso de esta rutina es interesante en el interior de la prueba del componente.
InsertItem (index)
Inserta una nueva línea antes del índice especificado si la colección es de fecha efectiva, o después del índice si no es de fecha efectiva.
DeleteItem (index)
Elimina las líneas designadas por el número de índice especificado en el cuadro de dialogo en el parámetro Enter.
ItemByKeys (key1, key2,
Regresa la fila correspondiente a las llaves especificadas. Solo el éxito o el fracaso de esta rutina es de interés en el interior de la prueba del componente.
…)
CurrentItem
Este método regresa la línea efectiva en un registro de fecha efectiva. Solo el éxito o el fracaso de esta rutina es de interés en el interior de la prueba del componente.
GetEffectiveItem (DateString, SeqNum)
Regresa el DataRow que es efectivo para la fecha y numero de secuencia específicos. Este es un caso más general de la función GetCurrentItem, la cual regresa la definición que es efectiva en ese momento. Este método solo trabaja con registros de fecha efectiva.
GetEffectiveItemNum (DateString, SeqNum)
Regresa el número del objeto que se encuentra dentro de la colección del DataRow que es efectivo para la fecha y numero de secuencia específicos. Este es un caso más general de la función GetCurrentItemNum, la cual regresa el número de la definición que es efectiva en ese momento. Este método solo trabaja con registros de fecha efectiva.
Nota. Las clases de Component Interface contienen información sobre los métodos de colección.
Determinando los parámetros ItemByKeys Usted puede obtener la firma del método ItemByKeys (o cualquier otro método) cuando este probando un Component Interface. Esto es útil para el método ItemByKeys, porque la firma es diferente para cada Component Interface.
100 |
Qualsys Consulting S.C
Procesos PeopleSoft
Para determinar los parámetros ItemByKeys: 1. 2. 3. 4. 5.
Abra la definición. Seleccione Tools Test Component Interface. Encuentre u obtenga un apropiado Component Interface poblado. Navegue por la colección apropiada. De clic derecho y seleccione ItemByKeys del menú pop-up. Aparecerá un cuadro de dialogo que muestra el parámetro y tipos específicos, y el orden en el cual serán llamdos por el ItemByKeys.
Entendiendo la sincronización La pestaña Component Interface Properties Synchronization es utilizada con PeopleSoft Mobile Agent. Este último extiende la funcionalidad de PeopleSoft Pure Internet Architecture para desconectar los dispositivos móviles, permitiendo a los usuarios continuar trabajando con sus aplicaciones PeopleSoft en una laptop o en un asistente digital personal (PDA) mientras se encuentra desconectado de internet o la red local.
101 |
Qualsys Consulting S.C
Procesos PeopleSoft Consideraciones del tiempo de ejecución En varias formas, acceder a un Component Interface es funcionalmente equivalente a trabajar con un componente en línea. Sin embargo, hay algunas diferencias importantes entre Componente Interface y componentes. En este tema hablaremos de cómo estas diferencias afectan la operación interactiva, funcionalidad diseñada para interfaces graficas, operación cliente contra servidor, y situaciones diversas.
Consideraciones generales Consideración
Descripción
WinMessage no disponible
Puede utilizar un WinMessage en un componente que se podrá utilizar para construir un Component Interface.
Email de un Component Interface
Para enviar un email de un Component Interface, utilice un evento TriggerBusinessEvent de PeopleCode, no un evento SendMail.
Related Display
Este campo no esta disponible para utilizarse en un Component Interface.
Row Insert
Si se encuentra deshabilitado el RowInsert en una página, se debe tener cuidado cuando se llama un Component Interface correspondiente para ser insertado.
Conflictos de ámbito Conflicto
Descripción
Procesamiento de bucles infinitos
Un Component Interface no debe llamar el mismo a ningún PeopleCode incluido dentro de su definición de componente, porque tal vez resulte un bucle infinito del Component Interface.
Instancias múltiples de un Component Interface
Porque los conflictos de memoria potencial, no deben crear instancias múltiples o simultaneas de un mismo Component Interface, ya sea en un procedimiento simple o en uno padre e hijo.
Programación de un Component Interface en PeopleCode Existen algunas funciones de PeopleCode que son ignoradas al llamar un Component Interface. Estas son: 102 |
Qualsys Consulting S.C
Procesos PeopleSoft Función
Descripción
WinMessage
Muestra un mensaje en un cuadro de mensajes. Solo muestra información simple.
CheckMenuItem
Cambia el estado el menú colocando una marca de verificación al elemento del menú. Esta función es obsoleta.
DisableMenuItem
Deshabilita el elemento del menú especificado.
EnableMenuItem
Habilita el elemento del menú especificado.
HideMenuItem
Esconde el elemento del menú especificado.
UncheckMenuItem
Remueve una marcada de verificación de un elemento del menú especificado.
SetCursorPos
Posiciona el cursor en un campo específico en cualquier lugar del componente actual.
TransferPanel
Controla la transferencia del panel indicado dentro de PANEL. panel_name .
TransferPage
Controla la transferencia de la página indicada dentro de PAGE. page_name .
DoModalPanelGroup
Ejecuta un componente modal.
IsModalPanelGroup
Prueba si un componente modal es ejecutado actualmente.
DoModalComponent
Ejecuta un componente modal. (Igual que DoModalPanelGroup)
IsModalComponent
Prueba si un componente modal es ejecutado actualmente. (Igual que IsModalPanelGroup)
GetSelectedTreeNode
Determina que nodo de usuario tiene seleccionado un control de árbol dinámico.
GetTreeNodeParent
Ingresa datos de un control de árbol dinámico.
RefreshTree
Actualiza el árbol dinámico.
DoSave
Salva la página actual.
DoSaveNow
Esta diseñada primordialmente para utilizarse con llamadas remotas.
103 |
Qualsys Consulting S.C
Procesos PeopleSoft Función
Descripción
Gray
Deshabilita los campos de una página.
Ungray
Habilita los campos de una página.
Generando una plantilla de PeopleCode Para acceder a un Component Interface utilizando un PeopleCodee, el Application Designer genera una plantilla en forma de lenguaje PeopleCode que puede ser adaptado para un propósito. Para generar una plantilla de PeopleCode siga los siguientes pasos: 1. Abra la definicón del Component Component Interface deseado en el Application Designer. Designer. 2. Inserte el Component Interface dentro del proyecto. a. Seleccione Insert Current Object into Project. b. Guarde el proyecto. 3. Abra el editor del PeopleCode. Puede asociar el Component Interface de PeopleCode con un record, un componente un operador manual de servicio o un programa Application Engine. 4. Seleccione el Component Interface Interface del área de trabajo del proyecto. Arrastre y suelte el objeto dentro del proyecto en el editor de PeopleCode. 5. Haga los cambios necesarios en el PeopleCode.
Entendiendo la plantilla de PeopleCode El código mostrado en esta sección es una plantilla de PeopleCode generada dinámicamente que puede ser utilizada como un punto de partida. Reemplace todos los valores por default o notaciones <*> por valores o referencias específicos para validar las variables del PeopleCode.
104 |
Qualsys Consulting S.C
Procesos PeopleSoft
Establezca la sesión de PeopleCode en modo de mensaje de error. Esta propiedad es utilizada para determinar cuantos mensajes han salido. También toma un valor numérico o una constante. El valor por default es 1. Esta propiedad determina el valor de la sesión. Aquí se muestra la lista de los modos que se pueden utilizar:
Valor del modo
Efecto
0
No regresan mensajes.
1
Valor por default. Mensajes tipo Log dentro de la colección PSMessage.
2
Emerge un cuadro de dialogo de mensajes.
3
La unión del 1 y 2.
Notas de las plantillas de PeopleCode Tome una referencia para el Component Interface proporcionándole un nombre (Ocurrirá un error en tiempo real si el Component Interface no existe). Obtenga las llaves para el Component Interface. En este ejemplo la llave Get es SDK_EMPLID. El método get() regresa un dato de la base de datos asociado con los valores de la llave. Obtenga e imprima las propiedades del nivel 0. Un código similar es generado para las propiedades SDK_BIRTHDATE y SDK_DEPTID. 105 |
Qualsys Consulting S.C
Procesos PeopleSoft Obtenga la colección de nivel 1 (SDK_BUS_EXP_PER). Obtenga e imprima las propiedades del nivel 1. Un código similar es generado para las propiedades SDK_EMPLID y SDK_BUS_EXP_SUM en la colección SDK_BUS_EXP_PER. Obtenga la colección de nivel 2 (SDK_BUS_EXP_DTL).
Sintaxis: &oSdkBusExpDtlCollection = &oSdkBusExpPer.SDK_BUS_EXP_DTL; Obtenga e imprima las propiedades del nivel 2. Un código similar es generado para las propiedades SDK_EMPLID, SDK_EXP_PER_DT, SDK_EXPENSE_CD, SDK_EXPENSE_AMT, SDK_CURRENCY_CD, SDK_BUS_PURPOSE Y SDK_DEPTID.
106 |
Qualsys Consulting S.C
Procesos PeopleSoft
Glosario API: Application Programming Interface (Interfaz de aplicación). COM: Component Object Model Component Interface Tester: Uso del Component Interface que sirve para validar el Component Interface
Metastring: Son sentencias especiales incluidas en cadenas SQL. Un metastring tiene el prefijo (%)
Script: Un guión o conjunto de instrucciones. Permiten la automatización de tareas creando pequeñas utilidades
Triggers: Un trigger o un disparador en una base de datos es un evento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).
XSLT: Es un estándar que presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. Las hojas de estilo XSLT realizan la transformación del documento utilizando una o varias reglas de plantilla. Estas reglas de plantilla unidas al documento fuente a transformar y alimentan un procesador de XSLT, el que realiza las transformaciones deseadas poniendo el resultado en un archivo de salida, o, como en el caso de una página web, las hace directamente en un dispositivo de presentación tal como el monitor del usuario.
107 |
Qualsys Consulting S.C