Skip to Content

Hi SCN,

Using STMS is the standard and easiest way of transporting data between your linked SAP Systems.
However, if the SAP Systems are not linked and you wish to share any sort of data between the two SAP Systems or developers, keep on reading.

I was looking for a way to transport a program which I created on SAP System X to SAP System Y.

The easiest and fastest way for me, to transport ABAP developments between two independent systems, was to use SAPLink.

”     SAPLink is an open source project that aims to make it easier to share ABAP developments betwen programmers.
      It provides the ability to easily distribute and package custom objects.     “

(Source: Home | SAPlink Project | Assembla)

In this tutorial I’ll explain how to install and configure SAPLink into your SAP System and how to transfer data using SAPLink.

Installation and configuration of SAPLink into your SAP System

  1. Download and extract the SAPLink installation files to your file system (trunk/build | SVN | Assembla)
    (Note: it is advised to install a stable release and not a beta, or even alpha, version)
  2. If you don’t have a package yet to save the objects you will create in the following steps, create one now in transaction SE80.
  3. Create a new executable program in transaction SE38 (when asked for a package, save as local object since this program only handles the installation and will only be run once) and copy the code from the “ZSAPLINK_INSTALLER.TXT” into the program (which you extracted in step 1).
    Make sure to change the report statement at the top of the page to the name of your program. Save, activate and execute your program afterwards.
  4. The following screen will appear:
    /wp-content/uploads/2014/02/a_382340.png
    Select the “NUGG_SAPLINK-0.1.4” file (0.1.4 may be different version when you downloaded another release) from your file system which you extracted in step 1.

    If you want to overwrite a previous installation, you can flag the “Overwrite Originals” checkbox.

    Execute the report and when asked, enter the package (step 2) you will be using for SAPLink.

  5. When the installation (objects are created) was successful the following screen will appear:
    /wp-content/uploads/2014/02/a_382340.png
  6. Now the objects need to be activated:
    1. For classes go to transaction SE24, enter the name of the class and press activate.
      Repeat this for every class mentioned in the screen above.
    2. For programs go to transaction SE38, enter the name of the program and press activate. For programs you also have to activate a STATUS.              To do this go to transaction SE41, enter the program name and press F4 in the STATUS field. The value “SELOBJ” will appear; now press activate.
    3. If you want to activate multiple inactive files at the same time, do following steps:
      Transaction SE80 > Select “Inactive Objects” > Enter your username > Display > Right-click (on the objects that needs to activated) > Activate
      /wp-content/uploads/2014/02/a_382340.png
  7. You can now execute the “ZSAPLINK” program in transaction SE38.
    The following screen will appear:
    /wp-content/uploads/2014/02/a_382340.png
    The “Nugget” tab is for handling “.nugg” files and the “Slinkee” tab for handling “.slnk” files.
    These files can be used for importing plugins (extensions of original functionality, see underneath
    step 8) or be created for the export of SAP objects (data that needs to be transferred, see underneath step 9).
  8. Plugins can be download from the following website: plugins | SVN | Assembla.
    (these plugins extend the posibilities of what you can export)

    Click on the desired plugin, download it to your file system and choose to import the plugin file (either nugget or slinkee depending in file extension) in the program ZSAPLINK.

    On success the following screen will appear:
    /wp-content/uploads/2014/02/a_382340.png
    Note: don’t forget to activate the installed components (see step 6)

  9. You’ll have to install the ZSAPLINK program and plugins on both the source and target SAP System.

Export custom objects from source SAP System

  1. Execute “ZSAPLINK” program (transaction SE38)
  2. Select “Create New Nugget”, enter the desired nugget name and press execute:
    Navigate to the location where you want to save the file and press “Save”.
    (The system will ask you if you want to allow the SAP system from accessing the file system, press “Allow”)

    /wp-content/uploads/2014/02/a_382340.png
  3. Now specify which object you want to add to the nugget, in this case the whole package:
    You specify which object/package you want to add to the Nugget, where the Nugget is located (see previous step) and press “Execute”.

    /wp-content/uploads/2014/02/a_382340.png
  4. In the next screen, select what you want to add from the package and press the green wink:
    NOTE: To be able to select all the objects, I had to install some plugins.
    The amount of plugins you have to install, depends on what you want to transfer (e.g.: if you want to transfer Adobe Forms objects, you’ll need to install the PDF Forms and PDF Interface plugins – see step 8 from SAPLink installation).

    You can select every object (after installing plugins) except the package itself.
    /wp-content/uploads/2014/02/a_382340.png
    If all objects are succesfully copied to the Nugget a green light will appear in the “Exception” column.
    The objects are now stored in the “.nugg” file which you specified before.

