Hello. Could you help us solve the next question: 

We have process, that is triggered by SavedStartMessage, it works corrctly when relevant record is saved from UI (added or updated)

 

What we need to do - when saving some changes from code (other process) to thrigger this starting message. We tried next aproach, but it doesn't trigger required start message:

 

We also tried getting Entity by EntitySchemaQuery, changing some field and tehn saving changes, but it also didn't work.

Could you suggest  some other approach? 

Like 0

Like

3 comments

Hello Iuliia,

 

You can also use the following code in your source code to call your process from it:

var manager = UserConnection.ProcessSchemaManager;
var processSchema = manager.GetInstanceByName("UsrProcess_bf15ef4");
var process = processSchema.CreateProcess(UserConnection);
process.Execute(UserConnection);

So in case your code completed its execution you can call the process using the code above and continue your business logic execution.

 

Best regards,

Oscar

Oscar Dylan,

thanks for this suggestion, but there is a complication. This particula process is set up on the table as this:

So I actually fo not kno the name of it. Is it still possible to start it the way that you suggested

 

Thanks in advance!

Iuliia Diakiv,

 

Event processes on objects also have their codes, please see the example:

So you can try using this name.

 

Best regards,

Oscar

Show all comments

Доброго дня.

Під час виконання операції створення індекса виникає помилка 'Could not check index exists' . На скріншоті показано стек помилки. Чи можете порадити вирішення цієї проблеми

Like 0

Like

1 comments

 Hello,

 

Could you please post your topic here: https://community.terrasoft.ua?

I believe you will receive the answer much faster.

 

Thank you!

Best regards,

Bogdan S.

Show all comments

Hi All,

I have used the quickFilterModule in one of the detail. I am able to see the filter on opening of the page.







When I switch between Tabs in the EditPage and again come back to this detail, I am not able to see the filter. But the data been get filtered as per the current week by default.





I have called this filter both in init as well as onRender functions. I have debuged it, on switching between tabs, Onrender is been called which calls the quickfilterconfig. But still its not coming up in UI. 

I am not able to figure out the root cause for it.

And also, by default it's taking the date range for the current week - How to remove the default date set?



Can anyone help me out with this issue ?



Regards,

Adharsh S

Like 0

Like

4 comments
Best reply

Adharsh,

Hello,

 

You have this logic being implemented in the defValue for startDate and dueDate. These are:

 

defValue: this.Terrasoft.startOfWeek(new Date())

defValue: this.Terrasoft.endOfWeek(new Date())

 

You can remove defValues and the filter will empty itself when browsing between tabs.

 

Best regards,

Oscar

Hi Adharsh,

 

To fix this behavior fast you can add this line to the init function after this.callParent(arguments);

this.set("IsDetailFilterVisible",true);

I've noticed that in case there is an original filter initialized it won't let a custom filter to disappear from the page when browsing between tabs. As a result you will achieve the result desired.

 

Best regards,

Oscar 

Thanks, Oscar Dylan

Regards Adharsh

Hi Oscar,

Also, the custom filter always defaults to the current week. But there is no such condition given explicitly as show the current week. Even though if we remove the filter and again when we switch to that Tab or reloads the page that current week filter been setup automatically. How can we remove the default filter and set it to an empty value?



Regards,

Adharsh

Adharsh,

Hello,

 

You have this logic being implemented in the defValue for startDate and dueDate. These are:

 

defValue: this.Terrasoft.startOfWeek(new Date())

defValue: this.Terrasoft.endOfWeek(new Date())

 

You can remove defValues and the filter will empty itself when browsing between tabs.

 

Best regards,

Oscar

Show all comments

Hello Community, 

 

I have requirements to show How much time has passed till case has been registered in the system. 

 

But the real catch is, the information I have to show on Section list like shown as below.

Here I want to add Passed time column near Resolution time. 

Passed time is time passed till registration of Case. 

 

And also, I want to do same on Dashboard’s list view.

Like 0

Like

1 comments

Hello Meet,

 

Here is an example of how I did it on my side:

 

1) Create a button in the CaseSection schema:

{
					"operation": "insert",
					"name": "CustomButtonContainer",
					"parentName": "ActionButtonsContainer",
					"propertyName": "items",
					"values": {
						"itemType": Terrasoft.ViewItemType.CONTAINER,
						"items": []
					}
 
				},
				{
					"operation":"insert",
					"name": "RecalculateTimeSpent",
					"parentName": "CustomButtonContainer",
					"propertyName": "items",
					"values": {
						"itemType": Terrasoft.ViewItemType.BUTTON,
						"caption": {bindTo: "Resources.Strings.RecalculateTimeSpentButtonCaption"},
						"click": {bindTo: "updateCaseTimePassed"},
						"style": Terrasoft.controls.ButtonEnums.style.RED
					}
				}

As a result the button will appear in the section:

Also don't forget to add the localizable value with "RecalculateTimeSpentButtonCaption" caption.

 

2) Create a string column in the "Case" object with "UsrTimePassedFromCreation" code and Text (250 characters) data type. Save and publish the object.

 

3) Display this created string column in the "Cases" section.

 

4) Add these methods to the CaseSection schema:

updateCaseTimePassed: function(){
				const today = new Date();
				for (let i = 0; i<this.get("GridData").collection.items.length;i++){
					let recordId = this.get("GridData").collection.items[i].values.Id;
    				let result = (today - this.get("GridData").get(recordId).get("CreatedOn")).toString(); //ms
					let diffDays = Math.floor(result / 86400000); //days
					let diffHrs = Math.floor((result % 86400000) / 3600000); // hours
					let diffMins = Math.round(((result % 86400000) % 3600000) / 60000); // minutes
					let resultMessage = diffDays + " days " + diffHrs + " hours " + diffMins + " minutes";
					let updateQuery = Ext.create("Terrasoft.UpdateQuery", {
							rootSchemaName: "Case"
						});
						let filters = updateQuery.filters;
						let caseIdFilter = updateQuery.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL,
								"Id", recordId);
						filters.add("caseIdFilter", caseIdFilter);
						updateQuery.setParameterValue("UsrTimePassedFromCreation", resultMessage, Terrasoft.DataValueType.TEXT);
						updateQuery.execute();
				}
				this.sleep(2000);
				this.updateSection();
			},
			sleep: function(milliseconds) {
  				const date = Date.now();
  				let currentDate = null;
  					do {
    					currentDate = Date.now();
  					} while (currentDate - date < milliseconds);
			}

5) Refresh the page and check the result - the values should populate for all records in the grid upon clicking the added button:

So you will periodically need to click the button to update information on the case time spent. Also you can add additional check for the case status so not to update records that are in "Resolved" or "Closed" status or you can build a filter with cases that are in the "In progress" status and use the button on them only.

 

Also please note that since the data is updated in the database directly you will see the same data in any dashboard representing cases.

 

Best regards,

Oscar

Show all comments

Hello, Community 



We have requirement to generate Report in pdf format.

I have searched also connect with the Creatio support team. And I found Marketplace Application as link below.

https://marketplace.creatio.com/app/asposepdf-connector-creatio 

 

But unfortunately to use this on  big scale we need to buy Subscription.

 

So I want to know there is any other way to achieve our goal? Like development or creating custom script to generate to convert Docx to PDF.



If there is please do let me know.

Like 2

Like

7 comments

Hello Meet!

 

Unfortunately, this marketplace feature is available only via subscriptions. This tool is the only one that can provide PDF export without any development required.

 

The second option that we can recommend is setting up Fast Reports. Please navigate by this link below. In addition, please note that setting up Fast Reports requires minimum development skills.

 

https://academy.creatio.com/documents/technic-sdk/7-15/setting-reports-…

 

Hope this helps!

 

Thank you! 

Hi Danyil,

 

Please don't take this the wrong way, but this is clearly one of the few features that Creatio has "desaccelareted".

 

There was relatively simple way to implement this with the "convert to PDF" option.

 

We have won projects were we assumed that this feature would be available and after several requests from many users it is still not implemented.

 

