Hello!

I am experiencing an issue regarding the synchronization between Creatio and Google Calendar. My Creatio Version: 8.1.1.3635

 

I have set up the synchronization between the two platforms, but I am encountering the following problem:

  • Changes made to activities in Creatio are not reflected in Google Calendar. Neither the other way around.

 

I have already tried the following troubleshooting steps:

Despite these efforts, the issue persists.

I would be grateful if you could provide any guidance or solutions to resolve this synchronization problem. Please let me know if you require any further information from me :)



Thanks!

Like 2

Like

2 comments

Hello,

 

We see that you also registered a case directly for our Support team regarding this problem and therefore we will work on it in that case.

Mira Dmitruk,

wonderful, thanks!

Show all comments

Is it possible to sort the quick filter list you get displayed with code in Freedom UI? I can see there is no way to do it through no code currently, but is there a handler that can be overridden to add sorting to the resulting list? Would be very useful in some circumstances. Maybe it will be done on the load data step using crt.LoadDataRequest in some way? Not sure what the config items that would need to be added to the request would be though.

Like 1

Like

3 comments

Hello Harvey,

 

Could you please elaborate on your business task? 

Simply, we need to sort the values displayed in the Quick Filter. In this case it's because the quick filter values correspond to periods in the client's period calendar, and we want to show them in descending order so that the current period is the first item in the list (the values selectable are the ones before the current period, so sorting by name descending would suffice, but it would definitely be useful to have a generalised way of sorting quick filter options).

Harvey,

 

Thank you for clarifying. There is no such OOTB option. However, I've registered the idea in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Show all comments

Cheers to all.

I'm developing my custom UI component in Angular and I need to get some data from Creatio database inside of my component. I discovered there is EntitySchemaQuery class in Creatio's sdk, so I decided to use it, but I'm stuck when I need to retreive data with that ESQ as I didn't find method for that. In classic ESQ there was getEntityCollection method for that. Could you please suggest how do I retrieve data from the database? Either using ESQ or other class, but user's authorization matters.

Here is the code of component.

import { Component, OnInit, Input, Output, 
        ViewEncapsulation, EventEmitter, SimpleChanges  } from '@angular/core';
import { CrtViewElement, CrtInput, CrtOutput, EntitySchemaQuery,
          ComparisonType,  AggregationType, AggregationEvalType, isGuid} from '@creatio-devkit/common';
 
@Component({
  selector: 'usr-input',
  templateUrl: './input.component.html',
  styleUrls: ['./input.component.scss'],
  encapsulation: ViewEncapsulation.ShadowDom
})
/* Add the CrtViewElement decorator to the InputComponent component. */
@CrtViewElement({
  selector: 'usr-input',
  type: 'usr.Input'
})
export class InputComponent implements OnInit {
  constructor() {}
 
  @Input("recordId")
  @CrtInput()
  /* The input recordId. */
  public recordId!: string;
 
  /* Add decorators to the EventEmitter<string>() event. */
  @Output()
  @CrtOutput()
  /* Track input value changes. */
  public valueChange = new EventEmitter<string>();
 
  ngOnInit(): void {
  }
 
 
  ngOnChanges(changes: SimpleChanges) {
    console.log(changes);
 
    if (isGuid(changes["recordId"]?.currentValue)) {
      let esq = new EntitySchemaQuery("ClvObject");
      esq.addAggregationFunctionColumn("Id", AggregationType.Count, "AppCount", AggregationEvalType.All);
      esq.filters.addSchemaColumnFilterWithParameter(ComparisonType.Equal, "ClvProject", this.recordId, "currentFilter");
 
      let record = esq.getMetadata();
      console.log(record);
    }
  }
}

 

Like 2

Like

3 comments

The EntitySchemaQuery classes in the devkit don't do anything, at least not how it is exposed. The ESQ classes require an executor class that actually *runs* the query and provides the connection. We don't have access to this, the executor that runs the ESQ is not part of the devkit sdk. This is intentional/by design since they want us to use the new Model classes instead. This better anyways, the Model class is far easier and more intuitive IMO.

The intended way to get data now is the Model class, which is in the devkit sdk. Here's some articles on the topic: 

Model Query Using Filters: https://customerfx.com/article/querying-data-using-filter-conditions-vi…

Model Query for a Single Record Given it's Id: https://customerfx.com/article/retrieving-a-record-via-the-model-class-…

Also, the model class does inserts/updates/deletes:

Inserting a Record: https://customerfx.com/article/inserting-a-record-from-client-side-code…

Updating a Record: https://customerfx.com/article/updating-a-record-from-client-side-code-…

Deleting a Record: https://customerfx.com/article/deleting-a-record-from-client-side-code-…

Copying a Record: https://customerfx.com/article/copying-a-record-from-client-side-code-u…

You can also use the Model class to get an object's schema:

Get Object Schema: https://customerfx.com/article/getting-an-object-schema-using-the-model…

