Hello ,

 

I am willing to configure queues and was wondering what is the best practice? Do I configure them on the dev environment and bind them to my working package or shall I create them in prd environment directly?

 

thanks,

Like 0

Like

3 comments

Hello Mariam,

 

Please find the all necessary information on how to work with the Queues section here



Best regards,

Bogdan

Hello Bogdan,

 

Thank you for your response ;

I am able to create and configure queues, my question is regarding transporting queues between instances.

 

Regards,

mariam moufaddal,

 

You can transfer configurations by package. 



We recommend transferring packages between environments deployed on the same version of Creatio in order to avoid unexpected issues after or during the process. 



Best regards,

Bogdan

Show all comments

Is there a table I could query that would show me all the email templates that have been used?

Like 0

Like

1 comments

Hello Mitch,

 

Could you please elaborate on the task you are trying to do?

 

Thank you,

Artem.

Show all comments

Hi Team,

 

I need a solution where all the validations applied on the edit page code of the section are checked while data is imported into the system so as to restrict the invalid data in fields to  create new record in the section.

 

Kindly help me achieve this.

 

Best Regards,

Sarika

Like 0

Like

4 comments

Hello Sarika,

 

Could you please re-phrase your request and give me a bit more details on what business logic you are trying to achieve?

 

Kind regards,

Mira

Hello Mira,

 

The requirement is as follows: 

 

We have a validation check code for not allowing the user to enter a value greater than 5 in the DAC benefit term field on the edit page of a section with the code:

 

TermValidation:function()

            {

                var invalidMessage="";

            var term=this.get("UsrDACBenefitTerm");

                   if(term>5)

                {

                        invalidMessage =                     this.get("Resources.Strings.TermExceeds");

                this.showInformationDialog(invalidMessage);

                    }

           

                return {

                    

                    invalidMessage: invalidMessage

                };    

            }, 

    setValidationConfig :function(){

                this.callParent(arguments);

                this.addColumnValidator("UsrDACBenefitTerm", this.TermValidation);    

}

 

But this check is only administered while user is manually creating the record in that section. and during import, if the value is greater than 5 then also it is getting imported and the record with invalid value is getting generated. I want to make sure that this validation check is also performed while data is imported and created by the system and should not import the rows from the excel sheet with invalid values with greater than 5.

 

How can this be achieved?

Sarika Sharma,

This can be done pretty easily with an entity event listener class. See 

https://customerfx.com/article/adding-code-to-listen-for-entity-events-…

Basically, something like this: 

using Terrasoft.Core.Entities;
using Terrasoft.Core.Entities.Events;
 
namespace FX.EntityEventListeners
{
    [EntityEventListener(SchemaName = "UsrMyEntity")]
    public class UsrMyEntityEventListener : BaseEntityEventListener
    {
        public override void OnSaved(object sender, EntityAfterEventArgs e)
        {
            base.OnSaved(sender, e);
 
            var entity = (Entity)sender;
            if (entity.GetChangedColumnValues().Any(x => x.Name == "UsrDACBenefitTerm"))
            {
                if (entity.GetTypedColumnValue<int>("UsrDACBenefitTerm") > 5)
                    throw new Exception ("The value of UsrDACBenefitTerm cannot be greater than 5");
            }
        }
    }
}

With something like this in place, it would throw an error (and not save the record) anytime a record was attempted to be saved with a value more than 5, whether it's happening via the UI, an Excel import, or even via the OData or DataService APIs.

Ryan

Hi Ryan,

 

Thank you so much for the solution. I would definitely try this out.

 

Best regards,

Sarika

Show all comments

We have previously installed the ExcelReports add-on. Apparently we had an issue with the installation. 

Then we build a custom package to deploy our many customizations.

To get the installation to work correctly, the IntExcelReportSection client module had to be added to our custom package.

Now I am unable to install the latest version of the ExcelReports add-on because of the following errors

 

