Wednesday, August 12, 2020

Running out of transport request numbers?

In large SAP installations serving multinational companies where many SAP clients are heavily customized within one SAP system there can be a huge IT department where even hundreds of SAP developers are working. While developing either a new of changed functionality the developers are using transport numbers to carry the changes across the systems in a landscape. On top of that, also SAP functional consultants are moving their changes via customizing transport requests. In such an environment after few years, the SAP installation can face an issue that number range that is providing numbers for the transport requests is running out of the numbers.

Normally the number range for the transport requests generates the numbers within the range ( <SID>K900000 - <SID>K999999 ). Theoretically, there can be up to 100k transport requests with the range. If the number get closer to the 999.999 it means that, the system is reaching to the limits of that particular number range.

Starting with SAP ERP Release 4.6A (back then around year 2000 called R/3 system) a new interval will be automatically used by the SAP NetWeaver based system. It is the range ( <SID>K9A0000 - <SID>K9ZZZZZ ). This will guarantee that another more than 40 million free transport requests numbers are available for future.

 

More information:

106911 - Transport system: number range filled for requests

1674286 - How to modify CTS transport number range (ABAP)

2951296 - Transport TR range getting exhausted

Monday, August 3, 2020

BW transport error: Object ABC needs object XYZ; latter is not in a request

Today one more blog post about BW transports. While releasing the BW transport there can be below error message:

Object ABC needs object XYZ; latter is not in a request Message No. RSO657
Diagnosis
The required object XYZ is not in a request. The request should not be released.
System Response
The object ABC would result in an error during import since the required object XYZ cannot exist in the target system.
Procedure
Write the required object IOBJ XYZ in a request.

Issue is very clear from the BW system consistency standpoint. It identified the missing object and it does not want to allow the transport be released as it would lead to inconsistency. However in most of the cases it is obvious that object that the system is complaining about is already existing for quite some and was transported across a landscape. That means it object XYZ doesn’t need to be in the transport.

According the SAP Notes such as 1801262 the error message can be ignored. It means that import to target BW system can be performed with an option of "Release despite errors? While doing it in person via dialog mode in t-code SE10. However there is no such an option in case there is an change management tool (e.g. Solman CHaRM) used in the landscape. In such a case, it make sense to put particular transport into the table RSTPCHECKEXC (Exception Table: Before Export Check). The table hold in information about all the transports that are to be exceptioned from “Before Export Check” phase of the transports while it is being released.

The report RSO_TLOGO_CHECK_REQUEST also using this table while executing the transport consistency check for before export check phase of releasing the transport.



More information:

1801262 - Releasing of transport request ends with message RSO656 / RSO657 / RSO672
2137751 - BPC NW 10.0/10.1 Transport Release error 'Object A needs object B; latter is not in a request' is being generated - Message No. RSO657
1377342 - Prüfung der Konsistenz von Transformationen im Transport



Thursday, July 30, 2020

SAP Universal ID (UID)

User accounts used for SAP support sites (like SAP Support Portal, SAP ONE Support Launchpad, sap.com, community.sap.com, OpenSAP, etc.) that used to be individual for each of the sites are finally becoming consolidated.

It was a matter of critique for many years that there were many different users to be used for particular SAP sites. Mostly each site was acting like a silo application for which user had to register separately. As of July this year, SAP came up with a solution. It is called SAP Universal ID. While creating the UID it allows you to link existing S* or P* users into one universal ID that can be used to login for multiple SAP sites. Currently following sites are being supported by the UID:

    SAP for Me
    SAP.com
    SAP ONE Support Launchpad
    SAP Support Portal
    OpenSAP
    SAP Help Portal
    SAP Training / SAP Learning
    SAP Customer Experience Wiki
    SAP SuccessFactors Community
    Service Now
    SAP CX Microlearning videos & SAP CX DOJO
    SAP Store
    SAP Best Practices Explorer
    SAP Ariba Connect
    SAP Customer Influence Center

See SAP Note 2948407 - Which SAP sites/platforms support SAP Universal ID login? For an up2data list of the supported sites.

Main advantage I see in here is that I could link many different SAP users I have for example to SAP Support Portal into one account. As it is normal, that an independent SAP consultant is working for multiple clients then the consultant has many different S* or P* users belonging to these clients. The SAP UID make the usage of the accounts easier as they can be linked into the one ID. The UID SAP hosted at address me.sap.com can manage all these different S* or P* users by adding/removing them from the UID.

More information:
Support component: XX-SER-UID

Friday, July 24, 2020

Populating BW hierarchy description from custom ABAP code

I recently developed a transformation that generates BW hierarchy on top of InfoObject. I did it via hierarchy transformation type – means source object IO was type of hierarchy and target as well. BW transformation that generates the hierarchy used a custom ABAP code. Within that code I populated the tables for the hierarchy like below.

table1: Hierarchy header
table2: Hierarchy header description
table3: Hierarchy data itself – all the nodes and leaves
table4: Texts of hierarchy text nodes
table6: Text of hierarchy text levels


