cancel
Showing results for 
Search instead for 
Did you mean: 

Print Preview goes in background for huge documents

matteo_montalto
Contributor
0 Kudos

Hi all gurus,

facing a strange behaviour here... for certain HUGE documents, e.g. Contracts or Purchase Orders with a lot of item positions, the "Print Preview" button leads to a standard popup window which asks for a confirmation: text says:

"Do You really want to execute Action in Background"

Pressing Yes, the process get stuck'd and after some minutes, a mail is sent to the buyer notifying the failure on the Print Preview action.

We would like a priori that Print Preview action is always performed as a foreground process.
Probably this behaviour depends on some settings in customizing but we did not find them.

Is it possible to disable the background execution for Print Preview? How?
Thanks for your attention and support,

M.

Accepted Solutions (1)

Accepted Solutions (1)

matteo_montalto
Contributor
0 Kudos

Ok, more info:

- we're running an SRM 7.0;

- according to this page:

http://www.consolut.com/en/s/sap-ides-access/d/s/doc/YY-CATE$SAPSRM$ADV_BACKGRND_PROCESS

we could control the background threshold for many actions if we implement business function SRM_CONT_IMPR_1 ... but we don't have it, therefore there's neither the Customizing switch SRM_701_BACKGROUND_PROC (Advanced Background Processing Features).

So... how can we manage to suppress background mode for Print Preview?

matteo_montalto
Contributor
0 Kudos

Ok, solved on my own while debugging.

The method in which these checks for background processing are performed is:

/SAPSRM/IF_CLL_DODM_CTR_H_IDEN~PRINTPRIVIEW_BACKGROUND_CHECK

specifically implemented in class /SAPSRM/CL_CH_WD_MAP_IDENT_CTR.

Here, in row 46, the standard threshold value is retrieved via FM call:


  CALL FUNCTION 'BBP_CUST_GET_BACKGRD_THRESHOLD'
EXPORTING
iv_objecttype
= /sapsrm/if_pdo_obj_types_c=>gc_pdo_contract
IMPORTING
ev_threshold 
= lv_treshhold.

Then in row 62 this threshold is compared with the cardinality of the contract:

DESCRIBE TABLE lt_items LINES lv_item_count.

IF lv_item_count GE lv_treshhold.
lv_back_process = 'X'.
ENDIF.

Hope this could help someone, somehow

Answers (0)