Fast reports has a really long learning curve and the effort cannot be compared to the simple convert to pdf feature that was available before.

 

 There is still and open answer from Oscar Feb 2020 on this thread:

https://community.creatio.com/questions/convert-pdf

 

"Currently our R&D team is working on implementation of this feature in an out-of-the-box version and we hope that it will return back very soon. We are very sorry for any inconveniences caused."

 

Do you have an ETA for this? is it still in the development pipeline?

 

Thanks

Luis

Since 2019 this feature was removed from Creatio. It is an urgent MUST HAVE!

Hello Luis Tinoco Azevedo,

 

Please be advised that starting from version 7.14.2, the ability to download printable forms in PDF format has been excluded from Creatio.



Please note that customers who are upgrading from previous versions of Creatio which had Aspose components in their system available will have the print to PDF feature working as before.



Our R&D team is informed on this case and they are doing their best to ensure that the upload forms in PDF format will be present in future releases.

I am sorry to say, but I have no possible ETA on this feature being implemented in future updates.



As a workaround, for those users, who need the information from the forms un-editable for other users upon download, I may recommend a printable Word template with limited access using a password to perform changes to the file.

This will ensure that no one would be able to change the Word file without knowing the password.



I hope this helps!

Thank you for your questions, 

Have a great day!

Hi Danyil,

 

Thanks for the reply and the sugestion on the word with password workaround but unfortunately it does not help a lot.

The expectation from our customers is to have this "basic" feature on the core of the product and not throw some paid add-on.

And our expectation, taking in to consideration that there thread going back one year ago that this is in the development pipeline, is that this feature would be available by now.

So please, I have to insist, what is the expectation for this feature to be implemented? We really need a concrete answer.

 

Thanks,

Luis

Luis Tinoco Azevedo,

Thank you for your sincere concerns regarding this matter!



Please note that Creatio had to remove the 'generate to PDF' feature from the platform as the Aspose library is provided only via subscriptions.

 

