when adding a CSS module in Creatio it is deleted when refresh, i cannot show the effective colors after refresh

 in first pic i add CSS file and it work 

After refresh it return to original

Can any one help?

Like 0

Like

1 comments
Best reply

Hello, ElSayed!

Such problem can appear when you've opened the app in a few tabs and logged out+ loged in on one of the tabs. For example: the tab with the configuration page is open and you're writing code there. Then you press the save button, click on the nearest tab to check the result, and relogging to the second tab. After this, your changes in the first settings tab will not be saved. Or it can happen if you have two settings tabs for one object.

I would recommend you to close all tabs and try to add the CSS again, save it and check the result by reloading the page button.

Hello, ElSayed!

Such problem can appear when you've opened the app in a few tabs and logged out+ loged in on one of the tabs. For example: the tab with the configuration page is open and you're writing code there. Then you press the save button, click on the nearest tab to check the result, and relogging to the second tab. After this, your changes in the first settings tab will not be saved. Or it can happen if you have two settings tabs for one object.

I would recommend you to close all tabs and try to add the CSS again, save it and check the result by reloading the page button.

Show all comments

We're trying to set it up so that one of our mini pages used for record creation (wherever the record creation is started from, as there are several screens with a button to create the record) always has a default value set. We can't set the default on the entity, as records coming in from the integrations shouldn't have these fields set to any default, only set to whatever comes in through the interface. Is there any configuration that can be done to set default values for pages themselves?

 

We know about setting defaults when calling the crt.CreateRecordRequest request which is done from the calling page, but would ideally like to be able to set it one time for the creation mini page itself to avoid code duplication. We are on 8.1.0

Like 1

Like

5 comments

You can setup a business rule if the attribute is not filled in then you set a static value. This will work only on the interface.

Thanks for the suggestion Franck, and interesting/concerning that the entity-level business rules only apply when creating records through the UI and not for all data!

 

Unfortunately the business rule value setting is much too limited in Creatio for what we need, only being able to set to a constant/static value which is defined when setting up the business rule. We need to be setting the value based on some logic through code, but would ideally be doing so with declarative code rather than imperative code which modifies the fields manually.

Hello Harvey,

The most general way to set the default values for a mini-page is to transfer them in ModelInitConfigs via crt.OpenPageRequest:

modelInitConfigs: [{defaultValues: [{AttributeName: 'AttributeValue'}]}]

But if you want to avoid transferring the values in every place you open the mini-page, consider the following implementation in the mini-page view model:

  1. Set the attribute value in the "crt.HandleViewModelInitRequest":
    request.$context.AttributeName = “AttributeValue”;
  2. Provide it not to be overridden to default null value in "crt.HandleViewModelAttributeChangeRequest":
    if (request.attributeName === "AttributeName" && request.value === null) {
          request.$context.AttributeName = “AttributeValue”;
    }

     

Best regards, Natalia

Hi Natalia,

 

Thanks for the reply, those will definitely be useful - for example I didn't know you could set default values when calling the crt.OpenPageRequest, I thought it was only possible to do so using the crt.CreateRecordRequest, so thanks for that!

 

I believe the workaround for putting the logic in the mini-page would mostly work, but with the following caveats:

1. You would not be able to clear the value of the field manually, which is unfortunate

2. This would make a change to the page that would cause the confirmation dialog to appear if closing the mini-page without the user making any modifications to data - not the end of the world, but it would be nice to avoid that

 

A quick question - what is the difference between simply assigning a request.$context.AttributeName using 

request.$context.AttributeName = "value"

Vs using the _setAttributeValue method in your reply? Is there any functional difference between the two, or is it just preference?

 

Many thanks,

Harvey

Harvey Adcock,

 

Hi, 

Sure, setting the mini page default values via HandleViewModel InitRequest and HandleViewModelAttributeChangeRequest has some disadvantages. That’s why we recommend using ModelInitConfigs in OpenPageRequest.

 

However, it may still be used if the user doesn’t need to set the field value to null. Especially considering the facts that:

- removing the string field means setting a value to an empty string (not null);

- the numeric field value might be set to 0 instead of removing it.

 

The question of silent saving has already been discussed in the separate feed - https://community.creatio.com/questions/it-possible-make-changes-attributes-code-freedom-ui-silently .

 

Regarding your question about setting the attribute value – I clarified it with our R&D department. There is no functional difference between the two approaches, but only the direct assigning is recommended to use as the most stable method:

request.$context.AttributeName = "value"

Thank you for such an important question. I have already changed my examples accordingly.

 

Best regards,

Natalia

Show all comments

Hi,

Is there a way to hide a lookup value within a specific page if that value has already been used on another record? I want to to ensure that a lookup value is not selected more than once. Alternative solution could be stopping the user from selecting it again.

 

