Hello all,

 

I am getting this error while restarting with CLIO.  I am not sure where to start. There is nothing in the process log.  any suggestions?

 

 

System.UriFormatException: Invalid URI: The format of the URI could not be determined.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   at System.Uri..ctor(String uriString)
   at System.Net.WebRequest.Create(String requestUriString)
   at Creatio.Client.CreatioClient.CreateRequest(String url, String requestData)
   at Creatio.Client.CreatioClient.Login()
   at Creatio.Client.CreatioClient.CreateCreatioRequest(String url, String requestData, Int32 requestTimeout)
   at Creatio.Client.CreatioClient.ExecutePostRequest(String url, String requestData, Int32 requestTimeout)
   at Clio.Common.CreatioClientAdapter.ExecutePostRequest(String url, String requestData, Int32 requestTimeout)
   at Clio.Command.RemoteCommand`1.ExecuteRemoteCommand(TEnvironmentOptions options)
   at Clio.Command.RemoteCommand`1.Execute(TEnvironmentOptions options)

 

Like 0

Like

4 comments
Best reply

Hi,

 

Please use the following command instead:

clio restart -u http://o_drobina:1025 -l Supervisor -p Supervisor

where http://o_drobina:1025 should be replaced with the URL to your app, Supervisor (-l) and Supervisor (-p) are login and password respectively.

 

Best regards,

Oscar

Hi,

 

Please use the following command instead:

clio restart -u http://o_drobina:1025 -l Supervisor -p Supervisor

where http://o_drobina:1025 should be replaced with the URL to your app, Supervisor (-l) and Supervisor (-p) are login and password respectively.

 

Best regards,

Oscar

Thanks

If I use the -e that works as well. Odd as it use to work. Thank you very much

Hi,

I wanted to know is there any clio command to reset the whole environment to its basic default state after deleting the custom development package?

Thanks

Hi,

 

No, there is no such command. You will need to redeploy the app locally using clean OOB binary files.

 

Best regards,

Oscar

Show all comments

Hello, we need to connect our provider of calls but we only have the settings for do it with sip server, exist any connector that we can use for doing it?

 

Our provider it's different to the current list of connectors or integrations (webitel,avaya, etc)

Like 0

Like

2 comments

Hello Luis,



Could you please specify the provider's name?



Best regards,

Bogdan

Hello Luis,

 

If you’re looking to integrate your telephony with Creatio, we can help you with that. Velvetech provides a variety of VoIP connectors with popular phone systems to enable calling functionality right from the Creatio’s interface. 

You can find a list of existing connectors on the Creatio Marketplace, and we’re always open to implementing a custom one according to your needs in case the phone system you use is not on the list.

 

Best regards,

Velvetech

Show all comments

 

Hi Team,

 

We are trying to configure the organisational structure and need to understand how the hierarchy [access] will be passed on in the structure, whether the access/configured from higher level to lower level in the organisational structure or the opposite needs to be set up.

 

For example, consider the below structure for a bank from higher level to lower level.

 

GM’s

BM’s

HOPO’s

HOCO’s

RM’s

RO’s

 

We would like to understand on how the structure needs to be designed in the Organisation role page, so that the GM’s can view all the activity performed below his role and similarly the role below the GM’s can only get access to the role below them.

 

GM’s

         BM’s

                  HOPO’s

                               HOCO’s

                                            RM’s

                                                     RO’s

 

Do we design it in the above way, were GM division/organisation is created followed by the other division within the others.

 

For example,  we assigned one workspace to RO role and another workplace to RM. Ideally, the workplace associated to RO should be accessible to RM as they’re higher in level to RO’s but the opposite happens. The RO is able to view his/her workplace associated and also the work place associated to RM’s. Whereas the RM’s are able to view only their workplace but not the work place associated to the RO’s who are below in the organisational structure.

 

Or for example, say Ro’s have access to 10 contacts and RM’s have access to 10 different contacts but based on the above structure, RM’s should be able to see the 10 contacts associated to RO’s but it is not viewable but instead the RO’s are able to view the 10 contact associated to RM’s.

 

So, our confusion here is then the organisation structure design needs to be from lower level to higher level as 

 

RO’s

         RM’s

                  HOCO’s

                                HOPO’s

                                              BM’s

                                                       GM’s

 

By the above design, the GM’s will be ale to view all the values/access provided to the other roles and accordingly the other roles are able to view the respective roles above them.

Like 0

Like

0 comments
Show all comments
Question

Hi community,

I tried to install on my creatio instance the map widget (Map widget for Creatio | Creatio Marketplace), but it does not appear in the chart type list on dashboard designer.

 

What am I doing wrong?

