AAAAA

Lo MeJoR De Lo MeJoR TiPs.
Este blog esta Pensado para aportar tips y ejemplos de Programas SAP - ABAP.

viernes, 26 de octubre de 2018

7. ME23N, Cambiar la información a mostrar en Orden de compra SAP

En este ejemplo vamos a modificar la información que se muestra en una orden de compra ME23N,

Reemplazará solo al visualizar la OC,  la información que se tiene en la Base de datos.


1. Debemos identificar la BAPI a modificar,
 para el caso de la orden de compra es la siguiente:

TX: SE18
BAPI: ME_PROCESS_PO_CUST (sino esta implementada la BAPI deben hacerlo)



Vamos a ingresar el código correspondiente en el Método IF_EX_ME_PROCESS_PO_CUST~OPEN, el cual se ejecuta antes de mostrar la pantalla de la ME23N.



Código y explicación de cada paso.



Ejemplo del reemplazo.
Valores Reales:



Nuevos Valores reemplazados (Solo en tiempo de ejecución).


***************************************Código**********************

METHOD if_ex_me_process_po_cust~open.
*********************************************************************
*********************************************************************
  " Obtenemos los datos de la cabecera
  DATA:
    lw_mepoheader TYPE mepoheader,                 "Datos a Nivel cabecera
    lc_po_header  TYPE REF TO cl_po_header_handle_mm,"Clase Manejo OC a nivel cabecera
    lt_items      TYPE purchase_order_items,             "Tabla de posiciones de la OC
    lw_item       TYPE purchase_order_item,             "Posición de la OC
    lw_detail     TYPE mepoitem.                      "Posición de la OC (Valores)

  IF sy-tcode 'ME23N'.

*** Modificar cabecera Orden de compra.
    lw_mepoheader im_header->get_data).
    lc_po_header ?= im_header.
    lc_po_header->my_ibs_firewall_on 'X'.                    " Variable para que permita modificar

    lw_mepoheader-ekgrp '201'.             " Nuevo valor a mostrar a nivel Cab. 
    CALL METHOD im_header->set_dataim_data lw_mepoheader ).

*** Obtener y modificar posición.
    lt_items im_header->get_items).

    LOOP AT lt_items INTO lw_item.
      lw_detail lw_item-item->get_data).
      lw_detail-idnlf 'AA'.                  " Nuevo valor a mostrar a nivel Pos.
      lw_item-item->set_dataim_data lw_detail ).
    ENDLOOP.
  ENDIF.
*********************************************************************
ENDMETHOD.