Hi Team,

 

In the business scenarios there are fields like ''Business Unit of User'' which should be auto-populated based on the business unit  of the current system user. Now for this I believe that there should be are record in the system for that user[In Contact section] having Business unit information. 

 

Our customers wants SSO Integration between Azure AD and Creatio. I want to understand does SSO Integration Creates users in creatio automatically because I think If system users record would not be created in Creatio then we won't be able to achieve the above mentioned scenarios. Am I correct?



For creating/updating system users records in Creatio, Do we need to set up Just In time provisioning with SSO? 

Like 0

Like

1 comments

Hello Akshit, 

 

The described functionality can be achieved with a help of Just-In-Time User Provisioning. Please find more detailed information about it in the below article:

https://academy.creatio.com/docs/user/setup_and_administration/user_and…

 

Best regards, 

Anastasiia

 

Show all comments

Hi, 

I'm trying to compile the code below from a package set as a a separate assembly but I'm getting the error attached even though the object mentioned on the error is part of the package. 

 

What am I missing?

 

Thanks,

Jose

 

Error:

Object exists on package

Code generating the error:

using System;

using System.Collections.Generic;

using System.Linq;

using Terrasoft.Core;

using Terrasoft.Core.Entities;

using Terrasoft.Configuration;    



public class UsrPPDRCorrespondenceHelper

{

    private UserConnection UserConnection { get; }

    

    public UsrPPDRCorrespondenceHelper(UserConnection userConnection) {

        UserConnection = userConnection;

    }

    

    public Guid GetStatus(Guid corrId) {        

        var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrPPDRCorrespondence");

        esq.AddAllSchemaColumns();

        Entity queryResult = esq.GetEntity(UserConnection, corrId);

        if (!(queryResult is UsrPPDRCorrespondence corr)) {

            throw new Exception($"Unable to get Correspondence status for ID {corrId}");

        }

        if (corr.UsrStatus == null) {

            throw new Exception($"Correspondence status for ID {corrId} is empty");

        }

        return corr.UsrStatus.Id;

    }

 }

Like 0

Like

1 comments

Hi,

 

According to the error UsrPPDRCorrespondence is not located at the same folder (directory to which assembly files were exported) as the source code that is being compiled.

 

Best regards,

Oscar

Show all comments

Hi Community,

 

We've this requirement where we need to change the "PlayBook" component visibility based on the "ServiceItem" lookup value.

 

 

This visibility rule must be defined following the same principle used for the "Estado (Status)", which is located on the "Playbook" detail inside "KnowledgeBasePageV2".

 

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

 

 

 

Like 0

Like

6 comments
Best reply

Hi Pedro,

 

You need to override the logic of the _updatePlaybookData method in the CaseSectionActionsDashboard and also set the value for the IsShowPlaybookButton attribute to false. To get data from the master case entity you can use the this.getMasterEntityParameterValue() method.

 

Best regards,

Oscar

Hi Pedro,

 

You need to override the logic of the _updatePlaybookData method in the CaseSectionActionsDashboard and also set the value for the IsShowPlaybookButton attribute to false. To get data from the master case entity you can use the this.getMasterEntityParameterValue() method.

 

Best regards,

Oscar

Hi Oscar,

 

Thank you for the response.

 

I've managed to solve my problem by overriding the method __getPlaybookEsq which is called by the _updatePlaybookData. I simply added the following code to the CaseSectionActionsDashboard:

 

/**
 * @private
 */
_getPlaybookEsq: function() {
	var serviceItem = this.getMasterEntityParameterValue("ServiceItem");
 
	const esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
		rootSchemaName: "VwSysDcmLib"
	});
	const caseUid = this.$DcmSchema.uId;
	const currentCultureId = Terrasoft.SysValue.CURRENT_USER_CULTURE.value;
	esq.addColumn("=[Playbook:Case:Id].KnowledgeBase", "KnowledgeBase");
	esq.filters.addItem(this.Terrasoft.createExistsFilter("=[Playbook:Case:Id].KnowledgeBase"));
	esq.filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "UId", caseUid));
	esq.filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "=[Playbook:Case:Id].StageId", this.$ActiveActionId));
	esq.filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "=[Playbook:Case:Id].[SysCulture:Language:Culture].Id", currentCultureId));
	esq.filters.addItem(this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "=[Playbook:Case:Id].UsrServiceItem", serviceItem.value));
 
	return esq;
}

 

