SAP Profitability and Performance Management with its solid commitment for constant improvement and development, brings with it our continuous anticipation on upcoming features and enhancements every time for each new release. Following the SP13 release packed with further improvements in Performance and Visual Modeler, a new application Connection Management was introduced which further elevates user experience as we know it, a notch higher in terms of maintaining the usual external source connections for model functions: Model Table, Model BW, Model View, and Model RDL. For easy reference, details on this new application has been included in this section of the Application Guide.
When creating such model functions starting SP13, you will notice that a new field Connection Type is now available in the Header – with a default value set to Physical.
You might wonder if this will have a huge impact on your current configurations for your model functions or ask if there is a need to make some adjustments or even reconfigure.
And I am more than delighted to say, No. Further changes are not required and your model functions will still be in a good working condition, so no need for unnecessary worry. Every user can still setup the external connections for these model functions with the normal procedure that we all know – take as an example a Model Table with source Data Dictionary. The user would simply choose the Model Table Source, fill in the required details such as the Table Name, proceed to Synchronize and Activate.
The same procedure goes for other model functions. The user sets the source, maintain mandatory information such as the usual BW InfoProvider, DDIC and HANA Table, DDIC and HANA View, Authoring Schema, Remote details (in case of SDA) and DDL Source (in case of CDS View) and so on.
With the new Connection Type field set to Physical in place, nothing changes with how these functions are treated in SAP Profitability and Performance Management.
As every user has become used to this type of standard way of configuration, this blog post will present a new perspective and an optimal approach to maintaining these connections – enabling the user to:
- Set preferred connections centrally in the new Connection Management application
- Instantly use/re-use these established connections in model functions
- And on a transport perspective, define the type of connections which will be imported by default from one source system to a destination system (DEV to QA to PROD) and what connections which will be used solely on any given system.
If that is the case, then what is this new Connection Type field for?
Notice when you switch the Connection Type to Logical, another field Connection Name is introduced.
This is actually our first step in transitioning to this new approach. Allow me to explore with you the possibilities in setting a Connection Type: Logical and its relevance to Connection Management in the following sections.
Connection Type: Logical
Switching the Connection Type: from Physical to Logical being our starting point, will now allow us to utilize an array of functionalities of this new Connection Management application with our model functions.
From the Connection Name field, the user would simply call out or select the name of the appropriate connection created centrally in the Connection Management application, synchronize (for external sources) and proceed to activation – with the model function ready in an instant, without having to worry about putting all the mandatory details. And how does a user proceed in maintaining the needed connections in the application? Let me show you now.
Accessing the Connection Management application.
1. via Transaction Code
Note: This is only available starting SP14
3. via FIORI Application
Make sure that the Manage Connections tile is added in the SAP Fiori Launchpad.
The left side will contain the connections once we create them later.
The right side will contain the details of the created connections.
Once you click on the Edit button, notice the buttons are available in the following order.
- Check Connection
- Where Used
- Upload from Excel
- Export to Spreadsheet
Let us first go over the buttons on the left and what functionalities each button offers.
Let us now create our first connection by choosing the Add button. As an example, we will be creating a Default connection to a Data Dictionary Table.
In the Add Details dialog box, the user can maintain a unique alphanumeric Connection Name (can contain spaces, with a maximum length of 30 characters).
A fitting description may be indicated in the Connection Description field such as the following.
For the Connection Class field, there will always be 2 types available for selection which classifies the connection as either Default or Custom.
The only difference between these 2 types is that for Default, these are the types of connections which can be transported from one system to another so automatically, connections which fall under the Custom class are used exclusively for instance, in a Development system and can never be transported to any other system. For now, we will be setting Connection Source to Default.
As for the Connection Source, the user may choose the intended source from which a created Model function will connect to.
Since we are creating a connection to a Data Dictionary Table, Connection Source: DDIC Table will be set.
With all the details in, press the OK button to confirm all entries creating our sample connection to a Data Dictionary Table ZQAM_PAPM which is now listed on the left side with the corresponding Connection Details on the right side of our screen.
On the other hand, a Connection Name starting with “S” is not allowed as this is reserved for standard content.
As a last step, let us maintain the specific table we intend to connect to in the Table Name field by toggling Input Help.
Note: User may directly type the table name e.g. “ZQAM_PAPM” here, and skip using the Input Help. But in cases wherein the user would like to check the availability of such tables in the system first before selecting it, it is recommended to go through the Input Help.
In the Select: Table Name dialog box, the user can search for the preferred table by Table Name, Short text or Table Category. As we are already familiar with the Data Dictionary Table we will use, we will be using only the mandatory field Table Name and toggle the Input Help to search for it.
Note: User may directly type the table name e.g. “ZQAM_PAPM” here, and skip using the Input Help
The Define Conditions: Table Name dialog box will open. From here key in the name of the table “ZQAM_PAPM” and choose the OK button to confirm the entry.
The system will now lead us back to the Select: Table Name dialog box, now with the mandatory field Table Name populated. Choose the Go button from here.
Now, select the table name which will appear below in the Searched Items section.
Once selected, the Select: Table Name dialog box automatically closes and the system goes back to the main screen of the application now with the Table Name set.
Notice from here that there is an available checkbox Connection is Obsolete. The user has the option to have this selected/unselected anytime making the connection CDT01 unavailable for use during modeling. This will be better explained later after I demonstrate how this connection will be used in a Model Table source: Data Dictionary. We can have this checkbox unselected for the meantime, put in some details in the Documentation section provided (which is optional) and press the Save button.
The procedure I have just discussed for the creation of connections will be the same across all sources. The only difference will be the Connection Details required on the right side of the application screen which of course, varies from one source to another.
So how do we ensure that this created connection is working and if so, how do we use it for the first time in modeling? Let me walk you through in the next sections.
On Display mode, the user can select the created connection and choose the Check Connection button.
The system will check the validity of the connection based on 2 criteria:
- First, if all the relevant fields or the one we maintained in the Connection Details were provided
- Second, if the connection to the external object is valid. In this case, if DDIC Table ZQAM_PAPM is existing and active. Once this has been ensured by the user, a corresponding message will be displayed, confirming the validity of the created connection.
You will notice that there is a checkbox below the Connection Details for Connection is Obsolete. What happens if this checkbox is ticked?
If the checkbox is ticked, upon choosing the Check Connection button, the system will then display a message that the selected connection is obsolete and therefore, is not valid.
Otherwise, when the checkbox is left unticked by default, the created connection is now ready to be used in a model function. The steps on how this can be done will be discussed in the next section.
Using the Connection
Now that we have ensured that the connection is valid, I have prepared a Model Table (with Function ID: DEMO1) in the Modeling Environment which will be used to connect to a Data Dictionary Table. As I have mentioned previously, for a user to fully integrate the functionalities of the application into modeling, Connection Type should be set to Logical. Once set, all we have to do is, yes, call out the connection we created thru the Input Help button in the Connection Name field.
In the Select: Connection Name dialog box again, we are present with search options using the Connection Name, Description or Connection Source fields. In my case, I will be using the Connection Name field – Input Help.
By doing so, the Define Condition: Connection Name dialog box will open and from there, indicate the Connection Name “CDT01” we have created and press OK to confirm the entry.
Back to the Select: Connection Name dialog box, the Connection name will be filled out and upon choosing the Go button, “CDT01” will be in the list of searched items below.
Note: If the connection CDT01 checkbox for Connection is Obsolete has been selected earlier, it would not be possible for a user to search for the said connection upon reaching this Select: Connection Name dialog box therefore, connection CDT01 will not be available for use)
Once selected, the chosen Connection Name has now been set for our Model Table. Perform the usual steps: Synchronize, select the fields, Save and Activate.
Compared with our old procedure in maintaining external connections directly in the model functions themselves and also having to maintain it for every model function that we have in our environment, this created connection CDT01 as it is centrally maintained and managed in the application, can now be used and reused in any environment and in every model function applicable.
Any user for instance would want to verify if a particular connection is being used in a model function and if yes, what function uses the connection. On Display mode, the user may choose the Where Used button to check that.
Just as we have used connection with Connection Name: CDT01 in a Model Table, the user will be guided accordingly with the corresponding details including the Environment, Version, Function ID and Description.
The application not only allows to create a connection from scratch but also enables a user to copy an existing one by choosing the Copy button. In this section, as I would like to demo copying our existing Default connection to DDIC Table ZQAM_PAPM, a new Custom connection will be created with the same Connection Name CDT01 connecting to the same DDIC Table ZQAM_PAPM but only now, we will setting the Connection Class to Custom.
Going back, the Copy functionality has the usual flexibilities as to where the user would want the newly created item positioned on the list by selecting the appropriate entry in the Target Position droplist. We would want the next connection to be directly below the first connection CDT01, hence, we select the following Target Position from the droplist.
The Connection Name and Connection Description will be set to CDT01 and DDIC Table ZQAM_PAPM (Custom) respectively.
For the Connection Class, we will switch from Default to Custom using the droplist and choose OK.
Our new Custom connection CDT01 to DDIC Table ZQAM_PAPM is now maintained on our list of connections in the application, just directly below Default connection CDT01.
Aside from the Default connection CDT01 we have created earlier, we copied this existing connection to create a Customer connection CDT01, having the corresponding Connection Class “Custom” reflected in the Connection Details on the right side of the application. We can say now that Connection Name CDT01 has both Default and Custom connections.
Using the same steps we did earlier, I will be using CDT01 in another Model Table (with Function ID: DEMO2).
As a result of our demo, Connection Name CDT01 now has both Default and Custom connections and are used respectively in Model Tables DEMO1 and DEMO2.
In the previous section, I have demonstrated the creation of a Default and a Customer connection and used it respectively in 2 model functions. Up next, we will explore the functionality in removing created connections in the event that specific connections on a normal modeling or business scenario are no longer used and are therefore considered obsolete.
Connections which are no longer used may be deleted at any given time by choosing the Remove button.
Basically, connections can be removed given these 2 scenarios:
- The connection is currently not used by any model function. Otherwise, the system will notify the user that it is not possible since it is currently on use by a model function.
Hint: It might be the case that a user can just “park” or temporarily set aside a particular connection without necessarily deleting it by ticking the checkbox for Connection is Obsolete in the Connection Details. This way, the connection will no longer appear in the selection of valid connections during configuration of a model function.
- If a connection has both the Default and Custom class and are used in model functions like what we had setup earlier in the previous section, the application will allow the user to delete either the Default or Custom connection but not both.
It is actually that simple and straightforward. So let us move on to the next button which is Upload from Excel.
Upload from Excel
As connections are maintained centrally in the application, PaPM ensures that the user is provided the means on how this can be done.
- Manual entry
- Upload from an Excel file
- Import of connections used in model functions
So far, we have covered the steps in creating connections by manual entry. Therefore in this section, we explore further how connections are maintained via Excel upload and import of connections used in model functions.
You may ask, if users can upload the connections, what should my upload file contain? Is there a specific template we can use? You may check SAP Note 3038623 – FS-PER Rel 3.0 SP14: Connection Management File Upload Template for further details.
In other words for the upload procedure, the user will just have to prepare the template containing the connection details and just choose the Upload from Excel button on Edit mode.
In the File Upload box, the user chooses the file upload button to select the file and before choosing OK to confirm, a checkbox is available should the user intends to overwrite existing data or not.
As an overview, the template should include 1 header line with the following table column names.
To further guide the user for valid entries, the template comes with a droplist for columns CONN_CLASS and CONN_SRC which corresponds to the entries in their respective Domains.
It might be the case the user is not aware or does not use this template and just uses the normal descriptions such as DEFAULT or CUSTOM in the column Connection Class and DDIC TABLE, DDIC VIEW, etc without the underscore “_” in between. As a result, the application will not recognize these values. Therefore, it is important to use the technical names rather than the descriptions, more so, to avoid issues in upload, it is highly recommended to use the upload template.
From this upload functionality which I just have discussed, we will now proceed to import of connections. This can be triggered by transport. As I have mentioned earlier in my introduction on a transport perspective, this only means that whenever a transport is done from one system to another, all connections with Connection Class: Default used by model functions are included in the transport and makes its way to the destination system meaning, you will find these connections listed in the Connection Management application itself after transport.
Connections with Connection Class: Custom are never transported as they are created locally and the system does not provide a way to transport them. In effect, these Custom connections during their creation may be intended only for use in the system where it is maintained. As requirements may vary in an organization, the needed connections which were not imported during the transport may be maintained manually in the destination system.
As a general recommendation, Default connections should be created only in the Development System and only Custom connections in the Test/Quality System.
As we are done discussing the buttons on the left and what they are for, let us go over the buttons on the right which you are already familiar with.
Choosing the Search button and indicating the search item for instance, a Connection Name, should help you look for your preferred Connection Name for example.
You may also search find all connections based on Connection Class.
Searching for Connection Source or Connection Description is also possible depending your requirements most especially if you have a long list of connections in the application and you need to narrow down your choices and pick the appropriate connection for your model function. This will save a lot of time too.
Export to Spreadsheet
Choosing the Export to Spreadsheet button will simply allow you to download or save a local copy of your creation connections for reference.
Bear in mind that the downloaded copy contains descriptions and not technical names. So if you have downloaded your list of connections from a system and you intend to prepare the same list of connections and have reupload it to your destination system with all the other mandatory details, make sure you use the template we discussed earlier.
Choosing the Personalize button enables you to Allow Horizontal Scrolling, display hidden columns and set their width accordingly.
Filters may also be set using different selection criteria as well as further exclusions.
Choosing the Maximize button further expands the view on the left side of the application to full screen so you can accommodate on a better view most of your hidden columns should you decide to display it.
In addition to these functionalities, a Migration Report is available which migrates all functions from all environments in a single run. The corresponding report /NXI/P1_MIG_MODEL_PHY_TO_LOG can be launched which is intended to migrate model functions from physical to logical models that use connections.
As we came to realize the expectations I have set in the beginning and probably was able to shake off your reluctance in using an entirely new but intuitive application being more familiar with it in this blog post, I hope that you will now start using PaPM’s Connection Management application in developing a new approach in organizing and centrally managing your external source connections for your model functions.
Feel free to share this blog post with other colleagues in case you find it helpful. If you have questions, you can raise them here in the SAP Community Questions section link. If you want to read more blog posts, you may check the SAP Community Blog Post link.
Thank you for your time!