ExcelReportBuilder
Upload
template

Hi Community,

I am having some difficulties importing an excel template into my excel reports on my production machine. This machine is in version 7.16.4.1731.

I already tried to import it into my development machine, which is in version 7.16.3.1473 and the whole process was completed successfully, I managed to import a template into my excel reports.

Is the problem related with the application version? Can you help me solve this issue?

 

Thanks in advance.

Like 3

Like

3 comments
Best reply

Hello Pedro,

For some reason, when you upload a template it thinks the template is an apk or jar file. These extensions are on the file deny list in Creatio so it is rejecting the file upload. Not sure when this changed, it didn't used to fail like this.

Anyway, to resolve this, you can simply remove "apk" and "jar" from the "FileExtensionsDenyList" system setting. Then you will be able to upload templates.

Ryan

Hi Pedro,

 

Thank you for informing us.

 

Kindly note that we implemented new security restrictions for the formats of uploaded files in Creatio 7.16.4.

I have forwarded your issue to the responsible team for investigation and will get back to you with the updates ASAP.

 

Have a good day!

Hello Pedro,

For some reason, when you upload a template it thinks the template is an apk or jar file. These extensions are on the file deny list in Creatio so it is rejecting the file upload. Not sure when this changed, it didn't used to fail like this.

Anyway, to resolve this, you can simply remove "apk" and "jar" from the "FileExtensionsDenyList" system setting. Then you will be able to upload templates.

Ryan

Ryan Farley,

We remove both extensions from the list and its now working, thank you for your response.

 

Best Regards,

Pedro Pinheiro and Tiago Sousa

Show all comments
detail
Custom Details
OrderProducts

Is it possible so that a new line is added to the product detail every time enter is pressed?

 

This way adding products is greatly sped up (compared to clicking + and going through the Product page).

 

Does anybody know how to achieve this?

Like 0

Like

5 comments
Best reply

Turns out using plain enter would conflict with the need of the dropdown lookup. I picked alt+enter. This is how:

define("OrderProductDetailV2", [], function() {
	return {
		entitySchemaName: "OrderProduct",
		messages: {
		},
		attributes: {
		},
		methods: {
            /** 
             * add Alt+Enter as a shortcut to an active record
             */
			initActiveRowKeyMap: function (keyMap)
			{
				keyMap.push({
					key: Ext.EventObject.ENTER,
					alt: true,
					defaultEventAction: "preventDefault",
					fn: this.onAltEnterKeyPressed,
					scope: this
				});
				this.callParent(arguments);
            },
            /**  
             * Enable the logic for saving the current row and
             * creating a new one
            */
			onAltEnterKeyPressed: function () {
				var activeRow = this.getActiveRow();
				this.unfocusRowControls(activeRow);
				Terrasoft.chain(function(next) {
				this.saveRowChanges(activeRow, next);
				}, function(next) {
					this.activeRowSaved(activeRow, next);
				}, function() {
					this.addRecord();
				}, this);
			}
		},
		diff: /**SCHEMA_DIFF*/[
            // this overides the little + button to skip the OrderProductPage
			{
				"operation": "merge",
				"name": "AddRecordButton",
				"values": {
					"click": {"bindTo": "addRecord"}
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Turns out using plain enter would conflict with the need of the dropdown lookup. I picked alt+enter. This is how:

define("OrderProductDetailV2", [], function() {
	return {
		entitySchemaName: "OrderProduct",
		messages: {
		},
		attributes: {
		},
		methods: {
            /** 
             * add Alt+Enter as a shortcut to an active record
             */
			initActiveRowKeyMap: function (keyMap)
			{
				keyMap.push({
					key: Ext.EventObject.ENTER,
					alt: true,
					defaultEventAction: "preventDefault",
					fn: this.onAltEnterKeyPressed,
					scope: this
				});
				this.callParent(arguments);
            },
            /**  
             * Enable the logic for saving the current row and
             * creating a new one
            */
			onAltEnterKeyPressed: function () {
				var activeRow = this.getActiveRow();
				this.unfocusRowControls(activeRow);
				Terrasoft.chain(function(next) {
				this.saveRowChanges(activeRow, next);
				}, function(next) {
					this.activeRowSaved(activeRow, next);
				}, function() {
					this.addRecord();
				}, this);
			}
		},
		diff: /**SCHEMA_DIFF*/[
            // this overides the little + button to skip the OrderProductPage
			{
				"operation": "merge",
				"name": "AddRecordButton",
				"values": {
					"click": {"bindTo": "addRecord"}
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Hi Jonas,

 

To avoid opening the "Products" section and simply switch to a new line, you can press the "Tab" button and add a new product to the detail, choosing it from an appeared lookup.

 

Regards,

Anastasiia

That is technically possible, but not what the customer requested.

Jonas,

 

Sure, there is one more option you can use. 

 

1. Create a replacing client module schema for the detail schema ("ProductDetailV2", UIv2 package). Here is the article on how you can do it:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-…

 

2. In a new replacing client schema, please set the parent object (Base detail - Products ( UIv2 )) and insert the code below:

 

define("ProductDetailV2", ["terrasoft", "ConfigurationEnums", "MaskHelper", "ConfigurationGrid",
    "ConfigurationGridGenerator", "ConfigurationGridUtilities"],
  function(Terrasoft, enums, MaskHelper) {
    return {
      mixins: {},
      attributes: {},
      messages: {},
      methods: {},
      diff: /**SCHEMA_DIFF*/[
        {
          "operation": "merge",
          "name": "AddRecordButton",
          "values": {
            "click":{"bindTo":"addRow"}
          }
        }
      ]/**SCHEMA_DIFF*/
    };
  });

3. Save your changes and hard-reload the page. Now, you are able to add a new line by clicking plus. 

 

Regards,

Anastasiia

True, but that does not enable adding a new line through a shortcut when in edit mode, which was the original question, that I solved per my answer above.

Show all comments

Hello,

 

I'm having trouble designing a process that is triggered by the deletion of a record. At the moment, the process looks like the screenshot attached. First, I need to read the record that is about to be deleted to find some other ID. Then, I want to start a subprocess that uses this ID. However, this subprocess should only start once the record is actually deleted. How can I accomplish that? At the moment, the subprocess is started before the record is actually deleted and thus isn't working properly.

 

Kind regards

Kai

Like 0

Like

12 comments
Best reply

Kai Wilker,

 

You need to create a process that is connected to the object itself and is connected to the delete event. To do this you need to go to the object settings and click this button:

Once done you will see a process editor where you can create custom script tasks that can process the record. Also the start signal for the process should be catching a message that is generated before or after deleting a record (called CaseDeleting and CaseDeleted in my example above). Please examine base processes from "Case" object in the "Case" package for example so to create your own process.

 

Best regards,

Oscar

Hi Kai, 



You can implement such behavior by using a start signal which has that kind of logic.



Please find the example of a business process which is triggered by record deletion attached.



Thank you.

Bohdan Zdor,

to Kai's point. How can I capture the GUID of the deleted record though? The above process would start once the record is deleted at which point the GUID does not actually exist anymore.

Hi Oliver,



Maybe, this community post will help you on it:



https://community.creatio.com/questions/delete-trigger



Thank you.

Oliver Schmidt,

 

This article outlines how to read the record being deleted in a process: https://customerfx.com/article/working-with-delete-signals-in-a-process…

 

However, keep in mind, if all you need is the ID, you can get that from the signal start.

Ryan

Kai,

If all you need is the ID of the record getting deleted, and not to read the other data of the record getting deleted, then all you need to do is change the start signal to "run in background", then the record will be deleted at that point, and you can get the ID of the record deleted from the start signal. However, you won't be able to read any of the other data of the record deleted since it's gone at that point.

Ryan

Bohdan Zdor,

Thanks for your reply. I'm already using the start signal you described. The problem for me is that I first need to read to record about to be deleted (that is, doing an action before the record is deleted) and afterwards I want to start a subprocess that only works properly after  the record is deleted.

Ryan Farley,

Thanks for your help! I've actually read the the article written by Tate Farley about this, which helped my understanding a lot. Unfortunately I need to more than just the ID of the deleted record, I need to read this record for a last time and find an ID of a connected record. Then however, I want to start a subprocess that should only start once the record is actually deleted. Maybe I could use to onDelete function to that end, as described in the other thread?

Kai Wilker,

 

You need to create a process that is connected to the object itself and is connected to the delete event. To do this you need to go to the object settings and click this button:

Once done you will see a process editor where you can create custom script tasks that can process the record. Also the start signal for the process should be catching a message that is generated before or after deleting a record (called CaseDeleting and CaseDeleted in my example above). Please examine base processes from "Case" object in the "Case" package for example so to create your own process.

 

Best regards,

Oscar

Oscar Dylan,

Thank you for your help! This is exactly what I was looking for.

Ryan Farley,

Thanks Ryan,

 

For me this a headache, so If I uncheck "run in background" for all next purposes the record still exist. I mean if I want to sum all invoice detail records related to the same invoice, I need the get the invoice number, so I need to uncheck "run in background", but later when sum the detail records, the deleted record also is included in the sum, how can I, after get the invoice number, can sum the invoice detail records exluding the deletede one?, I can introduce in the condition "and Id != id of deleted record", but is a more transparent and clear way to do this?

Julio.Falcon_Nodos,

Hi Julio, the only way to do this when you uncheck the "run in background" is to exclude the deleted record Id from the sum (add a filter where the Id != deleted record Id)

Ryan

Ryan Farley,

Thanks Ryan, in this case I will have no info regarding the deleted record, so I'll treat deleted trigger as special case and exclude the deleted record from any calculation on the related table , in this way 

Show all comments
#email
7.16
Sales_Creatio_enterprise_edition

Dear,

When i try to add a specific email address, the system return me the following error:

"This account allready exist. Modifiy email address and try again".

But the email address is not in the list, may be it has been added and delete next, but the email address is not in the creatio email list anymore.

How can i solve this issue please,

Thanks,

Nicolas

Like 0

Like

1 comments

Hello Nicolas,

 

Hope you're doing well.

 

If you are trying to add a new mailbox to the system and you have received the notification which you have mentioned before, it can mean that possibly the other user has already added this email to the system under its own profile. You can check the absence of the needed email by running the next query in your DB:

 

select * from MailboxSyncSettings

 

This query will show you the list of the already connected mailboxes. There you also can check who is the owner of the mailbox by the "SysAdminUnitId" column via the next query:

 

select * from SysAdminUnit where Id='SysAdminUnitId_value_for_the_needed_record'

 

In case when the needed mailbox was already added by other user, you can ask this user to set the shared mailbox (more information about this you can find in this article) if it fits your business tasks or log in under this user and delete the mailbox.

 

Also, you can delete the mailbox from the database using SQL Studio if the instance is on-site or by using SQL Executor if it is a cloud environment. At the same time we do not recommend to delete mailboxes from the application using other way than standard delete procedure from system user profile.

 

Best regards,

Roman

Show all comments
projects
order
7.16
Sales_Creatio_enterprise_edition

Hi,

I would like to add the payment status data within the Financial Indicators tab of the Project detail pages. This will allow our team to easily see information that can help them determine correct responses.

The Opportunity is connected to a Project and the Order, but when I add a 'New Detail' to the Financial Indicators with the following settings, I get no output:

  • Detail - Orders
  • Detail Column - Opportunities
  • Object Column - ID

I have tried other variations, but so far no output. I would be thankful for any guidance on how I can show the following information on this Financial Indicators tab:

Order Number       Payment Status

 

thanks

 

Mark

Like 0

Like

3 comments

Dear Mark,

 

Detail setup has the following logic: 

"Detail" is the name of the detail in the system.

"Caption on the page" is how it will be named on the page.

"Detail column" is an object in your detail that is equal to the current record. If you are adding Contact detail to accounts then you select Account as detail column since each contact has an account and you will see all contacts with Account = Current record when you open this detail. 

"Object column" is a column that specifies what will be shown in detail. Usually, it is ID of the connected record. 

 

Try to apply similar logic to your architecture to see which field to use as "Detail column" - maybe it is missing in the object? 

 

Best regards,

Angela

Hi Angela

 

Thanks for your reply. I have not been able to identify the correct combination to use so far.

 

As the Order is not directly connected to a Project, instead each are connected to the same Opportunity, I concentrated on trying both of these as the Detail, but no success so far.

 

thanks

 

Mark

Mark Roberts,

Then you need to check that records added to detail have needed columns. So that when you add a new record into detail Project, the project must have the same opportunity as in Order. Thy to add Opportunity field in detail to track if is added or not. 

 

Best regards,

Angela

Show all comments

Hi Community,

 

we have this situation, where we need to classify each row of our attachments detail with a lookup value that we have created previously.

 

For example, in our custom object Quote we have an Attachment detail that receives two types of Attachments one called "Proposta" and the other called "Orçamento".

 

The following screenshot shows the LinkPageV2 with the lookup we have created.

 

In order to implement this we've created two replacing objects, one for the object File with the lookup field we've created previously and the other QuoteFile that calls this "new version" of our File, as you can see in the screenshot bellow.

 

We want to know if this is the correct way to add a new field in the object responsible for the Quote Attachments.

 

After we implemented this field, we need the user to classify each of the added attachments in the detail. So we tried to add on our Attachment detail an editable list like this https://academy.creatio.com/documents/technic-sdk/7-16/adding-detail-ed…, but the logic we did cannot find the columns of our detail. Any idea on how to achieve this, create a editable list for the attachments detail?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

 

Like 0

Like

3 comments

Dear Pedro,

 

1) I am not sure why you needed 2 different objects there - you could just use File object created by the system and add new lookups in in

2) If you have more than 1 attachments detail in the page system will not work as expected as currently 2 same details on one page are not supported. Try to remove extra detail. 

 

Best regards,

Angela

Hi Angela Reyes,

 

I did what you've said in 1) and 2), now I have one replacing object for "QuoteFile" and one attachment detail inside the page. Both solutions fixed part of the problems but I'm getting this new error when I tried to edit the line in my detail.

 

This first screenshot shows the editable list that I added in the attachments detail, as you can see the buttons are not appearing in the blue rectangle.

 

The screenshot bellow shows the errors that I'm getting when I try to edit one of the fields in the editable list.

 

To implement the editable list in my "FileDetailV2" I simply follow this guide https://academy.creatio.com/documents/technic-sdk/7-16/adding-detail-ed….

 

Any idea on how to fix this errors that are appearing now?

 

Thanks in advance.

 

Best Regards,

Pedro Pinheiro

 

Pedro Pinheiro,

It is hard to locate the source of the issue without debugging. Try to debug this code to find what property system cannot find and where it is expecting it to determine what causes the error. 

 

Best regards,

Angela

Show all comments
Gamification
7.16
Sales_Creatio_enterprise_edition

Hello community!

 

I have successfully installed the gamification add-on but unfortunately, I can’t start any game so far.

 

Once created a new game, the process to CHANGE STATUS TO ‘IN PROGRESS’ doesn’t work as expected. Instead, the launching step just freezes during the loading process, no outcome is noticed.

 

 

Here is what I’ve got after some attempts:

1) The system freezes with the Loading message on the screen, nothing happens no matter how much time you wait for the expected execution.

2) SCORING REASONS and REWARDS are deleted any time you may decide to reload the Loading page.

 

Any thoughts?

 

Thanks, everyone!

 

Like 0

Like

7 comments

Hello Alessandro,



Please specify your Creatio product and its version. This info will help us reproduce the issues that you have experienced.

Hi Alexander, 

 

This is a full-fledged Creatio product (cloud enterprise edition), the system version is 7.16.4.1731.

 

Thank you for your help.

Hello Alessandro,

 

Thank you for the details provided. I have successfully reproduced the issue and notified the responsible dev team. I will let you know of any updates.

 

Have a good day!

Hello Alessandro,

The issues mentioned above are closely related to Postgre compatibility problems of the add-on. Since the responsible team can't fix the problem within a month, we are removing the add-on from publication.

 

We will re-publish the add-on on Creatio Marketplace after the responsible team resolves the Postgre compatibility issue. 

 

Sorry for the inconvenience.

 

any idea , when will this add -on be republished on marketplace ? Or do we have any similar one in marketplace ?

Hi Shailey,

 

We are currently looking for a new team to take over the add-on development. We can't provide any ETA for republishing at the moment.

 

There are no similar add-ons on the Creatio Marketplace. However, you might want to consider using dashboard tools to setup dashboards with the employees' key performance indicators.

Ivan Leontiev,

Hi Team,



Any update on this?

Show all comments
#marketing
#creatio
#licence
#campaign
7.16
Sales_Creatio_enterprise_edition

Dear,

We bought a marketing Licence for Creatio.

When i try to create a campaign, the system told me that a licence is required.

Even if the marketing licence is enable on my user account.

Our provider told us it was because we have no active contact...

All i want to do is create a campaign in order to import another mass mailing provider statistics for this campaign. it has not been send by Creatio.

 

Why can't i create a campaign on Creatio ?

 

Thanks you,

Nicolas

Like 0

Like

2 comments

Hello Nicolas, 

 

The marketing campaigns require the following licenses:

  1. Marketing campaign licenses (“marketing creatio”). These licenses enable the functions of the Creatio Marketing sections: [Email], [Campaigns], [Events], etc. 
  2. Active marketing contact licenses ("marketing creatio 1000 active contacts"). The licenses are used for creating records in the [Email], [Campaigns], and [Events] sections. 

If the user does not have one of those licenses, errors may occur during the following operation:

  • saving or sending emails;
  • editing email templates in the Content Designer;
  • advancing a campaign to the [Marketing email] step;
  • certain operations in the [Events] and [Campaigns] sections might be disabled.

More detailed information about marketing licenses can be found in the Marketing campaign and active contact licenses Academy article. 

 

Best regards, 

Olga. 

Hello Olga,
It's a pity that we can not import into Creatio our emailing statistics if we send our emailing with another provider.

Show all comments
image
Validation
Image_Upload
7.16
Sales_Creatio_enterprise_edition

Hello Community,

 

I have a use case where when a user uploads a contact profile photo, I need to perform specific validations - Eg Check the bit depth & file format of the image. If the bit depth or the format doesn't match, I need to reject the image and show a message to the user. These validations are complicated and sometimes not possible on the client side using JS. 

 

I am aware that Contact profile photo gets uploaded via the out-of-the-box ImageAPIService. How do I customize or extend the service to add my own validations on the server side?

Like 0

Like

1 comments

Hello Shrikanth, 

 

Unfortunately, we do not have the exact example of your business task realization. However, we recommend that you take a look at the following Community post where a similar task and ways of its implementation are described: https://community.creatio.com/questions/attachement

 

Please, let us know in case any further information is required. 

 

Best regards, 

Olga. 

Show all comments
7.16
Sales_Creatio_enterprise_edition

Hi all,

 

Does deleting a contact trigger sync process? If no, how can we do that?

 

Thanks for your help

Like 0

Like

3 comments
Best reply

Hello Kavian, 

 

In the out-of-the-box version of the application, there is no such functionality.  Anyway, you can discuss the development and implementation of this kind of functionality during advisory hours and contact our manager for further questions.

 

About the basic functionality: there are two ways how Contacts can be synchronized. The first one is manual: for that you need to go to the Contacts section, click the 'Actions' button, choose 'Synchronize contacts' and select the 'Synchrinize now' option. 

 

The second option is using of automatical Contacts synchronization.

 

In this case system will sync contacts every specific interval of synchronization (for example, every minute). The interval (stored in minutes) for the synchronization can be changed in Mailbox synchronization interval system settings:

Even if you enabled the automatical sync process you are still able to sync Contacts manually.

 

Also in the following articles you can find more information about the synchronizing contacts with MS Exchange:

https://academy.creatio.com/documents/technic-sdk/7-16/synchronizing-contacts-ms-exchange?document=

https://academy.creatio.com/documents/administration/7-16/synchronizing-creatio-contacts-ms-exchange-and-microsoft-365-contacts

 

Best regards,

Roman

Hello Kavian, 

 

In the out-of-the-box version of the application, there is no such functionality.  Anyway, you can discuss the development and implementation of this kind of functionality during advisory hours and contact our manager for further questions.

 

About the basic functionality: there are two ways how Contacts can be synchronized. The first one is manual: for that you need to go to the Contacts section, click the 'Actions' button, choose 'Synchronize contacts' and select the 'Synchrinize now' option. 

 

The second option is using of automatical Contacts synchronization.

 

In this case system will sync contacts every specific interval of synchronization (for example, every minute). The interval (stored in minutes) for the synchronization can be changed in Mailbox synchronization interval system settings:

Even if you enabled the automatical sync process you are still able to sync Contacts manually.

 

Also in the following articles you can find more information about the synchronizing contacts with MS Exchange:

https://academy.creatio.com/documents/technic-sdk/7-16/synchronizing-contacts-ms-exchange?document=

https://academy.creatio.com/documents/administration/7-16/synchronizing-creatio-contacts-ms-exchange-and-microsoft-365-contacts

 

Best regards,

Roman

Roman Rak,

Thanks for your response. So correct me if I'm wrong, if an user delete a contact from CRM, that contact will not be deleted from Outlook (for example)?? However, if modified, those modifications will be applied, right?

Kavian Abhari,

Yes, you are correct

Show all comments