Ryan

Hi, Ryan. Thanks for quick reply.

Maybe you could suggest how do I need to prepare aggregate columns for the query using Model class? I tried it as described below

  async ngOnChanges(changes: SimpleChanges) {
    console.log(changes);
 
    if (isGuid(changes["recordId"]?.currentValue)) {
      const dataModel = await Model.create("ClvObject");
      const filters = new FilterGroup();
      filters.addSchemaColumnFilterWithParameter(ComparisonType.Equal, "ClvProject", this.recordId, "currentFilter");
      const records = await dataModel.load({
//        attributes: ["Id", "ClvName", "ClvType", "ClvProject.ClvCommissioning"],
        attributes: [{ 
          aggregationConfig: {
            aggregationFunction: AggregationFunction.Count,
          },
          type: "aggregation",
          path: "Id",
          name: "AppCount",
          caption: "AppCountCaption",
          dataValueType: DataValueType.Integer
        }],
        parameters: [{
            type: ModelParameterType.Filter,
            value: filters
        }]
      });
      console.log(records);
 
    }
  }

But instead of getting one record with one column "AppCount" containig 2, I get two records each containg "Id" and "AppCount" 

Ok< I found out the way. Looks like aggregationConfig isn't yet working well and functionConfig should be used instead. Here is working exampe.

  async ngOnChanges(changes: SimpleChanges) {
    console.log(changes);
 
    if (isGuid(changes["recordId"]?.currentValue)) {
 
      const dataModel = await Model.create("ClvObject");
      const filters = new FilterGroup();
      filters.addSchemaColumnFilterWithParameter(ComparisonType.Equal, "ClvProject", this.recordId, "currentFilter");
      const records = await dataModel.load({
//        attributes: ["Id", "ClvName", "ClvType", "ClvProject.ClvCommissioning"],
        attributes: [
          { 
            type: "function",
            path: "Id",
            name: "AppCount",
            caption: "AppCountCaption",
            dataValueType: DataValueType.Integer,
            functionConfig: {
              aggregation: AggregationFunction.Count,
              type: "aggregation",
              aggregationEval: "all",
            }
          }],
          parameters: [{
              type: ModelParameterType.Filter,
              value: filters
          }
        ]
      });
      console.log(records);
 
    }
  }

And result

Show all comments

How do you add a dashboard page as a section in Freedom UI? I have an existing dashboard page which I want users to be able to access as though it were its own section, but I can't add the existing page to the workplace as it doesn't exist in the lookup window. I had a look at creating a new section in the application hub, but this will either create a new entity or have to be based over an existing entity, but this dashboard isn't based over any one particular entity and presumably doing this would create a new Section page which I didn't want. Any info on how to turn an existing page into a Section in Freedom UI?

Like 1

Like

4 comments
Best reply

Hi Pavlo, Essentially I want to create a standalone section page, so one that isn't tied to a specific entity or have to be created using the section template in the application hub.

Yes, using Freedom UI exclusively.

And the page I have created is inherited from the Homepage exactly. Is it possible to register this page as a section page?

Hi Harvey!

Please confirm, am I understanding correctly that you want to replace the section ListPage with your own page containing dashboards?

Is your dashboard page implemented in FreedomUI?

Which page does this page inherit from? Is it the Homepage?

Hi Pavlo, Essentially I want to create a standalone section page, so one that isn't tied to a specific entity or have to be created using the section template in the application hub.

Yes, using Freedom UI exclusively.

And the page I have created is inherited from the Homepage exactly. Is it possible to register this page as a section page?

Hi,

 

In general, there isn't a built-in feature for this. However, for such usage, we have the option to set a Homepage for the workplace. You can set this page instead of the current one.

 

But if you need two of your dashboard pages to be on the same workplace and displayed as a section, you can create a new section in the Freedom UI and replace its SectionSchemaUId with the UId of your dashboard page schema.



update "SysModule" set "SectionSchemaUId" = 'UId of dashboard schema module' where "Id" =  'Id of the section you want to open with the dashboard'

 

For example, I successfully set the SalesEnterpriseHomePage to open from the test section.



Hope this helps!

Thanks Pavlo, we already have a page being used as the Home page of the workplace the additional dashboard needs to reside in, so we had to do the database editing you suggested to get it to work, which it now does - thank you! This would be a very useful option to be able to do without custom SQL, no code being the aim of Creatio config going forward!

Show all comments

How can you set the default values created for an Activity when clicking on the Calendar in Freedom UI? I can't see anything in the OOTB code for calendar setup that would pass default values into the calendar activity creation process, but presume there must be some JSON parameters that could be set to specify things like the Activity Type/Category for example. Any help appreciated.

Like 3

Like

3 comments

Hello,

Unfortunately, this logic is hardcoded and cannot be changed at the moment. We have raised an improvement for the development team to make it possible to configure the default Category for this element in future releases.

