I am applying a complex filter to a page using the "Apply filter by page data" option.  I set up two parameter filters, but they are logically connected by an AND condition.  Is there a way to construct these filters allowing for complex structures?

Like 2

Like

3 comments

Hello!
Please provide examples of how you implement filters.

In the List Settings below, I need the results from more than one filter condition, more than just Account.ID=Opportunity.Account. 

Adding a second filter is possible, but the two filters are intrinsically connected by an AND operator, and there is no obvious way to specify a complex filter here.

John DeFayette,


Hello,

At the moment, it is not possible to set up such filtering. 

We have informed the development team about this need and registered an idea for such an improvement, so this feature may be available in the future.

Thank you for helping to make our product better.

Best regards,
Pavlo

Show all comments

Hi team,
I need assistance with hiding the 'Run Process' button and customizing the 'New' button on the desktop page. Thanks in advance for your help.

Regards,
Mahalaxmi Ganesan

Like 0

Like

2 comments

Hi Mahalaxmi

 

You can hide the 'Run Process' button by using this marketplace addon: https://marketplace.creatio.com/app/experceo-ui-wizard-creatio

After installing the Addon, go to Lookups -> ExpUIWizard Configurations and enable the 'Hide Run Process' Configuration.

 

Thank you

Mohamed

Hi Mohamed Ouederni,


Thanks for the reply, this works fine, but is it possible to make it user specific?

Regards,
Mahalaxmi Ganesan

Show all comments

Hello!

On a page, I want to be able to create a pop-up after a certain action, and also, after completing another separate action, to refresh the page. I have 2 business processes, which post the messages using Script Tasks

First Business process:
var userConnection = Get("UserConnection");
Terrasoft.Configuration.MsgChannelUtilities.PostMessage(userConnection,"PopupReturnedMailSent", "Mail has been sent to client!");
return true;

Second Business process:
var userConnection = Get("UserConnection");
Terrasoft.Configuration.MsgChannelUtilities.PostMessage(userConnection,"RefreshPage","");
return true;

In my client module, I wrote the following code:
init: function() {
    this.callParent(arguments);

    Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.onServerMessageReceived, this);
    this.subscribeForWebsocketEvents();
},

onServerMessageReceived: function(scope, message) {
    var sender = message && message.Header.Sender;

    if (sender === "PopupReturnedFlowApiError") {
        Terrasoft.showInformation("An error occured. Please retry."); //Opportunity Inactive
    }

    if (sender === "RefreshPage") {
        this.reloadEntity();
    }
},

destroy: function() {
    Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.onServerMessageReceived, this);
    this.unsubscribeForWebsocketEvents(); 
    
    this.callParent(arguments);
},

subscribeForWebsocketEvents: function() {                 
    this.Terrasoft.ServerChannel.on(this.Terrasoft.EventName.ON_MESSAGE,                     
                                    this.onWebsocketMessage, this);             
},             
unsubscribeForWebsocketEvents: function() {                 
    this.Terrasoft.ServerChannel.un(this.Terrasoft.EventName.ON_MESSAGE,                     
                                    this.onWebsocketMessage, this);             
}

I get the following error in the console:


The functionality is still working, but I get these errors in console. I noticed that the Refresh sender doesn't need subscribeForWebsocketEvents and unsubscribeForWebsocketEvents functions, but I think these are needed for the pop-up sender.
 

Like 0

Like

2 comments

In the subscribeForWebsocketEvents and unSubscribeForWebsocketEvents you're referencing a function named onWebsocketMessage but your actual function is named onServerMessageReceived.

That is the cause of the error. Update those functions to use onServerMessageReceived.

Ryan

Good morning Ryan Farley,

 

Thank you, I thought onWebsocketMessage is a core function that must be called for pop-up, but it works without it, as you said :)

 

Final code:

init: function() {
	this.callParent(arguments);
	// register our function to receive messages
	Terrasoft.ServerChannel.on(Terrasoft.EventName.ON_MESSAGE, this.onServerMessageReceived, this);
},
 
onServerMessageReceived: function(scope, message) {
	var sender = message && message.Header.Sender;
 
	if (sender === "PopupReturnedFlowApiError") {
		Terrasoft.showInformation("An error occured. Please retry.");
	}
 
	if (sender === "RefreshPage") {
		this.reloadEntity();
	}
},
 
destroy: function() {
	// unregister so we no longer get messages
	Terrasoft.ServerChannel.un(Terrasoft.EventName.ON_MESSAGE, this.onServerMessageReceived, this);
	this.callParent(arguments);
},
Show all comments

