Mostrando entradas con la etiqueta ABAP. Mostrar todas las entradas
Mostrando entradas con la etiqueta ABAP. Mostrar todas las entradas

jueves, 25 de agosto de 2016

Cómo crear un punto de ampliación en Web Dynpro ABAP

Introducción:

En este artículo veremos paso a paso el procedimiento para crear puntos de ampliación en WD ABAP para ampliar un componente de WD estándar con código o elementos UI. Abarcaremos las siguientes cosas:

  • Crear implementación para ampliar los elementos UI estándar de WD.
  • Cómo usar la implementación  para ampliar métodos estándar en vistas/componentes. 
  • Crear vista/ventana como ampliación.
  • Borrar implementación.

Crear ampliación:

Para crear una implementación realiza los siguientes pasos:
  1. Abre el componente WD para ampliar desde la SE80.
  2. Doble click en el COMPONENTCONTROLLER.
  3. Click en el icono del menu 
  4. Pon el nombre de la ampliación en el pop-up y haz click en
  5. Guárdalo en una orden igual que en otras aplicaciones SAP.
  6. Ahora cada vez que necesites hacer cambios como ampliaciones en el componente WD. Sólo haz click en el icono del menú 
  7. Selecciona la implementación de la ampliación y haz click en el botón 


  8. Ahora se mostrará el nombre del componente seleccionado con el estatus de ampliación como en la siguiente imagen:


Ampliar Elementos UI:

La única cosa que se puede hacer en los elementos UI estándar desde el editor del layout es borrarlos como se muestra a continuación:


Después del borrado una marca  aparecerá al lado del elemento UI borrado.
Después de borrar el elemento UI, puedes crear otro elemento UI bajo la ampliación, con las mismas propiedades que el borrado, añadiendo los cambios que necesites.
Para recuperar el item borrado haz click derecho en el elemento UI en la jerarquía y haz click en "undo deletion" como se muestra a continuación:

Después de hacer estos cambios guarda la ampliación y actívala.


Ampliar métodos estándar:

Abre el componente/vista para ampliar y haz click en el botón  en el menú. Elije la implementación de la ampliación donde quieras ampliar el componente WD.
Para ampliar métodos estándar desplázate hacia la izquierda en la etiqueta de métodos a las columnas "pre-exit", "post-exit" y "overwrite-exit". Puedes escribir tu propio código para ejecutarlo antes/después de estos métodos en los métodos "pre-exit/post-exit" creados como ampliaciones.
Haz click sobre el botón "pre-exit" del método que quieras ampliar si quieres escribir el código antes que el código del método que se ejecuta o "post-exit" si quieres escribir el código después que el código del método que se ejecuta. 
En caso de que quieras borrar el método estándar completamente por tu código, haz click en el botón "overwrite-exit". Esto sobrescribirá el código en el método estándar con el nuevo método creado.
Para borrar los métodos pre-exit, post-exit y overwrite-exit haz click sobre cualquier método estándar y elije el botón de borrado pre-exit  , el botón de borrado post-exit  o el botón de borrado overwrite-exit . Estos borrarán el código ampliado.


Crear una vista/ventana como ampliación:

Para crear una vista como ampliación, click derecho en las vistas y selecciona "Crear como ampliación", y elije la ampliación sobre la que quieres ampliar el componente.
Parecido a crear una ventana como ampliación, click derecho en ventanas y selecciona "Crear como ampliación", y elike la ampliación sobre la que quieres ampliar el componente.


Borrar implementación de ampliación.

Para borrar una implementación de una ampliación localízala en el paquete.
Para hacer eso:

  1. Ve a la SE80.
  2. Selecciona el paquete donde se guarda la ampliación.
  3. Selecciona la implementación dentro de la carpeta como se muestra:

    Una vez borrada la implementación, los cambios hechos en la ampliación serán revertidos en el componente WD.

SAP Comunity Network












lunes, 18 de julio de 2016

Habilitar guardar preliminarmente en solicitudes de pedidos