I have contacted our Product Owner questioning the implementation`s ETA of this feature. 



Please be informed that this process is of great concern on our end and it is currently in development. I would be able to provide the exact ETA in several weeks.



Thank you for your comprehension!

Hope you have a great day!

Danyil

Thanks for the feedback and for checking, I'll be looking forward to hearing some positive news from your side.

 

Cheers,

Luis

Show all comments

I have noticed when attempting to build source or compile in the "Advanced" aka Configuration Tool in 7.17, I get the following error.  The activity spinner continues to spin and the site is unavailable, much like it is continuing.  Just wondering if some timeout value needs to be altered to avoid this?

Like 0

Like

4 comments

You need to review the application logs to identify the exact error message that is received upon compiling the app. Also you need to make sure that there are no firewall restrictions for the service via the link above from your client that could prevent the client from getting the response from the server.

 

Best regards,

Oscar

Oscar Dylan,

No errors and no firewalls as I am local (on-premise).

Shane Judy,

 

this error means that there is a problem with sending\receiving requests to\from IIS-server. Maybe the connection to the internet was lost upon compilation or there is some proxy that reroutes requests or there was some modification on the network layer of the IIS-server when you started the compilation. Try to compile the app once again, it should be successful now.

Oscar Dylan,

Again, I am local to the server... no internet connection involved LAN->LAN... same segment, no proxy and no changes to IIS layer while this was occurring (off-hours here in US).  I am the only one on the network.

 

Show all comments

Hello,

we have set up login via ADFS, for initial login it works correctly. But when trying to access root of the website in new tab (with active session) we receive 403 error 

 

DefaultDocument is set as described here

version 7.14

 

Could you suggest what is the issue here? 

Thanks in advance 

Like 0

Like

2 comments

Update: when we performed error tracing, there is no actual error in the report

Hello Iuliia Diakiv,

 

It only means that there is a problem with the Web.config file located in the root application directory (loader config). Also this error message doesn't really mean that the problem is with SSO settings in the Web.config file, but with its content in general. You need to check for comment symbols or opening tags, closing tags and check if they are needed there or not.

 

You can also take an out-of-the-box Web.config file and Web.config file of your app and compare them using some comparining tools like Araxis Merge.

 

Best regards,

Oscar

Show all comments

Hello community,

 

We have a use case where Creatio co-exists with a legacy application which is SQL heavy - A lot of logic is written using SQL Stored procedures. There are certain custom objects on Creatio that needs to be populated and read by the legacy app on a weekly basis. Integration via APIs is not an option (owing to all the business logic being already available in Stored procedures). Using Excel Import/Export is also not an option. 



We are considering an ongoing ETL via SQL where a stored procedure is used to directly write/read info from Creatio's custom tables. Assume that the Legacy application has a good understanding of the schema and relationships and transformation/mapping to/from Creatio tables is not an issue. 



Pls comment on the following - 

1. Is this feasible? - In my view, this should definitely be feasible as at the end of the day, It is an SQL DB. Any data read out of Creatio's DB does not disturb the state of the data in the DB. Any data modified (correctly) in the DB should reflect correctly in the Creatio application. Can you confirm?

2. Is this recommended? - Apart from ease of use and need for SQL development, Are there any reasons from a Creatio product/architecture stand point why this might not be recommended? The load on the WebServer is a negligible factor as these SQL import/export will only be done during low usage periods weekly.



Thanks in advance!

Like 0

Like

8 comments
Best reply

Hello,

 

Thank you for your question!

Can you please check this Marketplace add-on, I believe it can help you with your business task.

But still, if you decide to use your approach, then:

1. Yes, that is feasible. The data will be available in the Application but you need to understand that if you miss to insert something, the data might be corrupted. Also, this kind if data transfer won't trigger BP as this will be considered to be direct data insert into the DB.

2. I can not say that this approach is recommended but it is possible. And again, you need to perform a lot of testing before real data transfer just not to lose data.

 

Best regards,

Bogdan S.

 

Hello,

 

Thank you for your question!

Can you please check this Marketplace add-on, I believe it can help you with your business task.

But still, if you decide to use your approach, then:

1. Yes, that is feasible. The data will be available in the Application but you need to understand that if you miss to insert something, the data might be corrupted. Also, this kind if data transfer won't trigger BP as this will be considered to be direct data insert into the DB.

2. I can not say that this approach is recommended but it is possible. And again, you need to perform a lot of testing before real data transfer just not to lose data.

 

Best regards,

Bogdan S.

 

Bogdan Spasibov,

Hi Bogdan. Appreciate your very clear answer. 



Yes, We did consider the plugin. But our use case needs to migrate data from a few custom SQL databases and on an ongoing ETL for 2 weeks.  Also, We mostly have custom objects on Creatio and it is not a typical Creatio CRM that we are building. 



#1 Yes, I understand that this won't trigger BPs. We are only doing this as a 1 time migration activity as our client is migrating an existing custom application to Creatio. 

Bogdan Spasibov,

HI Bogdan. Have a follow up question - 



We have workflows & business logic configured at the Application layer (Via business processes, entity event listeners & incoming API integrations). However, we need to transfer some data into our Database only via direct SQL. Is there any way at all of triggering application level logic on some Database level triggers?

 

I can think of a few round about/hacky ways of achieving this. Want some input wrt support for DB to Application layer execution flow from a Creatio product stand point and any clean ways of doing this. 

Bogdan Spasibov,

HI Bogdan. Have a follow up question - 



We have workflows & business logic configured at the Application layer (Via business processes, entity event listeners & incoming API integrations). However, we need to transfer some data into our Database only via direct SQL. Is there any way at all of triggering application level logic on some Database level triggers?

 

I can think of a few round about/hacky ways of achieving this. Want some input wrt support for DB to Application layer execution flow from a Creatio product stand point and any clean ways of doing this. 

M Shrikanth,

 

In case you need to interact with the database directly you need to use either stored procedures or triggers that could trigger additional actions upon some actions on the application level. This will be the easiest way to achieve your target.

 

Additionally there is a separate dbExecutor class that allows interacting with the database directly - https://academy.creatio.com/docs/developer/back-end_development/working….

 

 Please use one of these two options to achieve your business task.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar. Thank you for the response. 



I was referring to use cases like the following - When a SQL Trigger gets activated, Run a business process at the Application layer. There is no direct way to do this I would presume?



Also, the dbExecutor class will help perform operations unidirectionally from the Application layer to the DB layer. I don't think something like this is available - When a trigger runs at the DB layer, it is available as an Event to catch or subscribe to at the Application layer. Is this right?



A very distant example would be something like this - 

https://stackoverflow.com/questions/3512026/how-can-i-execute-net-code-…

 

M Shrikanth,

 

Hello,

 

Yes, you are right, there is no way to call a business process execution using database triggers. You can call a business process to execute using ProcessEngineService.svc https://academy.creatio.com/docs/developer/front-end_development/creati… but this is the application layer.

 

You can call stored procedure using dbExecutor, but not visa versa (trigger calls a process). You can use another approach: insert data to the database and then call the process manually for all the records by their CreatedOn date value. As a result data will be inserted to the system and processed by a business process.

 

Best regards,

Oscar

Oscar Dylan,

Thank you Oscar for your response. Yes, the final approach you have suggested is one of the ways I also thought about. It is still round about and non optimal. Appreciate your answer nevertheless. 

Show all comments

Hello Community!

I would like to know if there is possible set a specific edit page (or type of contact) for the new values creating from the quick view lookup.

Like 0

Like

1 comments

Hello Federico, 



Hope that I understand your question correctly. 

In Creatio you can create a specific record edit page for records depending on value in determined lookup field. 



Please follow this link to get more information on it:

https://academy.creatio.com/docs/user/no-code_customization/ui_and_busi…



Please let us know if it was the information you was looking for, otherwise please clarify your question and provide us with more details with functionality you would like to implement so we could advise you on possible ways of reaching it. 



Kind regards,

Roman

Show all comments

How can I display the Contact field and the Contacts Address fields in one view while in the Contact Section?

Like 1

Like

13 comments
Best reply

Hi Theresa,

 

Here is how the settings look like:

 

 

Regards,

Dean

Hi Theresa,

 

You can use section column settings to add the required columns to the section view. Here is the guide with examples:

https://academy.creatio.com/documents/base/7-16/setting-columns

 

Regards,

Dean

Thank you but I can't find what field to choose for the Contact's Address when it's actually located in the Account.

 

Hi Theresa,

 

Here is the example of settings:

 

 

Regards,

Dean

 

Great thank you!  This is working for most of the contacts but there are some contacts that have an address different from the Primary Address in the Account. Some of our accounts have 5 different addresses and the contacts are located in different locations.

 

Hi Theresa,

 

Unfortunately it will not be possible to display all the addresses of the single account in the contact section list. As a workaround it is possible to create a list dashboard base on contact address object that will show you the contact, its account and the contact address.

 

Regards,

Dean

That's exactly what I need to do then is the workaround. One more question: How do I set up the Column for that? What fields am I choosing because I've been trying to find the Contact.Address with no luck.

 

Hi Theresa,

 

Here is how the settings look like:

 

 

Regards,

Dean

Thank you!  I'm so glad I asked;)

 

Does anyone know why a List created under Dashboard would list a contact more than once, provide no address for the ones that are listed twice and provide the wrong city that doesn't even exist in the Account?  See attachment.  Also, the contacts that are listed twice are NOT duplicates in our main contact list.

Hello,

 

The addresses are taken from the contact page. If there is an address with empty field - the dashboard will show you empty columns.

Also, the dashboard displays address per contact, so if there are couple of addresses on the contact page - you will see the address in the list and the related contact, so Address A - Contact A, Address B - Contact A and so on like this:

 

Regards,

Dean 

Thank you Dean!  I'm actually sending my issues over to the helpdesk now because we are seeing more errors than usual in this list.  The wrong City, but the correct address; when there's only one address in the Account, why is it showing the contact more than once.  Not sure what is going on or if we have special fields that were set up by our developer.  

Hi Theresa,

 

Sure, please approach to the support since it is better to have a closer look to the website to find out why you have some missing or redundant addresses in the list.

 

Regards,

Dean

I appreciate ALL your help.  I learned a lot!

Show all comments