Hi Community,

I am facing an issue which is related to SectionActions Button for sending multiple records. I need to send some records (out of all selected records) to a business process in an array after filtering with esq inside section edit page.

Issue: The filtered Id's are not being pushed into array correctly. Means when we explore the array, the values are there but when we try to print or send we get initial value of that array (i.e. empty string or null).

 

getSectionActions: function() {

                var actionMenuItems = this.callParent(arguments);

                actionMenuItems.addItem(this.getButtonMenuItem({

                    Type: "Terrasoft.MenuSeparator",

                    Caption: ""

                }));

                actionMenuItems.addItem(this.getButtonMenuItem({

                    "Caption": {bindTo: "Resources.Strings.AMDAssignMultipleRecords"},

                    "Click": {bindTo:"runCustomProcess"},

                    "IsEnabledForSelectedAll": true

                }));

                return actionMenuItems;

            },

            runCustomProcess: function(){

                if(this.get("SelectedRows") == "" || this.get("SelectedRows") == undefined){

                    this.showInformationDialog("Please select records for batch process!");

                }

                else{  

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

                    console.log("Selected records : ", selectedRows);

                    var recordsnumber = selectedRows.length;

                    var resIdRows=[];

                    var resIdForArray="";

                    selectedRows.forEach(fnProgramABCArray);

                    console.log("Selected ABC records : ", resIdRows);

                    var selectedOrder = resIdRows.toString();

                    console.log("selectedOrder: ", selectedOrder);

                    var args = {

                        sysProcessName: "AMDProcess_BatchAssignments",

                        parameters: {

                            SelectedRowsCol: selectedOrder,

                            NoOfRes: recordsnumber

                        },

                    };

                    ProcessModuleUtilities.executeProcess(args);

                }



                function fnProgramABCArray(item){

                    var esq = Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "AMDTestPlans" });

                    esq.addColumn("AMDStatus");

                    esq.addColumn("AMDProgram");

                    esq.filters.addItem(esq.createColumnFilterWithParameter(

                        Terrasoft.ComparisonType.EQUAL, "Id", item));

                    esq.getEntityCollection(function (result) {

                        let status = result.collection.getByIndex(0).get("AMDStatus").displayValue;

                        let program = result.collection.getByIndex(0).get("AMDProgram").displayValue;

                        if(status === "In Progress" && program === "ABC"){

                            resIdRows.push(item);

                        }

                    });

                }

            }

 

Please find attached screenshot below with an array of selected records vs another array of selected ABC records and string output as Selected order (empty string).

 

Like 0

Like

1 comments

Hi,

 

The issue here is that ESQ is asynchronous and as a result once the:

 

selectedRows.forEach(fnProgramABCArray);

 

is called, the browser continues executing the main runCustomProcess, but in addition executes the fnProgramABCArray in the background and when the

 

console.log("Selected ABC records : ", resIdRows);

 

and 

 

console.log("selectedOrder: ", selectedOrder);

 

are executed they won't show anything, these will be an empty array and an empty string.

 

You need to modify this logic and perform the filtration of records in the business process directly where you can check all the records passed using either the read data element and the conditional flow or a script task that uses the SelectQuery class to check data consistency.

 

Best regards,

Oscar

Show all comments

Hi all,

I tried to restrict attachment access for the contacts via a process in certain conditions or via object permissions when a document is created from a specific role. I am not successful, should this work ?

 

Thanks in advance

Like 0

Like

1 comments

Hi Franck,

 

As for the "Attachments and notes", in case you need to set the restrictions only for one specific section such as Cases, then you need to set up the object permissions only for one specific object related to this section, such as "Attachments and notes detail object in Cases section". However, in case you'd like to set the same permissions for all the sections/objects attachments, then there will be a need to specify the corresponding object permissions for all the objects/sections (you can filter the needed objects directly in the "Object permissions" with a key-word "attachment").  

 

As usual, you will be able to set up record permissions there as well (the permission mechanism is based on the record authorship):

https://academy.creatio.com/docs/8-0/user/setup_and_administration/user…

 

Best regards,

Anastasiia

Show all comments

I have the popup add-on installed from marketplace. I've used it in the past often, but it stopped working in our current instance about a week ago. I don't have popup blocker on the browser.

 

I had tried uninstalling and reinstalling previously but this wiped all the business processes that had it in place. I cannot rebuild it all again- is there any way to troubleshoot this?

 

https://marketplace.creatio.com/template/popup-element-business-process…

Like 0

Like

2 comments

Hi, Susan,

I have the same issue. Did your troubleshooting successful?

Hi to all,

 

You should identify the cause of the issue first and foremost.

Check the process log and make sure the process was launched and “To whom should the window be shown” field was filled out correctly.

If everything is correct, troubleshoot the issue in the incognito mode.

 

If you cannot reproduce the issue in the incognito mode, check your browser extensions. Some of them, ad blockers in particular, could block pop-up windows in Creatio.

