Hi,

 

Is it possible to create Data entry compliance for Leads section? Or any of the custom sections?

 

Thanks

Like 0

Like

3 comments
Best reply

HI Kavian,

 

Yes, it's possible. Here are the steps;

 

1) Add a "Completeness" field into your section object. This one should be an integer.

 

2) Add a record about your section into the "Completeness" table. You can do it with the following SQL script:

INSERT INTO Completeness (Name, EntitySchemaName, ResultColumnName, Scale)
    VALUES ('Quotes', 'VistQuotes', 'VistCompleteness', '{"sectorsBounds":{"min":0,"middleFrom":50,"middleTo":80,"max":100}}')

You should specify Name, EntitySchemaName, ResultColumnName and Scale columns.

 

3) Create replacing client module for your page (for example VistQuotes1Page in my case).

 

4) Add dependencies on following schemas: "CompletenessIndicator", "CompletenessMixin", "css!CompletenessCSSV2", "TooltipUtilities".

 

5) Add two attributes into the "attributes" area:

CompletenessValue: {
    dataValueType: Terrasoft.DataValueType.INTEGER,
    value: 0
},
MissingParametersCollection: {
    dataValueType: Terrasoft.DataValueType.COLLECTION
}

6) Add two mixins (CompletenessMixin, TooltipUtilitiesMixin) into your schema.

mixins: {
    CompletenessMixin: "Terrasoft.CompletenessMixin",
    TooltipUtilitiesMixin: "Terrasoft.TooltipUtilities"
},

7) Add the following methods:

methods: {
    init: function() {
        this.set("MissingParametersCollection", this.Ext.create("Terrasoft.BaseViewModelCollection"));
        this.callParent(arguments);
    },
    onDetailChanged: function() {
        this.callParent(arguments);
        this.calculateCompleteness();
    },
    onEntityInitialized: function() {
        this.callParent(arguments);
        if (this.isEditMode()) {
            var collection = this.get("MissingParametersCollection");
            collection.clear();
            this.set("CompletenessValue", 0);
            this.calculateCompleteness();
        }
    },
    onSaved: function() {
        var callParentOnSaved = this.get("CallParentOnSaved");
        this.callParent(arguments);
        if (!callParentOnSaved && !this.isNewMode() && !this.get("IsProcessMode")) {
            this.calculateCompleteness();
        }
    },
    calculateCompleteness: function() {
        var config = {
            recordId: this.get("Id"),
            schemaName: this.entitySchemaName
        };
        this.mixins.CompletenessMixin.getCompleteness.call(this, config, this.calculateCompletenessResponce, this);
    },
    calculateCompletenessResponce: function(completenessResponce) {
        if (this.Ext.isEmpty(completenessResponce)) {
            return;
        }
        var missingParametersCollection = completenessResponce.missingParametersCollection;
        var completeness = completenessResponce.completenessValue;
        var scale = completenessResponce.scale;
        if (!this.Ext.isEmpty(missingParametersCollection)) {
            var collection = this.get("MissingParametersCollection");
            collection.clear();
            collection.loadAll(missingParametersCollection);
        }
        if (this.Ext.isObject(scale) && this.Ext.isArray(scale.sectorsBounds)) {
            this.set("CompletenessSectorsBounds", scale.sectorsBounds);
        }
        if (this.Ext.isNumber(completeness)) {
            this.set("CompletenessValue", completeness);
        }
    }
},

8) Insert completeness bar into your page with code like following:

diff: /**SCHEMA_DIFF*/[
    {
        "operation": "insert",
        "parentName": "MetricsContainer",
        "propertyName": "items",
        "name": "CompletenessContainer",
        "values": {
            "itemType": Terrasoft.ViewItemType.CONTAINER,
            "items": []
        }
    },
    {
        "operation": "insert",
        "parentName": "CompletenessContainer",
        "propertyName": "items",
        "name": "CompletenessValue",
        "values": {
            "generator": "ConfigurationRectProgressBarGenerator.generateProgressBar",
            "controlConfig": {
                "value": {
                    "bindTo": "CompletenessValue"
                },
                "menu": {
                    "items": {
                        "bindTo": "MissingParametersCollection"
                    }
                },
                "sectorsBounds": {
                    "bindTo": "CompletenessSectorsBounds"
                }
            },
            "tips": [],
            "layout": {
                "column": 0,
                "row": 0,
                "rowSpan": 1,
                "colSpan": 1
            }
        }
    },
    {
        "operation": "insert",
        "parentName": "CompletenessValue",
        "propertyName": "tips",
        "name": "CompletenessTip",
        "values": {
            "content": {"bindTo": "Resources.Strings.CompletenessHint"}
        }
    }
]/**SCHEMA_DIFF*/

