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.
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.
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.
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.