Ir al contenido

Mensajes recientes

#61
Programación ABAP / Performance en Acceso a Tablas...
Último mensaje por Enrique.Borroni - 30 Sep 2016, 17:50
Hace un tiempo buscando mejorar el acceso a las tablas de SD encontre esto...Ojala les sirva.

1. Accesses to sales orders (tables VBAK, VBAP)

a) Search orders for customer number (field VBAK-KUNNR):

*Incorrect:
SELECT FROM vbak WHERE kunnr = ...
*Correct:   
SELECT FROM vakpa WHERE kunde = ... 
SELECT FROM vbak WHERE vbeln = vakpa-vbeln.


b) Search order items for material number (field VBAP-MATNR):

*Incorrect:
SELECT FROM vbap WHERE matnr = ...
*Correct:   
SELECT FROM vapma WHERE matnr = ...   
SELECT FROM vbap WHERE vbeln = vapma-vbeln
                   AND posnr = vapma-posnr



c) Other search helps for sales orders offer the matchcode tables and views M_VMVAx, x. = A, B, C, ... M; for example search for purchase order number of the customer, description and so on

2. Accesses to deliveries (tables LIKP, LIPS)

a) Search for deliveries with customer number (field LIKP-KUNNR):

*Incorrect:
SELECT FROM likp WHERE kunnr = ...
*Correct:
SELECT FROM vlkpa WHERE kunde = ...   
SELECT FROM likp WHERE vbeln = vlkpa-vbeln.


b) Search for delivery items with material number (field LIKP-MATNR):

*Incorrect:
SELECT FROM lips WHERE matnr = ...
*Correct:
SELECT FROM vlpma WHERE matnr = ...   
SELECT FROM lips WHERE vbeln = vlpma-vbeln
                   AND posnr = vlpma-posnr



c) Search for deliveries with sales order number (preceding document, field LIPS-VGBEL):

*Incorrect:
SELECT FROM lips WHERE vgbel = ...
*Correct:
SELECT FROM vbfa WHERE VBELV  = ...
                   AND VBTYP_N = 'J'   
SELECT FROM lips WHERE vbeln = vbfa-vbeln
                   AND posnr = vbfa-posnn



d) Other search helps for deliveries offer matchcode tables and views M_VMVLx, x. = A, B, C, ... M; for example search for goods issue date, picking date, transportation planning date and so on.


3. Accesses to invoices (tables VBRK, VBRP)

a) Search for invoices with customer number ("payer") (field VBRK-KUNRG):

*Incorrect:
SELECT FROM vbrk WHERE kunrg = ...
*Correct:
SELECT FROM vrkpa WHERE kunde = ...   
SELECT FROM vbrk WHERE vbeln = vrkpa-vbeln



b) Search for invoice items with material number (field VBRP-MATNR):

*Incorrect:
SELECT FROM vbrp WHERE matnr = ...
*Correct:
SELECT FROM vrpma WHERE matnr = ...   
SELECT FROM vbrp WHERE vbeln = vrpma-vbeln
                   AND posnr = vrpma-posnr



c) Search for invoices with delivery number (preceding document, field VBRP-VGBEL):

 
*Incorrect:
SELECT FROM vbrp WHERE vgbel = ...
*Correct:
SELECT FROM vbfa WHERE vbtyp_n = 'M'
                   AND vbelv  = ...   
SELECT FROM vbrp WHERE vbeln = vbfa-vbeln
                   AND posnr = vbfa-posnn



d) Search for invoices with order number (preceding document, field VBRP-AUBEL):

*Incorrect:
SELECT FROM vbrp WHERE aubel = ...
*Correct:
SELECT FROM vbfa WHERE vbtyp_n = 'M'                   
                   AND vbelv   = ...
SELECT FROM vbrp WHERE vbeln = vbfa-vbeln
                   AND posnr = vbfa-posnn



4. Other accesses in SD:

a) Document flow:
*Incorrect:
SELECT vbelv FROM vbfa WHERE vbeln ...


In table VBFA only the preceeding document is used to search for the subsequent document (for example, delivery for order). Searching the other way makes no sense with this table since the preceding documents (for example, order for delivery) are stored directly in the document tables. Thus reading in table VBFA is a one-way street.

*Correct:
SELECT vgbel FROM lips WHERE vbeln = ...
or
SELECT vgbel FROM vbrp WHERE vbeln = ...
or
SELECT aubel FROM vbrp WHERE vbeln = ...


b) Search for shipping unit item with delivery

Incorrect:
SELECT FROM vepo WHERE vbtyp = 'J'                   
                   AND vbeln = i_lips-vbeln