Like 0

Like

3 comments

Hello Stefano,

See my reply on this post from Sept 15, it has the solution to get this to work (by overriding BootstrapModulesV2) https://community.creatio.com/questions/map-widget-creatio-no-map-option

Ryan

thank you very much!

Hi Stefano,

 

You could also check Mapsly which is a map solution available in Creatio Marketplace :)

Show all comments

Hello,



when replying to an email in Creatio, the lookup widget is missing in front of the CC field (the magnifying glass icon).

Can someone confirm this ?

it seems to be a bug...



Regards

Patrice

Like 0

Like

3 comments

Hello Patrice,

 

Thank you for your question!

 

Most probably, this field was replaced (added manually). We kindly suggest approaching our support team via support@creatio.com to have a closer look at the issue. It is hard to determine the root cause without having the access to the system itself.

 

Kind regards,

Anastasiia

Thank you Anastasiia,

i did thought it was an oob feature, it indeed has been added manually..

I'm gonna investigate a bit more about it.



Best regards

Patrice

Update : 

for some reason, in EmailPageV2,  the CC widget was disabled with 

{
"operation": "remove",
"name": "ToggleCopyRecipientVisible"
}

So i removed that part and added :

{
  "operation": "merge",
  "name": "ToggleCopyRecipientVisible",
  "values": {
   "layout": {
    "colSpan": 1,
    "rowSpan": 1,
    "column": 23,
    "row": 1
   }
 }
}

Issue solved !

Show all comments

So I was wondering...

I noticed that the "Feed" has a field called "Color" yet it doesn't really do much, I tried changing the colors and posting different stuff but it appears to be there for no reason, I assume that's not the case as there must be a reasoning behind this field so I figured I'd ask.

 

What does it do or change? How can I use this field?

 

 

Thanks in advance!

Like 0

Like

3 comments

Hello Edo, 

 

This field changes the color of Channel message, you can check the changes in the Feed section directly:

 





Should  you have any additional questions, please let us know!

Best regards,

Anastasiia

Hey,

 

Thank you very much for your reply!

 

That is super weird, I just checked 3 different domains we are working on and none of them has this.

 

I was looking at the Feed section and it's all blank white, no matter what color is chosen.

 

 

Edo Sagron,

For me I can see the colors in the feed section itself, but not in the communication panel feed. There is CSS out of the box that hides the colors in the feed panel in the right side communication panel. I don't know if it was intentional or not, since it adds the left border color, but then sets the style to not show it, weird. Just thought I'd mention this in case you're looking at the feed in the panel. See 

https://share.customerfx.com/7KuAZj7p

If you wanted to override this, you could add this as a global style:

.right-panel #ESNFeedModule_WrapContainer .parentPostContainer {
    border-left-style: solid !important;
}

Then it will show the color in the communication panel feed items.

Ryan

Show all comments

Hi Team,

 

I want to fetch the values of actions associated with the section that I'm accessing for which I have written the code given below:

 

The code is giving me the result as :

 

I'm still not able to fetch the list of action menu items as the section. Please help me fetch the values of action button items.

 

 

Thanks in advance

 

Sarika Sharma

Like 0

Like

2 comments

Hi,

 

Please explain which data do you want to fetch from these buttons.

 

Thank you!

 

Best regards,

Oscar

Hi Sarika

 

 

Here is the post where the same question is discussed:

 

https://community.creatio.com/questions/Fetchsectionactionlist

 

Please let me know if it helps!

 

Regards, 

 

Bogdan L.

 

Show all comments

Dear Comunity.

 

When a new activity-record is created (not update) I have to calculate some fields.

Normally I would do this on the server (business-process etc.).

But in this special case I need some information from the client (geo-coordinates).

I found the method "save" method in the "BaseEntityPage". It is possible to overwrite it.

But I have one problem, I could not find a way to find out if it is a new record or not.

I tried following methods/attibutes

  • this.isNewMode();
  • this.get("Operations");
  • this.isNew;

Everything brought the same result, whether I created a new data record or not: 'edit'



 

Like 0

Like

4 comments

You can try

if (!this.isAddMode() && !this.isCopyMode())

Vladimir Sokolov,

Hello. 

Thanks for the quick reply.

Unfortunately, both methods "isAddMode()" and "isCopyMode()" returns every time the same value:  false. sad

Regardless of whether I create a new data record or not.

 

Maybe "save" ist not the right method. 

But I could not finde a method like "onBeforeSave",  or something like that.

Christian Kern,

 

Hi,

 

