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 - oscar

Páginas: 1 2 [3]
31
Varios / Cajas y líneas en Sapscript
« en: 16 de Julio de 2007, 10:59:34 am »
Hola,

Como hacer cajas y líneas en Sapscript y algún que otro comando que vendrá bien saber.


/*   Las coordenadas las toma desde la página
/:   POSITION PAGE

/*   Las coordenadas las toma desde la ventana
/:   POSITION WINDOW

/*   Te hace una caja por el perimetro de la ventana
/:   BOX FRAME 10 TW

/*   Es donde se le da el grosor de las linea. 10, 20, 30,…
/:   FRAME 10 TW

/*   Rellena el fondo de una ventana con una escala de grises del 10%
/:   BOX INTENSITY 10

/*   Ejemplo de líneas horizontales    
/:   BOX  YPOS '2.6' CM    WIDTH '19.0' CM   HEIGHT '0.0' CM   FRAME 10 TW       

/*   Ejemplo de líneas verticales 
/:   BOX  XPOS '2.5'  CM   WIDTH 0 TW   HEIGHT '2.6' CM   FRAME 10 TW           

/*   Ejemplo de Cajas
/:   BOX XPOS '4.00' CM YPOS '1.10' CM WIDTH '15.0' CM HEIGHT '0.50' CM FRAME 10 TW
/:   BOX XPOS '4.00' CM YPOS '1.10' CM WIDTH '15.0' CM HEIGHT '0.50' CM INTENSITY 20




32
Funciones / Cargar un fichero UNIX
« en: 12 de Julio de 2007, 12:58:38 pm »
Si lo que quieres es una carga directa de los ficheros que existan en una ruta en un servidor UNIX puedes probar con esto:


Código: [Seleccionar]

DATA: ld_ruta LIKE sxpgcolist-parameters.            " Ruta de los ficheros
DATA: gt_tabl LIKE btcxpm OCCURS 0 WITH HEADER LINE. " Tabla

CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
  EXPORTING
        commandname                     = 'ZLL'
        additional_parameters           = ld_ruta
  TABLES
        exec_protocol                   = gt_tabl
  EXCEPTIONS
        no_permission                   = 1
        command_not_found               = 2
        parameters_too_long             = 3
        security_risk                   = 4
        wrong_check_call_interface      = 5
        program_start_error             = 6
        program_termination_error       = 7
        x_error                         = 8
        parameter_expected              = 9
        too_many_parameters             = 10
        illegal_command                 = 11
        wrong_asynchronous_parameters   = 12
        cant_enq_tbtco_entry            = 13
        jobcount_generation_error       = 14
        OTHERS                          = 15.



El comando 'ZLL' se define en la transacción SM69:
Yo tengo uno definida con el comando de sistema 'ls' y parámetro '-l'.

De este modo carga en la tabla interna gt_tabl todos los ficheros y directorios
del servidor UNIX que existen en el directorio ld_ruta.
Los directorios vienen indicados con una d y los ficheros con un guión.

Después de esto, sólo quedaría pegarte un poco con el formato para ver
la posición exacta en la que viene el nombre del fichero.


33
Reports / Mandar a IMPRIMIR un documento de word
« en: 12 de Julio de 2007, 12:36:45 pm »
Este es un trozo de código con el que vamos a mandar imprimir un documento de word ya existente desde un programa.


Código: [Seleccionar]

Types: OLE2_OBJECT LIKE OBJ_RECORD.

Data : go_word type ole2_object,
           ud_filename(200) value 'C:\documento.doc'.

CREATE OBJECT go_word 'Word.Basic'.
CHECK sy-subrc = 0.

CALL METHOD OF go_word 'FileOpen' EXPORTING #1 = ud_filename.
CHECK sy-subrc = 0.

CALL METHOD OF go_word 'FilePRINT'.
CHECK sy-subrc = 0.

CALL METHOD OF go_word 'DocClose'.


34
Funciones / Recuperar datos de Empleados
« en: 12 de Julio de 2007, 10:23:19 am »
Para recuperar los datos de Empleados vamos a utilizar dos funciones:

Por un lado: SUSR_USER_ADDRESS_READ

Y por otro: ADDR_PERS_COMP_COMM_GET

Código: [Seleccionar]

  DATA: ld_address LIKE  addr3_val,
        ld_usr03   LIKE  usr03,
        ld_userid  type sy-uname,
        ld_smtp LIKE adsmtp OCCURS 0 WITH HEADER LINE.

  ld_userid = sy-uname.

  CALL FUNCTION 'SUSR_USER_ADDRESS_READ'
    EXPORTING
      user_name                    = ld_userid
*   READ_DB_DIRECTLY             = ' '
    IMPORTING
      user_address                 = ld_address
      user_usr03                   = ld_usr03
    EXCEPTIONS
      user_address_not_found       = 1
      OTHERS                       = 2.


* Get additional user address details (i.e. email)
  CALL FUNCTION 'ADDR_PERS_COMP_COMM_GET'
    EXPORTING
*     ADDRESS_HANDLE          = ' '
     ADDRESS_NUMBER          = ld_address-addrnumber
*     DATE_FROM               = '00010101'
*     LANGUAGE                = SY-LANGU
*     PERSON_HANDLE           = ' '
     PERSON_NUMBER           = ld_address-persnumber
      table_type              = 'ADSMTP'   "email details
*                   Other valid entries for table_type include:
*                       ADFAX for fax details 
*                       ADTEL for telephone details 
*   IMPORTING
*     RETURNCODE              =
    tables
      comm_table              =  ld_smtp
*     ERROR_TABLE             =
   EXCEPTIONS
     PARAMETER_ERROR         = 1
     ADDRESS_NOT_EXIST       = 2
     PERSON_NOT_EXIST        = 3
     INTERNAL_ERROR          = 4
     OTHERS                  = 5.


35
Reports / Pantalla de Selección Dinámico
« en: 12 de Julio de 2007, 09:25:58 am »
Este es un ejemplo de una pantalla de Seleción Dinámica.

Simplemente hay que pinchar en los RADIOBUTTON y ver que pasa.

Código: [Seleccionar]
*&---------------------------------------------------------------------*
*& Report  ZPANTALLA_DINAMICA
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

  REPORT  zpantalla_dinamica.
  TABLES: trdir.

  SELECTION-SCREEN BEGIN OF BLOCK uno WITH FRAME TITLE text-001.
  PARAMETERS: r_opt01 RADIOBUTTON GROUP rad1,
              r_opt02 RADIOBUTTON GROUP rad1,
              r_opt03 RADIOBUTTON GROUP rad1,
              r_opt04 RADIOBUTTON GROUP rad1.

  SELECTION-SCREEN SKIP.

  PARAMETERS: p_opt01 RADIOBUTTON GROUP rad2 USER-COMMAND aaa,
              p_opt02 RADIOBUTTON GROUP rad2,
              p_opt03 RADIOBUTTON GROUP rad2,
              p_opt04 RADIOBUTTON GROUP rad2.
  SELECTION-SCREEN END OF BLOCK uno.

  SELECTION-SCREEN BEGIN OF BLOCK dos WITH FRAME TITLE text-002.
  SELECT-OPTIONS: s_opt1 FOR trdir-cnam,
                  s_opt22 FOR trdir-cnam,
                  s_opt333 FOR trdir-cnam,
                  s_opt444 FOR trdir-cnam.
  SELECTION-SCREEN END OF BLOCK dos.




  AT SELECTION-SCREEN OUTPUT.

    LOOP AT SCREEN.
*---- Opción 1
      IF r_opt01 = 'X'.
        IF screen-name CS 'S_OPT1'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT333' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 2
      ELSEIF p_opt02 = 'X'.
        IF screen-name CS 'S_OPT22'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT333' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 3
      ELSEIF p_opt03 = 'X'.
        IF screen-name CS 'S_OPT333'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT444' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.

*---- Opción 4
      ELSEIF p_opt04 = 'X'.
        IF screen-name CS 'S_OPT444'.
          screen-invisible = '0'.
          screen-input = '1'.
        ELSEIF screen-name CS 'S_OPT1' OR
               screen-name CS 'S_OPT22' OR
               screen-name CS 'S_OPT333' .
          screen-invisible = '1'.
          screen-input = '0'.
        ENDIF.
      ENDIF.
      MODIFY SCREEN.
    ENDLOOP.


36
Reports / Mandar mensajes POPUP entre Usuarios
« en: 11 de Julio de 2007, 10:16:01 pm »
Con este report, muestras un mensaje POPUP a varios usuarios.




*&---------------------------------------------------------------------*
*& Report  Z_MSN_POPUP                                                 *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT Z_MSN_POPUP NO STANDARD PAGE HEADING LINE-SIZE 255.

TABLES: USR41, SPOPLI.

DATA: l_length   TYPE i,
      USER_TEXT  LIKE AGR_TEXTS-TEXT,
      TERMINAL   LIKE USR41-TERMINAL,
      RESPUESTA(2),
      IP(15),
      PC(16).

DATA: ITAB LIKE SPOPLI OCCURS 0 WITH HEADER LINE.
DATA: NOMBRE LIKE SY-UNAME.
DATA: FLAG(1).


PARAMETERS: l_msg  LIKE sm04dic-popupmsg default 'Escribir texto'.



*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------------------------------------------------------*

  PERFORM TOMAR_DATOS_DESTINATARIOS.
  PERFORM TOMAR_DECISION.

  CHECK RESPUESTA NE 'A'.

  TRANSLATE L_MSG USING '= '.
  l_length = strlen( l_msg ).

  LOOP AT ITAB WHERE SELFLAG = 'X'.
    PERFORM TH_POPUP.
  ENDLOOP.







************************************************************************
*                           SUBRUTINAS                                 *
************************************************************************
*&---------------------------------------------------------------------*
*&      Form  TOMAR_DATOS_DESTINATARIOS
*&---------------------------------------------------------------------*
FORM TOMAR_DATOS_DESTINATARIOS.

  SELECT * FROM  USR41 INTO USR41.

    CONCATENATE PC ',' ITAB-VAROPTION INTO ITAB-VAROPTION.

    MOVE USR41-BNAME TO ITAB-VAROPTION.
    ITAB-SELFLAG = ' '.
    APPEND ITAB.
    CLEAR ITAB.

  ENDSELECT.

ENDFORM.                    "TOMAR_DATOS_DESTINATARIOS

*&---------------------------------------------------------------------*
*&      Form  TOMAR_DECISION
*&---------------------------------------------------------------------*
FORM TOMAR_DECISION.
  DATA: RESTO.

  CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
    EXPORTING
      MARK_FLAG          = 'X'
      MARK_MAX           = 10
      TEXTLINE1    =
      'MARCA A LOS USUARIOS QUE QUIERAS ENVIAR EL MENSAJE'
      TITEL              = 'DESTINATARIOS'
    IMPORTING
      ANSWER             = RESPUESTA
    TABLES
      T_SPOPLI           = ITAB
    EXCEPTIONS
      NOT_ENOUGH_ANSWERS = 1
      TOO_MUCH_ANSWERS   = 2
      TOO_MUCH_MARKS     = 3
      OTHERS             = 4.
  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 ITAB WHERE SELFLAG = 'X'.
    IF FLAG = ' '.
      FLAG = 'X'.
      WRITE: 3 'Usuarios que han recibido el mensaje:'.
      WRITE: 41 ITAB-VAROPTION.
    ELSE.
      WRITE: /41 ITAB-VAROPTION.
    ENDIF.
  ENDLOOP.

ENDFORM.                    "TOMAR_DECISION
*&---------------------------------------------------------------------*
*&      Form  TH_POPUP
*&---------------------------------------------------------------------*
FORM TH_POPUP .
  CLEAR NOMBRE.

  MOVE ITAB-VAROPTION TO NOMBRE.
  CALL FUNCTION 'TH_POPUP'
               EXPORTING
                    client         = sy-mandt
                    user           = NOMBRE
                    MESSAGE        = l_msg
                    message_len    = l_length
*                     CUT_BLANKS     = ' '
               EXCEPTIONS
                    user_not_found = 1
                    OTHERS         = 2.

ENDFORM.                    " TH_POPUP



Si lo ejecutamos nos saldrá la siguiente pantalla y escribimos el texto que queremos enviar.





Luego nos saldrá esta otra pantalla en la que tenemos que elegir a los usuarios que queremos enviar el anterior mensaje...



Y listo..  ;D

37
Programación ABAP / Nuevo foro de abap.es
« en: 10 de Julio de 2007, 09:11:08 pm »
Empezamos con un nuevo foro.

Espero que sea de ayuda para todos incluido yo.

Durante los primeros días estaré haciendo pruebas y algunos cambios, espero que todo vaya bien y no de problemas.



Un saludo,
Oscar.  ::)

38
Bapis / BAPI_PO_CREATE1
« en: 09 de Julio de 2007, 06:42:33 pm »
Con esta BAPI vamos a crearnos un pedido de Compras...


Primero rellenamos la Cabecera de la BAPI.
Código: [Seleccionar]
FORM rellenar_bapi_cab.

  CLEAR l_poheader.
  CLEAR l_poheaderx.

  l_poheader-comp_code    = ekko-bukrs.
  l_poheader-doc_type     = 'NB'.
  l_poheader-creat_date   = sy-datlo.
  l_poheader-created_by   = sy-uname.
  l_poheader-vendor       = ekko-lifnr.
  l_poheader-purch_org    = ekko-ekorg.
  l_poheader-pur_group    = ekko-ekgrp.
  l_poheader-doc_date     = sy-datum.


  l_poheaderx-comp_code   = 'X'.
  l_poheaderx-doc_type    = 'X'.
  l_poheaderx-creat_date  = 'X'.
  l_poheaderx-created_by  = 'X'.
  l_poheaderx-vendor      = 'X'.
  l_poheaderx-purch_org   = 'X'.
  l_poheaderx-pur_group   = 'X'.
  l_poheaderx-doc_date    = 'X'.

ENDFORM.                    " rellenar_bapi_cab

Ahora rellenamos las posiciones
Código: [Seleccionar]
FORM rellenar_bapi_pos.

  DATA: pos_rep LIKE ekpo-ebelp.

* Coger nombre material.
  SELECT SINGLE * FROM makt WHERE matnr = i_pedido-matnr
                              AND spras = sy-langu.
  SELECT SINGLE * FROM mara WHERE matnr = i_pedido-matnr.


  CLEAR pos_rep.
  LOOP AT i_pedido.
    CLEAR: l_t_poitem, l_t_poitemx, l_t_poschedule, l_t_poschedulex.
    ADD 10 TO pos_rep.

    l_t_poitem-po_item                  = pos_rep.
    l_t_poitem-short_text               = makt-maktx.
    l_t_poitem-material                 = i_pedido-matnr.
    l_t_poitem-plant                    = ekpo-werks.
    l_t_poitem-stge_loc                 = ekpo-lgort.
    l_t_poitem-quantity                 = i_pedido-menge.
    l_t_poitem-po_unit                  = mara-meins.
    l_t_poitem-item_cat                 = '2'.
    l_t_poitem-agreement                = i_pedido-konnr.
    l_t_poitem-agmt_item                = i_pedido-ktpnr.
    APPEND l_t_poitem.

    l_t_poitemx-po_item                 = pos_rep.
    l_t_poitemx-po_itemx                = 'X'.
    l_t_poitemx-short_text              = 'X'.
    l_t_poitemx-material                = 'X'.
    l_t_poitemx-plant                   = 'X'.
    l_t_poitemx-stge_loc                = 'X'.
    l_t_poitemx-quantity                = 'X'.
    l_t_poitemx-po_unit                 = 'X'.
    l_t_poitemx-item_cat                = 'X'.
    IF NOT i_pedido-konnr IS INITIAL.
      l_t_poitemx-agreement             = 'X'.
      l_t_poitemx-agmt_item             = 'X'.
    ENDIF.
    APPEND l_t_poitemx.

    l_t_poschedule-po_item        = pos_rep.
    l_t_poschedule-delivery_date  = i_pedido-eeind.
    l_t_poschedule-quantity       = i_pedido-menge.
    l_t_poschedule-deliv_time     = sy-uzeit.
    APPEND l_t_poschedule.

    l_t_poschedulex-po_item         = pos_rep.
    l_t_poschedulex-po_itemx        = 'X'.
    l_t_poschedulex-delivery_date   = 'X'.
    l_t_poschedulex-quantity        = 'X'.
    l_t_poschedulex-deliv_time      = 'X'.
    APPEND l_t_poschedulex.

ENDFORM.                    " rellenar_bapi_pos

Ejecutamos la BAPI.
Código: [Seleccionar]
FORM crear_pedido_compra .

  CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
      poheader         = l_poheader
      poheaderx        = l_poheaderx
    IMPORTING
      exppurchaseorder = d_ebeln
    TABLES
      return           = l_t_return
      poitem           = l_t_poitem
      poitemx          = l_t_poitemx
      poschedule       = l_t_poschedule
      poschedulex      = l_t_poschedulex.


  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDFORM.                    " crear_pedido_compra

39
Includes / INCLUDE para Batch Input
« en: 09 de Julio de 2007, 06:37:23 pm »
Este Include esta formado por los siguientes FORM:

  - abrir_sesion_BI
  - rellenar_dynpro
  - insertar_transaccion_BI
  - cerrar_sesion_BI


Código: [Seleccionar]

*-----------------------------------------------------------------------
*                    FORM abrir_sesion_BI
*-----------------------------------------------------------------------
* Esta función abre la sesión de batch input. Si la sesión de batch
*input se ha ejecutado incorrectamente avisa al programa principal.
*-----------------------------------------------------------------------
* --> i_bdctab : Tabla de tipo bdcdata donde se almacena el contenido
*                 del batch input.
* --> p_sesion: Nombre de la sesión de batch input.
* --> p_fechin: Fecha a partir de la cual se puede procesar el b. input.
*     por ejemplo: '19980603' equivale a bloquear hasta el 03/06/1998.
* <-- p_return: Devuelve un valor (sy_subrc) tal que notifica si la
*     función se ha ejecutado correctamente (caso de valer 0).
*-----------------------------------------------------------------------
FORM ABRIR_SESION_BI USING P_SESION TYPE C P_FECHIN TYPE D CHANGING
                            VALUE(P_RETURN) TYPE I.

  DATA: D_BATCHIN TYPE I.
  CALL FUNCTION 'BDC_OPEN_GROUP'
       EXPORTING
            CLIENT              = SY-MANDT
            GROUP               = P_SESION
            USER                = SY-UNAME
            HOLDDATE            = P_FECHIN
            KEEP                = 'X'
       EXCEPTIONS
            CLIENT_INVALID      = 1
            DESTINATION_INVALID = 2
            GROUP_INVALID       = 3
            GROUP_IS_LOCKED     = 4
            HOLDDATE_INVALID    = 5
            INTERNAL_ERROR      = 6
            QUEUE_ERROR         = 7
            RUNNING             = 8
            SYSTEM_LOCK_ERROR   = 9
            USER_INVALID        = 10
            OTHERS              = 11.

  IF SY-SUBRC = 0.
     D_BATCHIN = 1.
  ENDIF.
  P_RETURN = SY-SUBRC.

ENDFORM.

*----------------------------------------------------------------------
*                          FORM rellenar_dynpro
*----------------------------------------------------------------------
*Esta función pretende facilitar la tarea del programador para rellenar
*los campos de la tabla interna de tipo BDCDATA.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almecena el contenido del
*              batch input.
* --> p_valor1: Corresponderá la valor del campo Start de la tabla
*     interna. Puede tomar los siguientes valores 'X' o ' '.
* --> p_valor2: Puede indicar dos conceptos distintos dependiendo del
*     valor que haya tomado p_valor1:
*         p_valor1 ='X' => p_valor2 = Campo program de la tabla BDC_TAB
*         p_valor1 =' ' => p_valor2 = campo Field name de BDC_TAB
* --> p_valor3: Puede inidicar dos valores distintos dependiendo del
*     valor que haya tomado p_valor1:
*         p_valor1 ='X' => p_valor3 = Screen de la tabla BDC_TAB
*         p_valor1 =' ' => p_valor3 = Field Value de la tabla BDC_TAB
*-----------------------------------------------------------------------
FORM RELLENAR_DYNPRO TABLES I_BDCTAB STRUCTURE BDCDATA USING P_VALOR1
            TYPE C P_VALOR2 TYPE C P_VALOR3 TYPE C.

  CLEAR I_BDCTAB.
  IF P_VALOR1 EQ 'X'.
    MOVE: P_VALOR2 TO I_BDCTAB-PROGRAM,
          P_VALOR3 TO I_BDCTAB-DYNPRO,
          P_VALOR1 TO I_BDCTAB-DYNBEGIN.
  ELSE.
    MOVE: P_VALOR2 TO I_BDCTAB-FNAM,
          P_VALOR3 TO I_BDCTAB-FVAL.
  ENDIF.
  APPEND I_BDCTAB.

ENDFORM.

*-----------------------------------------------------------------------
*                      FORM insertar_transacción_BI
*-----------------------------------------------------------------------
* Esta función transfiere los datos de la tabla BDC_TAB al fichero de
* cola, para poder ser más tarde procesado.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almacena el contenido del
*              batch input.
* --> p_codigo: Indicar el código de transacción para el que se ha gene-
*     rado la sesión de batch input.
* <-- p_return: Devuelve el valor de sy-subrc.
*-----------------------------------------------------------------------
FORM INSERTAR_TRANSACCION_BI TABLES I_BDCTAB STRUCTURE BDCDATA USING
                    P_CODIGO TYPE C CHANGING VALUE(P_RETURN) TYPE I.

  CALL FUNCTION 'BDC_INSERT'
       EXPORTING
            TCODE     = P_CODIGO
       TABLES
            DYNPROTAB = I_BDCTAB
       EXCEPTIONS
            INTERNAL_ERROR   = 1
            NOT_OPEN         = 2
            QUEUE_ERROR      = 3
            TCODE_INVALID    = 4
            PRINTING_INVALID = 5
            POSTING_INVALID  = 6
            OTHERS           = 7.

  P_RETURN = SY-SUBRC.
  REFRESH I_BDCTAB.

ENDFORM.

*-----------------------------------------------------------------------
*                         FORM cerrar_sesion_BI
*-----------------------------------------------------------------------
* Cierra la sesión de batch input.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almacena el contenido del
*               batch input.
* <--p_return: Devuelve el parámetro sy-subrc.
*----------------------------------------------------------------------
FORM CERRAR_SESION_BI TABLES I_BDCTAB STRUCTURE BDCDATA USING
                      P_RETURN TYPE I.
  CALL FUNCTION 'BDC_CLOSE_GROUP'
       EXCEPTIONS
            NOT_OPEN    = 1
            QUEUE_ERROR = 2
            OTHERS      = 3.

  P_RETURN = SY-SUBRC.
  FREE I_BDCTAB.

ENDFORM.


Páginas: 1 2 [3]