Hello Everyone,



Hope all are fine and healthy,



I have a scenario where I have to take the users through few (let's say 2-3 ) preconfigured pages where they will fill values in fields displayed on the pages (for ex. A = true, B= false, Country = Australia) and once they submit on the last page, then they should be redirected to the section page and a dynamic folder should be automatically created having the filled in values by the users as filter conditions (A = true, B= false, Country = Australia).



Can anyone suggest an approach to this scenario.



I have checked that whenever we create a folder with filter confitions a record will be created in table "ObjectFolder" where In "SearchData" column our applied filter condition will be stored as bytes.

But still not getting any Idea on how to approach this problem.



Thanks you very much for your time.

Like 0

Like

4 comments

I have an article that shows the opposite, how to read the filter conditions from a folder and use in an ESQ. https://customerfx.com/article/programmatically-using-section-folder-fi…

Perhaps you could work backwards from there to do the opposite? It appears you could just form the ESQ filters as JSON, then use System.Text.Encoding.GetBytes to get the JSON as a byte array and write back to SearchData using the entity class SetBytesValue function.

Hope this helps get you started.

Ryan

Hi Ryan,

 

My code looks like below so far 

 

As per your Instructions, I have created ESQ filters but didn't know how to convert them to JSON.

 

Please help !

 

Hi Ryan Farley,

 

I try to write and run below code 

 

And it is giving me below error : 

Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'Provider' with type 'Terrasoft.Core.ManagerProvider'. Path 'Manager.DataValueTypeManager.Provider.AppConnection.LicManager'

 

Any help please !

Hi Team,

 

Any help in this case please.

Show all comments

Hi Community,

 

I have setup a DCM on a section. But when I login from a portal user, I can see the DCM area/container but can not see the DCM bar. Is there any setting or permission that needs to be added?

 

I am using 7.18.3 Studio version. Any help would be appreciated.

 

Thanks,

Sourav Kumar Samal

Like 0

Like

3 comments

Hello Sourav, 

 

Please check the following post regarding DCM in the portal section - https://community.creatio.com/articles/enable-dcm-portal-users

 

Let me know if it answers your question,

Igor

Ihor Skohariev,

 

I have seen that article, that seems pretty old one. Does that still applicable for the Creatio version 7.18.3?

 

Regards,

Sourav

 

Sourav Kumar Samal,

 

Please create a new request for support@creatio.com, as we will need more details to investigate your case. 

Show all comments

Hi Community,

 

We need to hide the notifications for Activities (Created in process or DCM). Is there a way to hide or don't show those notifications for activities only?

 

Regards,

Sourav Kumar Samal

Like 1

Like

5 comments

Hello,

 

Please provide us with more details on the business logic you want to implement and specify which notifications exactly this is about (in DCM or communication panel?)

 

Kind regards,

Mira

Mira Dmitruk,

 

To elaborate more,

While adding an activity element in business process or in DCM, the activity notification shows under "Business Process Tasks" in communication panel (refer screenshot). Under the same "Auto generated page" or "Pre configured pages" are also shown.

 

 

Our requirement here is to hide those activity notifications from "Business Process Tasks", but keep the "Auto generated page" or "Pre configured pages" notifications.

 

Regards,

Sourav

Hi Sourav,

 

If you do not need these tasks to be shown and completed for the process to continue, you can create activities with a simple "Add data" element in the business process instead of "Perform task".

 

Would this solve your task?

 

Best regards,

Max.

Max,

 

We need some of the tasks to be completed by the user to proceed, but we don't want to show those tasks in the notification panel.

 

Is there a way to hide those?

 

Regards,

Sourav

This would be very useful to me too, did you find a solution/is there any way to do this?

Show all comments

I created a custom web service to accept xml from one of our lead aggregators. However, it is not deserializing the request body, and all I get in response is a Null Object Reference error. Am I missing something?

 

My custom web service:

namespace Terrasoft.Configuration.UsrMyLeadImportNamespace
{
    using System.Collections.Generic;
    using System.IO;
    using System.Xml;
    using System;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using System.ServiceModel.Web;
    using System.Xml.Serialization;
    using Core;
    using Core.DB;
    using Terrasoft.Web.Common;
 
    [XmlSerializerFormat]
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrMyLeadImport: BaseService
    {
		private SystemUserConnection _systemUserConnection;
		private SystemUserConnection SystemUserConnection
		{
			get
			{
				return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);
			}
		}
		// Service operation.
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "new")]
		public MyResponse New(LeadInformation leadInformation)
		{
			var response = new MyResponse();
			response.ResponseStatus = "Tracking Number is => " + leadInformation.TrackingNumber;
			return response;
		}
	}
 
 
	[XmlRoot(ElementName = "LeadInformation")]
	public class LeadInformation
	{
		[XmlElement(ElementName = "TrackingNumber")]
		public int TrackingNumber { get; set; }
 
	}
 
	[DataContract(Namespace = "")]
	[Serializable]
	public class MyResponse
	{
		[DataMember]
		public string ResponseStatus { get; set; }
	}
}

Request Body:

