martes, 27 de marzo de 2012

Programación BOL/GenIL. Crear nuevo bloque (2/7)

Siguiendo el primer post de programación BOL que podeis ver aquí a continuación vamos a ver el customizing necesario para que el bloque sea visible en nuestra actividad.

Lo primero que necesitamos es relacionar el componente con nuestra tabla Z. Básicamente es indicarle al componente que también debe tener en cuenta nuestra tabla y además definir una clase para gestionarla.

  • Definición del componente
    La ruta para definir el componente es SPRO-> Customer Relationship Management-> CRM Componentes multiaplicacionales-> Layer de interacción/Objeto genérico-> Parametrizaciones básicas
    Seleccionamos definición del componente y creamos un nuevo componente con su descripción e indicamos la tabla de objetos y de modelos que hemos definido anteriormente. En este punto hay que definir la clase que va a implementar el componente. Os recomiendo comenzar el nombre de la clase por ZL para mantener una nomenclatura lo más estándar posible. La definición de esta clase la veremos más adelante. En este mismo punto podemos ver las definiciones estándar. Estas definiciones nos sirven como modelo para definir la tabla de objetos y la tabla de modelos tanto en estructura como en datos. El componente que he usado como modelo es el MP. También se puede utilizar la clase de estos modelos estándar para ayudarnos a definir la nuestra.

  • Set de componentes
    A continuación debemos asignar nuestro componente al set que nos interese. Es necesario averiguar el set que se corresponde con el componente que vamos a ampliar. Para ello obtenemos el componente que queremos ampliar en WebUI, y vamos a la ampliación del componente (tx BSP_WD_CMPWB) . En este caso concreto el componente es el BT125H_TASK. Visualizamos el componente y vamos a la opción "Editor de repository en tiempo de validez" y expandimos la carpeta "Models"

    El set de componentes es el que indica el modelo, en este caso ONEORDER. Volvemos al punto de customizing anterior y en este caso seleccionamos "Definición de set de componentes". Aqui buscamos nuestro set. Lo marcamos y seleccionamos "Asignación de componentes". Ahora añadimos una nueva entrada con el componente Z que hemos creado en el punto anterior.
Con esto hemos finalizado la parametrización necesaria para que funcione nuestra ampliación. Pero no hemos terminado, aún nos queda tarea por hacer, la veremos en siguientes post.

Relacionado:
Programación Bol/GenIL (1/.)
Programación Bol/GenIL (3/.)
Programación Bol/GenIL (4/.)
Programación Bol/GenIL (5/.)   
Programación Bol/GenIL (6/.)

miércoles, 14 de marzo de 2012

Programación BOL/GenIL. Crear nuevo bloque (1/7)

En los siguientes post voy a contaros como poner un nuevo bloque en una actividad que muestre los datos de una tabla Z. Obviamente esta tabla está relacionada con la actividad. Este tipo de bloque se conoce como programación BOL/GenIL y se puede extrapolar a cualquier tipo de pantalla/objeto en CRM.

En este primer post veremos como crear la estructura de datos necesaria para que los datos de una tabla Z nos sean útiles.

La entidad Bol necesita tres tablas y una estructura para que todo funcione. Se necesita una tabla para guardar los datos, una tabla para los objetos y otra para los modelos. También necesitamos una estructura idéntica a la tabla para la configuración. Ahora las vemos en detalle

  • Tabla  de datos
    La tabla de datos tiene el requisito de que la clave primaria debe componerse únicamente del mandante y del ID. El ID puede ser de cualquier tipo , GUID de CRM, numérico, alfanumérico, no hay restricción, pero sólo un campo de ID. También necesitamos un campo de relación con el objeto en el que vamos a colgar la tabla. Lo normal es que este campo sea un GUID de CRM. Se puede utilizar el ID de visualización pero internamente se trabaja mejor con el GUID. En la tabla si definimos los campos con un elemento de datos del sistema o propio tendremos las descripciones directamente en web con lo que nos ahorramos el tener que definirlas en ese entorno. Por lo demás la tabla la definís con los campos que queráis sin restricciones.

  • Estructura
    La estructura debe ser idéntica a la tabla. Por lo demás no hay ningún tipo de restricción para la estructura

  • Tabla de objetos
    Esta tabla indica los objetos que posee nuestra entidad BOL. El objeto básico que necesitamos es el objeto Raiz pero se puede definir cualquier otro tipo de objeto como objeto de búsqueda, objeto resultado, objeto de texto... La tabla de referencia que he utilizado en este ejemplo es la CRMC_OBJS_MPIL. En los siguientes post os indicaré como obtener la tabla de modelo, por ahora con que sepáis que se copia de esta es suficiente. La estructura de la tabla es la siguiente:

    El dato básico a rellenar es:
    Object_name -> Root
    Object_kind -> A
    Key_struct -> "Nombre de la estructura"
    Attr_struct -> "Nombre de la estructura"

  • Tabla de modelo
    La tabla de modelo define las relaciones entre los diferentes componentes. Es necesario definir el modelo para el objeto Root que se relaciona con él mismo. La tabla de modelo que he utilizado es la CRMC_MODEL_MPIL. Como en el caso anterior os explicaré de donde obtener el modelo y por que ese modelo en los siguientes post. La estructura de la tabla es la siguiente:

    Y la entrada que se deben crear, como mínimo es:

    Es necesario relacionar mediante una clave externa esta tabla de modelo y la tabla de objetos. La clave la creamos mediante el icono de la llave y se crea sobre el campo "OBJECT_A" con los siguientes datos:

Con esto  tenemos toda la estructura de datos creada y preparada para el customizing.