I'm trying to add an object in my local account and add a parent object to the object, but when I try to add it, I get the error that the menu does not appear. I tried typing any name, it still comes up blank. What can I do?

Like 0

Like

5 comments





This is the area I mentioned on another computer, could it be related to the installation files?

Burak Toprak,

 

What is the product version you are using?

 

 

Sourav Kumar Samal,



8.0.6 

Hi!

 

If you are trying to create an object that should inherit properties from other packages, and nothing is being inherited, make sure you have added dependencies to those packages.

 

To do this, you can open the "Dependencies" section on the package creation page and add dependencies to the packages from which you want to inherit properties. If the package has dependencies, the installation of these dependencies is checked during package installation, so make sure you have added all the necessary dependencies for inheriting properties.

 

If the problem still persists, make sure you have added the proper object settings according to your requirements. If necessary, refer to the Creatio documentation https://academy.creatio.com/docs/7-17/developer/development_tools/packa….

To add to what Alla said, whatever object it is that you want to select as your parent, find what package that object is in and then add that package as a dependency to your package. If you're wanting to select BaseEntity, I believe that package is Base.

Ryan

Show all comments

Hi community, 

 

I am looking to place a custom script (widget) to display on all pages. Does anyone know the best way to do this? 



I have adjusted system setting to activate google tag manager, but not having any luck displaying the widget. 





Thanks!

Harry

Like 0

Like

4 comments

Greetings,



Your can implement such behavior by following our guide on the Academy page: https://academy.creatio.com/docs/developer/interface_elements/dashboard…

Hi Mykhailo, I was referring to a chat "widget" or in this exact instance a widget that the team can use to report bugs in Creatio (implementation) or request features. 

Hi Harry,

 

