Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Nuria

Páginas: 1 2 3 [4] 5 6
46
Programación ABAP / Re: ¿Puedo bajarme de internet minisap? (Para GNU/Linux)
« en: 12 de Diciembre de 2007, 03:21:59 pm »
Creo que para Linux no hay Minisap.

Te puedes descargar el minisap desde la pagina de http://sdn.sap.com en la zona de Downloads, para ello te tendrás que registrar.

En el Emule tambien puedes encontrarlo.


Un saludo.
Nuria.

47
Programación ABAP / Re: Busco función para explosionar materiales
« en: 04 de Diciembre de 2007, 03:40:20 pm »
Puedes utilizar la siguiente función: CS_BOM_EXPL_MAT_V2

Te mando un ejemplo de un programa que te saca un listado con lo que pides.
Código: [Seleccionar]

REPORT  z_bom.
TABLES: mard,stpo,stko,tc04,t024d,marc,ekbe,mara,ekko,makt.

DATA : capid LIKE tc04-capid,
       datuv LIKE stko-datuv,
       emeng LIKE stko-bmeng,
       mehrs LIKE csdata-xfeld,
       mtnrv LIKE mara-matnr,
       stlal LIKE stko-stlal,
       stpst LIKE stpox-stufe,
       werks LIKE marc-werks.
DATA : istb LIKE stpox OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF ibod OCCURS 0,
stufe LIKE stpox-stufe,
idnrk LIKE stpox-idnrk,
bismt LIKE mara-bismt,
ojtxp LIKE stpox-ojtxp,
menge LIKE stpox-menge,
meins LIKE stpox-meins,
mnglg LIKE stpox-mnglg,
meins1 LIKE stpox-meins,
*lgort LIKE mard-lgort,
*labst LIKE mard-labst,
*insme LIKE mard-insme,
*umlme LIKE mard-umlme,
wesbs LIKE ekbe-wesbs,
dispo LIKE marc-dispo,
dsnam LIKE t024d-dsnam,
END OF ibod.


DATA : BEGIN OF imara OCCURS 0,
       matnr LIKE mara-matnr,
       bismt LIKE mara-bismt,
       meins LIKE mara-meins,
       END OF imara.

DATA: BEGIN OF idis OCCURS 0,
      matnr LIKE marc-matnr,
      dispo LIKE marc-dispo,
      dsnam LIKE t024d-dsnam,
      END OF idis.

DATA: BEGIN OF xtab2 OCCURS 10,
         werks LIKE ekpo-werks,
         matnr LIKE ekpo-matnr,
         ebeln LIKE ekpo-ebeln,
         ebelp LIKE ekpo-ebelp,
         wesbs LIKE ekbe-wesbs,
         wesb2 LIKE ekbe-wesbs,
         meinh LIKE ekpo-meins,
       END OF xtab2.
DATA : total LIKE ekbe-wesbs.
*data: begin of i_werks occurs 0,
*      werks like marc-werks,
*      end of i_werks.

RANGES : i_werks FOR marc-werks.

DATA : BEGIN OF imard OCCURS 0,
         matnr LIKE mard-matnr,
         werks LIKE mard-werks,
         lgort LIKE mard-lgort,
         labst LIKE mard-labst,
         insme LIKE mard-insme,
         umlme LIKE mard-umlme,
         END OF imard.

DATA : labst LIKE mard-labst,
       insme LIKE mard-insme,
       umlme LIKE mard-umlme.



SELECTION-SCREEN BEGIN OF BLOCK v1 WITH FRAME TITLE text-001.
PARAMETERS : p_werks LIKE marc-werks OBLIGATORY,
             p_mtnrv LIKE mara-matnr OBLIGATORY,
             p_stlal LIKE stko-stlal OBLIGATORY,
             p_emeng LIKE stko-bmeng OBLIGATORY,
             p_stpst LIKE stpox-stufe.
SELECTION-SCREEN END OF BLOCK v1.

