cancel
Showing results for 
Search instead for 
Did you mean: 

Function FM_NAME(smartform) and COMMIT WORK / ROLLBACK Problem

Former Member
0 Kudos

Hello together,

we have a problem concerning a call function to generate a smartform and a execution of ROLLBACK WORK in case of any problems, like user-cancel etc.

e.g.:

wa_ssfcompop-tdnewid    = 'X'.
  wa_ssfcompop-tdimmed    = ' '.
  wa_ssfcompop-tdnoprev   = 'X'.
  wa_ssfcompop-tddest     = 'LOCL'.
  wa_ssfcompop-BCS_COMMIT = ' '.    "we tried all options

CALL FUNCTION fm_name
      EXPORTING
       control_parameters      = wa_ssfctrlop
       output_options              =wa_ssfcompop
      .
      .
      .
      .
  
     IMPORTING
        document_output_info   = document_output_info
        job_output_info              = job_output_info
        job_output_options        = job_output_options
      TABLES
        i_zahlung              = it_itab1
        i_steuertext           = it_itab2
     EXCEPTIONS
       formatting_error      = 1
       internal_error          = 2
       send_error              = 3
       user_canceled        = 4
       OTHERS                  = 5
              .
    IF sy-subrc <> 0.
ROLLBACK WORK.                    "*<- DOES NOT WORK*
ENDIF.

For exmple, the user decides to stop the print of the smartform while he maintains the print-settings (Popup is automatically generated: choose of printer and other options...).

In this case (sy-subcr <> 0) we want to execute a complete ROLLBACK! Unfortunately it does not work.

This means the function fm_name executes an implicit COMMIT WORK!

Does anybody has any ideas to solve this issue?

THanks in advance,

Marcel

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hello again,

just to give you an explication of this case:

the reason for the implicit COMMIT WORK is the option NO_DIALOG = space. It lets the system popup a new modal dynpro, where you can choose your printer etc.

A switch of dynpros executes a implicit commit work!

kind regards