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.


Temas - ale12

Páginas: [1] 2
1
Con esta BAPI se contabiliza la salida de mercancía, esta es la que ejecuta la VL02N cuando se da clic en el botón "Contabilizar EM"

DATA: it_hd  LIKE bapiobdlvhdrcon,
      it_hc  LIKE bapiobdlvhdrctrlcon,
      it_hds LIKE /spe/bapiobdlvhdrconf,
      it_hcs LIKE /spe/bapiobdlvhdrctrlcon,
      it_ret LIKE bapiret2 OCCURS 0 WITH HEADER LINE.


it_hd-deliv_numb  = entrega.
it_hc-deliv_numb  = entrega.
it_hc-post_gi_flg = 'X'.     "<<<
it_hds-deliv_numb = entrega.
it_hcs-deliv_numb = entrega.


CALL FUNCTION 'BAPI_OUTB_DELIVERY_CONFIRM_DEC'
  EXPORTING
    header_data        = it_hd
    header_control     = it_hc
    delivery           = entrega
    header_data_spl    = it_hds
    header_control_spl = it_hcs
  TABLES
    return             = it_ret.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  EXPORTING
    wait = 'X'.


Tomado de : http://bitacorasap.blogspot.com/2011/10/contabilizar-salida-de-mercancia.html




2
ALV / Fijar línea ALV
« en: 27 de Octubre de 2011, 05:53:17 pm »
Hola, que comando se utiliza para fijar la posición del ALV después de ejecutar un comando... refresh, call transaction, etc...

Cuando vuelvo a mi ALV el scroll se ha desplazado a la parte superior del informe.


Saludos y gracias.

3
Bapis / Como modificar una lista de materiales para material
« en: 25 de Mayo de 2011, 09:58:14 am »
En el sistema estándar, puede utilizar los siguientes módulos de funciones para modificar una lista de materiales para material:

    CSAP_MAT_BOM_OPEN
    CSAP_BOM_ITEM_MAINTAIN
    CSAP_MAT_BOM_CLOSE


Abrir lista de materiales: CSAP_MAT_BOM_OPEN
Este módulo de funciones se utiliza para abrir una lista de materiales y llevar a cabo modificaciones. La lista de materiales se importa con la fecha de inicio de validez relevante y se bloquea. Si no tiene lugar ningún error al abrir la lista de materiales, el resultado que devuelve el módulo son los datos de cabecera de la lista de materiales, una tabla de posiciones de la lista de materiales y una tabla de relación de objetos.

Actualizar posiciones de la lista de materiales: CSAP_BOM_ITEM_MAINTAIN
Una vez haya abierto con éxito (sin errores) la lista de materiales, puede utilizar este módulo de funciones para procesar las posiciones individuales de la lista de materiales.
Puede:

  • Crear nuevas posiciones
Los campos para nodo de posición y contador de posición deben ser iniciales cuando crea una nueva posición.

  • Modificar posiciones:
En la tabla de posiciones de la lista de materiales, seleccione la posición que desea modificar, y transfiera los datos modificados. Los campos para nodo de posición y contador de posición deben contener un valor, ya que son campos utilizados únicamente para identificar una posición de una lista de materiales.

  • Borrar posiciones:
En la tabla de posiciones de la lista de materiales, seleccione la posición que desea borrar, y configure el indicador de borrado. Los campos para nodo de posición y contador de posición deben contener un valor.

  • Actualizar relaciones de objeto
Si desea modificar o borrar una relación de objetos local para una posición de la lista de materiales que tiene más de una relación, introduzca la denominación interna de la relación.

No puede utilizar la denominación externa que introdujo cuando creó la relación para identificar los datos que pertenecen a una relación local.

   
  • No puede modificar el tipo de posición de una posición existente.
  • Sólo puede modificar cada posición una vez esté en una sesión (entre la apertura y el cierre de la lista de materiales).
  • Si aparece el mensaje de error "La posición no puede modificarse" en el log, puede deberse a las siguientes razones:

    (i) La posición no es válida para la fecha de inicio de validez introducida, porque se hace válida en una fecha posterior.
    (ii) La relación de objetos está asignada a la posición, pero el número de modificación que utilizó para abrir la lista de materiales no está activo para relaciones de objetos.
    (iii) La posición ya se ha procesado con otro número de modificación en la fecha de inicio de validez introducida.

Cerrar lista de materiales: CSAP_MAT_BOM_CLOSE
Una vez haya realizado las modificaciones, utilice este módulo de funciones para cerrar la lista de materiales. Se grabarán las modificaciones, se desbloqueará la lista de materiales y se registrará el log.

La lista de materiales sólo se graba si se ha modificado al menos una posición con éxito.