Para habilitar el gaurdado preliminarmente se debe realizar los siguientes pasos:

- Ejecutar transacción SFW5:
Esta transacción activa Business function, en nuestro caso necesitaremos activar LOG_MM_CI_3, para ello marcamos el check y activamos:
Una vez activado aparecerá la bombilla encendida:


- Ejecutamos la transacción de customizing SPRO:
Gestión de materiales>Compras>Datos de entorno>Activar registro de forma preliminar y retener en documento de compras y marcamos el flag Asig. prev. y marca act.

Una vez hecho esto ya podremos guardar de manera preliminar en las transacciones de la ME51N / ME52N.

NOTA: Es posible que genere un DUMP CX_SY_CONVERSION_OVERFLOW, para ello debes aplicar la nota 1833227.

En caso de querer guardar preliminarmente mediante BAPI (BAPI_PR_CREATE) debemos usar los siguientes campos:

MEMORY = X
Os detallo una tabla con las diferencias estre HOLD / PARK / GUARDADO

Hold
Park
Save
AC Commitment
MM Errors
X


Not Updated
FM Errors
X
X

Not Updated
No Errors
X
X
X
Updated


MEMORYTYPE = H o P (dependiendo qué hemos elegido, si Hold o Park).

También debemos marcar en la estructura BAPIMEREQHEADERX los flags corresponidiente a lo que hayamos rellenado en la primera.

NOTA: Esta configuración no evita que se determine estrategia y se lance WF, para ello debemos implementar la nota 575387.

miércoles, 29 de junio de 2016

DUMP CONVT_NO_NUMBER

REPORT  zscript.
DATA: c_num TYPE char3 VALUE '1,2'.
DATA: amount TYPE ekpo-zzpre_asig,
      lv_pos TYPE i,
      lv_char TYPE char15.


END-OF-SELECTION.

* value definition is fixed at 2 decimal places
  REPLACE ALL OCCURRENCES OF '.' IN c_num WITH ' '.
  REPLACE ALL OCCURRENCES OF ',' IN c_num WITH '.'.
  CONDENSE c_num NO-GAPS.
  MOVE c_num TO amount.
  WRITE:/ amount.

miércoles, 15 de junio de 2016

Tablas de índice para evitar buscar en BSEG

Hemos visto a menudo muchos hilos abiertos sobre problemas en la tabla BSEG. Se invierte bastante tiempo en buscar datos directamente en la BSEG si no tenemos los campos clave apropiados. Aqui está la solución para eso. Dado que no es posible crear un índice secundario para tablas de clúster, SAP trajo el nuevo concepto llamado tablas ÍNDICE. 
Todos los documentos contables (abiertos y cerrados) se almacenan en la BKPF y BSEG y consultar estas tablas toma demasiado tiempo. Para ello SAP ha creado las tablas ÍNDICE para la BSEG que se actualizan con datos específicos basados en la clasificación y son más rapidos que la BSEG.
 Por ejemplo: documentos de clientes, documentos de vendedores, etc.

Tablas índices:
BSID - Contabilidad: índice secundario para Clientes (items abiertos).
BSAD - Contabilidad: índice secundario para Clientes (items borrados).
BSIK - Contabilidad: índice secundario para Vendedores (items abiertos).
BSAK - Contabilidad: índice secundario para Vendedores (items borrados).
BSIS - Contabilidad: índice secundario para Cuentas de Mayor (items abiertos).
BSAS - Contabilidad: índice secundario para Cuentas de Mayor (items borrados).

¿Cómo recordar estas tablas?
Recuerda BS*
 3ª letra indica si el item está abierto o cerrado.
I - para items abiertos.
A - para items cerrados.
4ª letra indica la clasificación.
D - Para clientes.
K - Para vendedores.
S - Para cuentas de mayor.

 Estas tablas son algunos ejemplos que se requieren sobre todo en escenarios de tiempo real. Hay unas pocas más de tablas ÍNDICE como estas.