Question

I need to create a lookup filter for the following SQL

DECLARE @P1 uniqueidentifier = 'D21F0468-F86B-4707-9FDB-C093CF0F6F87';
 
SELECT UsrProductList.Name
FROM UsrProductList
WHERE EXISTS (
	SELECT UsrProductLineOfBusiness.UsrProduct
	FROM UsrProductLineOfBusiness
	WHERE UsrProductLineOfBusiness.UsrProductId = UsrProductList.Id
	AND UsrProductLineOfBusiness.UsrLineOfBusinessId = @P1
)

Following this post I got as far as

"UsrProduct": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {
		"filter": function() {
			var opportunityLobId = this.get("Opportunity.UsrOpportunityLineOfBusiness").value;
			var filterGroup= this.Ext.create("Terrasoft.FilterGroup");
			var subFilter = Terrasoft.createFilterGroup(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, *** GROUND TO A HALT HERE *** , opportunityLobId));
			subFilter.addItem();
			filterGroup.add(Terrasoft.createExistsFilter([UsrProductLineOfBusiness:UsrProduct].id, subFilter));
			return filterGroup;
		}
	}
}

However ground to a halt at `UsrProductLineOfBusiness.UsrProductId = UsrProductList.Id` in the subquery.  If anyone has any clues they would be appreciated!

Like 0

Like

1 comments

For anyone who may happen this way in the future, this was solved with

"UsrProduct": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {
		"filter": function() {
			var opportunityLobId = this.get("UsrOpportunity.UsrOpportunityLineOfBusiness").value;
			var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
			var subFilter = Terrasoft.createFilterGroup();
			subFilter.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrLineOfBusiness.Id", opportunityLobId));
			filterGroup.add(Terrasoft.createExistsFilter("[UsrProductLineOfBusiness:UsrProduct].Id", subFilter));
			return filterGroup;
		}
	}
}

The subfilter is applied to the table in the main query's column path.

Show all comments

Hi there!
I'm trying to run clio in Docker on Ubuntu Server 20.04.
Following instructions provided here - https://github.com/Advance-Technologies-Foundation/clio#installation-an…, I have downloaded the source code, and executed "docker build -f ./install/Dockerfile -t clio ."
But I got unexpected output, and, seems, clio container did not even started:

 

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/
 
Sending build context to Docker daemon  2.899MB
Step 1/13 : FROM mcr.microsoft.com/dotnet/sdk:3.1 as base
 ---> 1e8401d05dea
Step 2/13 : WORKDIR /app
 ---> Using cache
 ---> 18f52a48e0a5
Step 3/13 : FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
 ---> 1e8401d05dea
Step 4/13 : WORKDIR /app
 ---> Using cache
 ---> 18f52a48e0a5
Step 5/13 : COPY clio clio
 ---> Using cache
 ---> fa0fb42a25ec
Step 6/13 : COPY clio.sln clio.sln
 ---> Using cache
 ---> d8527c9fcc93
Step 7/13 : WORKDIR /app/clio
 ---> Using cache
 ---> f4ae3f90ec62
Step 8/13 : RUN dotnet publish -c Release -o /app/published
 ---> Running in 432ba7ef38dd
Microsoft (R) Build Engine version 16.7.3+2f374e28e for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
 
  Determining projects to restore...
/app/clio/clio.csproj : error NU1202: Package DocumentFormat.OpenXmlSDK 2.0.0 is not compatible with net6.0 (.NETCoreApp,Version=v6.0). Package DocumentFormat.OpenXmlSDK 2.0.0 supports: net35 (.NETFramework,Version=v3.5)
  Failed to restore /app/clio/clio.csproj (in 6.4 sec).
The command '/bin/sh -c dotnet publish -c Release -o /app/published' returned a non-zero code: 1

 

Like 1

Like

2 comments

Anybody, please, help!

Hi!

 

Based on the issue you are experiencing with running Clio Docker on Ubuntu 20.04, it seems to be related to compatibility or configuration problems. To address this, I would recommend following these steps:

  1. Make sure you have met the minimum system requirements for running Clio Docker on Ubuntu 20.04. Check the official documentation for any specific prerequisites.

  2. Double-check that you have correctly followed the installation steps outlined in the documentation or guide provided by Clio.

  3. If the issue persists, I suggest visiting the Clio GitHub repository for more information and possible solutions. You can access the repository at the following link: GitHub Repository. Please search for any existing issues that match your problem or consider opening a new issue to report your specific problem. GitHub representatives and the community can provide further assistance and guidance in troubleshooting the issue.

Remember to provide as much detail as possible when reporting the issue, including any error messages or logs you have encountered. This will help the GitHub community understand and address your problem more effectively.

 

I hope this helps.

Show all comments
Question

Is it possible to configure time based workflows - i.e., end dates and durations specified for workflow stages?

Like 1

Like

3 comments

One solution to this problem is to run a BPM process at a scheduled time each day to process the workflow.

Hello Gareth,
 

Could you please elaborate on your business task? 

Bogdan,

It's OK, thank you for the reply but the issue is solved now, cheers,

Show all comments

