Hello All,

 

I wanted to understand a bit more about the NotHtmlNote column in the KnowledgeBase table. I tried a few scenarios and notice the following behavior - 

  1. Any Knowledge base article is stored as markup in the 'Notes' column and stripped down to pure text (without the mark up tags) and stored in the 'NotHtmlNote' column.
  2. Whenever the knowledge base article is updated & saved, the 'NotHtmlNote' value is re-populated based on the 'Notes' column. This seems to be one way binding and not the reverse. Eg I tried data importing an Excel with junk values in 'Solution without Html tags' column. These junk values did get updated in that column but it never overwrote the 'Notes' column which contains actual mark up to be displayed in the Knowledge base. 
  3. I set the NotHtmlNote column value of a Knowledge base article to an empty string directly in the database. The Knowledge base article still perfectly displays on the UI.

Few questions below - 

  1. What is the NotHtmlNote column used for?
  2. I would like to directly import Knowledge base articles via the Data base (Through SQL queries). I tried this out by inserting values for the 'Notes' column but ignoring the 'NotHtmlNote' column. This worked perfectly. Pls let me know if there are any gotchas in this approach.  
Like 0

Like

2 comments
Best reply

Hello!

 

1) NotHtmlNote is used for working with CKEditor to modify text in Creatio (CKEditor is used in emails and templates designer for example).

2) Never heard about any gotchas so far :)

 

Best regards,

Angela

Hello!

 

1) NotHtmlNote is used for working with CKEditor to modify text in Creatio (CKEditor is used in emails and templates designer for example).

2) Never heard about any gotchas so far :)

 

Best regards,

Angela

Angela Reyes,

Thank you Angela for your quick response

Show all comments

dear support,

 

is it possible to add some validation in account mini page using setValidationConfig() function?

I tried it but it doesn't work

Like 0

Like

1 comments

Hi,

 

I am facing an issue with object permissions and seeking verification.

 

I added 'Dashboards' section in a workplace available for multiple organizational roles and despite only one of them requires visibility and the rest not having any operational permissions in SysDashboard object, they are still able to see the empty section in their workplace. See below:

 

Like 0

Like

1 comments

Dear Kavian,

 

This issue could occur if users received some roles via role heritage. To find its source check carefully all roles to check if the user who sees this section is not managing a role that should be able to see it.

 

Best regards,

Angela

Show all comments

Dear all,

after some operation on my develop environment now I've two packages marked with *.

How can I resolve this issue ?

Like 0

Like

6 comments

Hello Stefano,

 

The * sign indicates that the package or scheme was changed. This parameter is set in the SysPackage or SysSchema table and the column name is "IsChanged".

 

Best regards,

Bogdan S.

Thank you Bogdan,

a clarification,

how could this have happened? I have configured a new custom package and set it as the default

Stefano Bassoli,

 

I suppose you did some changes in the website configuration that caused such behavior. Please note that this is not an error but regular OOB system logic.

 

Best regards,

Bogdan S.

In custom package appear Account

Is it possible to sanitize the issue?

Stefano Bassoli,

You can remove the object from Custom package but make sure that this object does not contain any valuable changes that must not be erased. 

 

Best regards,

Angela

Thank you Angela

I try what you suggest

Show all comments

Hello all

 

