Dear colleagues,

 

In Classic UI I can solve this by code, but in Freedom is also possible?, somebody know in which schema I need to do this and the related code?

 

Thanks & Regards

Like 0

Like

8 comments
Best reply

Hello Julio,

See this article here: https://customerfx.com/article/adding-row-action-menu-items-to-a-creati…

You can override the menu (usually to add other menu items to it). When you do so you override the "Open", "Copy", "Delete" options and need to add them back in. You could override the menu and then just only add back in the "Open" option. It would look like this (the article will provide more details)

viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
    {
        "operation": "merge",
        "name": "DataTable",
        "values": {
            //...,
            "rowToolbarItems": [{
                type: 'crt.MenuItem',
                caption: 'DataGrid.RowToolbar.Open',
                icon: 'edit-row-action',
                disabled: "$Items.PrimaryModelMode | crt.IsEqual : 'create'",
                clicked: {
                    request: 'crt.UpdateRecordRequest',
                    params: {
                        "itemsAttributeName": "Items",
                        "recordId": "$Items.PDS_Id"
                    }
                }
            }]
        }
        //...
    },
    //...
]/**SCHEMA_VIEW_CONFIG_DIFF*/

Essentially you're replacing the existing menu with one that only has the Open menu option. This works for any list (section or a list on a page)

Ryan

and the same in a Detail (Freedom page)?

Hello Julio,

See this article here: https://customerfx.com/article/adding-row-action-menu-items-to-a-creati…

You can override the menu (usually to add other menu items to it). When you do so you override the "Open", "Copy", "Delete" options and need to add them back in. You could override the menu and then just only add back in the "Open" option. It would look like this (the article will provide more details)

viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
    {
        "operation": "merge",
        "name": "DataTable",
        "values": {
            //...,
            "rowToolbarItems": [{
                type: 'crt.MenuItem',
                caption: 'DataGrid.RowToolbar.Open',
                icon: 'edit-row-action',
                disabled: "$Items.PrimaryModelMode | crt.IsEqual : 'create'",
                clicked: {
                    request: 'crt.UpdateRecordRequest',
                    params: {
                        "itemsAttributeName": "Items",
                        "recordId": "$Items.PDS_Id"
                    }
                }
            }]
        }
        //...
    },
    //...
]/**SCHEMA_VIEW_CONFIG_DIFF*/

Essentially you're replacing the existing menu with one that only has the Open menu option. This works for any list (section or a list on a page)

Ryan

Ryan Farley,

Thanks Ryan, I promise I looked first, before to publish, in your articles, but didn't found this one. Thanks a lot

 

Regards

Julio

Ryan Farley,

Dear Ryan, I didn't found the crt.DataGrid element in the viewConfigDiff in the code of the listpage, I found it on a FormPage, but I need it also in a the ListPage

solved no need to search crt.DataGrid, jus add it on viewConfigDiff

Julio.Falcon_Nodos,

Yes correct. For the list page, the List (crt.DataGrid) exists in the parent page, you just need to merge in the changes.

Ryan

No worries - there's so much new info now with Freedom UI stuff, it's hard to know what to even search for!

Julio.Falcon_Nodos writes:

Ryan Farley,

Thanks Ryan, I promise I looked first, before to publish, in your articles, but didn't found this one. Thanks a lot

Regards

Julio

This could really do with being configurable using no-code tools, as it's quite cumbersome to apply to every list users will see but is often important - being able to copy records which should have to be created in specific ways is often an issue for business data.

Show all comments

Hello Everyone,

 

I have added a tag component to the contact list page in the Freedom UI and also applied tags to the records. However, the records are not being filtered according to the selected tag on the list page. Can anyone tell me how to filter them based on the tag?

 

Thanks in advance.

Like 0

Like

2 comments

Hello,

 

In such case, you can add a 'Quick filter' component with the following parameters:



And you will be able to search records by tags:

Bogdan,

Thanks a lot. It worked..

Show all comments

Hi Community,

In the OData4 protocol the maxTopLimit parameter

defines the limit for the value in the maximum number of rows in the output (which is 20.000 records)

We are retrieving the data from the Accounts table which has around 40.000 records.

What is the workaround or fix for this scenario?

Sasor

Like 0

Like

1 comments
Best reply

You can use the $top and $skip parameters to retrieve the data in pages. 

For example: 

Page 1 (first 1000)

https://creatiourl/0/odata/contacts?$top=1000&$skip=0

Page 2 (next 1000) 

https://creatiourl/0/odata/contacts?$top=1000&$skip=1000

Page 3 (next 1000) 

https://creatiourl/0/odata/contacts?$top=1000&$skip=2000

etc

Ryan

You can use the $top and $skip parameters to retrieve the data in pages. 

For example: 

Page 1 (first 1000)

https://creatiourl/0/odata/contacts?$top=1000&$skip=0

