Calling Multiple forms for a single Output Type in Smartforms
Hi SAP Gurus..
I want to call 2 smartforms simultaneously for a Single O/P type.
But the problem is that My Driver Program in Standard. I cannot edit the Driver form. Whatever I need to do I can do it only in the Smartforms.
Please help me out in this....
I guess the better way is to customize your print program. I am not sure whether there are any other alternatives for doing this.
Rgds,
SaiRam
Similar Messages
-
Printing multiple forms for one output types.
Hi,
I need to print the form 4 times for one specific output type. My internal table contains only one record, but for that one record also i need to print 4 forms. How can i do this, i tried using control parameters but in vain.
Any suggestions of how to achieve this,
Thanks & Regards,
Ramana.Hi,
I am working with only one smart form. But there are different output types(ZVSL, ZVFX, ZVFE & ZVFI) configured for that form. But for one specific output type (ZVSL), i need to repeat the print for 4 times.
Thanks & Regards,
Ramana -
Attaching multiple smartform to single output type
Hello Experts,
I have 2 different smartforms for invoice....
these two i have to call depending upon the type of customer.
I want to know that is it possible to attach both smartform to single output type ( in this case RD00).
if not..., Please suggest me how i can achieve this.
Thanks,
AmarIf your question is if is it possible to have 2 different SMFs in one single output the answer is yes.
You have to use the control_parameters-no_open and control_parameters-no_close
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSMF1''
IMPORTING
fm_name = g_funcion
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc EQ 0.
g_control_param-no_close = 'X'.
CALL FUNCTION g_funcion
EXPORTING
control_parameters = g_control_param
TABLES
g_t_lugares = g_t_lugares2
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5 .
* Smartform Puestos
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSMF2''
IMPORTING
fm_name = g_funcion
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
IF sy-subrc = 0.
g_control_param-no_close = ''.
g_control_param-no_open = 'X'.
CALL FUNCTION g_funcion
EXPORTING
control_parameters = g_control_param
i_num_pages = l_tot_pages
i_curr_pages = l_pages_2
TABLES
g_t_puestos = g_t_puestos_ssf
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
ENDIF.
ENDIF. -
Mulitple Smartforms for single output type
Hi Experts,
I have 4 programs and 4 smartforms and One output type Z999.
Depends on Company code i need to generate appropriate smartform using VF02.
( 4 programs & 4 smartforms means,
US invoice, US Creditmemo, Canada Invoice and Canada creditmemo).
Is it possible to assign 4 smartforms & 4 programs in NACE transaction in single output type?
If it is not possible what is the way? Please adivise me.Hi,
I don't think so that you can not do it directly. But there is a workaround for your problem. You can define your output type as SAP script and enter program name and entry routine. You can ignore a SAP script name because you are going to use Smartforms. In this entry routine you will call different Smartforms based on company code of your document.
But why don't you use different output types for different documents? That would be the best solution.
Cheers -
Passing multiple values for a single field in URL to call sap Transaction
Hi All,
I need to pass multiple values for a single field to SAP transaction .
means if i have say a field "Date" which can contain more than one value, <b>but its not a range which has two fields</b> . How is it possible.
Let me know pls.
Regards,
Sirisha.R.S.Hi Satyajit,
I need to call a transaction with multiple values which gives me the report based on those values.
So I need to pass multiple values for a single parameter.
I hope u got it.
Regards,
Sirisha.R.S. -
Generate and Print Preview Multiple Forms in a Single PDF
There have been other questions similar to this but none directly address my problem. We have the need to generate multple forms in a .pdf using Adobe interactive forms. We can generate the multiple forms, but the user has to click on each form to view. They want to have the forms in a single document that they can scroll through before printing. We can do this in SmartForms but need to do it in Adobe. Does anyone know how to generate multiple forms, either multiple copies of the same form or various forms, from an ABAP program into a single pdf that can be print previewed, in scrollable form, by the user?
I can describe it one more time, I think:))
You have multiple options, but only one "reasonable" within SAP.
You can call an external application (through command line etc.) to concatenate forms for you.
You can use iText as mentioned in the thread, and write yourself a "tool" which will concatenate the forms for you.
Both these "options" would not be acceptable for my clients, I name them to help you get the whole picture.
Then there is the third option: use a form for a single instance (template/ form A) and create a new form (form B), where you will use the A template:
- you need to: create a new interface where everything from the old interface is a row of the table (example: you have a form to print out the personal card of the employee, so in a new form you will need to use a table, where a row is an employee)
- you need to create a new form layout based on the new interface:
in this new layout you will paste the whole layout of the old form (A/ single instance) and wrap it into a subform. The added subform will work as a table (you will bind that to the table from interface) and everything from the old template within this new subform will work as a "row" (something what you can repeat for each data item).
Does that sound reasonable?
Cheers Otto -
List of script and smart forms(except TNAPR) with output type or print prog
How to find out List of SAP SCRIPT and SMART FORMS (except TNAPR)with output type or print program..I like to chk in output type WMTA whch form should use.kindly help on this
Hi
WMTA is special msg and doesn't create any print: so you can't find a sapscript or smartform to link to it.
WMTA is a message for delivery, so you can find it by NACE trx or TNAPR table (It's the same): infact here it can find only all messages of logistic modules (SD & MM).
The routine ENTRY of RLAUTA20 is called by WMTA and creates a Transfer Order (for WM, Warehouse Management, module), so if you need to create a print for that msg you need to change prg RLAUTA20,
Max -
Can we call two layouts for a single script?
Can we call two layouts for a single script?
Where dow e assign print program to a script?
in NACE transaction is it possible.......
Thanks in advance.
Regards.
Abhilash.Hi Abhilash.
Greetings for the day.
U can use one script in diffrent programs.
Yea u can do it in NACE transaction.
procedure would b as foloows:-
1.NACE
2.Select the apllication
3.Output types (press tab).
4.again selet the output type which u require
5.then press "procedure routines"
here u can give the program name and fom name.
plz reward if found helpful.
regards
prashant tiwari -
How to show multiple messages for a single exception
hi
Please consider this example application created using JDeveloper 11.1.1.3.0
at http://www.consideringred.com/files/oracle/2010/MultipleMessagesExceptionApp-v0.01.zip
It has a class extending DCErrorHandlerImpl configured as ErrorHandlerClass in DataBindings.cpx .
Running the page and entering a value starting with "err" will result in an exception being thrown and multiple messages shown.
See the screencast at http://screencast.com/t/zOmEOzP4jmQ
To get multiple messages for a single exception the MyDCErrorHandler class is implemented like
public class MyDCErrorHandler
extends DCErrorHandlerImpl
public MyDCErrorHandler()
super(true);
@Override
public void reportException(DCBindingContainer pDCBindingContainer,
Exception pException)
if (pException instanceof JboException)
Throwable vCause = pException.getCause();
if (vCause instanceof MyMultiMessageException)
reportMyMultiMessageException(pDCBindingContainer,
(MyMultiMessageException)vCause);
return;
super.reportException(pDCBindingContainer, pException);
public void reportMyMultiMessageException(DCBindingContainer pDCBindingContainer,
MyMultiMessageException pException)
String vMessage = pException.getMessage();
reportException(pDCBindingContainer, new Exception(vMessage));
List<String> vMessages = pException.getMessages();
for (String vOneMessage : vMessages)
reportException(pDCBindingContainer, new Exception(vOneMessage));
}I wonder if calling reportException() multiple times is really the way to go here?
question:
- (q1) What would be the preferred use of the DCErrorHandlerImpl API to show multiple messages for a single exception?
many thanks
Jan Verveckenfyi
Looks like using MultipleMessagesExceptionApp-v0.01.zip in JDeveloper 11.1.1.2.0 (11.1.1.2.36.55.36) results in a different behaviour compared to when used in JDeveloper 11.1.1.3.0 (11.1.1.3.37.56.60)
see http://www.consideringred.com/files/oracle/img/2010/MultipleMessages-111130versus111120.png
When using JDeveloper 11.1.1.2.0 each exception seems to result in two messages where there is only one message (as intended/expected) per exception when using JDeveloper 11.1.1.3.0 .
(Could be somehow related to the question in forum thread "multiple callbacks to DCErrorHandlerImpl".)
But, question (q1) remains and is still about JDeveloper 11.1.1.3.0 .
regards
Jan -
Finalize() method being called multiple times for same object?
I got a dilly of a pickle here.
Looks like according to the Tomcat output log file that the finalize method of class User is being called MANY more times than is being constructed.
Here is the User class:
package com.db.multi;
import java.io.*;
import com.db.ui.*;
import java.util.*;
* @author DBriscoe
public class User implements Serializable {
private String userName = null;
private int score = 0;
private SocketImage img = null;
private boolean gflag = false;
private Calendar timeStamp = Calendar.getInstance();
private static int counter = 0;
/** Creates a new instance of User */
public User() { counter++;
public User(String userName) {
this.userName = userName;
counter++;
public void setGflag(boolean gflag) {
this.gflag = gflag;
public boolean getGflag() {
return gflag;
public void setScore(int score) {
this.score = score;
public int getScore() {
return score;
public void setUserName(String userName) {
this.userName = userName;
public String getUserName() {
return userName;
public void setImage(SocketImage img) {
this.img = img;
public SocketImage getImage() {
return img;
public void setTimeStamp(Calendar c) {
this.timeStamp = c;
public Calendar getTimeStamp() {
return this.timeStamp;
public boolean equals(Object obj) {
try {
if (obj instanceof User) {
User comp = (User)obj;
return comp.getUserName().equals(userName);
} else {
return false;
} catch (NullPointerException npe) {
return false;
public void finalize() {
if (userName != null && !userName.startsWith("OUTOFDATE"))
System.out.println("User " + userName + " destroyed. " + counter);
}As you can see...
Every time a User object is created, a static counter variable is incremented and then when an object is destroyed it appends the current value of that static member to the Tomcat log file (via System.out.println being executed on server side).
Below is the log file from an example run in my webapp.
Dustin
User Queue Empty, Adding User: com.db.multi.User@1a5af9f
User Dustin destroyed. 0
User Dustin destroyed. 0
User Dustin destroyed. 0
User Dustin destroyed. 0
User Dustin destroyed. 0
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 1
User Dustin destroyed. 1
User Dustin destroyed. 1
User Dustin destroyed. 1
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
User Dustin destroyed. 2
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
User Dustin destroyed. 3
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
User Dustin destroyed. 4
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
User Dustin destroyed. 5
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
User Dustin destroyed. 6
Joe
USER QUEUE: false
INSIDE METHOD: false
AFTER METHOD: false
User Dustin pulled from Queue, Game created: Joe
User Already Placed: Dustin with Joe
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
User Dustin destroyed. 7
INSIDE METHOD: false
INSIDE METHOD: false
USER QUEUE: true
INSIDE METHOD: false
INSIDE METHOD: false
User Dustin destroyed. 9
User Joe destroyed. 9
User Dustin destroyed. 9
User Dustin destroyed. 9
User Dustin destroyed. 9
User Dustin destroyed. 9
INSIDE METHOD: true
INSIDE METHOD: false
USER QUEUE: true
INSIDE METHOD: false
INSIDE METHOD: false
INSIDE METHOD: true
INSIDE METHOD: false
USER QUEUE: true
INSIDE METHOD: false
INSIDE METHOD: false
It really does seem to me like finalize is being called multiple times for the same object.
That number should incremement for every instantiated User, and finalize can only be called once for each User object.
I thought this was impossible?
Any help is appreciated!Thanks...
I am already thinking of ideas to limit the number of threads.
Unfortunately there are two threads of execution in the servlet handler, one handles requests and the other parses the collection of User objects to check for out of date timestamps, and then eliminates them if they are out of date.
The collection parsing thread is currently a javax.swing.Timer thread (Bad design I know...) so I believe that I can routinely check for timestamps in another way and fix that problem.
Just found out too that Tomcat was throwing me a ConcurrentModificationException as well, which may help explain the slew of mysterious behavior from my servlet!
The Timer thread has to go. I got to think of a better way to routinely weed out User objects from the collection.
Or perhaps, maybe I can attempt to make it thread safe???
Eg. make my User collection volatile?
Any opinions on the best approach are well appreciated. -
Print program for the smartform for selecting the output type (email/fax)
Hi All,
Requirement :I have to create a print program for the smartform where the output type may be print out,email or fax ,so i need to put the condition for selecting the output type (like printout,email,fax).
can any body please let me know how to put the condition for selecting the desired output type ?
Thanks in advance
RahulHi
It is not the output type that has to be changed
it is the MEDIUM which you have to change and configure
for printout medium is 1
for FAX medium is 2
for MAIL it is 7.
so instead of printout change the medium to 2 or 7 for the same output type and attach to the same driver program and smartform/form.
Reward points for useful Answers
Regards
Anji -
Standard driver programs,output type ,scripts,smartforms for SD reports
hi experts,
Can any one list all the standard driver programs,output types ,scripts,smartforms for SD reports.
maniHi,
Check this out
NACE
You can track the form and the print program used for that form
The Tcode NACE is used to link the Standard SAP forms (SCRIPTFORM or SMARTFORM) or the customized form or the new form to its respective print programs. Also the output types, Form entry are linked with their forms and print programs. In short term, i can tell u that configuration or customization of forms to print programs, assigning output types, form entry to the forms are done using this Tcode.
NACE is used to create output type while creating the output type you will mention forms, and driver program.
that will be maintained in the table TNAPR.if you create the output type using NACE then it will be automatically visible in table NAST and TNAPR.
so check in NAST, TNAPR table
http://help.sap.com/saphelp_erp2005/helpdata/en/c8/1989fe43b111d1896f0000e8322d00/frameset.htm
Condition records in NACE?
and
NACE is used for message control customizing.
Take a look at the following link
http://help.sap.com/saphelp_nw04/helpdata/en/c8/198a1843b111d1896f0000e8322d00/frameset.htm
and also
NACE is used for message control customizing.
Take a look at the following link
http://help.sap.com/saphelp_nw04/helpdata/en/c8/198a1843b111d1896f0000e8322d00/frameset.htm
If it helps reward with points.. -
ECATT calling multiple Test script to single test script
HI experts,
How to integrate i mean calling multiple test script to single test script and store in single test script in ECATT
Moderator message: please search for available information/documentation.
Edited by: Thomas Zloch on Apr 8, 2011 9:50 AMHI experts,
How to integrate i mean calling multiple test script to single test script and store in single test script in ECATT
Moderator message: please search for available information/documentation.
Edited by: Thomas Zloch on Apr 8, 2011 9:50 AM -
Any way to pass Multiple Values for a single Label in the Parameter?
I have a Report that Contains 2 Parameters, @Customer & @Area. When trying to set up the Available Values for @Area, I'm having issues using multiple values for one Label, i.e. = "4006" Or "4610"
One of the Filters in the Report is an Operation number, which is the [OPERATION] field, which is setup as a filter on the Tablix referencing the @Area parameter.
PROBLEM: I cannot retrieve any data when trying to use the ‘Or’ Operator here. If I simply put “4006” or “4610” I retrieve data, but when trying to combine it returns no data.
Example, I need to allow a user to select ‘Chassis Incoming’, which would include data from Operations 4006 & 4610.
QUESTION:
Any way to pass Multiple Values for a single Label in the Parameter?
I realize the typical solution may be to use ‘Multi-Value’ selection, but in this case we want the User to select the Area and the multiple values for Filtering will be automatically determined for them. Otherwise, they are subject to not getting
it correct.
I have tried several different ways, such as =”4006” Or “4610”, =(“4006”, “4610”), = In(“4006”, “4610”), etc….
Note: We are using Report Builder 3.0Based on my experience, there's no way to 'intercept' the query that gets passed back to SQL Server, so a Split wouldn't work.
Try creating either a function or stored procedure using the code below (compliments to
http://www.dotnetspider.com/resources/4680-Parse-comma-separated-string-SQL.aspx) to parse the string:
CREATE FUNCTION dbo.Parse(@Array VARCHAR(1000), @Separator VARCHAR(10))
RETURNS @ResultTable TABLE (ParseValue VARCHAR(100))AS
BEGIN
DECLARE @SeparatorPosition INT
DECLARE @ArrayValue VARCHAR(1000)
SET @Array = @Array + @Separator
WHILE PATINDEX('%' + @Separator + '%' , @Array) <> 0
BEGIN
SELECT @SeparatorPosition = PATINDEX('%' + @Separator + '%', @Array)
SELECT @ArrayValue = LEFT(@Array, @SeparatorPosition - 1)
INSERT @ResultTable VALUES (CAST(@ArrayValue AS VARCHAR))
SELECT @Array = STUFF(@Array, 1, @SeparatorPosition, '')
END
RETURN
END
Once created you can do things like this:
SELECT * FROM Parse('John,Bill,David,Thomas', ',')
SELECT * FROM (SELECT 'John' AS TestName union select 'David' AS TestName) AS Main
WHERE TestName IN (SELECT ParseValue FROM dbo.Parse('John,Bill,David,Thomas', ','))
This is what your SQL query would probably look like:
SELECT OperationID, OperationName FROM dbo.Operations
WHERE AreaID IN (SELECT ParseValue FROM dbo.Parse(@Area, ','))
You may need to fiddle around with the Separator depending on whether SQL Server inserts a space between the comma and next value. -
How to use multiple hierarchies for a single char in single query
Hi,
Is there any way that we can use multiple hierarchies for a single char in single query. I tried and it just allows me to select one hierarchy even if I use hierarchy variable.
I have a requirement where user wants to see information related to a cost center with different cost center groups in different hierarchies (every year has different cost center group hierarchies).
Suppose I want to see information related to a cost center from year 2001-2004.in these four year cost center may have been associated to different groups depending upon that year hierarchy. How can I do that?
Thanks
JonaNope. Now way to do this.
There is always just one hierarchy assigned to a characteristic. And even if the hierarchy was time dependent, it only reads it for one key date and not according to transaction data.
Regards,
Beat
Maybe you are looking for
-
How to add two list in one frame using REUSE_ALV_LIST_DISPLAY
Hi, I want to display two list in single output by calling FM 'REUSE_ALV_LIST_DISPLAY' twice. I saw one topic posted by Arunava Das as 'ALV Problem' but didn't get the steps to do that. Here is his way of doing that "What I have done is gone for the
-
My ipod no longer synchs with itunes
My ipod no longer syncs with iTunes and my computer. It shows up under devices, but not in itunes. I installed an update from Apple yesterday. Could this be causing the problem (their updates have caused issues before), or is there something I need
-
How do you split a column into two
I have a huge list of names that ended up in one column. For example it says "John Smith" in one column. How do I put John in one column and smith in another without having to do each one manually? Your help is much appreciated. Thank you.
-
ABAP differences of SAP R/3 4.6 and ECC 6.0
What are the ABAP differences of SAP R/3 4.6 and ECC 6.0?
-
Upgrading Oracle 9i to Oracle 10g R2 in windows 2003
hi all, i installed oracle 10g grid control in windows 2003 server machine (new) and created database. in which 10g enterprise manager is installed. but, it installed oracle 9i version database. now i want to upgrade from 9i version to oracle 10g R2