Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member197479
Active Participant

2023 Update - This Blog Post is referenced by SAP's Official Support Note:


I was told by a colleague that this Blog Post is being referenced as part of the official SAP Support Note regarding SAP Platinum Engineering Libraries, I'll be leaving the link below:

SAP Support Note on Platinum Engineering Libraries



 

 

 

 

 

Original Post:


Since I haven't seen any information about this at all, I would like to start this post, so we can share our experiencies with this so-called Platinum Libraries.

Let's start with the QA

1. What is an SAP Reuse Library?


These are basically a collection libraries with functions that SAP offers to make simple actions, conversions, etc. One good example of this will be the following to convert a string to a Date.
var forDate = Date.ParseFromString("2017-01-01T00:00:00")

 

2. SAP Platinum Engineering Libraries?


Yes, there're a group of these reuse libraries that offer really nice functionalities.

 

What I believe so far, is that these are existing internal functions from SAP, that they've been using all this time to accomplish some of the things that we as 'Partners' didn't have access, at least until now.

 

2.1. How to access the Platinum Engineering Libraries?


This is the easiest part, and you'll be able to visualize all the different functions that are available; in order to do this, just add the following two import lines to your ABSL code
import AP.PlatinumEngineering;
import AP.PlatinumEngineering.Public;

Then, just click Ctrl + Space, and navigate through all the wonderful collection:



And this is just an example of one collection called UserUtils, there're a lot more.

Looks cool doesn't it? But there's something about it that gets me to think

 

2.2. Main Issue using this Libraries


The main issue that I have encounter with this Libraries, is that some of the really cool ones, for example the one that let's you execute a SADL Query has no information at all about the parameters that must be set.

Check this example:



 

Check that the function receives a SADL_UUID, this I have absolutely no idea where to get it.

And the same happens with a lot of them, some are pretty much straight forward, but then you find a really cool function like this, and you have no clue about how to use it.

 

3. Why there's no documentation on this?


Well, at least I haven't been able to find it.

