Hi all,

I have created a process to modify date into a column (Last Action Date). But when this column is empty it has value of 01/01/0001 instead of 0. Which messed another calculation depended on this column. Making the result 700,000 days which is exactly 01/01/2024 minus 01/01/0001.

 

Could anyone please help me with me this?


(Last Action Date with Empty Value causing conflick result in another calculation.)


(I used to make dialog box to check whether my calculation is correct so we suspect it might relate to to this.)

Like 1

Like

2 comments
Best reply

Hello!

 

"Date/Time", "Date" and "Time" data types in Creatio objects are represented in C# as "DateTime" struct. This struct's value defaults to "1/1/0001 12:00:00 AM" (reflected in "DateTime.MinValue" property of struct).


When you are working with columns in business-process designer in Creatio you are literally working with C#. That's why you can use formula (which is C# one-line code) in most of places where you work with columns or parameters in business-processes. Check https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/business-process-setup/process-formulas for more details.


I guess all you need to do is add condition in your calculations that replaces value with 0 if column is empty. It could be something like "if [YourCoumnResult] == DateTime.MinValue ? 0 : [YourCoumnResult]" in your calculations (ternary conditional operator for one-line code). This is just an example, I don't know how you calculate so can't provide related example.

If you can send screenshot of your calculation or describe more precisely how you do it I can help with realizing condition.

Hello!

 

"Date/Time", "Date" and "Time" data types in Creatio objects are represented in C# as "DateTime" struct. This struct's value defaults to "1/1/0001 12:00:00 AM" (reflected in "DateTime.MinValue" property of struct).


When you are working with columns in business-process designer in Creatio you are literally working with C#. That's why you can use formula (which is C# one-line code) in most of places where you work with columns or parameters in business-processes. Check https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/business-process-setup/process-formulas for more details.


I guess all you need to do is add condition in your calculations that replaces value with 0 if column is empty. It could be something like "if [YourCoumnResult] == DateTime.MinValue ? 0 : [YourCoumnResult]" in your calculations (ternary conditional operator for one-line code). This is just an example, I don't know how you calculate so can't provide related example.

If you can send screenshot of your calculation or describe more precisely how you do it I can help with realizing condition.

Khassan Khakak,


Hi, thanks for your reply, I resolved the issue by applying the solution that you provided!

 

Good day.

Show all comments

Hi Community,

 

We have this business requirement, where we need to add a "Quick Complete" button to the NextStep line. Similar to what this marketplace app have, but for FreedomUI.

 

https://marketplace.creatio.com/app/quick-complete-order-activities-creatio

 

We want to add the button next to the "Complete" one.

 

 

How can we achieve such business requirement? What do we need to change?

 

Thank you in advance.

 

Best Regards,

Pedro Pinheiro

Like 1

Like

1 comments

Hello,
 

Unfortunately, at the moment, the Message-composer element is not customizable from the inside using no-code/low-code tools.
 

Currently, we do not have a ready-made instruction for adding such a button. However, we have created a task for the responsible team to either create such an instruction or add no-code tools for adding custom buttons to the element.
 

Thank you for helping make our product better!

Show all comments
Question

Hi All, 

 

I have this code - 

But I am getting this error - 

Error: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

 

I checked in the database and yes there are Null values stored in the columns, how can I keep null as well.

 

Thanks

 

Like 0

Like

1 comments

Hello.
Thank you for your question.

Please provide more details on the issue you've faced. Where exactly the issue occurs (custom webservice, business process etc.), which database type is used in your local installation (MS SQL, PostgreSQL or Oracle), which value is stored in the database record in the specific column of DateTime type, which is the column settings in the database (which type is used?), what is the error message in the Error.log?

It is very unclear how you are getting that exception but this article might be handy.

I am eager to receive your answer! 

Show all comments

Hello Community,

I recently installed Creatio 8.0.9 ( Creatio8Atlas). And changed the language into Russian but some parts ( especially actions section and new folder function) remaining unchanged. 

I would appreciate it, if you can tell me how to fix this? 
Best,
Xojiakbar

Like 0

Like

2 comments

Hello,

As we can see, only a few sections are not translated, so you can use the Translations section to translate individual parts of the interface.
https://academy.creatio.com/docs/8.x/no-code-customization/customizatio…

Thank you Antonii for your help. I fixed it. The reason was old browser caches from installations I did in the past. I cleared the browser cache and it worked.

Show all comments

Hi Everyone, 

 

