In a Business Process, we are calling a Web Service using the Web Service Call element, but sometimes we will get a failure that we need to log to a custom table for action later. We really could do with as much information about the failure as possible, including being able to log out the parameters that the Web Service was passed so the support users can assess what happened without having to have trace logging turned on for the BP and digging into the BP log as well. I can't see any output on the web service call for that, but maybe someone else has found a way to get this info?

Like 2

Like

2 comments

Hi Harvey, we have similar needs, but no result, unfortunately. 

So, we log all parameters manualy before calling web service :(

Hello Harvey,



If you want to see the body of the request generated by the web service and the response that comes from the server - You can try to use Telerik Fiddler tool to capture requests that are being sent from the Creatio instance

 

But this advice is relevant only for local environments.

If the environment is on a local machine, you can connect Fiddler and test it.

 

In general, if you do not want to use data tracing for a process, we believe that this goal can be achieved through development. For example, a web service call will be made using a script task, in which you will process various responses from the server and write the information you need into a table using C# code.



Thank you.

Show all comments

Hello,

In the processing bar it is possible to send e-mails to contacts. But the values appearing in the field "To" is also showing the name of all my opportunities as you can see in the picture below. From each table is Creatio pulling these values? Can it show only the e-mails from the contacts?

Like 0

Like

3 comments

Hi Mariana, this seems very strange. Are you sue you don't have any contacts that are called "Hardware / ...." which may have been created by mistake through another process. 

No, I don't. These are the names of all my opportunities and my contacts 

Hello,

 

The "To" field in this item receives entries from the VwRecepientEmail view, which is generated by a script up to version 8.1.2. This view, in turn, gathers email information from the "ContactCommunication" and "AccountCommunication" tables.

 

The behavior you described is not expected and is not reproducible on the standard Creatio builds.



Please ensure that you do not have custom logic responsible for forming the VwRecepientEmail table or the Contact/Account Communication, which could affect this behavior.

 

If you are unable to resolve the issue, please contact our support team for analysis at support@creatio.com.

 

Thank you!

Show all comments

I have a string field that is being populated in this format, "myfielddata-data". I need to parse the data after the "-" to use in a business process.

Like 0

Like

1 comments

Hello Justin,

 

string myString="myfielddata-data";

int indexRetrieved=myString.LastIndexOf("-");

 

string result= myString.SubString(indexRetrieved);

 

other way:

string myString="myfielddata-data";

string arMyString[] = myString.Split("-");

 

string result = arMyString[1];

 

 

Show all comments

Hi Community,

We have a simple string field in one of our Creatio instances that is not being updated (tested with a Supervisor user).

Field is NOT being updated in the following scenarios

1- Frontend: When we save the record page.

2- Application Layer : The field is not being update from Bussines Processes.

3- OData4 : We tried to update from Postman with OData4 request, without success

 

Is there any lock mechanism that prevents the field from being updated written in CSharp?

 

The field can only be updated when we perform an Update directly in the database layer.

 

Thank you

Sasor

Like 0

Like

1 comments

Hello!

 

This means that there can be logic at the event layer level that changes the value of this field when saving a record. It can be on action: OnUpdating, OnSaving. Details here:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

Or changing a given field leads to another action that changes its value again.

To track exactly where this field changes, you can write additional logging when the record is saving, in various methods, such as OnUpdating and OnSaving, on the EntityEventListener. This logging will help you find exactly where the field value changes.

Show all comments

Is it possible to specify an extra column or 2 to be used for searching against when typing text into a combobox in Freedom UI? The use case is that users can select an Account in the ComboBox lookup, but should be able to search in that dropdown combobox using either the account's Name, or its Account Number.

 

I know it's possible to do this by opening up the modal lookup window when that's configured, but to save some clicks ideally it would be possible to just type/paste into the combobox to achieve this behaviour.

Like 1

Like

1 comments

Hello Harvey,

 

It's not possible for now, but 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

Hi all,



I've added a button to the left container of the orders page labelled 'Update quote costs'. The button is visible on the condition that the boolean 'Recalculation required' (a field on the order) is true. I've added the diff and the method to the section schema and the section page.

(edit - added gif of button)

 

When I open the page from the section for a record where 'Recalculation required' is true, the button does not appear. If I refresh the page, the button then does.

 

I believe this is because the header loads before the data so when it first loads, it can't read the 'Recalculation required' field.



Is there a solution to this? If not, I can move the button to the header container as the conditions do work this way. It just doesn't look as good.



Nb. using Freedom shell on classic pages

Like 0

Like

1 comments

Hello,

The problem is not in the container, when you open a page from a section, the system still thinks that you see a section page. Therefore, the condition for your button isn't applied.

In order to fix it, you need to create your button in a combined mode, for example.

Take a look at the button and its condition is defined in a SectionV2 page as well as PageV2.

Show all comments

Hi All,

 

When I import data, system auto thinks me as the record author. Is there a way to give access right to different organisational/ functional role?

For example, 2 groups of organisational roles: A and B. How can I do the import if part of data set should be seen by A but not B, and vice versa.

 

Really appreciate any advise 

Thanks

Like 0

Like

1 comments

Hello,

 

Currently there is no basic functionality to setup access rights for users dynamically within the import process itself. However, you can use the following alternatives to achieve your business task:

 

Set up record permissions for the needed object based on the record author and then import the records under different users in separate batches based on the role.

For example, import a batch of records that only the role A should get access rights for under user1. Setup the record permissions this way:

If record author is user1, then give access rights to role A.

Then import the next batch of records under user2 and setup the record permissions as:

If record author is user2, then give access rights to role B.

 

Another option is to create a business process that would read data (read a collection of records) and then transfer the data from the records to a subprocess. The subprocesses will then process each record separately (1 subprocess will run for 1 record) and change the access rights (with the help of Access rights element) for these records. However, in such case you need to have a field in this object that would signify what role should get the access rights for which record, based on which the process will determine what rights to give to which record.

Show all comments

Hi Community,

We have activated the 'Enable live data update' for the Contacts and its currently not working.

We have a business process that updates fields of the Contact once finished. Only when we click Refresh the fields are updated.

How can we fix/debug this issue?

Sasor

Like 0

Like

4 comments

I assume you're using a Freedom UI section/page? It doesn't work with classic. Also, make sure the feature "LiveEditingForCurrentUser" is on as well.

Ryan

Ryan,

Thank you for the reply.

 

The page is Contacts in freedom UI.

 

From the Business Process I am trying to update the lookup that is responsible for the stages ( Progress Bar). The progress Bar is only updated after I click the Refresh button. 

Should I do some other modifications as well ?

Sasor

We also have this issue, but then tested in 8.1.2 and not found that



Vladimir

You should check with the support. This feature is causing performance issue in 8.1.1.

I recently had an issue after I imported more than 20k cases in a site and the support deactivated the live update for a little while until I creaed a new case on this subject.

Show all comments

I have a 'Contract' object with a start date field, and I want to display that field (start date) in the associated 'Opportunity.' I used an input to retrieve the field in my opportunity. However, the issue is that the date displayed in the opportunity is in the date/time format, whereas the field in the contract is in the date format. How can I display the date in the opportunity with just the date format?

Like 0

Like

1 comments

Hi!

 

Regrettably, this behavior is currently exclusive to the Input Date/Time field. The field currently presents data exactly as it appears in the database, resulting in users consistently receiving Date/Time format data even if the corresponding page originally only contained Time or Date information in these fields.



We wish to inform you that we have imminent plans to address and rectify this behavior in the near future. Anticipated changes are expected to be incorporated in a subsequent release, likely following version 8.1.3.

 

If you have any further questions, please respond to this email we would be happy to help.

Thank you for choosing Creatio!

Show all comments

I'm looking for the code/process that does the denormalisation of Account Address entity records created against an Account on to that Account, as well as the code/process that normalises data put on the Account record for address details that get made into Account Address records (or update the existing one, if that's what it does). I haven't been able to find it in event listeners or business processes yet, but I presume it must be in one of those. We need to add some additional new fields to follow the same process, and it would seem sensible to use the same code to do so. We're on 8.1.1.

