Hello, I'm using a script task based on signal record deleted that will trigger this exception. But somehow nothing showed not even a popup notification about the exception.

I tried creating a business process using the same script task that triggers an exception based on an object event process, and a notification popup was seen from the UI whenever the the condition was met.
 

The same way to throw the exception, yet different results. Why is that?
I need help and an explanation of this "throw new Exception..." on how it worked. If there is a work around to trigger this script task, I will be happy to discuss about it.  

Like 1

Like

0 comments
Show all comments

Hi everyone,

I've set up Clio successfully before on other machines, but on this new Windows 11 setup I'm hitting a wall with cliogate installation and can't find a way through.

I'm currently traveling and don't have access to my other machine to compare, so any help to unblock this would be much appreciated.

Environment:

  • Creatio: 8.3.2.4199, .NET Framework, IIS, PostgreSQL
  • Clio: 8.0.2.67
  • OS: Windows 11, IIS 10
  • URL: local IIS instance on port 8020
  • IsNetCore: false

What works:

  • clio ping -e MyEnv → success
  • clio packages -f cliogate -e MyEnv → shows cliogate 2.0.0.31 pre-installed
  • Installing my own .zip packages via ApplicationManagement UI → works fine

What fails:

  • clio install-gate -e MyEnv → uploads then throws EnsureSuccessStatusCode
  • Manual upload of cliogate.gz via ApplicationManagement UI → 400 Bad Request
  • Manual upload of cliogate as .zip → 400 Bad Request
  • clio generate-pkg-zip + upload → 400 Bad Request

The IIS log shows no entry for the failed upload requests — the 400 happens before IIS logs it. InstallZipPackage.log shows no entries for the cliogate upload attempts either.

Current state: the instance has cliogate pre-installed at version 2.0.0.31. Clio 8.0.2.67 requires 2.0.0.32 or higher, so it reports: "To use this command, you need to install the cliogate package version 2.0.0.32 or higher".

Questions:

  1. Why does PackageInstallerService return 400 for cliogate specifically, while other packages upload fine?
  2. Is there a way to upgrade cliogate from 2.0.0.31 to 2.0.0.41 without the upload mechanism?
  3. Is there an alternative download for the cliogate package compatible with Creatio 8.3.2?

Thank you

 

Julio Falcon

Like 1

Like

0 comments
Show all comments
How_to_mark_record_in_creatio_readonly_on_particular_condition
Studio_Creatio
8.0

I want to make a record read-only for all users in Creatio based on a condition.

I have added a checkbox field on the record. When this checkbox is checked, I want the entire record to become read-only for all users.

To achieve this, I created a Business Process that modifies access rights for the record when the checkbox is updated. The process runs successfully without any errors. However, the changes are not getting reflected on the UI users are still able to edit the record.

Could you please help me understand:

  • Is modifying access rights via Business Process the correct approach for making a record read-only?
  • Are there any additional steps required to enforce read-only behavior on the UI?

Any guidance or best practices would be greatly appreciated.

Like 0

Like

1 comments

Hello.

Yes, modifying access rights via a Business Process is the correct approach for making a specific record read only. Creatio supports changing record permissions through the Change access rights process element, and this mechanism is intended for granting or revoking permissions for конкретних записів automatically.

At the same time, for this to work, record permissions must be enabled for the target object. If the Use record permissions option is disabled, users who have sufficient object level permissions will still be able to edit the record, and the permissions applied by the process will not restrict them on the UI.

Please also take into account that certain users can still retain access regardless of record permission settings. In particular, users who have system operations such as Edit any data will receive access regardless of the object permission configuration. Also, by default, access is granted to the record author, record owner, and their management roles, as well as system administrators, unless the permission model is configured accordingly.

You can also review the related Academy article for record permissions and the Change access rights process element here.

https://academy.creatio.com/docs/8.x/setup-and-administration/administr…

https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/pr…

Best regards,
Antonii.

Show all comments

HIi,

