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: 

XPRA

Former Member
0 Kudos

Hi All,

I need to know what XPRA is? I have a requirement in which i need to transport a particular executable(type 1) program to another system as an xpra object.

Could anyone please guide me how to achieeve it. Please provide me some information about XPRA object.

Many thanks in advance.

Regards,

Karthick

1 ACCEPTED SOLUTION

Former Member

Hi Karthick,

An XPRA is a program that is executed after all the objects in a transport have been imported. XPRA's are really easy to create just make a standard report type program in SE38 that performs all the function you require when your transport imports.

keep in mind that write statements will not be output to the list as there is no list output during the import. There is a function module TR_APPEND_LOG to add messages to the transport log. If you are testing the program (i.e. not in a transport but in SE38) you can use the function module TR_FLUSH_LOG to write the log entries to the standard list output.

Once the program is complete and the transport has been made edit the transport in SE09 and add a new item to the object list with the key:

Program ID: R3TR

Object Type: XPRA

Object Name: Your Program Name

After this save, release and import your transport. When it is complete you can look in the "Programs Run After Import" section of the log for your xpra and it's messages.

From

De Wildt

4 REPLIES 4

Former Member

Hi Karthick,

An XPRA is a program that is executed after all the objects in a transport have been imported. XPRA's are really easy to create just make a standard report type program in SE38 that performs all the function you require when your transport imports.

keep in mind that write statements will not be output to the list as there is no list output during the import. There is a function module TR_APPEND_LOG to add messages to the transport log. If you are testing the program (i.e. not in a transport but in SE38) you can use the function module TR_FLUSH_LOG to write the log entries to the standard list output.

Once the program is complete and the transport has been made edit the transport in SE09 and add a new item to the object list with the key:

Program ID: R3TR

Object Type: XPRA

Object Name: Your Program Name

After this save, release and import your transport. When it is complete you can look in the "Programs Run After Import" section of the log for your xpra and it's messages.

From

De Wildt

0 Kudos

Very nice response and very detailed. Really helped me. Thanks.

To add 2 cents to this excellent reply: XPRA is only run one time and the program has to exist in the target when executed. The program cannot have mandatory parameters as it is just executed 'as is'. The most typical purpose is some kind of activation that requires program logic (like RV80HGEN, I believe) for example for statically linking includes. If you look at RV61ANNN (or the likes) you'll see it is generated and not migrated because not all includes are available - some may be in test still. It acts as a static link though, so moving new requirements requires such an 'activation'.

Does that make sense?

You can also use application logging (SLG1) for more information.

Wolfgang

Clemenss
Active Contributor
0 Kudos

Hi all,

just an extra hint: Yes, the import runs in client '000'. So if you want to modify any table data, you have to work with client specified.

I changed a customer table adding time slice fields. The initial values should be set by XPRA together with the table change. This works only if client specified is used using the correct client value (different in development and production/integration.

RV80HGEN works always because ABAP sources are client-independent.

Best regards

Clemens