Hi, hope someone will help

 

I have installed Creatio bank sales locally. In that, I am trying to register in a creatio portal. I have opened the portal registration form and have filled all the details. But, I am getting an error after clicking the Register button. Here, I am attaching the error message screenshot below. Please have a look and provide your valuable suggestions. 

I have used the below URL to open the portal page:

http://localhost:82/Login/SSPLogin.aspx

Thanks in advance!

Like 0

Like

7 comments

Hello Nagamani,

 

Seems that you haven't performed self-registration setup properly for your application. Please double-check everything using this Creatio Academy article https://academy.creatio.com/documents/portal/7-15/user-self-registration-portal, especially the system setting with "SSPRegistrationMailbox" code.

 

Best regards,

Oscar

Oscar Dylan,

Okay, I will read the provided article. Can you please tell me the below thing? 

    <add key="SspUserRegistrationLicPackage" value ="LicPackageName" />

In the above line, what I have to give as a value in place of " LicPackageName"?

 

Nagamani Dangeti,

 

it should be the name of the portal license assigned to the user who is self-registered on the portal. Like "creatio customer portal on-site"

Oscar Dylan,

I didn't get you. Can you please explain a little bit clearer?

Oscar Dylan,

 

I am modifying the code in Web.config file and added the below line to that file. 

    <add key="SspUserRegistrationLicPackage" value =".............." />

But, I didn't understand what value I need to put in the value field?

Oscar Dylan,

I didn't get any licenses for the SysPortalConnection user in my instance. I am attaching the screenshot below here. Please have a look and provide your suggestions.

Oscar Dylan,

Please provide a  solution as soon as possible. It is a high priority task for us.

Show all comments

What object do I have to bind to bind the default section view for a custom section to my package?

Like 0

Like

1 comments

Dear Jonas,

 

It is not possible to bind 'Default section view' since there is such option. If you need to bind the columns settings of the section, you can use SysProfileData object. Here is a simple guide in different community post:

https://community.creatio.com/articles/how-bind-column-setup-without-glbdatabinding-package

 

Regards,

Dean

Show all comments

Hi Community,

 

In mobile we can configure the Column Set to disable the collapsible using below property:

collapsible: false

isCollapsed: false

 

We tried to apply the same for Attachment/File Detail but the above property is not working. Please suggest how we can disable the collapsible in mobile preview page.

 

Like 0

Like

1 comments

The "collapsible" and "isCollapsed" properties are used for detail as well. Please see the example:

 

Terrasoft.sdk.RecordPage.configureEmbeddedDetail("Case", "CaseFilesDetail", {

    alwaysShowTitle: true,

    collapsible: false,

    isCollapsed: false,

});

 

The result - > https://prnt.sc/rizh0k

Show all comments

In this example https://academy.creatio.com/documents/technic-sdk/7-15/handling-selection-several-records-examples there is a mention about method to open a lookup in the Case 2 example as 

this.openLookup(config, this.lookupCallback, this);

similary is there a method to open up a pre-configured page to get some inputs and the inputs are then used in the multiselect records?

 

Like 0

Like

10 comments
Best reply

Sriraksha KS,

 

1. The schema resources should be added to the dependencies. For example:

 

