Ayuda sobre productos BOLD:

Personalización de consultas

Página:
< Volver

ATENCIÓN: El siguiente contenido es de uso avanzado y su utilización puede ocasionar daños irreparables en la configuración del sistema

Descripción

Muchos de los listados o tablas de la aplicación se generan a partir de sentencias SQL especiales: las consultas preprogramadas.

Las consultas preprogramadas son básicamente sentencias SQL que se pueden encontrar entre los ficheros de configuración (query.xml y querycustom.xml).

Estas consultas se puede especializar (querycustom.xml) añadiendo nuevas columnas o comportamiento adicional dependiendo del caso.

Las consultas se definen dentro de los nodos Query. Los parámetros posibles son los siguientes:

  • Nodo Field: permite modificar cómo se ven las columnas de la consulta
    • Atributo Name: indica qué columna de la consulta se va a modificar
    • Atributo Link: indica el nombre de la columna de la consulta que contiene el ID del objeto (el enlace) de otra clase nativa del sistema (ver atributo ClassName). Este objeto debería tener el mismo Name anterior.
    • Atributo ClassName: indica de qué clase es el objeto apuntado por el Link

Ejemplo de consulta

<Query Name='CCPayRollReportToPublish' ShowName=' Lista de versiones de cálculo de conceptos de nómina' KeyField="ID" >
        <Metadata>
            <Field Name="ID" ShowName= "ID" Description="Identificador del informe" />
            <Field Name="ID_CASE" ShowName= "Id Case" Description="Identificador del plan" />
            <Field Name="O_CREATEDATE" ShowName= "Instante de cálculo" Description="Instante en el que se generó el informe" />
            <Field Name="DESCRIPCION" ShowName= "Comentario" Description="Comentario asociado al informe" />
            <Field Name="STARTTIME" ShowName= "Inicio" Description="Inicio del intervalo del informe" />
            <Field Name="ENDTIME" ShowName= "Fin" Description="Fin del intervalo del informe" />
            <Field Name="O_OWNER" ShowName= "Creado por" Description="Nombre del usuario que archivó la versión" />
            <Field Name="PUBLISH_USR" ShowName= "Publicado por" Description="Nombre del usuario que publicó/consolidó la versión" />
            <Field Name="PUBLISH_DATA" ShowName= "Instante de publicación" Description="Instante en que se publicó/consolidó la versión" />
        </Metadata>
           <ExtAttributes>
                 <ExtAttribute Name="PeriodoContable" ShowName="Periodo contable" Description="Nombre del asociado al periodo contable" Type="string" Visible = "true">
                      <Expression>
                      <![CDATA[
                              ToString(Year(ENDTIME))+"-"+MonthName(ENDTIME)
                       ]]>
                      </Expression>
                 </ExtAttribute>
            </ExtAttributes>
        <Return>1</Return>
        <MSSQL>
<![CDATA[
            SELECT ID_CASE, IDREPORT_VERSION as ID, O_CREATEDATE, DESCRIPCION , STARTTIME , ENDTIME ,O_OWNER,
            CASE ISCONSOLIDATED
                     WHEN 1 THEN O_LASTUSER
                      ELSE  'Sin Publicar' END AS PUBLISH_USR,
            CASE ISCONSOLIDATED
                     WHEN 1 THEN FECHACAMBIO
                      ELSE  NULL END AS PUBLISH_DATA
            FROM WPREPORTSDEF_TB 
            WHERE STARTTIME <= :pTODATE AND ENDTIME > :pFROMDATE 
            AND ID_CASE = :pIDCASE AND ISDELETED < 1
            AND REPORTYPE = 71
]]>
        </MSSQL>
        <ORACLE>
        </ORACLE>
    </Query>

Personalización de la consulta de horarios (SequenceScheduleList)

La siguiente consulta personalizada añade el atributo de patrón de presencia como nueva columna en el maestro de horarios semanales.

	<Query Name='SequenceScheduleList'>
		<Metadata>
			<Field Name="ID"/>
			<Field Name="DURATION" Unit="DURATION_U"/>
			<Field Name="DURATIONAMBITO" Unit="DURATIONAMBITO_U"/>
			<Table Name="WPSEQUENCESCHEDULE_TB" ClassName="SequenceSchedule"/>
		</Metadata>
           <ExtAttributes>
                 <ExtAttribute Name="PresencePattern" ShowName="Patrón" Description="" Type="string" Visible = "true">
                      <Expression>
                      <![CDATA[
                              Object(ID, "SequenceSchedule").PresencePattern
                       ]]>
                      </Expression>
                 </ExtAttribute>
            </ExtAttributes>
    
		<Return>1</Return>
		<MSSQL>
