Regarding subroutine (Form-EndForm)
How do I trigger a Subroutine ( It creates a new ticket/insurance claim number/Invoice number) only when print command is given and not when print preview is given so that un-necessarily new ticket/claim/invoice NUMBERS are not generated?
Hi,
So it is a script or the smartform ?
In the sap script you can call the perform as shown below
You could make a condition to call the below subroutine in sap script window editor.
Example: if sy-ucomm = 'PRINT '.
perform TABLES fp_it_intab STRUCTURE itcsy
fp_it_outtab STRUCTURE itcsy.
Endform.
Please let me know if you want the fuction code for print command.
Edited by: Ashwin Kumar Chitram on Oct 1, 2011 7:21 AM
Similar Messages
-
How to perform subroutine form in an include program?
Hi all,
I would like to perform an external subroutine form residing in an include program from a customer function user exit. I tried using the following code, but it dumps:
PERFORM <form name> IN PROGRAM (lv_program)
TABLES <a> <b> USING <c>.
In the dump analysis I see that "Program <include name> is type I and therefore cannot be generated" and "The current ABAP/4 program attempts to call the program <include name> but this program cannot be executed. Therefore,the current program had to be terminated. "
If the include can't be generated, is there another way or method I could directly call the form without needing to copy the standard code to an own function or form?
Best regards,
MikkoHi,
take this example..
perform idoc_status_record_write in program sapmsed7 using
x_edidc-docnum
c_idoc_status_ready
space
space
space
space
space
space.
in this the from is in include, but while calling you need to call with the help of main program.
in this case <b>SAPMSED7</b> main program, but form is in include <b>MSED7F05</b>
Regards
vijay -
How to write Form - Endform in between Function - Endfunction
Hi Experts,
I need to write some code in between form & endform in an Include(User-exit)
This form ---endform doesnot have perform [ Perform is inside a standard Code ] . I tried using Generate pool subroutine. It is also not helping.
The call for this perform is inside Standard Code.Pls tell how to write Form-Endform between Function -
Endfunction.
thanks
surbhiNo no no. You're committing after each row! soany
other session running the same query will see the
changes you're making. Your session will equallysee
changes caused by running this query in those
sessions.Other session, yes, but current session will only see
the changes once it has completed the current
statement. Otherwise my "rn" column would not have
gone up sequentially in the above example. it would
have gone
1st row rn = 1 (all rows get updated by 1:-
2,3,4,5,6,7,8,9,10,11)
2nd row rn = 3 (all rows get update by 1:-
3,4,5,6,7,8,9,10,11,12)
3rd row rn = 5 (all rows get update by 1:-
4,5,6,7,8,9,10,11,12,13)
4th row rn = 7 (all rows get update by 1:-
5,6,7,8,9,10,11,12,13,14)
5th row rn = 9 (all rows get update by 1:-
6,7,8,9,10,11,12,13,14,15)
6th row rn = 11 (all rows get update by 1:-
7,8,9,10,11,12,13,14,15,16)
7th row rn = 13 (all rows get update by 1:-
8,9,10,11,12,13,14,15,16,17)
8th row rn = 15 (all rows get update by 1:-
9,10,11,12,13,14,15,16,17,18)
9th row rn = 17 (all rows get update by 1:-
10,11,12,13,14,15,16,17,18,19)
10th row rn = 19 (all rows get update by 1:-
11,12,13,14,15,16,17,18,19,20)
So the fact the commit happens each time the rows get
updated, isn't effecting the currently running select
statement.
No, actually you DO see the other session changes. This is because it is AUTONOMOUS transaction, and this a function.
Test by adding:
create or replace function incvals return number as
pragma autonomous_transaction;
v_val number;
begin
update t set rn = rn + 1;
select max(rn) into v_val from t;
dbms_lock.sleep(1); --add this line
commit;
return v_val;
end;
And test in two sessions.
You will NOT get sequential ascending.
>
Think about the effect of two parallel sessionsboth
running this query at the same time, and ask isthis
sensible?Gawd, no, of course not. Like I said, I'd never use
this sort of thing myself. I'm just wondering what
on earth the OP is trying to achieve.
:)Glad to hear it. -
Problem in writing form-endform in Smartform
Hi,
I am writing following FORM-ENDFORM in Form routines and Perform in Initialization of global definitions
in smartforms.
FORM GET_STD_TEXTS USING V_LANG
CHANGING
T_DAMAGE_TRANSIT TYPE STANDARD TABLE OF TLINE.
DATA:lt_lines LIKE tline OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = 'ST'
language = V_LANG
name = 'Z_DAMAGE_TRANSIT'
object = 'TEXT'
TABLES
lines = lt_lines
EXCEPTIONS
OTHERS = 8.
IF sy-subrc = 0.
T_DAMAGE_TRANSIT[] = lt_lines[].
ENDIF.
ENDFORM.
PERFORM GET_STD_TEXTS USING V_LANG
CHANGING
G_DAMAGE_TRANSIT.
In global definitions I have defined :
G_DAMAGE_TRANSIT TYPE TLINE
V_LANG TYPE NAST-SPRAS
<b>But there is something worng. I am getting following error:
Global Definitions: "OF" has already been declared already</b>This solves the problem partially now I don't get any error when I do syntax check for form-endform.
But still I get error saying G_DAMAGE_TRANSIT is not internal table in PERFORM.
PERFORM GET_STD_TEXTS TABLES
G_DAMAGE_TRANSIT
USING V_LANG.
In global definitions I haved defined:
G_DAMAGE_TRANSIT TYPE TLINE.
Please help.... -
Doubts regarding XML Form Builder
Hi All,
I am having some doubts regarding XML Forms (Projects) that is created using XML Form Builder. Where are exactly these projects stored. Can I edit these projects and add my own Java Functionality in these. And also the data which I fill using these project where is it stored. Suppose New Project I ve created using XML Form Builder, now I want to feed in the news. Where exactly are these news stored.
Thanks in Advance
AnishHi Anish
You can make the standard settings and modify the XML forms builder in line with your requirements in the options. You can set the standard paths for your project on the <b>Paths</b> tab page.
To get a clear understanding, please go through this link.
http://help.sap.com/saphelp_erp2004/helpdata/en/62/ca6f365a6df84e87ba085f9b5fb350/content.htm
Hope that was helpful
Warm Regards
Priya -
Regarding Smart Form Printing, Print Preview issues
Hi,
I have couple of issues regarding Smart Form Printing, Print Preview.
In my program i am passing below parameters to smart form function module:
t_control-device = c_printer.
t_control-no_dialog = space.
t_control-preview = space.
t_control-no_dialog = c_x.
t_output-tddest = g_spld.
t_output-tdimmed = c_x. " Print Immediately
t_output-tddelete = space. " Don't Release spool after output
g_user_settings = c_x.
Issue#1: Though i have set preview paramter to space, after executing program it is prompting for Preview Screen, There again i have to give printer name though i am passing printer name as above and i need to hit on print preview button to set Layout output.
Here how can i go directly to layout output without preview screen.
Issue#2: In some cases we need to Print the layout set output after executing program immediately without prompting for preview screen and then Layout set output should also be shown after printing the output.
How can i solve these issues!
Thanks in advance.
Thanks,
Deep.Hi,
In the SAP menu screen goto <b>System->User Profile->Own data</b>
There in the defaults tab, for the output device give the value you had maintained for <b>g_spld.</b> This will not prompt you a dialog screen, and if you want to print immediately select the checkbox as well. Then try to execute the smartform. Hope this solves ur issue.
Tushar -
Information regarding Adobe forms
Dear Gurus,
I need some basic information regarding adobe forms to be used in ESS MSS portal for doing some basic actions by managers like hiring/maintenance of data for his subordinates.
Are there any specific system requirements so that adobe forms display in browser without any problems? Is there any specific internet browser which works without any problems?
What time is considered to be best time in which an empty form can be displayed?
In one line what is the acceptable time for a form to load which is not considered as slow and is it linked with network connections or individual systems of end users?
Need your kind inputs on this topic........
Regards,
kitchluForm works in IE 6, 7, 8 and Firefox
Make sure you have adobe products above 8.1 (includes all adobe products)
In Reader -> Edit -> Preference -> Internet - you have setting to display pdf in browser.
For a small form with limited fields, 5-10 seconds launching time can be achieved.
Performance depends on number of fields, User events, no of backend calls, number of dropdown boxes, Servce size, Network etc etc. Optimized code is another aspect to look into -
Doubt regarding Adobe forms used for PCR
Hey all,
I have a doubt regarding Adobe forms used for PCR.If i goto tc
<b>SFP->form name (ISR_FORM_SPPM)->Layout->XML SOURCE-->
<base><server name><port>/sap/bc/fp/form/layout/</base></b>
But in tc SICF,i do not have anything beyond FP.It goes like this :<b> sicf-> default_host->sap->bc->fp</b> .
Could this be the possible cause of error why i am not able to view the forms in PDF format?
Can anyone , who has doen this before, please help me out with this issue?
Thanks,
AditiHi Aditi,
Are you getting an error when you are trying to access the PDF form ?
Is ADS installed and configured properly ? Also let me know the operating system you are using, it's version, J2EE and Portal version.
Regards,
Sunil -
Hi,
Can i call an external subroutine from a subroutine....if it possible what is the LOCAL statement's visibility within that external subroutine?
regards
subashHi Subash,
I dont understand this point. Can u elobarate this.
so if this is the case, the external program should use the
variable which is declared in that program is taken know?
What i mean to say is If u have declared some global variables in program2 and u have some subroutine which is using these global variables. If u call this subroutine from program1 then these global variables are visible inside the subroutine but u dont have any data in those variables if they are getting populated outside the routine. If they are populated inside the routine then u dont have any problems.
Now what ever variables declared in program1 is not visible in program2 subroutine even though u r calling it from program. Bcz ur control will be in program2 till it encounters ENDFORM statement.
The only way u can use ur program1 variables in program2 is through form interface. U have to pass ur variables/itabs in the PERFORM statement.
Hope this is clear now.
Thanks,
Vinod. -
Regarding subroutine in script
hi friends,
i am calling suroutine in script i write in main window of script this
/: PERFORM ZVEND IN PROGRAM ZRFI_CONF_SUB
/: USING &BSIK-LIFNR&
/:USING &BSIK-BUDAT&
/:ENDPERFORM .
i created subroutine pool ZRFI_CONF_SUB.
but when i am debugging form it is not going in that subroutine
where i am wrong plz reply me .
regards,
sonuhi anji,
i am pesting my code plz plz help me plz go through the code .
in script
PERFORM ZVEND IN PROGRAM ZRFI_CONF_SUB
USING &BSIK-LIFNR&
USING &BSIK-BUDAT&
ENDPERFORM
*& Subroutine pool ZRFI_CONF_SUB *
PROGRAM ZRFI_CONF_SUB.
DATA : BEGIN OF I_BSID OCCURS 0,
KUNNR LIKE BSID-KUNNR,
WRBTR LIKE BSID-WRBTR,
BUDAT LIKE BSID-BUDAT,
SHKZG like BSID-shkzg,
BSTAT LIKE BSID-BSTAT,
END OF I_BSID.
DATA : BEGIN OF I_BSAD OCCURS 0,
KUNNR LIKE BSAD-KUNNR,
WRBTR LIKE BSAD-WRBTR,
BUDAT LIKE BSAD-BUDAT,
SHKZG like BSAD-SHKZG,
BSTAT LIKE BSAD-BSTAT,
END OF I_BSAD.
DATA : BEGIN OF I_BSIK OCCURS 0,
LIFNR LIKE BSIK-LIFNR,
WRBTR LIKE BSIK-WRBTR,
BUDAT LIKE BSIK-BUDAT,
shkzg like bsik-shkzg,
BSTAT LIKE BSIK-BSTAT,
END OF I_BSIK.
DATA : BEGIN OF I_BSAK OCCURS 0,
LIFNR LIKE BSAK-LIFNR,
WRBTR LIKE BSAK-WRBTR,
BUDAT LIKE BSAK-BUDAT,
shkzg like bsak-shkzg,
BSTAT LIKE BSAK-BSTAT,
END OF I_BSAK.
*****This is form to get the total in Vendor Bal.ConformationForm*****
FORM ZVEND TABLES IN_BSIK STRUCTURE ITCSY
OUT_BSIK STRUCTURE ITCSY.
data : year(4),
month(2),
day(2),
date(8).
DATA : V_AMNT TYPE P DECIMALS 2,
V_AMT TYPE P DECIMALS 2,
V_TOT TYPE P DECIMALS 2,
V_TOTAL(20),
V_LIFNR(10) TYPE N,
V_BUDAT(10),
V_WRBTR LIKE BSID-WRBTR.
READ TABLE IN_BSIK INDEX 1.
V_LIFNR = IN_BSIK-VALUE.
READ TABLE IN_BSIK INDEX 2.
V_BUDAT = IN_BSIK-VALUE.
year = V_BUDAT+6(4).
month = V_BUDAT+3(2).
day = V_BUDAT+0(2).
CONCATENATE year month day into date.
SELECT LIFNR WRBTR BUDAT SHKZG BSTAT FROM BSIK
INTO table I_BSIK
WHERE LIFNR = V_LIFNR.
SELECT LIFNR WRBTR BUDAT SHKZG BSTAT FROM BSAK
INTO table I_BSAK
WHERE LIFNR = V_LIFNR.
LOOP AT I_BSIK WHERE LIFNR = V_LIFNR.
if i_bsik-BUDAT <= date and i_bsik-bstat ne 'S'.
if i_bsik-shkzg = 'S' .
V_AMNT = V_AMNT + I_BSIK-WRBTR .
else.
V_AMNT = V_AMNT - I_BSIK-WRBTR.
endif.
endif.
ENDLOOP.
LOOP AT I_BSAK WHERE LIFNR = V_LIFNR.
if i_bsak-BUDAT <= date and i_bsak-bstat ne 'S'.
if i_bsak-shkzg = 'S'.
V_AMT = V_AMT + I_BSAK-WRBTR .
else.
V_AMT = V_AMT - I_BSAK-WRBTR.
endif.
endif.
ENDLOOP.
V_TOT = V_AMNT + V_AMT.
V_TOTAL = V_TOT.
READ TABLE OUT_BSIK INDEX 1.
OUT_BSIK-VALUE = V_TOTAL.
MODIFY OUT_BSIK INDEX 1.
ENDFORM. "ZVEND
**This is form to get the total in Customer Bal.Conformation Form*****
FORM ZCUST TABLES IN_BSID STRUCTURE ITCSY
OUT_BSID STRUCTURE ITCSY.
data : year(4),
month(2),
day(2),
date(8).
DATA : V_AMNT TYPE P DECIMALS 2,
V_AMT TYPE P DECIMALS 2,
V_TOT TYPE P DECIMALS 2,
V_TOTAL(20),
V_KUNNR(10) type n,
V_BUDAT(10),
V_WRBTR LIKE BSID-WRBTR.
READ TABLE IN_BSID INDEX 1.
V_KUNNR = IN_BSID-VALUE.
READ TABLE IN_BSID INDEX 2.
V_BUDAT = IN_BSID-VALUE.
year = V_BUDAT+6(4).
month = V_BUDAT+3(2).
day = V_BUDAT+0(2).
CONCATENATE year month day into date.
SELECT KUNNR WRBTR BUDAT SHKZG BSTAT FROM BSID
INTO table I_BSID
WHERE KUNNR = V_KUNNR.
SELECT KUNNR WRBTR BUDAT SHKZG BSTAT FROM BSAD
INTO table I_BSAD
WHERE KUNNR = V_KUNNR.
LOOP AT I_BSID WHERE KUNNR = V_KUNNR.
if i_bsid-BUDAT <= date and i_bsid-bstat ne 'S'.
if i_bsid-shkzg = 'S' .
V_AMNT = V_AMNT + I_BSID-WRBTR .
else.
V_AMNT = V_AMNT - I_BSID-WRBTR.
endif.
endif.
ENDLOOP.
LOOP AT I_BSAD WHERE KUNNR = V_KUNNR.
if i_bsad-BUDAT <= date and i_bsad-bstat ne 'S'.
if i_bsad-shkzg = 'S'.
V_AMT = V_AMT + I_BSAD-WRBTR .
else.
V_AMT = V_AMT - I_BSAD-WRBTR.
endif.
endif.
ENDLOOP.
V_TOT = V_AMNT + V_AMT.
V_TOTAL = V_TOT.
READ TABLE OUT_BSID INDEX 1.
OUT_BSID-VALUE = V_TOTAL.
MODIFY OUT_BSID INDEX 1.
ENDFORM. "ZCUST -
Sap script - using form-endform
I have used follwing code in subroutine,but in quality control this is rejected because of "structure" keyword.
FORM GET_TKNUM TABLES CT_INTAB structure ITCSY
CT_OUTTAB structure ITCSY.
IF CT_INTAB[] IS NOT INITIAL.
LOOP AT CT_INTAB INTO LV_INTAB.
READ TABLE CT_INTAB INDEX 1.
CHECK SY-SUBRC = 0.
MOVE ct_INTAB-VALUE TO LV_REQNO.
CLEAR CT_INTAB.
ENDLOOP.
ENDIF.
Then i used following code but values are not coming from script.
FORM SHIP_INFO USING CT_INTAB TYPE TABLE ITCSY
CT_OUTTAB TYPE TABLE ITCSY.
IF CT_INTAB[] IS NOT INITIAL.
LOOP AT CT_INTAB INTO LV_INTAB.
READ TABLE CT_INTAB INTO LV_INTAB INDEX 1.
CHECK SY-SUBRC = 0.
MOVE LV_INTAB-VALUE TO LV_SHIPNO.
CLEAR LV_INTAB.
ENDLOOP.
ENDIF.
what is another way to define form?Try using 'LIKE'.
LOOP AT CT_INTAB INTO LV_INTAB.
ENDLOOP.
FORM GET_TKNUM TABLES CT_INTAB LIKE ITCSY[]
CT_OUTTAB LIKE ITCSY[].
IF CT_INTAB[] IS NOT INITIAL.
READ TABLE CT_INTAB INDEX 1.
CHECK SY-SUBRC = 0.
MOVE CT_INTAB-VALUE TO LV_REQNO.
CLEAR CT_INTAB.
ENDIF.
ENDFORM
You may also refer to the below sample code from ABAP HELP. (I could not find a hyper link to it though)
TYPES: BEGIN OF FLIGHT_STRUC,
FLCARRID LIKE SFLIGHT-CARRID,
PRICE LIKE SFLIGHT-FLDATE,
END OF FLIGHT_STRUC.
DATA: MY_FLIGHT TYPE TABLE OF FLIGHT_STRUC,
IBOOK1 TYPE TABLE OF SBOOK,
IBOOK2 LIKE TABLE OF IBOOK1,
STRUC TYPE SBOOK.
PERFORM DISPLAY USING MY_FLIGHT IBOOK1 IBOOK2 STRUC.
FORM DISPLAY USING P_ITAB LIKE MY_FLIGHT[]
P_BOOK1 LIKE IBOOK1[]
P_BOOK2 LIKE IBOOK2[]
P_STRU LIKE STRUC.
DATA: L_FLIGHT LIKE LINE OF P_ITAB,
L_CARRID LIKE L_FLIGHT-FLCARRID.
WRITE: / P_STRU-CARRID, P_STRU-CONNID.
LOOP AT P_ITAB INTO L_FLIGHT WHERE FLCARRID = L_CARRID.
ENDLOOP.
ENDFORM. -
Pass the flag in form endform.
I have decleared 2 flags in a type , how to pass these flag in a form endform
Hi!
Somehow like this:
PERFORM form1 CHANGING flag1 flag2.
form form1 changing p_flag1 p_flag2.
MOVE 1 TO p_flag1.
endform. " form1
Regards
Tamá -
i put in include
form xxxx
endform.
and i get error why?
what should i do?I don't think that you can do that, have an INCLUDE inside of a FORM. Put the INCLUDE statement at the end of your program outside the FORMS, you can include your code by wrapping it in a another FORM which is in the INCLUDE.
FORM XX.
perform call_alv_grid.
ENDFORM.
include YY.
Now in the include source, have a FORM.
**include YY.
form call_alv_Grid.
* Do whatever.
endform.
Also you can call the FORM directly instead of going thru the FORM XX.
Make sense?
Regards,
Rich Heilman -
Hi i have one repport it contains threeparameters based on the conditions i passed the data to the parameters
1-parameter dfata is either bkpf or bus2081
2-parameter value is data of three fields or twofields(burks belnr gjhar or belnr gjhar)
3-parameter data is always URL
my question is how to put this report in function as a form or subroutine and how to pass the values to those parameters based on the conditions in subroutine
provide the syntax for this subroutine?let assume ur FM: get_process_report.
imp. parameters are:
p1
p2
p3
write a subroutine
perform f_get_process using p1 p2 p3.
double click on f_get_process and save it in ...L(function group)F01.
endfunction.
form f_get_process using p1 p2 p3.
submit report z_Report with p1 with p2 with p3 and return.
endform. -
Hi,
I wrote the code like this .I am trying to use FORM which is defined in Report programm,But I am always getting error
message "Error at parameter 2 ":what change should i do for this. earlier I used the same code in ABAP ( not ABAP OO) it was working.
First Programm :
DATA : l_t_OTIFARR TYPE STANDARD TABLE OF /bic/aYO_SID0100,
w_table_to_be_read(30) type c.
w_table_to_be_read = '/bic/aYO_SID0100'.
perform READ_ODS in program YBW1_OTIF__SI_INCLUDES
tables SOURCE_PACKAGE
l_t_OTIFARR
using w_table_to_be_read.
****** REPPORT with FORM Definition
REPORT YBW1_OTIF__SI_INCLUDES.
FORM READ_ODS
TABLES SOURCE_PACKAGE structure /BIC/CS8YO_IGORD
l_t_ODS type TABLE
USING TABLE_TO_BE_READ TYPE C.
refresh l_t_ODS.
select * from (TABLE_TO_BE_READ) into table l_t_ODS
for all entries in SOURCE_PACKAGE
where /bic/ynv_order = SOURCE_PACKAGE-/bic/ynv_order.
ENDFORM.
Titled modified and code tags added by: kishan P on Oct 22, 2010 10:47 AMI was wrong about the parameters not working. I didn't spot the TYPE keyword.
I've tested the idea that it's an OO problem, and still can't see that it is. With the following, I get no problem.
data : l_t_otifarr type standard table of t100,
w_table_to_be_read(30) type c.
data: source_package type standard table of t000.
* CLASS tst DEFINITION
class tst definition.
public section.
class-methods: main.
endclass. "tst DEFINITION
* CLASS tst IMPLEMENTATION
class tst implementation.
method main.
select * from t100 up to 10 rows into table l_t_otifarr.
w_table_to_be_read = 'T100'.
perform read_ods in program ymabitest1
tables source_package
l_t_otifarr
using w_table_to_be_read.
endmethod. "main
endclass. "tst IMPLEMENTATION
start-of-selection.
tst=>main( ).
YMABITEST1.
*& Form READ_ODS
* text
* -->SOURCE_PACKAGE text
* -->L_T_ODS text
* -->TABLE_TO_BE_READ text
form read_ods
tables source_package structure t100
l_t_ods type table
using table_to_be_read type c.
endform.
Edited by: Matt on Oct 22, 2010 4:57 PM
Maybe you are looking for
-
Scheduling a job in time interval
hi , i have to shcedule a job which have to run between 6a.m to 9 p.m how can i schedule it.
-
Notification icons on top of the home page
I have 2 blackberry curve 8520 phones. Usually when there are new notifications on facebook or when I have a new email it is displayed on top of the home screen. On the one phone, I have a notification for facebook which I have already checked out, b
-
"No reporting system information available" in TRM
Hi, Has anyone come across that message in Treasury, trading area? When I create a transaction this is a warning only, once I try to settle it becomes an error. The technical name is T0141. What do I need to set up and where that I can continue proce
-
Cisco ISE throws "11036 The Message-Authenticator RADIUS attribute is invalid "
Hello, I am trying to authenticate my server(running an NMS) with an Cisco ISE with EAP-TLS protocol. I am seeing "11036 The Message-Authenticator RADIUS attribute is invalid " in the ISE when the ACCESS-REQUEST is sent from NMSServer to ISE. The RAD
-
Quality of imported movies is very poor: SWITCHER FROM PC TO MAC NEEDS HELP
I find the quality of the video images imported from my JVC gz-mg575e to be very poor. If I play my movies directly of camera on TV I have a crystal clear image. After importing the movie in IMovie 08 the quality gets worse. I already selected the ul