Skip to Content
Author's profile photo Former Member

Transfer Data between SAP Systems/developers without STMS (using SAPLink)


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:
    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:
  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
  7. You can now execute the “ZSAPLINK” program in transaction SE38.
    The following screen will appear:
    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:
    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”)

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

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



Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Excellent info mr. Niels De Greef thank you for sharing knowledge ........ 🙂


      Sada Bandla

      Author's profile photo Former Member
      Former Member

      Hello Niels,

      Thanks for this spledid tutorial,

      looking forward to see more of those.


      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Former Member
      Former Member
      Blog Post Author


      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?



      Author's profile photo Former Member
      Former Member

      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

      Author's profile photo abilash n
      abilash n

      Hi Niels,

      Its an old concept. But you have presented in a nice format and pictures....

      Author's profile photo Former Member
      Former Member
      Blog Post Author


      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.



      Author's profile photo Uwe Fetzer
      Uwe Fetzer

      Hi Niels,

      please, can you add to your document, that the newest versions of SAPlink and the plugins can be found only on ?

      Thank you!

      Author's profile photo Former Member
      Former Member
      Blog Post Author


      I updated the hyperlinks to the page.



      Author's profile photo Reagan Benjamin
      Reagan Benjamin

      Good one.



      Author's profile photo tony smith
      tony smith

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

      Best Regards


      Author's profile photo Chakram Govindarajan
      Chakram Govindarajan


      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?


      Chakram Govindarajan

      Author's profile photo Former Member
      Former Member


      Have you resolved your issue?

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Kiran K
      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.


      Author's profile photo Former Member
      Former Member

      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?



      Danish Railways

      Author's profile photo Galen Wang
      Galen Wang


           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)


      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!

      Author's profile photo Former Member
      Former Member


      I am getting the below error while executing Nugget. Please help me to solve this


      Category               ABAP Programming Error
      Runtime Errors         UNCAUGHT_EXCEPTION
      Except.                ZCX_SAPLINK
      ABAP Program           ZSAPLINK_INSTALLER
      Application Component  Not Assigned
      Date and Time          23.10.2017 09:57:27

      Error analysis
      An exception occurred that is explained in detail below.
      The exception, which is assigned to class 'ZCX_SAPLINK', was not caught in
      procedure "CREATE_PFSTATUS" "(METHOD)", nor was it propagated by a RAISING
      Since the caller of the procedure could not have anticipated that the
      exception would occur, the current program is terminated.
      The reason for the exception is:
      No text available for this exception

      Author's profile photo Hari Sandeep
      Hari Sandeep
      Comment the line:

      *      raise exception type zcx_saplink
      *        exporting textid = zcx_saplink=>system_error.


      This should take away the error


      Author's profile photo Hamad Ahmad
      Hamad Ahmad

      All Useful Links to Install SAPLINK Complete Solution:

      Tutorial for SAPLINK: ( All steps are in one video and will be really beneficial )

      SAPlink User Documentation:

      SAPLINK Latest Version:

      Available SAP Link Plugins

      TRAN / Transaction Plugin