Hi, community. We have the excel report builder add-on installed. It works fine for all sections except Leads. This is the error message we get:

 

 

When I save changes to the section in the section wizard, it saves them fine. The object compiles correctly. How can I dind out which column is the problem?

 

Thanks!

Like 1

Like

0 comments
Show all comments

How does you calculate the health score of an account?

Like 0

Like

1 comments

Hello Andrew,

 

Thank you for your question!

 

Please, check this article on our Academy on predictive scoring:

https://academy.creatio.com/docs/user/no_code_customization/ai_tools/pr…

 

Hopefully, this will help but please let us know if you have any other questions.

 

Kind regards,

Anastasiia

Show all comments

Hello community,

 

I use the [Process file] business process element to generate custom FastReports to print my opportunities.

I succeeded in generating PDF as Attachments, but I would like to download the PDF instead.

 

Do you think this is possible? If so, how to proceed?

 

Thanks

Like 4

Like

4 comments

Hi Vincent, 



Unfortunatelly there are currently no option to automatically download the attachment using the business process. 

As a workaround you can set up an autogenerated page that would show the link to the file, so you'd need to make one more click to download the file rather then going to the section and downloading it from there. 

In order to build the link please refer to this community post: https://community.creatio.com/questions/link-attachment-file



I'll also register an idea for our developers to implement such functionality in future releases of the app. 



Best regards,

Yurii

Yurii Sokil,

 

 

I'd love to see a download trigger in Business Process as well.

This would be a useful addition, it looks like we may have to build this ourselves.

Would be nice to see this in a future update

Show all comments

Hello Team,

 

Facing some issues while registering DotNet Core Package on version 7.18. Currently all our development activities were performed in Windows OS and later we would have to package it and deploy in Client OS which is Linux.

 

So the blocker right now is we are getting error while registering our local instance and  it gives 404 error. I understand that the Clio tool is compatible with DotNet Framework so would like to know if there is any other methodology for generating package in DotNet Core. 

 

Appreciate your immediate response. Thank you!

File attachments
Like 0

Like

4 comments

Hello Anupama,

 

I tried replicating the same error message on my side, tried several configurations (including deleting Terrasoft.WebApp reference in IIS, different URLs with the / at the end and port numbers, localhost and actual domain name). I wasn't able to receive the same error:

Are you using the latest clio binary files (they can be found here)? Also can you login to the application from the browser directly? And have I understood you right that you are trying to login to the .NET Core app (localhost:5020)?

Oscar Dylan,

Thanks Oscar for your response. 

 

Yes I am using Dotnet core package and as it is not hosted on IIS and on Kestrel, I am wondering if that is the reason why I am getting 404. To check how the clio command works, I tried hosting dotnet framework package on IIS and the clio command responded successfully.

 

 

Is there any settings that I am missing for the clio to respond for Dotnet Core package.

 

Thanks

Anupama

Anupama,

 

I've also successfully logged into the .NET Core app (but it's hosted on Linux) using clio:

There shouldn't be any specific setting. Can you try re-deploying your local app using .Net Core and hosted on Linux? Also don't you receive any errors in the application logs at the moment of the connect? Logs of the .Net Core app are located in the Logs folder of the root application directory:

Oscar Dylan,

 

It seems to be the Url format which is different for Creatio Dotnet Core and Dotnet Framework package. 

I tried by removing the forward slash from the Url and it did worked and I am able to generate the package. 

Thanks for the suggestion shared earlier in of your messages. 

 

Now we are experiencing another issue. We are running the SonarQube in our project file to do a code quality analysis. So the package includes an Object Code along with the source Code and which is hindering the successful installation of the package. 

Is there any way to ignore that file as I didn't find any ignore command in the github .

 

Show all comments

Hey community,

 

I've created a business process that puts the email in a contact object in lowercase. There are 2 signals, one when a contact is created and one when an email is updated.

 

When any user creates a contact, the business process runs and puts the email in lowercase.

 

If someone other than me updates an email, for unknown reasons, the business process don't run. If I am the one updating the email, the business process runs.

 

I've created many business processes and this is the only one that does that.

 

This is not a problem in the business process itself, as it works fine when I update an email.

 