Show all comments

Hello community,

 

Is it possible to remove records adding in a specific detail when the main object is in a specific stage?

Like 0

Like

1 comments

Hello,

 

Add the following code in the page schema of main object under methods:

isDetailEnabled: function(detailName) {
        var DCMStage = this.get("UsrDCMLookup").displayValue;   
	if (detailName === "ExampleDetail") {
		if(DCMStage === "Approved"){
                    return false;       //Disable the "+" button
                }
                else{
                    return true;        //Enable the "+" button
                }
	}
	return this.callParent(arguments);
}

 

Regards,

Sourav

Show all comments

I want to show only the Completed value, not the other values of the lookup.

Printscreen:

Another printscreen :

Is there some lookup where these values are stored, or they are hardcoded an I cant modify them ?

Like 0

Like

2 comments
Best reply

Hello Petrika,

 

For the 1st image, you can search for the lookup named "Activity results" and set the "Available in business process only" column to true/Yes for the values which you don't want to see in the dropdown:

 

 

For the 2nd image, you can search for the lookup named "Activity statuses" and delete/add the values which you want to see in the dropdown:

 

 

Regards,

Sourav

Hello Petrika,

 

For the 1st image, you can search for the lookup named "Activity results" and set the "Available in business process only" column to true/Yes for the values which you don't want to see in the dropdown:

 

 

For the 2nd image, you can search for the lookup named "Activity statuses" and delete/add the values which you want to see in the dropdown:

 

 

Regards,

Sourav

Sourav Kumar Samal,

Thank you very much , it worked

Show all comments

Hello Creatio Community !

Is it possible to add a mini page in Portal ?

I want to add the mini-page of creating an Application in portal. Printscreen below

Like 0

Like

2 comments

Hello,

Currently there is no oob functionality that can allow to use mini pages for portal users and it cannot be changed with basic system tools. 

We already have a query registered for our responsible R&D team to consider implementing this functionality in the upcoming releases.

 

You may consider implementing this functionality with a help of development, please find more information in the below article:

https://academy.creatio.com/docs/developer/interface_elements/mini_page…

Best regards,

Anastasiia

Thank you Anastasia !

Show all comments

Dear,



We are having issues with installing several add-ons from the marketplace.

These same add-ons were successfully installed in other Creatio instances, but here with one specific website they are throwing errors.



1. https://marketplace.creatio.com/app/excel-reports-builder-creatio



2022-05-24 16:14:35,661 Compiling configuration dll

2022-05-24 16:15:33,735 Errors and (or) warnings occurred while compiling configuration dll

2022-05-24 16:15:33,735 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'





2. https://marketplace.creatio.com/app/email-approvals-creatio



2022-05-24 17:45:40,097 Compiling configuration dll

2022-05-24 17:46:32,008 Errors and (or) warnings occurred while compiling configuration dll

2022-05-24 17:46:32,008 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'



It is strange that they both throw the same error.

Is there any way to fix this?





Kind regards,

Vincent

Like 0

Like

1 comments

Hi Vincent,

Creatio platform doesn't allow installing one .dll library several times (in this case, EPPlus). Both errors indicate that you already have the EPPlus library installed on your Creatio site. The 'Excel reports builder for Creatio' app uses the library, while the 'Email approvals for Creatio' app does not.

The problem can be fixed by finding the other package that has the library on your Creatio site and manually removing the library from one of the packages to resolve the conflict.

Show all comments

Hello there,

I've got a question about email templates in business processes and the signature configured in the mailbox settings.

Is it possible to remove the signature from emails with templates?

Our problem is that the signature is bound to the left and the templates is in the middle, so the signature won't fit style wise. 

On normal emails the signature should still be filled in automatically.

Like 0

Like

1 comments

Hello Markus,

 

We investigated this behaviour and currently, the system behaves correctly since you can add a macro in the signature so it could fit the template or depend on some value.



We have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority. 



Best regards,

Bogdan

Show all comments

Hello Community!

I have modified the Activity object in order to display a custom Object (Order) and added an Activity column too. 

Now, when clicking on the RightSideMenu I have the same object (Activity = Attività, and Ordini = Orders) repeated twice. Does anybody know which module is in charge of displaying the options within this menu? Or do you have any idea of what the "cleanest" solution might be?

Thank you and have a great day! :) 

Like 0

Like

5 comments
Best reply

Federica,

 

Basically, there is a table in the database called EntityConnection. You can delete all the records from this table that refer to the objects which you do not need (for example, contact, requests etc).

You can do the following:

delete from EntityConnection where SysEntitySchemaUid in (select Uid from SysSchema where Name = '')

where '' is the name of the object, for example, Contact.

But the thing is if you delete the records from the EntityConnection table - the next fields on the activity page will be deleted automatically as well:



Best regards,

Bogdan

Hello Federica,