save client-side method is the same "onBeforeSave" from the server-side logic. There is also onSaved method that is the same as "onRecordSaved" in the server logic. And the this.isAddMode() check that Vladimir mentioned works perfectly if using it both in the save and onSaved methods on the client-side.

 

You need to debug the code and find a way to make it work in the way you need the business task to be completed. Probably if you could share the code of your page and describe the task in details we could take a look at it together.

 

Best regards,

Oscar 

Hello.

 

I found the cause of my problem.

In our project we work with the ActivityMiniPage.

If you expand this AcitvityMiniPage to the normal page (ActivityPageV2)  the record is saved automatically. For this reason it is always a "change" for the system if I click on the "Save" button.

Show all comments

Very strange occurance with our instance.  activities that were created during a 'make recurring' process are not visible in Schedule view when logged in and attempting to look at their own activities.  When others set the owner in the Schedule view in the activity section to the activity owner, the activities are visible.  Has anyone else seen this with this Marketplace add-on?

Like 0

Like

3 comments

Hello Stephen,

 

Kindly note that the add-on was developed for and tested on Creatio desktop.

 

That said, please send us the following details:

 

1. Creatio desktop product and version.

2. Mobile app version and operating system.

 

This information will help us to reproduce the issue and get back to you with feedback.

Thank you:

 

our desktop is Sales Creatio, enterprise edition Version 7.17.1.1363

Mobile OS and app version are Android and v7.18.5

Stephen J Fisher,

Hi Stephen!

Based on the symptoms, I recommend rechecking the ActivityParticipant Detail.

All out-of-the-box filters in the Activity section work with this detail because one activity can have several participants. Maybe there is a problem with the data in this detail.

 

We have also reviewed the add-on and tested it on our site. However, we were unable to reproduce the issue on our end.

 

Possible reasons for this:

1. Non-standard rights settings on ActivityParticipant Detail.

2. Customized Activity \ ActivityParticipant or Recurring Activities logic.

I recommend using the official version of the add-on.

 

Also, you may test your settings on a trial site to pinpoint the bottleneck.

 

Show all comments

Hi,

I am trying to update a lookup field linked to Owner field of Accounts (Lookup to Contacts) for multiple records using an input box, which is added as custom action. But, the list of records are not displaying either by typing in the field or clicking on magnifying glass icon.

 

I have tried multiple way to bind attributes and diff but no progress, therefore I have attached the code snippet of this custom action for reference.

 

I appreciate if you can suggest a way to tackle this issue.

Thanks,

 

File attachments
Like 0

Like

5 comments
Best reply

Hi Kavian,

 

The code below will do the trick:

define("AccountSectionV2", [], function() {
	return {
		entitySchemaName: "Account",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		attributes:{},
		methods: {
			updateAccount: function(callback, autoIds, selectedContact){
				var update = Ext.create("Terrasoft.UpdateQuery", {
                            rootSchemaName: "Account"
                        });
				var filters = Terrasoft.createFilterGroup();
				filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;
				autoIds.forEach(function(item) {
					var accountIdFilter = update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", item);
					filters.add("AccountIdFilter" + item, accountIdFilter);
				}, this);
				update.filters.add(filters);
				update.setParameterValue("Owner", selectedContact, Terrasoft.DataValueType.LOOKUP);
				update.execute(function(result) {
					callback.call(this, result);
				}, this);
			},
			getSectionActions: function() {
				var actionMenuItems = this.callParent(arguments);
				actionMenuItems.addItem(this.getButtonMenuItem({
					"Caption": {bindTo: "Resources.Strings.MultiplyChangeAction"},
					"Click": {bindTo: "showOwnerInfo"}
				}));
				return actionMenuItems;
			},
			showOwnerInfo: function() {
                var caption = "Select an owner";
                var ContactList;
                this.set("ContactList", new Terrasoft.Collection());
                var controls = {
                    "Owner": {
                        dataValueType: Terrasoft.DataValueType.ENUM,
                        isRequired: true,
                        caption: "Owner",
                        value: {
                            bindTo: "Contact"
                        },
                        customConfig: {
                            list: {
                                bindTo: "ContactList"
                            },
                            prepareList: {
                                bindTo: "onPrepareContactList"
                            }
                        }
                    }
                };
                var ownerInputBoxHandler = this.ownerInputBoxHandler.bind(this);
                Terrasoft.utils.inputBox(caption, ownerInputBoxHandler, [
					{
						className: "Terrasoft.Button",
						caption: "ASSIGN",
						returnCode: "ok"
					}, "cancel"
				], this, controls);
                Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item){
                    item.control.bind(this);
                }, this);
            },
            onPrepareContactList: function(){
                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" });
                esq.addColumn("Id");
                esq.addColumn("Name");
                esq.getEntityCollection(function(result){
                    if (result.success){
                        var items = {};
                        result.collection.each(function(item) {
                            items[item.get("Id")] = { "value": item.get("Id"), "displayValue": item.get("Name") };
                        }, this);
                    }
                    var list = this.get("ContactList");
                    list.loadAll(items);
                }, this);
            },
            ownerInputBoxHandler: function(tag, data){
				var autoIds = this.getSelectedItems();
				var selectedContact = data.Owner.value;
                if (Terrasoft.MessageBoxButtons.OK.returnCode === tag){
                    if (Ext.isEmpty(selectedContact)){
                        this.showInformationDialog("Field is required", function(){
                            this.showOwnerInfo();
                        });
                    } else {
                        this.updateAccount(function(context, result){}, autoIds, selectedContact);
                    }
                }
            }
		}
	};
});

