O Conhecimento

O conhecimento é inútil a menos que você o compartilhe.

quinta-feira, 31 de julho de 2014

Como restringir número de usuários executando um Report?

Acho que não é possível fazer esse tipo de restrição/limite de quantos usuários podem executar simultaneamente um report, mas podemos dar um LOCK na execução do report.....funciona que é uma beleza.

Para isso usamos para bloquear:

call function 'ENQUEUE_ESFUNCTION'
    
exporting
      mode_tfdir     
'E'
      funcname       
'ZCOR00010'
      x_funcname     
' '
      _scope         
'2'
      _wait          
' '
      _collect       
' '
    
exceptions
      foreign_lock   
1
      system_failure 
2
      
others         3.
  
if sy-subrc <> 0.
* Implement suitable error handling here
    
message e000(suwith 'Programa já em execução.' .
    
stop.
  
endif.

 Para isso usamos para desbloquear:

call function 'DEQUEUE_ESFUNCTION'
    
exporting
      mode_tfdir 
'E'
      funcname   
'ZCOR00010'
      x_funcname 
' '
      _scope     
'3'
      _synchron  
' '
      _collect   
' '.

font:http://scn.sap.com/thread/1909186

----------------------------------------------------------------------------------------------------

mais uma opção

função: ENQUEUE_EGMSPPROGRAM

* Chama função de bloqueio de programa
  call function 'ENQUEUE_EGMSPPROGRAM'
    exporting
*     MODE_GMSPPROGRAM       = 'E'
*     CLIENT                 = SY-MANDT
      sponsored_prog         pi_program
*     X_SPONSORED_PROG       = ' '
*     _SCOPE                 = '2'
*     _WAIT                  = ' '
*     _COLLECT               = ' '
    exceptions
      foreign_lock           1
      system_failure         2
      others                 3.

terça-feira, 29 de julho de 2014

LIST_FROM_MEMORY

Sofrer pra que......

Quando quiser dar um print em uma lista (qualquer) nada melhor que exportar para a memória e depois exibir.....
 Na t-code RERAPP (módulo RE - Real State Management, gerenciamento da carteira de imóveis de uma empresa) SAP_RE mais um módulo do infinito mundo SAP.

A coisa é bruta....kkkkkk

vamos ao código:

*&---------------------------------------------------------------------*
*&      Form  SUBMIT_RERAPP
*&---------------------------------------------------------------------*
form submit_rerapp .
  
refresh s_venc.
  
clearwa_venc.


  wa_venc
-option c_le.
  wa_venc
-sign c_i.
  wa_venc
-low last_day_of_month.
  
append wa_venc to s_venc.

  
submit rfrerapp exporting list to memory
    
with s_bukrs     in s_empr
    
with s_recnnr    in s_contr
    
with p_usesid    eq space
    
with p_month     eq mes
    
with p_year      eq ano
    
with s_duedt     in s_venc
    
with p_hdtxt     eq hdtxt "lv_header_txt
    
with p_pdate     eq p_ldate
    
with p_ddate     eq p_ddate
    
with p_period    eq mes "p_data+4(2)
    
with p_pmode     eq pmode
    
and return.
* Recupera o Log do processamento da RERAPP
  
call function 'LIST_FROM_MEMORY'
    
tables
      listobject 
ls_abaplist
    
exceptions
      not_found  
1
      
others     2.
  
if sy-subrc <> 0.
    
message w208(00with text-014.
  
endif.
* Exibe na tela o Log do processamento da RERAPP
  
call function 'WRITE_LIST'
    
exporting
      write_only 
'X'
    
tables
      listobject 
ls_abaplist
    
exceptions
      empty_list 
1
      
others     2.
  
if sy-subrc <> 0.
    
message w208(00with text-014.
  
endif.
endform.                    SUBMIT_RERAPP




 
Blogger Templates