define("ActivitySectionV2", ["ConfigurationConstants", "ActivitySectionV2Resources"],

    function(ConfigurationConstants, resources) {...}

 

2. UsrContact /UsrAccount  fields are just attributes of inputBox page. They are not presented in the database.

 

Please feel free to see the full example below:

 

define("ActivitySectionV2", ["ConfigurationConstants", "ActivitySectionV2Resources"],
    function(ConfigurationConstants, resources) {
        return {
            // Section schema name.
            entitySchemaName: "Activity",
            // Section view model methods.
            methods: {
                // Defines if the menu option is enabled. 
                isCustomActionEnabled: function() {
                    // Attempt to receive the selected record indentifier array
                    var selectedRows = this.get("SelectedRows");
                    // If the array contains some elements (at least one of the records is selected from the list),
                    // it returns true, otherwise — false.
                    return selectedRows ? (selectedRows.length &gt; 0) : false;
                },
 
                openInputBox: function() {
				    this.set("UsrContactCollection", new Terrasoft.Collection());
				    this.set("UsrAccountCollection", new Terrasoft.Collection());
				    this.set("UsrContact", null);
				    this.set("UsrAccount", null);
				    var controls = {
				        "UsrContact": {
				            dataValueType: Terrasoft.DataValueType.ENUM,
				            isRequired: true,
				            caption: resources.localizableStrings.UsrContactCaption,
				            value: {
				                bindTo: "UsrContact"
				            },
				            customConfig: {
				                tag: "Contact",
				                list: {
				                    bindTo: "UsrContactCollection"
				                },
				                prepareList: {
				                    bindTo: "getCollectionValues"
				                },
				                loadNextPage: {
				                    bindTo: "loadCollectionNextPage"
				                }
				            }
				        },
				        "UsrAccount": {
				            dataValueType: Terrasoft.DataValueType.ENUM,
				            isRequired: true,
				            caption: resources.localizableStrings.UsrAccountCaption,
				            value: {
				                bindTo: "UsrAccount"
				            },
				            customConfig: {
				                tag: "Account",
				                list: {
				                    bindTo: "UsrAccountCollection"
				                },
				                prepareList: {
				                    bindTo: "getCollectionValues"
				                },
				                loadNextPage: {
				                    bindTo: "loadCollectionNextPage"
				                }
				            }
				        }
				    };
 
				    Terrasoft.utils.inputBox(resources.localizableStrings.UsrInputBoxCaption,
			        this.openInputBoxHandler,
			        [Terrasoft.MessageBoxButtons.OK, Terrasoft.MessageBoxButtons.CANCEL],
			        this,
			        controls
			    );
			    Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item) {
			        item.control.bind(this);
			    }, this);
			},
 
 
			getCollectionValues: function(filter, list, tag) {
			    if (Ext.isEmpty(list)) {
			        return;
			    }
			    list.clear();
			    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
			        rootSchemaName: tag,
			        isPageable: true,
			        rowCount: 20
			    });
			    this.buildCollectionQuery(esq, list, filter, tag);
			},
 
 
			loadCollectionNextPage: function(listParams, tag) {
			    if (!this.get("CanLoadMore" + tag)) {
			        return;
			    }
			    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
			        rootSchemaName: tag,
			        isPageable: true,
			        rowCount: 20,
			        rowsOffset: listParams.listView.collectionItemsCount
			    });
			    this.buildCollectionQuery(esq, listParams.list, listParams.filterValue, tag);
			},
 
			buildCollectionQuery: function(esq, list, filter, tag) {
			    esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_COLUMN, "value");
			    var orderColumn = esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "displayValue");
			    orderColumn.orderDirection = Terrasoft.OrderDirection.ASC;
			    esq.filters.addItem(esq.createPrimaryDisplayColumnFilterWithParameter(
			        Terrasoft.ComparisonType.START_WITH, filter, Terrasoft.DataValueType.TEXT));
			    esq.getEntityCollection(function(response) {
			        if (response &amp;&amp; response.success) {
			            var preObject = {};
			            response.collection.each(function(item) {
			                preObject[item.get("value")] = item.values;
			            }, this);
			            list.loadAll(preObject);
			            this.set("CanLoadMore" + tag, response.collection.getCount() === 20);
			        }
			    }, this);
			},
 
		openInputBoxHandler: function(returnCode, controlData) {
			    if (Terrasoft.MessageBoxButtons.OK.returnCode === returnCode) {
			    	console.log("it works");
                    const activeRowId = controlData.UsrContact.value.value;
			    	  // Receiving of the selected record identifier array. 
                    var selectedRows = this.get("SelectedRows");
                    // The procession starts if at least one record is selected from the list and the owner is selected 
                    // in the lookup.
                    if ((selectedRows.length &gt; 0)) {
                        // Creation of the batch query class instance.
                        var batchQuery = this.Ext.create("Terrasoft.BatchQuery");
                        // Update of each selected record.
                        selectedRows.forEach(function(selectedRowId) {
                            // Creation of the UpdateQuery class instance with the Activity root schema.
                            var update = this.Ext.create("Terrasoft.UpdateQuery", {
                                rootSchemaName: "Activity"
                            });
                            // Applying filter to determine the record for update. 
                            update.enablePrimaryColumnFilter(selectedRowId);
                            // The [Owner] column is populated with the value that equals to
                            // the lookup selected contact id.
                            update.setParameterValue("Owner", activeRowId, this.Terrasoft.DataValueType.GUID);
                            // Adding a record update query to the batch query. 
                            batchQuery.add(update);
                        }, this);
                        // Batch query to the server.
                        batchQuery.execute(function() {
                            // Record list update.
                            this.reloadGridData();
                        }, this);
                    }
			        // TODO: your code here
			    }
			},
 
                // Overriding the base virtual method, returning the section action collection. 
                getSectionActions: function() {
                    // Calling of the parent method implementation, 
                    // returning the initialized section action collection.
                    var actionMenuItems = this.callParent(arguments);
                    // Adding separator line.
                    actionMenuItems.addItem(this.getButtonMenuItem({
                        Type: "Terrasoft.MenuSeparator",
                        Caption: ""
                    }));
                    // Adding a menu option to the section action list.
                    actionMenuItems.addItem(this.getButtonMenuItem({
                        // Binding the menu option title to the localized schema string.
                        "Caption": { bindTo: "Resources.Strings.SetOwnerCaption" },
                        // Binding of the action handler method.
                        "Click": { bindTo: "openInputBox" },
                        // Binding the menu option enable property to the value that returns the isCustomActionEnabled method.
                        "Enabled": { bindTo: "isCustomActionEnabled" },
                        // Multiselection mode enabling.
                        "IsEnabledForSelectedAll": true
                    }));
                    // Returning of the added section action collection.
                    return actionMenuItems;
                }
            }
        };
    });

 

