V10 RecursosReferencia
RecursosReferencia
Referencia
Años | List of Articles

¿Cómo realizar drilldown correctamente?

Última modificación el 03/05/2024

Los proyectos de extensibilidad pueden contener código para realizar el drilldown para la mayoría de las entidades del ERP o incluso para documentos y algunas exploraciones.

Para ello, es necesario conocer los códigos internos que utiliza el ERP para instanciar la pantalla en cuestión y cargar la información deseada. Estos códigos se componen de varios elementos, desde la indicación del módulo al que pertenece la pantalla hasta el propio mantenimiento, pasando por el identificador del documento, etc. El método para ejecutar un drilldown es DrilDownLista, disponível na interface pública da plataforma (StdPlatBS100.StdBSInterfPub). Esta interfaz está disponible en cualquier CustomClass, CustomForm o al suscribirse a eventos de la interfaz: PSO.DrillDownLista.

La siguiente lista representa los códigos más importantes y más utilizados asociados al módulo correspondiente.

NombreAplicación/MóduloEventoAudit (ej: mantenimiento)Parámetros
ArtículosBASGCP_MOSTRAMANUTENCAOmnuTabArtigoCódigo del artículo
ClienteBASGCP_MOSTRAMANUTENCAOmnuTabClientesCódigo de cliente
Ciclo de ventasCRMCRM_MOSTRAMANUTENCAOmnuTabCabecCicloVendaCódigo del ciclo
ActividadesCRMCRM_MOSTRAMANUTENCAOmnuTabActividadesIdentificador de actividad
Diarios de trabajoGPRGPR_MOSTRAMANUTENCAODiariosTrabalhoCódigo del diario
Plan de cuentasCBLCBL_PlanoContasn/aEjercicio; Cuenta (*)
Procesos STPSTPevtDD_STP_Processosn/aClave de proceso (*)
Documento de ventasVNDGCP_EditarDocumenton/aClave del documento (*)
Documento de compraCMPGCP_EditarDocumenton/aClave del documento (*)
Documento contableCBLCBL_EditaDocumentoIDn/aClave del documento (*)
Extractos de CCCCTGCP_MOSTRAEXPLORACAOmnuExpCCExtractoTipo de entidad; Entidad
Pendientes de CCCCTGCP_MOSTRAEXPLORACAOmnuExpCCPendentesGrelhaTipo de entidad; Entidad
Extracto bancarioTESGCP_MOSTRAEXPLORACAOmnuExpExtractoBancarioCuenta; F. inicial; F. final

(*) Más detalles abajo.

Solo tiene que hacer referencia a la assembly ConstantesPrimavera100 en su proyecto para encontrar fácilmente todo el código en constantes Audit. La siguiente tabla muestra algunos ejemplos.

AuditConstante
mnuTabArtigoConstantesPrimavera100.Audit.TAB_ARTIGOS
mnuTabClientesConstantesPrimavera100.Audit.TAB_CLIENTES
mnuTabCabecCicloVendaConstantesPrimavera100.Audit.TAB_CICLO_VENDAS
mnuTabActividadesConstantesPrimavera100.Audit.TAB_ACTIVIDADES
mnuExpCCExtractoConstantesPrimavera100.Audit.EXP_CC_EXTRACTO
mnuExpCCPendentesGrelhaConstantesPrimavera100.Audit.EXP_CC_PENDENTES_GRELHA
mnuExpExtractoBancarioConstantesPrimavera100.Audit.DOC_EXTRACTO

He aquí algunos ejemplos de cómo utilizar los códigos para abrir mantenimientos, documentos y exploraciones en los distintos módulos.

Mantenimientos