<LeadInformation>
    <TrackingNumber>12345</TrackingNumber>
</LeadInformation>

 

Like 0

Like

1 comments
Best reply

I've performed the same setup (additionally to the code you've shared, registered the service as anonymous) and sent the following request in Postman:

As you can see the result is correct so the issue is somewhere in the request you send or in the service settings. You need to double-check them.

I've performed the same setup (additionally to the code you've shared, registered the service as anonymous) and sent the following request in Postman:

As you can see the result is correct so the issue is somewhere in the request you send or in the service settings. You need to double-check them.

Show all comments

Is it possible to add an Account section in the same workplace. So there will be 2 Account sections in 1 workplace.

Like 0

Like

3 comments
Best reply

Hello,

 

In order to add the same section to a workplace you ned to run the following script in the database, since it's not possible to do so from a Workplace setup:

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('_inser_ID_here_', '_inser_ID_here_')

 

So you need to find the ID of the needed section in the SysModuleId table + an ID of the workplace where you want to put add it in the SysWorkplaceId table.

 

It should look like this once you paste the needed IDs (please note that this is only an example):

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('f4cd2a9b-1312-4d26-9205-c09e8ba56218', '005063c9-8180-e011-afbc-00155d04320c')

 

We would like to warn you, that though it is possible to add the same section to a workplace, we do not recommend doing so as this behavior wasn't tested and may result in unexpected issues. Also, we highly recommend testing it on a dev/test environment first to make sure it works as you need it.

 

Kind regards,

Mira

Hello,

 

In order to add the same section to a workplace you ned to run the following script in the database, since it's not possible to do so from a Workplace setup:

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('_inser_ID_here_', '_inser_ID_here_')

 

So you need to find the ID of the needed section in the SysModuleId table + an ID of the workplace where you want to put add it in the SysWorkplaceId table.

 

It should look like this once you paste the needed IDs (please note that this is only an example):

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('f4cd2a9b-1312-4d26-9205-c09e8ba56218', '005063c9-8180-e011-afbc-00155d04320c')

 

We would like to warn you, that though it is possible to add the same section to a workplace, we do not recommend doing so as this behavior wasn't tested and may result in unexpected issues. Also, we highly recommend testing it on a dev/test environment first to make sure it works as you need it.

 

Kind regards,

Mira

Mira Dmitruk,

Thank you. It works..

I have already put the same section in 1 Workpalce. So there will be 2 section in 1 Workplace. Next question is, can we change on of section Account to another name?

Ahmad Bagus Ariyanto,

 

Please note that it is not possible to change the name only for one of them since this is the same object shown twice and if you change the name of one of them, the other one will change too.

 

Kind regards,

Mira 

 

Show all comments

Hi community,

I have a standard package and would like to migrate it to the new assembly-type package.

I know it is possible to move a single package element to another package, but I have never done it.

Do you have any suggestions?

 

Like 0

Like

4 comments

Hello,

 

Please note there's a useful article on Creatio Academy on Package conversion that should help with your need. Make sure to check it and lt us know if questions appear!

 

Kind regards,

Mira

Mira Dmitruk,

Thank you Mira

I will give you a feedback

Stefano Bassoli,

Hi Mira,

I have a standard package installed in the production environment.

What happens if I migrate to an assembly package and then try to install it in my production environment.

Is this a supported scenario?

A technical youtube video going in more details about uses cases, best practice and advantages of this new feature would be great :)

Show all comments

Hi,

 

I have some Case Stages grouped and in some scenarios of all the stages only one is available. Is there a way to default to that one instead of the user click on the drop down and select the only stage available?

 

In the attached example, I'd would like the 'Validate Provider File' stage on the bar so the user does not have to click the drop down and select it.

 

Thanks,

Jose

File attachments
Like 1

Like

3 comments

Hello,

You can automatically fill in the required fields using business rules.



More about business rules on the academy website:

https://academy.creatio.com/docs/user/customization_tools/ui_and_busine…

Thanks Cherednichenko, but that is not what I need. I don't need to default a field on the actual page. I need to make visible the only stage available on a case where stages are grouped. What stage is enabled depends on a previous stage. In the screenshot attached to the question, If the previous stage was Confirm Provider File Received', then the only option available for the user is Validate Provider File. But because that stage is grouped with 'Validate Patient File', that is what is shown in the bar and the user has to make an extra click to select 'Validate Provider File' even though that is the only option available.

Hello Jose,

 

Thank you for the explanation.

Unfortunately, such functionality can be only achieved by the means of development.

We will create a request for our R&D team in order to bring this functionality in future releases.

 

Best regards,

Artem.

Show all comments

Hi All

 

Anyone know how to add or custom button in the list ?



PS. i create this list use freedom builder

Like 1

Like

1 comments

Hello,

 

Unfortunately, there are no such basic tools to add the button to the mentioned dropdown. 

We've registered it in our R&D team backlog for consideration and implementation in future application releases.



Thank you for helping us to improve our product. 

Show all comments

Hello community!

I need to set fields required based in values of a lookup at client side.

I was trying to test how isRequired works in attributes , but I found that the only way to work with it, is declaring the explicit value to True or False.