capid = 'PP01'.
datuv = sy-datum.
emeng = p_emeng.
mehrs = 'X'.
mtnrv = p_mtnrv.
stlal = p_stlal.
stpst = p_stpst.
werks = p_werks.
i_werks-low = werks.
i_werks-sign = 'I'.
i_werks-option = 'EQ'.
APPEND i_werks.
CLEAR i_werks.
*skip.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
 EXPORTING
*   FTREL                       = ' '
*   ALEKZ                       = ' '
*   ALTVO                       = ' '
*   AUFSW                       = ' '
*   AUMGB                       = ' '
*   AUMNG                       = 0
*   AUSKZ                       = ' '
*   AMIND                       = ' '
*   BAGRP                       = ' '
*   BEIKZ                       = ' '
*   BESSL                       = ' '
*   BGIXO                       = ' '
*   BREMS                       = ' '
   capid                       = capid
*   CHLST                       = ' '
*   COSPR                       = ' '
*   CUOBJ                       = 000000000000000
*   CUOVS                       = 0
*   CUOLS                       = ' '
   datuv                       = datuv
*   DELNL                       = ' '
*   DRLDT                       = ' '
*   EHNDL                       = ' '
   emeng                       = emeng
*   ERSKZ                       = ' '
*   ERSSL                       = ' '
*   FBSTP                       = ' '
*   KNFBA                       = ' '
*   KSBVO                       = ' '
*   MBWLS                       = ' '
*   MKTLS                       = 'X'
*   MDMPS                       = ' '
   mehrs                       = mehrs
*   MKMAT                       = ' '
*   MMAPS                       = ' '
*   SALWW                       = ' '
*   SPLWW                       = ' '
*   MMORY                       = ' '
   mtnrv                       = mtnrv
*   NLINK                       = ' '
*   POSTP                       = ' '
*   RNDKZ                       = ' '
*   RVREL                       = ' '
*   SANFR                       = ' '
*   SANIN                       = ' '
*   SANKA                       = ' '
*   SANKO                       = ' '
*   SANVS                       = ' '
*   SCHGT                       = ' '
*   STKKZ                       = ' '
   stlal                       = stlal
*   STLAN                       = ' '
   stpst                       = stpst
*   SVWVO                       = 'X'
   werks                       = werks
*   NORVL                       = ' '
*   MDNOT                       = ' '
*   PANOT                       = ' '
*   QVERW                       = ' '
*   VERID                       = ' '
*   VRSVO                       = 'X'
* IMPORTING
*   TOPMAT                      =
*   DSTST                       =
  TABLES
    stb                         = istb
*   MATCAT                      =
* EXCEPTIONS
*   ALT_NOT_FOUND               = 1
*   CALL_INVALID                = 2
*   MATERIAL_NOT_FOUND          = 3
*   MISSING_AUTHORIZATION       = 4
*   NO_BOM_FOUND                = 5
*   NO_PLANT_DATA               = 6
*   NO_SUITABLE_BOM_FOUND       = 7
*   CONVERSION_ERROR            = 8
*   OTHERS                      = 9
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


LOOP AT istb.
  IF istb-postp = 'L'.
    ibod-stufe = istb-stufe.
    ibod-idnrk = istb-idnrk.
    ibod-ojtxp = istb-ojtxp.
    ibod-menge = istb-menge.
    ibod-meins = istb-meins.
    ibod-mnglg = istb-mnglg.
    APPEND ibod.
    CLEAR ibod.
  ENDIF.
ENDLOOP.

SELECT matnr bismt meins INTO TABLE imara FROM mara FOR ALL ENTRIES IN ibod
                                            WHERE matnr = ibod-idnrk.
SELECT a~matnr a~dispo b~dsnam INTO TABLE idis FROM marc AS a INNER JOIN t024d AS b
ON a~dispo = b~dispo  FOR ALL ENTRIES IN ibod WHERE matnr = ibod-idnrk.