void ExecutaDrillDown(string Aplicacao, string Evento, string Param1, string Param2 = ", string Param3 = ", string Param4 = ", string Param5 = ")
{
	StdBESqlCampoDrillDown campoDrillDown = new StdBESqlCampoDrillDown
	{
		ModuloNotificado = Aplicacao,
		Tipo = StdBESqlTipos.EnumTipoDrillDownListas.tddlEventoAplicacao,
		Evento = Evento
	};

	StdBEValoresStr param = new StdBEValoresStr();
	param.InsereNovo("Param1", Param1);

	if (!string.IsNullOrWhiteSpace(Param2))
		param.InsereNovo("Param2", Param2);

	if (!string.IsNullOrWhiteSpace(Param3))
		param.InsereNovo("Param3", Param3);

	if (!string.IsNullOrWhiteSpace(Param4))
		param.InsereNovo("Param4", Param4);

	if (!string.IsNullOrWhiteSpace(Param5))
		param.InsereNovo("Param5", Param5);

	PSO.DrillDownLista(campoDrillDown, param);
}

Este método se puede colocar en una clase compartida para mostrar cualquier mantenimiento del ERP, indicando simplemente los códigos mencionados anteriormente.

Una vez que conocemos los códigos de los mantenimientos, el código de los eventos y el módulo/aplicación al que pertenecen, podemos invocar el método. En los siguientes ejemplos, el Param1 recibe el código de mantenimiento y el Param2 recibe la clave del respectivo registro que se va a cargar.

NOTA: En los mantenimientos, el primer parámetro debe ser siempre el código de mantenimiento.

Clientes (BAS)

ExecutaDrillDown("BAS", "GCP_MOSTRAMANUTENCAO", "mnuTabClientes", "SOFRIO");

Proveedores (BAS)

ExecutaDrillDown("BAS", "GCP_MOSTRAMANUTENCAO", "mnuTabFornecedores", "F0001");

Artículos (BAS)

ExecutaDrillDown("BAS", "GCP_MOSTRAMANUTENCAO", "mnuTabArtigo", "A0001");

Contactos (CRM)

ExecutaDrillDown("CRM", "CRM_MOSTRAMANUTENCAO", "mnuTabCabecCicloVenda", "CV_HW");

Actividades (CRM)

ExecutaDrillDown("CRM", "CRM_MOSTRAMANUTENCAO", "mnuTabPlanoActividades", "A29DF423-4D63-4A29-B42C-6DB70546CB7A");

Diarios de trabajo (GPR)

ExecutaDrillDown("GPR", "GPR_MOSTRAMANUTENCAO", "DiariosTrabalho", "20");

(*) En los siguientes ejemplos, no se indica el código del mantenimiento, ya que el propio código del evento ya indica el mantenimiento a mostrar. En este caso, los parámetros solo se refieren a la clave de registro, que en algunos casos puede ser compuesta.

Plan de cuentas (CBL)

ExecutaDrillDown("CBL", "CBL_PlanoContas", 2019, "21111001");

Procesos (STP)

ExecutaDrillDown("STP", "evtDD_STP_Processos", "PRC/000/2018/1");

Documentos de logística

El método mostrado anteriormente puede utilizarse para visualizar estos documentos, solo tiene que introducir los parámetros correctos.

Para editar un documento logístico, como los documentos de Ventas (VND), Compras (CMP), Internos (INT), Inventario (INV), Cuentas corrientes (CCT) y Tesorería (TES), además de necesitar indicar el código del evento que desencadena el drilldown (GCP_EditarDocumento) también es necesario indicar todos los parámetros clave para la edición de un documento de este tipo, respetando este orden: Módulo, Filial, Tipo de documento, Serie y Número de documento.

El siguiente ejemplo muestra cómo editar el documento FA 2019/1 del módulo de Ventas.

ExecutaDrillDown("VND", "GCP_EditarDocumento", "V", "000", "FA", "2019", "1");

Existe, no obstante, otra forma de editar estos documentos sin especificar todos los parámetros, utilizando solo el identificador del documento (campo Id de la tabla de cabeceras del documento correspondiente). Con esta opción, el evento a indicar es GCP_EditarDocumentoId y los únicos parámetros que tiene que pasar son el Módulo y el Identificador.