Is it possible to trigger the Freedom UI Live Data Refresh mechanism (LiveEditing feature) for a specific record from C# code? We have a C# process that is updating data directly in the database for performance reasons, but in certain circumstances we may want to trigger the Live Data Refresh of the record(s). Is this possible in any way? Or do we have to implement a workaround by refreshing from JS code when we think we may have to (so would be over-refreshing and not using the Live Data refresh mechanism).

Like 0

Like

1 comments
Best reply

You can see how that feature works by looking at the "LiveEditingBaseEntityEventListener" source code schema. In initial versions you could see they were just using MsgChannelUtilities.PostMessage and the message name, but in 8.1.2 that has been abstracted away. Still you could execute the same way as implemented in that schema.

Ryan

You can see how that feature works by looking at the "LiveEditingBaseEntityEventListener" source code schema. In initial versions you could see they were just using MsgChannelUtilities.PostMessage and the message name, but in 8.1.2 that has been abstracted away. Still you could execute the same way as implemented in that schema.

Ryan

Show all comments

In My on-premises Instance, I have performed the below steps.

 

  1. Updated the below system settings 

ExchangeListenerServiceUri

BpmonlineExchangeEventsEndpointUrl

 

  1. I have installed Docker Desktop software and downloaded the "Creatio Email Listener". I successfully launched the CreatioEmail container.
  2. However, we encountered an error while configuring the 0/ServiceModel/ExchangeListenerService.svc file in the web configuration.

 

Updated the below tags in Web.conf file:

 <system.serviceModel>
   <serviceHostingEnvironment minFreeMemoryPercentageToActivateService="1" aspNetCompatibilityEnabled="True" multipleSiteBindingsEnabled="True" />
   <extensions configSource="Terrasoft.WebApp\ServiceModel\Extensions.config" />
   <services>
       <service name="Terrasoft.WebApp.Loader.ServiceModel.AuthService" behaviorConfiguration="RestServiceBehavior">
           <endpoint name="AuthServiceEndPoint" address="" binding="webHttpBinding" behaviorConfiguration="RestServiceBehavior" bindingNamespace="http://Terrasoft.WebApp.ServiceModel" contract="Terrasoft.Core.ServiceModelContract.IAuthServiceEx" />
       </service>
       <service name="Terrasoft.WebApp.Loader.ServiceModel.TotpSetupService">
           <endpoint name="TotpSetupServiceEndPoint" address="" binding="webHttpBinding" behaviorConfiguration="RestServiceBehavior" bindingNamespace="http://Terrasoft.WebApp.ServiceModel" contract="Terrasoft.WebApp.Loader.ServiceModel.TotpSetupService" />
       </service>
       <service name="MyNamespace.MyServiceType" behaviorConfiguration="MyServiceTypeBehaviors">
           <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
       </service>
   </services>
   <behaviors>
       <serviceBehaviors>
           <behavior name="RestServiceBehavior">
               <serviceMetadata httpGetEnabled="true" />
               <!-- Add other behaviors if needed -->
           </behavior>
           <behavior name="MyServiceTypeBehaviors">
               <serviceMetadata httpGetEnabled="true" />
           </behavior>
       </serviceBehaviors>
   </behaviors>
   <bindings configSource="Terrasoft.WebApp\ServiceModel\http\bindings.config" />
</system.serviceModel>

 

Error message:

 

user: Default_user/1B4B9325-66CC-DF11-9B2A-001D60E938C6 file: http://localhost/core/hash/ng-core/src/polyfills.js line: 1 column: 21234 message: Uncaught Terrasoft.UnauthorizedException:
date: Tue Jun 18 2024 12:31:37 GMT+0530 (India Standard Time) stack: undefined

 

We followed the below Link:

 

https://academy.creatio.com/docs/8.x/setup-and-administration/on-site-deployment/containerized-components/email-listener-synchronization-service#:~:text=The%20Email%20Listener%20(formerly%20Exchange,and%20controlled%20use%20of%20resources.

 

 

Like 1

Like

5 comments

Hi,

 

We recommend updating the Email Listener to the latest version. 

To install the module, request the helm package from Creatio support.  

 

The address for Creatio support is support@creatio.com

We have raised an #SR-01305366 

The issue has been resolved.
Note: Once we successfully registered the Docker repository, we were able to configure the email listener for Creatio.

Show all comments

Hi!
Is it possible to show all emply madatory fields in one message? 

Like 0

Like

3 comments

Hello,

Usually, the Mandatory Error message will show all the Mandatory fields that are not filled

Not in Classic UI as i understand

Hello,

Unfortunately, currently, it is not possible to display the names of all required fields that are not filled in. 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

is there a way to rename the "Save"  button on a record page ?

regards, 

Like 1

Like

4 comments
Best reply