A full example of code can be found below:

define("VistQuotes1Page", ["CompletenessIndicator", "CompletenessMixin", "css!CompletenessCSSV2", "TooltipUtilities"],
    function() {
    return {
        entitySchemaName: "VistQuotes",
        attributes: {
            CompletenessValue: {
                dataValueType: Terrasoft.DataValueType.INTEGER,
                value: 0
            },
            MissingParametersCollection: {
                dataValueType: Terrasoft.DataValueType.COLLECTION
            }
        },
        modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
        methods: {
            init: function() {
                this.set("MissingParametersCollection", this.Ext.create("Terrasoft.BaseViewModelCollection"));
                this.callParent(arguments);
            },
            onDetailChanged: function() {
                this.callParent(arguments);
                this.calculateCompleteness();
            },
            onEntityInitialized: function() {
                this.callParent(arguments);
                if (this.isEditMode()) {
                    var collection = this.get("MissingParametersCollection");
                    collection.clear();
                    this.set("CompletenessValue", 0);
                    this.calculateCompleteness();
                }
            },
            onSaved: function() {
                var callParentOnSaved = this.get("CallParentOnSaved");
                this.callParent(arguments);
                if (!callParentOnSaved && !this.isNewMode() && !this.get("IsProcessMode")) {
                    this.calculateCompleteness();
                }
            },
            calculateCompleteness: function() {
                var config = {
                    recordId: this.get("Id"),
                    schemaName: this.entitySchemaName
                };
                this.mixins.CompletenessMixin.getCompleteness.call(this, config, this.calculateCompletenessResponce, this);
            },
            calculateCompletenessResponce: function(completenessResponce) {
                if (this.Ext.isEmpty(completenessResponce)) {
                    return;
                }
                var missingParametersCollection = completenessResponce.missingParametersCollection;
                var completeness = completenessResponce.completenessValue;
                var scale = completenessResponce.scale;
                if (!this.Ext.isEmpty(missingParametersCollection)) {
                    var collection = this.get("MissingParametersCollection");
                    collection.clear();
                    collection.loadAll(missingParametersCollection);
                }
                if (this.Ext.isObject(scale) && this.Ext.isArray(scale.sectorsBounds)) {
                    this.set("CompletenessSectorsBounds", scale.sectorsBounds);
                }
                if (this.Ext.isNumber(completeness)) {
                    this.set("CompletenessValue", completeness);
                }
            }
        },
        mixins: {
            CompletenessMixin: "Terrasoft.CompletenessMixin",
            TooltipUtilitiesMixin: "Terrasoft.TooltipUtilities"
        },
        dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "parentName": "MetricsContainer",
                "propertyName": "items",
                "name": "CompletenessContainer",
                "values": {
                    "itemType": Terrasoft.ViewItemType.CONTAINER,
                    "items": []
                }
            },
            {
                "operation": "insert",
                "parentName": "CompletenessContainer",
                "propertyName": "items",
                "name": "CompletenessValue",
                "values": {
                    "generator": "ConfigurationRectProgressBarGenerator.generateProgressBar",
                    "controlConfig": {
                        "value": {
                            "bindTo": "CompletenessValue"
                        },
                        "menu": {
                            "items": {
                                "bindTo": "MissingParametersCollection"
                            }
                        },
                        "sectorsBounds": {
                            "bindTo": "CompletenessSectorsBounds"
                        }
                    },
                    "tips": [],
                    "layout": {
                        "column": 0,
                        "row": 0,
                        "rowSpan": 1,
                        "colSpan": 1
                    }
                }
            },
            {
                "operation": "insert",
                "parentName": "CompletenessValue",
                "propertyName": "tips",
                "name": "CompletenessTip",
                "values": {
                    "content": {"bindTo": "Resources.Strings.CompletenessHint"}
                }
            },
            {
                "operation": "insert",
                "name": "VistStatusa33f682a-dd58-4739-919d-cb84b9d2fc70",
                "values": {
                    "layout": {
                        "colSpan": 12,
                        "rowSpan": 1,
                        "column": 12,
                        "row": 10,
                        "layoutName": "Header"
                    },
                    "bindTo": "VistStatus",
                    "enabled": true
                },
                "parentName": "Header",
                "propertyName": "items",
                "index": 46
            }
        ]/**SCHEMA_DIFF*/
    };
});

 