How can I set the Approved On (Date field) with current date and Approved by (Lookup on contact) with current user when Approval status = Approved. in Freedom UI.

 

Thanks in Advance.

Like 1

Like

1 comments

Good day, 

You can use business processes for this purpose.

You can receive a signal on change of the status of the Approval
Receive signal
after which you can read the details of the said approval
Read details
and modify the approver to correspond to the current user 
and the date to correspond to the current date as follows:
Modify approverModify date

 

Show all comments

Hello, 

I've 3 own pages, which are binding with my the same model. When I add some value in first page and clicked button where I set action Save data and open next page it works good also I have Business process where I can get record ID but this BP will stop. 

But now I'm entering next information on the next page and I don't know how to pass data from 2 pages to my the same BP or new BP and save it in the same record.

 

Creatio version: 8.1.2.39.42

Could you give me some advise how to resolve this issue ?

I'll appreciate any help.

Like 0

Like

1 comments

Hello,

To ensure that the process does not stop, you can use parallel branching and add a “Wait for Signal” element in the business process. In this element, you can insert your record ID and configure a signal for changes in the record. After clicking the button, the record is saved, and the signal will be triggered. You can then place a sub-process or continue the algorithm in the existing business process if you need to use the new data for further actions.


Additionally, you can merge the parallel branches into one using the signal trigger. You can plan ahead what signal this will be and configure it so that the execution logic is always correct. I have also provided an example of a business process design that might be useful to you and serve as a foundation for creating the appropriate business logic you need.



Thank you for reaching out!

Show all comments

Hi all,

 

Our need is the possibility link manually an incoming email to the a custom 'object' (a custom object developed in our project). We are not able to add this object in the OOTB panel for linking manually an email to an object (please refer to below image).

  

 

Let us know if it's feasible

 

Best Regards

 

Stefano

Like 0

Like

2 comments
Best reply

The custom section needs to have support for Activities. This basically means that it has a lookup on the Activity object and is added to the EntityConnection table. I believe the Section Wizard and also adding Freedom UI sections does this now for new sections. For older objects (or objects not exposed as sections) you can follow the steps here: https://customerfx.com/article/how-to-add-activities-to-a-custom-section-in-creatio/

Ryan

The custom section needs to have support for Activities. This basically means that it has a lookup on the Activity object and is added to the EntityConnection table. I believe the Section Wizard and also adding Freedom UI sections does this now for new sections. For older objects (or objects not exposed as sections) you can follow the steps here: https://customerfx.com/article/how-to-add-activities-to-a-custom-section-in-creatio/

Ryan

Hi Ryan,

 

Thank you very much for your suggestion. We addressed our need.

 

Best Regards

 

Stefano 

Show all comments

Hello,

 

how is it possible to implement action to create account address by geolocation in mobile app?

 

I see, that Creatio field sales can get location of check-in. So, if we use similar functionality, we have just to find address of these coordinates.

Do you have any idea how to do that?

 

Thank you!

Vladimir

Like 2

Like

4 comments

Hi Vladimir! How are you? It seems you could use for example this service from Google Maps Platform:   https://developers.google.com/maps/documentation/geocoding/requests-rev…

Uriel Nusenbaum,

Thank you for this information. Do you know, does this service require any lincense from Google?

 

Vladimir Sokolov,

You should configure an API Key follow this article: https://developers.google.com/maps/documentation/geocoding/cloud-setup and here you have the pricing information: https://mapsplatform.google.com/pricing/
You have the option to try the service and several requests per month for free.
Regards.
 

Hello Vladimir,
Thank you for your question.

After consulting with R&D team i got some information regarding your case. Mobile phones have build-in API to work with geolocation however currently it is impossible to customize our mobile application directly. Javascript also has some methods to determine user's geolocation like getCoordinates. 
So the possible workaround right now is to create service that will receive coordinates from and send them to an external service like Google Geolocation.

Hope this helps and let me know if you any question left.

Show all comments

Hi Everyone,

I need to add button in the standard list (say Contacts). On click of this button, I want to call custom web service function. Is there a way I can do that. Is there any alternative available for the same.

Thanks,
Manoj

Like 0

Like

6 comments

Hello Manoj,
Thank you for your question.

There is an article available on the Academy that covers this topic with an example.

Regarding following question: "Is there any alternative available for the same". 

It depends on what you mean here. You can call a web service from different parts of an application. For example, you can make a business process that makes a call to a web service (link).

Hope this helps, let me know if you have any question left.

Yevhenii Grytsiuk,

