Best Of
Re: How to read association value in a webreport?
@GregPetti gave you the right way, I misread your post as it was working in one environment vs another, so ignore mine 😊

Re: How to read association value in a webreport?
The RUNSQL sub-tag is returning a "RECARRAY" which is to say an array of records. Even if you only expect one row, you will have to index it. E.g..
[LL_REPTAG_$LiveReport_GetKUAFID RUNSQL RECARRAY:1:ID /]
or
[LL_REPTAG_$LiveReport_GetKUAFID RUNSQL RECARRAY:1 RECORD:ID /]
If you have more than one row, you can use the [LL_WEBREPORT_FOR tag to loop through them and an LL_WEBREPORT_IF tag to screen out the rows you don't want.
Cheers
Greg
Re: How to read association value in a webreport?
I should note that there are better ways to do this besides RUNSQL (this sub-tag is often disabled on customer systems as it is disabled by default).
If all you need to do is return a column from a SQL query that returns one row you could associate the LiveReport as a datasource and the use
[LL_WEBREPORT_DATASOURCE /]
which basically does the same thing. Or (assuming only one row is returned) just put a line like this in a row section like this:
[LL_WEBREPORT_STARTROW /][LL_REPTAG=ID /][LL_WEBREPORT_ENDROW /]
This automatically loops through the rows so you get row #1 automatically and the =ID tag looks up the ID column.
Greg
Re: Smart View logo requirements
As it happens, I have just been made aware of a recent KB article that describes how to do this in CS 23.3 and above, using the Smart View > Edit Page > Header > Branding functionality:
https://support.opentext.com/kb?id=kb_article_view&sysparm_article=KB0832976
😀
Re: Core Content Management Service Client - client secrete auth gets InvalidApiKey
Brilliant @jpluimers. This is now working, thank you! Your steps were accurate and detailed - much appreciated.

Re: Core Content Management Service Client - client secrete auth gets InvalidApiKey
Your code snippet looks fine.
I expect that the problem is related to the service client that is used.
The service client details that are needed to be passed to the oauth2/token endpoint must come either from a standalone app, or in case you want to use Core Content, from an extension app. The service client must be created / must exists in an organization level application / app extension. The authentication endpoint can not use a service client that comes from a tenant level application. This is important.
You mention that you created a 'Core Content Management Service Client'. Can it be that you are using a tenant level service client, which you created on the Core Content app in the tenant? Like in this screenshot?
If so then navigate to the organization level and under App Management → Apps create an extension app and link that to the Core Content subscription in your tenant:
And use the service client ID and secret from that:
Note the format difference for the service client created on organization level vs the one on tenant level. The service client on organization level doesn't have dashes, where the tenant level service client looks like a GUID and is not compatible with the url as used:
https://{region}.api.opentext.com/tenants/{tenantId}/oauth2/token
Screenshot of a service Client created on the Core Content subscription in my tenant (which should not be used).