Best regards,

Oscar

HI Kavian,

 

Yes, it's possible. Here are the steps;

 

1) Add a "Completeness" field into your section object. This one should be an integer.

 

2) Add a record about your section into the "Completeness" table. You can do it with the following SQL script:

INSERT INTO Completeness (Name, EntitySchemaName, ResultColumnName, Scale)
    VALUES ('Quotes', 'VistQuotes', 'VistCompleteness', '{"sectorsBounds":{"min":0,"middleFrom":50,"middleTo":80,"max":100}}')

You should specify Name, EntitySchemaName, ResultColumnName and Scale columns.

 

3) Create replacing client module for your page (for example VistQuotes1Page in my case).

 

4) Add dependencies on following schemas: "CompletenessIndicator", "CompletenessMixin", "css!CompletenessCSSV2", "TooltipUtilities".

 

5) Add two attributes into the "attributes" area:

CompletenessValue: {
    dataValueType: Terrasoft.DataValueType.INTEGER,
    value: 0
},
MissingParametersCollection: {
    dataValueType: Terrasoft.DataValueType.COLLECTION
}

6) Add two mixins (CompletenessMixin, TooltipUtilitiesMixin) into your schema.

mixins: {
    CompletenessMixin: "Terrasoft.CompletenessMixin",
    TooltipUtilitiesMixin: "Terrasoft.TooltipUtilities"
},

7) Add the following methods:

methods: {
    init: function() {
        this.set("MissingParametersCollection", this.Ext.create("Terrasoft.BaseViewModelCollection"));
        this.callParent(arguments);
    },
    onDetailChanged: function() {
        this.callParent(arguments);
        this.calculateCompleteness();
    },
    onEntityInitialized: function() {
        this.callParent(arguments);
        if (this.isEditMode()) {
            var collection = this.get("MissingParametersCollection");
            collection.clear();
            this.set("CompletenessValue", 0);
            this.calculateCompleteness();
        }
    },
    onSaved: function() {
        var callParentOnSaved = this.get("CallParentOnSaved");
        this.callParent(arguments);
        if (!callParentOnSaved && !this.isNewMode() && !this.get("IsProcessMode")) {
            this.calculateCompleteness();
        }
    },
    calculateCompleteness: function() {
        var config = {
            recordId: this.get("Id"),
            schemaName: this.entitySchemaName
        };
        this.mixins.CompletenessMixin.getCompleteness.call(this, config, this.calculateCompletenessResponce, this);
    },
    calculateCompletenessResponce: function(completenessResponce) {
        if (this.Ext.isEmpty(completenessResponce)) {
            return;
        }
        var missingParametersCollection = completenessResponce.missingParametersCollection;
        var completeness = completenessResponce.completenessValue;
        var scale = completenessResponce.scale;
        if (!this.Ext.isEmpty(missingParametersCollection)) {
            var collection = this.get("MissingParametersCollection");
            collection.clear();
            collection.loadAll(missingParametersCollection);
        }
        if (this.Ext.isObject(scale) && this.Ext.isArray(scale.sectorsBounds)) {
            this.set("CompletenessSectorsBounds", scale.sectorsBounds);
        }
        if (this.Ext.isNumber(completeness)) {
            this.set("CompletenessValue", completeness);
        }
    }
},

8) Insert completeness bar into your page with code like following:

diff: /**SCHEMA_DIFF*/[
    {
        "operation": "insert",
        "parentName": "MetricsContainer",
        "propertyName": "items",
        "name": "CompletenessContainer",
        "values": {
            "itemType": Terrasoft.ViewItemType.CONTAINER,
            "items": []
        }
    },
    {
        "operation": "insert",
        "parentName": "CompletenessContainer",
        "propertyName": "items",
        "name": "CompletenessValue",
        "values": {
            "generator": "ConfigurationRectProgressBarGenerator.generateProgressBar",
            "controlConfig": {
                "value": {
                    "bindTo": "CompletenessValue"
                },
                "menu": {
                    "items": {
                        "bindTo": "MissingParametersCollection"
                    }
                },
                "sectorsBounds": {
                    "bindTo": "CompletenessSectorsBounds"
                }
            },
            "tips": [],
            "layout": {
                "column": 0,
                "row": 0,
                "rowSpan": 1,
                "colSpan": 1
            }
        }
    },
    {
        "operation": "insert",
        "parentName": "CompletenessValue",
        "propertyName": "tips",
        "name": "CompletenessTip",
        "values": {
            "content": {"bindTo": "Resources.Strings.CompletenessHint"}
        }
    }
]/**SCHEMA_DIFF*/

A full example of code can be found below:

define("VistQuotes1Page", ["CompletenessIndicator", "CompletenessMixin", "css!CompletenessCSSV2", "TooltipUtilities"],
    function() {
    return {
        entitySchemaName: "VistQuotes",
        attributes: {
            CompletenessValue: {
                dataValueType: Terrasoft.DataValueType.INTEGER,
                value: 0
            },
            MissingParametersCollection: {
                dataValueType: Terrasoft.DataValueType.COLLECTION
            }
        },
        modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
        methods: {
            init: function() {
                this.set("MissingParametersCollection", this.Ext.create("Terrasoft.BaseViewModelCollection"));
                this.callParent(arguments);
            },
            onDetailChanged: function() {
                this.callParent(arguments);
                this.calculateCompleteness();
            },
            onEntityInitialized: function() {
                this.callParent(arguments);
                if (this.isEditMode()) {
                    var collection = this.get("MissingParametersCollection");
                    collection.clear();
                    this.set("CompletenessValue", 0);
                    this.calculateCompleteness();
                }
            },
            onSaved: function() {
                var callParentOnSaved = this.get("CallParentOnSaved");
                this.callParent(arguments);
                if (!callParentOnSaved && !this.isNewMode() && !this.get("IsProcessMode")) {
                    this.calculateCompleteness();
                }
            },
            calculateCompleteness: function() {
                var config = {
                    recordId: this.get("Id"),
                    schemaName: this.entitySchemaName
                };
                this.mixins.CompletenessMixin.getCompleteness.call(this, config, this.calculateCompletenessResponce, this);
            },
            calculateCompletenessResponce: function(completenessResponce) {
                if (this.Ext.isEmpty(completenessResponce)) {
                    return;
                }
                var missingParametersCollection = completenessResponce.missingParametersCollection;
                var completeness = completenessResponce.completenessValue;
                var scale = completenessResponce.scale;
                if (!this.Ext.isEmpty(missingParametersCollection)) {
                    var collection = this.get("MissingParametersCollection");
                    collection.clear();
                    collection.loadAll(missingParametersCollection);
                }
                if (this.Ext.isObject(scale) && this.Ext.isArray(scale.sectorsBounds)) {
                    this.set("CompletenessSectorsBounds", scale.sectorsBounds);
                }
                if (this.Ext.isNumber(completeness)) {
                    this.set("CompletenessValue", completeness);
                }
            }
        },
        mixins: {
            CompletenessMixin: "Terrasoft.CompletenessMixin",
            TooltipUtilitiesMixin: "Terrasoft.TooltipUtilities"
        },
        dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "parentName": "MetricsContainer",
                "propertyName": "items",
                "name": "CompletenessContainer",
                "values": {
                    "itemType": Terrasoft.ViewItemType.CONTAINER,
                    "items": []
                }
            },
            {
                "operation": "insert",
                "parentName": "CompletenessContainer",
                "propertyName": "items",
                "name": "CompletenessValue",
                "values": {
                    "generator": "ConfigurationRectProgressBarGenerator.generateProgressBar",
                    "controlConfig": {
                        "value": {
                            "bindTo": "CompletenessValue"
                        },
                        "menu": {
                            "items": {
                                "bindTo": "MissingParametersCollection"
                            }
                        },
                        "sectorsBounds": {
                            "bindTo": "CompletenessSectorsBounds"
                        }
                    },
                    "tips": [],
                    "layout": {
                        "column": 0,
                        "row": 0,
                        "rowSpan": 1,
                        "colSpan": 1
                    }
                }
            },
            {
                "operation": "insert",
                "parentName": "CompletenessValue",
                "propertyName": "tips",
                "name": "CompletenessTip",
                "values": {
                    "content": {"bindTo": "Resources.Strings.CompletenessHint"}
                }
            },
            {
                "operation": "insert",
                "name": "VistStatusa33f682a-dd58-4739-919d-cb84b9d2fc70",
                "values": {
                    "layout": {
                        "colSpan": 12,
                        "rowSpan": 1,
                        "column": 12,
                        "row": 10,
                        "layoutName": "Header"
                    },
                    "bindTo": "VistStatus",
                    "enabled": true
                },
                "parentName": "Header",
                "propertyName": "items",
                "index": 46
            }
        ]/**SCHEMA_DIFF*/
    };
});

 