Tenga en cuenta los siguientes puntos al modificar listas de materiales:

  •     No existe un módulo de funciones para modificar los datos de cabecera.
  •     Se aplican las mismas limitaciones que para crear una lista de materiales.
  •     Sólo puede procesar una alternativa o una variante. Si no introduce una alternativa al llamar el módulo de funciones CSAP_MAT_BOM_OPEN, éste abre la alternativa "01".


Sacado del siguiente enlace



4
Bapis / BAPI_MATERIAL_BOM_GROUP_CREATE - Crear una lista de material
« en: 25 de Mayo de 2011, 09:38:21 am »
Dejo un ejemplo para crear una lista de materiales usando BAPI_MATERIAL_BOM_GROUP_CREATE

Este código creará una lista de materiales para un material.
Con el material MAINMATERIAL y con sus componentes COMPON1 y COMPON2.

Código: [Seleccionar]

REPORT zsm_create_simplebom.

* Data Declaration
DATA:
it_bomgroup LIKE bapi1080_bgr_c OCCURS 0 WITH HEADER LINE,
it_variants LIKE bapi1080_bom_c OCCURS 0 WITH HEADER LINE,
it_items    LIKE bapi1080_itm_c OCCURS 0 WITH HEADER LINE,
it_matrel   LIKE bapi1080_mbm_c OCCURS 0 WITH HEADER LINE,
it_itemas   LIKE bapi1080_rel_itm_bom_c OCCURS 0 WITH HEADER LINE,
it_return   LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

* Fill the data
* Material BoM Group Header Data
CLEAR it_bomgroup.
it_bomgroup-bom_group_identification = 'BAPI_SMP_COL1'.
it_bomgroup-object_type = 'BGR'.
it_bomgroup-object_id = 'SIMPLE1'.
it_bomgroup-bom_usage = '5'. " YOU COULD CHANGE THE BOM USAGE TO YOUR
"NEEDS
it_bomgroup-ltxt_lang = sy-langu.
it_bomgroup-technical_type = ' '.
it_bomgroup-bom_text = 'Simple BoM - FM'.
APPEND it_bomgroup.

* Header Details of the different variants
CLEAR it_variants.
it_variants-bom_group_identification = 'BAPI_SMP_COL1'.
it_variants-object_type = 'BOM'.
it_variants-object_id = 'SIMPLE1'.
it_variants-alternative_bom = '01'.
it_variants-bom_status = '01'.
it_variants-base_qty = '1.000'.
it_variants-valid_from_date = sy-datum.
it_variants-function = 'NEW'.
APPEND it_variants.

* Details of the items of the variants
CLEAR it_items.
it_items-bom_group_identification = 'BAPI_SMP_COL1'.
it_items-object_type = 'ITM'.
it_items-object_id = 'SIMPLE1'.
it_items-item_no = '0010'.
it_items-item_cat = 'L'.
it_items-component = 'COMPON1'.
it_items-comp_qty = '2'.
it_items-valid_from_date = sy-datum.
APPEND it_items.

CLEAR it_items.
it_items-bom_group_identification = 'BAPI_SMP_COL1'.
it_items-object_type = 'ITM'.
it_items-object_id = 'SIMPLE1'.
it_items-item_no = '0020'.
it_items-item_cat = 'L'.
it_items-component = 'COMPON2'.
it_items-comp_qty = '3'.
it_items-valid_from_date = sy-datum.
APPEND it_items.


* Details of the materials of the different variants
CLEAR it_matrel.
it_matrel-bom_group_identification = 'BAPI_SMP_COL1'.
it_matrel-material = 'MAINMATERIAL'.
it_matrel-bom_usage = '5'.
it_matrel-alternative_bom = '01'.
APPEND it_matrel.

* Linking items to the corresponding variants
CLEAR it_itemas.
it_itemas-bom_group_identification = 'BAPI_SMP_COL1'.
it_itemas-sub_object_type = 'ITM'.
it_itemas-sub_object_id = 'SIMPLE1'.
it_itemas-super_object_type = 'BOM'.
it_itemas-super_object_id = 'SIMPLE1'.
it_itemas-valid_from_date = sy-datum.
it_itemas-function = 'NEW'.
APPEND it_itemas.

* Create variants
CALL FUNCTION 'BAPI_MATERIAL_BOM_GROUP_CREATE'
  EXPORTING
    all_error         = 'X'
  TABLES
    bomgroup          = it_bomgroup
    variants          = it_variants
    items             = it_items
    materialrelations = it_matrel
    itemassignments   = it_itemas
    return            = it_return.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

LOOP AT it_return.
  WRITE:/ it_return-type, it_return-id, it_return-number,
          it_return-message.
ENDLOOP.


