Question

Is there a way to remove from an Application field the link functionality? Some time users click here and there in the application and if the field is configured as a link they open new windows.

File attachments
Like 2

Like

2 comments

Hello,

Unfortunately, this element doesn't have such settings at the moment. However, you can display the Related object's column. For example, in the Contact section, you can add not the Account column, but the Account.Name column, as by default all displayed values of lookup fields for which there is an edit page are displayed as links.

However, using the method described above, you will be displaying only text columns.

 

I hope this helps resolve your task.

Pavlo Sokil,

Thank you very much for your suggestion. It works and we can use it. 

Best Regards

Stefano

Show all comments

Hi!

I need a custom button that will change value in a recaord and then save this record. I've tried it on a OpportunitySectionV2 with this code

 

define("OpportunitySectionV2", [], function() {
	return {
		entitySchemaName: "Opportunity",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[ 
            {
                "operation": "insert",
                "parentName": "ActionButtonsContainer",
                "propertyName": "items",
                "name": "MainContactSectionButton",
                "values": {
                    itemType: Terrasoft.ViewItemType.BUTTON,
                    caption: { bindTo: "Resources.Strings.OpenPrimaryContactButtonCaption" },
                    click: { bindTo: "onOpenPrimaryContactClick" },
                    "layout": {
                        "column": 1,
                        "row": 6,
                        "colSpan": 1
                    }
                }
            }]/**SCHEMA_DIFF*/,
		methods: {
			prepareResponseCollectionItem: function(item) {
				this.callParent(arguments);
         		if (item.get("MgtImportantFlg") === false){
					item.customStyle = Ext.apply({}, {
					  "background-color": "#cc081c",
					  "font-family": "cursive"
					}, item.customStyle);		  		
		  		}
			},
			onOpenPrimaryContactClick: function(){
				var activeRow = this.get("ActiveRow");
				var bFlag = this.get("GridData").get(activeRow).get("MgtImportantFlg");
					if(bFlag){
						this.get("GridData").get(activeRow).set("MgtImportantFlg",false);
						this.save();
					}
					else{
						this.get("GridData").get(activeRow).set("MgtImportantFlg",true);
						this.save();
					}
			}
		}
	};
});