Thank you for reaching out!

Thanks Pavlo, so no properties in the JSON can be set for this currently at all then? And no overriding of any of the schema handlers would enable setting them either? We currently have a fair amount of handler code, so wouldn't be too worried about adding some more in for now until this is possible in no code.

Unfortunately, it is not possible to change this logic for this scheme at the moment, even using such handlers.

Show all comments

How do you set a specific user's Time Zone without logging in as that user? You can modify your own Time Zone in the Profile section, but I don't think you can access this page for users other than your own, and the user's Time Zone isn't shown in the OOTB User card, so I can't see how an admin could set the Time Zone for a specific user. Anybody know how this could be done?

Like 0

Like

2 comments

Hello,

 

The user's timezone is stored in the SysAdminUnit table, in the TimeZoneId column. However, please note that values in this column are stored not as references to time zones from the directory, but as Time Zone Codes.

You can verify the code in the "Time zones" lookup.

So, you can change this value for any user without logging in with a script in the database:

 

update "SysAdminUnit" set "TimeZoneId" = 'GMT Standard Time' where "Id" = '***User's Id***'

Thank you for reaching out.

Thanks Pavlo, in the end we added the Timezone field to the System user page (UserPageV2) so that we can change the timezone of users without executing SQL. For others wanting to do the same, we used the following code for the user page replacing schema:

define("UserPageV2", ["UserPageV2Resources"],
	function() {
		return {
			entitySchemaName: "VwSysAdminUnit",
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "TimeZone",
					"parentName": "Header",
					"propertyName": "items",
					"values": {
						"dataValueType": Terrasoft.DataValueType.ENUM,
						"value": {"bindTo": "TimeZone"},
						"layout": {"column": 13, "row": 2, "colSpan": 8}
					}
				}
			]/**SCHEMA_DIFF*/,
			attributes: {
				/**
				 * Time zone.
				 */
				"TimeZone": {
					dataValueType: Terrasoft.DataValueType.LOOKUP
				}
			}
		};
	}
);

 

Show all comments

In a Business Process, we are calling a Web Service using the Web Service Call element, but sometimes we will get a failure that we need to log to a custom table for action later. We really could do with as much information about the failure as possible, including being able to log out the parameters that the Web Service was passed so the support users can assess what happened without having to have trace logging turned on for the BP and digging into the BP log as well. I can't see any output on the web service call for that, but maybe someone else has found a way to get this info?

Like 2

Like

2 comments

Hi Harvey, we have similar needs, but no result, unfortunately. 

So, we log all parameters manualy before calling web service :(

Hello Harvey,



If you want to see the body of the request generated by the web service and the response that comes from the server - You can try to use Telerik Fiddler tool to capture requests that are being sent from the Creatio instance

 

But this advice is relevant only for local environments.

If the environment is on a local machine, you can connect Fiddler and test it.

 

In general, if you do not want to use data tracing for a process, we believe that this goal can be achieved through development. For example, a web service call will be made using a script task, in which you will process various responses from the server and write the information you need into a table using C# code.



Thank you.

Show all comments

Hello, 

Are the instructions below still apply to add a edit page to a lookup or is there an easy way to do this on Freedom UI version 8.1.1?

 

Adding lookup with edit page | Community Creatio

 

Thanks,

Jose

Like 0

Like

1 comments
Best reply

It is still the same since the Lookups area is still classic UI.

Also, BTW I have the instructions with Postgresql instructions here, if interested/needed: https://customerfx.com/article/creating-an-edit-page-for-a-lookup-in-cr…

It is still the same since the Lookups area is still classic UI.

Also, BTW I have the instructions with Postgresql instructions here, if interested/needed: https://customerfx.com/article/creating-an-edit-page-for-a-lookup-in-cr…

Show all comments

Is it possible to specify an extra column or 2 to be used for searching against when typing text into a combobox in Freedom UI? The use case is that users can select an Account in the ComboBox lookup, but should be able to search in that dropdown combobox using either the account's Name, or its Account Number.

 

I know it's possible to do this by opening up the modal lookup window when that's configured, but to save some clicks ideally it would be possible to just type/paste into the combobox to achieve this behaviour.

Like 1

Like

1 comments

Hello Harvey,

 

It's not possible for now, but we've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Show all comments

Hello,



Can anyone tell me How to merge duplicate contact records in freedom UI.

I tried using the classic UI but  can't find any duplicate rule or show duplicates in the action button



Thanks in advance.

Like 0

Like

3 comments

Hello,



To find duplicates in Freedom UI, you need to go to System Designer, then select Setup duplicates rules.



There you will be able to perform all the actions you need.

Malika,

Hi ,

Setup duplicates rules is not sowing under System setup. Is it due to the latest version??



Abhishek,

Is this a cloud or local system?

If it's local, you probably need to set up the deduplication components first to have it available.

Show all comments