I have a question regarding passing clicked data from list in business process. Using sub-process i was able to get the clicked values ( i think ). 



However i want to pass the value via Read Data for these ID's. I tried several parameter but ended not showing after i click the <?> in the read object. How do i obtain and loop for each of the ID's?



Thanks before!

Like 0

Like

2 comments

Hello,

If I understand your request correctly, you need to read a collection of records in the main process and then pass this collection into a sub-process element. The sub-process will then run as a separate iteration for each of the records.

You can find the specific instructions on how to set up processing of a collection of records in this article:

https://academy.creatio.com/docs/8.x/no-code-customization/bpm-tools/bu…

Hello.

Thanks for the reply. The screenshot i provided is the trace data from the main process, which already gets the selected ID from the list. 

 

However when i try to read the returned ID, it does not show in parameters. How do i read these ID from the Sub Process then proceed to modified them?

 

 

Show all comments
"usr.FutureDateValidator": {
                validator: function (config) {
                    return function (control) {
                        let value = control.value;
                        
                        // This part right here //
                        if (value.readonly) {
                            return null;
                        }
            
                        let selectedDate = value instanceof Date ? value : new Date(value);
                        let today = new Date();
                        today.setHours(0, 0, 0, 0);
                        selectedDate.setHours(0, 0, 0, 0);
            
                        let valueIsCorrect = selectedDate >= today;
            
                        return valueIsCorrect ? null
                            : {
                                "usr.FutureDateValidator": {
                                    message: config.message
                                }
                            };
                    };
                },
                params: [{ name: "message" }],
                async: false
            }

This is a custom validation I made to validate a "Date Picker" component only for today and the following days. So it is unable to use past dates. 

The problem occured when modifying the field's value after I save, then modifying another field that is not the date picker, it will run this custom validation again. So if the data was saved the previous days, this custom validation will validate that date picker field.

The question is how do I read the value's "Read-Only" so I can turn off the validation when its value is 'true'?

Or if there is a better way to configure this validation, I will be happy to change it.

 

Notes: 

  • This is a custom package (outside creatio's source package)
  • Validate this field before it is saved
  • After saving, the validation is turned off
  • More than one is using this validation
  • If possible, can edit it ONLY when the field (date picker) is edited (not other fields)

 

Thanks for helping, ask me more questions if the information is not enough.

Like 2

Like

4 comments
Best reply

You can turn on/off the validator so it only applies under the scenario you'd like.

Turn on:

request.$context.enableAttributeValidator("TheAttributeName", "TheValidatorName");

Turn off: 

request.$context.disableAttributeValidator("TheAttributeName", "TheValidatorName");

Note, the validator name there is whatever you named it when added to the attribute (which might not be the same as the actual validator). I don't know enough about the scenario, but if this is only something that would be populated when adding a new record maybe something like this would work? 

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) =&gt; {
        await next?.handle(request);
 
        const cardState = await request.$context.CardState;
        if (cardState == "add" || cardState == "copy") {
            // enable the validator here
        }
        else {
            // disable the validator here
        }
    }
}

Ryan

You can turn on/off the validator so it only applies under the scenario you'd like.

Turn on:

request.$context.enableAttributeValidator("TheAttributeName", "TheValidatorName");

Turn off: 

request.$context.disableAttributeValidator("TheAttributeName", "TheValidatorName");

Note, the validator name there is whatever you named it when added to the attribute (which might not be the same as the actual validator). I don't know enough about the scenario, but if this is only something that would be populated when adding a new record maybe something like this would work? 

{
    request: "crt.HandleViewModelInitRequest",
    handler: async (request, next) =&gt; {
        await next?.handle(request);
 
        const cardState = await request.$context.CardState;
        if (cardState == "add" || cardState == "copy") {
            // enable the validator here
        }
        else {
            // disable the validator here
        }
    }
}

Ryan

Ryan Farley,

Hi Ryan,

Thank you for the suggestion. I appreciated that you showed me another way to handle the validation.

