Dear,

I want to add a calculated fieldto my OpportunityProductInterest object.

i add it with the Usr prefix (UsrMarge) , but when i save the object, the system return me the following error:

Unable to save structure. Name: OpportunityProductInterest. 
Label: Product of the opportunity. 
Error: InvalidNameException. 
The "Min Quantity" code in the "From" column must start with the prefix "Usr". 
Contact the system administrator.

This is because the previous developper created fields without the prefix.

Can i change the system parameters to set the prefix not required ?

Thank you,

Nicolas

Like 0

Like

1 comments

Sorry having disturbing, i put it blank and it works.

Show all comments

Creatio by default allows a user to choose between 50, 250 and 500 as max lengths of a Text column from the Object designer. In a use case where Creatio co-exists with an external system and both share the same fields, it becomes important to maintain consistency with respect to data types and lengths.



Right now, the only way to enforce a custom length (say String(8)) is to implement field validators on the Creatio GUI and write custom code to validate any input received via server side integrations. However, the field in the DB would still have 50, 250 or 500 as the length. This is not ideal. 

 

It would be very useful to permit defining custom lengths of fields Eg String(8) from the Object designer which directly creates those custom lengths in the database. 

1 comments

Hello Shrikanth,

 

Hope you're doing well.

 

Thank you for being interested in the Creatio application and further its improvements. We have created a functional request and passed it to our R&D team. After additional review, if the request will be in high demand this kind of functionality will be implemented in the future versions of the application and the users will be able to permit defining custom lengths of the needed fields without adding the custom code.

 

We appreciate your cooperation!

 

Best regards,

Roman

Show all comments

I need a single field to hold a DateTime variable.

It should be available for being read/written via business processes.

I tried to use System settings for this, but with no success; I couldn't manage a business process to set a value for a System setting.

What is the best way to keep a global variable in Creatio?

Like 0

Like

6 comments

Yurily,

A system setting is the best place for something like that. Normally, I'd use a Modify Data element in the process to write it back, but in current versions of Creatio the lookup to add columns to update causes a client-side error so you're unable to select columns. 

However, you can set it with a script task. Let's assume your value is a string value and currently in a process parameter named "MyParameterValue". You'd add code something like this to read it from the parameter and set a system setting with a code of "UsrMySetting":

var val = Get<string>("MyParameterValue");
Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, "UsrMySetting", val);
return true;

Ryan

Ryan Farley,

Thanks for your answer. The thing I don't understand is what "Yurily" means :)

Yuriy Konstantinov,

lol, sorry for the typo Yuriy!

Ryan Farley,

Hi Ryan,

 

I'm doing this, but for some reason the updated value is not on the System Setting if I see it by the System Settings, but If I ask it on a process I get the updated number.

 

I try to explain better, I create a System Setting variable, and init it with a number, in the process I update the value of the system setting and use it for some task, but when I come back to Creatio System setting and open the System setting is just like I define it, no change, but If I ask its value from a process it's updated.

 

I think is something related with cache or whatever, did you know what could be wrong?

 

For example, the following sub process is called in a "Read collection of records" loop.

 

In the first image you can see, I get the value of the System Setting called "Incidencias Detectadas - Correlativo Histórico" and add 1 and stores it in a local parameter.

 

The initial value in the System setting is 1

 

In the next step of the sub process I did something with the value, and in the third element of the sub process I update the system setting using the updated value in step 1. ie the old number + 1

 

 

It works OK, it's fine!, but when I came to System Setting, it shows me the initial number, ie: 1 and it must be 800 to my example,

 

You can see the value still is one, but If I read the value from a process, it gives to me the correct value. WHAT'S WRONG?

 

Thanks in advance

Julio Falcón

Ryan Farley,

Does your code set the system setting for the All employees role, or specifically for whichever user triggered the BP? Is there a way to choose this? The setting we are trying to set should be a single system setting for all users, but after running the BP, it appears to be creating a system settings value record for the user who runs the BP.

Harvey Adcock,

For a non per-user setting you can use SetDefValue