You need to add additional button to the ContextHelpSchema (for example like it's done for the askSupportMenuItem in the schema diff):

{
				"operation": "insert",
				"name": "askSupportMenuItem",
				"parentName": "HelpButton",
				"propertyName": "menu",
				"values": {
					"caption": {"bindTo": "Resources.Strings.AskSupport"},
					"markerValue": {"bindTo": "Resources.Strings.AskSupport"},
					"itemType": this.Terrasoft.ViewItemType.MENU_ITEM,
					"click": {"bindTo": "callMailTo"},
					"tag": "support",
					"imageConfig": resources.localizableImages.Support
				}
			},

and in your custom button you can either use already implemented callMailTo method (so your users could report bugs or features via email) or create your own method (to open some URL or oepn some page). As a result this button will be available on any page and your business task will be achieved.

Hi Oscar, 



Thank you for the input. 



I am actually just simply looking to allow an external script to be run, so my widget can appear at the bottom right of the screen. I am using https://gleap.io , but this is similar to any third party chat app. 



Is there anything stopping this from working as it seems like Google is picking up the G-tag. 

 

Thanks

Show all comments

Hi,



Not sure if I missed it, or if it is not implemented yet. Where can I find the equivalent of "field filter values" in standard UI business rules  (image below) for a Freedom UI Form page ?



Like 0

Like

3 comments

It doesn't exist yet in the page editor. However, you can set it up manually, although it's a bit tedious. If you refer to this thread https://community.creatio.com/questions/filtering-lookup-freedom-ui-hel…;

Oleg outlines how to set it up like a business rule. I also outline how to handle the lookups request to load it's data source and then create the filter t that time (which makes it easier to refer to other values in the page that you want to use in the filter). 

Ryan

Ryan Farley,

 

Hi,



just read the 8.0.7 release notes ""Advanced business rule conditions. It is now possible to set up more advanced business rules using system settings and system variables in business rule conditions. For example, you can set up a rule that displays the [ Results ] field if the current user is the record owner.""



Do you think it covers this functionality ?

 

Damian

 

Is this already available in latest version of freedom UI?

 

Show all comments

Hi community!

have some questions about printables.

I have specified conditions for filtering record for printable. Until I select any record printable is inactive (unable to select it from PRINT list). Does it work only that way? Is it possible to make it active without selecting records as I have filtering conditions.

One more question. When I select several records and choose my printable I receive as many files as records selected. Is it possible to have only one file instead of several?

Like 0

Like

3 comments

Hello!

 

The system cannot recognize what has to be printed. Thus, it is necessary to click on the record in the section, so that it would be selected in the section list and the report button will become active.

 

As for one printable instead of multiple ones, unfortunately, it is not possible to implement your business task using custom methods of printables at the moment.

Word printables are uploaded this way: 1 document per 1 section entry.

Our development team already has a registered issue with your question. We have registered your idea of ​​unloading Word Printables on several section records and it may be implemented in future releases.

 

Best regards,

Yuliya Gritsenko

Yuliya Gritsenko,

Hello, 

Maybe it is possible to implement my business task with fast reporting?

Yana,

Hello,

 

FastReport functionality is not supported starting from version 8.0.3.

Show all comments

Like 0

Like

1 comments

Hello,

 

Could you please elaborate a bit on your business task as it's not quite clear what should be done?

 

Thank you in advance!

Best regards,

Anastasiia

Show all comments

Hi community!

I want to move object from custom package to another package, let's call it X package. The problem is that when I set X package as default package my process do not see one field I want to use from that object. The object is added to both packages X and custom. The field I need is added to the object in custom package. I tried to move the object from custom to X package, but got error that X package already has that object. Any suggestions?

Like 0

Like

2 comments

Hey, there are two possible solutions that I can think of off the top of my head:

 

1. Create the field manually using code in the desired package and later delete the schemas from the Custom package. (This is less recommended).

 

2. Create a 3rd package, let's call it Y package, navigate to the dependencies of the X package and add a dependency to the Y package, move the files from the Custom package to Y package.

 

This should solve the issue for you as the field will be available in the Y package, and because X depends on it, it'll also be available there and thus it should work.

 

I hope this helps!

Edo Sagron,

thanks, will try!

Show all comments

Hi Community,

 

Do you have any example how to use asyncValidate during save and EntitySchemaQuery in freedom UI form page. I couldn't find more topics when it comes to client side coding in freedom UI.

 

 

Like 1

Like

6 comments

Hello Fulgen,

 

For creating the field validator - you need to use validators as described in the Academy article here. As for the ESQ in the Freedom UI page - unfrotunately we currently don't have any documentation on it, but we've created a task for our core R&D team to write the specification for ESQ usage in the Freedom UI page.

Hello Oleg,



Whether the document for the specification for ESQ usage in the Freedom UI page is prepared or when we can expect the documentation on the same.

Sivaranjani,

 

After verifying all the necessary information regarding specification for ESQ usage, I want to inform you that this task has been created and accepted. The process of writing such documentation may take some time, so for the moment you need to wait a while.



Thank you for your patience and understanding in this matter.

 

Sorry to jump in. Any update on the documentation?

Jahnavi,

Unfortunately the documentation is not ready yet. However, I have added your inquiry to the registered idea as to increase its priority and speed up the process.

Mira Dmitruk,

 

Any update on doing async validation in Freedom UI using validators? We need to use them, but don't have any examples in the academy as far as I can tell.

Show all comments

Hi Community,

 

Currently we are using Studio Enterprise, we've added new section from existing "Activity" object. Activity section is created having List and Dashboard view by default. How we can add the Calendar view here?

 

 

Like 0

Like

1 comments

Hello,

 

You can find the example oh how to add a Calendar view to a section in this Community post.

Show all comments

Dear Community,

 

I retrieve the following from an API:

 

                        "AdresseerbaarObjectGeometrie Punt Coordinates": [

                            "0,00",

                            "0,00",

                            "0,00"

                        ],

 

This is a fixed array of 3 objects with X, Y, Z coordinates. I wish to use this array in my business process and simply use formula to set a variable to

 

x = coordinates[0]

y = coordinates[1]

 

However I am unable to use this notation or any other, I do not want to create a sub process to loop through these 3 objects.

 

 

Can you help me?

 

Like 0

Like

4 comments
Best reply

Hi Pascal,

Here's how I would do it. First, assuming the JSON looks something like this: 

{
    "_embedded": 
    {
        "adressen": [
            {
                "adresseerbaarObjectGeometrie": {
                    "punt": {
                        "coordinates": [
                            "0.00",
                            "0.01",
                            "0.02"
                        ]
                    }
                }
            }
        ]
    }
}

Second, when added to the web service, I've added 3 different body parameters inside of adressen. Be sure to make sure that the "is array" is not checked so you're treating each of these as text: 

  • adresseerbaarObjectGeometrie.punt.coordinates[0]
  • adresseerbaarObjectGeometrie.punt.coordinates[1]
  • adresseerbaarObjectGeometrie.punt.coordinates[2]

So at this point, it's as if there are three separate properties, instead of it being an array. You can now map each of these values as separate properties to the subprocess. 

Ryan

Hello Pascal,

Yes, you should be able to use the index of the elements in the array to access each. If you provide the full JSON response here I could help you with the expressions. Also, a useful tool to test the path expressions is https://jsonpath.com - you can paste in the JSON response and test getting the values you're after. 

Ryan

 

This is the full json path to X: $._embedded.adressen[:].adresseerbaarObjectGeometrie.punt.coordinates[0]

 

In Creatio I already seperated the object into adressen, so that will have to be a 'for loop' with a subprocess. So the eventual path would be: adresseerbaarObjectGeometrie.punt.coordinates[0] I believe.

Hi Pascal,

Here's how I would do it. First, assuming the JSON looks something like this: 

{
    "_embedded": 
    {
        "adressen": [
            {
                "adresseerbaarObjectGeometrie": {
                    "punt": {
                        "coordinates": [
                            "0.00",
                            "0.01",
                            "0.02"
                        ]
                    }
                }
            }
        ]
    }
}

Second, when added to the web service, I've added 3 different body parameters inside of adressen. Be sure to make sure that the "is array" is not checked so you're treating each of these as text: 

  • adresseerbaarObjectGeometrie.punt.coordinates[0]
  • adresseerbaarObjectGeometrie.punt.coordinates[1]
  • adresseerbaarObjectGeometrie.punt.coordinates[2]

So at this point, it's as if there are three separate properties, instead of it being an array. You can now map each of these values as separate properties to the subprocess. 

Ryan

You are amazing! Thanks! I did not think of using the response parameters to fill it in.

Show all comments

Hi community

on my local dev environment I've configured the exchange listeners, but when I run the diagnostic tools I receive the two following errors 

  1. SERVICE AVAILABILTY VERIFICATION: Creatio make a rest call to the uri "http://dexchlist:10000/api/listeners/exists" that returns the text exists, but creatio expect a json response
  2. CREATIO AVAILABILITY VERIFICATION: Creatio try to call the uri http://dexchlist:10000/api/availability/app" with data https://democreatio.xxx.com/aic806/0/ServiceModel/ExchangeListenerServi… and the end point return null

Can you help me ?

Like 1

Like

7 comments

hi Stefano Bassoli,



Have you configured the system setting path for the exchange listener URI?



BR,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Yes, I did

Stefano Bassoli,

an update, I updated the EmailListener to version 1.0.10 (bpmonline/emaillistener Tags | Docker Hub.)  and the second error is solved.

 

The first issue is related to a bug on the  method ExchangeListenerStatusResponse it uses the value ExchangeListenerActions.Exists, but the correct  value is ExchangeListenerActions.Status for the EmailListener 1.0.10

private ExchangeListenerStatusResponse GetExchangeListenerStatusRequestResult() {

            string serviceUri = ExchangeListenerActions.GetActionUrl(UserConnection, ExchangeListenerActions.Exists);

            WebRequest request = _requestFactory.Create(serviceUri);

            request.ContentType = "application/json; charset=utf-8";

            request.Timeout = 5 * 60 * 1000;

            WebResponse webResponse = request.GetResponse();

            using (Stream dataStream = webResponse.GetResponseStream()) {

                StreamReader reader = new StreamReader(dataStream);

                return Json.Deserialize<ExchangeListenerStatusResponse>(reader.ReadToEnd());

            }

        }

 

 

Stefano,

 

it seems like the service is not available for your site.

As for now, it is quite difficult to find the root cause as there might be a lot of different reasons for this.

We recommend checking the availability of the service from the server where you are using Creatio and backwards as well. You are frre to use some simple commend such as ping or curl.

 

Here are some examples:

 

http://microservice_address/api/listeners/status - just put it in the browser as link;

 

ping [listener_address]

telnet [listener_address] [port] (Windows)

 

Then, you should enter the container where Listener is set and run the following commands:



curl smtps://smtp.site.com:465 -v --user "login:pass" --login-options AUTH=PLAIN

 

Also, you can try running these commands:



curl --insecure --trace-ascii --ntlm -u [mailbox login] [mailserver_address]/ews/exchange.asmx -v



"curl [mailserver_name]"- here you can put either the mail server or the application server.



Additionally, you need to check the application server availability from the listener side:



curl http://creatio_site/0/ServiceModel/ExchangeListenerService.svc/ProcessFullEmail

curl creatio_site/ServiceModel/ExchangeListenerService.svc/

 

Regards,

Gleb.

Gleb,

the listener works perfectly.

The ExchangeListenerStatusResponse.GetExchangeListenerStatusRequestResult() function calls the end-point http://microservice_address/api/listeners/exists, not http://microservice_address/api/listeners/status.

 

Stefano Bassoli,



Thanks for sharing the details!

Hi team, with the newest version of the exhange listener 1.0.11 the calendar is not synching, email synchronization works perfectly, calendar does not synch correctly and produces the following error log:

 

2023-02-27 12:08:42,439 [144] ERROR NT AUTHORITY\SYSTEM LogError - [mmp9T6J1TEi6FTi60xYm5Q.import] [ExchangeCalendarClient] Invoke service action is failed for [Calendar settings =&gt; "a2b11d40-2201-4304-a3d8-9be0994d6678" "owa.errevi.com" "Login"].
Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. Connessione sottostante chiusa: Una connessione che doveva restare attiva è stata chiusa dal server in modo imprevisto.. ---&gt; System.Net.WebException: Connessione sottostante chiusa: Una connessione che doveva restare attiva è stata chiusa dal server in modo imprevisto..
   in System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   in System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.EwsHttpWebRequest.&lt;Microsoft-Exchange-WebServices-Data-IEwsHttpWebRequest-GetResponse&gt;d__4.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;GetEwsHttpWebResponse&gt;d__45.MoveNext()
   --- Fine della traccia dello stack dell'eccezione interna ---
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;GetEwsHttpWebResponse&gt;d__45.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.ServiceRequestBase.&lt;ValidateAndEmitRequest&gt;d__43.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.&lt;InternalExecuteAsync&gt;d__1.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   in Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.&lt;ExecuteAsync&gt;d__6.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.ExchangeService.&lt;BindToFolder&gt;d__27.MoveNext()
--- Fine traccia dello stack da posizione precedente dove è stata generata l'eccezione ---
   in System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   in System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   in Microsoft.Exchange.WebServices.Data.ExchangeService.&lt;BindToFolder&gt;d__28`1.MoveNext()

 

Show all comments