Best regards,

Oscar

Oscar Dylan,

Thanks, is it possible to define negative values? For example, if Lead Contact unsubscribe from a Marketing Campaign, a boolean would be triggered and therefore it will reset the data entry compliance to 0.

 

Thanks,

Hi Kavian Abhari,



Please try to use this code.

 



onEntityInitialized: function() {

      var IsUnsubscribed = true;

        this.callParent(arguments);

        if (this.isEditMode()) {

            var collection = this.get("MissingParametersCollection");

            collection.clear();

          this.set("CompletenessValue", 0);

          if(this.get("IsUnsubscribed") == true){

          return;

          } else

          this.calculateCompleteness();

        }

    },





P.S. "IsUnsubscribed" - this is my example of your boolean variable that sets the unsubscribe logic.



Best Regards, 



Bogdan L.

Show all comments

HI,

Currently I have my Creatio set up to use an individual's person mailbox for sending system emails e.g. the Mailbox for sending email with information on approval. This causes issues, as this persons mailbox gets filled up with sent items which are not appropriate.

 

We use Office 365 for mail and therefore I wanted to set up a distribution group mailbox (no license consumption) for no-reply@ or creatio.notification@ and use this, but when trying to add the mailbox to Creatio, I need a valid password, for which this account does not have. I obviously can use the Group Delegation feature to allow a Send As account, but again am unsure how I can configure this in Creatio.

 

Any help is appreciated.

 

thanks

Like 0

Like

3 comments

Dear Mark,

 

For now, distribution group mailboxes are not supported on our platform. I will ask our developers to take into consideration your post and add this functionality in future releases. 

 

Best regards,

Angela

Angela Reyes,

Hi Angela

 

Firstly, thank you for your reply.

 

Are you able to provide guidance on the method to utilise an O365 non-user account as the email account used to send such notification mails? It is really annoying for a user to see so many 'system' mails in their Sent items, when this is something a service account should be configured to use. 

 

Obviously I would rather not pay for an O365 license just for this function.

Mark Roberts,

For now, we can only suggest using a shared mailbox for such emails or use an additional mailbox. 

 

Best regards,

Angela

Show all comments

Hello colleagues,

 

Somebody using this app? 

 

First of all understand if it works with FastReport printables, ad if the case:

 

Could you share, please some tips to populate the parameters? With the documentation provide I have doubt's and, of course, getting errors using it on those parameters specifically:

 

  • In the case of FastReport, "Convert to PDF" which value must have?
  • "File object" is an input parameter or here I get the Id of created attachment? If not which "File object" Id must I provide here?
  • "Master Column name" is a text, any text? Which is the purpose of this parameter?
  • "Master column value", I understand is the Id of the record where we want to attach the report on File & Links, for example to an Email, ActivityId?
  • "Record ID for printable" in the case of an Account printable (for example), the Id of the account from which we need the report?

Thank you very much for your help

Like 0

Like

3 comments

Hi Julio,

 

 

This app only supports .docx printables, therefore the 'Convert to PDF' parameter must always be 'False'.

 