thanks

Like 0

Like

1 comments

I have resolved this by creating a column on Look up which gets updated when a record gets added/updated and that lookup values selected/removed. Then used filter to only display values in lookup accordingly.

Show all comments

Hi,

I have a task to create a filter on a specific text field, how can I do it ?

Like 0

Like

2 comments

Hello Vadym,



Could you please elaborate on your business task? 

Bogdan,

i have text column 'Title' and i want have static filter for this column in register interface but in freedom i can do quicke filter only for column with type lookup, date and chekbox

Show all comments

How can I decide which values from the Interval of notifications lookup can be visible in the postpone option for reminders?

Is it controllable?

 

 

Like 0

Like

1 comments

This article shows how to add values to the list of intervals, you can use this to determine how to also remove values from the list: 

https://customerfx.com/article/adding-additional-options-to-the-task-po…

Ryan

Show all comments

Dear colleagues,

 

If have a couple of process calls in a client module, very similar, one works and the another ones fails before to call the process getting a "400 (Bad Request)" error

 

Here is the code, the first one fails:

OnGeneraDetalleContratoBtnClick: function() { 
	// Guarda el registro, por si hubo cambios
	this.save();
 
	const RunProcessRequest = Ext.create( "Terrasoft.RunProcessRequest", { 
		// El nombre del Proceso
		"schemaName": "NdosCreaDetalleContrato", 
 
		// Parámetros de entrada
		"parameterValues": { 
			"NdosGrupoEconomicoID": this.get( "NdosGrupoEconomico" ),
			"NdosContratoID": this.get( "Id")
 
		},
 
		// Parámetros de Salida - True => Hay sucursales
		"resultParameterNames": [ 
			"NdosReturn"
 
		]
	} ); 
 
	// Ejecuta el proceso
console.log( RunProcessRequest );
// THIS gets error "400 (Bad Request)" here in the execute	//ERROR ERROR HERE HERE			
	RunProcessRequest.execute(function(response) { 
		// Si OK, actualiza el valor en funcion de la salida
		if (response.isSuccess()) { 
			// Actualiza la cantidad de meses que dura el contrato
			if ( response.resultParameterValues[ "NdosReturn" ] === true ) {
				// Tiene sucursales, inhablitita el boton...
				this.set( "NdosDetalleContratoGenerado", true );		
 
				}
		} 
	}, this ); 
},

 

This another wroks fine and are (as I saw identical!!)

// Jalcon - NoCode-Services - 20240110 - 
// Cambia alguna de las fechas del Contrato, debe ajustar la duración en meses del mismo
updateDuracionContratoMeses: function() { 
	const runProcessRequest = Ext.create("Terrasoft.RunProcessRequest", { 
		// El nombre del Proceso
		"schemaName": "Jfl_MesesEntreDosFechas", 
 
		// Parámetros de entrada
		"parameterValues": { 
			"NdosFechaInicial": this.get( "NdosFechaInicio" ), 
			"NdosFechaFinal": this.get( "NdosFechaFinContrato" )
		},
 
		// Parámetros de Salida
		"resultParameterNames": [ 
			"NdosCantidadDeMeses"
 
		] 
	}); 
 
	// Ejecuta el proceso
	runProcessRequest.execute(function(response) { 
		// Si OK, actualiza el valor en funcion de la salida
		if (response.isSuccess()) { 
			// Actualiza la cantidad de meses que dura el contrato
			this.set( "NdosMesesDuracionContrato", response.resultParameterValues[ "NdosCantidadDeMeses" ] ); 
 
			// Si el contrato ya tiene importe, cctualiza el importe del Contrato
			if( this.get( "NdosImporteMensualContrato" ) > 0 ) {
				this.set( "NdosMontoContrato", this.get( "NdosImporteMensualContrato" ) * this.get( "NdosMesesDuracionContrato" ) );
				}
 
		} 
	}, this); 
} 

 

This is part of the error, console log

 
       POST https://XXXXXX.creatio.com/0/ServiceModel/ProcessEngineService.svc/RunProcess 400 (Bad Request)
 
all-combined.js?v=8.1.1.3635:41 Error al enviar solicitud 
	estado de respuesta: 400 (Bad Request)
	url de solicitud: ../ServiceModel/ProcessEngineService.svc/RunProcess

Some ideas? please help

 

regards,

 

Julio Falcón

Like 0

Like

3 comments
Best reply

Hi Julio,

 

Just guessing, is "NdosGrupoEconomico" a lookup? The parameter is named with an Id, so assuming it is. If that is the case, you need to get it's value, right now it's sending the entire object from the lookup. 

For example (note, the .value at the end): 

"NdosGrupoEconomicoID": this.get("NdosGrupoEconomico").value

