Sales_Creatio
8.0

There is a function to create a month and day field from a date but there does not seem an option to create a year field from a date. Does anyone know the best way to achieve this?

Like 0

Like

3 comments

Hello,

You should use construction like dateTimeTest.Year.ToString() to get the year from your date\time (if we are discussing server-side logic). Something like (in Visual Studio):

DateTime dateTimeTest = DateTime.Now;
string yearPart = dateTimeTest.Year.ToString();
Console.WriteLine(yearPart);
Console.ReadKey();

The output is:

In business process (script-task or process methods) the approach is the same, but you need to put the "yearPart" string into some text parameter of the process to use it further.

If we are interested in the client-side logic then you need to use the getFullYear method (described here https://www.w3schools.com/jsref/jsref_getfullyear.asp).

Thank you for this solution Mira!

I used the same technique with the Low Code settings to achieve the same result. I parsed the current year from the current date to use as a parameter in the process. Very helpful.

Susan Samara,

Hi Susan,

 

I'm use the following approach

 

[#System variable.Current Date#].ToString("yyyy")

 

If you need the result as integer, can use:

 

Convert.ToInt32([#System variable.Current Date#].ToString("yyyy"))
Show all comments
Sales_Creatio
8.0

Hello,

 

What does the "ProcessElementId" under an Activity-record in the database refer to? I will attach a picture from our database.

 

In essence, we are trying to create tasks through Odata-API that are tied to a specific case stage. But all tasks we create show up on all stages of the opportunity which we dont want. The only difference between tasks we create from Odata and tasks created through the case stage setup seems to be that the ProcessElementId-value is filled in. 

 

Can anyone tell what purpose this value serves and how we could case stage-dependent tasks?

Like 0

Like

1 comments

Hello, 

The field ProcessElementId refers to a record in the SysProcessElementData table. This table contains information about all the running elements in business processes. The value ProcessElementId represents the ID of the element that created this specific activity.

Show all comments
dataimport
notifications
classicUI
Sales_Creatio
8.0

Hi community, 



Regarding data import, how does the system recognize and track data imports into specific objects? 

For instance, when I click on the link ("Open imported records") provided in the data import notification, I wanted to know how the system knows which object it's associated with and in which object/table is that information being stored?





Thanks in advance

Regards,

Goparna Nasina

Like 0

Like

4 comments
Best reply

It tags the records. Each record imported has a tag added of the date time of the import. When you click that link from the notification it opens the section and sets a filter for that specific tag.

Ryan

It tags the records. Each record imported has a tag added of the date time of the import. When you click that link from the notification it opens the section and sets a filter for that specific tag.

Ryan

Ryan Farley,

 

Thank you Ryan.

I wanted to send a notification when data is imported in a particular object. As you stated above "when we click on notification it opens the section", how can I get that section details or which table in database is the section id stored for that particular import?



Thanks in advance 

Goparna Nasina

Goparna Nasina,

 

The information is stored in the ObjectNameInTag table.

For example in AccontInTagTable.

Bogdan,

 

Thanks Bogdan

Show all comments
Sales_Creatio
8.0

I am trying to add a detail to a section and link on a lookup field. I select the detail column lookup but the only option I have on the 'equals to page column' is the Id (and not the corresponding lookup). The strange thing is that it allow me to do this on another lookup field. See attached example. I cannot really work out why as it is effectively trying to do the same thing. I have checked that both the page and the detail are using the same lookup. Grateful for any help here.

File attachments
Like 0

Like

3 comments

Hello,

 

The issue is that the 'Databowl Lookup' object did not have the 'Databowl ID' field, unlike the 'DB Campaign ID' and 'Databowl' objects. In the 'Equals to page column' field, you can select columns that exist in both the detail object and the object where this detail is placed.

For user convenience, when creating a detail, this field is automatically filled as 'ID.'

Additionally, you can read about creating and configuring details in the academy.

Sergii Zhmurko,

Thanks for your reply, however both objects do have that column. They are identical in name and also the lookup that they point too. Unless I have misunderstood your reply I am not sure that is the issue

Hi, If the issue continues to occur in this case, please contact Creatio support (support@creatio.com) for a more detailed analysis. Also, to proceed with the analysis, we will need access to the website.

Show all comments
Hyperlink
Sales_Creatio
8.0

Hi Guys,

How to make mobile phone number hyperlink on the section page? I have made it hyperlink on the record page using below code and it is working fine.

 

{

                "operation": "insert",

                "name": "STRING1f27bc1d-c936-4310-96b7-9d648cf0459e",

                "values": {

                    "layout": {

                        "colSpan": 12,

                        "rowSpan": 1,

                        "column": 12,

                        "row": 2,

                        "layoutName": "Header"

                    },

                    "bindTo": "SMPhone",

                    "enabled": false,

                    "showValueAsLink": true,

                    "href": {

                        "bindTo": "SMPhone",

                        "bindConfig": {

                            converter: "getLinkValue"

                        }

                    },

                    "linkclick": {

                        "bindTo": "onCallClick"

                    },

                    "controlConfig": {

                        "autocomplete": Terrasoft.generateGUID(),

                    }

                },

 

 

 

Like 0

Like

1 comments

Hello!

 

How is it possible to configure Contact compact profile (for example, I want to remove birthdate and age)

Like 1

Like

1 comments

Hello,

 

The component behavior is pre-configured and non-editable.

 

However, we registered the idea 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
Validation
DCM
Sales_Creatio
8.0

Hi all,

How to do a validation on the entries when the user clicks the DCM to change status?

If the validation fails, the DCM will remain in the current status.

The business process only checks after an update which is not ideal for validation checking.

Like 1

Like

7 comments

Hi David

 

We've worked around this by creating buttons that trigger processes.

Inside the process the checks are run, and then the state is changed.

 

Rgds,

Luis

Hello,

 

Could you please describe your business task in more detail so we could better understand how exactly you need the system to work?

To accomplish this we store the stage in an attribute and then can revert back if needed. I have an example of this here https://customerfx.com/article/how-to-prevent-users-from-moving-a-case-…

Ryan

Luis Tinoco Azevedo,

Hi Luis,

 

I have thought about this.

However, how to implement this concept if the DCM has many stages?

Do we need to create a button for every stage?

 

David

Ryan Farley,

Hi Ryan,

 

Thank you for the article.

The approach in the article is very neat. It might be the suitable solution to my problem.

I love the articles from customerfx.com.

 

Thanks again.

 

David.

 

Mira Dmitruk,

Hi Mira,

 

Assume the screen below, on a certain condition the "Sales order service" should not be empty before entering the "In progress" status. However, I couldn't set the "required" attribute on the field from the business rule, because the condition is a bit complex.

In this case I need a validator before the status changes to "In progress".

 

David

Creatio has long needed the ability to add data validation steps in the DCM processes, it's always a pain & feels quite hacky, and it is a very common requirement.

Show all comments
formulas
Sales_Creatio
8.0

Does anyone know a way of using an exponential value in a formula in a business process? The C# forums say to use Math.Pow(base number, exponent number) but I get an error that "No applicable method "Pow" exists in type "Math" when using that in a business process formula. 

 

The use case is that there's a a 2% annual escalator based on the warranty years of a certain product. So the formula would be (base price)*1.02^(years of warranty)

Like 0

Like

1 comments

 

Hello Andriana,

In order to use the static “Math” class in C# code you should add the “System” namespace to the file:

using System;

If the issue still exists, please provide us with a source code of the module and the error message. It will help us to analyze the issue in more details.

Additionally, please find more information about the “Math” class in the article by the link below:

https://learn.microsoft.com/en-us/dotnet/api/system.math?view=net-7.0 

Best regards, Anhelina!

Show all comments
mobile application
CreatioMobile
Sales_Creatio
8.0

Hi Team,

 

The query is related to viewing records in the mobile application. By default, when we open a section in the Creatio mobile app, the listing page is empty, with a note to search for specific conditions to display records.

 

 

Is there an option to set a default folder from the already available saved folders for the section in the web app to be used as the default folder/condition for listing records as soon as the section is opened in the mobile application? Later, if users wish to change the filter, they can do so by selecting a different folder instead of viewing empty records in the list. For example, is it possible to display records for which the user has access? How can this be achieved? Are there any code samples available if code needs to be written, and if it's a configuration, how can we configure it for the mobile app?"

 

Thanks for the help in advance!

 

Regards,

Mayan

Like 0

Like

4 comments

Hello,

 

Please feel free to use the resolution from this article:  https://community.creatio.com/articles/setting-filter-mobile-application

Also, in case you want the assignee to be "current user" you may be interested in this answer: https://community.creatio.com/questions/get-current-user-contact-mobile

 

Thanks Bogdan,

 

If I log in to an instance as a regular user and not as a supervisor in web isntancce, by default, it lists all the records in a section for which the user has access, irrespective of whether they are the owner or assignee. This happens because the user has access, and the user's name is not available in any of the fields in the record, such as the owner field or assignee field. The record is shown because the user has access to it.

 

The same functionality needs to be achieved in the mobile app. However, here, we need to add a filter condition. For the scenario described above, we need to specify a reference field. If we set the owner field to the current user, it will list only the records where the user's name is linked to the owner field. But what about the records that the user has access to but does not own? How do we achieve this in the mobile application?

Thanks Bogdan, but can you help for the below scenario:

 

If I log in to an instance as a regular user and not as a supervisor, by default, it lists all the records in a section for which the user has access, irrespective of whether they are the owner or assignee. This happens because the user has access, and the user's name is not available in any of the fields in the record, such as the owner field or assignee field. The record is shown because the user has access to it.

 

The same functionality needs to be achieved in the mobile app. However, here, we need to add a filter condition. For the scenario described above, we need to specify a reference field. If we set the owner field to the current user, it will list only the records where the user's name is linked to the owner field. But what about the records that the user has access to but does not own? How do we achieve this in the mobile application?

 

Regards,

Mayan

Hello Mayan,

You can use this method to display all data:

Enter link [NameOfYourWebSite] .creatio.com/0/Features, search for UseMobileSearchOnlyInSections on this page. Uncheck all the boxes as you see in the image:

At this stage you can see all records in the mobile app.

Next you can use an article from Bogdan’s link to add filters if needed. Also I can recommend you one No-code way of filtering:

  1. System designer -> Mobile application wizard -> Needed workplace
  2. Find needed page (for example Order) and set the default filter. It will be impossible to get data in a mobile app which does not match the criteria of this filter

Best regards, Anhelina!

Show all comments
FreedomUI
JS
module
Sales_Creatio
8.0

Hello,

i made a module, in freedom-ui mode, to display custom content in Accounts_FormPage. The module init is triggered with crt.HandleViewModelInitRequest handler.



here is the useful module code :

/* AMD module declaration. */
// jshint esversion: 11
define("UsrAccountHistoriqueProduit", ["@creatio-devkit/common"], function(sdk) {
    //
    return {
        //**--------------------------------- Init module -------------------------------**/
        onInitialized: async function($context) {
            const idAccount = await $context.Id;
            const my = this;
            
            /* Declare the class. */
            class UsrAccountHistoriqueProduit extends HTMLElement  {
                constructor(args) {
                    super();
                    this.displaycontent();
                }
                async displaycontent() {
                    var shadowDom = this.attachShadow({mode: 'open'});
                    shadowDom.innerHTML = "";
                    
                    const html = await my.statsOrderProduct(idAccount);
                    shadowDom.innerHTML = html;        
                }
            }

            /* Register the component. */
            customElements.define('usr-historiqueproduit-view-element', UsrAccountHistoriqueProduit);

            /* Register the web component as a view element. */
            sdk.registerViewElement({
                type: 'usr.CustomViewElement',
                selector: 'usr-historiqueproduit-view-element'
            });

        },
...

It works fine at load of the page, then when viewing a second account, i have this error message : 

ERROR DOMException: Failed to execute 'define' on 'CustomElementRegistry':
the name "usr-historiqueproduit-view-element" has already been used with this registry



i think i can clean up the registered viewElement with the crt.HandleViewModelDestroyRequest handler, but i did not found cleaning method in the sdk objet.

 

How should it be done please ?

 

best regards,

Patrice

Like 0

Like

2 comments
Best reply

Hi Patrice,

 

This error message occurs since the element with "usr-historiqueproduit-view-element" selector was already registered upon first init:

sdk.registerViewElement({
                type: 'usr.CustomViewElement',
                selector: 'usr-historiqueproduit-view-element'
            });

In your onEnityInitialized you need to add additional check if the element was registered in DOM or not (for example as proposed here) and as a result of this check perform registration or not.

Hi Patrice,

 

This error message occurs since the element with "usr-historiqueproduit-view-element" selector was already registered upon first init:

sdk.registerViewElement({
                type: 'usr.CustomViewElement',
                selector: 'usr-historiqueproduit-view-element'
            });

In your onEnityInitialized you need to add additional check if the element was registered in DOM or not (for example as proposed here) and as a result of this check perform registration or not.

Thanks Oleg,

i was not aware of the CustomElementRegistry api, i thaught it was a Creatio thing.

Now i know where the documentation is ! (mozilla.org)

 

Best regards,

Patrice

Show all comments