Page 2 (next 1000) 

https://creatiourl/0/odata/contacts?$top=1000&$skip=1000

Page 3 (next 1000) 

https://creatiourl/0/odata/contacts?$top=1000&$skip=2000

etc

Ryan

Show all comments

Hi all,

 

Could someone please kindly advise:

1. "Timestamp" for Stages similar to Stage in Opportunity Section. 

2. How to measure Interval duration for each stage

 

Many thanks

Mid

Like 0

Like

1 comments

Hello Mid,

 

We have consulted with our colleagues from the R&D team regarding your case.

Unfortunately, there is no such option. Apart from that, its implementation would require development tools. 



For example, 

The necessary logic according to your business task is implemented on the coreb part "Case Lifecycle" and you can build on the work of this part when developing.



The implementation of CaseLifecycle filling method can be observed in the event process (CaseSaving and CaseSaved) of the Case object from the SLM package.

CaseLifecycle filling method - SaveLifecycle().



To implement the logic, you will need to create two objects - Usr[ObjectName] stages and Usr[ObjectName]history, on the basis of which the detail will be created.



We will also create a case for our R&D team on this matter so it may be implemented in the next releases.

Show all comments

Hi community, 

does anyone successfully upgraded a creatio instance hosted on docker container ? 

Like 1

Like

1 comments

Hello,

 

At the moment, there is no official procedure for updating the application to the docker. You can find the relevant communication in this article on Creatio Academy.

We recommend deploying to the docker only for test environments.

 

Thank you.

Show all comments

Hi colleagues,

 

Is there any way to stop the process when processing multiple records, in this case the service returns more than 16000 elements/records and I want just process the first 20 or 30, I tried to use all of this process properties to stop it, without results:

  • Number of completed instances
  • Number of terminated instances
  • Total number of instances

Any Idea, in the image goes to 95 completed, I want to stop at 20, but no idea how to do...

 

 

Thanks in advance, 

Julio Falcón

Like 1

Like

2 comments

Hello, some ideas, please?

Hello, 



When using a multi-instance subprocess, the number of process executions is regulated only by the size of the collection you pass to it.

If you use the "Read data" element, you can adjust the size of the collection through the "Read first XX records" property.



If you receive a collection from a web service, you should use such parameters in the request that will allow you to receive the required number of records. You can check the web service documentation or modify the backend if it is your own web service or you have a contact with the developer.

Another option would be to resort to development and write a script task that will process the collection from the web service and trim the resulting collection/response.

 

Thank you.

Show all comments

Dear colleagues,

 

How can AVOID this? The link to an object in dev is "https://dev-XXXXX.creatio.com/Navigation/Navigation.aspx?schemaName=Ndo…]" and in TESTING or production, when deploy packages remains https://dev-XXXXX.creatio.com, when it must be https://pre-XXXXX.creatio.com or https://XXXXX.creatio.com

 

Some idea, how to solve this?

Like 0

Like

1 comments

Hello!

 

Please create a separate case for Support Team support@creatio.com  and we will analyze it deeply. 

Show all comments

when we tried to create a report it worked normally when the user language was English, however

when a user language Arabic the BP shows the below error