But the main thought that comes to my mind is that all of these are still experimental, and SAP is going to be delivering them officially at some point (please note that I'm not sure of this, perhaps a colleague from SAP can confirm my theory)

 

So, please comment below your experiences with this Libraries and if you were able to make a hard one work please share it with us, I'll leave one myself.


 

4. Platinum Engineering Examples


I'll assume you already made the imports mentioned on 2.1.

4.1. Sending an Email via ABSL

Note: Thanks to solene_roques for reminding me of adding the missing imports to this code snippet

 
import AP.Common.GDT;
import DocumentServices.Global;

//Create sender
var sender : EmailURI;
sender.content = "NoReply@myXXXXXX.sapbydesign.com";

//Assign recipients (receivers)
var recipients : EmailRecepientDataTable;
var dat : EmailRecepientData;
dat.EmailUri.content = "Destination@Email.com";
dat.EmailRecepientTypeCode = "TO";
recipients.EmailData.Add(dat);

//Assign the content of the Email
var bodyMail : XPEStringTab;
bodyMail.XPEString.Add("This is the content of the email");

//Call SAP Platinum Engineering Function
Mail.Send("Email Subject", bodyMail, sender, recipients);


 

5. List of Current Libraries


- Thanks to Former Member

  • AddonSupport

  • Binary

  • BOAction

  • BPHierarchy

  • Calendar

  • ChangeHistory

  • Codelist

  • Context

  • CSV

  • CurrencyConversion

  • Date

  • DateTime

  • DocumentService

  • Duration

  • Fuzzy

  • GlobalDateTime

  • Hash

  • LanguageCode

  • LocalDateTime

  • LocalizedNormalizedDateTime

  • Mail

  • MDRO

  • NumberRange

  • Numeric

  • NumericCharacter

  • Odata

  • OrgUnitUtils

  • Output

  • OutputManagementUtilities

  • Performance

  • QuantityConversion

  • RetailExecution

  • SADLQuery

  • SalesHelpFunctions

  • SessionContext

  • TextAnalysis

  • Time

  • Trace

  • URL

  • UserUtils

  • Utilities

  • UUID

  • WebDav

  • WebserviceUtilities

  • ZXUtil


 

Thanks, and Pura Vida.

 

Melvin

 

 

 
23 Comments
JOSC_ITLAB
Participant
0 Kudos
Hello Melvin,

 

as you already mentioned in your blog there are some guides on how to use the platinum engineering library for example for writing an email in absl or handling timestamps etc.

In my over one year trying to research do researches for the SAP C4C development i never saw a whole documentation for this. Some Platinum Engineering devs are sometimes here if there is a specific error with something in their library and i think i remember there is also a forum for their development but i couldn't find it or i dont remember it right.

 

Kind Regards,

Johannes
HorstSchaude
Product and Topic Expert
Product and Topic Expert
Hello Melvin,

Precisely observed. 🙂

Let me add one or two points to this.

  1. As you are mentioning that the SAP Platinum Engineering Libraries are " existing internal functions from SAP" they are not revised by the documentation team.
    Therefore it may happen that some values like that SADL UUID is not available for the "normal" PDI developer.

  2. Regarding documentation: I have asked the colleagues some tie ago if they are willing to provide documentation which would be incorporated in the documentation available via help.sap.com or direct in the SDK.
    Unfortunately and obviously without any success. 😞
    I will take this blog as a new starting point for my request.


Bye,
Horst
former_member197479
Active Participant
0 Kudos
Horst,

 

Thanks for your comments on this.

 

And yes, please feel free to use this post as you wish, the idea is to have all the insights and comments from all the colleagues, share some thoughts and add some more content to it.

 

 
Former Member
0 Kudos
Hi Melvin,

Thanks for sharing, this is great!

Currently i have a question on  the function "Hash.EncryptString()". I don't know how to use  the parameters  . Do you have some code on how to use it ?

Thanks and Regards.

Qiang
gadirov
Participant
0 Kudos
Hello Melvin,

thank you for this very useful Information!

I tried this approach in Cloud Studio with C4C as backend. But unfortunately, it seems that the namespace "import AP.PlatinumEngineering.Public" is not available in C4C, only in ByD. Thus, I cannot use the respective functions.

Best regards, Rufat

 
SamueleBarzaghi
Participant
Former Member
0 Kudos
That's strange, for me the libraries are available in C4C also.

Also, I have compiled a list of Reuse libraries, as documentation is lacking:
Reuse libaries:


  • AddonSupport

  • Binary

  • BOAction

  • BPHierarchy

  • Calendar

  • ChangeHistory

  • Codelist

  • Context

  • CSV

  • CurrencyConversion

  • Date

  • DateTime

  • DocumentService

  • Duration

  • Fuzzy

  • GlobalDateTime

  • Hash

  • LanguageCode

  • LocalDateTime

  • LocalizedNormalizedDateTime

  • Mail

  • MDRO

  • NumberRange

  • Numeric

  • NumericCharacter

  • Odata

  • OrgUnitUtils

  • Output

  • OutputManagementUtilities

  • Performance

  • QuantityConversion

  • RetailExecution

  • SADLQuery

  • SalesHelpFunctions

  • SessionContext

  • TextAnalysis

  • Time

  • Trace

  • URL

  • UserUtils

  • Utilities

  • UUID

  • WebDav

  • WebserviceUtilities

  • ZXUtil


 
dhruv_mehta
Active Contributor
0 Kudos
Thanks for this amazing blog!

Just want to add one more point  and one more doubt.

  1. if we use Platinum Engineering library we cant raise a hig prio incident if it doesnt work.

  2. Above code for sending email somehow is not working for me! 😞


Kindly suggest.

Dhruvin
Hanumath
Participant
0 Kudos
Thanks, Melvin for the excellent blog.

I have a question regarding the current available list of reuse libraries. In the list I would like to use a function related to consumption of ODATA API on the ByDesign reports.

Please let me know if that function is available to use and can I execute the report and look into the data.

knut.heusermann horst.schaude Any suggestions on this would be great help for us to achieve the customer need.

 

Thanks.

Regards

Hanu K

 
HorstSchaude
Product and Topic Expert
Product and Topic Expert
Hello Hanumath,

The Platinum Engineering libraries are not an official part of the SDK shipment.
Therefore my effort to get them documented had no success. 😞

As Dhruvin mentioned these libraries are not supported w.r.t. raising incidents.

Therefore if you need any function which you did not find in the SDK, please raise an idea request: https://influence.sap.com/sap/ino/#/campaign/903

HTH,
.    Horst
Hanumath
Participant
0 Kudos
Thanks, horst.schaude .

But do you have any other sources to get the information just alone on the requested Method?

Odata.ReportExecute is the Library and method I am looking for to execute the ODATA API on the ByDesign reports.

 

I will raise an idea request too.

 

Regards

Hanu K
HorstSchaude
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello Hanu K,

Maybe stefan.kiefer can help you.

Bye,
.    Horst
Hanumath
Participant
0 Kudos
Thanks, Horst.
former_member197479
Active Participant
0 Kudos
Hanumath, were you able to use that Odata method?
Hanumath
Participant
0 Kudos
No, I couldn't.

 

Hanu
solene_roques
Participant

Dear Melvin, thanks a lot for this amazing post !

A little advice for beginners like me, if you are trying Melvin's script to send emails, do not forget to add the two following libraries to your absl script :

import AP.Common.GDT;
import DocumentServices.Global;
VenkateshG
Explorer
0 Kudos
Hi Qiang,

 

Were you successful in using Hash Library for decryption / Encryption? If yes , please share some information.

We are in need of Encrypting and Decrypting a JSON string. Thanks in Advance.

 

Regards

Venkatesh
jensniemeyer
Participant
0 Kudos
Hello,

 

the last days I did some investigation for an ABSL based dublicate check for my custom BO.

I found this article (used Platiunum before for E-Mails).

I can imagine, that the lib "Fuzzy" is related somehow to my dublicated check, BUT

  • I can not find the libary!

  • Code completions does not give my and "fuzzy" path!

  • Which import do a have to use?

  • Where is some documentation on that?


Any help would be appricated

Jens

 
VVancalbergh
Contributor
Horst, Allow me to rant for a bit.

I'd like to add that it has been (practically) 5 years since this question and we are still waiting. Adding meta-capabilities to an SDK is critical to allowing people to really empower themselves and should be prioritzed over expanding the base application. SAP Business ByDesign has been around for 15 years and people are still requesting basic additions via the Influence forum. This floods the system with changes a Partner should be able to handle by themselves. Less trivial requests means SAP has more time to work on making the application stronger.

Where's the implementation of industry standards? Like, Intellisense that doesn't take 10 seconds to pop up (if ever). Source Control integration? XML Libraries (we're still manipulating text strings like its the 90s, manually escaping them a lot of the times)? JSON Libraries for creating json data. Since the base application is a black box, how about documentation about what happens in what order internally? What is done asynchronously and what is done synchronously? How about being able to pass actual objects to Reuse Libraries (or as a stopgap, being able to convert an object to an elementsof versions and then "apply" the changed elementsof back to the BO)? How about some consistent datetime handling (we have global datetimes, local datetimes, just datetimes, but only globals have the "useful" functions, and god forbit you try to manipulate an "end date", I just flatout refuse anymore).

You point to the Influence Forum and run away quickly. But the Influence Forum is where good ideas go to die. After 3 years of ByDesign I've given up on trying to make it better. I've given up on expecting SAP to make it better. And it seems SAP have as well. The port of SAP Cloud Applications Studio to VS2015 should have happened somewhere around 2015, not 7 years later.
former_member689468
Participant
0 Kudos
I can't belive I have been working on ByD for over 2 years and by pure chance one of the developers directed me to this platinum libraries a couple of hours ago in a community post answer.

Everything Vincent said, as usual, is completely correct and should be taken very seriously.

Best regards.
sipkovj2
Explorer
0 Kudos
very good post. Gentleman (knut.heusermann horst.schaude stefan.kiefer ), do you think it's real we can expect at least some overview which libraries work and which does not?

I understand you're probably getting such questions often and it's already anoying, but I think we all agree some of the platinum eng. functions would be(are?) really powerful and without single line of documentation it's so frustrating just to 'try and hope' with guessing the inport params. I'm used already that C4C has so much limitations compared to all other environments I ever worked but would be really great to have at least a little info - to expect/plan into the future.

 

Thanks a lot for any update! And best to all of you 🙂

Jan
former_member197479
Active Participant
Thanks for your comment solene_roques I totally forgot about adding those imports, I'll be updating the code and leaving you a greeting message!
solene_roques
Participant
0 Kudos
Thanks !
Labels in this area