Tried to use a virtual column, and a method function, but it behaves weird.  

Here are my examples:

and this how it looks on screen:

 

It's showing the "Enter a Value" warning but they are supposed not to be required (* is missing).

 

Is there any way to workaround with this?

 

Thank you for your help.

Like 0

Like

3 comments
Best reply

Cesar Jaramillo,

Let's see what method of making fields required* dynamically actually works good – it is using rules/businessRules.

You can create a rule for your field, the condition can be any value of the page and its related lookups.

Like here:

But if you have to do this for several fields, it will take much time to set them for each field. 

And if there are many conditions or they are too complex, "businessRules" abilities can be not enough.

But we can set an attribute (boolean) to be a condition for each of these rules, like here:



The attribute value can be changed dynamically using "methods".

 

So here's what i'd advise you to do:



In my example the fields "Email" and "Preferred language" become required, if the contact Type is "Customer" and the "Owner" field is not empty.

1. Add an attribute of type BOOLEAN

attributes: {
	"FullInfoRequired": {
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"dependencies": [
			{
				"columns": ["Owner", "Type"],
				"methodName": "setFullInfoRequired"
			}
		]
	}
},

Each time any of the columns ("Owner" or "Type") is changed, the method "setFullInfoRequired" is called.

2. Add the method

setFullInfoRequired: function() {
	var type = this.get("Type");
	// ContactType.Client is a GUID for "Customer" type
	if (type.value === confConsts.ContactType.Client &amp;&amp; this.get("Owner")) {
		this.set("FullInfoRequired", true);
	}
	else this.set("FullInfoRequired", false);
}

To set the attribute on page loading, immediately after the page loaded its data, you should also call this function in "onEntityInitialized":

onEntityInitialized: function() {
	this.callParent(arguments);
	this.setFullInfoRequired();
}

3. Add the rules using Page designer, as in my 2nd screenshot, for each field that should become required.

 

If the conditions are simple, just use businessRules as in the 1st screenshot.

 

Hello Cesar,

 

The isRequired attribute that uses the value that method returns works correctly in my local app (using bindTo: {"method name here"}). It seems that there is either some other custom logic related to these columns in the ContactPageV2 or maybe custom CSS that hides these * symbol. You need to look through all the logic related to these columns where you need to have the * symbol.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar,  In my case, when the method returns True it works fine, but when it returns False, the * is gone, but the warning remains and it doesn't allow to save.  In what version did you try it?

Thanks!

Cesar Jaramillo,

Let's see what method of making fields required* dynamically actually works good – it is using rules/businessRules.

You can create a rule for your field, the condition can be any value of the page and its related lookups.

Like here:

But if you have to do this for several fields, it will take much time to set them for each field. 

And if there are many conditions or they are too complex, "businessRules" abilities can be not enough.

But we can set an attribute (boolean) to be a condition for each of these rules, like here:



The attribute value can be changed dynamically using "methods".

 

So here's what i'd advise you to do:



In my example the fields "Email" and "Preferred language" become required, if the contact Type is "Customer" and the "Owner" field is not empty.

1. Add an attribute of type BOOLEAN

attributes: {
	"FullInfoRequired": {
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"dependencies": [
			{
				"columns": ["Owner", "Type"],
				"methodName": "setFullInfoRequired"
			}
		]
	}
},

Each time any of the columns ("Owner" or "Type") is changed, the method "setFullInfoRequired" is called.

2. Add the method

setFullInfoRequired: function() {
	var type = this.get("Type");
	// ContactType.Client is a GUID for "Customer" type
	if (type.value === confConsts.ContactType.Client &amp;&amp; this.get("Owner")) {
		this.set("FullInfoRequired", true);
	}
	else this.set("FullInfoRequired", false);
}

To set the attribute on page loading, immediately after the page loaded its data, you should also call this function in "onEntityInitialized":

onEntityInitialized: function() {
	this.callParent(arguments);
	this.setFullInfoRequired();
}

3. Add the rules using Page designer, as in my 2nd screenshot, for each field that should become required.

 

If the conditions are simple, just use businessRules as in the 1st screenshot.

 

Show all comments

Hi Team,

 

I am looking for workaround in which I need to attach the Dashboard List (Excel Report) in attachments of any custom section and then further used in Business Process. So, please help me to figure out the steps to follow.

 

Thanks

Like 0

Like

3 comments

Hello colleagues,

To solve your business task you need to use the business process element "Process file". Set the "Generated report" mode, choose a report template, and in the column "What to do with file?" specify the next: "Save to "Attachments and notes" of the object".

Then choose the object.

Best regards, Alex.

Hi Aleksei, 

 

Thanks for responding. But in my case, I need to attach a list view of Dashboard, which I think is not feasible through "Process File" element. Can you please suggest some other solution or please correct me if I am wrong.

 

Thanks and Regards, Prashant

Prashant Jha,

Hello!

If you need to create an Attachment and notes object for your custom section or object - you can find a useful information in this article:

https://community.creatio.com/articles/adding-attachment-and-notes-tab-…

Show all comments