The launch rights are the same as for all my other business processes.

 

I have admin rights on Creatio (I don't use the supervisor account, I have my own account with admin rights). Even if another admin updates the email address of a contact, the business process don't run.

 

Do you have any clues as to what is happening, why it is happening and how I can solve this problem?

 

Please feel free to ask for more details or screenshots if necessary.

 

EDIT :

I'm trying to update the email by editing the ContactPageV2 and the ContactMiniPageV2 directly. Here is my code but I can'tt find a way to make it work..

 

define("ContactPageV2", ["MultiChoiceMixin", "css!ClientUnit_MTF_ContactCustomCSS"], function() {
	return {
		entitySchemaName: "Contact",
		attributes: {
			"UsrInterests": {
				"dataValueType": Terrasoft.DataValueType.LOOKUP
			},
			"Email": {
				dependencies: [{
					columns: [],
					methodName: "emailToLower"
				}]
			}
		},
		/** ... */
		methods: {
			init: function() {
				this.callParent(arguments);
				this.mixins.MultiChoiceMixin.init.call(this, arguments);
				},
			emailToLower: function () {
				this.set("Email", this.get("Email").ToLowerCase());
			},
                        /** ... */

 

define("ContactMiniPage", [], function() {
	return {
		entitySchemaName: "Contact",
		attributes: {
			"Email": {
				dependencies: [{
					columns: [],
					methodName: "emailToLower"
				}]
		},
		/** ... **/
		methods: {
			emailToLower: function (){
				this.set("Email", this.get("Email").ToLowerCase());
			}
		},
                /** ... **/

 

Best regards,

 

Julien Gunther

Like 0

Like

1 comments

Hello Julien,

 

Hope you're doing well.

It would be great if you could provide the screenshots of the business process you use and the process elements settings as well.

Thank you in advance.

 

Best regards,

Roman

Show all comments

I'm calling REST api of Contact ,Account and Case management for CRUD operation. I'm calling Creatio CRM REST from WSO2 EI. It is identical the Request which is send from the Postman or Rest Client.

But it gives 302 Status for WSO2 EI calling the  Creatio REST while it gives 403 for Postman or Restclient If BPMCSRF header doesn't contain cookie value.

 

If the BPMCSRF header value contains correct cookie value from the Login request, Postman or Restclient gives 201/200 for success operation and WSO2 EI gets same 302 response.  Login API call working fine from the WSO2 EI. 

 

Sample Request from WSO2 EI

"POST /0/odata/Account HTTP/1.1[\r][\n]"

"Accept: application/json;odata=verbose[\r][\n]"

"X-Requested-With: XMLHttpRequest[\r][\n]"

"ForceUseSession: true[\r][\n]"

"Content-Type: application/json[\r][\n]"

"Content-Length: 228[\r][\n]"

"Host: 103594-crm-bundle.creatio.com[\r][\n]"

"Connection: Keep-Alive[\r][\n]"

"User-Agent: Synapse-PT-HttpComponents-NIO[\r][\n]"

"[\r][\n]"

"{"Name":"API Test","AccountId":"e6574af1-3e92-4099-958e-e798f52ee016","JobTitle":"Marketing manager","BirthDate":"0001-01-01T00:00:00Z","Phone":"","MobilePhone":"+1 213 566 34 22","Email":"test@gmail","Completeness":30,"Age":19}"

 

Sample Response from Creatio 

 

"HTTP/1.1 302 Found[\r][\n]"

"Server: nginx/1.14.1[\r][\n]"

"Date: Thu, 16 Sep 2021 06:21:05 GMT[\r][\n]"

"Content-Type: text/html; charset=utf-8[\r][\n]"

"Content-Length: 170[\r][\n]"

"Connection: keep-alive[\r][\n]"

"Cache-Control: private[\r][\n]"

"Location: /Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount[\r][\n]"

"X-AspNet-Version: 4.0.30319[\r][\n]"

"X-Powered-By: ASP.NET[\r][\n]"

"X-Frame-Options: SAMEORIGIN[\r][\n]"

"X-Content-Type-Options: nosniff[\r][\n]"

"[\r][\n]"

"Object moved[\r][\n]"

"

Object moved to here.

[\r][\n]"

"

.

Like 0

Like

7 comments

It means that you are not authenticated properly in the application (see location part  "/Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount", you were redirected to the login page). You need to check all the cookies that are passed to the OData request that you send and compare it with cookies you get in Postman + perform more tests to see which cookie set will result in a successful call.

Oscar Dylan,

If the authentication error, it should be 401 or 403 status. But here it is always redirect to login page with 302. verified the headers from Postman and client app both, those are identical. 

Anusha,

 

That is correct - the resource was found, but you need to authenticate first (once again, pay attention to the location path /Login/NuiLogin.aspx?ReturnUrl=%2f0%2fodata%2fAccount). The system automatically redirected you to the login location.

 In Postman you receive 200 OK to the request, but before it you receive 302 response (can check in the Postman console):

Hi Oscar,

 

Thank you very much for the information, but still I'm confused authentication approach. This is what I'm doing.

 

When I get 302 for Contact endpoint, then I perform the authentication to  auth endpoint  POST call <Creation-app-host>/ServiceModel/AuthService.svc/Login with the body [1]. Then I see cookies details in the response with BPMCSRF cookie with 200 response.  Then I send again the Contact endpoint with those auth cookies, [2]  are the headers which I send to Contact endpoint again. But still same 302 redirection is there even after successful authentication. 

 

Could you please help me on this.

--- does the above approach wrong

--- does the auth headers wrong mentioned in [2]

 

If above approach wrong, please help me to find request format from the client application to complete the successful Contact create through the  client.

 

[1] body

{

   "UserName":"xxxxxxxxx",
   "UserPassword":"xxxxxxx"
}

 

[2] . Headers

 

Accept: application/json;odata=verbose[\r][\n]"

"BPMCSRF: cvHrL0GEHYdswl1QZh8Ie.[\r][\n]"

"ForceUseSession: true[\r][\n]"

"Set-Cookie: .ASPXAUTH=F82E.... "

"Set-Cookie: BPMCSRF=cvHrL0GEHYdswl1QZh8Ie."

"Set-Cookie: BPMLOADER=zchmt5tlzildsx22zlle1wnk"

"Set-Cookie: UserName=93|117|112|101|114|118|105|115|101|114"

"Content-Type: application/json; charset=utf-8[\r][\n]"

"Content-Length: 228[\r][\n]"

"Host: 103594-crm-bundle.creatio.com[\r][\n]"

"Connection: Keep-Alive[\r][\n]"

"User-Agent: Synapse-PT-HttpComponents-NIO"

 

Hi Anusha,

 

Unfortunately you have to run test and find a way to pass the cookies to the request properly in terms of your integration. For example I have this cookie header in Postman:

 

BPMSESSIONID=xjjysy25na5ig5sqbgdyxd14; visid_incap_2180455=49BJJNmNT1uK2vo4spt1YM3yQWEAAAAAQUIPAAAAAAB7xEOk/CkixDKkf1pVpwRW; .ASPXAUTH=0129CAB95F4B3C753B6B00E3BBC7F15E9F0CF094A9209DCC541E033D963163699488F8A6AF3F3F845BABCA582CE603AD00E4AC3EE005216347F4B399235033BF60A3338158451099DEC44FE8B1920F57398E4439EE170B436C75FF3BA3BFC2C28BF8BCCB6D37261D9942F97133800DFEED491B8C8671824183CF9CD2CC20549B5BF672599D3F9CAD151E6F4C92A95C7FC888E4214039842D8B53E540D03495542D8C60B238BA9759FFAE27920E7688D35C92795D59741A8D0E5B34234C6DCC769F79A176BF63CCA190D0BEC19A8ACF3793A6522866BF14A14092474BBA68D100282CE8CB6DAB3C8041DB7544EABD759617446687311CE784129E88BE2558CE2917C790372F214D6E8D05B630B789F0D37E4EBB60E06A6B0C20FE075ED78960211A017F115D32F53B2D76E9B2AF302EC3887E47FE421CA76D246B0FCD8260B25380BED735F19C87C0545187841709C5A75B5547CDF43D52304C9D4760C8E625F7DA674A74; BPMCSRF=ulHtF40aiiRNzRWk5BMTWO; BPMLOADER=mnbxfikelfxqnnl2iz0aiobd; BPMSESSIONID=xjjysy25na5ig5sqbgdyxd14; UserName=83|117|112|101|114|118|105|115|111|114

 

And I guess all of them should be also passed to your request. This is not something that can be solved on the community, you need to test your integration authentication to find a correct way.

 

Also check if your authentication in terms of your integration is configured in the similar way to the one explained here.

Hi Oscar,

 

Thanks for the information. I will check further.

 

Thanks & Best Regards

Anusha

Show all comments

As in the embedded screenshot, the Achieved Rate column (using the "Average" method to calculate totals) does not reflect the correct value of Opportunity amount column / Budget column. In this case, the row of month 8 contains 2 records of opportunities, but its Achieved Rate column value 0.83 is not 249,600/306,798; instead, 0.83 is the average of the 2 ratios of Opportunity amount/Budget of those 2 opportunities.

How can I do to display the value of 249,600/306,798 ?

Like 0

Like

7 comments

Hello Andrew,

 

Hope you're doing well.

 

Could you please provide us with the setup of the "Month" column and "Achieved Rate" column as well (with a description from which object you add it)?

 

Thank you in advance.

 

Best regards,

Roman

Hello Andrew,

 

Thank you for your reply.

At first, you can try to change the type of calculation from the "Average" to others for the 'Achieved Rate' column (for example set "Amount" to see how the calculations will be changed). Also you can compare the accuracy of the formula you use if you check the report of the needed records in excel. For that you will need to find the needed section (Opportunity), open the needed records/details for the 8th month, and export those records to excel. After that you will be able to re-check the value you received in the pivot table with the value you got in the excel report for the same period.

 

Also in the article below you can find more information about the formulas that are being used in the system:

Best regards,

Roman

Roman Rak,

Hi Roman,

 

Thank you for your reply. But it didn't answer my question.

As the screenshot below, you can see there is obviously no appropriate item to calculate what I need, and of course I had tried every item and no result was right. 

 

On the other hand, I found that in the Forecast section, the (pivot) table shown there is correct! I added a new forecast "FORECAST BY OPPORTUNITY" as shown below, and you can see the three Achieved Rates of the last 3 rows are correct respectively under the 3rd quarter of 2021.

So, what do you think?

 

Hello Andrew,

 

Could you please specify where is located the needed pivot table ('Quarter Achievement)?

 

Thank you in advance.

Hello.  I'm facing a similar issue.  Did you manage to solve it?

Show all comments

On the Creatio user contacts page, I would like to display statistics according to the selected contact.

Number of calls made, number of opportunities, etc...

Here is my question:

How to link the graphs to the selected contact ?

If i select "Current contact", it is the logged in user who is selected.

As I am on a contact page, I would like the graphics to be linked to the selected contact.

Like 0

Like

1 comments
Best reply

Hello Nicolas,

 

In order to see information for a particular contact in the dashboards you will need to associate the dashboard with section data like this:

It will only work for the records currently displayed in the list. So to see the data for one record only you will have to filter the records so that only one Contact is in the list.

 

Best regards,

Max.

Hello Nicolas,

 

In order to see information for a particular contact in the dashboards you will need to associate the dashboard with section data like this:

It will only work for the records currently displayed in the list. So to see the data for one record only you will have to filter the records so that only one Contact is in the list.

 

Best regards,

Max.

Show all comments

Hello,

 

I downloaded the business card scanner from the marketplace.  The mobile app allows me to scan the business cards, but it will now allow me to save the lead.  Any suggestions?

 

It populates the fields correctly.  I am hoping there is an easy fix to this. 

Like 0

Like

4 comments

Hi Adam,

 

Please check the following and get back to us:

 

1. Can you create contacts successfully after scanning a business card?

2. Did you add additional required fields to the Leads section? If yes, this setting is blocking the lead creation.

 

Moreover, please specify your Creatio product and its version to help us to reproduce this issue.

Ivan Leontiev,

Hi Ivan,

 

we also have a problem with creating contacts with the business card scanner and it is related to required fields.

 

How can we add them to the Scan Results page?

 

Thanks and best regards,

Robert

Hello Robert,

 

Thank you for your question!

 

You can add new fields to the Scan Results page only by development. An alternative way is to create the required fields on the page level (not on the database one).

 

Kind regards,

Anastasiia

Anastasiia Lazurenko,

Thanks for the info! Is there a guide or at least some hints for adding the needed fields?

 

Thanks,

Robert

Show all comments

Hi, 

We noticed a bug relating to the add-on https://marketplace.creatio.com/template/creating-quotes-opportunities

on Creatio version 7.18.2 (can be reproduced on Demo Sales Entreprise 7.18.2, for ex).

 

When we add/update/delete a product in a Quote record, it creates an empty Opportunity record in Opportunity section.

 

I guess that it might be linked to the fact that the same object OpportunityProductInterest is used for the list of products in Opportunities and in Quotes sections. 

And there are the processes in OpportunityProductInterest object triggered upon add/update/delete .



Please note that the error didn't occure on version 7.17.1.

I can see that the object OpportunityProductInterest was modified on 2.2.2021 in Opportunity package so probably the error occures since this update.

Would it be possible for a support of DevLabs to check this issue?

 

Thank you,

Best regards,

Anna

Like 1

Like

4 comments

Hi Anna,

 

I managed to reproduce this issue and forwarded it to the relevant team for further review. We will contact you if we have feedback.

We are also experiencing this problem in CRM bundle 7.18 in .net core setup. Is there any solution or workaround present for this issue?

Hi Ivan Leontiev,

 

Are there any update from the team regarding the issue or  any workaround suggested from the team.

Hi, everyone!

We are working on this issue.

We will resolve it in the new version, however it will be incompatible with the current version. 

Also, we have a workaround for the old version:

1. Create a replacing object for OpportunityProductInterest.

 



 

2. Save it.

3. Click "Open Process"

4. Replace code in the "methods" section with this:

 





 

namespace Terrasoft.Configuration
{
 
                using DataContract = Terrasoft.Nui.ServiceModel.DataContract;
                using Newtonsoft.Json;
                using Newtonsoft.Json.Linq;
                using System;
                using System.Collections.Generic;
                using System.Collections.ObjectModel;
                using System.Data;
                using System.Drawing;
                using System.Globalization;
                using System.IO;
                using System.Linq;
                using Terrasoft.Common;
                using Terrasoft.Common.Json;
                using Terrasoft.Core;
                using Terrasoft.Core.Configuration;
                using Terrasoft.Core.DB;
                using Terrasoft.Core.DcmProcess;
                using Terrasoft.Core.Entities;
                using Terrasoft.Core.Factories;
                using Terrasoft.Core.Process;
                using Terrasoft.Core.Process.Configuration;
                using Terrasoft.GlobalSearch.Indexing;
                using Terrasoft.UI.WebControls.Controls;
                using Terrasoft.UI.WebControls.Utilities.Json.Converters;
 
                #region Class: OpportunityProductInterest_CustomEventsProcess
 
                public partial class OpportunityProductInterest_CustomEventsProcess&lt;TEntity&gt;
                {
 
                                #region Methods: Public
 
                                public override void CalckOpportunityAmount(Guid opportunityId) {
                                                if (opportunityId != Guid.Empty) {
                                                                var select = new Select(UserConnection)
                                                                                .Column(Func.Sum("Amount")).As("Amount")
                                                                                .From("OpportunityProductInterest")
                                                                               .Where("OpportunityId").IsEqual(Column.Parameter(opportunityId)) as Select;
                                                                double amount = 0;
                                                                select.ExecuteReader((reader =&gt; {
                                                                                amount = reader.GetColumnValue&lt;double&gt;("Amount");
                                                                }));
                                                                var opportunity = UserConnection.EntitySchemaManager.GetInstanceByName("Opportunity")
                                                                                .CreateEntity(UserConnection);
                                                                opportunity.FetchFromDB(opportunityId);
                                                                opportunity.SetColumnValue("Amount", amount);
                                                                opportunity.Save(false);
                                                }
 
                                }
 
                                #endregion
 
                }
 
                #endregion
}





5. Save and publish the process.

Note that this solution will take effect on basic logic for Opportunity

Show all comments