However, if it's possible that the lookup can be blank, might be a good idea to check for that as well.

Ryan

Hi Julio,

 

Just guessing, is "NdosGrupoEconomico" a lookup? The parameter is named with an Id, so assuming it is. If that is the case, you need to get it's value, right now it's sending the entire object from the lookup. 

For example (note, the .value at the end): 

"NdosGrupoEconomicoID": this.get("NdosGrupoEconomico").value

However, if it's possible that the lookup can be blank, might be a good idea to check for that as well.

Ryan

Hello Julio,

 

Can you please share the RunProcess request body (from the network tab in the console)? We can compare it to the successful calls and see the difference. Additionally you need to check if both retrieved values (using this.get getters) are strings.

Ryan Farley,

Thanks Ryan, you are right. Fortunately I had already found my mistake... almost a beginner's mistake :-(

Show all comments

We've got a requirement to run some async entity event listener code, but when following the academy article for that ( https://academy.creatio.com/docs/7-18/developer/back_end_development/ob… ) and trying to use the arguments.OldEntityColumnValues property of the EntityEventAsyncOperationArgs arguments parameter passed in, we get the following compilation error which we cannot seem to resolve:

 

From looking online for general resolutions, it looks like we maybe need to add this assembly to the web.config file, but we're on a cloud instance so presume this isn't a feasible resolution.

 

Any advice would be greatly appreciated.

 

Reduced version of the code (without usings etc shown) that throws the error below:

public class UsrAsyncSendLeadAssociation: IEntityEventAsyncOperation
{
    public void Execute(UserConnection userConnection, EntityEventAsyncOperationArgs arguments) {
        var oldModVal = arguments.OldEntityColumnValues;
    }
}

 

Like 0

Like

1 comments

Hello,

As a quick solution, you should disable the option "Compile into a separate assembly" in the package where the schema is located.

After this, the problem should be resolved.

Show all comments

Is it possible to set the home page as the default screen that loads for the user after logging into the system?

In the user account settings it is possible to define a home page, but I can select the home page I have defined here. I can select any section from the system, including dahsboards, but not the home page. Do you know a way to solve this issue?

File attachments
Like 0

Like

3 comments

Hello!

 

The specified field is intended to set a section as the default value for the user.

The home pages are the main places where people enter the workspace.

Perhaps you will find the mentioned article useful for implementation:

https://community.creatio.com/questions/default-page-login

Alona Dolya,

Thank you for your answer. I know the article you linked to and unfortunately it does not answer my question.

In Freedom UI, the home page does not load by default for users after logging into the system. In Freedom UI, after logging in the desktop set in Setup apperance loads by default. However, I need the start pages to load by default in Freedom UI as it was in the standard UI and I don't know how to set it.

Has anyone managed to solve such a problem?

 

Nope, still awaiting for Creatio to provide us the ability to choose the default page in new shell like we used to in classic shell, being forced on desktop view also...

Show all comments

Is it possible to limit access to the all apps in freedom UI menu only for a selected group of users?

In the workspace configuration I can add user groups to different workspaces and it works fine. However, I would like to limit access to the all apps area only for the administrator and I do not know how to do it.

Maybe someone has already managed to solve this problem?

File attachments
Like 2

Like

2 comments

A couple similar request for the same issue has been made already (https://community.creatio.com/questions/all-apps-workplace-0)  & ( https://community.creatio.com/questions/default-logon-page-homepage-vs-…), still awaiting for some more control in future version of Creatio 8.1.x

Dear Maciej,

 

From the 8.1.1 release, there is a possibility to define that by using system operation with code "CanViewAllAppsWorkplace".

Also, please consider that  "All Apps" workplace is displayed to a user only when they have 1+ workplace available. And it namely contains the list of all available apps inside his available workplaces, but not a list of all existing apps in the system.

 

Have a great day!

Show all comments

Hi,



I am trying to add a new entry in the following because I enrolled a new Activity Type: Notes.



Do you know how to modify this, addon?



Below is the TimelineEntityValues where I want to add another entry.

 

Like 2

Like

4 comments

Hello Solem,

To make changes to the addon, you can modify the Modifications package node of the addon structure.

There is an article in Creatio Academy with an example of how you can customize the Timeline component: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

Hello Artem and Solem,
When i try to save the update made into the modification package i get the following error :
Unable to save changes for item "CallTimelineEntity". It is either created by third-party publisher or installed from the file archive

how can i correct this problem ?

 

LÉZORAY Nicolas,


Hello, 

For my case, I was trying to add a new option menu in the timeline so I ended up editing the Timeline through updating the database value for that timeline to enroll my new activity.type

Solem Khn,

Hello Solem,

It works on Freedom with the doc provide by Artem.

On Classic i used to modify the database but this way doesn't works on Freedom, is not it ?

Show all comments