on ‎2020 Jun 17 6:02 PM
MY BACKGROUND -
I am very new to IT. I've spent a couple years on product configuration logic, but now that most products are in maintenance stages and we have trained more admins to deal with that, we now have the bandwidth to dive into new solutions. So although I've been learning the languages and how to do specific things, I have a difficult time understanding the various layers and systems and their interconnectedness within the CPQ platform.
Some examples:
• We've been creating highly customized Report Module reports - so we are learning SQL and database structures;
• We're trying to convert to the Responsive Design UI - so we are learning knockoutJS, CSS, JavaScript, Razor HTML, etc.;
• We're using scripts more often, and we're trying to modify cart calculations - so we are learning ironPython;
• We're trying to access CPQ with API's in 3 different ways...
THE ISSUE -
But because there is a gap in understanding how exactly it all fits together "under the hood", I often run into basic issues. For example, although some information can be easily accessed in one way (with CTX tags, for example), sometimes we can't figure out how to access it from other areas (like Report Module SQL queries, or in Responsive Templates, etc.). Then when we do figure it out, the value in that field or parsed formula doesn't always update instantly.
THE QUESTION -
Can someone help layout the platform structure and explain which parts and languages of the platform can access what and how? Or maybe, which parts/languages CAN NOT access what and why?
I know this very broad question may need a blog post to fully answer. But even partial answers are appreciated as they can help piece things together.
Thank you.
Request clarification before answering.
hi @slyakh
Its good question has been asked and you, your team working hard to get the solution out from CPQ
We can learn new solutions from below link accessible.
https://enable.cx.sap.com/
Coming to Platform Structure: Below is the languages you have to know
Responsive UI Design -- KnockoutJS
Scripting - IronPython
Reports: Sales Cloud Analytics
API Integration: SAP Cloud Platform Integration through API endpoints
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Yogananda!
I did not realize there were 72 videos available on CPQ setup! However, after reviewing them, they are unfortunately pretty basic - they show the interface and basic features, but they do not explain how it all works "under the hood" and therefore do not equip an admin with the tools to work in a highly customized environment.
Perhaps the platform setup is pretty standard and an experienced developer intuitively understands how the database operate in the background and can therefore hit the ground running from the getgo. But for someone like me, learning the basics of KnockoutJS, IronPython, and SQL is not enough, because I also need to understand which data (or, more generally, which areas of the platform) each of them can and can't access.
â–º EXAMPLE 1 - if a Custom Field "Job Name" resides on the "Quote Properties" cart tab, a UI template on the "Quotation" cart tab cannot retrieve its value (confirmed by SAP). However, another Custom Field ("Job Name 2") can be put on the "Quotation" tab, and it CAN access the "Job Name" Custom Field value with a CTX tag in its formula. So, although the final output can be in the same location ("Quotation" tab), a formula in a Custom Field has access to that data but KnockoutJS on a Responsive UI Template does not.
â–º EXAMPLE 2 deals with attribute values in a quote. It is pretty difficult (at least at my beginner level) to build a SQL query in the report module that would list all the attributes and their values on a quote item. However, the XML output from the API GetQuoteItemsAttributes operation outputs the attributes and values in a more-readable (relatively-speaking) format. (There is another place that actually outputs a list, but I am not currently remembering where.) But "under the hood" there should be one single source of that data. So if something like an API call can already output a nice version of it, why do I have to start from scratch to do the same thing in the report module? I must be missing the shortcut.
â–º EXAMPLE 3 - When configuring a product in a quote, if I'd like to access some of the item's data from the database using a SQL query (whether in a product rule or description or something) - I can't find a tag to identify the current item so I can pull the correct data (can't use product name or similar because there could be multiples of the same product on a quote but with slightly different configurations). Hopefully this is just an oversight on my part, but if not - the entire program is obviously aware of how to differentiate between items on a quote, so how can there be no way to do that on our side?
â–º EXAMPLE 4 - We are transitioning to Responsive UI. We have identified several features in Classic UI that are not available in Responsive UI. For example, the responder cannot show attribute descriptions (JIRA created), or the Show Me Why (or "Incomplete") button does not list incomplete required attributes that are not in the layout. But if it's just a different language or framework (KnockoutJS instead of XSL) accessing the same data, then what's stopping one language from being able to access the data that another language can?
For all these examples, either I just didn't look hard enough and there really is a way (but then SAP confirmed a couple of these), or I'm not understanding how this truly works in the background, and studying individual languages is not filling that gap.
| User | Count |
|---|---|
| 11 | |
| 6 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.