如何在没有后台打印的情况下提交后台作业?

问题描述 投票:0回答:1

这是我提交后台作业的代码的概述:

 CALL FUNCTION 'JOB_OPEN'
    EXPORTING
      jobname          = v_jobname
      sdlstrtdt        = sy-datum
      sdlstrttm        = sy-uzeit
    IMPORTING
      jobcount         = v_jobcount.

  SUBMIT (gc_report) AND RETURN
  USING SELECTION-SET gc_variant
  WITH SELECTION-TABLE t_seltab
  USER sy-uname
  VIA JOB v_jobname
  NUMBER v_jobcount.

CALL FUNCTION 'JOB_CLOSE'
  EXPORTING
    jobcount             = v_jobcount
    jobname              = v_jobname
    strtimmed            = abap_true.

用户拥有其他任务所需的默认打印机:

enter image description here

因此,当此代码运行时,它会自动将线轴打印到默认打印机。

如何更改我的

SUBMIT
语句以停止打印线轴,但仍使其在 SM37 中可见?我找到了一种方法,即使用系统用户提交报告,但某些用户没有为其他用户安排作业的授权,因此该方法不起作用。

abap
1个回答
0
投票

首先调用函数

GET_PRINT_PARAMETERS
,传递
no_dialog
mode
参数:

DATA: ls_print_parameters TYPE pri_params,
      lc_valid_prt_param  TYPE flag.

      CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING
          no_dialog              = 'X'
          mode                   = 'BATCH'
          immediately            = ' '
        IMPORTING
          out_parameters         = ls_print_parameters
          valid                  = lv_valid_prt_param
        EXCEPTIONS
          archive_info_not_found = 1
          invalid_print_params   = 2
          invalid_archive_params = 3
          OTHERS                 = 4.

并将接收到的结构

ls_print_parameters
传递给
SUBMIT
调用:

SUBMIT (gc_report) TO SAP-SPOOL
  SPOOL PARAMETERS ls_print_parameters
  WITHOUT SPOOL DYNPRO
    ...
© www.soinside.com 2019 - 2024. All rights reserved.