Call transaction 'SE38'
Hi,
i'm calling transaction SE38 from my report.
First try was this:
set parameter id 'RID' field selfield-value.
call transaction 'SE38' and skip first screen.
But the first screen is not skipped, it just stays on the entry screen with the reportname correctly filled.
After that i tried
bdcdyn 'SAPLWBABAP' '0100'.
bdcfil 'BDC_OKCODE' '=SHOP'.
bdcfil 'RS38M-PROGRAMM' selfield-value.
bdcfil 'RS38M-FUNC_EDIT' 'X'.
CALL TRANSACTION 'SE38' USING it_bdc MODE 'E'.
This is working, but the old editor is called and not the new one.
So at least, its working, but i really would like to call the new editor (which is configured in utilities/settings) instead od the backend editor.
Any idea why in the first example the editor is noit called?
Hi,
CALL TRANSACTION ..... AND SKIP FIRST SCREEN only skips the first screen if you can get from the first to the second screen by pressing enter. If you have to use a function key it wil stay on the first screen.
For example, most of the functional transactions (FB03, VA03 etc...) will skip the first screen, but anything like SE38, SE11 etc need a function key to progress.
Regards,
Nick
Similar Messages
-
Call Transaction from Program by Skipping Initial Screen & Pass the Value
Hi All,
Can anybody help me to call a transaction from my program. I do not want to display the initial screen of the transaction but that TCODE should get opened by passing the values to the parameter of the initial screen.
For Example, in my program I want to call 'SE38' and in that, my Program of Name 'ZTEST' should get opened. So I need to call Transaction SE38, but I donot want to display initial screen of that. Instead of that, I want to put the value of Program 'ZTEST' and thus my program should get opened.
SandipHello Sandip,
Since you have not made any references to Batch Processing, I shall tell you the normal way to do it. First look at the code below and execute it.
set parameter id 'DTB' field 'VBAK'.
call transaction 'SE16' and skip first screen.
There are a few things that you need to keep in mind before you use this statement:
1. All mandatory input fields of the initial dynpro must be filled completely and with the correct values by the SPA/GPA parameters.
2. For the initial dynpro, in the Screen Painter the own dynpro number must not be specified as the next screen number. However, if the next screen can be reached from the first screen by just hitting the Enter key, this will work.
The following will not work as you expect, because the next screen in the transaction cannot be reached by just hitting the Enter Key.
set parameter id 'RID' field 'ZTEST'.
call transaction 'SE38' and skip first screen.
Regards,
Anand Mandalika.
Please reward points if this helps. -
Alternatine to call Transaction.
Hi All,
Need a Solution to call se38 with a program name 'ZTEST' which skips the first screen.
I tried using
SET PARAMETER ID 'RID' FIELD 'ZTEST'
CALL transaction 'SE38' AND SKIP FIRST SCREEN .
But unable to skip the first screen and display the report.
Thanks & Regards,
SantoshHI ,
i think for call transaction alternative is SUBMIT so
y can;t u try using SUBMIT if any doubt let me know .
SUBMIT
Basic forms:
1. SUBMIT rep.
2. SUBMIT (name).
Extras:
1. ... LINE-SIZE col
2. ... LINE-COUNT line
3. ... TO SAP-SPOOL List output to the SAP spool database
4. ... USING SELECTION-SCREEN scr
5. ... VIA SELECTION-SCREEN
6. ... AND RETURN
7. ... EXPORTING LIST TO MEMORY
8. ... USER user VIA JOB job NUMBER n
9. ...Various additions for passing parameters to rep
10. ... USING SELECTION-SETS OF PROGRAM prog
Effect
Calls report rep.
The system leaves the active program and starts the new report rep. In basic form 2, you can specify the name of the report in the field name. You must specify the name in uppercase, otherwise a runtime error occurs.
Note
· You can only start programs with type '1' using SUBMIT. If the program has a different type, the system triggers a runtime error.
Please consult Data Area and Modularization Unit Organization documentation as well.
Addition 1
... LINE-SIZE col
Effect
The list generated by the report has the line width col.
Addition 2
... LINE-COUNT line
Effect
The list generated by the report has line lines per page.
Addition 4
... USING SELECTION-SCREEN scr
Effect
When you execute the report, the system uses the selection screen number that you specify in the scr field. This must be a selection screen defined using the SELECT-OPTIONS, PARAMETERS and SELECTION-SCREEN statements.If you omit the addition, the system uses the standard selection screen 1000.
This addition allows you to start the same report in different situations, using a different selection screen each time.
Notes
1. The addition VIA SELECTION SCREEN determines whether the report is processed in the foreground or the background.
2. What happens if the required screen does not exist or is not a selection screen?
Screen 1000:
If you want to use the standard selection screen (... USING SELECTION-SCREEN 1000 or do not specify a ... USING SELECTION-SCREEN) addition, the system does not process a selection screen.
Other selection screens:
The system triggers a runtime error.
Addition 5
... VIA SELECTION-SCREEN
Effect
The selection screen is displayed. In this case, the selection screen is displayed again after the report list has been displayed. The values entered by the user remain displayed.
Addition 6
... AND RETURN
Effect
Returns to the calling transaction or program after the called program has been executed. SUBMIT ... AND RETURN creates a new internal session.
Addition 7
... EXPORTING LIST TO MEMORY
Effect
Does not display the output list of the called report, but saves it in ABAP memory and leaves the called report immediately. Since the calling program can read the list from memory and process it further, you need to use the addition ... AND RETURN . Also, since the called report cannot be requested for printing, the addition ... TO SAP-SPOOL is not allowed here. In addition, you must not assign a function code to the ENTER key in the current GUI status. The saved list is read from the SAP memory using the function module 'LIST_FROM_MEMORY' and can then be saved to the database using EXPORT, for example. You can process this list further with the function modules 'WRITE_LIST', 'DISPLAY_LIST' ... of the function group "SLST".
Addition 8
... USER user VIA JOB job NUMBER n
Effect
Schedules the specified report in the job specified by the job name job and the job number n. The job runs under the user name user and you can omit the addition USER user. The assignment of the job number occurs via the function module JOB_OPEN (see also the documentation for the function modules JOB_CLOSE and JOB_SUBMIT). This addition can only be used with the addition ...AND RETURN.
Note
When scheduling a report with the SUBMIT ... VIA JOB job NUMBER n statement, you should always use the addition ...TO SAP-SPOOL to pass print and/or archive parameters. Otherwise, default values are used to generate the list and this disturbs operations in a production environment.
SY-SUBRC = 0:
Job scheduled successfully
SY-SUBRC = 4:
Job scheduling terminated by user
SY-SUBRC = 8:
Error in job scheduling (JOB_SUBMIT)
SY-SUBRC = 12:
Error in internal number assignment
Addition 10
... USING SELECTION-SETS OF PROGRAM prog
Effect
Uses variants of the program prog when executing the program rep.
Note
Important
The programs prog and rep must have the same SELECT-OPTIONS and PARAMETERs. Otherwise, variants of the program prog may be destroyed.
Note
When using this addition, the specified variant vari of the program prog is taken in USING SELECTION-SET vari. On the other hand, all variant-related actions on the selection screen of rep (Get, Save as variant, Display, Delete) refer to the variants of prog.
Example
SUBMIT REPORT01
VIA SELECTION-SCREEN
USING SELECTION-SET 'VARIANT1'
USING SELECTION-SETS OF PROGRAM 'REPORT00'
AND RETURN.
Effect
Executes the program REPORT01 with the variant VARIANT1 of the program REPORT00.
Exceptions
Non-Catchable Exceptions
· Cause: The specified program was not found.
Runtime Error: LOAD_PROGRAM_NOT_FOUND
· Cause: Invalid value passed to a selection with SIGN.
Runtime Error: SUBMIT_WRONG_SIGN
· Cause: The specified program is not a report.
Runtime Error: SUBMIT_WRONG_TYPE
· Cause: More than one value passed to a report parameter.
Runtime Error: SUBMIT_IMPORT_ONLY_PARAMETER
· Cause: Table passed to a selection with WITH sel IN itab that has an unexpected structure.
Runtime Error: SUBMIT_IN_ITAB_ILL_STRUCTURE
Additional help
Starting Executable Programs (Reports)
THx -
Hi All,
Can somebody lemme know that how can we analyze that why the CALL TRANSACTION 'SE38' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
Failed?
Thanks in advance.Hi,
check the value of sy-subrc.
Also check what are messages you get in message table messtab
Regards,
Mohaiyuddin -
Problem with ALV_GRID and CALL TRANSACTION.
Hi all, Could you please tell me
At SE38
Why REUSE_ALV_GRID_DISPLAY and CALL TRANSACTION after called then I click the back button to return to the calling program but it automatic return to the source code? (it hasn't saves the data in alv grid )
In another case of this program, after automatic return to the source code then I have to waiting for 5-10 mins for execute again cuz if immediately execute the program don't fill any data to the alv grid.
I have problem with a simple source code like this
REPORT ZFS_ALV_DEMO.
TYPE-POOLS: slis.
DATA: itab LIKE STANDARD TABLE OF aufk WITH HEADER LINE.
DATA: gs_selfield TYPE slis_selfield "Information cursor position ALV
, w_aufnr LIKE aufk-aufnr. "Order Number
SELECT * FROM aufk INTO TABLE itab WHERE autyp = 40. "//Process Order
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'aufk'
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND_COR3'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM user_command_cor3 USING u_ucomm LIKE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
gs_selfield = us_selfield.
IF gs_selfield-fieldname = 'AUFNR'.
SET PARAMETER ID 'ANR' FIELD gs_selfield-value.
CALL TRANSACTION 'COR3' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE w208(00) WITH 'Select by Order only!'.
ENDIF.
ENDCASE.
ENDFORM.Hi all, Could you please tell me
At SE38
Why REUSE_ALV_GRID_DISPLAY and CALL TRANSACTION after called then I click the back button to return to the calling program but it automatic return to the source code? (it hasn't saves the data in alv grid )
In another case of this program, after automatic return to the source code then I have to waiting for 5-10 mins for execute again cuz if immediately execute the program don't fill any data to the alv grid.
I have problem with a simple source code like this
REPORT ZFS_ALV_DEMO.
TYPE-POOLS: slis.
DATA: itab LIKE STANDARD TABLE OF aufk WITH HEADER LINE.
DATA: gs_selfield TYPE slis_selfield "Information cursor position ALV
, w_aufnr LIKE aufk-aufnr. "Order Number
SELECT * FROM aufk INTO TABLE itab WHERE autyp = 40. "//Process Order
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = 'aufk'
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND_COR3'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
FORM user_command_cor3 USING u_ucomm LIKE sy-ucomm
us_selfield TYPE slis_selfield."#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
gs_selfield = us_selfield.
IF gs_selfield-fieldname = 'AUFNR'.
SET PARAMETER ID 'ANR' FIELD gs_selfield-value.
CALL TRANSACTION 'COR3' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE w208(00) WITH 'Select by Order only!'.
ENDIF.
ENDCASE.
ENDFORM. -
Call Transaction / Submit Program
Hello All,
I have two ABAP reports : Report A & Report B.
Report A has selection screen similar to Report B, where report A needs to send data to selection screen of Report B.
Report B should be processed displaying its list display & should return its control back to Report B.
This can be easily achieved by using SUBMIT program(Report B) with values from Report A.
But my report B is made to run only via a TCode(ZEXECUTE) & hence when i submit program it is not executed
as sy-tcode value in such case comes as SE38 .
Further , Call Transaction (ZEXECUTE) using bdc_tab helps in passing the TCode & respective selection screen values
correctly to Report B , but i am not able to see the outputs of the same.
Please Note : I am not authorized to do any changes in Report B , so whatever i can try is from Report A itself.
Kindly Help,
SudeepHI Suhas ,
Firstly thanks for replying.
1) Do you mean there is a hardcoding in Report B to check the t-code?
Yes.
2) What is the display mode you're using when doing via CALL TRANSACTION?
Currently i am passing it as "A" , but still not able to get any output.
Report A provides report B all the required values along with 'BDC_OKCODE' '=ONLI'
for executing the same. The report gets processed , but i am not able to see any list display.
Thanks,
Sudeep -
hi all,
I have a call transaction program for tcode ME55, the probleme is when i execute the program directly via se38 to release the sales documents it work fine, on the other hand when i call the program via SM37 nothing will happen.
thanks,
karimHi,
What exactly do you want to do by calling t.code me55 ? Upload some data in background or display the transaction to a user only ?
If you want to do a call transaction in background, you will have to pass BDC data to it as well. Then transaction will run with the passed data then. To know what data to pass, simply record your transaction in SHDB T.code and create a program for the BDC.
ME55 is a report, so perhaps you can use SUBMIT with the selection parameters in your program to be able run that program in background.
regards,
Advait -
'BAPI_QUOTATION_CREATEFROMDATA2' behaves different while called from SE38
Dear Friends
I am trying to run the bapi 'BAPI_QUOTATION_CREATEFROMDATA2' and 'BAPI_TRANSACTION_COMMIT' in proper sequence as recommended by SAP.
I am entering the minimum data recommended by SAP help on this BAPI.
When I run the above senario manually from transaction SE37 and selecting
from the menu Function Module -> Test -> Test Sequence,
everything works fine and this also creates a quote and when I check, it
is adding lots of extra related data.
However, when I call the same two functions from another program (SE38),
even though I am entering the same Data, I get different behaviour and
also the quote is not getting created. When I check the ls_return value,
it says that 'sold-to-party' is missing. I don't know why this problem
doesn't arise when I run the BAPI manually from SE37.
I would appreciate if you can please give me any feedback or some expert comments.
Please see the SE38 program that I am using to test these two BAPIs.
==========================================================
*& Report ZQUOTECREATE_TEST
report zquotecreate_test.
data: ls_quotation_header_in type bapisdhd1,
ls_behave_when_error type bapiflag-bapiflag,
ls_quotation_partners like bapiparnr occurs 1 with header line,
ls_return like bapiret2 occurs 1 with header line.
ls_quotation_header_in-distr_chan = '12'.
ls_quotation_header_in-division = '00'.
ls_quotation_header_in-sales_org = '1000'.
ls_quotation_header_in-doc_type = 'AG'.
ls_behave_when_error = 'P'.
ls_quotation_partners-partn_role = 'SP'.
ls_quotation_partners-partn_numb = '1012'.
call function 'BAPI_QUOTATION_CREATEFROMDATA2'
exporting
quotation_header_in = ls_quotation_header_in
BEHAVE_WHEN_ERROR = ls_BEHAVE_WHEN_ERROR
importing
salesdocument = ls_salesdocument
tables
return = ls_return
quotation_partners = ls_quotation_partners
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = ' '
IMPORTING
RETURN =Dear friends
I figured out the conversion problem involving 'QT' and 'AG'.
There is this flag 'CONVERT' which doesn't affect while running manually but while calling from SE38, I have to turn it on by putting a value 'X" and so the AG-QT issue is resolved
So if you can please respond to the other problem with error 'Please enter sold-to-party or ship-to-party', I would appreciate.
Again with the same test data, the above error message doesn't show up while running the BAPI manually from SE37 and QUOTE gets created successfully. However, when the same BAPI is called from SE38 program I get the above error message and QUOTE doesnt get created. -
How to create a sub menu for the transaction se38
Hi All,
I have created menu item in se38 using menu exit.
By using the enhancement SEU00002 .
That menu item is displayed under utilities menu bar.
But i am unable to create sub menu for that.
My requirement is to create sub menu to the custom menu item.
How can we create a sub menu to the transaction se38.Hi,
it looks like that user exit SEU00002 offers only one extra function +CUS. This function then calls FM EXIT_SAPMS38E_010. Hence I do not think that it is possible to create sub menu with this user exit.
Anyway you can try to modify SAP standard. You need to modify menu for SE38 and then add your code for handling new function codes. You can easily find where you will have to add your code for handling functions from your sub menu. You just need to look for usages of the FM EXIT_SAPMS38E_010.
Cheers -
Unable to Capture ALV output in an Internal Table, after CALL TRANSACTION
Dear all,
My requirement is to run multiple materials in T-code CK86_99 but as we know CK86_99 is only adequate to one material at a time.
So, I want to capture the Output of the T-code in my Internal table with respect to all the Material Numbers I use in the Select-Options of my Z Program.
Below is the Code I developed so far, but the Class
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING r_data = lf_ref ).
is not capturing the Ouput...
Please have a look and enlighten me how it could be solved.
TABLES : mara.
DATA : BEGIN OF wa_mara,
matnr TYPE mara-matnr,
END OF wa_mara.
DATA: it_bdcdata TYPE TABLE OF bdcdata,
wa_it_bdcdata LIKE LINE OF it_bdcdata,
it_mara LIKE TABLE OF wa_mara.
* BELNR(10).
FIELD-SYMBOLS:<fs_tab> TYPE ANY TABLE,
<fs_line> TYPE any.
DATA:lf_ref TYPE REF TO data,
lf_ref1 TYPE REF TO data.
SELECT-OPTIONS so_matnr FOR mara-matnr.
PARAMETERS p_werks LIKE t001w-werks.
*BELNR = 'Z92'. " Give Document Number here
SELECT matnr FROM mara INTO TABLE it_mara WHERE matnr IN so_matnr.
DATA opt TYPE ctu_params.
LOOP AT it_mara INTO wa_mara.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-program = 'SAPMKKB0'.
wa_it_bdcdata-dynpro = '0300'.
wa_it_bdcdata-dynbegin = 'X'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = 'KKB0-MATNR'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'KKB0-MATNR'.
wa_it_bdcdata-fval = wa_mara-matnr.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_CURSOR'.
wa_it_bdcdata-fval = 'KKB0-WERKS'.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'KKB0-WERKS'.
wa_it_bdcdata-fval = p_werks.
APPEND wa_it_bdcdata TO it_bdcdata.
CLEAR wa_it_bdcdata.
wa_it_bdcdata-fnam = 'BDC_OKCODE'.
wa_it_bdcdata-fval = 'OSNY'."'ONLI'."=CRET'.
APPEND wa_it_bdcdata TO it_bdcdata.
* CLEAR wa_it_bdcdata.
* wa_it_bdcdata-program = 'SAPLKKRSOO'.
* wa_it_bdcdata-dynpro = '0100'.
* wa_it_bdcdata-dynbegin = 'X'.
* APPEND wa_it_bdcdata TO it_bdcdata.
* CLEAR wa_it_bdcdata.
* wa_it_bdcdata-fnam = 'BDC_OKCODE'.
* wa_it_bdcdata-fval = 'BACK'."=CRET'.
* APPEND wa_it_bdcdata TO it_bdcdata.
* CLEAR wa_it_bdcdata.
* wa_it_bdcdata-program = 'SAPMKKB0'.
* wa_it_bdcdata-dynpro = '0300'.
* wa_it_bdcdata-dynbegin = 'X'.
* APPEND wa_it_bdcdata TO it_bdcdata.
* CLEAR wa_it_bdcdata.
* wa_it_bdcdata-fnam = 'BDC_OKCODE'.
* wa_it_bdcdata-fval = 'EXIT'."=CRET'.
* APPEND wa_it_bdcdata TO it_bdcdata.
opt-dismode = 'N'.
cl_salv_bs_runtime_info=>set(
EXPORTING display = abap_false
metadata = abap_true
data = abap_true ).
CALL TRANSACTION 'CK86_99' USING it_bdcdata OPTIONS FROM opt.
TRY.
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING r_data = lf_ref ).
ASSIGN lf_ref->* TO <fs_tab>.
CATCH cx_salv_bs_sc_runtime_info.
MESSAGE 'Unable to retrieve ALV data' TYPE 'E'.
ENDTRY.
cl_salv_bs_runtime_info=>clear_all( ).
IF <fs_tab> IS ASSIGNED.
CREATE DATA lf_ref1 LIKE LINE OF <fs_tab>.
ASSIGN lf_ref1->* TO <fs_line>.
ENDIF.
*LOOP AT <FS_TAB> ASSIGNING <FS_LINE>.
*ENDLOOP.Hi Abhay,
If you go to Transaction code SE93, enter the tcode "CK86_99" and click display, you may see the default value for transaction is "KKBB" and the screen field for P_SCREEN = 0300, P_TCODE = ck86_99.
You may need to copy the transaction code "KKBB" and go to SE93 again, enter the tcode for "KKBB" then click display, now you may see the program name is "RKKB1000".
Hope this answer your question.
Thanks
Hock Lin -
Call transaction error handling
how to maintain the log i.e sucess/failures like below.
Line No. Success/ Failure Document No Error Details
1 S Doc 740000001
2 S Doc 740000002
3 F Co- code does not exist
4 F GL Account does not exist
I'm getting only one last document no: but i need all the documents to be displayed i.e either success/failures.
below is my code.
TYPES: BEGIN OF ty_filedata,
bukrs TYPE bukrs, "Company code
blart TYPE blart, "Document type
bldat TYPE char10, "Document Date
budat TYPE char10, "Posting date
xblnr TYPE xblnr, "Reference
bktxt TYPE bktxt, "Document Header text
waers TYPE waers, "Currency
newbs TYPE bschl, "Posting Key for the next line item
wrbtr TYPE char10, "Amount
zuonr LIKE bsik-zuonr, "Assignment
sgtxt TYPE sgtxt, "Text
newko TYPE hkont, "Account for the next line item
END OF ty_filedata.
TYPES: BEGIN OF ty_detail_log,
item_no TYPE i, " Item line no.
status(1) TYPE c, " Status - success/failure
doc_no TYPE bkpf-belnr," Document No.
message TYPE string, " Message
END OF ty_detail_log.
*& DATA declaration of internal tables
Internal Table declaration for excel data
DATA: it_itab TYPE STANDARD TABLE OF alsmex_tabline INITIAL SIZE 0,
Internal Table declaration for upload data
it_upload TYPE STANDARD TABLE OF ty_filedata INITIAL SIZE 0,
Internal Table Declaration for BDCDATA
it_bdcdata TYPE STANDARD TABLE OF bdcdata,
Internal Table Declaration for BDCMSGCOLL
it_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll,
Internal Table Declaration for FILENMAE
lf_fname TYPE rlgrap-filename.
t_err_log TYPE STANDARD TABLE OF ty_err
INITIAL SIZE 0, " table for validation error log
t_DETAIL_LOG TYPE STANDARD TABLE OF TY_DETAIL_LOG.
C_MSGNO TYPE BDC_MNR VALUE '312',
*& DATA declaration of work area
Work Area declaration for Excel Data
DATA: w_itab TYPE alsmex_tabline,
Work Area declaration for upload data
w_upload TYPE ty_filedata,
Work Area declaration for upload data
w_upload_n TYPE ty_filedata,
Work Area declaration for upload data
w_bdcdata TYPE bdcdata,
Work Area declaration for upload data
w_bdcmsgcoll TYPE bdcmsgcoll,
w_detail_log TYPE ty_detail_log.
*& SELECTION-SCREEN
SELECTION-SCREEN: BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS:p_file TYPE rlgrap-filename. " MODIF ID G1.
SELECTION-SCREEN: END OF BLOCK bk1.
*& AT SELECTION SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
dynpro_number = syst-dynnr
CHANGING
file_name = p_file
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*& START-OF-SELECTION
START-OF-SELECTION.
DATA: lw_itab TYPE alsmex_tabline.
lf_fname = p_file.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = lf_fname
i_begin_col = '1'
i_begin_row = '6'
i_end_col = '12'
i_end_row = '999'
TABLES
intern = it_itab[]
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
*MESSAGE S205(ZF_COMMON_MSGS_FIN1) DISPLAY LIKE C_E.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
IF it_itab IS NOT INITIAL.
SORT it_itab BY row col.
DELETE it_itab WHERE row LT 6.
LOOP AT it_itab INTO lw_itab.
w_itab = lw_itab.
AT NEW row.
CLEAR: w_upload.
ENDAT.
CASE w_itab-col.
WHEN '0001'.
w_upload-bukrs = w_itab-value.
WHEN '0002'.
w_upload-blart = w_itab-value.
WHEN '0003'.
w_upload-bldat = w_itab-value.
WHEN '0004'.
w_upload-budat = w_itab-value.
WHEN '0005'.
w_upload-xblnr = w_itab-value.
WHEN '0006'.
w_upload-bktxt = w_itab-value.
WHEN '0007'.
w_upload-waers = w_itab-value.
WHEN '0008'.
w_upload-newbs = w_itab-value.
WHEN '0009'.
w_upload-wrbtr = w_itab-value.
WHEN '0010'..
w_upload-zuonr = w_itab-value.
WHEN '0011'.
w_upload-sgtxt = w_itab-value.
WHEN '0012'.
w_upload-newko = w_itab-value.
ENDCASE.
AT END OF row.
APPEND w_upload TO it_upload.
CLEAR: w_upload.
ENDAT.
ENDLOOP.
*endif.
ENDIF.
DATA: lw_upload TYPE ty_filedata,
lv_lines TYPE sy-tabix,
lv_index TYPE sy-tabix.
DESCRIBE TABLE it_upload LINES lv_lines.
LOOP AT it_upload INTO lw_upload.
lv_index = sy-tabix.
w_upload = lw_upload.
IF NOT w_upload-bukrs IS INITIAL.
IF lv_index GT 1.
CALL TRANSACTION 'FB01' USING it_bdcdata
MODE 'N' UPDATE 'S' MESSAGES INTO it_bdcmsgcoll.
PERFORM fr_format_message_text.
REFRESH: it_bdcdata.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BKPF-XBLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BKPF-BLDAT'
w_upload-bldat.
PERFORM bdc_field USING 'BKPF-BLART'
w_upload-blart.
PERFORM bdc_field USING 'BKPF-BUKRS'
w_upload-bukrs.
PERFORM bdc_field USING 'BKPF-BUDAT'
w_upload-budat.
PERFORM bdc_field USING 'BKPF-WAERS'
w_upload-waers.
PERFORM bdc_field USING 'BKPF-XBLNR'
w_upload-xblnr.
*perform bdc_field using 'FS006-DOCID'
PERFORM bdc_field USING 'RF05A-NEWBS'
w_upload-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
w_upload-newko.
ENDIF.
IF lv_index NE lv_lines.
lv_index = lv_index + 1.
READ TABLE it_upload INTO w_upload_n INDEX lv_index.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
w_upload-wrbtr.
PERFORM bdc_field USING 'RF05A-NEWBS'
w_upload_n-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO'
w_upload_n-newko.
ELSE.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'BSEG-WRBTR'
w_upload-wrbtr.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-ANLN1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDLOOP.
CALL TRANSACTION 'FB01' USING it_bdcdata
MODE 'N' UPDATE 'S' MESSAGES INTO it_bdcmsgcoll.
PERFORM fr_format_message_text .
REFRESH: it_bdcdata.
*& Form BDC_DYNPRO
FORM bdc_dynpro USING program dynpro.
CLEAR w_bdcdata.
w_bdcdata-program = program.
w_bdcdata-dynpro = dynpro.
w_bdcdata-dynbegin = 'X'.
APPEND w_bdcdata TO it_bdcdata.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR w_bdcdata.
w_bdcdata-fnam = fnam.
w_bdcdata-fval = fval.
APPEND w_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form fr_format_message_text
FORM fr_format_message_text.
DATA: lf_msg TYPE string.
WRITE:/ sy-uline(125).
FORMAT COLOR 1 INTENSIFIED ON.
WRITE : /1 sy-vline,
2 text-041 , "'record Number',
16 sy-vline,
17 text-042 , " 'success/failure',
35 sy-vline,
36 text-043, " 'document no',
55 sy-vline,
56 text-044, "'Error details',
125 sy-vline.
WRITE:/ sy-uline(125).
LOOP AT it_bdcmsgcoll INTO w_bdcmsgcoll.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = w_bdcmsgcoll-msgid
lang = sy-langu
no = w_bdcmsgcoll-msgnr
v1 = w_bdcmsgcoll-msgv1
v2 = w_bdcmsgcoll-msgv2
v3 = w_bdcmsgcoll-msgv3
v4 = w_bdcmsgcoll-msgv4
IMPORTING
msg = lf_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
WRITE:/01 sy-vline,
02 sy-tabix,
16 sy-vline,
17 w_bdcmsgcoll-msgtyp,
35 sy-vline,
36 w_bdcmsgcoll-msgv1,
55 sy-vline,
56 lf_msg,
125 sy-vline.
WRITE:/ sy-uline(125).
ENDIF.
ENDLOOP.
ENDFORM. "fr_format_message_text
Thanks in advance.Hi Neelima,
Just put the following code within that LOOP...ENDLOOP statement.
LOOP AT it_upload INTO lw_upload.
CALL TRANSACTION 'FB01' USING it_bdcdata
MODE 'N' UPDATE 'S' MESSAGES INTO it_bdcmsgcoll.
PERFORM fr_format_message_text .
REFRESH: it_bdcdata.
ENDLOOP.
Regards,
R.Nagarajan.
We can - -
BDC Call Transaction - Doc.No not getting generated in Message Internal tab
Dear All,
I am using BDC Call Transaction method for uploading data for transaction, Iam able to successfully capture the Error messages, sucess messages and the transaction number is also displayed for the bdc run in Mode A, but in case of scheduling the job in background, the Error messages are displayed but the transaction number is not captured in the message Internal table( BDCMSGCOLL).
Kindly look into the matter and revert back for any further info.
Regards
NareshHi,
Please try using the following kind of code in 'CALL TRANSACTION'
opt-dismode = 'E'. " Exclusive mode
opt-defsize = 'X'.
opt-updmode = 'S'.
opt-nobinpt = ' '.
CALL TRANSACTION transaction_code USING ft OPTIONS FROM opt
MESSAGES INTO t_bdcmsgcoll .
Hope this will work.
Thanks,
Leo -
VALUES not getting passed in t.code 'FMY3' VIA call transaction 'FMY3'
hi guru's,
i have created a ALV report for funds precommitment,when i click the document number,the respective document is not opening
i have coded like this
IF selfield-value IS NOT INITIAL.
READ TABLE final INDEX selfield-tabindex.
SET PARAMETER ID: 'KBL' FIELD final-belnr,
'KBP' FIELD final-blpos.
CALL TRANSACTION 'FMY3' AND SKIP FIRST SCREEN.
ENDIF.
the transaction is called,but with empty value in the field and the document is not opening....please help me with this regard...
thanks in advance,
regards,
Balaji.SHello Venkat.O,
i have a similar problem with the overwrite of the memory ID, when calling transaction FMY3. In the code block you mentioned, the system gets the right value from the memory ID, that i've set before calling the transaction. But i found that after that the system runs in the include LFMFRO01, the code
MODULE init_suppress OUTPUT.
IF status2 = st2_app. "/Genehmigen/Ablehnen
Lesen aus Memory: wird in WF-Methode 'APPROVE' gefüllt
IMPORT wfdata TO g_f_wfdata FROM MEMORY ID con_memid_wf.
IF NOT g_f_wfdata-belnr IS INITIAL.
IF g_f_wfdata-blpos = space.
g_f_wfdata-blpos = con_initial_blpos.
ENDIF.
kbld-belnr = g_f_wfdata-belnr.
and here the system gets the memory of the last document created and overwrites the selecion-screen field KBLD-BELNR with that value. And the value i had stored in the parameter ID 'MRV', and that the system gets it right in the code you show, is overwritten..
This seems like a bug from SAP, don't you think?
This way the system will always show the last doc. when calling transaction, after setting a parameter ID.. -
BDC Call Transaction : FS00(Create G/L Account)
Hi,
BDC of FS00 is running properly in Forground (A) Mode, with success messages and G/L account being created in SKB1 table.
But when I run it in Background (N) Mode, it is not creating the G/L account. Although I am getting the success messages in the end of the execution but in the table, there is no G/L account.
FORM fill_bdcdata .
loop at i_output.
clear i_bdcdata.
refresh i_bdcdata.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ACC_CRE'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_KEY-BUKRS'.
perform bdc_field using 'GLACCOUNT_SCREEN_KEY-SAKNR'
i_output-SAKNR. "gl ac number
perform bdc_field using 'GLACCOUNT_SCREEN_KEY-BUKRS'
i_output-BUKRS. "company code
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=2102_GROUP'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-KTOKS'. "ac grp
*perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
i_output-cc.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XPLACCT'
i_output-xplacct. "pl account
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XBILK'
i_output-xbilk. "balance sheet
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=TAB02'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-KTOKS'
i_output-ktoks. "ac grp
perform bdc_field using 'GLACCOUNT_SCREEN_COA-XPLACCT'
i_output-xplacct. "pl account
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_COA-TXT50_ML'.
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT20_ML'
i_output-txt20_ml. "short text
perform bdc_field using 'GLACCOUNT_SCREEN_COA-TXT50_ML'
i_output-txt50_ml. "long text
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=TAB03'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-MITKZ'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XSALH'
i_output-xsalh. "Only Balance in Local Currency
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MWSKZ'
i_output-mwskz. "Tax Category
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XMWNO'
i_output-xmwno. "Posting without tax
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-MITKZ'
i_output-mitkz. "Reccon A/C
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-ZUAWA'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XOPVW'
i_output-xopvw. "Open Item Management
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XKRES'
i_output-xkres. "Line Item Display
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-ZUAWA'
i_output-zuawa. "Sort Key
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=ENTER'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
i_output-fstag. "Field Stauts
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XINTB'
i_output-xintb. "post automatically
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-XGKON'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XGKON'
i_output-xgkon. "relevent to cash A/c
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-ZUAWA'.
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'=SAVE'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-FSTAG'.
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-FSTAG'
i_output-fstag. "Field Stauts
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XINTB'
i_output-xintb. "post automatically
perform bdc_field using 'GLACCOUNT_SCREEN_CCODE-XGKON'
i_output-xgkon. "relevent to cash A/c
perform bdc_dynpro using 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
perform bdc_field using 'BDC_OKCODE'
'/EEXIT'.
perform bdc_field using 'BDC_CURSOR'
'GLACCOUNT_SCREEN_CCODE-XGKON'.
perform bdc_dynpro using 'SAPLSPO1' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform f_elog.
endloop.
FORM f_elog .
data len type i.
clear i_msgtab.
call transaction 'FS00'
using i_bdcdata
mode g_v_mode "N
messages into i_msgtab
update g_v_update . "S
write: i_output-saknr.
I am not getting where I am going wrong in the code.
Regards,
Priyanka.Hi,
Make the mode 'E' and see excatly, where the warning or errors or coming.
If you are having an currency or UOM ,related fields, see that the values should not be empty. If they are enpty. Put an if condition there and Quit filling such fields.
First keep in mode 'e' and debug. 100% you will see the warnings or errors, then tell me what is the error.
<b>call transaction 'FS00'
using i_bdcdata
mode g_v_mode "E
messages into i_msgtab</b>
Thansk'
Manju. -
Improve performance of bdc call transaction
Hi all,
I am performing a batch update of tax codes in a BDC call transaction program. This particular code takes about 3 minutes to process 2,600 entries. I have tried almost everything but is there a way to improve / make it run faster?
I have a feeling it has something to do with the form "do_transaction", but I really don't know anymore.
Thank you in advance.
Attached is the code:
*& Report ZFI_CHANGEWTAX
*& Description: Change Doctors Withholding Tax Code (EI)
*& Using BDC Call Transaction Method
*& Created by : mpena
*& Created on : 07/15/2009
*& Modification History
*& Seq Changed on
*& Changed by
*& 001 07/15/2009
*& mpena Initial Development
*& 002 07/20/2009
*& mpena Logic modification
*& Testing
*& 003 07/20/2009
*& mpena Call function parameter modification
*& 004 07/22/2009
*& mpena Report generation
*& Performance improvements
REPORT zfi_changewtax
NO STANDARD PAGE HEADING
MESSAGE-ID zfk02msg.
TYPES: BEGIN OF t_tax,
lifnr LIKE lfa1-lifnr, "account number
wt_withcd LIKE lfbw-wt_withcd, "current tax code
wt_withcd_new LIKE lfbw-wt_withcd, "new tax code (left blank at default)
END OF t_tax.
DATA: wa_tax TYPE t_tax,
i_tax TYPE STANDARD TABLE OF t_tax,
it_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE,
lin TYPE i.
-------Selection Screen Design -
SELECTION-SCREEN:
SKIP 1,
BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.
PARAMETERS: p_ktokk LIKE lfa1-ktokk DEFAULT 'DOCT' OBLIGATORY,
p_bukrs LIKE lfbw-bukrs DEFAULT 'SL' OBLIGATORY,
p_wtax LIKE lfbw-wt_withcd OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
INITIALIZATION.
aaa = 'Change Tax Code to specified value'.
TOP-OF-PAGE.
WRITE:
/ 'Update of taxes successful on:', sy-datum, sy-uzeit,
/ 'Generated by:', sy-uname,
/ 'Company Code:', p_bukrs, 'Vendor Group:', p_ktokk.
SKIP 1.
ULINE.
WRITE:
/ 'Account Number', 20 'Old Withholding Tax Code', 50 'New Withholding Tax Code'.
ULINE.
START-OF-SELECTION.
SELECT lfa1~lifnr
lfbw~wt_withcd
INTO TABLE i_tax
FROM lfa1 INNER JOIN lfbw
ON lfa1lifnr = lfbwlifnr
WHERE lfbw~bukrs EQ p_bukrs
AND lfbw~witht EQ 'EI'.
IF sy-subrc EQ 0.
DESCRIBE TABLE i_tax LINES lin.
ENDIF.
Update i_tax with new value of wt_witchd, then display for comparison.
After write: if old and new tax are the same, tax update was not successful for that specific account
or inputted tax type is the same as the old one.
LOOP AT i_tax INTO wa_tax.
wa_tax-wt_withcd_new = p_wtax.
MODIFY i_tax FROM wa_tax.
WRITE:
/ wa_tax-lifnr,
20 wa_tax-wt_withcd,
50 wa_tax-wt_withcd_new.
CLEAR wa_tax.
ENDLOOP.
PERFORM do_transaction USING p_bukrs p_wtax.
*& Form do_transaction
Extracted from ZFKO2 recording accessible in shdb.
FORM do_transaction USING v_bukrs v_wtax.
MESSAGE i000 WITH lin.
LOOP AT i_tax INTO wa_tax.
REFRESH it_bdcdata.
PERFORM bdc_dynpro USING 'SAPMF02K' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-D0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
wa_tax-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
v_bukrs.
PERFORM bdc_field USING 'RF02K-D0610'
'X'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBW-WT_WITHCD(01)'.
PERFORM bdc_field USING 'LFB1-QLAND'
'PH'.
PERFORM bdc_field USING 'LFBW-WT_WITHCD(01)'
v_wtax.
PERFORM bdc_dynpro USING 'SAPMF02K' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-QLAND'.
PERFORM bdc_field USING 'LFB1-QLAND'
'PH'.
CALL TRANSACTION 'FK02' USING it_bdcdata
MODE 'N'
UPDATE 'A'.
ENDLOOP.
MESSAGE i001.
ENDFORM. "do_transaction
form for bdc dynpro
FORM bdc_dynpro USING program
dynpro.
it_bdcdata-program = program.
it_bdcdata-dynpro = dynpro.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. "bdc_dynpro
form for bdc field
FORM bdc_field USING fnam
fval.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
CLEAR it_bdcdata.
ENDFORM. "bdc_fieldYou might want to try using a BAPI instead of a call transaction. I believe "BAPI_VENDOR_SAVECHARVALREPLICA" will work for you. Calling a BAPI is just like calling a function module. After you call the bapi remember to commit it with the function module "BAPI_TRANSACTION_COMMIT".
Maybe you are looking for
-
Cannot print to Canon iR C3080
I upgraded from Lion to Mountain Lion. (Had trouble -- after two calls to Apple Support, finally was directed to delete start up services and that corrected initial problems). Now, I cannot print to networked Canon iR C3080. I've downloaded, mount
-
Unistall of Window 10 Technical Preview from surface pro 3
Hi Team, I have surface pro 3 and installed Preview after making my USB Image, after looking into update and finding out Windows essential connector wont work this, as well RSAT is not able to install on preview version as I use pro to
-
VL01N delivery - material not available
Hi Guys, i've tried searching in the forum before posting the thread but i did not find any useful answer for my case. hope you can help. i have done an order with material xxx, availability check carried out. material has unrestricted use of 1230 kg
-
Hi all, I'm using ADF faces + toplink. I have developed a form that first inserts mandatory fields of a record via persistEntity function and later in same page after inserting mandatory fields of record, I want to update empty fields of record that
-
Tecra S2: Power Saver gives often an Error Code 0X40
A fairly new Tecra S2 model PTS20E-01Y011DU gives often during use a fatal error in the Power Saver program with "this program will be closed" error code 0X40