As I understood, you want to open a pre-configured page to select a value instead of the lookup page. Please correct me if I am wrong. 

I suppose you can just create a new lookup with needed fields. That allows you to use the out-of-the box functionality without additional development. Please see the article on Academy:

 https://academy.creatio.com/documents/administration/7-15/creating-and-registering-lookups

Could you please clarify your business task? Why the lookup page is not appropriate for you?

However you can take a look at the LookupUtilitiesV2 schema and investigate how the open method works - https://prnt.sc/rhlzfr .

 

Alina Kazmirchuk,

Dear Alina, The use case is to get multiple values to be assigned for the records instead of just one. Ex., For the selected records would like to setup the owner and also the due date. So if we are able to open up a page which has a date and owner lookup field. Then using that page, the date and owner can be read and updated into each of the records. Hope it is clear now?

Thanks a lot Alina. This will work. Will try it out and let you know.

Ganesh Babu,

Thank you so much for explanation. I can recommend you to use the inputBox for that.

There is an example how to open the inputBox with Account and Contact lookup fields. Add code below into methods section and bind openInputBox method.

Please see the result here -> https://prnt.sc/rhntk5

openInputBox: function() {
 
    this.set("UsrContactCollection"new Terrasoft.Collection());
 
    this.set("UsrAccountCollection"new Terrasoft.Collection());
 
    this.set("UsrContact", null);
 
    this.set("UsrAccount", null);
 
    var controls = {
 
        "UsrContact": {
 
            dataValueType: Terrasoft.DataValueType.ENUM,
 
            isRequired: true,
 
            caption: resources.localizableStrings.UsrContactCaption,
 
            value: {
 
                bindTo: "UsrContact"
 
            },
 
            customConfig: {
 
                tag: "Contact",
 
                list: {
 
                    bindTo: "UsrContactCollection"
 
                },
 
                prepareList: {
 
                    bindTo: "getCollectionValues"
 
                },
 
                loadNextPage: {
 
                    bindTo: "loadCollectionNextPage"
 
                }
 
            }
 
        },
 
        "UsrAccount": {
 
            dataValueType: Terrasoft.DataValueType.ENUM,
 
            isRequired: true,
 
            caption: resources.localizableStrings.UsrAccountCaption,
 
            value: {
 
                bindTo: "UsrAccount"
 
            },
 
            customConfig: {
 
                tag: "Account",
 
                list: {
 
                    bindTo: "UsrAccountCollection"
 
                },
 
                prepareList: {
 
                    bindTo: "getCollectionValues"
 
                },
 
                loadNextPage: {
 
                    bindTo: "loadCollectionNextPage"
 
                }
 
            }
 
        }
 
    };
 
    Terrasoft.utils.inputBox(resources.localizableStrings.UsrInputBoxCaption,
 
        this.openInputBoxHandler,
 
        [Terrasoft.MessageBoxButtons.OK, Terrasoft.MessageBoxButtons.CANCEL],
 
        this,
 
        controls
 
    );
 
    Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item) {
 
        item.control.bind(this);
 
    }this);
 
},
 