Подскажите мне пожалуйста - в сиситеме есть разделы, а в разделах вкладки и поля, нет ли возможности просмотреть историю изменения данных полей например через логирования ?

 

Спасибо 

Like 0

Like

1 comments

Здравствуйте,

 

Для данной бизнес задачи Вы можете использовать функционал "Журанала изменений", более детальная информация о данной функциональности доступна в этой статье
Отслеживать изменения Вы сможете только после настройки "Журнала изменений", возможности просмотреть изменения за время до того, как данная функциональность была настроена, к сожалению, нет. 

С уважением, 
Анастасия

Show all comments

Hello, the system does not log in, what is the problem, please tell me?

Like 0

Like

2 comments

Hello,

 

Please contact support team via support@creatio.com for further assistance as more details are needed to proceed with investigation. 

 

Best regards,

Anastasiia

It looks like you're using HTTPS, make sure you've made the config file changes for HTTPS. See here https://academy.creatio.com/docs/user/on_site_deployment/application_se…

Ryan

Show all comments

Approvals by the user's manager are showing in the Approvals tab on the Opportunities section edit page, however I assume they should also show on the Communications panel / Notification centre / Approvals tab with the 'Show only my approvals' flag unticked.

 

Is there any reason why they might not show here?

 

Thanks,

Like 0

Like

4 comments

Hello,

 

basically, there might be only a few reasons for that.

One of the most common ones is the absence of the Time zone in the user profile.

Can you please check on that? If there is no time zone selected, you can fill it with the necessary one and check on the issue again.

 

Regards,

Gleb.

Thank you for your reply, much appreciated.

 

I have set the time zones for both the user and the user's manager, the approval is still not showing in the communications panel.  Are there any other reasons this might be the case? 

Gareth Osler,

 

then you will need to check all of the right for the object that the user has.

I suggest registering a case for the support team in order to help you resolving the issue as it may take much time and knowledge of the system.

Also, some of the settings may not be correct so it is better to check them as well.

 

Regards,

Gleb.

Gleb,

Thanks.

Show all comments

Здравствуйте!

У нас печатные формы договоров двуязычные. Т.е в одном шаблоне слева Казахский язык, справа - Русский.

Столкнулись с проблемой того, что на двух языках формат разный. Примеры адресов:

Рус: 050060, Республика Казахстан, Алматинская область, г. Алматы, ул. Розыбакиева, 263
Каз: 050060, Қазақстан Республикасы, Алматы облысы, Алматы қ, Розыбакиев к., 263

  1. В справочнике стран наша страна = Казахстан. Переименовывать не хочется.
  2. Для значений полей Страна, Область, Город значения на двух языках разные с приставками-сокращениями города (г.). Да и сами названия - разные.
  3. На двух языках улица - разная и позиция слова разная: ул. пишется перед названием улицы, к. пишется после названия улицы, но и оно ручками пишется.
  4. Названия улиц так-же склоняются по разному. Для рус - ул. Розыбакиева, для каз - Розыбакиев к..

Есть ли у вас уже решения или рекоммендации по решению таких задач?

Like 0

Like

1 comments

Здравствуйте,

Коллеги, согласно базовой логике, в печатных формах, на страницу просто переноситься значение поля.
Которое в свою очередь (Если речь идет о поле "Полный Адрес", в новом интерфейсе, собираеться из полей "Индекс", "Страна", "Область/штат", "Город", "Адрес".

Также хотелось бы обратить внимание, что  в справочниках на русском языке, страна = Казахстан.

А так же поле создаеться без приставок ".ул", "г.".

Я бы рекомендовал пересмотреть логику работы поля, в которое вписываеться адресс,в интерфейсе, поскольку проблема не в печатных формах, а значении поля, из которого данные просто копируються на станицу печатной формы.
 

Show all comments

Greetings. 
I have a need to give users the ability to decide, which fields should be required for a particular page. I had some sort of the solution in my head. It makes an request and returns with a list of fields that need to be required for this particular page. The problem I am facing is making fields required via JS code (not in Diff section but in the code section, like "onEntityInitialized"). Looking forward to seeing the possible ways to solve this problem.

Like 0

Like

1 comments

Hello,
In order to make a field required based on the condition you need to bind it to an attribute, here is an example of how to do it:
1) Create a new boolean attribute

attributes: {
			"IsValueRequired": {
				"dataValueType": Terrasoft.DataValueType.BOOLEAN,
				"value": false
			}
		},

2) Bind this attribute to an "IsRequired" parameter in the field diff:

"values": {
					"isRequired": {"bindTo": "IsValueRequired"},
					"layout": {

3) Set the value to this attribute in the onEntityInitialized method:

methods: {
			onEntityInitialized: function() {
				this.callParent(arguments);
				this.setIsValueRequired();
			},
			setIsValueRequired: function() {
				if (YOUR CONDITION) {
					this.set("IsValueRequired", true);
				}
				else this.set("IsValueRequired", false);
			}
		},

 

Show all comments

Hi all,

 

Is there a way to force a detail to remain expanded for all users?

Like 0

Like

1 comments

Hello,

 

Please check the below post where the similar business task has been already discussed:

https://community.creatio.com/questions/any-way-force-hierarchical-deta…

 

Best regards,
Anastasiia

Show all comments

Hi all,

 

I have implemented the use of bulk addition to a detail using this Creatio Academy article.

If possible, I would like to filter the bulk addition records to match the business rules of the page i.e. AddressType = 'Site'

				"3361d12a-6dde-417b-b462-d7e171af7edf": {
					"uId": "3361d12a-6dde-417b-b462-d7e171af7edf",
					"enabled": true,
					"removed": false,
					"ruleType": 1,
					"baseAttributePatch": "AddressType",
					"comparisonType": 3,
					"autoClean": false,
					"autocomplete": false,
					"type": 0,
					"value": "7a5d8cdb-54d6-46ce-8b5c-a4a9b319dbb7", //AddressType = 'Site'
					"dataValueType": 10
				}
			}

Is there any way that this can be implemented?

Like 0

Like

3 comments
Best reply

Hello,

 

Business rules cannot be implemented here unfortunately since we need to filter data in the opened modal window to select records. But you can try overriding the logic of the openLookupWithMultiSelect method in your detail schema and add your filters to the config.filters object (you need to debug openLookupWithMultiSelect method execution). For example:

 

1) Register a message in the detail schema with the PUBLISH type.

2) Register an attribute in the detail schema that will store "AddressType" of a main record.

3) In the main page schema register the same message as in step 1, but with the SUBSCRIBE type.

4) Override base subscribeSandboxEvents method in the main record schema and subscribe to the message from step 3. This should be done properly using the construction like:

this.sandbox.subscribe("GetMainContactEmail", this.getMainContactEmail, this,
						[this.getDetailId("UsrSchemabfb885cbDetail7d4ca999")]);

where 

 

getMainContactEmail will be the message handler method (the one method that will be called when the message is received);

UsrSchemabfb885cbDetail7d4ca999 will be the detail Id of the detail where multiple adding was developed (name of the detail from the "details" object in the main record schema).

5) In the message handler method from step 4 write a code to rertrieve current record address type and return it.

6) In the detail schema inside the init method execution send the message from step 1 via sandbox and assign the result of this message sending for some variable (something like):

var result = this.sandbox.publish("GetMainContactEmail", null, [this.sandbox.id]);

7) In the detail schema check if something was returned by the method handler from step 5 for the message sent from step 6. If there is something returned - set the returned value to the attribute from step 2.

8) Override the openLookupWithMultiSelect method and add additional filter using the value from the attribute from step 2 that was written to the attribute at step 7.

 

As a result when you open the modal box to bulk add records to the detail not all the records will be returned, but only those that fit filtering conditions developed in the steps above.

Hello,

 

Business rules cannot be implemented here unfortunately since we need to filter data in the opened modal window to select records. But you can try overriding the logic of the openLookupWithMultiSelect method in your detail schema and add your filters to the config.filters object (you need to debug openLookupWithMultiSelect method execution). For example:

 

1) Register a message in the detail schema with the PUBLISH type.

2) Register an attribute in the detail schema that will store "AddressType" of a main record.

3) In the main page schema register the same message as in step 1, but with the SUBSCRIBE type.

4) Override base subscribeSandboxEvents method in the main record schema and subscribe to the message from step 3. This should be done properly using the construction like:

this.sandbox.subscribe("GetMainContactEmail", this.getMainContactEmail, this,
						[this.getDetailId("UsrSchemabfb885cbDetail7d4ca999")]);

where 

 

getMainContactEmail will be the message handler method (the one method that will be called when the message is received);

UsrSchemabfb885cbDetail7d4ca999 will be the detail Id of the detail where multiple adding was developed (name of the detail from the "details" object in the main record schema).

5) In the message handler method from step 4 write a code to rertrieve current record address type and return it.

6) In the detail schema inside the init method execution send the message from step 1 via sandbox and assign the result of this message sending for some variable (something like):

var result = this.sandbox.publish("GetMainContactEmail", null, [this.sandbox.id]);

7) In the detail schema check if something was returned by the method handler from step 5 for the message sent from step 6. If there is something returned - set the returned value to the attribute from step 2.

8) Override the openLookupWithMultiSelect method and add additional filter using the value from the attribute from step 2 that was written to the attribute at step 7.

 

As a result when you open the modal box to bulk add records to the detail not all the records will be returned, but only those that fit filtering conditions developed in the steps above.

Oleg Drobina,

Excellent. Thanks Oleg!
I'll give this a try and get back to you.

By way of an epilogue and for anyone who happens this way in the future.

 

To filter the lookup add the following method to the detail source code (ref.  Creatio Academy):

//  Filter the lookup entries.
getAdditionalLookupFilters: function() {
	var filterGroup = new this.Terrasoft.createFilterGroup();
	filterGroup.add("ByCaseStatusFilter", this.Terrasoft.createColumnFilterWithParameter(
		this.Terrasoft.ComparisonType.EQUAL, "AddressType", "7a5d8cdb-54d6-46ce-8b5c-a4a9b319dbb7")
	);
	return filterGroup;
}

This overrdes the method in LookupMultiAddMixin.js.

Show all comments