Lanzar programa en background

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • carcaharas
    Member
    • jul
    • 50

    #1

    Lanzar programa en background

    Hola buenas, tengo que hacer lo siguiente. Tengo que modificar un método de una bapi, dentro del cual tengo qeu hacer una comprobación y si la comprobación se cumple LANZAR UN PROGRAMA EN BACKGROUND. No tengo problemas con nada hasta que llega a lanzar el programa en background. ¿Cómo hago eso? El programa es un programa que me he creado yo y que tiene pantalla de selección con lo que supongo que tendré que suprimirla con un (skip first screen o algo así) pero como hago para que el programa se lanze en background????
    Un saludo y gracias
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Holas .. aki hay un ejemplo de como lanzar un programa en background, debes utilizar las funciones OPEN_JOB y CLOSE_JOB

    https://www.sdn.sap.com/irj/scn/mess...sageID=5336010
    David Carballido Córdova

    Comentario

    • carcaharas
      Member
      • jul
      • 50

      #3
      Muchas gracias

      Comentario

      • jramos_torres
        Junior Member
        • dic
        • 8

        #4
        Lanzar Un Programa En Job O Background

        Espero esto te sirva o te de una idea como minimo.
        Las siguientes funciones se realizan una tras otra,asi debe ser.Los comentarios que vez en la funcion JOB_SUBMIT se lo puedes quitar. la parte del submit que no tiene comentarios la hice por que necesitaba mandarle
        una tabla al programa de fondo esa parte la puedes comentarizar y la del
        comentario activarla si asi conviene a tu programa.



        Form Ejecuta_Job_Fondo.
        *
        Call Function 'JOB_OPEN'
        Exporting
        JobName = 'ZDME0047'
        Importing
        jobcount = Tbtcjob-Jobcount
        Exceptions
        Others = 0.
        **
        * Call Function 'JOB_SUBMIT'
        * Exporting
        * authcknam = Sy-Uname
        * Jobcount = Tbtcjob-jobcount
        * Jobname = 'ZDME0047'
        * Report = 'ZDME0047'
        ** Variant = ''
        * Exceptions
        * Bad_Priparams = 1
        * Bad_Xpgflags = 2
        * Invalid_Jobdata = 3
        * Jobname_Missing = 4
        * Job_Notex = 5
        * Job_Submit_Failed = 6
        * Lock_Failed = 7
        * Program_Missing = 8
        * Prog_Abap_And_Extpg_Set = 9.
        *
        Submit ZDME0047 With p_Oferta In R_Ofertas To Sap-Spool
        Spool Parameters Print_parameters
        WithOut Spool Dynpro
        Via Job 'ZDME0047' Number Tbtcjob-Jobcount
        User Sy-Uname
        And Return.


        *
        Call Function 'JOB_CLOSE'
        Exporting
        Jobcount = tbtcjob-jobcount
        jobname = 'ZDME0047'
        strtimmed = 'X'
        Exceptions
        Cant_Start_Immediate = 1
        Invalid_StarDate = 2
        Jobname_Missing = 3
        Job_Close_Failed = 4
        Job_Nosteps = 5
        Job_notex = 6
        Lock_Failed = 7
        Invalid_Target = 8.
        *
        EndForm.

        Comentario

        • pafú
          Member
          • sep
          • 49

          #5
          Ejemplo facilito

          lv_jobname = 'ZPROG088A'.

          CALL FUNCTION 'JOB_OPEN'
          EXPORTING
          jobname = lv_jobname
          IMPORTING
          jobcount = lv_jobcount
          EXCEPTIONS
          cant_create_job = 1
          invalid_job_data = 2
          jobname_missing = 3
          OTHERS = 4.

          IF sy-subrc <> 0.
          MESSAGE e208(00) WITH 'Error creating Job'.
          ENDIF.

          SUBMIT zprog088a WITH p_ini = f_inicio
          WITH p_fin = f_fin
          WITH p_usu = sy-uname
          VIA JOB lv_jobname NUMBER lv_jobcount
          AND RETURN.

          IF sy-subrc <> 0.
          MESSAGE e208(00) WITH 'Error scheduling Job'.
          ENDIF.

          CALL FUNCTION 'JOB_CLOSE'
          EXPORTING
          * at_opmode = 'X'
          jobcount = lv_jobcount
          jobname = lv_jobname
          strtimmed = 'X'
          EXCEPTIONS
          cant_start_immediate = 1
          invalid_startdate = 2
          jobname_missing = 3
          job_close_failed = 4
          job_nosteps = 5
          job_notex = 6
          lock_failed = 7
          OTHERS = 8.

          IF sy-subrc <> 0.
          MESSAGE e208(00) WITH 'Error closing Job'.
          ELSE.
          MESSAGE s368(00) WITH 'Job created:' lv_jobcount.
          ENDIF.

          Comentario

          • Loreluv
            Junior Member
            • mar
            • 9

            #6
            Ejecutar JOB desde un programa

            Hola a todos,
            Entiendo que éste código en las ultimas respuestas me permiten crear el JOB por medio de código, con la función SUBMIT agregar pasos y con la CLOSE mandar la ejecución....
            Yo ya tengo JOBs definidos pero que quiero mandar ejecutar al oprimir un boton en pantalla, es decir desde un Report...
            Mi duda es: ¿es necesario llevar a cabo los pasos por medio de SUBMIT si el JOB ya los tiene definidos ? ¿Es posible solo hacer uso del OPEN y CLOSE?

            Saludos
            **all you need is love**

            Comentario

            Trabajando...