cancel
Showing results for 
Search instead for 
Did you mean: 

Is there an official way to create a deletion transport?

Sandra_Rossi
Active Contributor

Hello, sorry to borrow the title from this thread 4 years ago by julius.vondembussche, but I have exactly the same question, and the solution given by Julius looks promising but I can't make it work :

I need to revert the changes of tens of objects (including new objects) to deimplement a few SAP notes applied one year ago (concerned people have left), each note having several manual actions. All these notes and objects are in one transport request (which is released but never transported).

The simplest way to make sure everything comes back to normal, is to take the original objects from another system, and transport them to overwrite the objects to revert. Of course, I made sure that the objects were not changed by other transport requests.

Unfortunately, the issue is that I want to add non-existent objects in the transport request so that the new objects are deleted automatically during the import. But it's not permitted -> error TK313 Object requires an object directory entry.

If I apply the solution by Julius, I'm stuck in the third step, maybe the ABAP release is different between Julius' system and mine and possibly the issue originates from the second step:

  • Find yourself a "naked" SAP system without the objects in it.
  • Add the request with the objects to the STMS import queue but don't import it. <<< Here the request is not created in tables E070, E071, so there's no object list. The request only exists in tables E070__PREVIEW and E071__PREVIEW. I didn't know these tables, maybe they were created by SAP since Julius' post, and now maybe the system works differently.
  • Create a new transport and import the list from the real transport into its object list. <<< I can't, because the real transport doesn't exist in tables E070 and E071
  • (now comes the trick!) Edit the transport task to remove all TABU and VDAT type entries in it.
  • Delete the first transport from the queue again.
  • Release and export the 2nd transport, which will no longer be blocked by r3trans and will be converted into a deletion transport.
  • Fetch the Co- and Data-files from the TRANS directory and import them to any target systems as deletion transports.

Do you have any idea how I could apply Julius solution, or any other solution to "transport non-existent objects" automatically to delete them in the target system?

Thanks a lot!

Sandra

PS: my SAP release is ABAP 7.40 SP 7 (ECC 617 SP 5).

Accepted Solutions (1)

Accepted Solutions (1)

pokrakam
Active Contributor

I wouldn’t recommend this to just anyone, but why not try to just programmatically insert the entries into E071*? You can do a little test transport in a sandbox and see. The transport system is pretty old and has a reasonably simple structure.

Alternatively an enhancement to bypass TK313 temporarily and add the objects.

Thinking about it, I’d try option 2 first.

Sandra_Rossi
Active Contributor

Thanks. I tried the first option by using the transaction SE16N (as it's an ERP system). I had thousands of entries to add in E071K too. I released the transport request, no error message. The import changed and deleted the objects as expected.

So, no official way, but easy to do! 🙂

horst_keller
Product and Topic Expert
Product and Topic Expert

This, and a little RFCing. Quick, dirty and dangerous, but amazingly effective.

pokrakam
Active Contributor

Glad to hear it worked even better than I hoped.

It occurred to me that I’m usually the one banging on about "no direct updates", sticking to SAP processes and BAPIs and such. So I thought it’s probably appropriate to explain to other readers why this was one of the rare occasions to throw the rule book out the window.

In short, the factors that made me think this is the best approach is:

  1. This type of thing should only be done by someone competent and experienced
  2. The technical details are well known, (or easily understood, see 1.)
  3. The risks in this specific scenario are low - at worst we can corrupt something we’re trying to delete anyway
  4. We could spend an excessive amount of time figuring out “the right way” to achieve a trivial goal, so “just do it” and get on with more important things
  5. I was curious if it would work 🙂

Answers (0)