You will be able to select an owner from contacts:

and the selected records will be updated properly.

 

Best regards,

Oscar

Hi Kavian,

 

The code below will do the trick:

define("AccountSectionV2", [], function() {
	return {
		entitySchemaName: "Account",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		attributes:{},
		methods: {
			updateAccount: function(callback, autoIds, selectedContact){
				var update = Ext.create("Terrasoft.UpdateQuery", {
                            rootSchemaName: "Account"
                        });
				var filters = Terrasoft.createFilterGroup();
				filters.logicalOperation = Terrasoft.LogicalOperatorType.OR;
				autoIds.forEach(function(item) {
					var accountIdFilter = update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", item);
					filters.add("AccountIdFilter" + item, accountIdFilter);
				}, this);
				update.filters.add(filters);
				update.setParameterValue("Owner", selectedContact, Terrasoft.DataValueType.LOOKUP);
				update.execute(function(result) {
					callback.call(this, result);
				}, this);
			},
			getSectionActions: function() {
				var actionMenuItems = this.callParent(arguments);
				actionMenuItems.addItem(this.getButtonMenuItem({
					"Caption": {bindTo: "Resources.Strings.MultiplyChangeAction"},
					"Click": {bindTo: "showOwnerInfo"}
				}));
				return actionMenuItems;
			},
			showOwnerInfo: function() {
                var caption = "Select an owner";
                var ContactList;
                this.set("ContactList", new Terrasoft.Collection());
                var controls = {
                    "Owner": {
                        dataValueType: Terrasoft.DataValueType.ENUM,
                        isRequired: true,
                        caption: "Owner",
                        value: {
                            bindTo: "Contact"
                        },
                        customConfig: {
                            list: {
                                bindTo: "ContactList"
                            },
                            prepareList: {
                                bindTo: "onPrepareContactList"
                            }
                        }
                    }
                };
                var ownerInputBoxHandler = this.ownerInputBoxHandler.bind(this);
                Terrasoft.utils.inputBox(caption, ownerInputBoxHandler, [
					{
						className: "Terrasoft.Button",
						caption: "ASSIGN",
						returnCode: "ok"
					}, "cancel"
				], this, controls);
                Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item){
                    item.control.bind(this);
                }, this);
            },
            onPrepareContactList: function(){
                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "Contact" });
                esq.addColumn("Id");
                esq.addColumn("Name");
                esq.getEntityCollection(function(result){
                    if (result.success){
                        var items = {};
                        result.collection.each(function(item) {
                            items[item.get("Id")] = { "value": item.get("Id"), "displayValue": item.get("Name") };
                        }, this);
                    }
                    var list = this.get("ContactList");
                    list.loadAll(items);
                }, this);
            },
            ownerInputBoxHandler: function(tag, data){
				var autoIds = this.getSelectedItems();
				var selectedContact = data.Owner.value;
                if (Terrasoft.MessageBoxButtons.OK.returnCode === tag){
                    if (Ext.isEmpty(selectedContact)){
                        this.showInformationDialog("Field is required", function(){
                            this.showOwnerInfo();
                        });
                    } else {
                        this.updateAccount(function(context, result){}, autoIds, selectedContact);
                    }
                }
            }
		}
	};
});

You will be able to select an owner from contacts:

and the selected records will be updated properly.

 

Best regards,

Oscar

Oscar Dylan,

 

Thanks, the solution works perfectly.

Oleg Drobina,

Hi, 

The code works very well. I however need to display the list as a modal pop up instead of drop down. Could you please let me know what changes need to be done or point me to resources?

Hi 

how I could modify the code (onPrepareContactList) to add a filter to the contact list (only display who are users) !

Oleg Drobina,

Oleg Drobina,

Hi! Is there a way to update only the selected contacts that have Ownership Status = Active?

Show all comments