Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

Si necesitamos es requerido, es posible ampliar un objecto de negocio (BO - Business Object) para así ampliar sus atributos, lo haremos desde .

Para esto:

1.- Se accede a la transacción SWO1.Desde esta transacción informaremos , se informa el BO que queramos ampliar y luego haremos se será ampliado y se hace clic en el botón ‘Subtipo:

Image Removed

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

Image Removed

...

2.- Se abrirá una ventana emergente llamada ‘Crear tipo de objeto’ en la que se podrá informar distintos datos.

...

3.- Una vez creado el ‘Tipo de objeto’ se procederá a generar un nuevo atributo.

En este ejemplo estamos tratando con se trata un BO de pedido de compras por . Por tanto, la tabla maestra de datos es la EKKO si queremos .

Si por ejemplo se requiere obtener un campo de, por ejemplo, el tipo ‘NIF del proveedor crearemos proveedor’, se creará el atributo siguiendo los siguientes pasos:

1 - Accedemos Acceder al BO que hemos creado por la SWO1

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

3 - Se nos mostrará abrirá la siguiente ventana:

Image Removed

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 ventana emergente llamada ‘Crear con valores de campo propuestos Data Dictionary’.

En esta ventana se deberá indicar la tabla origen desde la cual se obtendrá el atributo y seleccionar el campo específico que almacena el dato.

Para el ‘NIF del poveedor', estos serían:

  • Tabla: LFA1

  • Campo: STCD1

...

4 - Dar doble clic sobre el nuevo atributo generado y se mostrará para visualizar la siguiente ventana:Image Removed

...

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
Bloque de código
languagetext
*****           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 Image Added.

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.

...