Import custom objects in target SAP System

  1. Create a new package, for the Nugget that you will be importing, in transaction SE80
  2. Go to transaction SE38 and run the ZSAPLINK program.
  3. Choose to “Import Nugget” and look up the “Nugget File Name” from the file system on the location where you exported it to.
    Note: It is possible that not all objects can be imported at the first import because of the order of imports. Just run the “Import Nugget” a second time, this time with the “Overwrite Originals” checkbox flagged.
  4. When you import the Nugget, all objects are added to the “$TMP” package.
    You need to add all the objects to the package you created in step 1.
    Go to SE80 > Inactive Objects > Enter Username OR SE80 > Package > Enter “$TMP”
    Select all the objects that needs to be transferred to your package, right-click on your selection and choose “Change Package Assignment”.
  5. Select the objects one by one after the “Change Package Assignment” and activate them.

All your objects are now present and usable in the target SAP System.

If you have any questions, feel free to contact me.

Regards,

Niels

To report this post you need to login first.

16 Comments

You must be Logged on to comment or reply to a post.

  1. Jerry Liang

    Hi Niels,

    Thanks for sharing.

    I just imported a Nugget into my system, but I can not find the programms which I just imported in the local object, although the programms are in the Paket &TMP.

    how can I do this to show the programms in the local object.

    thanks in advance.

    (0) 
    1. Niels De Greef Post author

      Hi,

      Sorry for the late reply, I was on vacation the past week.

      The problem is you see your program as inactive object after importing the Nugget but can’t access it in for instance SE38?

      Gr,

      Niels

      (0) 
    2. Lucas Tétreault

      Right click on your $TMP package, select other functions, then rebuild object list. The missing programs should show up after you do this provided you had no errors when you ran the import.

      Rebuild Object List.png

      (0) 
    1. Niels De Greef Post author

      Hi,

      That is indeed true, it’s not a new project but I wanted to make a tutorial of it since it helped me a lot, and it might help others in the future.

      Gr,

      Niels

      (0) 
  2. tony smith

    Great explanation Niels – it is exactly what we need – will test and let you know of any issues.

    Best Regards

    Tony

    (0) 
  3. Chakram Govindarajan

    Hello,

    I’m getting the below error whilst importing nugget . The system could install couple of classes and then the below error message appeared. Could you kindly assist me?

    ”  ouch, your pants are on fire..better go get help “. I believe this message is triggered from the exception class ZCX_SAPLINLK. But not sure during which instance is this exception triggered?

    Thanks,

    Chakram Govindarajan

    (0) 
  4. Avirat Patel

    Are you able to transfer T-codes and SAP Scripts with this feature? I am also using this feature since long time but could not transfer tcode and script with this.

    (0) 
  5. Kiran K

    Thanks for sharing this.

    Usually when we manually import data/co files into systems which are not within the same landscape,the objects will get imported but Original system shows still the other system’s ID. ie if we import D1A object to D2A ( D1A>Q1A>P1A  D2A>Q2A>P2A  are two different landscapes),once the import is successfull,these objects in D2A shows the Original system as D1A and not D2A which we will be manually changing using SE03.

    Does it also replaces the Original system ID also automatically once the objects are imported or Do we have to do that exclusively for every object using SE03.

    K.Kiran.

    (0) 
  6. Karsten Heitmann

    Hi there

    I am trying to export multiple objects into a nugget file, and I have a problem with transactions (objecttype = TRAN).

    ZSAPLINK does it all for me – except transactions. When I try to pick objects from a package in nugget mode, the TRAN object type is selectable, but transaction objects are not saved into the nugget file.

    When doing slinkee, the TRAN object type is not selectable at all.

    Any ideas on this one?

    Moreover, is there any way to batch-activate imported new objects on the target platform?

    BR,

    Karsten

    Danish Railways

    (0) 
  7. Galen Wang

    Hi,Niels.

         Thank you for sharing this useful tool.

         I download all the released plugins from plugins | SVN | Assembla.

       and then ,i create a  nugget from a request in system A ~and import he nugget in system B..but i get this message(see the image)

    /wp-content/uploads/2015/05/121212_697946.pngQQ图片20150505102005.png

    user se24, i found the enhancement empl classes used the transparent table.(but the table event not start importing?? i guess this!)..please,,help..regards!

    (0) 

Leave a Reply