Terrasoft.Core.Configuration.SysSettings.SetDefValue(UserConnection, "UsrMySetting", val);

Ryan

Show all comments

Hello Community!

 

I have a mask in a interger field, but I need to apply that on the page inizialate because I have record inserted directly to the database.

 

 

Like 0

Like

1 comments

Dear Federico,

 

An input mask helps users with the input by ensuring a predefined format. If you have record inserted directly to the database, you won’t be able to apply the input mask for this record. In order to validate this record, please consider creating a trigger in the database that should be triggered before inserting the record. Please find more information about triggers in the article by the link below:

 

https://www.essentialsql.com/what-is-a-database-trigger/

 

Best regards,

Norton

Show all comments

Hi All,

I'm looking for a way to programmaticaly get a UI component (to set read only property for example) by name.

I want to loop over a predefined array of field names, get their actual component and call setReadOnly on them.

How do I do this?

Like 0

Like

2 comments

Hi Jonas,



You can bind enabled property to a method in diff section like this:



 

define("UsrPage", [],
	function() {
	return {
		entitySchemaName: "UsrObject",
		details: /**SCHEMA_DETAILS*/ {} /**SCHEMA_DETAILS*/ ,
		diff: [
			{
				"operation": "insert",
				"name": "DATEb70c5501-1824-4750-9dc8-2c7ced38a192",
				"values": {
					"layout": {
						"colSpan": 6,
						"rowSpan": 1,
						"column": 18,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "UsrValidityDate",
					"enabled": {"bindTo": "myFunctionCheck"}
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 2
			},
			{
				"operation": "insert",
				"name": "LOOKUP94e30b0e-aa00-49bb-a050-0103e04cd0fa",
				"values": {
					"layout": {
						"colSpan": 7,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "UsrQuoteOwner",
					"enabled": {"bindTo": "myFunctionCheck"},
					"contentType": 5
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 3
			}
		],
		methods: {
			myFunctionCheck: function() {
				return false;
			}
		}
	};
});

Note, that more than one field can be bound to one property.



Does this work for you?



Regards,

Dmytro

That'll do. Should've thought about that myself! Thanks.

Show all comments

Hi everyone.

    I need to make all fields and details of a page readonly if a certain  condition is met. (In this case if a field has a certain value).

    Mostly if there is any other way than going each field and adding enabled with a variable, and in each detail check the variable with EntitySchemaQuery.

 

Like 0

Like

3 comments

Dear Ezequiel, 

You can use business rules for that. Here is an academy page that: 

User tools: 

https://academy.bpmonline.com/documents/administration/7-13/setting-business-rules

Development tools: 

https://academy.bpmonline.com/documents/technic-sdk/7-13/bindparameter-rule-how-lock-field-edit-page-based-specific-condition

Best regards,

Dennis 

Thanks,

But what I need is a way to avoid doing each field, and doing the whole page.

I've searched and found this on the community:

https://community.bpmonline.com/articles/set-page-readonlymode

But I couldn't find the package mentioned in the article.

Anyways the question is still the same, if there is any way to set a page to readonly, and not every single field one by one and details?.

Regards.

Ezequiel Sacco,

Unfortunately we are not aware of the origin of the package, you can ask creator of the article in comment section of the article. We are not aware of such marketplace app as well. If you don't want to lock each field separately you can redistribute access rights for the record on a certain conditions taking away edit right for all users. You can do it for example using business process. Please note that in this case you would need to turn on managed by records. 

Best regards, 

Dennis 

Show all comments

Is that possible to modify fields in Global Search Result?

Below is the screenshot for my global search, but here I want to add toher data in the rights side of result panel.

 Any Idea or Academy link for this ?

 

Thank you.

 

Like 0

Like

8 comments

Dear Riddhi Jadeja,

There are no basic tools to modify the global search results in the application. However, you can edit a schema that is responsible for the displaying the found data taken from a particular object according to your needs. You can modify the diff part of the code in the inherited from the object schema located in a Custom package. For accounts it is AccountSearchRowSchema and for contacts - ContactSearchRowSchema.

Best regards,

Dean

Dean Parrett,

Thanks a lot Dean. I will try that.

I stumbled across this post because I also want to modify my search results.

 

How exactly do I do this?

I found the "AccountSearchRowSchema" in my "all packages" list and can display its contents. Modification is impossible.

Clicking to the "Custom" section and adding a module gives me a selection of a lot of possibilities .... which one do i have to select? And why? The explanation in the manual is not very helpful for me.

 

Thanks for your help.

 

Hello!

 

You should use "Replacing view model". 

Let me provide you with an example based on the Account section. 

 

Here is a screenshot of the base result that the Global Search returns when searching for an account: 



Let's say we want to add the "Also known as" column to the search result (the one from the screenshot below) and remove the "City" column: 

 

To achieve this: 

 

1) Create the "Replacing view model" in configurations with "AccountSearchRowSchema" code, "AccountSearchRowSchema" name and select "AccountSearchRowSchema (AccountSearchRowSchema)" as a parent: 

 

2) Specify the following code in this schema: 

 

 define("AccountSearchRowSchema", [], function() {
	return {
		diff: /**SCHEMA_DIFF*/[{
				"operation": "remove",
				"name": "City"
			},
			{
				"operation": "insert",
				"parentName": "DataContainer",
				"propertyName": "items",
				"name": "AlternativeName",
				"values": {
					"layout": {
						"column": 18,
						"row": 1,
						"colSpan": 6
					}
				}
			}
		]/**SCHEMA_DIFF*/
	};
});



and save the schema. 

 

4) Refresh the page and check the result. The "Also known as" column should appear and the "City" column disappear in the Global Search returns when searching an account: 



You can learn about replacing view model schema in this article on the Creatio Academy



Also, maybe this post can be useful for you:

https://community.creatio.com/questions/how-update-global-search-result…

 

Best regards,

Kate

Thank you very much for the detailed explanation. It's working!

Kate Karpik,

 

Thank you for this information. Unfortunately, it is not working for me. I am trying to add the BirthDate field from Contacts.



I created a replacing view model and set 'ContactSearchRowSchema' as the parent object.



 

 

Job is removed, but BirthDate is not displaying. Any ideas why this is not working?



Thank you.

Dear Arie Knoester,

 

It is absolutely expected behavior for the "GlobalSearchResult" page.

By default, ElasticSearch (the Global Search Service integrates ElasticSearch with Creatio) will index only sections regardless of their author, as well as string and lookup columns.

More information here:

https://academy.creatio.com/docs/user/on_site_deployment/containerized_…

The "BirthDate" column is a date type, so you don't see this column on the "GlobalSearchResult" page.

 

Best regards,

Kate

Kate Karpik,

 

Thank you very much for the information! I think we will work around this by using a custom text field for Contact birth dates. 

Show all comments

Hello everyone!

I hope you can help me!

I created a replacement client module of "EmployeeMiniPage". I made some customizations, but I can not find a way to set some fields like "lookups". For example Job is show as a list but I want it to be show as a lookup

I added the following in the attributes section but it does not work:

"Job": {

     "lookupListConfig": {

      "columns": ["Name"]

     }

I hope you can help me!

Regards

Like 2

Like

1 comments

Dear Ezequiel,

The task you are trying to accomplish is rather complex. It's difficult to achieve because one pop-up (minipage) is already opened in the system and it takes the implementation of multiple layers functionality to allow to open another one. The similar functionality is not present anywhere in the system so far and we are not planning to add it in the closest releases.

Lisa

 

Show all comments

Hello everyone!

I hope you can help me!

I have a"CUIL" field in the employee table and I want to apply the mask. Example: Enter 20352741729 and the mask would be 20-35274172-9.

I must validate that the entry/edition of this field is correct. How can i apply the mask to that field?

I aprreciate your help!

Regards.

Like 0

Like

4 comments

Hello Ezequiel!

There is a pretty universal instruction for adding a field mask. It is originally meant to create a mask for a phone number, but you can adjust it as much as required.

First of all there is a control attached, which allows you to enter information using the array of masks.

To use it you need to add this module to the page dependency and to define section and include in page diff that MultiMaskEdit class and its mask have to be used. 

{
                    "operation": "merge",
                    "name": "MobilePhone",
                    "values": {
                                         "controlConfig": {
                                                             className: "Terrasoft.controls.MultiMaskEdit",
                                                             mask: {
                                                                                 formats: ["+7(999)999-99-99", "+380(99)999-99-99"]
                                                             },
                                                             onBeforePasteFormatValue: TSCCommon.getDigitsFromString
                                         }
                    }
}



You include onBeforePasteFormatValue method only if you want to parse input value before pasting it into control. This method is not required - control will insert only allowed values, however if you, for example, need to parse the string and insert only numeric values - for the mask above, the phone number will be inserted completely, regardless which symbols were used additionally.

The default symbols for mask input are:

{
                    //numbers
                    "9": {
                                         re: "[0-9]"
                    },
                    //cyryllic
                    "к": {
                                         re: "[а-яА-ЯёЁ]"
                    },
                    //latin
                    "l": {
                                         re: "[a-zA-Z]"
                    },
                    //any letter
                    "c": {
                                         re: "[а-яА-ЯёЁa-zA-Z]"
                    },
                    //any letter or number
                    "#": {
                                         re: "[а-яА-ЯёЁA-Za-z0-9]"
                    }
}



You can choose your own symbol for mask template using maskConfig. You indicate the regular expression in re:. Also you need to indicate the symbol, that substitutes the empty values in placeHolderChar. For example you can create a mask that will allow you to enter ISBN codes where 978 are numbers and "0" is a substitute symbol.

{
                    className: 'Terrasoft.controls.MultiMaskEdit',
                    value: {
                                         bindTo: 'ISBN'
                    },
                    mask: {
                                         formats: ["978-0-000-00000-0"]
                    },
                    maskConfig: {
                                         definitions: {
                                                             //numbers
                                                             "0": {
                                                                                 re: "[0-9]"
                                                             },
                                                             placeHolderChar: "_"
                                         }
                    }
}



There is an issue, though, control validation is not passed to the card model, it means that even though the control shows that the value is invalid the card will be saved.

Hope it helps!

Hello Matt!

Thanks you for the response.

Can you said me how import the attached file in the system?. In the "Configuration" section, under "Actions" options, I do click in "Import from file", I select the file MultiMaskEdit.js and I get a error when want load the file. I appreciated your help!

King Regards,

Ezequiel Gómez

 

Hello Matt! How are you? I hope you are well. Any idea? Thank you! Regards!

Matt Watts,

Hello Matt. You know if there is a way to do this but dinamic. For example depends of the country change the format of the mask?

Thanks, 

 

Show all comments

Hi guys,

I would like to remind you main field types used in bpm'online. The following is a list of the field types used in the system:

  • String
  • Integer
  • Decimal
  • Date
  • Lookup
  • Boolean

String - a text field. The system allows multiple types of text fields of different lengths: 50, 250, 500 characters or text field of unlimited length.

Integer - a number field that contains numeric data with no decimals.

Decimal - it is possible to establish the accuracy of the fractional number from 1 to 4 decimal places.

Date/Time. This type of field can be displayed in 3 different formats: date only, time only, date and time.

Lookup – value selection from the pre-filled lookups list. The [Lookups] section is designed to manage bpm’online lookups. For example, in that section, you can add cities to the list, edit account types, activity categories and other lists that are used in the system. You can also edit the existing lookups and register the new ones in this section.

Boolean - system setting can have one of two values: “On” (checkbox is selected) or “Off” (checkbox is cleared).
 

Like 4

Like

2 comments

I do not get the "String Length" option when I add a string field in the page designer.

Dear Nicholas,

You can see these data types on the object level in the configuration by showing all properties of the column:

Regards,

Lily

Show all comments