Ir al final de los metadatos
Ir al inicio de los metadatos

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual View Version History

« Anterior Versión 3 Siguiente »

Si necesitamos ampliar un BO para ampliar sus atributos, lo haremos desde la transacción SWO1.

Desde esta transacción informaremos el BO que queramos ampliar y luego haremos clic en Subtipo:

Luego, nos pedirán estos datos. Los informaremos según nuestro criterio:

Una vez creado, generaremos un nuevo atributo. En este ejemplo estamos tratando con un BO de pedido de compras por tanto la tabla maestra de datos es la EKKO si queremos obtener un campo de, por ejemplo, el NIF del proveedor crearemos el atributo siguiendo los siguientes pasos:

1 - Accedemos al BO que hemos creado por la SWO1

2 - Nos posicionamos sobre los atributos del BO y hacemos clic en crear.

3 - Se nos mostrará la siguiente ventana:

3.1 - Informamos la tabla origen de dónde queremos obtener el atributo, en este caso LFA1 (maestro de proveedores) y del campo STCD1.

4 - Hacemos doble clic sobre el nuevo atributo generado y se mostrará la siguiente ventana:

4.1 - Modificaremos la fuente si es necesario. Hay dos opciones:

  • Virtual - Se marcará en caso de que el atributo lo obtengamos de una tabla diferente a la fuente del BO (en este caso la tabla fuente del BO BUS2012 es la EKKO).
  • Campo de BD - Se marcará en el caso de que el atributo se obtenga directamente de la tabla fuente del BO.

En nuestro caso debemos poner virtual ya que accedemos a la LFA1.

5 - En caso de haber creado un atributo virtual, tendremos que definir un código para mapear el valor de ese atributo. Para ello nos posicionamos sobre el atributo dentro de la jerarquía y hacemos clic en el botón superior de "Programa".

El siguiente código es un ejemplo de como mapear el NIF del proveedor:

Programa ZBUS2012
*****           Implementation of object type ZBUS2012             *****
INCLUDE <object>.
begin_data object. " Do not change.. DATA is generated
* only private members may be inserted into structure private
DATA:
  " begin of private,
  "   to declare private attributes remove comments and
  "   insert private attributes here ...
  " end of private,
  BEGIN OF key,
    purchaseorder LIKE ekko-ebeln,
  END OF key,
  taxnumber1 TYPE lfa1-stcd1,
  name       TYPE lfa1-name1.
end_data object. " Do not change.. DATA is generated

TABLES lfa1.
DATA gs_lfa1 TYPE lfa1.

FORM update_lfa1.
  DATA: lv_order TYPE ekko-ebeln.
  lv_order = object-key-purchaseorder.

  CLEAR gs_lfa1.
  SELECT SINGLE *
    FROM ekko AS a
    INNER JOIN lfa1 AS b ON a~lifnr EQ b~lifnr
    INTO CORRESPONDING FIELDS OF gs_lfa1
    WHERE a~ebeln EQ lv_order.
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.

get_property taxnumber1 changing container.
IF gs_lfa1 IS INITIAL.
  PERFORM update_lfa1.
ENDIF.

IF gs_lfa1-stceg IS NOT INITIAL.
  object-taxnumber1 = gs_lfa1-stceg.
ELSEIF gs_lfa1-stcd1 IS NOT INITIAL.
  object-taxnumber1 = gs_lfa1-stcd1.
ELSEIF gs_lfa1-stcd2 IS NOT INITIAL.
  object-taxnumber1 = gs_lfa1-stcd2.
ELSEIF gs_lfa1-stcd3 IS NOT INITIAL.
  object-taxnumber1 = gs_lfa1-stcd3.
ELSEIF gs_lfa1-stcd4 IS NOT INITIAL.
  object-taxnumber1 = gs_lfa1-stcd4.
ENDIF.

swc_set_element container 'TaxNumber1' object-taxnumber1.
end_property.

6 - Una vez guardado el programa. Volvemos a la pantalla del BO con la jerarquía y hacemos clic en el botón de generar .

7 - Volvemos a la pantalla principal de la SWO1 e informamos el BO estándar del que creamos el subtipo Z y hacemos clic en Opciones/Delegación:

8 - Por último, crearemos una nueva entrada de delegación para el BO BUS2012 indicando que herede de la ZBUS2012 con los nuevos atributos.

  • Sin etiquetas