One more thing. Is there a method that I can override or call, in order to reload the DCM automatically after changing my ServiceItem?

 

Thank you.

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

 

There is a reload method in the SectionActionsDashboard module, try calling it.

 

Best regards,

Oscar

Oscar Dylan,

 

I tried to call the reload method on my CasePage but its returning undefined. How/Where should I call this method?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

 

You need to reload the SectionActionsDashboard not the CasePage since you need to reload the DCM (according to your question, correct me if I am wrong). And the reload method is the method of the CaseSectionActionsDashboard.

 

Best regards,

Oscar

Oscar Dylan,

 

Correct, I need to refresh the DCM of the CasePage. However, the reload should happen after I change the value of the field ServiceItem, which is located on my CasePage.

 

Best Regards,

Pedro Pinheiro

Show all comments

Hi Team,

We have a scenario, where a lead is approved by two users. But just before they approve the lead, we want to create a optional task for those 2 users to ensure all the necessary details are verified. We want to show the tasks only to the approvers so that only they can edit or complete the task.

 

We have created both the task in DCM and dynamically giving access to those tasks to the 2 users through business process (removing view/edit access to all users and giving the same only to the owner of the task). We face issues on following points in following regards:

1. when someone other than the approver views the record, we get 2 empty tasks being displayed- NonApprover.png

2. approvers can see or edit their task but get another empty task (task that has to be done by other approver) - Approver.png

can you help us out resolving the issue.

Thanks,

Gokul

 

 

File attachments
Like 0

Like

1 comments

Hi,

 

Could you please write to us at support@creatio.com so we could better analyze the issue with external access?

 

Best regards,

Max.

Show all comments

I have list on section,

may i know how to filter data based on specific condition ?

lets say, i want to show the data where the status is "cancel" and the role is "admin"

 

thankyou

 

 

 

File attachments
Like 0

Like

1 comments

Hello Anton,

 

Thank you for your question!

 

Please, go to the section needed and click on Filters/Folders - Switch to advanced mode:

After that, click on Add condition and specify the condidions for the search:

 

Click 'Apply'.

 

More information on this can be found here:

https://academy.creatio.com/docs/user/platform_basics/business_data/fil…

 

Best regards,

Anastasiia

Show all comments
Question

Hi Team,

 

I have a use case where our customers have more than 3000 records having profile photos linked with records. We have to migrate those photos to new Creatio production instances.

 

What we are trying is in below steps : 



Step 1: uploading the photos/Images in Attachment table.

Step 2: Adding a record in SysImage Table using business process from Attachment Table(step1).

Step 3: Updating the created record Id of SysImage in "PhotoId" of Contact section.



Issue : All the steps are working fine but Image is not reflecting against the contact using this approach.



Can anyone please tell us the reason for it? 

 

Support team suggestion https://community.creatio.com/questions/import-photo-image-imageapiservice



I have gone through this link, but didn't understand Ryan's suggestion correctly. 



My questions related to Ryan's code  is below : 



1. "var url = "https://somewebsite/someimage.png" -- What is this url supposed to be? 



2.  Do I need to write the give code in source code schema and then use it ?



3.  Since the customers have 3000 photos of contacts then how this code will find correct photo of correct contact? Actually what modifications is required before using this piece of code ?

 

 

 

 

Like 1

Like

1 comments

Hi Akshit,

 

Answers to questions related to Ryan's code:

 

1) This is the URL to a separate resource where an image is located (direct link to an image)

2) You can do it either in the source code inside the app or create an integration that will connect to the Creatio app and perform an update of the image