2022-05-09 23:47:33,681 Data "SysModuleEdit_SysModuleEditManager_4efd452f42e04729bcb1e28f5821567b" from package "IntExcelExport" installed
2022-05-09 23:47:33,713 Compiling configuration dll
2022-05-09 23:48:29,266 Errors and (or) warnings occurred while compiling configuration dll
2022-05-09 23:48:29,266 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'
2022-05-09 23:48:29,266 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'
2022-05-09 23:48:29,266 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'
2022-05-09 23:48:29,266 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'
2022-05-09 23:48:29,266 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'
2022-05-09 23:48:29,266 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.

Looking for some advice on how to successfully uninstall and reinstall this add-on. We're very interested in using this.

 

Like 0

Like

2 comments

As an update, I was able to uninstall the ExcelReports through the Installed Applications utility, but when I tried to uninstall the Excel Reports built in 2019 (see attached screenshots) I get an error that the package cannot be deleted because "Unable to delete the "IntExcelExport" package as it has dependent package "Beable_Customization"

 

 

See note above how we had to add the IntExcelReportSection client module to our custom package to get the package to compile (not sure why).

 

We deleted that component from our Beable_Customization package. I don't know what other component of the IntExcelReport package may be dependent/has a dependancy on the Beable_customization package. 

Hi Mary!

Regarding the first error, I recommend checking the EPPlus library.

It must be only in one package. You have to delete it from another one.

 

Regarding package relations. Please, recheck the dependence of "Beable_Customization" package. It could be connected to the "IntExcelExport" package (see an example in the attachment).



Show all comments

Greetings Community,

I need the options to Approve, Reject and Change Approver in the Approval tab only to be enabled for the assigned approver and not for any one else currently all users are able to approve or reject the approval.

PFA Screen shot for reference



 

Like 0

Like

4 comments

Hello,

 

To solve your business task you can set up Approvals for the section.

The following instructions can help you to achieve the result you are looking for: https://academy.creatio.com/docs/user/platform_basics/communications/approvals_shortcut/approvals

 

Approvals can be managed (approved or rejected):

  • By a specific employee, for example, a department manager.

  • By an employee of the specific role (user group), such as “Finance department,” “Administration,” etc.

Kalymbet Anastasia,

Hi,

I have already configured the approvals as mentioned in the article but the issue is currently all the users in the system  are able to approve/reject the approval.

I need  the approval to be rejected/approved only by the user assigned as approver.

Janhavi Tanna,

You can create a specific role, and allow users of this role to change records of this object.

So, only specific users will be able to edit approvals, while the other users will be able only to read those records.

Best regards, Alex.

Greetings,



Such setup can be achieved by creating a functional role for the desired actions in your system.

You can find more on our Academy page here:

https://academy.creatio.com/docs/user/setup_and_administration/user_and…

Show all comments

Hi Community,

 

I have to use Excel Export Creatio Functionality but instead of downloading the .xlsx file in the system, I have to attach that .xlsx file to the Attachments of a Custom Section.

This task should be performed by the business process after giving filtration criteria as input.

 

Please suggest me a solution to achieve the above task.

Like 1

Like

3 comments

Dear Pratik, 

 

Unfortunately requested functionality is not presented as OOB solution in Creatio at this moment. 

We will register this as an idea for the responsible R&D team to extend the basic functionality in future Creatio releases. 

 

Kind regards,

Roman

Hi Roman Brown,

Thanks for providing the information regarding to this.

 

But, for workaround is there any Creatio Service avaible that can be utilized In some custom script configuration with Script Task element of business process.?

And if yes, Is there any example available on how to make use of such Services in development. 

Hi Roman,

 

Could you please provide steps or source code for a sample excel sheet creation and saving data, that supports creatio platform (ex. using openXml, IronXL or Interop etc.) and later that can be extended with creatio's future release?

 

Regards,

Rishabh

Show all comments

Hello Creatio-Community,

I wanted to ask if it is possible to manually select the fields in activity that I want to have populated from its original section (case, project etc.). Ideally without any business process. 

Some fields like contact, account are already pre-populated, but I can't find any way to select them manually. 