We have a Package with a few object schemas and source code schemas and we work out of file development mode. When we upload the files from file system to the application, we get an error saying "The type or namespace name 'Logging' does not exist in the namespace 'Terrasoft.Configuration'. Are you missing an assembly reference". This error happens in a few Autogenerated files (In the C# Class files for new objects we had created).

 

This is weird because we tried installing this on a brand new Vanilla instance and the same issue persist. Few questions below - 

  1. Why does this happen and what is the fix for this?
  2. Is this related to the contents of our package or related to the setup of the instance itself?

Appreciate your help!

 

Like 0

Like

3 comments

Hello Community!



This has been a recurring problem for us with no root cause/fix in sight. Request your help. 

Hello community! Would appreciate your help here

Dear All!

 

We apologize for missing this Community question.

 

Could you please advise if you are seeing an error or a warning?

Is it possible for you to share a screenshot?

In addition, after you receive this message, have you tried 1. Generating the source code and then 2.Compiling the system and checking if there is the same message?

 

Usually Generating the source code and then compiling the system helps to resolve this issue.

 

Looking forward to your response!

 

Thank you!

Regards,

Danyil

Show all comments

Dear team,

 

Is there a way to send browser notifications (as seen in the image attached) through javascript? Our use case is that when our webservice receives a response from client, we use Message Channel Utilities to send message from server to client. When client receives the message, it should be able to trigger a browser notification

Like 0

Like

9 comments

Creatio does have a module named DesktopPopupNotification which you can use for this if you'd like. It can handle the request for permissions (if not yet granted by the user/browser) and create the notification and handle a click of the notification. Something like this:

// in init call:
DesktopNotification.requestPermission();
 
// to use, something like this:
var config = {
    id: someId,
    title: someTitle,
    body: someSubject,
    icon: this._getIcon(),
    onClick: this.onDesktopNotificationClick,
    ignorePageVisibility: true,
    timeout: 5000,
    scope: this
};
 
DesktopNotification.show(config);

Ryan

Ryan Farley,

 

Thank you for your response. I have implemented this and also permission to enable pop ups have been provided. yet, there is no notification. Could you please help?

 

Implementation details :

 

I have replaced communication panel and added dependency module - DesktopPopupNotification

 

In init() I have this line of code :

init() : function()

{

    DesktopPopupNotification.requestPermission();

 this.testfn();

},

 

    testfn: function()

                {

                    DesktopPopupNotification.requestPermission();

                    this.console.log("testfn");

                        var createConfig = {

                        id: "1234",

                        title: "Chat Notification",

                        body: "You have a new chat notification",

                        icon: {},

                        ignorePageVisibility: true,

                        onClick: Ext.emptyFn,

                        onClose: Ext.emptyFn,

                        onError: Ext.emptyFn,

                        onShow: "Sample",

                        timeout: 5000,

                        scope: this

                    };

                     

                    DesktopPopupNotification.showNotification(createConfig);

                    }

This doesnt seem to throw a notification

 

Thanks in advance

Shivani Lakshman,

The reason why it's not showing is likely because it doesn't have an icon defined. The DesktopPopupNotification module validates the config, if it doesn't have an icon defined, it exits out and doesn't show the notification (if you're in debug mode it shows this reason in the console, but that will only show if in debug mode)

If you want to add an icon to the images of your schema, let's say it has a name of UsrIcon, you can show it in the notification by adding this for the icon part of the config:

Terrasoft.ImageUrlBuilder.getUrl(this.get("Resources.Images.UsrIcon"))

Ryan

Shivani Lakshman,

In case you're still looking at this and having issues, I've written up the details for using the DesktopPopupNotification module here: 

https://customerfx.com/article/how-to-display-browser-popup-notificatio…

Ryan

Is there a Freedom UI way to do this? Some of those params would only work on Classic UI pages, such as how you would specify the icon for the notification.

It looks like this functionality broadly still works on Freedom UI pages, the only bit I haven’t yet figured out is how to reference images uploaded to the page schema for the icon. For onClick, an arrow function can be used (e.g. onClick: () => { console.log(“notification clicked”); } ) and therefore the scope isn’t required to be passed, since arrow functions establish `this` based on the scope where they are defined and variables like the `request` are available within the arrow function.

 

There did seem to be some weirdness in the behaviour of the Windows notification at least – while it showed and played the sound and could be clicked, it would quickly disappear from the notification centre as soon as the popup notification had finished (but not been clicked) so users would have to click the popup in the short time it was showing if they needed something to happen when clicking it. Maybe there’s a better way to call these notifications in Freedom UI though?

Harvey Adcock,

As Ryan mentioned a bit earlier, the only way to work with notifications in Freedom UI with the help of JS is DesktopPopupNotification. 
I've decided to override the Accounts_FormPage to get the notification on any Account page opening with the possibility of clicking on this notification. Here is an example:

 

		define("Accounts_FormPage", /**SCHEMA_DEPS*/["DesktopPopupNotification", "Accounts_FormPageResources"]/**SCHEMA_DEPS*/, 
	   function/**SCHEMA_ARGS*/(DesktopPopupNotification, resources)/**SCHEMA_ARGS*/ {
 
......................
 
	   handlers: /**SCHEMA_HANDLERS*/[
			{
				request: "crt.HandleViewModelInitRequest",
				handler: async (request, next) => {
					await next?.handle(request);
					const img = Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.TheImageName);
					var config = {
						id: 123456,
						title: "Test notification",
						body: "This is a test notification",
						icon: img,
						onClick: DesktopPopupNotification.getIsSupported,
						ignorePageVisibility: true,
						timeout: 10000,
						scope: this
					};
					DesktopPopupNotification.showNotification(config);
				}
			}
		]/**SCHEMA_HANDLERS*/,

 

P.S. You can choose only public methods from DesktopPopupNotification (I've used getIsSupported)

Anhelina,

 

I can see that it's possible to use arrow function notation to run any code you want, for example I can open a specific page by doing the following in the onClick property:

{
	request: "Usr.TriggerNotification",
	handler: async (request, next) => {
		var config = {
			id: 123456,
			title: "New lead",
			body: "click here to open the task",
			icon: "https://www.creatio.com/sites/default/files/marketing/logo_creatio.svg",
			onClick: () => {
				const handlerChain = sdk.HandlerChainService.instance;
				handlerChain.process({
					type: "crt.UpdateRecordRequest",
					entityName: "Lead",
					$context: request.$context,
					recordId: "ec8a7868-7e4a-40cd-ac32-9c53ee459c07"
				});
			},
			ignorePageVisibility: true,
			timeout: 100000,
			scope: this
		};
 
		desktopNotify.showNotification(config);
	}
}

 

The main limitation I see currently with the DesktopPopupNotification is that the notification doesn't persist in the desktop's notification centre - it dissappears after around 8-10 seconds (regardless of what time is specified in the timeout, whether it's set to 0 or whether the property is omitted entirely). Maybe there's some property I haven't seen that makes the desktop notification persist?

It seems my above comment may have been resolved in 8.1.3 or 8.1.2, as now I can generate notifications that never disappear from the Windows notification centre using a timeout value of -1, and other timeout values also work as expected. If the property is omitted or set to 0, it defaults to around 7 seconds.

Show all comments

Hi all,

 

When I add a template to be used in bulk email from 'Email templates' section, upon saving, I am receiving this error:

"The 'Static' replica's template size exceeds the limit" which described as "The template can not be added to the bulk email, it’s (2.69 MB) more than maximum allowed size (5 MB). Edit the template or select the other one."

 

Any guess what might cause this issue?

Like 0

Like

1 comments
Best reply

Dear Kavian,



It seems that the template could not be saved due to its total amount. The total amount of the template includes the template itself, the added pictures and the text.



To resolve the issue, you can compress the pictures or indicate them with a link. We can recommend the following online file compression services:

https://www.cloudpresso.com/

https://www.clipcompress.com/



In addition, if the online file compression services don`t work for you, you may take a screenshot of the picture, upload it to the cloud, and specify the resulting link in the appropriate field.



We are sorry to say but unfortunately, there is no way to view the total template weight in the application as of now. There is a task registered for our R&D team to resolve this issue in the future.

 

Thank you for your question!

 

Sincerely,

Danyil

Dear Kavian,



It seems that the template could not be saved due to its total amount. The total amount of the template includes the template itself, the added pictures and the text.



To resolve the issue, you can compress the pictures or indicate them with a link. We can recommend the following online file compression services:

https://www.cloudpresso.com/

https://www.clipcompress.com/



In addition, if the online file compression services don`t work for you, you may take a screenshot of the picture, upload it to the cloud, and specify the resulting link in the appropriate field.



We are sorry to say but unfortunately, there is no way to view the total template weight in the application as of now. There is a task registered for our R&D team to resolve this issue in the future.

 

Thank you for your question!

 

Sincerely,

Danyil

Show all comments

Dear team,

I have a SysUserSession table as a detail view. The usecase is that when a time zone lookup is changed, the SessionStartDate and SessionEndDate should change values to the selected time zone.

 

Is there a way to manipulate the data on UI level?

 

Thanks in Advance

 

Like 0

Like

1 comments

Dear Shivani,

 

All data in the database is stored in UTC format and it is displayed in UI according to the time zone specified in the user profile.

DataService is responsible for the automatic conversion of all dates to the user's timezone so you can use it for your tasks. 

 

Best regards,

Angela

Show all comments

Hi Team,

 

https://academy.creatio.com/docs/node/1433

I used the above article to get access to communication panel schema and made changes to 

 

diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "insert",

                    "name": "communicationPanelAll",

                    "propertyName": "items",

                    "values": {

                        "id": "communicationPanelAll",

                        "selectors": {"wrapEl": "#communicationPanelAll"},

                        "itemType": Terrasoft.ViewItemType.CONTAINER,

                        "wrapClass": ["all"],

                        "items": [],

                        "tips": [],

                        "markerValue": {"bindTo": "CommunicationPanelMarkerValue"}

                    }

                },

 

used  "operation": "remove" instead of  "operation": "insert",

 

Was able to hide the communication panel but when tried to revert back changes unable to do so 

Some please suggest a way to revert back changes or hide this communication panel in an easy way so reverting changes is easy 

 

 

Thank You

 

Like 0

Like

8 comments

Dear Braj,

 

If removing the code does not restore the panel try to clear your profile data by going into the profile and choosing the "Restore default settings" option. 

 

Best regards,

Angela

Angela Reyes,

 Thank You for this info but as i tried it on my local instance and my client asked us to hide the communication panel so please suggest any work around to do and an easy way to restore it

 

Braj Raj singh Kushwaha,

It is now not clear what your task is. The panel must be hidden forever or on specific conditions?

Angela Reyes,

The panel should be hidden forever.

In case we need it again then we should be able to make it visible as it was before.

 

And by using the above article I was able to hide it but when I tried to make it visible it was still hidden

 

Braj Raj singh Kushwaha,

Can you send here the code you used to make it visible? 

Angela Reyes,

diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "remove",

                    "name": "communicationPanelAll",

                    "propertyName": "items",

                    "values": {

                        "id": "communicationPanelAll",

                        "selectors": {"wrapEl": "#communicationPanelAll"},

                        "itemType": Terrasoft.ViewItemType.CONTAINER,

                        "wrapClass": ["all"],

                        "items": [],

                        "tips": [],

                        "markerValue": {"bindTo": "CommunicationPanelMarkerValue"}

                    }

                },

Above code to hide

 

This code to unhide it or make it visible

 

diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "insert",

                    "name": "communicationPanelAll",

                    "propertyName": "items",

                    "values": {

                        "id": "communicationPanelAll",

                        "selectors": {"wrapEl": "#communicationPanelAll"},

                        "itemType": Terrasoft.ViewItemType.CONTAINER,

                        "wrapClass": ["all"],

                        "items": [],

                        "tips": [],

                        "markerValue": {"bindTo": "CommunicationPanelMarkerValue"}

                    }

                },

 

 

Just made changes to this part only

 

Braj Raj singh Kushwaha,

There is an easier way to hide the CTI panel. Please create a replacing view model for "Communication panel schema":

with the medhod like this one:

init: function() {
					return false;
					}

As a result once the changes are saved and the page is refreshed the communication panel won't be initialized:

To restore the panel please remove all your customizations related to CommunicationPanel and add them according to my instruction.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar,

 

As I tried your approach it is working fine thank you very much 

But to restore the panel I removed all customization and refreshed the whole site, Restored the default setting from the user profile still panel was not restored.

 

Please let me know how to restore it.

 

Thank You

 

Show all comments

Hi Team,

 

I want to remove links that redirect to creatio academy and market place.

 

Have attached a screenshot please check for reference

 

 

Thank You

Like 0

Like

2 comments

Hello,

 

Unfortunately, at the moment there is no possibility to change that reference by using out-of-the-box tools. We have informed our R&D department about this case so they could consider enhancing the following functionality in the upcoming releases.

 

At the same time, you can check the ProcessDashboardSchema module (in the UIv2 package) and the BaseNotification module (in the NUI package). Bound methods are defined inside the UIv2 package in the ProcessDashboardSchema module.

 

Thank you for being interested in further improvement of the Creatio application!

 

Best regards,

Roman

Thank You So much

Show all comments