Correct:
SELECT FROM vbfa WHERE vbtyp_n = 'X'                   
                   AND vbelv = i_lips-vbeln
SELECT FROM vepo WHERE venum = vbfa-vbeln
#62
Programación ABAP / Base de datos Logica PNP
Último mensaje por metalgod - 13 Sep 2016, 20:08
Hola, buenas tardes

Tengo un problema con un reporte de HCM usando base de datos lógica.

El tema es asi:

Tengo un reporte con base de datos logicas con una pantalla de seleccion, ejecuto y se muestra un alv, todo bien hasta ahi.

Pero cuando ingreso con un usuario que tiene permisos solo para algunos infotipos de todos los que se usan, se ejecuta el reporte, muestra el alv como tiene que ser, pero al dar en back (F3), aparece una pantalla con un texto donde informa que hubo registros que no se tuvieron en cuenta

El texto es:

"Driver base de datos no ha considerado números personal
Motivo1: falta autorización; ctdad.números personal no consider.: 39.054"

Si se da en back de nuevo, va a la pantalla de seleccion como tiene que ser.

Pero tengo esa pantalla en el medio que por lo que lei es algo estandar de las base de datos logicas

¿Alguna vez les paso o tienen idea de como sacarla, evitarla o esconderla?

Espero que me puedan ayudar.

Gracias.

Saludos.
#63
Programación ABAP / renombrar RFC
Último mensaje por nicolas.mpereabap - 12 Sep 2016, 16:54
Estimados soy nuevo por acá y tengo que renombrar una RFC si alguien me puede ayudar a poder resolver el problema se los agradeceria.
Saludos.
#64
Módulos funcionales y Basis / Re:BAISS: Duda Transacción DB1...
Último mensaje por Carlos - 09 Ago 2016, 09:37
No conozco la transacción, pero me parece que llegas en el menú superior:

Administration > View week
#65
Módulos funcionales y Basis / BAISS: Duda Transacción DB13
Último mensaje por apeso - 08 Ago 2016, 20:14
Buen día,
En la transacción DB13 empiezo con esta pantalla:
https://s9.postimg.org/rf044wgcf/Capture.jpg

Pero quisiera saber como llegar a esta otra:
https://s9.postimg.org/e81o6atf3/Capture2.jpg

También se visualiza un error "DBM Error 55  - Communication Error" ¿cómo lo soluciono?

Un cordial saludo.
#66
Formularios / Problema al imprimir smartform
Último mensaje por Alonso_mx - 04 Ago 2016, 18:48
Hola a todos.
Estoy generando un smartform el cual tengo que imprimirlo automáticamente.
Hasta ahí todo va bien, mi solicitud se puede visualizar en las SPOOL con formato OTF pero al mandarlo imprimir al dispositivo por default de windows "YCPP" en la cola de impresión como nombre del archivo me aparece lo siguiente USERNAME:#############.DEV

El estatus del archivo dice imprimiendo y despues de unos segundos desaparece y  nunca sale la impresión.

Espero me puedan ayudar.

Saludos
#67
S/4HANA y ABAP Cloud / Novato queriendo aprender ABA ...
Último mensaje por osfranco - 29 Jul 2016, 14:47
Buenos días grupo, soy programador Web en PHP, pero me entusiasma aprender sobre aba sap. Quisiera saber si por favor me orientan de como empezar en esta tecnología. Uso GNU/Linux, no se si podría tener mi ambiente de desarrollo bajo esta plataforma? Les agradezco su ayuda.
#68
Programación ABAP / Imprimir documento retenido MI...
Último mensaje por rmezquita - 09 Jun 2016, 14:13
Buenos días,
Tengo poca experiencia en ABAP, y se nos ha planteado la impresión de los documentos que se retienen en la MIGO. La idea es que el usuario los retenga, y mas tarde, desde otra transacción, acceder a ellos y escoger los que se desean imprimir.
Llevo dándole vueltas un par de días, y no consigo llegar a ninguna solución. En MMIM_PREDOC_ORG se que tengo los documentos retenidos, pero debo ser bastante torpe que no llego a cargar partiendo de ese dato otras tablas de las que luego tirar para la impresión.
¿Alguna idea?
Gracias. Saludos
#69
Programación ABAP / Modificar BADI para una BAPI
Último mensaje por jorgee90 - 13 May 2016, 10:58
Buenas !!

Estoy empezando con ABAP y tengo un poco de lio con esto que os voy a mostrar.