It is indeed convincing to use it based on the scenario I would use. But after I tried implementing it onto my page, it seems the "... disableAttributeValidator..." is not active.

Therefore my "FutureDateValidator" is still on and validating the field. I edit the handler similar to your example. This is one of the example field I use to handle it:

const fieldDateState1 = await request.$context.PDS_UsrMeetingDate_e6xd3ts;
 
if (fieldDateState1 === null || fieldDateState1 === undefined || fieldDateState1 === "") {
 
 
request.$context.enableAttributeValidator("PDS_UsrMeetingDate_e6xd3ts", "FutureDateValidator");
 
} else {
 
request.$context.disableAttributeValidator("PDS_UsrMeetingDate_e6xd3ts", "FutureDateValidator");
 
}

Is this correct? Because it is not working as I explained.

Do you have any more ways to configure this ?

Thanks for helping. I'm still open to more suggestions.


 

Oh I have found the issue. 

It was because I use "crt.HandleViewModelInitRequest", instead of "crt.HandleViewModelAttributeChangeRequest". 

Thanks for your help!

 

Ryan Farley,

Hi Ryan,

I forgot to ask about which attribute is to detect the "Read Only" value using source code:
 

const isReadOnly = await request.$context.PDS_UsrMeetingDate_e6xd3ts_readonly;
 
// OR
 
const isReadOnly = await request.$context.PDS_UsrMeetingDate_e6xd3ts?.readonly;
 
// OR
 
const isReadOnly = await request.$context.PDS_UsrMeetingDate_e6xd3ts?.isReadOnly;
 
// OR other way to use it?

Thanks again!

Show all comments
Studio_Creatio
8.0

I'm getting a strange error when I attempt to log into a dev site running on a locally hosted machine. I get the log in screen, but after I enter the credentials, I got the following response:

{
 "Code": -1,
 "Exception": "System.MissingMethodException: Method not found: 'StackExchange.Redis.RedisValue StackExchange.Redis.RedisValue.op_Implicit(System.Memory`1)'."
}

Any suggestions on what might be causing the error? Or where to look? Nothing in the logs is jumping out at me.

I do have another instance of Creatio running on the same server and it runs just fine.

Like 0

Like

1 comments

Hello,

This error is almost certainly caused by a version mismatch of the StackExchange.Redis library, rather than anything related to the login itself. The message indicates that the application is trying to call a method that exists in one version of the library, but at runtime a different version is being loaded where that method doesn’t exist.

Since you mentioned another Creatio instance on the same server works fine, the most likely issue is that the two sites have different versions of StackExchange.Redis.dll (or related dependencies like System.Memory.dll) in their bin folders, or different binding redirects in web.config.

A good starting point is to compare the Redis-related DLLs between the working and non-working instances and make sure they match exactly. Also check the web.config for any binding redirects that might be forcing a different version at runtime. If everything looks the same, it’s worth verifying which assembly is actually being loaded, as sometimes an unexpected version can be picked up from another location.

In short, focus on aligning the Redis-related dependencies between the two instances—this type of error should be resolved once the correct assembly version is being loaded.

Show all comments
Tide
Studio_Creatio
#Clio
Studio_Creatio
8.0

I recently started exploring T.I.D.E (ATF TIDE) for working with Git integration in Creatio, and I’m trying to understand how widely it’s being used in real projects.

A couple of questions I had:

  • Is anyone here actively using T.I.D.E in their development workflow?
  • How stable/reliable is it compared to the default SVN approach?
  • Are there any proper setup guides or documentation available (especially for Git authentication and repository setup)?
  • Any common pitfalls or things to watch out for?

I’ve gone through some basic setup, but I’m facing issues around repository cloning and authentication, so any guidance or real-world experience would really help.

Like 2

Like

1 comments