Thanks in advance,

Markus!

 

Like 0

Like

1 comments

Hello!

 

You can configure the basic business logic of the record pages by adding or modifying business rules. Business rules affect the behavior of fields of the page, maybe it will help.

Show all comments

Has anyone been successful using the CreatioSDK in sending date updates via either InsertQuery or UpdateQuery?

 

I've tried sending dates in all the following formats but all result in an error:

 

yyyy-MM-dd

yyyy-MM-ddTHH:mm:ss

yyyy-MM-ddTHH:mm:ss.fff 

yyyy-MM-ddTHH:mm:ss.fffffffZ

M/d/yyyy

d/M/yyyy

dd/MM/yyyy

 

The dates I'm trying to send are defined as DataValueType.Date and I've tried specifying that in the Update/InsertQuery and in desperation also tried specifying as DataValueType.DateTime. 

 

If I omit dates from the Insert/Update queries the updates are successful. 

 

I can successfully enter dates in the records I'm trying to update via the Creatio UI.

 

Here's an example of a stripped down InsertQuery request, including the DueDate column causes an error 500, if excluded the insert is successful:

 

{

  "QueryId": null,

  "QueryKind": 0,

  "ColumnValues": {

    "Items": {

      "Title": {

        "ExpressionType": 2,

        "IsBlock": false,

        "ColumnPath": null,

        "Parameter": {

          "DataValueType": 1,

          "Value": "Test SDK Three",

          "ArrayValue": null,

          "ShouldSkipConvertion": false

        },

        "FunctionType": 0,

        "MacrosType": 0,

        "FunctionArgument": null,

        "FunctionArguments": null,

        "DateDiffInterval": 0,

        "DatePartType": 0,

        "AggregationType": 0,

        "AggregationEvalType": 0,

        "SubFilters": null,

        "ArithmeticOperation": 0,

        "LeftArithmeticOperand": null,

        "RightArithmeticOperand": null

      },

      "Contact": {

        "ExpressionType": 2,

        "IsBlock": false,

        "ColumnPath": null,

        "Parameter": {

          "DataValueType": 0,

          "Value": "fede06a3-1270-4464-8049-c7afb144a018",

          "ArrayValue": null,

          "ShouldSkipConvertion": false

        },

        "FunctionType": 0,

        "MacrosType": 0,

        "FunctionArgument": null,

        "FunctionArguments": null,

        "DateDiffInterval": 0,

        "DatePartType": 0,

        "AggregationType": 0,

        "AggregationEvalType": 0,

        "SubFilters": null,

        "ArithmeticOperation": 0,

        "LeftArithmeticOperand": null,

        "RightArithmeticOperand": null

      },

      "DueDate": {

        "ExpressionType": 2,

        "IsBlock": false,

        "ColumnPath": null,

        "Parameter": {

          "DataValueType": 8,

          "Value": "2022-05-28",

          "ArrayValue": null,

          "ShouldSkipConvertion": false

        },

        "FunctionType": 0,

        "MacrosType": 0,

        "FunctionArgument": null,

        "FunctionArguments": null,

        "DateDiffInterval": 0,

        "DatePartType": 0,

        "AggregationType": 0,

        "AggregationEvalType": 0,

        "SubFilters": null,

        "ArithmeticOperation": 0,

        "LeftArithmeticOperand": null,

        "RightArithmeticOperand": null

      },

      "Amount": {

        "ExpressionType": 2,

        "IsBlock": false,

        "ColumnPath": null,

        "Parameter": {

          "DataValueType": 5,

          "Value": 6718.35,

          "ArrayValue": null,

          "ShouldSkipConvertion": false

        },

        "FunctionType": 0,

        "MacrosType": 0,

        "FunctionArgument": null,

        "FunctionArguments": null,

        "DateDiffInterval": 0,

        "DatePartType": 0,

        "AggregationType": 0,

        "AggregationEvalType": 0,

        "SubFilters": null,

        "ArithmeticOperation": 0,

        "LeftArithmeticOperand": null,

        "RightArithmeticOperand": null

      },

      "Budget": {

        "ExpressionType": 2,

        "IsBlock": false,

        "ColumnPath": null,

        "Parameter": {

          "DataValueType": 5,

          "Value": 0.0,

          "ArrayValue": null,

          "ShouldSkipConvertion": false

        },

        "FunctionType": 0,

        "MacrosType": 0,

        "FunctionArgument": null,

        "FunctionArguments": null,

        "DateDiffInterval": 0,

        "DatePartType": 0,

        "AggregationType": 0,

        "AggregationEvalType": 0,

        "SubFilters": null,

        "ArithmeticOperation": 0,

        "LeftArithmeticOperand": null,

        "RightArithmeticOperand": null

      }

    }

  },

  "RootSchemaName": "Opportunity",

  "IncludeProcessExecutionData": false

}

 

  