Could you please send the screenshot once again?



Best regards,

Bogdan

Hello Bogdan,



Here's the image, sorry for the mishap

Federica,

 

Basically, there is a table in the database called EntityConnection. You can delete all the records from this table that refer to the objects which you do not need (for example, contact, requests etc).

You can do the following:

delete from EntityConnection where SysEntitySchemaUid in (select Uid from SysSchema where Name = '')

where '' is the name of the object, for example, Contact.

But the thing is if you delete the records from the EntityConnection table - the next fields on the activity page will be deleted automatically as well:



Best regards,

Bogdan

Thank you Bogdan! That's exactly what I did (according to your suggestion) ! :) Do you happen to know how to change the icon too? 

 

I made a few tests and to access the icons I need to implement EmailItemSchema client module

Now: 

Show all comments

Hi community,

 

I'm working on a new view object to create custom dasboards for my customer based on Bulk Email stats. I noticed that Creatio has an OOTB View object called "VwBulkEmailAudience" which is based on "BulkEmailTarget", "BETArchiveFirstGeneration" and "BETArchiveSecondGeneration".

Does anybody knows what the least two tables are used for? I have checked both the local-dev and the production site, and those tables are empty.

I enclose the script for the OOTB View in case you'd like to gain a better understanding of what I'm talking about.

 

Thank you in advance guys and girls! Have a nice day :)

-- View: public."VwBulkEmailAudience"
 
-- DROP VIEW public."VwBulkEmailAudience";
 
CREATE OR REPLACE VIEW public."VwBulkEmailAudience" AS
 SELECT "BET"."MandrillId" AS "Id",
    "BET"."CreatedOn",
    "BET"."ModifiedOn",
    "BET"."BulkEmailId",
    "BET"."ContactId",
    "BET"."EmailAddress",
    "BERR"."DCReplicaId" AS "ReplicaId",
    "BET"."LinkedEntityId",
    "BET"."BulkEmailResponseId",
    "BET"."Clicks",
    "BET"."Opens",
    "BET"."ProviderName",
    NULL::text AS "SessionId",
    0 AS "IsSent"
   FROM "BulkEmailTarget" "BET"
     LEFT JOIN "BulkEmailRecipientReplica" "BERR" ON "BERR"."RecipientId" = "BET"."MandrillId"
UNION ALL
 SELECT "FG"."MandrillId" AS "Id",
    "FG"."CreatedOn",
    "FG"."ModifiedOn",
    "FG"."BulkEmailId",
    "FG"."ContactId",
    "FG"."EmailAddress",
    "BERR"."DCReplicaId" AS "ReplicaId",
    "FG"."LinkedEntityId",
    "FG"."BulkEmailResponseId",
    "FG"."Clicks",
    "FG"."Opens",
    "FG"."ProviderName",
    NULL::text AS "SessionId",
    0 AS "IsSent"
   FROM "BETArchiveFirstGeneration" "FG"
     LEFT JOIN "BulkEmailRecipientReplica" "BERR" ON "BERR"."RecipientId" = "FG"."MandrillId"
UNION ALL
 SELECT "SG"."MandrillId" AS "Id",
    "SG"."CreatedOn",
    "SG"."ModifiedOn",
    "SG"."BulkEmailId",
    "SG"."ContactId",
    "SG"."EmailAddress",
    "BERR"."DCReplicaId" AS "ReplicaId",
    "SG"."LinkedEntityId",
    "SG"."BulkEmailResponseId",
    "SG"."Clicks",
    "SG"."Opens",
    "SG"."ProviderName",
    NULL::text AS "SessionId",
    0 AS "IsSent"
   FROM "BETArchiveSecondGeneration" "SG"
     LEFT JOIN "BulkEmailRecipientReplica" "BERR" ON "BERR"."RecipientId" = "SG"."MandrillId";
 
ALTER TABLE public."VwBulkEmailAudience"
    OWNER TO puser;

 

Like 0

Like

2 comments
Best reply

Hi Federica,

The "BETArchiveFirstGeneration" and "BETArchiveSecondGeneration" tables have been added in the 7.17.1 version of Creatio. They are used as a way to archive old records from the BulkEmailTarget table. Records older than 1 year go into those tables.

To get information about the OLD licenses usage you would need to use the VwBulkEmailTarget view as it looks into both the BulkEmailTarget and BETArchive tables. 

 

Best regards,

Max.

Hi Federica,

The "BETArchiveFirstGeneration" and "BETArchiveSecondGeneration" tables have been added in the 7.17.1 version of Creatio. They are used as a way to archive old records from the BulkEmailTarget table. Records older than 1 year go into those tables.

To get information about the OLD licenses usage you would need to use the VwBulkEmailTarget view as it looks into both the BulkEmailTarget and BETArchive tables. 

 

Best regards,

Max.

Thank you very much Max for clarifying! :)

Show all comments