Autor Tema: IDOC DEBMAS  (Leído 2861 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado metalgod

  • Usuario Jr
  • **
  • Mensajes: 22
    • Ver Perfil
IDOC DEBMAS
« en: 02 de Septiembre de 2014, 04:18:49 pm »
Hola, buenos días,

Necesito modificarle información al segmento E1KNA1M para el tipo de IDOC DEBMAS (tipo base: DEBMAS07) mediante algún exit, badi o enhancement.

Actualmente solo pude encontrar el exit EXIT_SAPLVV02_001, pero solo me trae una parte de la información en una estructura en un campo de longitud 1000. También encontré la BADI IDOC_DATA_MAPPER, pero tampoco tengo lo necesario para poder modificar valores de la info que trae el IDOC.

Alguien podrá ayudarme?

Muchas gracias de antemano.

Desconectado Enrique.Borroni

  • Moderador_
  • Usuario Completo
  • *****
  • Mensajes: 86
    • Ver Perfil
Re:IDOC DEBMAS
« Respuesta #1 en: 11 de Enero de 2015, 03:17:33 am »
Estimado,

-  Adicionalmente hay otro Exit es el : VSV00001 EXIT_SAPLVV01_001 Outbound: Create additional customer master segments

-  Tambien Puedes probar buscando en la SE84
    ->Ampliaciones
        ->Puntos de Ampliacion
    - En paquete coloca : "VSV" y presiona F8  ahi te saldran una lista de puntos de ampliacion que puedes investigar.
      - ES_RBDFEDEB
      - ES_RBDSEDEB
      - ES_SAPLKD01
      - ES_SAPLKD02
      - ES_SAPLVV01
      - ES_SAPLVV02
      - ES_VVSCONST

-  Lo otro que se me ocurre es buscar una BADI de la siguiente forma :
     - Ir a la transacción SE24
     - Ingresar clase CL_EXITHANDLER
     - Ingresás en el método GET_INSTANCE de esta clase y ponés un break-point en CALL METHOD cl_exithandler=>get_class_name_by_interface.

     - Ahora ejecutás tu transacción normalmente y te fijás si frena en el momento deseado. Va a frenar en muchos lugares porque va a frenar en todas
       las BADI's por las que pases, por lo que te recomiendo que pongas el break justo en el momento en que deseás ver si existe una BADI.
       En la variable EXIT_NAME vas a encotrar el nombre de la BADI.


-  Por ultimo recuerda que para leer ese campo que dices de largo 1000 se hace mas o menos de la siguiente forma :

       DATA : kna1m   TYPE e1kna1m.
       LOOP AT IDOC_DATA.
         CASE idoc_data-segnam.
           WHEN 'E1KNA1M'.
             kna1m = idoc_data-sdata.
*
*             AQUI TU CODIGO
*
         ENDCASE.                             
       ENDLOOP.

Ojala esto te ayude en algo.
Saludos.

Atte.,
Enrique Borroni

maito : enrique.borroni@abap.es