Here is how the correctly set up element should look like:

No description available.

 

 

Thank you for your questions. We will mention that the app only supports .docx printables in its description.

Thanks Ivan, the image looks broken, could you upload again, please?

Ivan Leontiev,

Is also there any way to a new release that consider FastReport reports?

Show all comments

Hello Colleagues,

 

In a process I need to publish some articles or info regarding some specific contacts in Customers. Those are specifically to one contact in the account.

 

I get the contact id, but don't know how to get the id of the user that belongs this contact to could add permissions to the article in the knowledge base,

 

Some ideas, please?

Like 0

Like

2 comments

Dear Julio,

 

In general - it is not possible. Theoretically you can read the system administration object and get the contact id. Anyway that will not help since the processes do not work with table that stores users due to security reasons. 

Instead you can use the change rights element and grant the rights for employee. It allows to work with user contacts. The rights are assigned to the users through their contacts, so you can select the required contact and assign the necessary rights. 

 

Regards,

Dean

Dean Parrett,

Thanks Dean,

 

it's possible, I did it, see here https://prnt.sc/10j4kvf

 

With the "contactID" you read on "System users (view)" where Contact = contactID, in the result record the Id is the "user Id" you can use later to assign permission to read the article.

 

I understand what you expose, but I check it and works fine, I check the permissions in the article and are as I need, also the user connect to portal and can read the article

 

Thanks again

Show all comments

hello colleagues

 

On Creatio 7.17.2 (Cloud, updated by Creatio) I cannot upload Excel Templates.

 

I also delete extensions .jar, and .apk regarding what publish some time ago @Ryan Farley on https://customerfx.com/article/failure-to-upload-template-for-excel-rep…

 

But on a new site (demo) on v 7.17.1 without to modify nothing regarding extensions I can upload without any problem. I report this to Creatio Support, but they ask me to publish the problem here.

 

Thanks in advance

Like 0

Like

11 comments

 

Hello Julio,

 

Thank you for the detailed video. I saved the link and removed it from the post.

 

I was able to reproduce the issue and forwarded it to the relevant team for further analysis.

Ivan Leontiev,

Thanks Ivan

Hi

I have the same problem. Did you find the solution ?

Thanks

Hi Tiffany,

 

The team is still investigating this issue. I will let you know as soon as we have more information.

Ivan Leontiev,

Thanks Ivan

Any news about this case? I have the same problem

Hello Julio, Tiffany and Daniel,

 

The team fixed this issue. Install the updated package from Creatio Marketplace to resolve it on your end.

Hi Ivan Leontiev,

 

When I install the updated package are giving me the following mistakes that I don't understand.

Any idea how to solve it?

2021-04-21 18:30:27,256 Errors and (or) warnings occurred while compiling configuration dll
2021-04-21 18:30:27,271 Autogenerated\Src\IntReportHelper.IntExcelExport.cs(110,54) error CS0433: The type 'ExcelPackage' exists in both 'EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' and 'EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
2021-04-21 18:30:27,271 Autogenerated\Src\IntReportHelper.IntExcelExport.cs(273,31) error CS0433: The type 'ExcelWorksheet' exists in both 'EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' and 'EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
2021-04-21 18:30:27,271 Autogenerated\Src\IntReportHelper.IntExcelExport.cs(110,11) error CS0433: The type 'ExcelWorksheet' exists in both 'EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' and 'EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
2021-04-21 18:30:27,271 Autogenerated\Src\IntReportHelper.IntExcelExport.cs(84,49) error CS0433: The type 'ExcelPackage' exists in both 'EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' and 'EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
2021-04-21 18:30:27,271 Autogenerated\Src\IntReportHelper.IntExcelExport.cs(84,11) error CS0433: The type 'ExcelWorksheet' exists in both 'EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' and 'EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
2021-04-21 18:30:27,271 C:\Program Files\dotnet\sdk\3.1.301\Microsoft.Common.CurrentVersion.targets(2081,5) warning MSB3243: No way to resolve conflict between "EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1" and "EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1". Choosing "EPPlus, Version=4.5.3.2, Culture=neutral, PublicKeyToken=ea159fdaa78159a1" arbitrarily.
2021-04-21 18:30:35,410 When application installed, an error(s) occured

 