3) You have to create a logic that will go through 3000 records (a cycle I guess or an array and execute the logic for each item of this array using standard C# approaches of processing several records)  and execute the logic for these records.

 

Best regards,

Oscar

Show all comments

Hi Community,

 

I have this situation where I need to create a filter for the lookup Group (Fig. 2) based on my custom field that I've created on SysAdminUnit object (Fig.1).

 

Fig. 1

 

 

Fig. 2

 

I've managed to add the custom field to the SysAdminUnitPage (Fig.3). However, the custom field is not "connected" to the object field, because this page is different from the others and does not have entitySchemaName attribute (Fig. 4).

 

Fig.3

 

Fig.4

 

I would like to know:

  1. How can I "connect" the field that I've created on my SysAdminUnitPage to the field I've created on the SysAdminUnit object?
  2. How can I create a filter for the lookup Group inside CasePage using my custom field?

Any suggestion on how to achieve this? Thank you.

 

Best Regards,

Pedro Pinheiro

Like 0

Like

5 comments

Hi Pedro,

 

If you need to create a filter of the Group lookup on the case page then why do you replace the SysAdminUnitPageV2? And which case and account do you expect to see on the SysAdminUnitPageV2 for some role (for example for "System administrators")? Also I cannot see any filtration logic on the SysAdminUnitPageV2 module code you've shared.

 

You need to create a filter on the CasePage using an example provided here.

 

Best regards,

Oscar

Hi Oscar,

 

Thank you for the response.

 

My question consists of two parts:

 

1) I've created a replacing page of the "SysAdminUnitPageV2", so I could add my custom boolean field "Case" and the pre-built lookup field "Account". Since the "Account" field is not custom, I only added the field on my "SysAdminUnitPageV2" page through the “diff” array (image below). Every time I change and save my "Account" value, it will automatically update the value in the database for my specific record. However, the same does not happen to my custom field "Case".

I’ve created the “Case” field the same way "Account" field was created, but I think I'm missing some page logic that is responsible to store my “Case” values in the database.

 

 

2) The lookup filter that I want to add is for the "Group" lookup field inside the "CasePage". This filter should use the "Case" field, previously added to the "SysAdminUnit" object. With the example you provided I was able to complete this second part.

 

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

 

In the Fig.4 modify the "bindTo": "Case" to "bindTo": "UsrCase", save the schema and refresh the "role" page after that. Try saving some value and let me know about the result.

 

Best regards,

Oscar

Oscar Dylan,

 

I've made the changes, but my page cannot find the UsrCase column. I think it's because this page does not have the "entitySchemaName" attribute. But even if I try to add the "entitySchemaName" attribute the page will throw an exception.

 

 

Error Translation: "It was not possible to find the column through the following configuration."

 

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

 

To achieve your first result you need to:

 

1) Create a replacing object selecting the VwSysAdminUnit object as a parent

2) Create the lookup column with the "UsrCase" code and "Case" title inside the object from step 1.

3) Save and publish the object from step 1.

 

As a result here you should get this result:

4) Execute the following query in the database (please note that if you already have customizations in the VwSysAdminUnit table (new columns inside it) then the query that should be executed in your case can differ (all the columns of the already existing replacement should be mentioned in the query, study it before running)):

IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[VwSysAdminUnit]'))
DROP VIEW [dbo].[VwSysAdminUnit]
GO
CREATE VIEW [dbo].[VwSysAdminUnit]
AS
SELECT [SysAdminUnit].[Id]
	,[SysAdminUnit].[CreatedOn]
	,[SysAdminUnit].[CreatedById]
	,[SysAdminUnit].[ModifiedOn]
	,[SysAdminUnit].[ModifiedById]
	,[SysAdminUnit].[Name]
	,[SysAdminUnit].[Email]
	,[SysAdminUnit].[Description]
	,[SysAdminUnit].[ParentRoleId]
	,[SysAdminUnit].[ContactId]
	,[SysAdminUnit].[IsDirectoryEntry]
	,[TimeZone].[Id] AS [TimeZoneId]
	,[SysAdminUnit].[UserPassword]
	,[SysAdminUnitType].[Id] AS [SysAdminUnitTypeId]
	,[SysAdminUnit].[AccountId]
	,[SysAdminUnit].[Active]
	,[SysAdminUnit].[LoggedIn]
	,[SysAdminUnit].[SynchronizeWithLDAP]
	,[LDAPElement].[Name] as [LDAPEntry]
	,[LDAPElement].[LDAPEntryId]
	,[LDAPElement].[LDAPEntryDN]
	,[SysAdminUnit].[SysCultureId]
	,[SysAdminUnit].[ProcessListeners]
	,[SysAdminUnit].[PasswordExpireDate]
	,[SysAdminUnit].[HomePageId]
	,[SysAdminUnit].[ConnectionType]
	,[ConnectionType].[Id] AS [UserConnectionTypeId]
	,[SysAdminUnit].[ForceChangePassword]
	,[SysAdminUnit].[LDAPElementId]
	,[SysAdminUnit].[DateTimeFormatId]
	,[SysAdminUnit].[Id] as [SysAdminUnitId]
	,[SysAdminUnit].[SessionTimeout] as [SessionTimeout]
	,[SysAdminUnit].[UsrCaseId] as [UsrCaseId]