it change the value in my field but didn`t save it, so after reload shows old value.

Could anyone help me how should i change code for my purposes?

Like 0

Like

1 comments
Best reply

Hello,

In the section module, it is better to use an UpdateQuery class to change the value of the records. You can find the example here.

Hello,

In the section module, it is better to use an UpdateQuery class to change the value of the records. You can find the example here.

Show all comments

Hi Community,

We want to change the case automatically when the value of the corresponding field for the records changes.

With current version it needs an additional confrimation from user.

Is there any coding example?

Sasori

Like 0

Like

2 comments

Hi Community,

Any update regarding this functionality?

Sasori

Hi Community,

Any update on this?

Show all comments
Question

 

Hello, previously in the CRM, there was a feature for voice input of text into multi-line text fields.

I can't seem to find this functionality in the Freedom UI. Has such functionality been retained, and if not, is there an alternative solution?

File attachments
Like 2

Like

3 comments

Good afternoon!



This option is not currently available in Freedom UI. We have already created a request for the R&D team to add this functionality and hope to see it in the next update.



Best regards,

Anton

Hi Anton,

Thanks for the update. Hope to see it in version 8.1.3 too :) Hopefully we are arriving close to the end of catching up in Freedom UI functionalities that were availble in Classic ui.

Anton Starikov,

Hope to see this feature soon. We are updating customers to Freedom and this feature was appreciated.

Do you have any timeline?

Show all comments

Hello community,

We have created a business process that opens the call edit card on an outbound call. If the phone number is associated with multiple organizations, the card opens faster than the manager selects the required organization on the CTI panel. When we select a Counterparty on the CTI, it changes the field in the call card, but these changes are not reflected in real-time in the card that was already opened by the business process. The Enable live data update checkbox for the call object is set. If other actions are performed through the BP, the changes are displayed in real time.

I would appreciate any help if someone has encountered a similar case.

Like 0

Like

1 comments

Dear Vitalii,

The thing is, the business process will only update data in real-time for the page it has already opened (data that was current at the time of opening).

In your case, you need to ensure that the card opens after selecting the necessary organization. To do this, you need to separate the conditional execution flows of the business process for phone numbers associated with one organization and for phone numbers associated with multiple organizations.

Then add an option for selecting the required organization for the corresponding flow.

Best regards,

Andrii

Show all comments

Hi Expert ,

    I am trying to use Creatio api with basic authentication . I am following below links :

    https://documenter.getpostman.com/view/10204500/SztHX5Qb#46f97170-d66d-…;

    

    NotWorking in PostMan : As per documention it's not working  in postman. Stored BPMCSRF value from Response Header Cookie of Token Request and call get api with BPMCSRF / ForceUseSession  headers key with it's value .Removed cookies from get request. Send the the get request it's giving a html response without any error details.

    

    Working in PostMan : In PostMan Send Token request then send get request (https://steuler.creatio.com/0/odata/Product?$top=1) without set any Header keys it's working fine. In this scenario i can see token request response header cookie values are sending bydefault by Postman in the get request.

    NotWorking in Consol Application : As per 2nd scenario i am trying to send a Get api request with token generate Response header cookies values but it's showing html error without any error details

    NotWorking in Consol Application : As per documentation Stored BPMCSRF value from Response Header Cookie of Token Request and call get api with BPMCSRF / ForceUseSession  headers key with it's value .But showing html error without any error details.

    i have attached my screen shots for reference.From my side any configuraration need to be changed Creation envionment for that my scenario  Can you give me any proper documents which i can follow and will be worked ?

    below is my console application code :

                // Create HttpClient

                using (HttpClient httpClient = new HttpClient())

                {

                    // Create HttpRequestMessage

                    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, @"https://steuler.creatio.com/0/odata/Product?$top=1");

                    // Set request headers

                    request.Headers.Add("Accept", "application/json");

                    request.Headers.Add("ForceUseSession", "true");

                    request.Headers.Add("BPMCSRF", "YtuvyS.WPYmW5BChY5anK.");

                    // Send the request

                    HttpResponseMessage response =  httpClient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult();

                    // Check response status

                    if (response.IsSuccessStatusCode)

                    {

                        string responseData =  response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult();

                    }

                 }

 

Thanks and Regards

Surajit Kundu

Like 0

Like

2 comments

I don't see in your code the call to authenticate. I assume that you're previously calling /ServiceModel/AuthService.svc/Login somewhere to get the BPMCSRF value? See https://documenter.getpostman.com/view/10204500/SztHX5Qb#46f97170-d66d-…

Note, the BPMCSRF value doesn't last forever, so it does need to be a recently obtained value. 

This article shows the complete steps for executing requests via Postman which might help: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

Ryan

Ryan Farley,

Hi 

      Thanks for your reply . Below is my token generation code from where i have taken cookies value for my 2nd request .Before i have not attached that token generation part as these is working fine. In postman it's working fine using Cookies based authentication.In my Console application i am sending all the Cookies (BPMLOADER, .ASPXAUTH, BPMCSRF, and UserName) as a Header Key and value in further requests to Creatio services that use cookie-based authentication but it's showing Html Error ?

 static async Task<Dictionary<string, string>> TokenGenerateDictionary()

        {

            var headerCookies = new Dictionary<string, string>();                 

                using (var client = new HttpClient())

                {

                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    using (var request = new HttpRequestMessage(HttpMethod.Post, @"https://steuler.creatio.com/ServiceModel/AuthService.svc/Login"))

                    {

                        request.Content = new StringContent($"{{\"UserName\":\"ram\",\"UserPassword\":\"abcd\"}}", Encoding.UTF8, "application/json");

                        var response = client.SendAsync(request).Result;

                        var responseString = await response.Content.ReadAsStringAsync();

                        JObject responseJson = JObject.Parse(responseString);

                        int code = (int)responseJson["Code"];

                        if (code == 0 && response.IsSuccessStatusCode)

                        {

                            foreach (string setCookieHeader in response.Headers.GetValues("set-cookie"))

                            {

                                 string[] cookies = setCookieHeader.Split(';');

                                if (cookies.Length > 0)

                                {

                                    string[] keyValue = cookies[0].Trim().Split('=');

                                    if (keyValue.Length == 2)

                                    {

                                        string key = keyValue[0];

                                        string value = keyValue[1];

                                        if (!headerCookies.Keys.Contains(key))

                                            headerCookies.Add(key, value);

                                    }

                                }

                            }

                         }

                    }

                }

            return headerCookies;

        }



Request Get Operation send cookies in Header Key :

         var tokenHeaderCookiesData = TokenGenerateDictionary().ConfigureAwait(false).GetAwaiter().GetResult(); 

         string requestUri = @"https://steuler.creatio.com/0/odata/Product?$top=1";

         using (HttpClient httpClient = new HttpClient())

                {

                    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, requestUri);

                    foreach (string key in tokenHeaderCookiesData.Keys)

                    {

                        //BPMLOADER, .ASPXAUTH, BPMCSRF, and UserName

                        if (key== "BPMLOADER" || key == ".ASPXAUTH" || key == "BPMCSRF" || key == "UserName")

                           request.Headers.Add(key, tokenHeaderCookiesData[key]);

                    }

                    HttpResponseMessage response =  httpClient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult();

                    string responseData =  response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult();

                }

   



Html Error Response with status OK:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" culture="en-US">

<head><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><meta name="fontiran.com:license" content="LAXSN" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>

    Creatio

</title>

    <style>

        .font-preload {

            position: absolute;

            opacity: 0;

        }

        .font-preload-open-sans {

            font-family: "Bpmonline Open Sans";

        }

        .font-preload-open-sans-light {

            font-family: "Bpmonline Open Sans Light";

        }

        .font-preload-open-sans-bold {

            font-family: "Bpmonline Open Sans Bold";

        }

    </style>

<script type="text/javascript" src="https://steuler.creatio.com//core/8dc3ccad339641a4ecd1ecb0b57f017d/Terr…"></script>

<script type="text/javascript" src="https://steuler.creatio.com/api/ClientScript/GenerateLoginScripts"></script>

<script type="text/javascript" src="https://steuler.creatio.com//core/057665f97324038f6c7c326b6734de6b/requ…" data-main="https://steuler.creatio.com//core/0fbfa51b1de27f89696f0f8d31da5f16/Terr…" async></script>

<script type="text/javascript"></script>

</head>

<body>

    <div class="font-preload">

        <span class="font-preload-open-sans">_</span>

        <span class="font-preload-open-sans-light">_</span>

        <span class="font-preload-open-sans-bold">_</span>

    </div>

    <form name="IndexForm" method="post" action="./NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fProduct%3f%24top%3d1&amp;%24top=1" id="IndexForm">

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="+mvmSAOrSFVSNU1VvvnnAv5lt45aMHGRIkN033uMqlv/X2Fn2421RrzZayJqLBBTzwEnVTCtLeOrFnkbGP1c32c1p4dJwgJeute2MMWvNkRY1wHA" />

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="0BFA92C5" />

    </form>

</body>

</html>

 

Thanks 

Surajit Kundu

Show all comments

How to create a new custom package in Creatio ?

I am working on the Analyst Certification

Like 0

Like

7 comments

Before creating the package set the prefix for new schemas and the package in System settings and reload the browser cache.

From the Application Hub select '+ New application', and select the Custom template.

There are a few things you need to do after creating a new package:

Set the current package system setting to the new package so that changes are saved to the new package.

See also Useful changes to make in any new development system for Creatio (formerly bpm’online) | Customer FX

Set your password in System users.

Set time zone and culture information in your profile.

 

 

 

Thanks, I will go through the steps and let you know.

 

Hello,

 

We recommend you take a look at the article below:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

There you will find the whole process of creating the custom package.

Whoahh!! Many thanks!

 

Gareth Osler,

Before creating the package set the prefix for new schemas and the package in System settings and reload the browser cache. I do not see it in "System Settings"...

Hello Gareth, I cannot find this "System setting-prefix for new schemas"

André Thouin,

In system settings search for:

Prefix for schemas and packages name

SchemaNamePrefix

Show all comments

Hello,

today i did a process publishing on our test instance (version 8.1.2.3914),

an error showed up after that :

[{"Line":98,"Column":91,
"ErrorNumber":"CS0618",
"ErrorText":"'SecureActivityEmailSender' is obsolete: 'Use SecureActivityEmailSenderBase class. The current class is left for backward compatibility'",
"IsWarning":true,
"FileName":"D:\\App\\*****\\Terrasoft.WebApp\\Terrasoft.Configuration\\Autogenerated\\Src\\ActivityEmailMessagePublisher.EmailMessagePublisher.cs"},
{"Line":28,
"Column":92,
"ErrorNumber":"CS0618",
"ErrorText":"'SecureActivityEmailSender' is obsolete: 'Use SecureActivityEmailSenderBase class. The current class is left for backward compatibility'",
"IsWarning":true,"FileName":"D:\\App\\******\\Terrasoft.WebApp\\Terrasoft.Configuration\\Autogenerated\\Src\\EmailSendService.CrtNUI.cs"}]

The error is about EmailSendService and i'm surprised as my process do not send any email..

 

Should i worry about this ?

 

Regards,

Patrice

 

Like 0

Like

2 comments
Best reply

Hello Patrice,

 

The message you have received is not an error but a warning about the method's obsolescence (it means that the method will be removed in future versions). This warning appeared as a result of the schemas' compilation, which started because of publishing the process. However, for the current version of the application, these warnings do not pose any threat, and the compilation can be considered successful.

 

The "SecureActivityEmailSender" method is used for generating a token when sending an email. Inspite of the fact that you didn't use it in the specific process, the warning might be triggered by the other schemas that were affected during the compilation process.

 

Best regards,

Natalia

Hello Patrice,

 

The message you have received is not an error but a warning about the method's obsolescence (it means that the method will be removed in future versions). This warning appeared as a result of the schemas' compilation, which started because of publishing the process. However, for the current version of the application, these warnings do not pose any threat, and the compilation can be considered successful.

 

The "SecureActivityEmailSender" method is used for generating a token when sending an email. Inspite of the fact that you didn't use it in the specific process, the warning might be triggered by the other schemas that were affected during the compilation process.

 

Best regards,

Natalia

Thank you Natalia,

 

i was a bit worried as i never encountered this kind of obsolescence messages in Creatio !

 

Best regards,

Patrice

 

Show all comments

Hello,

is it possible to make a printout for all selected activities (not only one records), where all images from attachments are printed under each activity?

Field sales users want to generate visit report in word or pdf document

 

Thank you!

Vladimir

Like 1

Like

1 comments

Hello!

 

Reports can be modified via our BPM tools in various ways. The element that might help with your issue is the Process file process element. 

More about using it in your reports you can find in the article: https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/pr…

 

We hope this helps!

Show all comments

I'm trying to set a page rule that sets the value of a date field. This was possible in classic UI using a formula value but I can't seem to enter it the same in Freedom UI. 

 

The scenario is simple, if field #1 has a value, the page rule timestamps the current date time in field #2. 

 

Can anyone help instruct on how to do this?

Like 0

Like

1 comments

According to the roadmap this is coming soon. It mentions ability to set things in rules such as:

Set the following field values: system setting, system variable, value from another field.

It's listed as Q1 2024 - however, we're already in April. Not sure which specific version. 

Ryan

Show all comments