getCollectionValues: function(filter, list, tag) {
 
    if (Ext.isEmpty(list)) {
 
        return;
 
    }
 
    list.clear();
 
    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
 
        rootSchemaName: tag,
 
        isPageable: true,
 
        rowCount: 20
 
    });
 
    this.buildCollectionQuery(esq, list, filter, tag);
 
 
},
 
loadCollectionNextPage: function(listParams, tag) {
 
    if (!this.get("CanLoadMore" + tag)) {
 
        return;
 
    }
 
    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
 
        rootSchemaName: tag,
 
        isPageable: true,
 
        rowCount: 20,
 
        rowsOffset: listParams.listView.collectionItemsCount
 
    });
 
    this.buildCollectionQuery(esq, listParams.list, listParams.filterValue, tag);
 
},
 
 
buildCollectionQuery: function(esq, list, filter, tag) {
 
    esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_COLUMN"value");
 
    var orderColumn = esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN"displayValue");
 
    orderColumn.orderDirection = Terrasoft.OrderDirection.ASC;
 
    esq.filters.addItem(esq.createPrimaryDisplayColumnFilterWithParameter(
 
        Terrasoft.ComparisonType.START_WITH, filter, Terrasoft.DataValueType.TEXT));
 
    esq.getEntityCollection(function(response) {
 
        if (response &amp;&amp; response.success) {
 
            var preObject = {};
 
            response.collection.each(function(item) {
 
                preObject[item.get("value")] = item.values;
 
            }this);
 
            list.loadAll(preObject);
 
            this.set("CanLoadMore" + tag, response.collection.getCount() === 20);
 
        }
 
    }this);
 
},
 
 
 
openInputBoxHandler: function(returnCode, controlData) {
 
    if (Terrasoft.MessageBoxButtons.OK.returnCode === returnCode) {
 
        // TODO: your code here
 
    }
 
}

 

 

Alina Kazmirchuk,

 

Thank you for the code Alina. Even I have this requirement for our customer.

I tried with this code, it says issue with Resources.

Whats is the dependency to be mentioned in dependencies for 

resources.localizableStrings

UsrContact /UsrAccount is Entity Column name Or Its a Attribute?

 

It would help us if you provide us with the full code with instructions.

 

Thank you in advance

Sriraksha

Sriraksha KS,

 

1. The schema resources should be added to the dependencies. For example:

 