It took me some time to figure out that I have to use table 2 for these kind of BW hierarchy description. Before I was trying to use also table6 but the system just ignored it. Once I adjusted my ABAP code to populate the table2 there was one more error message.

More than one text specified for hierarchy header for language EN
Message No. RH608

This error was caused due to long text that I populated to some of the fields in the table 2. Once I shortened it, it work fine. Note that depending if you are using Start/End routine there will be either result_package_2 or source_package_2 only.

result_package_2 VALUE #BASE result_package_2 (
         objectid 
0
         langu    
'EN'
         txtsh    
'Hier1'
         txtmd    
'PARENTH1'
         txtlg    
'PARENTH1 hier'
         record   
) ).

More information:


Friday, July 17, 2020

MD maintenance: maximum number of hits

Webdynpro app of master data (MD) maintenance can be sometimes annoying as there is max number of hits defined as 200. That number is sometimes not very convenient. I understand that had to put something in there to prevent performance issues, timeouts etc. However, perhaps some higher number would suit the purpose better.


Luckily, there is an option how to override that default setting of 200. First, there can be an parameter introduced into RSADMIN table called RSDMDM_MAX_NO_HITS. This parameter started to appear in BW version 7.4 SP16. Setting the parameter the no of the hits becomes valid system wide. As always, when it comes to BW switches a user parameter wins over RSADMIN parameter. Thus, it is possible to setup user value via menu System -> User Profile -> Own Data. It must have same name as the RSADMIN table parameter - RSDMDM_MAX_HITS.

If no value exists for the user parameter and if no RSADMIN table parameter value is maintained, 200 is used as the maximum number of hits, by default.

More information:
2344879 - InfoObject master data maintenance: Configuring maximum number of hits system-wide

Thursday, July 16, 2020

Deleting BW Master Data

There are few possibilities how to delete master data in SAP BW. Normally this activity is done via SAP GUI. There are few possibilities how to do it.

1. RSA1 -> InfoObject/InfoProv right click -> Delete Master Data


  
2. ABAP report RSDMDD_DELETE_BATCH


Selection report of the report is similar to popup that follows after right click -> Delete Master Data on InfoObject

3. Master Data Maintance (WebDynpro app)
While user is in RSA1 in InfoObjects area or in t-code RSD1 there is a button Maintain available that triggers webdynpro (WD) application called rsdmdm_md_maintenance_app. The WD allows master data maintenance like adding, deleting and changing the master data.


The WD app was introduced in BW74. I wrote about it here. If someone does not like the WD way of MD maintenance there is still a chance to go back to SAP GUI way.

Also comparing how fast is the data maintenance done via WD vs SAP GUI the GUI way wins. For example deletion of few records done in WD takes sometimes minutes whereas in the SAP GUI it is matter of seconds based on my experience.

In a newer versions of BW system that use Hana Studio (Eclipse based) the maintenance of master data is going on there. In the newest BW like BW/4 it is done via a new web based tool called “SAP BW∕4HANA Cockpit”. See online docu here.


More information:

Tuesday, May 26, 2020

Extending NW Developer Editions (aka miniSAP) license

There are few resources discussing this topic that can be found out there on the internet. However every time I do the license extension I suffer a bit with it. Thus I providing this blog post to remind me how to do it for good 😃

First how to find out when the license of NetWeaver (NW) Developer Editions (aka miniSAP) will expire. Normally when you log into your system you get a below copyright popup which apart of other information (like last system logon date/time) reminds when the license will expire.


Another option is to see the same information from menu System -> Status -> under SAP System Data area:

  

Third option to see when the license will expire is t-code SLICENSE itself.


In case you haven’t logged into your NW developer edition for some time and you can’t remember the passwords or something like that so you are not able to see either copyright popup that comes after logon or you can’t login to your system at all as you getting the logon error like below just do the following. 


Use user SAP* and login to 001 client with password Down1oad. Nee to mention that password of the user SAP* depends on your particular version of the NW developer edition. Therefore the password I mentioned here may not be valid for all the NW developer edition that exit.

Now with regards how to extend the license. While you are in t-code SLICENSE notice the field Active Hardware Key. Open page https://go.support.sap.com/minisap select corresponding radio button System e.g. in case of  SAP NetWeaver AS ABAP 7.52 SP 4 it is an entry “NPL - SAP NetWeaver 7.x (Sybase ASE)”. Fill up rest of the fields like Salutation, First Name, Last Name, Email Address, Hardware Key – that you can find in the t-code SLICENSE. Afterward just accept the license agreement and hit Generate button. Your web browser will prompt you to save NPL.txt file that contains the license.

Now you need to import the generated NPL.txt file into your NW developer edition system via the t-code SLICENSE. There is in INSTALL button available which will prompt you to browse for the NPL.txt file you just downloaded.


One of the issues one may run into I that there will be an error while installing the license file like below “Error when installing permanent license key”:


To fix this first an existing expired license needs to be removed in the t-code SLICENSE. Via menu entry Edit -> Delete License. Afterward import of the license file will be successful. 

Once all finished you can login with regular user like BWDEVELOPER and the extended license will be reflected on the copyright popup...