SELECT matnr werks lgort labst insme umlme  INTO TABLE imard FROM mard
FOR ALL ENTRIES IN ibod WHERE matnr = ibod-idnrk AND werks EQ p_werks
.
LOOP AT ibod.
  READ TABLE imara WITH KEY matnr = ibod-idnrk.
  IF sy-subrc EQ 0.
    ibod-bismt = imara-bismt.
    ibod-meins1 = imara-meins.
  ENDIF.
  READ TABLE idis WITH KEY matnr = ibod-idnrk.
  IF sy-subrc EQ 0.
    ibod-dispo = idis-dispo.
    ibod-dsnam = idis-dsnam.
  ENDIF.
  CALL FUNCTION 'MB_SELECT_GR_BLOCKED_STOCK'
  EXPORTING
*   X_KZVBR       = ' '
    x_matnr       =  ibod-idnrk
    x_meins       =  ibod-meins
*   X_KZWSO       = ' '
*   X_NOVBR       = ' '
  TABLES
    xtab2         = xtab2
    xwerks        = i_werks
          .

  LOOP AT xtab2.
    total = total + xtab2-wesbs.
  ENDLOOP.

  ibod-wesbs = total.
  CLEAR xtab2[].
  MODIFY ibod.
  CLEAR : ibod,imara,idis,total,xtab2.
ENDLOOP.

CLEAR imard.
LOOP AT ibod.
  WRITE :/03  sy-tabix LEFT-JUSTIFIED,12 ibod-stufe LEFT-JUSTIFIED,
   18 ibod-idnrk LEFT-JUSTIFIED,37 ibod-bismt LEFT-JUSTIFIED ,57 ibod-ojtxp ,
   99 ibod-menge LEFT-JUSTIFIED ,118 ibod-meins, 123 ibod-mnglg LEFT-JUSTIFIED,
   142 ibod-meins1, 149 ibod-dispo, 157 ibod-dsnam.
*
  WRITE :/10  sy-uline(90) .
  WRITE :/10 '|',11 'Stg Loc',18 '|', 19 'Unres Use Stk',37 '|',39 'QAI Stk ',58 '|', 59 'Trans Loc Stk',
  78 '|',79 'GR Blck Stk' , 99 '|'.
  WRITE :/10  sy-uline(90) .
  LOOP AT imard WHERE matnr EQ ibod-idnrk.
    IF imard-labst GT 0 OR imard-insme GT 0 OR imard-umlme GT 0.
      WRITE :/10 '|', 11 imard-lgort,18 '|', 19 imard-labst LEFT-JUSTIFIED ,37 '|',
              39 imard-insme LEFT-JUSTIFIED,58 '|', 59 imard-umlme LEFT-JUSTIFIED,78 '|', 99 '|'.
    ENDIF.
    labst = labst + imard-labst.
    insme = insme + imard-insme.
    umlme = umlme + imard-umlme.
  ENDLOOP.
  WRITE :/10  sy-uline(90) .
  WRITE :/10 '|', 11 'Total',18 '|', 19 labst LEFT-JUSTIFIED ,37 '|',39 insme LEFT-JUSTIFIED,
  58 '|', 59 umlme LEFT-JUSTIFIED,78 '|',79 ibod-wesbs LEFT-JUSTIFIED, 99 '|'.
  CLEAR: labst,insme,umlme,ibod-wesbs.
  WRITE :/10  sy-uline(90) .
*
ENDLOOP.
ULINE.

TOP-OF-PAGE.
  SELECT SINGLE maktx FROM makt INTO makt-maktx WHERE matnr EQ p_mtnrv.
  WRITE :/40 'Bill Of Material - Stock Position'.
  WRITE :/40 '*********************************'.
  WRITE:/.
  WRITE:/01 'Product Code : ', mtnrv,30 '(',makt-maktx,')', 'Plant : ',werks, 100 'Alternative BOM : ',stlal,125 'Req Qty : ',
             emeng,160 'Level : ' ,  stpst.
  ULINE.
  WRITE:/ '|', 'Sl.No',9 '|',11 'Level','|', 23 'Item Code',36 '|',41 'Old Code',56 '|' ,
  70 'Description',98 '|',104 'BOM Qty ',117 '|', 118 'UOM', 122 '|', 127 'Need Qty', 140 '|',
  141 'UOM' ,146 '|',147 'MRP Code' ,156 '|', 160 'MRP Con Name',175 '|'.