define("ActivitySectionV2", ["ConfigurationConstants", "ActivitySectionV2Resources"],

    function(ConfigurationConstants, resources) {...}

 

2. UsrContact /UsrAccount  fields are just attributes of inputBox page. They are not presented in the database.

 

Please feel free to see the full example below:

 

define("ActivitySectionV2", ["ConfigurationConstants", "ActivitySectionV2Resources"],
    function(ConfigurationConstants, resources) {
        return {
            // Section schema name.
            entitySchemaName: "Activity",
            // Section view model methods.
            methods: {
                // Defines if the menu option is enabled. 
                isCustomActionEnabled: function() {
                    // Attempt to receive the selected record indentifier array
                    var selectedRows = this.get("SelectedRows");
                    // If the array contains some elements (at least one of the records is selected from the list),
                    // it returns true, otherwise — false.
                    return selectedRows ? (selectedRows.length &gt; 0) : false;
                },
 
                openInputBox: function() {
				    this.set("UsrContactCollection", new Terrasoft.Collection());
				    this.set("UsrAccountCollection", new Terrasoft.Collection());
				    this.set("UsrContact", null);
				    this.set("UsrAccount", null);
				    var controls = {
				        "UsrContact": {
				            dataValueType: Terrasoft.DataValueType.ENUM,
				            isRequired: true,
				            caption: resources.localizableStrings.UsrContactCaption,
				            value: {
				                bindTo: "UsrContact"
				            },
				            customConfig: {
				                tag: "Contact",
				                list: {
				                    bindTo: "UsrContactCollection"
				                },
				                prepareList: {
				                    bindTo: "getCollectionValues"
				                },
				                loadNextPage: {
				                    bindTo: "loadCollectionNextPage"
				                }
				            }
				        },
				        "UsrAccount": {
				            dataValueType: Terrasoft.DataValueType.ENUM,
				            isRequired: true,
				            caption: resources.localizableStrings.UsrAccountCaption,
				            value: {
				                bindTo: "UsrAccount"
				            },
				            customConfig: {
				                tag: "Account",
				                list: {
				                    bindTo: "UsrAccountCollection"
				                },
				                prepareList: {
				                    bindTo: "getCollectionValues"
				                },
				                loadNextPage: {
				                    bindTo: "loadCollectionNextPage"
				                }
				            }
				        }
				    };
 
				    Terrasoft.utils.inputBox(resources.localizableStrings.UsrInputBoxCaption,
			        this.openInputBoxHandler,
			        [Terrasoft.MessageBoxButtons.OK, Terrasoft.MessageBoxButtons.CANCEL],
			        this,
			        controls
			    );
			    Terrasoft.each(Terrasoft.MessageBox.controlArray, function(item) {
			        item.control.bind(this);
			    }, this);
			},
 
 
			getCollectionValues: function(filter, list, tag) {
			    if (Ext.isEmpty(list)) {
			        return;
			    }
			    list.clear();
			    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
			        rootSchemaName: tag,
			        isPageable: true,
			        rowCount: 20
			    });
			    this.buildCollectionQuery(esq, list, filter, tag);
			},
 
 
			loadCollectionNextPage: function(listParams, tag) {
			    if (!this.get("CanLoadMore" + tag)) {
			        return;
			    }
			    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
			        rootSchemaName: tag,
			        isPageable: true,
			        rowCount: 20,
			        rowsOffset: listParams.listView.collectionItemsCount
			    });
			    this.buildCollectionQuery(esq, listParams.list, listParams.filterValue, tag);
			},
 
			buildCollectionQuery: function(esq, list, filter, tag) {
			    esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_COLUMN, "value");
			    var orderColumn = esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "displayValue");
			    orderColumn.orderDirection = Terrasoft.OrderDirection.ASC;
			    esq.filters.addItem(esq.createPrimaryDisplayColumnFilterWithParameter(
			        Terrasoft.ComparisonType.START_WITH, filter, Terrasoft.DataValueType.TEXT));
			    esq.getEntityCollection(function(response) {
			        if (response &amp;&amp; response.success) {
			            var preObject = {};
			            response.collection.each(function(item) {
			                preObject[item.get("value")] = item.values;
			            }, this);
			            list.loadAll(preObject);
			            this.set("CanLoadMore" + tag, response.collection.getCount() === 20);
			        }
			    }, this);
			},
 
		openInputBoxHandler: function(returnCode, controlData) {
			    if (Terrasoft.MessageBoxButtons.OK.returnCode === returnCode) {
			    	console.log("it works");
                    const activeRowId = controlData.UsrContact.value.value;
			    	  // Receiving of the selected record identifier array. 
                    var selectedRows = this.get("SelectedRows");
                    // The procession starts if at least one record is selected from the list and the owner is selected 
                    // in the lookup.
                    if ((selectedRows.length &gt; 0)) {
                        // Creation of the batch query class instance.
                        var batchQuery = this.Ext.create("Terrasoft.BatchQuery");
                        // Update of each selected record.
                        selectedRows.forEach(function(selectedRowId) {
                            // Creation of the UpdateQuery class instance with the Activity root schema.
                            var update = this.Ext.create("Terrasoft.UpdateQuery", {
                                rootSchemaName: "Activity"
                            });
                            // Applying filter to determine the record for update. 
                            update.enablePrimaryColumnFilter(selectedRowId);
                            // The [Owner] column is populated with the value that equals to
                            // the lookup selected contact id.
                            update.setParameterValue("Owner", activeRowId, this.Terrasoft.DataValueType.GUID);
                            // Adding a record update query to the batch query. 
                            batchQuery.add(update);
                        }, this);
                        // Batch query to the server.
                        batchQuery.execute(function() {
                            // Record list update.
                            this.reloadGridData();
                        }, this);
                    }
			        // TODO: your code here
			    }
			},
 
                // Overriding the base virtual method, returning the section action collection. 
                getSectionActions: function() {
                    // Calling of the parent method implementation, 
                    // returning the initialized section action collection.
                    var actionMenuItems = this.callParent(arguments);
                    // Adding separator line.
                    actionMenuItems.addItem(this.getButtonMenuItem({
                        Type: "Terrasoft.MenuSeparator",
                        Caption: ""
                    }));
                    // Adding a menu option to the section action list.
                    actionMenuItems.addItem(this.getButtonMenuItem({
                        // Binding the menu option title to the localized schema string.
                        "Caption": { bindTo: "Resources.Strings.SetOwnerCaption" },
                        // Binding of the action handler method.
                        "Click": { bindTo: "openInputBox" },
                        // Binding the menu option enable property to the value that returns the isCustomActionEnabled method.
                        "Enabled": { bindTo: "isCustomActionEnabled" },
                        // Multiselection mode enabling.
                        "IsEnabledForSelectedAll": true
                    }));
                    // Returning of the added section action collection.
                    return actionMenuItems;
                }
            }
        };
    });

 

