Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

ABAP questions

Former Member
0 Kudos

hi all,

please let me know the answer for following

1. how can we transport a varient

2.how can we transport data in ztable

3.what is the use of ssf_function_module_name in smart forms

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

1. how can we transport a varient

In version 46C (I'm not sure about earlier versions), you can create a transport request in SE38 for the variants of a program. You could then use transaction SCC1 to copy those changes from one client to another.

To create transport:

1) Go to transaction SE38 and enter the program name.

2) Click the radio button next to the "Variants" subobject and click the "Change" button

3) On "ABAP: Variants" screen, select menu path "Utilities -> Transport request"

4) Enter the variant(s) you want to copy into the "Variant name" box.

5) Click the execute button and save the data to a new change request.

To copy to new client:

1) Log on to target client and goto transaction SCC1.

2) Enter the source client and change request number from above.

3) Click the execute button.

Please note that if you're doing this in a downstream system (i.e. not a development box) you may need to change the client settings temporarily to carry out the client to client copy in SCC1.

2.how can we transport data in ztable

Go to transaction SE16, select your entries and go to Table entry -> Transport entries. It's only possible for some tables...

If you cannot do it that way, you have to create a Workbench transport order with transaction SE10. When created, click on it, go in menu Request/task -> Object list -> Display object list.

Go in modification mode and add a new line with:

PgmID = R3TR

Obj = TABU

Object name = Name of your table

Double-click on the created line and, depending on your need, put '*' in the key field or double-click on it and select the key you need to transport

3.what is the use of ssf_function_module_name in smart forms

A function module is generated whenever a Smart Form is activated. This Smart Form could be called from the driver program by calling this function module as shown below:

REPORT Zcall_smartform.CALL FUNCTION '/1BCDWB/SF00000359'

  • EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.But this is not an efficient way of calling Smart Form for the following reason:

Whenever a Smart Form is generated, a function module is generated and the naming convention for that Smart Form is done internally by using Number range object or something similar. In the above case, the function module name is /1BCDWB/SF00000359. The function module for the next new and activated Smart Form would be /1BCDWB/SF00000360.

So when this Smart Form is transported from the development to Quality or Production system, a new function module name is generated according to the number series available in that system. If the above program is transported to either quality or production system, the program might go for a dump as the function module is not available in that system. To handle this situation, we use the function module SSF_FUNCTION_MODULE_NAME to get the name of the function module for a Smart Form dynamically. If the form is not active, the function module SSF_FUNCTION_MODULE_NAME raises the exception NO_FORM.

Look at the modified program below:

REPORT zcall_smartform.

DATA:

fname TYPE rs38l_fnam.call function 'SSF_FUNCTION_MODULE_NAME'

exporting

formname = 'ZSMARTFORMS_TRAINING2'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

importing

fm_name = fname

  • EXCEPTIONS

  • NO_FORM = 1

  • NO_FUNCTION_MODULE = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.* Now replace the function module name '/1BCDWB/SF00000359'

  • with the variable FNAME

CALL FUNCTION FNAME

  • EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

4 REPLIES 4

Former Member
0 Kudos

Actually the function Module for the smart form is generated by the System itself.,.,

So If we change any Importing and exporting variable in the FORM.,.,we need to again n again check the Function Module created.,.,and accordingly call that Function Module.,.,and Pass the Required Information.,.,

So insteead of We Hard coding the Function Module Name .,.,we call thye function Module 'SSF_FUNCTION_MODULE NAME' .,.,to get the function module name captured in a variable(in the below example.,.,lwfm_name)

and we call the function Module.,.,based on the value captured in the Variable.,.,

Function module 'SSF_FUNCTION_MODULE _NAME' to get the function module

name of the smartform

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = c_dig_per (FORM name)

IMPORTING

fm_name = lw_fm_name (Function Module Name)

EXCEPTIONS

no_form = 1

no_function_module = 2

OTHERS = 3.

IF sy-subrc c_0.

ENDIF.

CALL FUNCTION lw_fm_name

EXPORTING

control_parameters = l_cntrl_param

output_options = l_outpt_param

user_settings = space

fiw_wapinr = p_wapinr

fiw_desc = w_stxt

fiw_langu = w_spras

TABLES

fti_lines = i_long_text

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5.

IF sy-subrc = c_0.

Former Member
0 Kudos

Hi Anjan, this will be of some help 4 u.

Number range objects are not transported as this causes inconsistency. These objects are created manually during cut over.Its not advisable to transport no. ranges through SE10, you need to define the number ranges in the quality/development server manually.