Hello,
This approach is not yet widely adopted, so it is difficult to compare it directly with the default SVN.Currently, most of the information about T.I.D.E. is available in the Git repository:
https://github.com/Advance-Technologies-Foundation/T.I.D.E./tree/main
Unfortunately, we do not have hands-on experience or examples of working with it yet, as this functionality is not commonly used.

Show all comments
Studio_Creatio
8.0

Hello community

in the past I created a a custom freedom section using the "Page ListTemplateV2" I would like to upgrade it to version V3.

I tried to change the parent page, but the system tells me "the AddButton already exists.."

What do you suggest me?

Like 1

Like

2 comments

Hello Stefano Bassoli,

Check your custom schema to see if it has any explicit definitions of the "AddButton". Remove or rename the local "AddButton" if the new parent schema already provides it. Only one definition must remain.

Eduard Dovydovskyi,

Hi Eduard

I tried but there isn't a button with name "AddButton".
I solved creating a new list page and mapping it in the "SysModule" table with this query

SELECT "Id" AS "SysModuleId"
from "SysModule" sm 
where sm."Code"= &lt;section name&gt;;
SELECT "UId" as NewUID
FROM "SysSchema"
WHERE "Name"= &lt;new list page&gt;;
 
update "SysModule" set "SectionSchemaUId" = &lt;NewUID&gt;
where "Id"=&lt;SysModuleId&gt;;
Show all comments
multivaluefield
multiselect
FreedomUI
Studio_Creatio
8.0

I need to create a multi value field based on lookup.

The only solution I found is https://customerfx.com/tool/multi-select-text-field/
But it seems to work only with classic UI.

Is there a solution with Freedom UI ?

Like 0

Like

1 comments
Best reply

Hi Olivier,

If I understand your requirement correctly, this should be straightforward. You just need to create a object which can store the two lookup values you want to connect.

Example: To save multiple Industries for an Account, create an object called "Industries in Account" (inheriting from BaseEntity) with two lookup columns: "Account" and "Industry".

Then, set up the Multiselect Lookup component on your Account edit page via the No-Code Designer:

• Lookup: "Industry"
• Multiselect Value Storage: "Industries in Account"
• Apply filter by page data: Account.Id = IndustriesInAccount.Account

Optionally, you can add a static filter to pre-filter the available Industry values, or set the "Required" attribute to ensure at least one Industry must always selected before saving.

Let me know if you have any questions.

Best,
David

Hi Olivier,

If I understand your requirement correctly, this should be straightforward. You just need to create a object which can store the two lookup values you want to connect.

Example: To save multiple Industries for an Account, create an object called "Industries in Account" (inheriting from BaseEntity) with two lookup columns: "Account" and "Industry".

Then, set up the Multiselect Lookup component on your Account edit page via the No-Code Designer:

• Lookup: "Industry"
• Multiselect Value Storage: "Industries in Account"
• Apply filter by page data: Account.Id = IndustriesInAccount.Account

Optionally, you can add a static filter to pre-filter the available Industry values, or set the "Required" attribute to ensure at least one Industry must always selected before saving.

Let me know if you have any questions.

Best,
David

Show all comments

I am currently working on Day 8 of the Hybrid Training: Creatio Administration and Configuration, specifically on the step “Working with Processes in Creatio – Feedback Process .

However, I encountered an issue when trying to configure the Feedback Mini Page element in the business process.

Issue:
I am unable to add the Score parameter to the Feedback Mini Page element.

Actions Taken:

  • I created a new Lookup for the Score parameter label.
  • I attempted to add the parameter to the Feedback Mini Page element in the business process.

Despite these steps, the Score parameter element does not appear in the Feedback Mini Page element, so I cannot proceed with the configuration as instructed in the training.

Could you please advise on how to resolve this issue? Your guidance would be greatly appreciated so I can continue with the next steps of the training.

Thank you for your support

Like 0

Like

2 comments

Hello,

Could you please send us screenshots of your business process settings, along with the task you are trying to complete?

This will help to better understand the context and review the issue.

Malika,

thankyou , this cse is resolved

Show all comments