Alina Kazmirchuk,

Thank you Alina, Will try this out. 

Regards,

Sriraksha

Alina Kazmirchuk,

Thank you for the solution. I have a doubt, In select rows, it returns only Id, Is there a way where i can take Name?

 

isCustomActionEnabled: function() {
                    // Attempt to receive the selected record indentifier array
                    var selectedRows = this.get("SelectedRows");
                    // If the array contains some elements (at least one of the records is selected from the list),
                    // it returns true, otherwise — false.
                    return selectedRows ? (selectedRows.length &gt; 0) : false;
                },

 

Please help on this, i tried using ESQ , even though i got record using, i was not able to use it in next code in Section. If it was in Page i would have used Attribute . but, here I am stuck .

Please help.

 

openInputBoxHandler: function(returnCode, controlData) {

                if (Terrasoft.MessageBoxButtons.OK.returnCode === returnCode) {

                    const activeRowId = controlData.UsrContact.value.value;

                      

                    var selectedRows = this.get("SelectedRows");

                    this.set("AccName", null);

                    if ((selectedRows.length > 0)) {

                      

                        var batchQuery = this.Ext.create("Terrasoft.BatchQuery");

                       

                        selectedRows.forEach(function(selectedRowId) {

                            

                           /* var esq = Ext.create("Terrasoft.EntitySchemaQuery", {

                                        rootSchemaName: "Account"

                                    });

                            esq.addColumn("Id");

                            esq.addColumn("Name" );

                            var esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, 

                            "Id", selectedRowId );   

                            esq.filters.add("esqFirstFilter", esqFirstFilter);

                            var e = esq.getEntityCollection();

                            esq.getEntityCollection(function (result) {

                            if (result.success) {

                                result.collection.each(function (item) {

                                this.set("AccName",item.get("Name"));

                                });

                                

                            }

                            this.showInformationDialog("Data query error");

                            }, this);*/



                            var insert = Ext.create("Terrasoft.InsertQuery", {

                            rootSchemaName: "Activity"

                            });

                        

                            insert.setParameterValue("Title", "Visit Account "  , Terrasoft.DataValueType.TEXT);

                            insert.setParameterValue("StartDate", new Date(),

                                Terrasoft.DataValueType.DATE);

                            insert.setParameterValue("DueDate", controlData.UsrDueDate.value,

                                Terrasoft.DataValueType.DATE);

                            insert.setParameterValue("ActivityCategory", "F51C4643-58E6-DF11-971B-001D60E938C6",

                                Terrasoft.DataValueType.GUID);

                            insert.setParameterValue("Status", "384D4B84-58E6-DF11-971B-001D60E938C6",

                                Terrasoft.DataValueType.GUID);

                            insert.setParameterValue("Owner", activeRowId,

                                Terrasoft.DataValueType.GUID);

                            insert.setParameterValue("Account", selectedRowId,

                                Terrasoft.DataValueType.GUID);

                                

                                batchQuery.add(insert);

                            

                        }, this);

                        

                        //batchQuery.execute();

                        batchQuery.execute(function() {

                            this.reloadGridData();

                        }, this);

                        

                        

                        

                    }

                }

                },

                

                