Tengo un programa donde subo un txt y me lo tiene que validar. Salen unas claves contables por defecto y yo las cambio por otras. Para ello tengo una BADI. Y luego llamo a la BAPI... Me han mandado un mail con lo que tengo que hacer pero... he modificado la badi y he llamado a la bapi... y ahí me he quedado.... no se seguir. Os comparto el mail y por si me puede ayudar.

Yo lo que hice es cambiar las claves propuestas (01/21/31)... por claves que no afectarán al volumen de negocio mediante la BADI es la siguiente: BADI_ACC_DOCUMENT, implementación: IF_EX_ACC_DOCUMENT, método change.

El código es el siguiente:

  METHOD if_ex_acc_document~change.

    DATA: ls_extension TYPE bapiparex,
          ls_accit     TYPE accit.

    CLEAR: ls_extension.

* Modificamos las claves contables según las que obtuvimos a través del importe.

    LOOP AT c_extension2 INTO ls_extension.
      IF ls_extension-structure = 'BSCHLD'.
        CLEAR: ls_accit.
        READ TABLE c_accit INTO ls_accit WITH KEY posnr = ls_extension-valuepart1.
        IF sy-subrc = 0.
          ls_accit-bschl = ls_extension-valuepart2.
        ENDIF.
        MODIFY c_accit FROM ls_accit INDEX sy-tabix TRANSPORTING bschl.
      ENDIF.
    ENDLOOP.

    LOOP AT c_extension2 INTO ls_extension.
      IF ls_extension-structure = 'BSCHLK'.
        CLEAR: ls_accit.
        READ TABLE c_accit INTO ls_accit WITH KEY posnr = ls_extension-valuepart1.
        IF sy-subrc = 0.
          ls_accit-bschl = ls_extension-valuepart2.
        ENDIF.
        MODIFY c_accit FROM ls_accit INDEX sy-tabix TRANSPORTING bschl.
      ENDIF.
    ENDLOOP.

  ENDMETHOD.


Los valuespart 1 y valuespart2 te los has de llevar en el programa que llame a la BAPI en la tabla de esta misma extensión2.

Este es el código para rellenar la tabla extension2 (en mi caso contra la tabla interna it_ext2).

* En el caso de clientes.
  LOOP AT it_accountreceivable WHERE sp_gl_ind IS INITIAL.
    gs_ext2-structure = 'BSCHLD'.
    gs_ext2-valuepart1 = it_accountreceivable-itemno_acc.
    LOOP AT it_currencyamount WHERE  itemno_acc EQ gs_ext2-valuepart1.
      IF  it_currencyamount-amt_doccur > 0.
        gs_ext2-valuepart2 = '04'.
      ELSE.
        gs_ext2-valuepart2 = '14'.
      ENDIF.
    ENDLOOP.
    APPEND gs_ext2 TO it_ext2.
  ENDLOOP.

Y esta la forma de llamar la BAPI:

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
      EXPORTING
        documentheader    = gd_documentheader
        customercpd       = gd_customercpd
        contractheader    = gd_fica_hd
      IMPORTING
        obj_type          = l_type
        obj_key           = l_key
        obj_sys           = l_sys
      TABLES
        accountgl         = it_accountgl[]
        accountreceivable = it_accountreceivable[]
        accountpayable    = it_accountpayable[]
        accounttax        = it_accounttax[]
        currencyamount    = it_currencyamount[]
        criteria          = it_criteria[]
        valuefield        = it_valuefield[]
        extension1        = it_ext[]
        return            = it_return[]
        paymentcard       = it_paymentcard[]
        contractitem      = it_fica_it[]
        extension2        = it_ext2[]
        realestate        = it_re[].


En tu caso, deberás cambiar el 04, por lo que desees, 05,15 etc.

Qué pasos debo de seguir?

Gracias

Un saludo,
#70
Formularios / Re:Problema al traducir un Sma...
Último mensaje por Carlos - 10 May 2016, 08:57
Parece que el problema ocurre cuando tenemos abiertos dos modos al mismo tiempo.
(Por un lado el Smartforms y por otro la transacción SE63).

De alguna manera se queda en memoria el Smartforms mientras estas con la tx. SE63 abierta y si no te sales del Smartforms es como si luego al activar el Smartforms no hace caso a la traducción realizada y vuelve a cargar los valores anteriores a la traducción.

La solución sería la siguiente:
Utilizar el mismo modo entre el Smartforms y la SE63.

Dentro del mismo modo me salgo del Smartforms y entro en la SE63, traduzco, y volvemos a entrar en el Smartforms. Es un poco coñazo tener que hacerlo así, pero por lo menos funciona.