How to refresh screen in abap
Hi
I have created an alvtree. Upon deleting one of the nodes I update the tables. How do I refresh the screen to display the new alv tree please?
Thank you
Hi,
There are two ways to do that...
1. free that alv object and recreate it(Recreating might have already done in PBO... it will refresh the screen.
2. Check for any method for refreshing the screen.
Regards
Maneesh Chandran
Similar Messages
-
How to refresh screen in normal reports?
Hi Experts,
I am developing normal report. I am writing the output using write statement.
In my out put one filed is check box.
Suppose I have 12 records in the output, if I tick the 2 records and process these records using application tool bar button,
After that I need to refresh the screen and output should be only 10 records needs to be displayed.
How to do this requirement? Please suggest on this.
Thanks in Advance,
Uru2019s HarshaHai Harsha,
Please look at the following given Code May be helpful for you.
TYPES : BEGIN OF str_mard ,
matnr TYPE mard-matnr,
lgort TYPE mard-lgort,
werks TYPE mard-werks,
END OF str_mard.
DATA : wa_mard TYPE str_mard,
it_mard TYPE TABLE OF str_mard.
data : BEGIN OF str_makt occurs 0,
chkbx type checkbox,
matnr TYPE makt-matnr,
maktg TYPE makt-maktg,
END OF str_makt.
DATA : wa_makt.
data: it_makt like str_makt OCCURS 0 WITH HEADER LINE.
data: lines type i.
PARAMETERS : plant TYPE mard-werks,
stor LIKE mard-lgort.
DATA: matnr like mseg-matnr,
maktx like makt-maktx.
SET PF-STATUS 'MYLIST'.
START-OF-selection.
perform fetch_data.
PERFORM display_data.
*& Form fetch_data
* text
FORM fetch_data.
if sy-ucomm <> 'SAVE'.
SELECT matnr lgort werks FROM mard
INTO CORRESPONDING FIELDS OF TABLE it_mard
WHERE lgort = stor
AND werks = plant.
SELECT matnr maktg FROM makt
INTO CORRESPONDING FIELDS OF TABLE it_makt FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND spras = 'E'.
endif.
if sy-ucomm = 'SAVE'.
describe table it_makt lines lines.
do lines times.
READ LINE sy-index FIELD VALUE it_makt-chkbx it_makt-matnr
it_makt-maktg.
IF it_makt-chkbx = 'X'.
matnr = it_makt-matnr.
maktx = it_makt-maktg.
read table it_makt WITH KEY matnr = it_makt-matnr
maktg = it_makt-maktg.
clear it_makt.
modify it_makt index sy-tabix.
endif.
enddo.
endif.
endform. "fetch_data
*& Form display_data
* text
form display_data.
LOOP AT it_makt.
WRITE : /1 it_makt-matnr COLOR 1,
40 it_makt-maktg COLOR 2,
85 it_makt-chkbx as CHECKBOX input on.
HIDE: it_makt-matnr,it_makt-chkbx.
ENDLOOP.
endform. "display_data
At USER-COMMAND.
clear it_makt.
case sy-ucomm.
when 'SAVE'.
perform fetch_data.
perform display_data.
endcase.
Edited by: shelly Malik on Aug 1, 2009 8:58 AM -
im doing a stop watch application
and i want the numbers on the form to changesorry :-)here is the code
mport javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class stopWatchMIDlet extends javax.microedition.midlet.MIDlet implements CommandListener {
private Display display;
private Form watch;
private Form stopF;
private Form rrF;
private Form resumeF;
private Form resetF;
private Command exitCommand;
private Command start;
private Command stop;
private Command reset;
private Command resume;
private Ticker ticker = new Ticker("My stopwatch");
int hrs=0;
int min=0;
int sec=0;
boolean running=true;
StringItem time;
StringItem timeRR;
StringItem timeRe;
StringItem timeS;
StringItem timeRm;
Thread begin;
int count=0;
public stopWatchMIDlet(){
display=Display.getDisplay(this);
exitCommand=new Command("Exit",Command.EXIT,1);
start=new Command("start",Command.OK,1);
stop=new Command("stop",Command.OK,1);
reset=new Command("reset",Command.BACK,1);
resume=new Command("resume",Command.BACK,1);
watch=new Form("");
stopF=new Form("");
rrF=new Form("");
resetF=new Form("");
resumeF=new Form("");
watch.setTicker(ticker);
stopF.setTicker(ticker);
rrF.setTicker(ticker);
resetF.setTicker(ticker);
resumeF.setTicker(ticker);
time=new StringItem(""," "+hrs+":"+min+":"+sec);
timeRm=new StringItem(""," "+hrs+":"+min+":"+sec);
timeRR=new StringItem(""," "+hrs+":"+min+":"+sec);
timeS=new StringItem(""," "+hrs+":"+min+":"+sec);
timeRe=new StringItem(""," "+hrs+":"+min+":"+sec);
watch.append("\n");
watch.append("\n");
watch.append("\n");
watch.append(time);
watch.addCommand(start);
watch.setCommandListener(this);
stopF.append("\n");
stopF.append("\n");
stopF.append("\n");
stopF.addCommand(stop);
stopF.setCommandListener(this);
rrF.append("\n");
rrF.append("\n");
rrF.append("\n");
rrF.addCommand(reset);
rrF.addCommand(resume);
rrF.setCommandListener(this);
resetF.append("\n");
resetF.append("\n");
resetF.append("\n");
resetF.addCommand(exitCommand);
resetF.addCommand(start);
resetF.setCommandListener(this);
resumeF.append("\n");
resumeF.append("\n");
resumeF.append("\n");
resumeF.addCommand(exitCommand);
resumeF.addCommand(reset);
resumeF.setCommandListener(this);
public void startApp() {
display.setCurrent(watch);
public void pauseApp() {
public void destroyApp(boolean unconditional) {
public void commandAction(Command c,Displayable s){
if(c==exitCommand){
destroyApp(false);
notifyDestroyed();
if(c==start){
stopF.append(timeS);
display.setCurrent(stopF);
startWatch();
if(c==stop){
running=false;
rrF.append(timeRR);
display.setCurrent(rrF);
if(c==reset){
hrs=0;
min=0;
sec=0;
timeS.setText(" "+hrs+":"+min+":"+sec);
display.setCurrent(watch);
count=1;
if(c==resume){
running=true;
startWatch();
display.setCurrent(stopF);
public void startWatch(){
begin=new Thread(){
public void run(){
while(running){
try{
sec+=1;
if(sec==60){
sec=0;
min+=1;
if(min==60){
min=0;
hrs+=1;
if(hrs==24){
hrs=0;
Thread.sleep(1000);
timeS.setText(" "+hrs+":"+min+":"+sec);
timeRR.setText(" "+hrs+":"+min+":"+sec);
timeRm.setText(" "+hrs+":"+min+":"+sec);
}catch(Exception e){}
};begin.start(); -
How to call a sub screen from abap report
Hellow friends,
how to call sub screen 1001 prog name SAPLMGD1
and main program SAPLMGMM screen 4000 of tcode MM02.
i need to call the sub screen from abap reportHi Rajesh,
You can use FM MATERIAL_MAINTAIN_DIALOGUE to go to subcreen MRP1 in MM02.
Please check this sample code from other thread and enter 'MRP 1' for p_dytxt.
REPORT zsritest.
TABLES mara.
DATA: lv_bilds LIKE t133a-bilds,
ls_t130m LIKE t130m,
ls_rmmg1 LIKE rmmg1,
lwa_view TYPE mbildtab,
lwa_auswg TYPE mgauswg,
lt_views TYPE STANDARD TABLE OF mbildtab INITIAL SIZE 0,
lt_auswg TYPE STANDARD TABLE OF mgauswg INITIAL SIZE 0.
PARAMETERS: p_matnr LIKE mara-matnr,
p_werks LIKE marc-werks,
p_dytxt LIKE mbildtab-dytxt.
SELECT SINGLE * FROM mara WHERE matnr EQ p_matnr.
CHECK sy-subrc EQ 0.
CALL FUNCTION 'T130M_SINGLE_READ'
EXPORTING
tcode = 'MM02'
kzrfb = 'X'
IMPORTING
wt130m = ls_t130m
EXCEPTIONS
not_found = 1
wrong_call = 2
OTHERS = 3.
CALL FUNCTION 'BILDSEQUENZ_IDENTIFY'
EXPORTING
branche = mara-mbrsh
materialart = mara-mtart
tcode_ref = ls_t130m-trref
* KZRFB = ' '
IMPORTING
bildsequenz = lv_bilds
* KZ_BILDS_CHANGED =
EXCEPTIONS
wrong_call = 1
not_found = 2
OTHERS = 3.
CALL FUNCTION 'SELECTION_VIEWS_FIND'
EXPORTING
bildsequenz = lv_bilds
pflegestatus = mara-pstat
TABLES
bildtab = lt_views[]
EXCEPTIONS
call_wrong = 1
empty_selection = 2
OTHERS = 3.
ls_rmmg1-matnr = mara-matnr.
ls_rmmg1-werks = p_werks.
READ TABLE lt_views INTO lwa_view WITH KEY dytxt = p_dytxt.
CHECK sy-subrc EQ 0.
lwa_auswg-auswg = lwa_view-auswg.
APPEND lwa_auswg TO lt_auswg.
CALL FUNCTION 'MATERIAL_MAINTAIN_DIALOGUE'
EXPORTING
irmmg1 = ls_rmmg1
* IRMMG1_REF = ' '
KZ_EIN_DARK = 'X'
t_tcode = 'MM02'
* FLG_MATNR_RES = ' '
p_pstat = mara-pstat
* FLG_STAT_ALL = ' '
* CALL_MODE2 = ' '
* IMPORTING
* MATERIAL_NO =
* UPDATE_OK =
TABLES
iauswg = lt_auswg[]
EXCEPTIONS
no_authority = 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.
Regards,
Ferry Lianto -
I cannot refresh the screen, no matter what I try. The "restore" is not the same thing. So I always get old versions of websites, including my own. I cannot see a new version of any website I have visited previously. I need to know how to REFRESH my screen, and there is no way to do it!!!!!
Reload web page(s) and bypass the cache to refresh possibly outdated or corrupted files.
*Press and hold Shift and left-click the Reload button.
*Press "Ctrl + F5" or press "Ctrl + Shift + R" (Windows,Linux)
*Press "Command + Shift + R" (MAC)
Clear the cache and the cookies from sites that cause problems.
"Clear the Cache":
*Firefox/Tools > Options > Advanced > Network > Cached Web Content: "Clear Now"
"Remove Cookies" from sites causing problems:
*Firefox/Tools > Options > Privacy > Cookies: "Show Cookies" -
In Internet Explorer, in the tools bar there is a refresh screen button, I can not find it in your tool bar in Mozilla Firefox. Please tell me how to refresh a screen in this web. Thanks !
If you go to IE you will see it in the tool bar under the address line.And to keep the reload/Stop buttons from combining after moving them elsewhere, either place them as Stop|Reload or put a flexible space in between if you prefer them as Reload|Stop.
-
How to refresh interal table in Webdynpro ABAP
Hi all,
I want to delete/free/refresh interal table in webdynpro abap.
One of the form gave solution to pass blank internal table?
I cleared node and itab in webdynpro, but internally SAP doesn't delete the context node and itab values.
Please help me in how to refresh itab in webdynpro abap.
Regards,
PrasadHi Srinivas,
it doesn't work.
I wrote like this in action list method.
method lta_task.
if not lcontext_node_task is intial.
context_node_task->invalidate().
endif.
select.......
populate data into internal table lt_task_output_table .
if not lt_task_output_table is inital.
context_node_task = wd_context->get_child_node( name = 'TASK_PER').
context_node_task->bind_table( wd_this->lt_task_output_table ).
endif.
endmethod.
Starting of the mehod i have written to inavlidate, before upating the itab
but donesn;t work. Where should I write the code
Reagards,
Prasad -
How to refresh an ALV (CL_SALV_TABLE) after a parallel process
Hello all,
I have created a list using CL_SALV_TABLE. When you click on a line, a new mode must be opened. There, the user will fill in some data that must be retrieved and shown in the main list when the user closes the new mode. To do so Iu2019ve used u201CCALL FUNCTION func STARTING NEW TASK task CALLING meth ON END OF TASKu201D statement.
Iu2019ve tried to refresh the list within meth (called on end of task) but it doesn't work. I've also tried to get all the data again, but it prompts a short dump, set a new ok code using method cl_gui_cfw=>set_new_ok_code, even a WAIT until process is finished (not valid because I need process 1 active all the timeu2026)
SAP help says u201CThe SET USER-COMMAND u2018OKCDu2019 statement replaces the REFRESH SCREEN commandu201D
CALL FUNCTION 'function'
STARTING NEW TASK w_taskname
PERFORMING end_of_creation ON END OF TASK
EXPORTING
i_zzta = ztztl_zzta
i_manual_order = space
EXCEPTIONS
communication_failure = 1 MESSAGE w_msg
system_failure = 2 MESSAGE w_msg.
[u2026]
FORM end_of_creation USING p_taskname.
RECEIVE RESULTS FROM FUNCTION 'function'
IMPORTING
e_zzta = ztztl_zzta
EXCEPTIONS
communication_failure = 1 MESSAGE w_msg
system_failure = 2 MESSAGE w_msg.
[Modify list]
SET USER-COMMAND 'OKCD'.
[u2026]
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'OKCD'.
Perform get_data.
How can I have the same behaviour when using CL_SALV_TABLE??
Thanks in advance!Hello Matt,<br><br>
does not work means that if I write the following within method ON END OF TASK, the report is not refreshed.
<br><br>
<pre>
o_alv->refresh( ).
</pre><br><br>
I've also tried:
<br><br>
<pre>
o_alv->refresh( ).
o_alv->display( ).
data: o_alv TYPE REF TO cl_salv_table</pre><br><br>
<pre>Short dump: RPERF_ILLEGAL_STATEMENT
Error analysis
There is probably an error in the program
"SAPLSLVC_FULLSCREEN".
The program was probably called in a conversion exit
or in a field exit. These are implemented by
function modules called CONVERSION_EXIT_xxxxx_INPUT/OUTPUT or
USER_EXIT_xxxxx_INPUT.
Conversion exits are triggered during screen field transports or
WRITE statements, field exits during field transports from the
screen to the ABAP/4 program.
In this connection, the following ABAP/4 statements are not allowed:
- CALL SCREEN
- CALL DIALOG
- CALL TRANSACTION
- SUBMIT
- MESSAGE W... and MESSAGE I...
- COMMIT WORK, ROLLBACK WORK
- COMMUNICATION RECEIVE
- STOP
- REJECT
- EXIT FROM STEP-LOOP
Moreover, conversion exits for output conversion
(implemented by function modules called
CONVERSION_EXIT_xxxxx_OUTPUT) do not allow
- MESSAGE E...
to be used.
Trigger Location of Runtime Error
Program SAPLSLVC_FULLSCREEN
Include LSLVC_FULLSCREENU01
Row 187
Module type (FUNCTION)
Module Name REUSE_ALV_GRID_DISPLAY</pre><br><br>
But this short dump is expected since CALL FUNCTION - STARTING NEW TASK help says u201CIn the callback routine, you are not allowed to execute statements that interrupt the program execution or terminate a SAP LUW. Statements for list output are not executed.u201D<br><br>
Thanks Matt, I'll take a look at that forum, but I also tried a self list refresh using a timer and that prompted another short dump: LIST_TOO_MANY_LPROS -> "Error analysis: At present, the maximum permitted number of nested screen levels is restricted to 50." <br><br>
If I find a solution I'll let you know.<br><br>
<br><br>
Thank you!!
Edited by: Matt on Aug 26, 2009 1:16 PM -
How to refresh after delete the records in ALV report ?
Hi Friends,
How to refresh after delete the records in ALV report.
I am deleting records in ALV report .
After successful delete the screen should refresh.
u201C Deleted records should not appear in the screen u201C.
Please guide me.
Regards,
SubashHi subhash,
FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
WHEN 'BACK'.
Refresh the internal table from the ALV grid
PERFORM update_alv_tab.
ENDFORM. "user_command
FORM update_alv_tab .
DATA : e_grid TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = e_grid.
CALL METHOD e_grid->check_changed_data.
"update_alv_tab
CALL METHOD e_grid->refresh_table_display.
ENDFORM. " UPDATE_ALV_TAB
Then see in Debug mode is it updating or not..
Please confirm .
And please paste the code if you can.
Regards. -
How to refresh the textedit object in module pool
Hi All,
I would appreciate if anybody can solve my problem.
Problem is i have created one TEXTEDIT and now when user clicks on the cancel button and come back to the screen the data which was previously entered is still coming up.
Please tell me how to refresh the data in TEXTEDIT.actualy it is enough to do the following, assuming you have a container to put the textedit into it:
DATA: l_parent_container TYPE REF TO cl_gui_custom_container,
l_obj_editor TYPE REF TO cl_gui_textedit, "make this a global variable
l_text_table TYPE re_t_textline,
l_itftext TYPE STANDARD TABLE OF tline,
l_thead TYPE thead.
l_parent_container = ... "your container
move .... to l_thead... "your text header to read or reread
read text from SO10
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = l_thead-tdid "Text-ID
language = l_thead-tdspras "im_request-language?
name = l_thead-tdname "TDIC Text-Name
object = l_thead-tdobject "Texte: Anwendungsobjekt
TABLES
lines = l_itftext
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
convert itf text to stream text (SAPSCRIPT_DEMO_NOTE_EDITOR)
CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
TABLES
itf_text = l_itftext
text_stream = l_text_table.
IF l_obj_editor IS INITIAL.
CREATE OBJECT l_obj_editor
EXPORTING parent = l_parent_container. " Abstract Container for GUI Controls
ENDIF.
discard any previous changes
l_obj_editor->set_textmodified_status( cl_gui_textedit=>false ).
übertragen text in editor
CALL METHOD l_obj_editor->set_text_as_stream
EXPORTING
text = l_text_table
EXCEPTIONS
error_dp = 1
error_dp_create = 2. -
How to Refresh "Internal table values" in User EXIT.
Dear All,
My requirement is to place some checks in exit ZXQQMU20 in different tabs from the TCODE IW21 . IW22 etc.
Now after placeing the checks towards the different tabs while doing "NOCO" from IW21 the conditions are fullfilled but
when i go ahead to modify the created "NOCO " from the TCODE IW22 by deleting the created values and saving in IW22 , the conditions written in the exit are still satisfied eventhough i have deleted the values in IW22.
The reason for this is that the tables which are there in the exit ZXQQMU20 T_VIQMFE , T_VIQMUR , T_VIQMMA
still contains the old values which were there at the time of creation of "NOCO" in IW21 .
How to refresh my " internal tables values" used in such that even at the time of modification of the NOCO through IW22 my table values should pick the current screen values and not the values which were there at the time of creation.
Please help.
The code i have written in the exit is as below:-
********************* Changed vide ******START
*****IW21 IW22 also added in filter criteria of notification *************
******The purpose of this modification is that in the execution of IW21 or IW22 or IW24 or IW25 we have to give a check that if the
******notification type is M2 than inside the Transaction screen , if the Breakdown duration comes less than 15 min than there are
******no issues but if the breakdown duration is more than 15 min than the mandatory fields needs to be entered in the analysis tab.
** The user has to fill up either following mandatory fields in Analysis Data tab.
** A. Object Parts & Damages sub tab
** Code Group - Object Parts (OTGRP, VIQMFE)
** AND
** Code Group - Problem / Damage (FEGRP, VIQMFE)
** Or
** Notification Item Short Text (FETXT, VIQMFE)
** B. Cause sub tab
** Code Group # Causes (URGRP, VIQMUR)
** Or
** Cause Text (URTXT, VIQMUR)
** C. Action Taken sub tab
** Code Group # Activities (MNGRP, VIQMMA)
** Or
** Activity Text (MATXT, VIQMMA)
** Then, allow user to complete notification (NOCO).
CLEAR : L_VAR , L_COMP_TIME.
IF ( SY-TCODE EQ 'IW21' OR SY-TCODE EQ 'IW22' OR SY-TCODE EQ 'IW24' OR
SY-TCODE EQ 'IW25' ).
IF ( E_VIQMEL-IWERK = '061' ) OR ( E_VIQMEL-IWERK = '062' ).
IF E_VIQMEL-QMART = 'M2'.
L_VAR = E_VIQMEL-AUSZT.
L_COMP_TIME = L_VAR / 60.
IF L_COMP_TIME < 15.
EXIT.
ELSEIF L_COMP_TIME > 15..
* IF ( T_VIQMFE-OTGRP IS INITIAL AND T_VIQMFE-FEGRP IS INITIAL ) OR ( T_VIQMFE-FETXT IS INITIAL ) .
* MESSAGE 'Please fill the mandatory analysis data in Object Parts' TYPE 'E'.
* ENDIF.
IF T_VIQMFE-OTGRP EQ '' OR T_VIQMFE-FEGRP EQ ''.
IF T_VIQMFE-FETXT EQ ''.
MESSAGE 'Please fill the mandatory analysis data in Object Parts' TYPE 'E'.
ENDIF.
ENDIF.
CLEAR L_TAG.
IF T_VIQMUR[] IS INITIAL.
MESSAGE 'Please fill the mandatory analysis data in Cause tab' TYPE 'E'.
ELSE.
LOOP AT T_VIQMUR.
IF T_VIQMUR-URGRP IS INITIAL .
IF T_VIQMUR-URTXT IS INITIAL.
L_TAG = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
IF L_TAG = 'X'.
MESSAGE 'Please fill the mandatory analysis data in Cause tab' TYPE 'E'.
ENDIF.
ENDIF.
CLEAR L_TAG.
IF T_VIQMMA[] IS INITIAL.
MESSAGE 'Please fill the mandatory analysis data in Action' TYPE 'E'.
ELSE.
LOOP AT T_VIQMMA.
IF T_VIQMMA-MNGRP IS INITIAL .
IF T_VIQMMA-MATXT IS INITIAL.
L_TAG = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
IF L_TAG = 'X'.
MESSAGE 'Please fill the mandatory analysis data in Action' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
<Added code tags>
Thank you so much in advance..
-Sudhish
Please use the code tags when you're posting any code snippet
Edited by: Suhas Saha on Jul 13, 2011 12:39 PMHi, I was thinking just like XVBAP and YVBAP values in the USEREXIT_SAVE_DOCUMENT.
Plz check u have x /y versions or tables like _old/ _new suffixes and then move the value accordingly.
otherwise there may be inconsistency.
Edited by: Prasenjit S. Bist on Jul 13, 2011 3:03 PM -
How to refresh cache for hostname used in RFC Dest
Hello @all,
does anyone knows how to refresh the cache where (for example) the hostnames used in ABAP RFC Destinations are stored? I'm getting an error "Details: NiHsLGetNodeAddr: hostname cached as unknown" when I try to test my generated Trusted RFC Destination...
Thanks in advance for any help!
Kind Regards, FalkHi Nilesh,
unfortunately the solution does not work. Still I get the following error while testing the RFC Destination:
DETAIL: NiPGetHostByName: hostname 'MHPAEAFC' not found
Two things have been done.
1. an entry within /etc/resolv.conf for the host mhpaeafc
2. an entry within the hosts-file containing the IP adress, hostname and FQDN
Do you have any idea why the SAP system still is not able to resolve the hostname?
We tried 'ping' and 'nslookup' on the operating system hosting the SAP system with the result that the host can be resolved.
Thanks for any help/hint.
Best regards, Falk -
How to create screen resolution in bdc table control
hi gurus
can anyone suggest me
how to create screen resolution in bdc table control
thanks®ards
mark.Hi ,
Using CTU_PARAMS table for screen resolution .
For this sample code.
This is for Transation FB60.
report ZZFB60
no standard page heading line-size 255.
tables t100.
PARAMETERS : p_file1 like rlgrap-filename,
p_doctyp like RF05A-BUSCS,
p_invdat like INVFO-BLDAT,
p_posdat like INVFO-BUDAT.
CONSTANTS : C_TRANS_FB60(4) VALUE 'FB60'.
*Parameter string for runtime of CALL TRANSACTION
data : l_option type ctu_params,
l_subrc type sysubrc.
DATA : l_mstring(150).
data accnt type char17.
data : day type char2,
month type char2,
year type char4,
date1 type char10,
date2 type char10.
data : cnt(2) TYPE n,
cnt1 type i,
fld(25) TYPE c.
data : begin of excel occurs 0,
fieldname(255) type c,
end of excel.
DATA:BEGIN OF it_mess OCCURS 0,
msgtyp(5),
lms(200),
msgv1(50),
END OF it_mess.
data: begin of t_record occurs 0,
BUKRS(004),
ACCNT(017),
XBLNR(016),
WRBTR1(016),
WAERS(005),
SECCO(004) ,
SGTXT(050),
HKONT(010),
WRBTR2(017),
MWSKZ(002),
GSBER(004),
KOSTL(010),
end of t_record.
*Internal Table for Header Data
DATA : BEGIN OF t_head OCCURS 0,
BUKRS(004), "Company Code
ACCNT(017), "Account or Vendor
XBLNR(016), "Reference
WRBTR1(017), "Amount in document currency
WAERS(005), "Currency
SECCO(004), "Section Code
SGTXT(050), "Text
END OF t_head.
*Internal table for Item Data
DATA : BEGIN OF t_item OCCURS 0,
ACCNT(017), "Account
HKONT(010), "GL Account
WRBTR2(017), "Line item Amount in document currency
MWSKZ(002), "Tax Code
GSBER(004), " Business Area
KOSTL(010), "Cost centre
END OF t_item.
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDC_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*include bdcrecx1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
PERFORM file_selection.
PERFORM data_upload.
PERFORM table_control.
start-of-selection.
l_option-defsize = 'X'.
l_option-dismode = 'A'.
l_option-updmode = 'S'.
day = p_invdat+6(2).
month = p_invdat+4(2).
year = p_invdat+0(4).
concatenate day month year into date1 SEPARATED BY '.'.
day = p_posdat+6(2).
month = p_posdat+4(2).
year = p_posdat+0(4).
concatenate day month year into date2 SEPARATED BY '.'.
*perform open_group.
loop at t_head.
CLEAR IT_BDCDATA.
REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPLACHD' '1000'.
perform bdc_field using 'BDC_OKCODE' '=ENTR'.
perform bdc_field using 'BKPF-BUKRS' t_head-bukrs.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'RF05A-BUSCS' p_doctyp.
perform bdc_field using 'INVFO-ACCNT' t_head-accnt.
perform bdc_field using 'INVFO-BLDAT' date1.
perform bdc_field using 'INVFO-BUDAT' date2.
perform bdc_field using 'INVFO-XBLNR' t_head-xblnr.
perform bdc_field using 'INVFO-WRBTR' t_head-wrbtr1.
perform bdc_field using 'INVFO-WAERS' t_head-waers.
perform bdc_field using 'INVFO-SECCO' t_head-secco.
perform bdc_field using 'INVFO-SGTXT' t_head-sgtxt.
cnt = 1.
cnt1 = 1.
loop at t_item where accnt = t_head-accnt.
*if cnt > 4.
*cnt = 4.
*endif.
if cnt1 gt 1.
CONCATENATE 'ACGL_ITEM-MARKSP(' cnt ')' INTO fld.
perform bdc_field using fld 'X'.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE' '=0005'.
endif.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE' '/00'.
CONCATENATE 'ACGL_ITEM-HKONT(' cnt ')' INTO fld.
perform bdc_field using fld t_item-hkont.
CONCATENATE 'ACGL_ITEM-WRBTR(' cnt ')' INTO fld.
perform bdc_field using fld t_item-wrbtr2.
CONCATENATE 'ACGL_ITEM-MWSKZ(' cnt ')' INTO fld.
perform bdc_field using fld t_item-mwskz.
CONCATENATE 'ACGL_ITEM-GSBER(' cnt ')' INTO fld.
perform bdc_field using fld t_item-gsber.
CONCATENATE 'ACGL_ITEM-KOSTL(' cnt ')' INTO fld.
perform bdc_field using fld t_item-kostl.
perform bdc_field using 'BDC_CURSOR' fld.
*CONCATENATE 'ACGL_ITEM-MARKSP(' cnt ')' INTO fld.
*perform bdc_field using fld 'X'.
cnt1 = cnt1 + 1.
*cnt = cnt + 1.
*if cnt > 1.
*perform bdc_dynpro using 'SAPMF05A' '1100'.
*perform bdc_field using 'BDC_OKCODE' '=0005'.
**perform bdc_field using 'BDC_OKCODE' '=0006'.
*endif.
endloop.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE'
'=BS'.
perform bdc_dynpro using 'SAPMSSY0' '0120'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
*perform bdc_transaction using 'FB60'.
CALL TRANSACTION C_TRANS_FB60 USING IT_BDCDATA options from l_option
MESSAGES INTO IT_BDC_MESSAGES.
perform error.
perform errordownload.
endloop.
*perform close_group.
*Form data_upload
FORM data_upload .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = p_file1
FILETYPE = 'DAT'
TABLES
DATA_TAB = t_record.
ENDFORM. " data_upload
*Form file_selection
FORM file_selection .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'p_file1'
IMPORTING
file_name = p_file1.
ENDFORM. " file_selection
Form BDC_DYNPRO
FORM BDC_DYNPRO using program dynpro.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
endform.
*Form BDC_FIELD
FORM bdc_field using fnam fval.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
Table Control
FORM table_control .
LOOP AT t_record.
ON CHANGE OF t_record-accnt.
MOVE-CORRESPONDING t_record TO t_head.
APPEND t_head.
ENDON.
loop at t_head.
t_item-accnt = t_head-accnt.
t_item-hkont = t_record-hkont.
t_item-wrbtr2 = t_record-wrbtr2 .
t_item-mwskz = t_record-mwskz .
t_item-gsber = t_record-gsber .
t_item-kostl = t_record-kostl.
APPEND t_item.
endloop.
If t_record-level = 'H'.
t_head-bukrs = t_record-text1.
t_head-accnt = t_record-text2.
t_head-xblnr = t_record-text3.
t_head-wrbtr1 = t_record-text4.
t_head-waers = t_record-text5.
t_head-secco = t_record-text6.
t_head-sgtxt = t_record-text7.
APPEND t_head.
else.
t_item-accnt = t_head-accnt.
t_item-hkont = t_record-text1.
t_item-wrbtr2 = t_record-text2.
t_item-mwskz = t_record-text3.
t_item-gsber = t_record-text4.
t_item-kostl = t_record-text5.
APPEND t_item.
endif.
ENDLOOP.
ENDFORM.
FORM error .
LOOP AT IT_BDC_MESSAGES.
IF IT_BDC_MESSAGES-msgtyp = 'E'.
SELECT single * FROM t100 WHERE
sprsl = it_BDC_MESSAGES-msgspra
AND arbgb = IT_BDC_MESSAGES-msgid
AND msgnr = IT_BDC_MESSAGES-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH IT_BDC_MESSAGES-msgv1 INTO l_mstring.
REPLACE '&2' WITH IT_BDC_MESSAGES-msgv2 INTO l_mstring.
REPLACE '&3' WITH IT_BDC_MESSAGES-msgv3 INTO l_mstring.
REPLACE '&4' WITH IT_BDC_MESSAGES-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH IT_BDC_MESSAGES-msgv1 INTO l_mstring.
REPLACE '&' WITH IT_BDC_MESSAGES-msgv2 INTO l_mstring.
REPLACE '&' WITH IT_BDC_MESSAGES-msgv3 INTO l_mstring.
REPLACE '&' WITH IT_BDC_MESSAGES-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
it_mess-msgtyp = IT_BDC_MESSAGES-msgtyp.
it_mess-lms = l_mstring.
it_mess-msgv1 = IT_BDC_MESSAGES-msgv1.
APPEND it_mess.
ELSE.
it_mess-msgtyp = IT_BDC_MESSAGES-msgtyp.
it_mess-lms = l_mstring.
it_mess-msgv1 = IT_BDC_MESSAGES-msgv1.
APPEND it_mess.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
form errordownload.
*down the internal table to excel file.
call function 'EXCEL_OLE_STANDARD_DAT'
EXPORTING
file_name = 'c:/Error.xls'
TABLES
data_tab = it_mess
fieldnames = excel
EXCEPTIONS
file_not_exist = 1
filename_expected = 2
communication_error = 3
ole_object_method_error = 4
ole_object_property_error = 5
invalid_filename = 6
invalid_pivot_fields = 7
download_problem = 8
others = 9.
endform.
Reward if useful
Regards,
Narasimha
Edited by: narasimha marella on May 13, 2008 12:12 PM -
How we can see the abap memory data
How we can see the abap-memory data
fine the code below
import lsind
report_title
table_name
report_field
change_display
show_hide
conversion_exits
table_description
form_program
select_form
update_form
line_size
line_count
records[]
fields[]
header_fields[]
select_fields[]
xrep[]
from memory id 'LZUT5U11'.
Regards
santhosh
mail-id : [email protected]Dear Santosh,
ABAP MEMORY:
A logical memory model illustrates how the main memory is distributed from the view of executable programs. A distinction is made here between external sessions and internal sessions .
An external session is usually linked to an R/3 window. You can create an external session by choosing System/Create session, or by entering /o in the command field. An external session is broken down further into internal sessions. Program data is only visible within an internal session. Each external session can include up to 20 internal sessions (stacks).
Every program you start runs in an internal session.
All "squares" with rounded "corners" displayed in the status diagram represent a set of data objects in the main memory.
The data in the main memory is only visible to the program concerned.
CALL TRANSACTION and SUBMIT AND RETURN open a new internal session that forms a new program context. The internal sessions in an external session form a memory stack. The new session is added to the top of the stack.
When a program has finished running, the top internal session in the stack is removed, and the calling program resumes processing.
The same occurs when the system processes a LEAVE PROGRAM statement.
LEAVE TO TRANSACTION removes all internal sessions from the stack and opens a new one containing the program context of the calling program.
The ABAP memory is initialized after the program is called. In other words, you cannot transfer any data to a program called with LEAVE TO TRANSACTION via the ABAP memory.
SUBMIT replaces the internal session of the program performing the call with the internal session of the program that has been called. The new internal session contains the program context of the called program with which it is performed.
When a function module is called, the following steps are executed:
A check is made to establish whether your program has called a function module of the same function group previously.
If this is not the case, the system loads the associated function group to the internal session of the calling program as an additional program group. This initializes its global data.
If your program used a function module of the same function group before the current call, the function module that you have called up at present can access the global data of the function group. The function group is not reloaded.
Within the internal session, all of the function modules that you call from the same group access the global data of that group.
If, in a new internal session, you call a function module from the same function group as in internal session 1, a new set of global data is initialized for the second internal session. This means that the data accessed by function modules called in session 2 may be different from that accessed by the function modules in session 1.
You can call function modules asynchronously as well as synchronously. To do so, you must extend the function module call using the addition STARTING NEW TASK ''. Here, '' is a symbolic name in the calling program that identifies the external session, in which the called program is executed.
Function modules that you call using the addition STARTING NEW TASK '' are executed independently of the calling program. The calling program is not interrupted.
To make function modules available for local asynchronous calls, you must identify them as executable remotely (processing type: Remote-enabled module).
There are various ways of transferring data between programs that are running in different program contexts (internal sessions). You can use:
(1) The interface of the called program (standard selection screen, or interface of a
subroutine, function module, or dialog module)
(2) ABAP memory
(3) SAP memory
(4) Database tables
(5) Local files on your presentation server.
For further information about transferring data between an ABAP program and your presentation server, refer to the documentation for the function modules WS_UPLOAD and WS_DOWNLOAD.
Function modules have an interface, which you can use to pass data between the calling program and the function module itself (there is also a comparable mechanism for ABAP subroutines). If a function module supports RFC, certain restrictions apply to its interface.
If you are calling an ABAP program that has a standard selection screen, you can pass values to the input fields. There are two options here:
By using a variant of the standard selection screen in the program call
By passing actual values for the input fields in the program call
If you want to call a report program without displaying its selection screen (default setting), but still want to pass values to its input fields, there is a variety of techniques that you can use.
The WITH addition allows you to assign values to the parameters and select-options fields on the standard selection screen.
If the selection screen is to be displayed when the program is called, use the addition: VIA SELECTION-SCREEN.
Use the pattern button in the ABAP Editor to insert a program call via SUBMIT. The structure shows you the names of data objects that you can complete with the standard selection screen.
For further information on working with variants and further syntax variants for the WITH addition, see the key word documentation in the ABAP Editor for SUBMIT.
You can use SAP memory and ABAP memory to pass data between different programs.
The SAP memory is a user-specific memory area for storing field values. It is available in all of the open sessions in a user's terminal session, and is reset when the terminal session ends. You can use its contents as default values for screen fields. All external sessions can access SAP memory. This means that it is only of limited use for passing data between internal sessions.
The ABAP memory is also user-specific, and is local to each external session. You can use it to pass any ABAP variables (fields, structures, internal tables, complex objects) between the internal sessions of a single external session.
Each external session has its own ABAP memory. When you end an external session (/i in the command field), the corresponding ABAP memory is released automatically.
To copy a set of ABAP variables and their current values (data cluster) to the ABAP memory, use the EXPORT TO MEMORY ID statement. The (up to 32 characters) is used to identify the different data clusters.
If you repeat an EXPORT TO MEMORY ID statement to an existing data cluster, the new data overwrites the old.
To copy data from ABAP memory to the corresponding fields of an ABAP program, use the IMPORT FROM MEMORY ID statement.
The fields, structures, internal tables, and complex objects in a data cluster in ABAP memory must be declared identically in both the program from which you exported the data and the program into which you import it.
To release a data cluster, use the FREE MEMORY ID statement.
You can import just parts of a data cluster with IMPORT, since the objects are named in the cluster.
In the SAP memory, you can define memory areas (SET/GET parameters, or parameter IDs), which you can then address by a name of up to 20 characters.
You can fill these memory areas either using the contents of input/output fields on screens, or using the ABAP statement:
SET PARAMETER ID '' FIELD .
The memory area with the name now has the value .
You can use the contents of a memory area to display a default value in an input field on a screen.
You can also read the memory areas from the SAP memory using the ABAP statement GET PARAMETER ID FIELD . The field then contains the value from parameter .
The link between an input/output field and a memory area in SAP memory is inherited from the data element on which the field is based. You can enable the set parameter or get parameter attributes in the input/output field attributes.
Once you have set the Set parameter attribute for an input/output field, you can fill it with default values from SAP memory. This is particularly useful for transactions that you call from another program without displaying the initial screen. For this purpose, you must activate the Set parameter functionality for the input fields of the first screen of the transaction.
You can:
(1) Copy the data that is to be used for the first screen of the transaction to be called to the parameter ID in the SAP memory. To do so, use the statement SET PARAMETER immediately before calling the transaction.
(2) Start the transaction using CALL TRANSACTION or LEAVE TO
TRANSACTION . If you do not want to display the initial screen, use the AND
SKIP FIRST SCREEN addition.
(3) The system program that starts the transaction fills the input fields that do not already have default values and for which the Get parameter attribute has been set with values from SAP memory.
The Technical information for the input fields in the transaction you want to call contains the names of the parameter IDs that you need to use.
Parameter IDs should be entered in table TPARA. This happens automatically if you create them via the Object navigator.
Programs that you call using the statements SUBMIT , LEAVE TO TRANSACTION , SUBMIT AND RETURN, or CALL TRANSACTION run in their own SAP LUW, and update requests receive their own update key.
When you use SUBMIT and LEAVE TO TRANSACTION , the SAP LUW of the calling program ends. If no COMMIT WORK statement occurred before the program call, the update requests in the log table remain incomplete and cannot be processed. They can no longer be executed. The same applies to inline changes that you make using PERFORM … ON COMMIT.
Data that you have written to the database using inline changes is committed the next time a new screen is displayed.
If you use SUBMIT AND RETURN or CALL TRANSACTION to insert a program and then return to the calling program, the SAP LUW of the calling program is resumed when the called program ends. The LUW processing of calling and called programs is independent.
In other words, inline changes are committed the next time a new screen is displayed. Update requests and calls using PERFORM ... ON COMMIT require an independent COMMIT WORK statement in the SAP LUW in which they are running.
Function modules run in the same SAP LUW as the program that calls them.
If you call transactions with nested calls, each transaction needs its own COMMIT WORK, since each transaction maps its own SAP LUW.
The same applies to calling executable programs, which are called using SUBMIT AND RETURN.
The statement CALL TRANSACTION allows you to
Shorten the user dialog when calling using CALL TRANSACTION USING .
Determine the type of update (asynchronous, local, or synchronous) for the transaction called. For this purpose, use the addition CALL TRANSACTION USING UPDATE 'update_mode', where update_mode can have the values a (asynchronous), L (local), or S (synchronous).
Combining the two options enables you to call several transactions in sequence (logical chain), to reduce their screen sequence, and to postpone processing of the SAP LUW 2 until processing of the SAP LUW 1 has been completed.
When you call a function module asynchronously using the CALL FUNCTION STARTING NEW TASK ' ' statement, it runs in its own SAP LUW.
Programs that are executed with a SUBMIT AND RETURN or CALL
TRANSACTION statement starts their own LUW processing. You can use these to perform nested (complex) LUW processing.
You can use function modules as modularization units within an SAP LUW.
Function modules that are called asynchronously are suitable for programs that allow parallel processing of some of their components.
All techniques are suitable for including programs with purely display functions.
Note that a function module called with CALL FUNCTION STARTING NEW TASK is executed as a new logon. It, therefore, sees a separate SAP memory area. You can use the interface of the function module for data transfers.
Example: In your program, you want to call a display transaction that is displayed in a separate window (amodal). To do so, you encapsulate the transaction call in a function module, which you set as to Remote-enabled module. You use the function module interface to accept values that you write to the SAP memory. You then call up the transaction in the function module using CALL TRANSACTION AND SKIP FIRST SCREEN. You call the function module itself asynchronously.
Type ‘E' locks for nested program calls may be requested more than once from the same object. This behavior can be described as follows:
Lock entries from function modules called synchronously increment the cumulative counter, And are therefore successful.
Lock entries from programs called with CALL TRANSACTION or SUBMIT
AND
RETURN is refused. The object to be locked by the called program is displayed as already Locked by another user.
Programs that you call using SUBMIT or LEAVE TO TRANSACTION cannot come into conflict with lock entries from the calling program, since the old program ends when the call is made. When a program ends, the system deletes all of the lock entries that it had set.
Lock requests belonging to the same user from different R/3 windows or logons are treated as lock requests from other users.
Regards,
Rajesh.
Please reward points if found helpful. -
Dynamic selection screen with ABAP web dynpro
Hi all.
How can I create dynamic selection screen with ABAP web dynpro? Thank you in advance.hi yinglak.....
this is possible........ all the ui elelments has the property called visible and enabled.... just assign an attribute of type wdui_visibility to the visible property....
in the wddomodify method..... check for the radio button value and pass the value true or false to this attribute and it gets changed automatically.
---regards,
alex b justin
Maybe you are looking for
-
How to create a validation rule in SAP BODS Job
Hi Experts I have created a BODS Job and in that job i have to create a validation rule as if the cust_id is null the loading must stop. I dont have idea where i have to define this validation rule in the Job and how to stop the load job if the valid
-
Can a password be dynamically entered into a PDF upon opening?
Here is the goal I am trying to accomplish: 1. I need to upload an existing pdf via webpage form and have my webserver/script apply a password to the file upon saving it a directory on my website. 2. When a user clicks on a hyperlink to view the uplo
-
How to arrange keyfigures in between characteristics in BI 7 Workbook
Hi, How to arrange keyfigures in between characteristics in BI 7 Workbook? Thanks, Priya
-
I purchased a Buffalo WLI-CB-G54A card for use with my 15" Apple PowerBook G4, 1.67 GHz with built in Airport Extreme for better range and the ability to use an external antenna. The pcmcia card states it's supported natively with AirPort 3.1 drivers
-
Copy metadata from one field to another
I have two questions relating to batch copying metadata in Aperture (3.5.1). 1) Can you copy the contents of the Aperture metadata field "Version Name" to the IPTC metadata field "Headline" for multiple images at once? 2) Can you copy "Faces" (names