Alina Kazmirchuk,

 

Can the controls in the openInputBox be disabled? What is the property used for it.

I used "enabled : false"

 "UsrQuestion": {

                            dataValueType: Terrasoft.DataValueType.TEXT,

                            isRequired: true,

                            caption: resources.localizableStrings.UsrQuestionCaption,

                            value: {

                                bindTo: "UsrQuestion",

                                enabled: false

                            },

                        }

But dint work. Can you please help .

Alina Kazmirchuk,

How can we apply filter in 

 "UsrContact": {
 
            dataValueType: Terrasoft.DataValueType.ENUM,
 
            isRequired: true,
 
            caption: resources.localizableStrings.UsrContactCaption,
 
            value: {
 
                bindTo: "UsrContact"
 
            },
 
            customConfig: {
 
                tag: "Contact",
 
                list: {
 
                    bindTo: "UsrContactCollection"
 
                },
 
                prepareList: {
 
                    bindTo: "getCollectionValues"
 
                },
 
                loadNextPage: {
 
                    bindTo: "loadCollectionNextPage"
 
                }
 
            }
 
        },
  say I want to filter only customer type contacts.

Please help how to pass filter attribute here. 

 

Thanks,

Sriraksha

Show all comments

Hey Peeps!

 

When I set calendar for an employee setting day offs , how the system allows scheduling activities on that day. 

How to calculate efficiency of an employee when he has reduced working hours but yet he is working?

Like 0

Like

1 comments

Dear Shailey,

 

There is no such functionality that allows to calculate the user's efficiency. You can use the activities for any days. For example, if a customer center user works with cases, he can set the activity with the completed status where start date and due date is the actual time spent to process this case. I case a user spends 1 hour for a ticket - he sets the 1 hour activity.

Another workaround is to use SysUserSession table to see how much time a user was logged in and use this data in the efficiency estimation.  You will be able to see how many days the user was logged in and compare it with the overall business days amount in your targets. 

Other than that, the there is no default tool to calculate this data.

 

Regards,

Dean

Show all comments

Hello all,

 

I am trying to cancel some business processes that are currently running in my system. However, when I click cancel, the process reverts back to running when I refresh the page. Why does this happen?

Like 0

Like

1 comments

Dear Kevin, 

 

The issue may occur because processes are getting canceled asynchronously. Usually, the cancellation happens momentarily, but sometimes the cancellation may wait for other background tasks to finish, which leads to the delay between pressing "cancel process" and actual process cancelation. If the process doesn't get canceled after a major amount of time please contact the support team at support@creatio.com

Show all comments

In dashboards, I can sort only by grouping field or by it's result:

 