Like 0

Like

1 comments
Best reply

Hello Jerry, 



Please try to pass Date into Creatio with the following format in UTC time:

 

      "dataValueType":8,
      "value":"\"2000-01-01T00:00:00.000\""

Kind regards,
Roman

Hello Jerry, 



Please try to pass Date into Creatio with the following format in UTC time:

 

      "dataValueType":8,
      "value":"\"2000-01-01T00:00:00.000\""

Kind regards,
Roman
Show all comments

Hi,

I designed a business process that sends an email and creates a task.

Many outgoing emails appear on the communication panel to be processed.

Is it possible to mark all these emails as processed automatically ?

Like 0

Like

4 comments

Hello Stefano,

 

Thank you for your question!

 

The process on the screenshot will mark all emails in your system as processed once it is started:



Image.png



You can add more filter conditions in order to mark only specific emails as processed.



Else, you can achieve the same result with the SQL query if you have access to the SQL console or the database.

You will need to change the value of the IsNeedProcess column of the EmailMessage table:

 

update "EmailMessageData" set "IsNeedProcess" = false 

update "Activity" set "IsNeedProcess" = false where "TypeId" = 'e2831dec-cfc0-df11-b00f-001d60e938c6' --Type Id stands for Email

 

Best regards,

Anastasiia

Hi Anastasiia

thank you for your response.

I can see the screenshot you have attached

Stefano Bassoli,

 

Just in case - attaching the screenshot once again.

 

Stefano Bassoli,

Ah, ok

thank you very much

Show all comments

Good day community,

 

I'm having trouble with adding the correct JSON path for my request body.

 

I have to send a POST request with the following JSON below:

{
  "members": [
    {
      "@odata.type": "--TYPE HERE--",
      "user@odata.bind": "--USER 1 HERE--"
    },
    {
      "@odata.type": "--TYPE HERE--",
      "user@odata.bind": "--USER 2 HERE--"
    }
  ]
}

This is how my parameter structure looks:

Generated JSON here:

{
	"chatType": "oneOnOne",
	"members": [
		{
			"@odata": {
				"type": "--TYPE HERE--"
			},
			"user@odata": {
				"bind": "--USER 1 HERE--"
			}
		}
	]
}

The problem with this structure is that it generates a nested key for type under @odata, and for bind as well. I don't wan't this to happen if possible.

 

Is there any way to get this to work using parameters in web service? Or would my only resort be to generate the request body via script?

Like 0

Like

2 comments

Hello,

 

The body of the webservice seems to be generated properly since "members" is the array of objects "@odata" and "user@odata". The request was properly parsed and that's why you saw the result as on the screenshot. If this structure won't work in your business case then a separate script task should be created to sent the request.

 

Best regards,

Oscar 

Hi Oscar,

 

Thank you for you response.

 

In forming the json path, I would have made it as $.[members]["@odata.dataType"] or $.[members]["user@odata.bind"], but I'm guessing that this is not possible using the built-in function (nesting parameters) in Creatio?

 

I think I'll instead be resorting to creating a script task for this.

 

Thank you!

 

Lyle

Show all comments