Number range intervals can be transported by object, by groups if they exist, and individually, for object types without groups.

When importing, all number range intervals which exist for the commercial object are first automatically deleted in the target system.

The number statuses are transported with the value which they have at the time of the export.

It is currently necessary to also transport the associated group tables to avoid inconsistencies between number range intervals and number range groups,.

Proceed as follows:

Call the number range maintenance transaction.

Object types 1 - 4: Choose Number ranges ® Interval ® Transport.

(You can also first call the list of the existing number range intervals with Change intervals, and call the function Interval ® Transport for individual selected intervals.)

Object types 5 - 8: Choose Number ranges ® Maintain groups.

Select the groups or intervals which you wish to transport.

Choose the function Interval ® Transport.

Enter an existing task number or choose one from the list provided by F4 , or create a new task and choose Continue.

The interval is copied into the task.

Release the task and the request in the Workbench Organizer (Tools ® ABAP/4 ® Overview ® Workbench Organizer.

cheers,

Hema.

former_member156446
Active Contributor
0 Kudos

Hi Anjan

1. how can we transport a varient

Goto SE38->select variant radio button ->click on display->enter ur variant name->UTILITIES->Transport request..

For transporting along with variants check out this below thread

2.how can we transport data in ztable

with screen shots:/people/community.user/blog/2007/01/07/transport-table-entries

3.what is the use of ssf_function_module_name in smart forms

In smartforms the FM will automatically created once you activate the From, ssf_function_module_name will give you the FM name to call in your print program.

Award points if helpful

Former Member
0 Kudos

Hi

1. how can we transport a varient

In version 46C (I'm not sure about earlier versions), you can create a transport request in SE38 for the variants of a program. You could then use transaction SCC1 to copy those changes from one client to another.

To create transport:

1) Go to transaction SE38 and enter the program name.

2) Click the radio button next to the "Variants" subobject and click the "Change" button

3) On "ABAP: Variants" screen, select menu path "Utilities -> Transport request"

4) Enter the variant(s) you want to copy into the "Variant name" box.

5) Click the execute button and save the data to a new change request.

To copy to new client:

1) Log on to target client and goto transaction SCC1.

2) Enter the source client and change request number from above.

3) Click the execute button.

Please note that if you're doing this in a downstream system (i.e. not a development box) you may need to change the client settings temporarily to carry out the client to client copy in SCC1.

2.how can we transport data in ztable

Go to transaction SE16, select your entries and go to Table entry -> Transport entries. It's only possible for some tables...

If you cannot do it that way, you have to create a Workbench transport order with transaction SE10. When created, click on it, go in menu Request/task -> Object list -> Display object list.

Go in modification mode and add a new line with:

PgmID = R3TR

Obj = TABU

Object name = Name of your table

Double-click on the created line and, depending on your need, put '*' in the key field or double-click on it and select the key you need to transport

3.what is the use of ssf_function_module_name in smart forms

A function module is generated whenever a Smart Form is activated. This Smart Form could be called from the driver program by calling this function module as shown below:

REPORT Zcall_smartform.CALL FUNCTION '/1BCDWB/SF00000359'

  • EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.But this is not an efficient way of calling Smart Form for the following reason:

Whenever a Smart Form is generated, a function module is generated and the naming convention for that Smart Form is done internally by using Number range object or something similar. In the above case, the function module name is /1BCDWB/SF00000359. The function module for the next new and activated Smart Form would be /1BCDWB/SF00000360.

So when this Smart Form is transported from the development to Quality or Production system, a new function module name is generated according to the number series available in that system. If the above program is transported to either quality or production system, the program might go for a dump as the function module is not available in that system. To handle this situation, we use the function module SSF_FUNCTION_MODULE_NAME to get the name of the function module for a Smart Form dynamically. If the form is not active, the function module SSF_FUNCTION_MODULE_NAME raises the exception NO_FORM.

Look at the modified program below:

REPORT zcall_smartform.

DATA:

fname TYPE rs38l_fnam.call function 'SSF_FUNCTION_MODULE_NAME'

exporting

formname = 'ZSMARTFORMS_TRAINING2'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

importing

fm_name = fname

  • EXCEPTIONS

  • NO_FORM = 1

  • NO_FUNCTION_MODULE = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.* Now replace the function module name '/1BCDWB/SF00000359'

  • with the variable FNAME

CALL FUNCTION FNAME

  • EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.