Hi Yevhenii,

Apologies if my previous message was unclear. I want to add a button to each row in the native list, specifically as a column, and trigger a web service call when this button is clicked to sync data from another system.


 

For example, I need to add a sync icon as a column in the Project List. When the sync button for Project 1 is clicked, it should call the web service to sync data related to Project 1 from another system. Similarly, clicking the sync button for Project 2 should sync data related to Project 2, and so on.
 

I hope this clarifies my request. Thank you!

Manoj Patil,

You can add the following to the diff of the section: 

{
	"operation": "insert",
	"name": "DataGridActiveRowSyncButton",
	"parentName": "DataGrid",
	"propertyName": "activeRowActions",
	"values": {
		"className": "Terrasoft.Button",
		"style": "green",
		"tag": "sync",
		"caption": "Sync"
	}
}

 

This will add the button. Then for handling the click, add this to the methods:

onActiveRowAction: function(buttonTag, primaryColumnValue) {
	this.callParent(arguments);
 
	if (buttonTag === "sync") {
		// do your stuff here
		// primaryColumnValue is the row's Id value
 
		// you can get other values from the row using
		var row = this.getActiveRow()
		var val = row.get("UsrSomeColumn");
	}
}

Ryan

Ryan Farley,

Hi Ryan,
 

Thank you for the details. 

This section is created via Section Wizard and it correctly appears in Application Hub. However, I do not a find a place where this code needs to be added. Please guide me on the same as I am unsure if I am missing anything here.

The Section wizard creates two client schema files. One ending in "Page" and one ending in "Schema". The one ending in "Schema" is the one you want to add this code to. To see these files you need to look at the contents of the package containing your customizations, either by opening Advanced Settings from your application in App Hub or using the Advanced Settings link in the System designer.

Ryan

Ryan Farley,

I am unable to locate the System Designer icon on the Project List Page. See below screengrab.

I went to Advanced Settings and didn't find the schema files ending with "Page" and others ending with "Schema". See below screengrab.


Therefore, I navigated to Application Hub, Navigation Sections, and Selected Project which opened Projects: Section. 

 

In the Section Pages, I selected Edit Page which opened the Section Wizard screen with Tabs Pages, Business Rules, and Source Code at the top of the screen. 

 

I clicked on the Source Code tab and pasted the code at this place but it didn't reflect the new button in the list. 

 

 

I am unsure why the System Designer icon does not appear on the Project List screen. (Could it be a Creatio Version Issue? I am using Version 8.1.3.6734)
Why schema files ending with "Page" and "Schema" are not available in the Advanced Settings. (Could it be a Creatio Version Issue? I am using Version 8.1.3.6734) 
I assume I am placing the code on the Project Detail page and not on the Project List Page.

Show all comments

Hello All, 

 

I have created code to load Custom Page. How i can add the await in Creatio Client Module function to read Object Data

 

Code Sample : 

define("UsrCustomFunction", [], async functio(){
                
       // API call Terrasoft.EntitySchemaQuery, to read the creatio table.
       var getProcessData = function(){

              var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                      rootSchemaName: "UsrGUMUProcessList"
              });

              esq.addColumn("Id");
              esq.addColumn("UsrName");


              return new Promise(function(resolve, reject) {
                     esq.getEntityCollection(function(response) {
                     if (response.success) {
                             resolve(response.collection);
                      } else {
                             reject(new Error("Failed to retrieve data: " + response.errorInfo.message));
                      }
               }, this);
             });

           }

 

             // [ Is it possible to add await or any other solution available for this? ]
             var processData = await getProcessData(); 
            
             //Process and return the Config based on the processData.
             return {
                 viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/
             };

});

 

 

Is this good solution to Create Custom Page in Creatio or any other solutions are available, then please assist me.

 

Regards,

Ajay K

 

Like 1

Like

1 comments

Hello Ajay,

Thank you for your question.

I suggest you to change your approach. You can override a default crt.HandleViewModelInitRequest  handler that is called before a page is fully rendered. There you might want to put your API call and depending on the result open a specific page. 

Here is a code snippet on how this might lookcode
In this case you also need to add @creatio-devkit/common dependency to schema dependenciescode

It is not recommended to dynamically modify entire schema configuration. Thus a better solution in your case could be binding your API call response to page element properties such as "visible" or "enabled".

Some helpful articles on the Academy: 
1. Generic handlers.
2. Open a Freedom UI page from a handler

Hope this helps and let me know if you have any questions left!
 

Show all comments