5
Programación ABAP / Convertir cantidad a formato interno de SAP
« en: 05 de Mayo de 2011, 06:42:41 pm »
Hola,

Desde la WEB me envían por una BAPI una cantidad en formato de salida: 1.234,56

Yo lo que quiero es poner esa cantidad en formato interno de SAP para poder operar con el: 1234.56


¿Existe alguna función que lo haga?

Gracias.

6
Bapis / BAPI_PO_CHANGE - Cambiar condición de pago de un pedido. ME22N
« en: 21 de Marzo de 2011, 12:25:51 pm »
Comparto un Perform donde tengo como cambiar la condición de pago en un pedido.
Para ello utilizaré la Bapi BAPI_PO_CHANGE.

Código: [Seleccionar]
FORM modificar_condicion_pago .
* Tabla y estructuras para la bapi de cambio
  DATA: l_st_poheaderx          LIKE  bapimepoheaderx,
        l_st_poheader           LIKE  bapimepoheader,
        l_st_resultado  LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
  DATA: l_ebeln_new(1) TYPE c.     " Indicador nuevo doc.compras
  DATA: gc_2 LIKE bapita-wait VALUE '2'.


  SORT g_it_ped_compras BY ebeln.
  LOOP AT g_it_ped_compras.

*   La cabecera de pedido de compras sólo se realizará una vez por
*   nº de documento.
    AT NEW ebeln.
*     Se informa la variable de nuevo documento de compras.
      l_ebeln_new = 'X'.
    ENDAT.

*   Si se activó la variable de nuevo documento de compras.
    IF NOT l_ebeln_new IS INITIAL.
*     Se inicializa la variable de nuevo documento de compras.
      CLEAR l_ebeln_new.

      IF g_it_ped_compras-bukrs BETWEEN '0001' AND '1000'.
        SELECT SINGLE * FROM lfa1
                       WHERE lifnr = g_it_ped_compras-lifnr
                         AND vbund BETWEEN '000001' AND '001000'.
        IF sy-subrc = 0.

          l_st_poheader-pmnttrms  = 'ZXXX'. "Condición de pago nueva
*         Marcar la referencia
          l_st_poheaderx-pmnttrms = 'X'.

*         Modificar el campo ZTERM de la tabla ekko
          CALL FUNCTION 'BAPI_PO_CHANGE'
            EXPORTING
              purchaseorder = g_it_ped_compras-ebeln
              poheader      = l_st_poheader
              poheaderx     = l_st_poheaderx
            TABLES
              return        = l_st_resultado.

*         Si no existe error se genera un commint
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait = gc_2.

        ENDIF.
      ENDIF.
    ENDIF.

  ENDLOOP.



7
Bapis / BAPI_OUTB_DELIVERY_CHANGE - Partición de Lotes en una Entrega VL02N
« en: 21 de Marzo de 2011, 11:25:53 am »
Quiero compartir con vosotros una Bapi para añadir Partición de Lotes en una Entrega... como si lo hiciéramos por la transacción VL02N.

Con este Report lo que conseguimos es añadir particiones de lotes en una entrega ya existente utilizando la siguiente Bapi: BAPI_OUTB_DELIVERY_CHANGE.


Código: [Seleccionar]
REPORT  z_bapi_outb_delivery_change.

TABLES: lips, marc.


DATA: header_data     LIKE  bapiobdlvhdrchg.
DATA: header_control  LIKE  bapiobdlvhdrctrlchg.
DATA: delivery        LIKE  bapiobdlvhdrchg-deliv_numb.

DATA: item_data    LIKE  bapiobdlvitemchg OCCURS 0 WITH HEADER LINE.
DATA: item_control LIKE  bapiobdlvitemctrlchg
                                          OCCURS 0 WITH HEADER LINE.
DATA: return       LIKE  bapiret2         OCCURS 0 WITH HEADER LINE.




header_data-deliv_numb    = '0080974350'.
header_control-deliv_numb = '0080974350'.
delivery                  = '0080974350'.


* Esta sería la posición Padre
* La cantidad de esta posición es de 200 KG, pero como
* vamos a añadir dos subposiciones de 100 + 40 KG, le quedarán 60.
item_data-deliv_numb = '0080974350'.
item_data-deliv_item = '000010'.
item_data-material   = '000000000000002803'.
item_data-dlv_qty    = '60.000'.     "Cantidad pendiente calculada
item_data-dlv_qty_imunit = '60.000'. "Cantidad pendiente calculada
item_data-fact_unit_nom  = '1'.
item_data-fact_unit_denom = '1'.
APPEND item_data.


