Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
Showing results for 
Search instead for 
Did you mean: 
Former Member

This blog is the third part of previous two blogs (I'll suggest to read these blogs to be in sync)

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-I

Essential Basis for SAP (ABAP, BW, Functional) Consultants Part-II

Here goes some of the remaining topics:


Lets give a fresh look at Developer Key and Object Key: If we know how to check Installation Number of any SAP system then we can verify that installation number remain same across that landscape(example ECC-Sandbox, ECC-Dev, ECC-Quality, ECC-Test, ECC-Production etc). This means if you have developer key for your sandbox system, same key can be used in your development system.

How to check installation Number?

Now, what information is required to generate a Developer Key?

1. SAP User Name 2. Installation Number.

In all those systems where these two information will be same Developer Key will be same!

For Object Key ? Notice the 5 marked information, again Installation is the part which may vary for an object, so next time you get prompted for an object key, before sending request to basis team, you can check your mail archives and find out if these information were same or different. If same then you saved your time.


Next topic is RFC connection:

RFC Connections in SAP system are used to connect with another SAP system or non-SAP system. Above screenshot shows different type of RFC Connections.

Type I - Internal connections are used when SAP calls one program or one program tries to call another program in same system.
Type 3 - When a connection is required with another SAP system(ABAP to ABAP connection), this connection requires information like host/IP Instance number, client, User ID, password. What to do if this connection is not working, goto SM59 and double click the connection:

From above screenshot, one can find out if the pointed SAP system is up or not by clicking on connection test, by authorization test we can find out, the User ID and password maintained in connection is fine or not.

There are two more connection types which are used more often http and TCP/IP connection. You need a URL and User ID/password in order to use http connection, which means java based systems where there is scope of login through User ID/password can be connected... easy peasy!

I am interested in discussing more about TCP/IP connection which does not restrict you for the system type be it another SAP system, any third party, legacy system or whatever, as long they understand the talking of TCP/IP ... and......and... their development team has developed some kind of interface after consulting with SAP in a way that it accepts User ID/password and other related information about SAP system which has ability to register a program at the Gateway of said SAP system.

Meaning? One has to go to that third party system and find out that interface which has the ability to register a program on SAP system's gateway.

Whats special about this registered program?  ..well this guy knows how to talk to its mother system (legacy, non-SAP) and by registering at your's SAP gateway you now have given him permission so that it can stand on the main gate of the City (SAP system) and whatever you will convey to him, he will pass it on to its mother system (Non-SAP system) and also it will bring back the response. These program names may be Case Sensitive too so watch out.

These registered programs can always be checked from Basis transaction SMGW -> Goto -> Logged On Clients

For some reason if this connection stops working and it is not showing in the gateway list, what generally people do... they ask Basis team to register this program again on the gateway. That sincere Basis guy (who has only access to his SAP servers) will register the program from the same SAP system with the given Program ID on its own gateway by following the process mentioned in SAP Note 63930(Gateway registration of RFC server program)

Now the program ID will start showing again at gateway list and guess what? the connection test will start working again.....BUT here is the problem.
This new guy(registerd ProgramID) who is standing at the main gate of the City and listening to your messages has no idea where else to go in the desert(outside of SAP system)... He is not an outsider. Whatever you will say to him he will nod his head like a dummy but nothing actually will happen in other system.Well! you know what I mean.

RFCDES is the table which stores most of the information related to RFC connection.

ℹ In SM59 transaction you will notice there are some connection which cannot be edited, ...well! open the connection by double clicking in SM59 which is non-editable and in top-left command box type TOGL and press enter :!: This does not mean you should change those values.


Lets conclude this blog with last topic: Printers and never ending correction of format issues:

This always happens when a form does not get printed as expected. In order to reach the solution, a clear idea of the flow is necessary. Here goes the story...

When a print is triggered inside the SAP system, print data is collected and sent to the spool server (which is nothing but an SAP system with the dialog and spool work processes). A dialog work process of the spool server forwards the print/spool data to the spool database for temporary storage -> A spool request got generated!

The spool work process generates output request from the existing spool request, a device type is used to format/convert the spool request in data stream that the printer understands. Spool request forwards the output request to the Operating System Spooler. Main task of OS spooler is to manage the wait-queue and transfer the date to the physical printer.

Once the great philosopher Aristotle said : If thou art not getting desired format of thy printout then thou should be looking for coding beneath the form where format is inscribed, otherwise its upto the "Device Type".

We cannot discuss about the print format coded in the 'Z' forms, so next best thing is Device Type.

When a printer is defined by a Basis person in an SAP system, they assign appropriate device type to that printer. The selection of device type depends on the model of the printer, the language in which printout is required or whether its a pdf document or barcode etc. In most of the cases one can find a specific device type for a specific printer model. One should not confuse the device type with the printer driver. Printer driver is installed at Operating System level (say, you've got a printer for your home then you install the printer driver in your windows/mac system)

The device type provides the information to the SAP System how to control the output device correctly. A Device type has following attributes:

  • Character set: By now we all know -> With help of the Device Type a spool work process converts spool request into output request, which means with one spool request you can generate different type of output request by selecting different sap printers. A character set is responsible to convert the characters used internally by an SAP spool system to the corresponding characters of output request.
  • Printer driver: In device type one can specify different printer drivers for printing SAPscript documents and ABAP lists.
  • Print controls: This controls the font size, bold italic etc so that printer can understand.
  • Formats: Formats specify the format supported by the SAP system. The system differentiates between SAPscript formats (DINA4 and LETTER) and ABAP list formats (X_65_132 = 65 rows/132 columns). There is also a special format for additional print options (format POSS).
  • Page format: A page format is the interface between a format and SAPscript. It specifies the paper dimensions with which SAPscript can calculate the row and column lengths.
  • Actions: Actions are output device-specific commands that are required for the implementation of a format.

Lets conclude printer topic here.

Okkay... by now, this blog has become considerably dense, I read it again in order to cut it short but the trimming will take away the Protein. This leaves me as a bad editor,  with this confession I am signing off..... see ya....

Your comments/suggesting/corrections are most welcome. You can ask your queries here.

1 Comment
Labels in this area