FROM [SysAdminUnit]
INNER JOIN [SysAdminUnitType] ON [SysAdminUnitType].[Value] = [SysAdminUnit].[SysAdminUnitTypeValue]
LEFT JOIN [ConnectionType] AS [ConnectionType] ON [ConnectionType].[Value] = [SysAdminUnit].[ConnectionType]
LEFT JOIN [TimeZone] AS [TimeZone] ON [TimeZone].[Code] = [SysAdminUnit].[TimeZoneId]
LEFT JOIN [LDAPElement] ON [LDAPElement].[Id] = [SysAdminUnit].[LDAPElementId]
GO
CREATE TRIGGER [dbo].[ITR_VwSysAdminUnit_I]
ON [dbo].[VwSysAdminUnit]
	INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [SysAdminUnit](
	[Id]
	,[CreatedOn]
	,[CreatedById]
	,[ModifiedOn]
	,[ModifiedById]
	,[Name]
	,[Email]
	,[Description]
	,[ParentRoleId]
	,[ContactId]
	,[IsDirectoryEntry]
	,[TimeZoneId]
	,[UserPassword]
	,[SysAdminUnitTypeValue]
	,[AccountId]
	,[Active]
	,[LoggedIn]
	,[SynchronizeWithLDAP]
	,[LDAPEntry]
	,[LDAPEntryId]
	,[LDAPEntryDN]
	,[SysCultureId]
	,[ProcessListeners]
	,[PasswordExpireDate]
	,[HomePageId]
	,[ConnectionType]
	,[ForceChangePassword]
	,[LDAPElementId]
	,[DateTimeFormatId]
	,[SessionTimeout]
	,[UsrCaseId])
SELECT [Id]
	,[CreatedOn]
	,[CreatedById]
	,[ModifiedOn]
	,[ModifiedById]
	,[Name]
	,[Email]
	,[Description]
	,[ParentRoleId]
	,[ContactId]
	,[IsDirectoryEntry]
	,(SELECT COALESCE(
		(SELECT [TimeZone].[Code] FROM [TimeZone]
			WHERE [TimeZone].[Id] = [INSERTED].[TimeZoneId]), ''))
	,[UserPassword]
	,ISNULL((SELECT [SysAdminUnitType].[Value] FROM [SysAdminUnitType]
		WHERE [SysAdminUnitType].[Id] = [INSERTED].[SysAdminUnitTypeId]), 4)
	,[AccountId]
	,[Active]
	,ISNULL([LoggedIn], 0)
	,[SynchronizeWithLDAP]
	,(SELECT COALESCE(
		(SELECT [LDAPElement].[Name] FROM [LDAPElement]
			WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId]), ''))
	,(SELECT COALESCE(
		(SELECT [LDAPElement].[LDAPEntryId] FROM [LDAPElement]
			WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId]), ''))
	,(SELECT COALESCE(
		(SELECT [LDAPElement].[LDAPEntryDN] FROM [LDAPElement]
			WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId]), ''))
	,[SysCultureId]
	,[ProcessListeners]
	,[PasswordExpireDate]
	,[HomePageId]
	,COALESCE([INSERTED].[ConnectionType],
		(SELECT [ConnectionType].[Value] FROM [ConnectionType]
		WHERE [ConnectionType].[Id] = [INSERTED].[UserConnectionTypeId]), 0)
	,ISNULL([ForceChangePassword], 0)
	,[LDAPElementId]
	,[DateTimeFormatId]
	,[SessionTimeout]
	,[UsrCaseId]
FROM [INSERTED]
END
GO
CREATE TRIGGER [dbo].[ITR_VwSysAdminUnit_U]
ON [dbo].[VwSysAdminUnit]
	INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE [SysAdminUnit]