Un saludo.

48
Programación ABAP / Re: Implementacion de un Enhancement
« en: 03 de Diciembre de 2007, 04:41:49 pm »
Puedes mirar por la SMOD.

O bien si son ampliaciones de las nuevas dentro de la SE38 en el menu de arriba tienes:

Tratar/ Operaciones ampliación / Crear ...

49
Programación ABAP / Re: Excel con diferentes hojas
« en: 29 de Noviembre de 2007, 05:42:33 pm »
Efectivamente, con esa función solo puedes recoger la hoja que está activa una vez cerrado el excel.

Me pasó lo mismo una vez, al final me pasaron las hojas del excel divididas en tantos excel como hojas contenía. Lo que hice fue ir abriendo excel por excel.

Sería muy interesante saber si hay alguna manera de hacerlo!!!  :P








50
Programación ABAP / Re: Cómo se hace una subrutina con un ON COMMIT 99?
« en: 27 de Noviembre de 2007, 12:08:17 pm »
Creo que te refieres a esto, te pongo un ejemplo.

PERFORM actualiza ON COMMIT LEVEL n.

Lo que hace es que el proceso de actualización espere hasta que encuentre el COMMIT WORK para hacer todas las actualizaciones o en caso contrario el ROLL BACK para deshacer todo y quedar como si nada hubiese pasado.

Un saludo.
Nuria.

51
Programación ABAP / Re: Problemas con MODIFY
« en: 26 de Noviembre de 2007, 08:34:53 am »
Hola Daniela.

Si puedes poner mas trozo de código para poder verlo.

52
Programación ABAP / Re: comparar campos de tipo moneda
« en: 20 de Noviembre de 2007, 12:32:06 pm »
No entiendo muy bien la pregunta... :-\

Puedes facilitarnos algún dato mas con lo que quieres hacer? O si te da algún error al compilar?



53
Programación ABAP / Re: CONCATENATE
« en: 16 de Noviembre de 2007, 02:20:31 pm »
Yo suelo hacer esto:

1. Modificar los string de blanco por un asterisco. (Por ejemplo)
TRANSLATE matnr USING ' *'.
TRANSLATE name1 USING ' *'.

2. Realizar la concatenación.
CONCATENATE matnr name1 INTO resultado.


3. Y ahora hacer la inversa a lo primero del campo resultado.
TRANSLATE resultado USING '* '.

54
Programación ABAP / Re: Comodines en un loop at i_table where......
« en: 15 de Noviembre de 2007, 11:18:24 am »
Puedes hacer esto:

LOOP AT i_table WHERE campo CP '*111'.

55
Programación ABAP / Re: Comodines en un loop at i_table where......
« en: 15 de Noviembre de 2007, 10:43:24 am »
Hola,

no se si llego a entender bien la pregunta, pero te puedes referir a los 'OR'??

En los select se hace de esta manera...
Código: [Seleccionar]
SELECT * FROM COSP WHERE GJAHR EQ P_EJERCI
                                     AND OBJNR EQ D_CENTRO_COSTE
                                     AND ( KSTAR LIKE '006%' OR
                                           KSTAR LIKE '009%' OR
                                           KSTAR LIKE '008%' )
                                      AND WRTTP   EQ   '04'.


56
Programación ABAP / Re: Cómo hacer un RFC???
« en: 14 de Noviembre de 2007, 11:48:12 am »
Hola Fence.

Si sabes trabajar con Funciones normales lo tienes ya casi resuelto, simplemente tienes que ir a los Atributos y marcar donde pone Forma ejec. marcar el radio button Módulo de acceso remoto.