<![CDATA[
SELECT  WPSEQUENCESCHEDULE_TB_1.ID, WPSEQUENCESCHEDULE_TB_1.NOMBRE, WPSEQUENCESCHEDULE_TB_1.ACTIVO,
		WPSEQUENCESCHEDULE_TB_1.CODEXT, WPSEQUENCESCHEDULE_TB_1.DESCRIPCION, WPSEQUENCESCHEDULE_TB_1.FECHACAMBIO,
	WPSEQUENCESCHEDULE_TB_1.GENERATIONMODE, WPSEQUENCESCHEDULE_TB_1.NATURALDAY, WPSEQUENCESCHEDULE_TB_1.STARTAMBITO, WPSEQUENCESCHEDULE_TB_1.DURATIONAMBITO,
	WPSEQUENCESCHEDULE_TB_1.DURATIONAMBITO_U, WPSEQUENCESCHEDULE_TB_1.DURATION, WPSEQUENCESCHEDULE_TB_1.DURATION_U, WPSEQUENCESCHEDULE_TB_1.NUMDAYSWORK,
	WPSEQUENCESCHEDULE_TB_1.NUMELEMENTS
	FROM WPSEQUENCESCHEDULE_TB WPSEQUENCESCHEDULE_TB_1
	WHERE ((WPSEQUENCESCHEDULE_TB_1.ACTIVO<>2) and ((@pID <> 0 and WPSEQUENCESCHEDULE_TB_1.id = @pID) or (@pID = 0)))
	AND (WPSEQUENCESCHEDULE_TB_1.GENERATIONMODE = 4 OR WPSEQUENCESCHEDULE_TB_1.GENERATIONMODE = 2)
    ORDER BY WPSEQUENCESCHEDULE_TB_1.ID
]]>
        </MSSQL>
        <ORACLE>
        </ORACLE>
    </Query>

Personalización de la consulta de contratos administrativos (ContractWorkerSecondTypeList)

En la siguiente personalización de la lista de contratos administrativos, se muestra la posibilidad de añadir un enlace para acceder al ciclo asignado al primer período contractual con el atributo Link:

  <Query Name='ContractWorkerSecondTypeList'>
  <Metadata>
    <Field Name="CYCLEREF_NAME" ShowName="Ciclo" Link="CYCLEREF" ClassName="SequenceSchedule"/>
    <Table Name="WPCONTRACTWORKER_TB" ClassName="ContractWorker"/>
  </Metadata>
  <Return>1</Return>
  <MSSQL>
<![CDATA[
SELECT CW.ID, CW.NOMBRE, J.CYCLEREF, J.CYCLEREF_NAME
FROM WPCONTRACTWORKER_TB CW
left join ( 
  select ID CYCLEREF, nombre CYCLEREF_NAME 
  from wpsequenceschedule_tb 
) J on CW.cycleref = J.CYCLEREF  

WHERE 
  CW.ACTIVO <> 2
	 AND ( (@pID <> 0 AND ID = @pID) OR (@pID = 0) ) 
	 AND ID_WPAdminCW IS NULL  AND ESPLANTILLA <> 1
     AND STARTCONTRACT< @pDtEnd  AND AdminEnd >= @pDtStart 
	 ORDER BY ID
  
]]>
  </MSSQL>
  <ORACLE>
  </ORACLE>
</Query>

Parámetros opcionales disponibles en el contexto de una consulta preprogramada

Están disponibles los siguientes:

  • RestrictedAreaList
  • RestrictedPermissionAreaList
  • pID
  • pUser: si vale 1 nos indica que la persona usuaria que está ejecutando la consulta tiene perfil de administrador/a.
  • pSessionID
  • pUserSession

Ver también Personalización

Was this article helpful?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
How can we improve this article?
How Can We Improve This Article?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Contenido