SET [SysAdminUnit].[CreatedOn] = [INSERTED].[CreatedOn]
	,[SysAdminUnit].[CreatedById] = [INSERTED].[CreatedById]
	,[SysAdminUnit].[ModifiedOn] =[INSERTED].[ModifiedOn]
	,[SysAdminUnit].[ModifiedById] = [INSERTED].[ModifiedById]
	,[SysAdminUnit].[Name] = [INSERTED].[Name]
	,[SysAdminUnit].[Email] = [INSERTED].[Email]
	,[SysAdminUnit].[Description] = [INSERTED].[Description]
	,[SysAdminUnit].[ParentRoleId] = [INSERTED].[ParentRoleId]
	,[SysAdminUnit].[ContactId] = [INSERTED].[ContactId]
	,[SysAdminUnit].[IsDirectoryEntry] = [INSERTED].[IsDirectoryEntry]
	,[SysAdminUnit].[TimeZoneId] =
		(SELECT COALESCE(
			(SELECT [TimeZone].[Code] FROM [TimeZone]
				WHERE [TimeZone].[Id] = [INSERTED].[TimeZoneId]), ''))
	,[SysAdminUnit].[UserPassword] = [INSERTED].[UserPassword]
	,[SysAdminUnit].[SysAdminUnitTypeValue] =
		(SELECT [SysAdminUnitType].[Value] FROM [SysAdminUnitType]
			WHERE [SysAdminUnitType].[Id] = [INSERTED].[SysAdminUnitTypeId])
	,[SysAdminUnit].[AccountId] = [INSERTED].[AccountId]
	,[SysAdminUnit].[Active] = [INSERTED].[Active]
	,[SysAdminUnit].[LoggedIn] = [INSERTED].[LoggedIn]
	,[SysAdminUnit].[SynchronizeWithLDAP] = [INSERTED].[SynchronizeWithLDAP]
	,[SysAdminUnit].[LDAPEntry] =
		CASE
			WHEN (UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 1 AND [INSERTED].[LDAPElementId] is not null)
					OR (UPDATE(LDAPElementId) AND [INSERTED].[LDAPElementId] is not null)
				THEN (SELECT [LDAPElement].[Name] FROM [LDAPElement] WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId])
			WHEN UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 0
				THEN ''
			ELSE [SysAdminUnit].[LDAPEntry]
		END
	,[SysAdminUnit].[LDAPEntryId] = 
		CASE
			WHEN (UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 1 AND [INSERTED].[LDAPElementId] is not null)
					OR (UPDATE(LDAPElementId) AND [INSERTED].[LDAPElementId] is not null)
				THEN (SELECT [LDAPElement].[LDAPEntryId] FROM [LDAPElement] WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId])
			WHEN UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 0
				THEN ''
			ELSE [SysAdminUnit].[LDAPEntryId]
		END
	,[SysAdminUnit].[LDAPEntryDN] = 
		CASE
			WHEN (UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 1 AND [INSERTED].[LDAPElementId] is not null)
					OR (UPDATE(LDAPElementId) AND [INSERTED].[LDAPElementId] is not null)
				THEN (SELECT [LDAPElement].[LDAPEntryDN] FROM [LDAPElement] WHERE [LDAPElement].[Id] = [INSERTED].[LDAPElementId])
			WHEN UPDATE(SynchronizeWithLDAP) AND [INSERTED].[SynchronizeWithLDAP] = 0
				THEN ''
			ELSE [SysAdminUnit].[LDAPEntryDN]
		END
	,[SysAdminUnit].[SysCultureId] = [INSERTED].[SysCultureId]
	,[SysAdminUnit].[ProcessListeners] = [INSERTED].[ProcessListeners]
	,[SysAdminUnit].[PasswordExpireDate] = [INSERTED].[PasswordExpireDate]
	,[SysAdminUnit].[HomePageId] = [INSERTED].[HomePageId]
	,[SysAdminUnit].[ConnectionType] = COALESCE([INSERTED].[ConnectionType],
		(SELECT [ConnectionType].[Value] FROM [ConnectionType]
		WHERE [ConnectionType].[Id] = [INSERTED].[UserConnectionTypeId]), 0)
	,[SysAdminUnit].[ForceChangePassword] = [INSERTED].[ForceChangePassword]
	,[SysAdminUnit].[LDAPElementId] = [INSERTED].[LDAPElementId]
	,[SysAdminUnit].[DateTimeFormatId] = [INSERTED].[DateTimeFormatId]
	,[SysAdminUnit].[SessionTimeout] = [INSERTED].[SessionTimeout]
	,[SysAdminUnit].[UsrCaseId] = [INSERTED].[UsrCaseId]