System.NotSupportedException: Unsupported report type '0'

   at Terrasoft.Configuration.ReportEngine.Generate(ReportSettings settings)

   at Terrasoft.Core.Process.Configuration.ReportFileProcessingUserTask.InternalExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.RunInCultureScope[T](Func`1 action)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context

Like 0

Like

1 comments

Dear Sayed!

 

We can see that you have already submitted a case for our support team and this case is currently in progress. We will update you in that request. 

 

Have a great day!

Show all comments

Hi, 



    I input the Chinese address on Account, however, it can't show on the map below,  Besides, the Creatio connector, mapsly, is okay to input Chinese address. Please help. 



I user the instance of Version 8.1.1.3635 locating in Japan.



Jeffrey / Taiwan user

Like 0

Like

2 comments

Hello,



Open Street Map is an external service; unfortunately, we cannot control its operation. Please note that this is mentioned in our Academy documentation: [link to documentation].



Now, let's go into more detail about how this service works.



Unfortunately, the Open Street Map service is not predictive, and searching a specific address requires maximum completeness and accuracy in the address input, including city, country, and postal code. However, if any of these indicators are incorrect (for example, a city that does not exist in the country), the search may be conducted based on different parameters.



It's also important to understand that OpenStreetMap is not Google, and the data in its database may differ. Therefore, it's essential to ensure that the data you are searching for exists in this service.



For example, you can notice that the address you provided does not exist in this service, so it displays the nearest address to the one you filled in: [link to OpenStreetMap].



Therefore, when filling in such addresses, you should rely not on Google but on the service used in the integration.



It's also worth noting that the address does not exist in the service even upon clicking on this building directly.



The OpenStreetMap service allows users to contribute data.



Unfortunately, as Creatio vendors, we do not have the ability to influence third-party services.

Our team is actively exploring alternatives to improve this functionality in future versions of the application.



I hope I was able to answer your questions.

Have a great day!

Thank you for your help, hope it will be solved in the next version release.

Show all comments

Hi all,

 

I am required to set authentication for the Redis server (bitnami/redis image)  (Email server microservices) for production on-site deployment email server.

Setting the password from the docker-compose file using REDIS_PASSWORD : 123abc as the environment variable, creates the password authentication successfully. the issue I am having is specifying the new password in my Redis connection string which is used by ListenerAPI & ListenerWorker containers. 

The docker-compose file

 

version: "3.8"

services:

  redisOfficial:

    image: 'docker.io/bitnami/redis'

    container_name: 'redisOfficial'

    restart: unless-stopped

    environment:

      REDIS_PASSWORD : 123abc # redis Authentication mode

      REDIS_AOF_ENABLED : "no"

    ports:

      - "6379:6379"

     

  rabbitmqOfficial:

   image: rabbitmq:management-alpine

   container_name: 'rabbitmqOfficial'

   restart: unless-stopped

   volumes:

    - ./rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro

    - ./definitions.json:/etc/rabbitmq/definitions.json:ro

   ports:

    - 5672:5672 # AMQP protocol port

    - 15672:15672 # HTTP management UI

   

  ListenerAPI:

    image: registry.creatio.com/emaillistener:1.0.24

    container_name: 'ListenerAPI'

    restart: unless-stopped

    ports:

      - 10000:8080 # Port forward. External port:local port

#      - 10001:8443 # SSL port by default. Uncomment if https endpoint needed

    environment:

      ExchangeListenerRedisHost: redisOfficial:6379 # Redis connection

      ExchangeListenerRedisPassword: "123abc"

      ExchangeListenerRedisDatabase: 0 # Redis DB

      PodName: ExchangeListener

# SSL certificate parameters by default. Uncomment if https endpoint needed

#      ASPNETCORE_Kestrel__Certificates__Default__Password: password

#      ASPNETCORE_Kestrel__Certificates__Default__Path: /https/el_self_signed.pfx

    depends_on:

      - redisOfficial

      - rabbitmqOfficial

    volumes:

# SSL certificate folder by default. Uncomment if https endpoint needed

#     - ./ssl:/https:ro

     - ./appsettings.json:/app/config/appsettings.json:ro

     - ./rmqsecret.json:/app/config/rabbitmq.secrets.json:ro

#    dns:

#      - 10.0.7.1

#      - 10.0.7.2

#    dns_search:

#      - tscrm.com

     

  ListenerWorker:

    image: registry.creatio.com/emaillistener-worker:1.0.24

    container_name: 'ListenerWorker'

    restart: unless-stopped

    environment:

      ExchangeListenerRedisHost: redisOfficial:6379 # Redis connection

      ExchangeListenerRedisPassword: "123abc"

      ExchangeListenerRedisDatabase: 0 # Redis DB

      PodName: ExchangeListenerWorker

    depends_on:

      - redisOfficial

      - rabbitmqOfficial

    volumes:

     - ./appsettings.json:/app/appsettings.json:ro

     - ./rmqsecret.json:/app/appsettings.Production.json:ro

#    dns:

#      - 10.0.7.1

#      - 10.0.7.2

#    dns_search:

#      - tscrm.com\

 

When I run this container in docker, i am getting blow mentioned container log for the LisenterAPI container

2024-01-24 13:24:01 [Microsoft.AspNetCore.Server.Kestrel] 2024-01-24 07:54:01,426 [40] ERROR: Connection id "0HN0SM07SMRGL", Request id "0HN0SM07SMRGL:00000018": An unhandled exception was thrown by the application.

2024-01-24 13:24:01 StackExchange.Redis.RedisConnectionException: It was not possible to connect to the redis server(s). There was an authentication failure; check that passwords (or client certificates) are configured correctly.

2024-01-24 13:24:01    at StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(ConfigurationOptions configuration, TextWriter log, Nullable`1 serverType) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 733

 

I suspect the way (syntax) password is specified docker-compose file is not supported for the LisenterAPI container. How to fix this issue?

 

Note: Container connections work fine because, if I use ALLOW_EMPTY_PASSWORD : "yes" for redis environment variable, the service works perfectly.

Like 0

Like

1 comments

Hello!



Docker is not a scalable option for development or pre-production environments. For Docker, we provide a ready-made docker-compose file.

We do not support connecting to Redis with a password in a configuration deployed in Docker. 

We recommend using Kubernetes to add password to REDIS in the Email Listener microservice:

https://academy.creatio.com/docs/8.x/setup-and-administration/on-site-d…

Show all comments