ExecutaDrillDown("VND", "GCP_EditarDocumentoId", "V", "BCB54D22-739A-40C0-878F-ECFBE6EDC369");

Documentos de contabilidad

El siguiente ejemplo muestra cómo editar un documento contable en el que el único parámetro a introducir es el identificador del documento (campo Id de la tabla CabecMovCBL) a través del drilldown.

Documento contable (CBL)

ExecutaDrillDown("CBL", "CBL_EditaDocumentoID", "47F38B48-9201-11DC-B190-0020E024149C");

Exploraciones

También puede realizar drilldown para las exploraciones del ERP. Sin embargo, debido a las especificidades de estas pantallas, es necesario tratarlas individualmente, según el caso. La principal especificidad, común a todos los drilldowns de exploraciones es el nombre del primer parámetro, que debe ser obligatoriamente "Exploracao". En cuanto a los demás parámetros, algunas exploraciones requieren parámetros específicos (nombre y valor) para cargar la información.

Los siguientes ejemplos muestran cómo realizar el drilldown para algunas exploraciones.

public void ExecutaDrillDownExploracaoCCT(string Exploracao, string TipoEntidade, string Entidade)
{
	StdBESql100.StdBESqlCampoDrillDown objCampoDrillDown = new StdBESql100.StdBESqlCampoDrillDown
	{
		ModuloNotificado = "CCT",
		Tipo = StdBESql100.StdBESqlTipos.EnumTipoDrillDownListas.tddlEventoAplicacao,
		Evento = "GCP_MOSTRAEXPLORACAO"
	};

	StdBE100.StdBEValoresStr objParam = new StdBE100.StdBEValoresStr();
	objParam.InsereNovo("Exploracao", Exploracao);
	objParam.InsereNovo("TipoEntidade", TipoEntidade);
	objParam.InsereNovo("Entidade", Entidade);

	PSO.DrillDownLista(objCampoDrillDown, objParam);

	objCampoDrillDown = null;
	objParam = null;
}

Extractos de cuenta corriente (CCT)

ExecutaDrillDownExploracaoCCT("mnuExpCCExtracto", "C", "SOFRIO");

Esta exploración requiere los parámetros Tipo de entidad y Entidad.

Pendientes (CCT)

ExecutaDrillDownExploracaoCCT("mnuExpCCPendentesGrelha", "C", "SOFRIO");

Esta exploración requiere también los parámetros Tipo de entidad y Entidad.

Extractos bancarios (TES)

public void ExecutaDrillDownExploracaoTES(string Exploracao, string Conta, string DataInicial, string DataFinal)
{
	StdBESql100.StdBESqlCampoDrillDown objCampoDrillDown = new StdBESql100.StdBESqlCampoDrillDown
	{
		ModuloNotificado = "TES",
		Tipo = StdBESql100.StdBESqlTipos.EnumTipoDrillDownListas.tddlEventoAplicacao,
		Evento = "GCP_MOSTRAEXPLORACAO"
	};

	StdBE100.StdBEValoresStr objParam = new StdBE100.StdBEValoresStr();
	objParam.InsereNovo("Exploracao", Exploracao);
	objParam.InsereNovo("Conta", Conta);
	objParam.InsereNovo("DataInicial", DataInicial);
	objParam.InsereNovo("DataFinal", DataFinal);

	PSO.DrillDownLista(objCampoDrillDown, objParam);

	objCampoDrillDown = null;
	objParam = null;
}
ExecutaDrillDownExploracaoTES("mnuExpExtractoBancario", "CXREC", "1/1/2018", "31/12/2018");

Esta exploración utiliza los parámetros Cuenta, Fecha inicial, y Fecha final; las "Fechas" (los dos últimos) no son obligatorios.

Puede consultar más ejemplos de drilldown en este repositorio de GitHub.

Bookmark or share this article
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!