FROM [SysAdminUnit]
INNER JOIN [INSERTED] ON [SysAdminUnit].[Id] = [INSERTED].[Id]
END
GO
CREATE TRIGGER [dbo].[ITR_VwSysAdminUnit_D]
ON [dbo].[VwSysAdminUnit]
	INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM [SysAdminUnit]
WHERE EXISTS(SELECT * FROM [DELETED] WHERE [SysAdminUnit].[Id] = [DELETED].[Id])
END
GO

This query is for MS SQL, if your application is hosted using the PostgreSQL database then your query should be written using PostgreSQL syntax (you can copy the OOB VwSysAdminUnitPostgreSql SQL-script from the LDAP package, add your custom columns inside the ready script and execute it after that).

 

5) In the replaced SysAdminUnitPageV2 module add the following code to the diff array of the module:

{
					"operation": "insert",
					"parentName": "Header",
					"propertyName": "items",
					"name": "UsrCase",
					"values": {
						"bindTo": "UsrCase",
						"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
						"layout": {
							"column": 0,
							"row": 1,
							"colSpan": 24
						}
					},
				}

6) Add the entitySchemaName: "VwSysAdminUnit", part to the replaced SysAdminUnitPageV2 module (below you can find an example of the correctly replaced module):

define("SysAdminUnitPageV2", [],
	function() {
		return {
			entitySchemaName: "VwSysAdminUnit",
			details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"parentName": "Header",
					"propertyName": "items",
					"name": "UsrCase",
					"values": {
						"bindTo": "UsrCase",
						"dataValueType": this.Terrasoft.DataValueType.LOOKUP,
						"layout": {
							"column": 0,
							"row": 1,
							"colSpan": 24
						}
					},
				}
			]/**SCHEMA_DIFF*/,
			attributes: {},
			methods: {}
		};
});

7) Save the module and refresh the page

 

As a result you will get a working lookup that references the "Case" object:

and

PS: also please share code itself, but not its screenshots, sometimes copying some ready code can save the time:)

 

Best regards,

Oscar

Show all comments

Hi Creatio Community

 

I need help in applying red asterisk (*) with the required field values using CSS.

Can you suggest some me method for the same. 

I tried using the below given code in the span tag of the field label in CSS client module of the section but it didn't work.

 

  .required:after {
    content:" *";
    color: red;
  }

 

Provide some method of applying the asterisk sign with the required field labels.

 

Thanks in advance

 

Sarika

Like 0

Like

2 comments

Hi Sarika,

 

This is the question regarding CSS formation, feel free to reach out to official forums and websites (here is a couple of websites:

https://developer.mozilla.org/en-US/docs/Web/CSS

https://www.w3schools.com/css/

) related to CSS functionality.

 

Best regards,

Oscar

Hi Sarika,



Since It's OOTB.

You can mark your field required in the section wizard of the corresponding section.



Please provide your scenario if it couldn't be achieved via section wizard.



BR,

BHoobalan Palanivelu.

 

Show all comments

Hello Creatio Community,

 

How can we fix custom filters for detail records. For instance, there is a month lookup in the detail record. I don't want to repeatedly navigate to the options to apply filter and then select the month column followed by selecting the month name from the lookup.

 

I want a custom filter readily available on the top of the detail records wherein I only have to select the month name from the filter. How can I achieve this?

 

 

Like 1

Like

1 comments

Hello Sarika, 



Your business task can be achieved only via development. 

 

You can take an example of the filter from the Timeline detail. The example can be found in TimelineFiltersSchema detail.

 

This article could be also useful for you:

https://academy.creatio.com/documents/technic-sdk/7-13/adding-quick-fil…



Best regards,

Bogdan

Show all comments

Hello Creatio Community,

When a Detail is saved dhe DetailPage is automatically closed. Is it possible to save the Detail without closing the Page?

Like 0

Like

2 comments
Best reply

Hi Petrika,



Have you tried Silentsave method?

onSaveButtonClick: function() {
   if (this.get("IsProcessMode")) {
      this.save({ isSilent: true });
   } else {
      this.save();
   }
} 

Refer the articles here & here



Best regards,

Bhoobalan Palanivelu.

Hi Petrika,



Have you tried Silentsave method?

onSaveButtonClick: function() {
   if (this.get("IsProcessMode")) {
      this.save({ isSilent: true });
   } else {
      this.save();
   }
} 

Refer the articles here & here



Best regards,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Thanks very much !

Show all comments