Un saludo.

57
Programación ABAP / Re: Crear mantenedor de datos
« en: 31 de Octubre de 2007, 08:53:07 am »
Te copio tal cual viene en un manual que tengo como crearte una vista de actualización.

----

Para generar el diálogo, la tabla ha de estar activada. Una vez activada seleccionamos la opción de menú: Utilidades --> Generador Actualiz.Tab.

Grupo de autorizaciones: Mediante este campo, se puede controlar la seguridad sobre el mantenimiento de la tabla, es decir, limitará los usuarios que puedan modificar el contenido de la tabla. Solamente podrán realizar modificaciones aquellos usuarios que tengan autorización sobre el grupo de autorizaciones indicado. Si deseamos no controlar la autorización pondremos en este campo el valor por defecto ‘&NC&’.

Grupo de funciones: Es necesario indicar un grupo de funciones en el que se incluirán las funciones, dynpros y demás objetos del diálogo de actualización. Aunque podemos indicar aquí cualquier grupo de funciones ya existente, es conveniente indicar uno nuevo o bien un grupo que contenga una funcionalidad similar, el diálogo de actualización de otra tabla, por ejemplo. (pondremos ZGXX).

Tipo de actualización: Marcar uno o dos niveles hará que se generen una o dos pantallas de mantenimiento. Si marcamos un nivel solamente se generará una pantalla (imagen resumen) que muestra el contenido de todos los registros de la pantalla, si dos niveles además de la pantalla anterior (imagen resumen) se genera una segunda (imagen sencilla) con el detalle de cada uno de los registros. (Seleccionamos dos niveles).

Imágenes actualización: Representan el número de dynpro que se asignará a cada una de las dos pantallas que se generan. Podemos indicar dos números de dynpro que no existan en grupo de funciones elegido aunque existe una utilidad para que el sistema elija de manera automática estos valores para ello pulsamos el botón “Proponer nº imágenes”.

Con la primera opción nos propondrá unos números no existentes. Las otras opciones permiten visualizar los nº todavía libres y los ya asignados. Al seleccionar la primera opción volveremos a la pantalla anterior, donde se habrán informado los campos de la imagen resumen y sencilla. Pulsamos el botón crear (Si el grupo de funciones indicado no esta creado, nos pedirá una clase de desarrollo…). Grabamos (F11) y retornamos a la pantalla anterior (F3).

Para introducir entradas y visualizar el contenido de la tabla seguiremos los mismos pasos que en el apartado anterior. (Veremos como las pantallas han cambiado ya que ahora se verán las pantallas de diálogo generadas).


58
Programación ABAP / Añadir campos a la estructura RFPOSXEXT...
« en: 30 de Octubre de 2007, 04:57:52 pm »
Hola a todos,

Me he copiado la transacción FBL5N y su programa RFITEMAR a un programa 'Z', lo que quiero es añadir unos campos que ahora no salen en el listado.

He visto que la tabla interna que hace visualizar el informe es la it_pos que hace referencia a la estructura RFPOSXEXT.

Como puedo añadir estos campos que necesito en la estructura? Porque en la descripción de ella dice ## AUTOMATICALLY GENERATED. DO NOT CHANGE OR RE-USE ! ##"

Gracias,
Nuria.

59
Programación ABAP / Re: Estructura de un programa ABAP IV
« en: 25 de Octubre de 2007, 08:38:57 pm »
El INITIALIZATION es lo primero que se ejecuta y le estamos pasando a la variable 1 el proveedor 1001.


60
Programación ABAP / Re: Estructura de un programa ABAP IV
« en: 25 de Octubre de 2007, 05:03:00 pm »
El ejemplo de tabla a la que accedemos LFA1 se corresponde al maestro de proveedores.

Y lo que se esta pintando en pantalla es el código de proovedor y su nombre.

El WRITE corresponde al listado que pintamos.   :)



Páginas: 1 2 3 [4] 5 6