@clavisco/dynamics-udfs-presentation
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

Acerca de @clavisco/dynamics-udfs-presentation

Token: Dynamics-UDFs-Presentation

Permite cargar un conjunto de UDFs para un documento o vista, ofrece soporte para campos de tipo fecha, texto, número, combo box y typeahead.

¿Qué resuelve?

Facilita la presentación de udfs asociados configurados mediante @clavisco/core de UDFs dinámicos para un documento o vista, al mismo tiempo que reduce considerablemente el tiempo de implementación.

Dependencias

Resumen de versión

Características (Features)

  • Se implementa un parametro (UdfsGroup) adicional al componente para realizar el filtrado de udfs por grupo, el parametro de tipo string se debe de pasar el grupo por el cual se desea filtrar los udfs. Este parametro es opcional, en caso de que no se pase, se filtran todos los udfs configurados

Correcciones (Fixes)

  • Ahora el nombre y la descipción cambian de lugar, de modo que el nombre del UDF aparece en el tooltip del campo y la descripción como el texto del campo

Dynamics UDFs Presentation variables

Está compuesta por un módulo y su respectivo componente visual cl-dynamics-udfs-presentation a continuacion se detalla sus diferentes atributos:

  • Id(Requerido): Este identificador debe ser único para evitar cruce de registros cuando se use el componente en una misma vista n cantidad de veces
  • Title(Requerido): Texto que se muestra en la parte superior del componente, el encabezado de la sección de UDFs
  • ApiUrl(Opcional): Url base que el componente usará para hacer el consumo servicios ofrecidos por el API. Puede ser opcional solamente si hay un interceptor que la agregue.
  • UdfsCategory(Requerido): Categoria enviada al endpoint para obtener los UDFs configurados. Ej: Si se quiere consultar los UDFs configurados para facturas debe enviar 'OINV'.

Endpoints que utiliza

  • (api/Udfs?Category={udfs-category}&IsUdfLine=false&Configured=true): Este endpoint se utiliza para obtener los UDFs configurados de la categoria indicada.
  • (api/Udfs/Values?Dbo={database-object-name}&Value={base-udf-value}&DboType={dbo-type}): Este endpoint se utiliza cuando los valores de un UDF dependen del valor seleccionado en otro UDF(Búsquedas formateadas)

¿Cómo se usa?

  1. Primero debemos cumplir las depencias mencionadas al inicio de este documento.
  2. Ejecutar el comando npm i @clavisco/dynamics-udfs-presentation en el directorio root del proyecto.
  3. Importar el módulo DynamicsUdfsPresentationModule en el app.module.ts o en el módulo donde desea utilizar la presentación de udfs.
  4. Proveer el servicio LinkerService en el módulo del componente donde se esta implementando.
@NgModule({
declarations: [
//...your declarations
],
imports: [
//...your imports
DynamicsUdfsPresentationModule 
],
providers: [
{
provide: 'LinkerService',
useClass: LinkerService
}
]
})
  1. Inyectar el servicio LinkerService en el constructor del componente donde se está realizando la implementación para realizar la comunicación con el componente constructor(@Inject('LinkerService') private linkerervice: LinkerService)
  2. Ejemplo de implementación del componente en el template html
<cl-dynamics-udfs-presentation
[Id]="componentId"
[Title]="Title"
[ApiUrl]="ApiUrl"
[UdfsCategory]="Category">
</cl-dynamics-udfs-presentation>
  1. Video explicativo sobre el uso @clavisco/dynamics-udfs-presentation

Solicitar los UDFs al componente

Para solicitar los UDFs al componente se debe emitir un evento al canal DATA_LINE_1 de la siguiente manera:

RequestUDFsToComponent(): void
{
this.linkerService.Publish({
CallBack: CL_CHANNEL.DATA_LINE_1,
Target: this.componentId,
Data: ''
});
}

Y para poder capturar estos UDFs se debe registrar al canal OUTPUT de la siguiente manera:

callbacks: ICLCallbacksInterface<CL_CHANNEL> = {
Callbacks: {},
Tracks: []
};
// ...more code
ngOnInit()
{
Register<CL_CHANNEL>(this.componentId, CL_CHANNEL.OUTPUT, this.OnGetUdfs, this.callbacks);
}

OnGetUdfs = (_event: ICLEvent) => {
this.UDFs = JSON.parse(_event.Data);
}

Establecer valor a UDFs

Para establecer el valor de uno o varios UDFs, se debe emitir un evento mediante el siguiente canal INFLATE de la siguiente manera:

SetUDFsValues(): void
{
let udfValues = [
{
Value: '1',
Name: 'U_BatchId'
},
{
Value: '234234234',
Name: 'U_DocumentKey'
}] as DynamicsUdfPresentation.Structures.Interfaces.IUdfWithValue[];

this.linkerService.Publish({
Target: this.componentId,
CallBack: CL_CHANNEL.INFLATE,
Data: JSON.stringify(udfValues)
});
}

Limpiar campos

Para limpiar los valores de los campos de UDFs se tiene que emitir un evento mediante el canal RESET de la siguiente manera

CleanFields(): void
  {
    this.linkerService.Publish({
      Target: this.componentId,
      Data: '',
      CallBack: CL_CHANNEL.RESET
    });
  }

Con solo emitir ese evento deberia ser suficiente para que los campos de los UDFs se limpien

Recomendaciones

Visitar @clavisco/core para conocer la amplia gama de funcionalidades que se nos ofrecen para facilitarnos el proceso de desarrollo

Visitar @clavisco/linker con el fin de entender los procesos de comunicacion entre componentes y hacia los componentes


ClavisCo ©

Readme

Keywords

none

Package Sidebar

Install

npm i @clavisco/dynamics-udfs-presentation

Weekly Downloads

23

Version

0.0.5

License

none

Unpacked Size

237 kB

Total Files

18

Last publish

Collaborators

  • aguiladecampo
  • abarrantes