SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software Kodyaz SAP and ABAP Programming Tutorials
Development resources, articles, tutorials, samples, codes and tools for .Net, SQL Server, Windows, Windows Phone, SAP and ABAP, like SAP UI5, Screen Personas, etc.




CRM Companies List
Web Based CRM Software


Prevent DYNPRO_SEND_IN_BACKGROUND Error in Background Process

ABAP programs throw Dynpro_Send_In_Background error when running in background and popup is displayed using Popup_To_Confirm_Step function module. To prevent exception sy-batch and sy-binpt system fields are frequently controlled. Besides these two system variables, ABAP developers can use GUI_IS_AVAILABLE function module and cl_mmim_debug_control=>background_process method to determine if the current program is running as background process or not.

In this ABAP tutorial, I'll show programmers how to use these three methods to determine if current program is running in background as a background process or not for preventing the runtime error DYNPRO_SEND_IN_BACKGROUND in productive SAP systems.

Use System Fields sy-batch and sy-binpt for Background Process

In ABAP programs, pop up dialog screens are frequently used. Although these dialog screens provide a preffered method to enable SAP users to interact with ABAP programs and provide data, it is a general problem frequently experienced if these ABAP reports are executed in background and as batch input.

popup screen using POPUP_TO_CONFIRM_STEP ABAP function module

Below is a sample ABAP program which displays pop up confirmation screen in front of SAP user running the ABAP program.

ABAP pop-up function module POPUP_TO_CONFIRM_STEP causing DYNPRO_SEND_IN_BACKGROUND error

And if the background execution is not checked within ABAP codes, following error will be thrown and observed using SAP ST22 transaction for listing ABAP Runtime Errors.

SAP DYNPRO_SEND_IN_BACKGROUND error in ST22 ABAP Runtime Errors


Use System Fields sy-batch and sy-binpt for Background Process

In fact, ABAP programmers can use the ABAP system fields which are always available to test the background execution in an ABAP program.

SY-BATCH user is used in general to check if an ABAP program or task is running in background or not. If sy-batch system variable value is equal to 'X' then the ABAP program is running in background. Otherwise, sy-batch value is space or initial.

An other system variable that can be used to check whether an ABAP program is running in background or not is testing the value of SY-BINPT variable. System variable sy-binpt has value 'X' when the ABAP program is running within an ABAP batch input session.

So one of the easiet easiest method to test background execution of an ABAP program is enclosing the popup function module POPUP_TO_CONFIRM_STEP within following ABAP IF clause. Unfortunately, this method sometimes is not enough to prevent DYNPRO_SEND_IN_BACKGROUND errors in SAP systems.

IF sy-batch IS INITIAL AND sy-binpt IS INITIAL. " then executed via GUI

ELSE. " running in background

ENDIF.

Use GUI_IS_AVAILABLE Function Module for Background Execution

But my favorite method for preventing DYNPRO_SEND_IN_BACKGROUND errors is using the ABP function module GUI_IS_AVAILABLE and check its return parameter. ABAP function module GUI_IS_AVAILABLE can be used by ABAP programmers to to determine if a SAP GUI is connected and available or not.

If return parameter of GUI_IS_AVAILABLE function module returns 'X' then the current running program is attached to a user interface. On the other hand, if return parameter is equal to space or is initial then this means that running ABAP program is not connected with a GUI and running in the background.

DATA lv_guiavailable TYPE c.
CALL FUNCTION 'GUI_IS_AVAILABLE'
 IMPORTING
  return = lv_guiavailable.
" X, GUI available, Initial => no GUI

IF lv_guiavailable = 'X'. " attached with GUI

ELSE. " running in background

ENDIF.

GUI_IS_AVAILABLE function module used to prevent DYNPRO_SEND_IN_BACKGROUND


Call cl_mmim_debug_control=>background_process Class Method

Another and more enhanced method to determine whether a task is running in background or not, ABAP developers can use cl_mmim_debug_control class background_process static method. background_process class method returns r_background parameter which shows whether the calling program is running in background or not.
By controlling the r_background parameter, ABAP programmers can call or skip function module POPUP_TO_CONFIRM_STEP which causes DYNPRO_SEND_IN_BACKGROUND exception when executed in background processes.

DATA lv_background TYPE c.
CALL METHOD cl_mmim_debug_control=>background_process
 RECEIVING
  r_background = lv_background.

IF lv_background = 'X'. " being executed as a background task

ENDIF.

background_process method call for preventing DYNPRO_SEND_IN_BACKGROUND error

I hope especially the second and the third methods will enable ABAP developers who display pop-up screens by calling POPUP_TO_CONFIRM function module from short dumps in background execution.






SAP Tutorials

SAP Tutorial

SAP Forums

SAP Tools

SAP Transaction Codes Table