When I sort by grouping field I get a meaningless order:

The lookup field I group by:

I want to sort it by the Days start value. So the expected order would be the following:

Is there a way to sort by a particular field?

 

Like 2

Like

1 comments

Hi Yuriy,



Unfortunately, there's no possibility to sort by a particular field in Creatio dashboards now.



Our R&D is already working on improving the dashboard customization so the advanced sorting might be implemented in future releases.



Thank you.

Show all comments

Hi Community,

 

In web application, we can set the default page after login by giving the default value in home page field in system users. I want to the same in mobile application, how we can set the default page after login in mobile application?

 

Like 0

Like

1 comments

Dear Fulgen, 



Unfortunately, there is no possibility to configure home page in mobile application using native tools or changing existing configuration. 

The only possible way to implement this functionality for now is to create your own mobile application using our source files. 



The responsible R&D team is already informed about this request so they will consider a possibility of creating functionality which would allow our users to configure home pages in their mobile apps. 



Kind regards,

Roman

Show all comments

Dear mates,

I build an external application which put data into Creatio's Objects with oData.

From the Account section, i'd like to add a filter with this object but i can't find it in the list.

How can i display the object in the Account section advanced filters ?

 

Thanks,

Nicolas

Like 0

Like

2 comments

Hello Nicolas,

 

To see the column you need in advanced filtration of accounts section you need to have connection between accounts section and you custom section (please double-check if you have this accountId field in your custom object). Secondly if you still doesn't see your custom object - you need to generate source code for all items and compile all items and try building a filter after that. And finally please try using not object name from configurations, but object title (https://prnt.sc/rdqzql) when building your filter.

 

If it won't help please email us at support@creatio.com and provide us with external access to the application (and also provide us with the link to this applicaiton) with access to data and configurations (and also with the name of your UsrObject) so we could take a look at all settings.

 

Best regards,

Oscar

Hello Oscar,

i have compiled all the elements and it works !

i can find my object in the advanced filters

Thank you Oscar !

Show all comments

Hello all,

 

Is there a way that I can have the communication options sorted alphabetically for users?

Like 0

Like

3 comments

Dear Kevin,

 

Here is the example:

 

You can add the "order" attribute for every field that you need to sort to the edit page schema where the field is located.

In the following example we created the integer "UsrSorting" field in the lookup UsrTestLookup1 and copied the values from the "Name" field there. 

https://prnt.sc/kg623a

attributes: {

            "UsrTestLookup1": {

                lookupListConfig: {

                    orders: [

                        {

                            columnPath: "UsrSorting",

                            direction: Terrasoft.OrderDirection.ASC

                        }

                    ]

                }

            }

        },

The result - https://prnt.sc/kg62ci

 

You can try to implement the same logic to the 'Communication option types by communication type' lookup.

 

Regards,

Dean

 

That is great and I've seen that use before. However, I cannot find the correct name in order to reference the communication type lookup.

Dear Kevin,

 

In order to sort the communications options please do the following:

1. Create a replacing client module for the “ContactCommunicationDetail” schema.

2. Add the following code to the schema:

 

define("ContactCommunicationDetail", [], function(){

    return{

        methods: {

            initCommunicationTypes: function(callback){

                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

                        rootSchemaName: "CommunicationType",

                        isDistinct: true

                    });

                esq.addMacrosColumn(this.Terrasoft.QueryMacrosType.PRIMARY_COLUMN, "Id");

                var nameColumn = esq.addMacrosColumn(this.Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "Name");

                nameColumn.orderDirection = Terrasoft.OrderDirection.ASC;

                esq.addColumn("[ComTypebyCommunication:CommunicationType:Id].Communication", "CommunicationId");

                this.initCommunicationTypesFilters(esq);

                esq.getEntityCollection(function(response) {

                    if (response.success) {

                        var entityCollection = response.collection;

                        this.set("CommunicationTypes", entityCollection);

                    }

                    callback.call(this);

                }, this);

            }

        }    

    };    

});

 

Best regards,

Norton

Show all comments