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

0.0.6-beta.3 • 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

Propiedades de entrada

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

  • Id [number]: Este identificador debe ser único para evitar cruce de registros cuando se use el componente en una misma vista n cantidad de veces
  • Title [string]: Texto que se muestra en la parte superior del componente, el encabezado de la sección de UDFs
  • ApiUrl [string, optional]: 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 [string]: Categoria enviada al endpoint para obtener los UDFs configurados. Ej: Si se quiere consultar los UDFs configurados para facturas debe enviar 'OINV'.
  • UdfsGroup [string, optional]: Representa le grupo de UDFs que se van a consultar.

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

Modelos y tipos expuestos

DynamicsUdfPresentation.Structures


Interfaces


IUdf

Descripción

Modelo que representa la estructura de un campo definido por el usuario (UDF).

Propiedades
  • Description [string]: Descripción del UDF.
  • FieldType [string]: Tipo de campo del UDF.
  • IsActive [boolean]: Indica si el UDF está activo para mostrarse.
  • IsRendered [boolean]: Indica si el UDF es visible en la interfaz de usuario.
  • IsRequired [boolean]: Indica si el UDF es obligatorio.
  • Name [string]: Nombre del UDF.
  • TableId [string]: Tabla asociada al UDF.
  • Values [string]: Valores válidos para el UDF.
  • IsTypehead [boolean]: Indica si el UDF tiene funcionalidad de autocompletado (typeahead).
  • DataSource [string]: Objeto o fuente de datos utilizada para llenar los valores válidos del UDF.
  • TargetToOverride [string]: Nombre del UDF que será afectado por los cambios realizados en los UDF que poseen un PostTransactionObject.
  • PostTransactionObject [string]: Objeto consultado después de seleccionar un valor en el UDF.
  • ParsedValues [IUdfValue[]]: Valores válidos del UDF que han sido procesados.

IUdfWithValue

Descripción

Extensión del modelo IUdf, que incluye un valor para el campo definido por el usuario (UDF).

Propiedades
  • Value [string | null | IUdfValue]: Valor actual del UDF. Puede ser un valor simple, nulo o un objeto de tipo IUdfValue para casos de autocompletado (typeahead).

IUdfValue

Descripción

Modelo que representa un valor válido para un campo definido por el usuario (UDF).

Propiedades
  • Value [string]: Valor válido del UDF.
  • Description [string]: Descripción del valor válido del UDF.

IUdfToReturn

Descripción

Modelo utilizado para devolver la información de un UDF con su nombre y valor.

Propiedades
  • Name [string]: Nombre del UDF.
  • Value [string | null]: Valor asignado al UDF. Puede ser nulo si no se ha asignado ningún valor.
  • FieldType [string]: Tipo de campo del UDF.

Eventos disponibles

Solicitar los UDFs al componente ESCUCHADO

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: ''
  });
}

NOTA!!! La opcion anterior aplica ciertas validaciones antes de retornar los UDFs, en caso de que no se cumplan no retorna los UDFs. Para solicitar los UDFs sin que aplique validaciones, se debe emitir un evento mediante DATA_LINE_2.

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 ESCUCHADO

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 ESCUCAHDO

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


Carga inicial de UDFs EMITIDO

Este evento es emitido cuando la consulta de UDFs se finaliza, este emite todos los UDFs consultados. Para escucharlo solo hay que configurar el siguiente canal:

Register<CL_CHANNEL>(this.componentId, CL_CHANNEL.OUTPUT_2, this.YourHandlerMethod, this.callbacks);

Endpoints a configurar

GET api/Udfs

Descripción

Utilizado para obtener los UDFs configurados.

Parametros
  • Category [string, query]: Nombre de la tabla de SAP.
  • IsUdfLine [boolean, query]: Indica si estan consultando los UDFs de lineas del documento.
  • Configured [boolean, query]: Indica si se van a obtener los UDFs configurados o los disponibles en SAP.
Respuesta esperada
  • Structures.Interfaces.ICLResponse<DynamicsUdfsConsole.Structures.Types.Udf[]>

GET api/Udfs/Values

Descripción

Consulta los valores de un UDF en base al valor de otro UDF

Parametros
  • Dbo [string, query]: Nombre del procedimiento almacenado o funcion
  • Value [string, query]: Valor seleccionado del UDF base
  • DboType [boolean, query]: Tipo de objeto de base de datos FN | SP
Respuesta esperada
  • Structures.Interfaces.ICLResponse<DynamicsUdfsConsole.Structures.Types.Group[]>

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

6

Version

0.0.6-beta.3

License

none

Unpacked Size

249 kB

Total Files

18

Last publish

Collaborators

  • abarrantes
  • aguiladecampo