* Aquí indicamos las subposiciones de la posición Padre
CLEAR item_data.
item_data-deliv_numb = '0080974350'.
item_data-deliv_item = '900001'.
item_data-material   = '000000000000002803'.
item_data-batch      = '28/273/081'.
item_data-hieraritem = '000010'.
item_data-usehieritm = '1'.
item_data-dlv_qty    = '100.000'.
item_data-dlv_qty_imunit = '100.000'.
item_data-fact_unit_nom = '1'.
item_data-fact_unit_denom = '1'.
APPEND item_data.


CLEAR item_data.
item_data-deliv_numb = '0080974350'.
item_data-deliv_item = '900002'.
item_data-material   = '000000000000002803'.
item_data-batch      = '08/280/081'.
item_data-hieraritem = '000010'.
item_data-usehieritm = '1'.
item_data-dlv_qty    = '40.000'.
item_data-dlv_qty_imunit = '40.000'.
item_data-fact_unit_nom = '1'.
item_data-fact_unit_denom = '1'.
APPEND item_data.


** Si en la posición no viene indicado el Almacen, lo cogeremos del
** maestro de la MARC.
*IF lips-lgort IS INITIAL.
*  SELECT SINGLE * FROM marc
*                 WHERE matnr = lips-matnr
*                   AND werks = lips-werks.
*  item_data_spl-deliv_numb  = '0080974350'.
*  item_data_spl-deliv_item  = lips-posnr.
*  item_data_spl-stge_loc    = marc-lgpro.
*  item_data_spl-pick_denial = 'X'.
*  APPEND item_data_spl.
*ENDIF.


item_control-deliv_numb = '0080974350'.
item_control-deliv_item = '000010'.
item_control-chg_delqty = 'X'.
APPEND item_control.


CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
  EXPORTING
    header_data    = header_data
    header_control = header_control
    delivery       = delivery
  TABLES
    item_data      = item_data
    item_control   = item_control
    return         = return.

COMMIT WORK AND WAIT.




*****
DATA: lf_mensaje(220).

LOOP AT return.

  MESSAGE ID return-id
          TYPE 'S'
          NUMBER return-number
          WITH return-message_v1
          return-message_v2
          return-message_v3
          return-message_v4
          INTO
          lf_mensaje.

  WRITE lf_mensaje.

ENDLOOP.



8
ALV / TOP_OF_PAGE en ALV con Objetos
« en: 16 de Febrero de 2010, 03:23:11 pm »
Hola,

alguien sabe o tiene un ejemplo de un ALV realizado con Objetos y que me pueda decir como hacer una cabecera en el TOP_OF_PAGE????


Gracias.

9
Programación ABAP / Mover fichero UNIX
« en: 05 de Agosto de 2009, 12:48:49 pm »
Hola a todos,

Alguien sabe como se podría mover un fichero de un directorio de UNIX a otro.

En concreto quiero leer un fichero (cortarlo) y (copiarlo) en una carpeta Backup.


Muchas gracias.

10
Programación ABAP / Funcion que devuelva el número de semanas.
« en: 07 de Julio de 2009, 09:57:08 am »
Hola,

Hay alguna función que le pases un mes, por ejemplo (Enero 2009) = 001.2009 y te devuelva las semanas que tiene?

semana 001
semana 002
semana 003
semana 004

11
Programación ABAP / Leer infotipo de HR
« en: 14 de Abril de 2009, 12:23:03 pm »
Hola,

estoy haciendo una función y necesito leer el infotipo 2001.

No tengo ni idea de HR.

Como me aconsejáis hacerlo? Directamente haciendo un SELECT?


Muchas gracias.

12
Programación ABAP / Cargar iconos nuevos?
« en: 17 de Marzo de 2009, 04:09:54 pm »
Hola, una sencilla pregunta...

Se pueden cargar iconos nuevos en la tabla ICON?


13
Formularios / Alineación en un Smartforms
« en: 27 de Noviembre de 2008, 06:19:55 pm »
Hola, tengo otra pregunta.

Tengo que escribir un texto largo, e intento ajustar el texto por la derecha y por la izquierda a la vez.

Solo veo que se puede ajustar por uno de los lados, pero igual alguien sabe como hacer para que se me ajuste por ambos lados.

Muchas gracias.
 

14
Formularios / Llamar a un Smartforms
« en: 27 de Noviembre de 2008, 12:49:36 pm »
Como se puede llamar a una Smartforms desde un Report o Programa????

Muchas gracias.

15
Programación ABAP / Fichero plano con espacios en blanco al final
« en: 18 de Noviembre de 2008, 06:02:21 pm »
Hola tengo el siguiente problema,

Estoy generando un fichero plano de 250 caracteres para hacienda y los últimos caracteres tienen que ser espacios en blanco.
Lo que me ocurre es que estos espacios en blanco no me los mantiene y yo los necesito para que el programa de hacienda me lo admita.


Que puedo hacer?




Páginas: [1] 2