I assume you're referring to the caption? You can change the caption for the button by opening the edit page schema (for example, AccountPageV2) and find the localizable string (on the left side) "SaveButtonCaption" then give it a new value.

Ryan

I assume you're referring to the caption? You can change the caption for the button by opening the edit page schema (for example, AccountPageV2) and find the localizable string (on the left side) "SaveButtonCaption" then give it a new value.

Ryan

Ryan Farley,

Thanks Ryan, that worked when creating a new record. When I click New to add a new record the save button became Submit, but when editing the existing record the button appeared to be "Save" again. How to make it Submit on adding and editing a record.

Thanks in advance

You also need to change the "SaveRecordButtonCaption" string in the associated section (such as AccountSectionV2)

Ryan Farley,

Worked ! Many thanks Ryan. 

Show all comments

We have a campaign that pulls new members that have purchased product A. They run through an onboarding process and upon completion based on their journey in the campaign flow, they exit the campaign. See below.


Is there a way (filter criteria) to ensure that those who go through the process once do not go through it again if they make a future purchase? Thanks in advance for any insight.

Best,

Lucas

 

Like 0

Like

4 comments
Best reply

Ryan Farley,

Thank you kind sir. Greatly appreciated.

Make sure this option on the element to enter the campaign is NOT checked (which is the default). Then it will prevent contacts from re-entering the campaign even if they fit the criteria again. 

Ryan

Ryan Farley,

Thank you kind sir. Greatly appreciated.

Ryan Farley,

Question, since this campaign I noted above will be duplicated to run quarterly, will that have any impact?

If you have different, separate campaigns hat have those same conditions, the system will only know if a contact has entered a single campaign before (it doesn't know anything about whether you want to prevent a contact from entering those). You'd need to add to the conditions for entering the campaigns that the contact wasn't a participant in the other campaigns.

Show all comments



I am facing with error code because I have developed Web API at my local machine and I am wondering is there way to temporary bypass this restriction

The error code:
Error code: WebException

Error message: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

Stack trace:
  at Terrasoft.Services.Runtime.ServiceClient.d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at Terrasoft.Services.Runtime.ServiceClient.Execute(IServiceClientRequest request, CancellationToken cancellationToken)
  at Terrasoft.Services.Runtime.ServiceClient.Execute(IServiceClientRequest request)
  at Terrasoft.Configuration.ServiceSchema.CallServiceSchemaService.Execute(String serviceName, String methodName, List`1 parameters)

Like 0

Like

1 comments

Hello,

About the error in the logs:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

This is related to our security policy. Below, I am sending you the settings. Please verify from the integration side if they meet our requirements.

Please use the instructions below:
1. Disable support for obsolete and vulnerable versions of SSL/TLS

  • Disable SSLv2
  • Disable SSLv3
  • Disable TLSv1.0
  • Disable TLSv1.1

Instructions for MS Windows Server configuration

2. Disable support for weak encryption algorithms and protocols:


3. Enable the use of only strong encryption algorithms:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256


4. Define the sequence of encryption algorithms to be used in accordance with point 3
Instructions for MS Windows Server configuration

5. Enable the TLS Fallback SCSV option

6. Enable the Forward Secrecy option

7. Enable the OCSP Stapling option

Instructions for MS Windows configuration

8. Enable the HSTS option
Instructions for MS IIS configuration

9. Install the MS SQL Server 2012 Native Client on the Creatio application server (in case of using MS SQL DBMS).

Show all comments

Hi All,

 

I have a demand to create a check-in option without using the field sales module.

 

I´ve found a Javascript code that do exactly what I want, but not sure if this is the best code/option:

 

function geoFindMe() {
  const status = document.querySelector("#status");
  const mapLink = document.querySelector("#map-link");
 
  mapLink.href = "";
  mapLink.textContent = "";
 
  function success(position) {
    const latitude = position.coords.latitude;
    const longitude = position.coords.longitude;
 
    status.textContent = "";
    mapLink.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`;
    mapLink.textContent = `Latitude: ${latitude} °, Longitude: ${longitude} °`;
  }
 
  function error() {
    status.textContent = "Unable to retrieve your location";
  }
 
  if (!navigator.geolocation) {
    status.textContent = "Geolocation is not supported by your browser";
  } else {
    status.textContent = "Locating…";
    navigator.geolocation.getCurrentPosition(success, error);
  }
}
 
document.querySelector("#find-me").addEventListener("click", geoFindMe);

 

Any suggestion how to get the latitude and longitude using the code above or any other suggestion on how to check-in a user without field sales module.

 

Thanks in advanced

 

Like 0

Like

1 comments

Hello Paulo,

 

I guess the best option here is to study how the check-in option works in the Field Sales module and perform the very same setup in your code.

Show all comments