BDC at Background
How to set BDC call transaction driver program at background and this BDC doesnot have selection-screen. If we have selection-screen, there we can set this program at background. Without Selection-screen how to set this program at background?
Hi,
If You have selection screen, then you need to create a variant first.
While creating a Job you have an option called variant, in SM36.
Enter the variant and schdule the job.
Thanks & Regards,
Vamsi.
Similar Messages
-
Can we schedule BDC in Background Mode - SM37
Hi Guru,
Can we schedule our BDC in background - SM37 . Upload file will be on Local Sustem - C drive.
Regards
Durgesh
Moderator message: background/GUI problems = FAQ, please search before posting.
locked by: Thomas Zloch on Oct 6, 2010 2:14 PMGUI functions (like GUI_UPLOAD) will not work in background, they need an actual Gui active.
There are plenty of threads on this subject, search also in the wiki for threads/guide like [Working with files |http://wiki.sdn.sap.com/wiki/display/ABAP/Workingwithfiles] or [Communication to Presentation Server in Background Mode|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/9831750a-0801-0010-1d9e-f8c64efb2bd2&overridelayout=true] or [Working with FTP Server |http://wiki.sdn.sap.com/wiki/display/ABAP/WorkingwithFTP+Server]
(To execute a BDC in background use report RSBDCSUB.)
Regards,
Raymond -
Document not posting through F-02 BDC in background.
Hi,
While trying to post park documents for a company code through F-02 using BDC in background mode N, when any single document is having any error then all the documents for that company code are going in error state and not getting posted.When checked in debug mode for the error document, it is showing the Profit center field is not present on screen at BDC whereas the profit center field is actually passed and is present.Please advise.
Edited by: rohan.das on Dec 20, 2011 2:40 PMThere is a POP-Up window in the process, that is not coming in background. identify that screen no and not pass any data, another option is pass OK_CODE for that particular screen.
Hope it's might be useful for you.
Thanks,
Prarthan -
BDC issue background and foreground
Hiii
i have already write bdc code using batch input. The data is taken from an excel file .
How the program work now is it create a session in SM35 and i can decide to execute the session either in background or foreground.
The reson why i did batch input and not call transaction is because i am told that with call transaction you can't execute batch input program in background since the excel file will be loaded from the user desktop. With call transaction and background execution the file need to be loaded on server first and then take the file from the server to BDC tcode.
My problem is I need my program to execute automatically without passing though the SM35. I also need to give the option to user to either execute is in foreground or background.
BDC code look this:
Call function "OPEN_BDC"
group = "ztest" I use constant
keep = "X'
perform dynpro
perform fillfield
call fuction "CLOSE_BDC"
1) I am told to use the FM file_open / file_submit / file_close but I dont really know hat parameter to pass in those FM the file_submit is giving me exception error.
2) I tried to use submit program RSBDCSUB . it create a session in sm35 and have status background job but the session havent executed
3) All the No1 and No2 is to execute the BDC in background then what about the solution if user what to execute in foreground.
Please i need precise answer??Job_submit is not functioning plzzz ess sample code below because of invalid_jobdata = 3
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobgroup = Ztest //Session name in SM35
jobname = v_jobname
IMPORTING
jobcount = v_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
authcknam = sy-uname
jobcount = v_jobcount
jobname = v_jobname
language = sy-langu
report = sy-repid
VARIANT = ' '
IMPORTING
STEP_NUMBER =
EXCEPTIONS
bad_priparams = 1
bad_xpgflags = 2
invalid_jobdata = 3
jobname_missing = 4
job_notex = 5
job_submit_failed = 6
lock_failed = 7
program_missing = 8
prog_abap_and_extpg_set = 9
OTHERS = 10
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = v_jobcount
jobname = v_jobname
sdlstrtdt = sy-uzeit
sdlstrttm = sy-datum
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9
IF sy-subrc <> 0.
ENDIF. -
Hi all,
I'm working on ECC 6.
Whenever I'm scheduling a BDC in background, it is not running, whereas the same is working perfectly in foreground.
What can be the reason?
Can anybody guide me?
Regards
Vamsyhi,
there can be various reasons.
Please check whether you are using the file on presentation server or application server. In background processing the function modules GUI_UPLOAD etc will not work. You need to put the file on application server.
Check whether you are giving file with data or empty file.
Create a variant in the program and While creating background job mention the variant name there.
Is it showing any errors ? if so please mention them .
Thanks and regards. -
How to put a report which contains code for BDC in background
Hello Experts ,
Please provide your valuable opinions on following issue,
My BDC execution is taking longer time and it gives time out error. To avoid this problem i have created a separate report which l contains the BDC code (Call transaction ) and i have put this report for background execution. But upon doing this My BDC code is not performing the transaction call which it was performing when it was executed individually. In sm37 it shown the job that i am creating but nothing is actually happening as a result of transaction call.
The code that i have written is :
RFC code
SUBMIT ZREPORT AND RETURN.
RFC end
Z_REPORT .
PERFORM open_job.
PERFORM get_print_parameters.
PERFORM job_submit. here in Submit i have specified the another report name(zbdcreport) which contains the actual logic for bdc
PERFORM job_close.
Report END.
zbdcreport
The call transaction is as follows :
( CALL TRANSACTION TCODE USING BDCDATA
MODE 'N' "CTUMODE "N
UPDATE 'S' "CUPDATE "S
MESSAGES INTO MESSTAB .)
end zbdcreport
Can anybody provide the reason for the error .
Regards,
UmaHi
Check the code using this...
DATA: number TYPE tbtcjob-jobcount,
name TYPE tbtcjob-jobname VALUE 'JOB_TEST',
print_parameters TYPE pri_params.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT submitable TO SAP-SPOOL
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDIF. -
Error while executing BDC in background.
Hi
I have written a program that creates a background job to execute a BDC on Transaction CKMPRPN. This transaction is used to update future price of Materials. When this program is executed in foreground it works perfect. But when it is executed in background it throws these error messages. Same error messages are displayed when I process the BDC recording in background.
Enter at least one plant
Enter at least one plant
Spool request (number 0000023938 ) created without immediate output
No batch input data for screen SAPMSSY0 0120
Can anyone tell me why this problem is occuring only during background execution?
Or Do I need to find out a Function Module to update the future price of materials?Thanks Kris,
Its a useful answer.. But unfortunately in 4.6C version we dont have this option of 'simulate background mode'.
Anyways.. I was able to find the solution.. I used call transaction and executed the BDC program in background and it worked. Earlier I was executing a single transaction for set of materials. But now I m executing separate transaction for each material. It gives these messages at every execution but it also updates the database. Dont know how.. -
Error while running BDC in Background
Hi,
I am using BDC for a custom transaction YMMFGC. The operation that I am acheiving using this transaction is updating Materials from SalesOrg/Dist Chnl to another SalesOrg/Dist Chnl. When I am trying to run the Program in Foreground in No Screens Mode or Visible screen navigations, the data is getting updated in the MVKE table. Extension is verified for in this table. But when I try to run the program in the background, the job is getting finished successfully, but the data is not getting updated in the table. Please suggest how to proceed with this.
Thanks!!!
ChKWrite your BDC_OPEN_GROUP in the following manner..
p_group - Name of BDC session
p_keep - set to 'X' to keep session after process
p_user - User ID for authorizations
p_subrc - returned status.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_group
keep = p_keep
user = p_user
IMPORTING
qid = p_qid
EXCEPTIONS
client_invalid = 1
group_invalid = 3
group_is_locked = 4
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11.
also..what does update mode 'P' means..it should be either 'S' or 'A' or 'L'..
Check below...
ctumode LIKE ctu_params-dismode
" A: show all dynpros
" E: show dynpro on error only
" N: do not display dynpro
cupdate LIKE ctu_params-updmode
" S: synchronously
" A: asynchronously
" L: local
TRANSLATE: p_tcode TO UPPER CASE,
ctumode TO UPPER CASE,
cupdate TO UPPER CASE.
CALL TRANSACTION p_tcode USING p_tb_bdc
MODE ctumode
UPDATE cupdate
MESSAGES INTO p_tb_bdcmsg. -
Processing of a BDC in background which internally triggers user exits
Hi experts,
I have a req. where in a BDC program would internally trigger a user exit to update values.The program is running well in the foreground and in display with errors.But in background it throws a "System error when creating a control".Can you please let me know the exact reason for this.
Thanks and Regards,
Anithai think there is one option 'After Job' in SM36
this might be helpful to you
regards
if you are creating your jobs via SM36, you should be able to to create the second job using
'After Job' option with the 'Start Status Dependent' checkbox switched on. This way the
second job will not start unless the first job finishes successfully.
Message was edited by: Surpreet Singh Bal -
I want to covert the BDC to background process
Hi,
I want to change the BDC program to Background processing . I am posting the code below, can you change it.
FUNCTION YFIIN_CRC_SET_FLG1.
""Local Interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(QMNUM_001) LIKE VIQMEL-QMNUM
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL OPTIONAL
subrc = 0.
perform bdc_nodata using NODATA.
perform open_group using GROUP USER KEEP HOLDDATE CTU.
perform bdc_dynpro using 'SAPLIQS0' '0200'.
perform bdc_field using 'BDC_CURSOR'
'RIWO00-QMNUM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RIWO00-QMNUM'
QMNUM_001.
perform bdc_dynpro using 'SAPLIQS0' '7200'.
perform bdc_field using 'BDC_OKCODE'
'=GNOK'.
perform bdc_field using 'BDC_CURSOR'
'VIQMEL-QMNUM'.
perform bdc_dynpro using 'SAPLIQS0' '7200'.
perform bdc_field using 'BDC_OKCODE'
'=BUCH'.
perform bdc_field using 'BDC_CURSOR'
'VIQMEL-QMNUM'.
perform bdc_transaction tables messtab
using 'IQS2'
CTU
MODE
UPDATE.
if sy-subrc <> 0.
subrc = sy-subrc.
exit.
endif.
perform close_group using CTU.
ENDFUNCTION.
==================================
***INCLUDE BDCRECXY
Batchinputdata of single transaction
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
Nodata-Character
DATA: NODATA_CHARACTER VALUE '/'.
create batchinput session *
FORM OPEN_GROUP
USING P_GROUP LIKE APQI-GROUPID
P_USER LIKE APQI-USERID
P_KEEP LIKE APQI-QERASE
P_HOLDDATE LIKE APQI-STARTDATE
P_CTU LIKE APQI-PUTACTIVE.
IF P_CTU <> 'X'.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING CLIENT = SY-MANDT
GROUP = P_GROUP
USER = P_USER
KEEP = P_KEEP
HOLDDATE = P_HOLDDATE.
ENDIF.
ENDFORM.
end batchinput session *
FORM CLOSE_GROUP USING P_CTU LIKE APQI-PUTACTIVE.
IF P_CTU <> 'X'.
close batchinput group
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDIF.
ENDFORM.
Start new transaction according to parameters *
FORM BDC_TRANSACTION TABLES P_MESSTAB
USING P_TCODE
P_CTU
P_MODE
P_UPDATE.
DATA: L_SUBRC LIKE SY-SUBRC.
IF P_CTU <> 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING TCODE = P_TCODE
TABLES DYNPROTAB = BDCDATA
EXCEPTIONS OTHERS = 1.
ELSE.
CALL TRANSACTION P_TCODE USING BDCDATA
MODE P_MODE
UPDATE P_UPDATE
MESSAGES INTO P_MESSTAB.
ENDIF.
L_SUBRC = SY-SUBRC.
REFRESH BDCDATA.
SY-SUBRC = L_SUBRC.
ENDFORM.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF fval <> NODATA_CHARACTER.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
Insert field *
FORM BDC_NODATA USING P_NODATA.
NODATA_CHARACTER = P_NODATA.
ENDFORM.Hi..
Incase of Session method you have to Schedule the Program RSBDCSUB in backgroud using the Tcode SM36.
This program Takes the Session Name as input and Process the Session in background.
Note: Create a variant with the Session name for this program
<b>Reward if Helpful</b> -
Fatal error while executing BDC in background for PFCG transaction
Hello,
I have requirement where I have to create or modify roles in PFCG transaction.
I used BDC to do this. While executing in foreground it works fine but in
background mode it is giving me runtime error as
"Control Framework: Fatal error - GUI cannot be reached". What
could be the reason behind it.
Is there any BAPI available to meet this functionality where I can modify or
create new roles in PFCG Transaction code.
Thank You.
Regards,
DipakHi Dengyong,
I tried searching with that. But did not get any suitable BAPI or FM to meet this functionality.
Regards,
Dipak -
Hi
After running a BDC program in background, next day morning when you see the results, few records
are not updated(error records). So at that what we do to update the remaining error records.
Waiting for reply...
Regards.Hi,
I am also using BDC Uploads in background mode. I move the error records to separate internal table based on MSTYP in call transaction method. After execution of Recording ,that internal table has set of error records .I will get a file path from the variant saved and upload in error records in tat file path in application server . So they Can Know which records are not created.Some Sample code for moving errors.
CALL TRANSACTION 'VK11' USING it_BDCDATA MODE 'N'
MESSAGES INTO IT_MESSTAB1.
loop at IT_MESSTAB1 INTO WA_MESSTAB1 .
WA_MESSTAB-MSGTYP = WA_MESSTAB1-MSGTYP .
WA_MESSTAB-SPRAS = WA_MESSTAB1-MSGSPRA .
WA_MESSTAB-MES_ID = WA_MESSTAB1-MSGID .
WA_MESSTAB-MES_NO = WA_MESSTAB1-MSGNR .
WA_MESSTAB-MSGV1 = WA_MESSTAB1-MSGV1 .
WA_MESSTAB-MSGV2 = WA_MESSTAB1-MSGV2 .
WA_MESSTAB-MSGV3 = WA_MESSTAB1-MSGV3 .
WA_MESSTAB-MSGV4 = WA_MESSTAB1-MSGV4 .
WA_MESSTAB-e_rec1 = WA_head1-vtweg .
WA_MESSTAB-e_rec2 = WA_head1-werks .
APPEND WA_MESSTAB TO IT_MESSTAB.
endloop.
CLEAR: WA_MESSTAB, WA_MESSTAB1,idx.
REFRESH IT_MESSTAB1.
REFRESH IT_BDCDATA.
IDX = 01.
ENDLOOP.
Regards,
Manesh.R -
hi,
I facing issue in BDC for PA30, My BDC is working in foreground mode but not running in background mode. purpose of bdc is based on value of itab of previous day data update on next day in backgound.
below code i m using in BDC :
INITIALIZATION.
ctu = 'X'.
session = ''.
nodata = ''.
ctumode = 'N'.
cupdate = 'L'.
FORM processs_bdc_data .
DATA: v_date LIKE sy-datum,
begda type pa9004-endda.
DATA:
endda(10) TYPE c,
stime(5) TYPE c,
etime(5) TYPE c,
loaddat(10) TYPE c.
SORT itab BY taskno pernr.
LOOP AT itab.
tabix = sy-tabix.
begda = sy-datum.
PERFORM open_group.
PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=INS'.
PERFORM bdc_field USING 'RP50G-PERNR'
itab-pernr.
PERFORM bdc_field USING 'RP50G-TIMR6'
'X'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RP50G-SUBTY'.
PERFORM bdc_field USING 'RP50G-CHOIC'
'Employee Task Monitoring'.
PERFORM bdc_field USING 'RP50G-SUBTY'
'1'.
PERFORM bdc_dynpro USING 'MP900400' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'P9004-ZZREMARK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPD'.
PERFORM bdc_field USING 'P9004-ZSTATUS'
'NEW TASK'.
PERFORM bdc_field USING 'P9004-ZPRIORITY'
'MEDIUM'.
PERFORM bdc_field USING 'P9004-ZPERNO'
itab-zperno.
PERFORM bdc_field USING 'P9004-BEGDA'
begda.
PERFORM bdc_field USING 'P9004-STIME' '083000'.
PERFORM bdc_field USING 'P9004-ENDDA'
begda.
PERFORM bdc_field USING 'P9004-ETIME' '082959'.
PERFORM bdc_field USING 'P9004-MNDAT'
begda.
PERFORM bdc_field USING 'P9004-TERMN'
PERFORM bdc_field USING 'P9004-ZZTASK'
itab-zztask.
PERFORM bdc_field USING 'P9004-ZZREMARK'
itab-zzremark.
call transaction 'PA30' using bdcdata mode ctumode update cupdate messages into
messtab.
PERFORM messages.
PERFORM close_group.
REFRESH : messtab, bdcdata.
ENDIF.
ENDLOOP.
ENDFORM. " PROCESSS_BDC_DATA
What can be the possible reasons for not updating in backoground mode pls sugess me.
Thanks in advance
tarunTry the following:
Replace your code
call transaction 'PA30' using bdcdata mode ctumode update cupdate messages into messtab.
with
DATA: gs_options TYPE ctu_params. "BIM Processing options
* Set processing options.
gs_options-dismode = 'N'. "N (back) A (Fore) / E (Error)
gs_options-updmode = 'S'. "Synchronous update
gs_options-defsize = 'X'. "Default screen-size (for texts!)
gs_options-racommit = 'X'. "COMMIT WORK
* Perform the transaction 'PA30'
CALL TRANSACTION 'PA30' USING bdcdata
OPTIONS FROM gs_options
MESSAGES INTO messtab.
Edited by: Rob Postema on Sep 6, 2010 11:00 AM
Edited by: Rob Postema on Sep 6, 2010 11:00 AM
Edited by: Rob Postema on Sep 6, 2010 11:00 AM
Edited by: Rob Postema on Sep 6, 2010 11:01 AM -
Error in BDC in background mode.
Hello Experts,
I am having a query related to BDC. I have written the BDC for TCode : CKMPRPN (Future Price Maintenance). When I execute the BDC thru Call transaction method it works properly.
When I Create the Session and execute in foreground mode then also it woks but when i try to execute in background mode it gives me an error.
Please suggest me the proper Solution.
Thanks
SwatiHi ,
Check wheter the field names for the transaction recorded are correct sometimes the field names are not fully copied to se38, if the filed name is to long.However when you run the BDC in foreground it runs ,but when you execute in background it fails, Check for the field names for the recorded transaction in SHDB and in the program.
Thanks,
Ahsan -
No batch input data for screen SAPMSSY0 0120 when running BDC in background
Hi Experts,
I am facing an issue "No batch input data for screen SAPMSSY0 0120" when running a BDC for VA01 in background.
The scenario is like we have EDI orders coming into SAP in the form Idocs. These EDI orders are processed by Function module
IDOC_INPUT_ORDERS. This FM module internally calls VA01 (Call Transaction) to create Sales Orders in SAP.
Now we have a scenario in which we want a popup screen to come up & ask for selection of record from list of records displayed on popup screen. In background since we can not show up a screen, we are programatically selecting the record we want & going ahead.
Now what is happening is during foerground the functionality is working abosultely fine, that is incoming idoc is getting posted successfully in SAP with status of 53. Incase of back ground processing of the same we are getting an error
No batch input data for screen SAPMSSY0 0120
I have checked this screen through screen painer(SE51) & i did not find any element on this screen but Element list
shows one field Syst-Xcode.
Kindly guide me how to fix the issue so that the same can work as expected in background.
Regards,
Chetan.Hi Chetan,
List screens utilize SAPMSSY0/0120. Please check within your ABAP coding if you have any customer exit that tries to issue WRITE statements. If so, either remove them or add logic to not issue them in background (e.g. SY-BATCH = 'X'). Another culprit might be a SUBMIT statement in a user exit, which triggers a report with list output. I'm not completely sure, but I think the screen is also used for some value helps (do you have any coding forcing a value help popup?).
Hope this helps, harald
Maybe you are looking for
-
How can I get the elements 12 red eye correction to target the iris? I can correct photo in Iphoto program in Mac os x, version 10.9.2.
-
System Error in User exit.
Hi Guys, I am working on a PO exit(Enhancement: MM06E005 and Component: EXIT_SAPMM06E_013), the problem I am facing is if i throw an error message, it gets displayed as information message and then pop ups a system error message (error in method PO_C
-
JNDI Error when Oracle BPM Process invokes an EJB Service Adapter
Hi All, I am trying to invoke an EJB Service from my Oralce BPM process/workflow. I have provided the JNDI name in EJB service adapter in Jdeverloper also. Even though I have configured the JNDI in weblogic server properly, i am getting some JNDI inv
-
From the Community: Tips and Tricks
Hello, I believe it makes sense if we have a thread where we post some key tips and tricks we have discovered during our adventures. The intention is not to post whole applications but solutions to specific issues that might be encountered during the
-
in CS5.5 I could select several comps. Now in CS6 I used all combinations like mouseclick and shift/alt/strg, etc. without success. The only feature is double click which puts me back into the main menu after one file is assigned into the queue, i.e.