Related Articles and Tutorials(http://www.kodyaz.com/sap-abap/dynpro_send_in_background.aspx)
Call Function Module using RFC Destination in ABAP
How to Find Internal Table Row Count in ABAP
Primary key change not permitted for value table
Create Search Help in ABAP for Web Dynpro Component
Create Transaction Code for Web Dynpro Application
ABAP Shared Memory Objects Tutorial with Sample ABAP Code
CALL_FUNCTION_NOT_FOUND ABAP Run Time Error
Create Scheduled Job using SAP SM36 Transaction
Complete List of SAP Modules
Email Spool Request using SAPOffice - Spool to PDF
How to Upload Data to SAP from Excel File using alsm_excel_to_internal_table Function Module
ABAP - Create Hierarchy Tree List using rs_tree_construct, rs_tree_list_display and snodetext
ABAP Tutorial - ABAP String Split Example Code
Upload Data from Excel File in ABAP using TEXT_CONVERT_XLS_TO_SAP
Create CL_GUI_ALV_GRID ALV Grid Column Header using ABAP Data Element
Export SAP Data to Fixed Length Text File
How to Debug Popup Screen in ABAP
ABAP LOOP Statement with At New and At End
Main program for include RV61Bxxx not found
How to Create SAPScript Text using SO10 Transaction Code
How to Display SAP Graphics using SE78 Transaction Code
ALV Grid Color - Table Row Background Color in ALV List
SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter
SAP Smartforms - How to Call Smartform within ABAP Program
ABAP Tutorial - SAP Split and ABAP Split String Function
SAP Tutorial - Convert Spool Request to PDF File using RSTXPDFT4 ABAP Report
Set Default Single Values List for SAP Selection Screen Parameter
ABAP Debugging using Log Point and Break Point
ABAP RegEx for ABAP Regular Expression to fetch Date from String
ABAP Runtime Error ST22 Transaction using Short Dump Analysis
ABAP Try Catch for exception is neither caught Code Inspector Error
Add Year, Month or Day to Date Variable in ABAP using RP_CALC_DATE_IN_INTERVAL
Add Web Dynpro Applications to SAP Favorites Menu
Read Address Data using FM ADDR_GET instead of Querying ADRC Table
Free Adobe LiveCycle Designer Download
ABAP Authority-Check Object For User Other Than Current
SAP Code Inspector for ABAP Break-Point Statement
Change Fields for Selection in SE11 ABAP Data Browser
Check Existence using ABAP SELECT
Compare Code in ABAP using SE39 SplitScreen Editor
Connect SAP from Eclipse using ABAP Project
How to Spell Numbers using ABAP Spell_Amount Function Module
Convert Smartform to PDF in Print Preview Mode
Convert the table using the Database Utility (SE14)
Convert Sales Unit into Text using Function Module in Target Language
Create Business Object in SAP
ABAP Code Inspector Check Variants for HANA Migration Optimization
Create SAP Dynamic Variant using Date Calculation
Create SAP Transaction to Maintain ABAP Table using SM30
Create Transport Request for Text Translations using RS_LXE_RECORD_TORDER
Database Hint Pseudo-Comment for SAP Code Inspector
Delete Entries in NAST Table using RSCLNAST ABAP Program
Delete All Data from SAP Database Table
List Locks in SAP system using SM12 Transaction Code
Prevent DYNPRO_SEND_IN_BACKGROUND Error in Background Process
Enable Remote Debugging in ABAP using RSRDEBUG
How to Execute SAP Program in Background Task
Dynamic Programming using Field Symbols in ABAP Reports
Execute ABAP Program Automatically After Transport Request Import
Export Graphics from SE78 SAP Form Graphics Administration using ABAP program
How to Export IDOC as Excel and Save as Local File from WE02 Transaction
Export SAP Spool Requests as PDF using SP01 Transaction
How to Find SAP Role Users Assigned for Transaction Code
Get Fullname of SAP user using Function Module in ABAP Program
How to Delete Standard Text using SO10 SAP Transaction
How to Find User Exits in ABAP Codes of SAP Transaction
Read Integer and Decimals of a Numeric Value in ABAP Programming
How to Transport SAP Graphics using SE78 Transaction
Import and Export SO10 Standard Text using RSTXSCRP ABAP Program
Move Minus Sign from Right to Left of Negative Number in SAP Smartform
Business Document Service Error: Error when accessing graphic (BDS), RC = 5
Read Pricing Condition Text using ABAP in SAP Sales Document Output
Read Text Symbols in Specific Language using ABAP RS_TEXTPOOL_READ
Get SAP Document Flow using SD_DOCUMENT_FLOW_GET ABAP Function Module
SAP Purchase Order Tables, Transaction Codes and Output
Graphics White Background Displayed Grey on SAP Smartform Output
Export Table Contents into Text File and Download File
SE63 Smartform Translation and Export using SLXT Program
Search and Find SAP Transaction Code using SE93 or SEARCH_SAP_MENU
SAP Code Inspector Error: Select For Cluster Table Without Order By
ABAP Select Statement using Space instead of Null or Initial
SAP Code Inspector: Select-Statement can be Transformed
ABAP Tutorial for SET and GET PARAMETER ID Command
How to Set Start Transaction in SAP GUI
ABAP CONVT_NO_NUMBER Error on SP01 due SP01_WARN Parameter
How to find string length using STRLEN ABAP string function
ABAP Submit Report to Run Another ABAP Program within Code
Unicode Character Problem in IFS File Interface
Web Dynpro Text Translation using Assistance Class
Code Inspector: Unsecure use of FOR ALL ENTRIES
Update Database Table Data using ABAP SE16N_INTERFACE
Function module is not released for the Internet
Transport Variants of an ABAP Program into Workbench Request
TVAP Item Category and SAP Table TVAPT for Text Translations
Unlock Objects Locked in Request or Task using Transport Organizer Tools
Update Multiple Variables in ABAP Select Single Statement
VF31 SAP Transaction to Reprocess Billing Output Messages
SAPSQL_DATA_LOSS ABAP Programming Error
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement


Copyright © 2004 - 2017 Eralper YILMAZ. All rights reserved.
Community Server by Telligent Systems