Hi Daniel,

 

This means you have another package with the EPPlus library. Creatio does not allow you to install the same library twice.

Any idea in how to delete the ERPlus library?

Hi Daniel,

 

Unfortunately, the responsible team cannot remove the EPPlus library from the app package. Would you consider removing the library from the other package installed on your site?

Show all comments

 

While creating a dashboard , to select any contact / owner , Creatio gives the option to choose contact or current contact . If the same dashboard is to be made available for a specific org role or few org roles  , how can that be configured ?

Like 0

Like

1 comments

Hello Shailey,

 

You can try to built the filter in a following way:

 

Best regards,

Bogdan S.

Show all comments

Hello,

I would like to block the customer file upload for incoming calls on certain phone numbers, can you tell me how to do this, please?

Best regards.

Like 0

Like

3 comments

Hello Antoine,

 

Can you please provide us with more details regarding your request?

 

Thank you!

Bogdan Spasibov,

Hello Bogdan,

Of course.

We have connected our Asterisk phone system to Creatio. Each incoming call will be displayed on the right side of the telephony section. (Normal operation)

On the other hand, when the person is already in communication, the call switches to all the users and at that moment opens a contact form that cancels everything that was being entered by the users (estimates, activities, ...).

This behavior appears mainly for some numbers of our external collaborators.

For example our logistics department call, the desired extension does not answer, the call then switches to all the other sales people and closes what they were doing.

I hope I have been clearer in my explanations.

Thank you for your help.

My best regards.

Hello Antoine,

 

I suppose that the page is opened by some business process that is triggered by an incoming call. Can you check if you have any processes running right after the call is received?

If that is the case, you can modify the business process by means of adding additional filtration so the page won't pop-up.

 

Best regards,

Bogdan S.

 

Show all comments

Hello colleagues,

 

I need to generate a FastReport Template, attach to accounts files and after this send it using, also from Marketplace "Send email with attachments"

 

How can I orchestrate the process to could send this email with the report attached?

 

Some suggestions

Like 0

Like

2 comments

Hello Julio,

 

Please check this Marketplace add-on. I believe it can cover your business need.

 

Best regards,

Bogdan S.

Thanks @Bodgan,

 

It doesn't help, because just work with MS Word reports, they have not considered to include FastReport on their implementation

 

Because of this I need to understand how to configure both applications mentioned above to solve the problem I need to implement

 

Best regards

Show all comments

Hello Community,

 

How to make 'Comments on the approve' field mandatory before rejecting an approval?

 

Like 1

Like

4 comments

can try a business rule on the approval object for status = negative , make comments mandatory. not sure if this will work on the prompt!

Hello,

 

You need to create a replacing view model for PreconfiguredApprovalPage and add a code similar to this one:

attributes:{
				"Comment":{
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"isRequired": {"bindTo":"isCommentRequired"}
                }
          },
          methods: {
            isCommentRequired: function(){
				if (this.get("Status").displayValue=="Negative"){
				return true;
                } else {
				return false;
                }
            }
          },

In this case when the reject button is clicked the field should be filled in:

Best regards,

Oscar

Hi,

I need same functionality in the freedomUI. What changes need to be done?. I tried with the above code mentioned, but it's not working.

Please let me know if there is any way.



Thanks.

Regards,

Manideep

HI,

Unfortunately, currently, you cannot do this on a new UI.

Show all comments

I am using Creatio marketplace add-on for Excel reports https://marketplace.creatio.com/app/excel-reports-builder-creatio. First I tried it using a trial instance and it was working fine. But in a production instance I am not able to upload templates to the reports.

I have tried removing .jar and .apk from "File extensions DenyList" system settings. Also tried removing the add-on and installing it again. but still could not able to upload the templates. It is doing nothing when I click upload button and select the template.

 

Thanks in advance.

Like 0

Like

2 comments

Do you see any errors in the browser console when you attempt to upload a template?

Ryan

Hi Ryan Farley, 

Thanks for the reply. Yes I am getting an error in the browser console "Uncaught Error: One or more filters are not filled, please fill in all filters and try again".

Here I have attached a screenshot.

Show all comments