Like 0

Like

4 comments
Best reply

If you're referring to the code that adds the primary address values to the account (or contact) columns, that is in C# BaseAddressSynchronizer. This code is triggered from the specific address objects (such as AccountAddress) subprocess (open AccountAddress object then click "open process").  

FYI in classic pages there was also code on the page that did this via sandbox messages iirc.

Ryan

If you're referring to the code that adds the primary address values to the account (or contact) columns, that is in C# BaseAddressSynchronizer. This code is triggered from the specific address objects (such as AccountAddress) subprocess (open AccountAddress object then click "open process").  

FYI in classic pages there was also code on the page that did this via sandbox messages iirc.

Ryan

Thanks Ryan, any idea what the correct way to add an additional field to the synchronization process would be? I'm expecting that it would require adding a new C# module that inherits from the BaseAddressSynchronizer class (or maybe the AcountAddressSynchronizer for Account Addresses specifically?) and adds columns to the GetSynchronizationColumnMappings method in the following way:

protected override ICollection<SynchronizationColumnMapping> GetSynchronizationColumnMappings() {
	SynchronizationColumnComparator stringEqualComparator = EqualComparatorProvider.GetStringEqualComparator();
	var baseColumnMappings = base.GetSynchronizationColumnMappings();
	baseColumnMappings.Add(new SynchronizationColumnMapping {
		SourceColumnName = "SrcColName",
		DestinationColumnName = "TgtColName",
		Comparator = stringEqualComparator
	});
	return baseColumnMappings;
}

With the Account Address entity's column name as the source column name and the Account entity's column name as the target column name. Does the entity's subprocess also need editing to make this logic work, or does the GetAddressSynchronizer method used in the existing subprocess automatically include the extra column mappings defined in the override? Can't see where that method comes from.

Harvey Adcock,

 

Hi!

Yes, you need to create a new source code schema, add a new class that inherits from the BaseAddressSynchronizer, and override the GetSynchronizationColumnMappings method.

You may use the AccountAddressSynchronizer class as an example.

To apply the changes to the entity, it is necessary to create a replacing object and update its process methods (to call the overridden method instead of the default one).

Natalia Kalynovska,

 

Hi Natalia, does that require recreating the Process that's attached to the OOTB Account Address entities? As the replacing object in our package doesn't have that process by default, so in order to change it, it seems like we would have to recreate the previous Process with those changes? And does a Process in a replacing object "overwrite" the Process in the replaced object, or do they both still operate? I'm not sure if there's much documentation on the Entity Processes.

 

Thanks,

Harvey

Show all comments