In our project we need to produce with Creatio application some .pdf documents. In order to do this we found a Creatio Application (Aspose.PDF connector). This application is not free of charge.
We were wondering if exists an OOTB (free of charge) functionality to produce .pdf documents. We are asking since on our view 'production of .pdf document' must be an OOTB functionality. Moreover it's very hard to convince a customer that this functionality it not free of charge.
So for test purposes, you can use the free 150 conversions provided in the app.
We have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority.
I have integrated SOAP service in trial version of Sales Creatio. The test request was successful and returns the response parameters correctly, but when I'm trying to call the webservice in business process and bind the response parameter to auto-generated page, it shown only "Response body" in Process Elements parameter.
My guess is that it is because the web service is returning an array of records and the MemberNumber is from an element in the array/collection. If the web service is really just returning one record, but wrapping it in an array, you could map the field in the web services setup in Creatio as something like (you might need to modify this to match the structure of the json returned from the API):
$.[0].MemberNumber
To specifically get the value from the record at index 0 of the array.
Unfortunately, this widget is not currently available in Freedom UI.
However, we are pleased to inform you that our development team is already aware of this need and is actively considering adding this functionality in future versions of Creatio. Your feedback is valuable and helps us improve our product.
Hello, I would like to get assistance on how to implement the "Account Addresses" detail within contacts section, inside activities for the mobile app. When you view a contact in the mobile app and see their addresses in the "Account addresses" detail you can click the address and it will open the native maps app on your phone so you can get directions.
How do I set this up within the activities section of the mobile app so that if I put in a location, it can be a clickable field similar to Contacts section?
Also, is there a way to pull in the contact's address to the activity that can be clicked to open the maps app?
Yes, it is possible. For the example, in Configuration menu i added an object (UsrActivityAddress) with a parent object - BaseAddress and a column UsrActivity with data source - Activity, which links UsrActivityAddress with Activity.
Then go to Mobile application wizard. Here i created a custom workplace and added Activity section to the workplace. In page setup:
Save and go to Configuration. There search you need to search for the name of the detail that mobile wizard provides for the detail on the page you just added. For this search for MobileActivityRecordPageSettings[plus the name of workplace you are adding activity with address to]. In my case it was UsrMobileActivityRecordPageSettingsUsrTestMobile. After that scroll down and find items which represent fields that you added to mobile section page wizard. The name of the detail looks might look like this "UsrSchema302ae53eDetailEmbeddedDetail". Copy the value and go to the top of file.
Then you need to add viewConfigDiff: Here you delete those details fields from you mobile page layout and you merge AddressPreview component. If the column name was Address in viewConfigDiff it becomes [name of your detail in mobile wizard]_ItemLayout_[column name].
Also note, that this component is not described on the Academy and designed for internal usage thus in not recommended for public usage in current version.
I'm currently using the trial version of Sales Creatio in Chrome and would like to integrate Gmail for better email management. Could someone guide me through the steps or provide tips on how to successfully integrate Gmail with Creatio? Any insights on best practices or potential pitfalls to watch out for would be greatly appreciated!
In order to add a gmail account you need to create an app specific password (which means you'll also need 2 factor authentication enabled in gmail also). Then, when adding the gmail account in Creatio you'll provide the app specific password instead of your real one. See https://support.google.com/mail/answer/185833?hl=en
Despite already using an app-specific password, I'm still encountering errors when trying to integrate Gmail with Creatio. What steps should I take to resolve this issue?
I often use backend validation in Creatio - I prevent saving a record and throw an exception from an event listener. It works like a charm, but as a result, the end user sees only a toast message, which is small and disappears after a moment, so it's easy to overlook. Is it possible to intercept such an error and display a normal confirmation popup, instead of thisone?
It would be great if there is a generic solution, which doesn't require me to change all of my validations.
As an alternative you can use websockets to implement your logic.
Here i created a custom section and a clientMessageBridge as described in this article. In this section i created a Test Field. To subscribe to message broadcasting in the HandleViewModelInitRequest handler i used schema attribute to store a function that will be called whenever a message is published. Also note, that you should unsubscribe from websocket connection when your view is destroyed. To do this please don't forget to implement such logic in HandleViewModelDestroyRequest handler.
On the form page when user clicks Save button a custom MyCustomRequest handler is called. In this handler i realized the following logic: call a business process (where i pass Test Field value as well as expected business process parameter value) -> if there is no validation error that is passed back from business process (hasValidationErrors property) i call SaveRecordRequest request -> if there is an error - the SaveRecordRequest is not performed.
Also the function that is triggered when a websocket message is broadcasted does open a pop-up which displays error message.
Here is an example:
And the outcome:
Hope this helps and let me know if you have any question left.
Hello, Please specify where exactly you need a drop-down menu; Please provide us with the screenshots of the Classic UI functionality that you want in Freedom UI.
I believe Stefano is referring to a lookup displayed as a drop down. I would love to know if those can be sorted as well. They're typically sorted in alphabetical order, any of my attempts to change the order in the load request don't work.
I have decided to take a quick look at this and managed to get it working.
For example, adding this handler on the Accounts_FormPage should filter the "Type" by "Id" descending.
(In the code block change the ">" to ">", can't seem to fix this in the reply editor)
{
request:"crt.HandleViewModelInitRequest",
handler: async (request, next)=>{
let sortingConfigList = await request.$context.Type_List_Sorting;
let firstSortingConfig = sortingConfigList[0];
firstSortingConfig.columnName="Id";
firstSortingConfig.direction="desc";//desc or ascreturn next?.handle(request);}}
So the page context attribute we need to change is attributecode_List_Sorting. This is a list of "order configurations" (so you can order by multiple columns for example) So we just need to get the first item in this list and change the columnName from Name to whatever other field we need to order on And we can optionally change the direction property to "desc" to order descending (it is "asc" by default).
{
request:"crt.HandleViewModelInitRequest",
handler: async (request, next)=>{// 1.- Typo Empresa
let sortingConfigListType = await request.$context.Type_List_Sorting;
let firstSortingConfigType = sortingConfigListType[0];
firstSortingConfigType.columnName="NdosOrdenarPor";// Campo nuevo creado en AccountType
firstSortingConfigType.direction="asc";//desc or asc// 2.- Nro de Empleados
let sortingConfigListEmployeesNumber = await request.$context.EmployeesNumber_List_Sorting;
let firstSortingConfigEmployeesNumber = sortingConfigListEmployeesNumber[0];
firstSortingConfigEmployeesNumber.columnName="Position";
firstSortingConfigEmployeesNumber.direction="asc";//desc or asc// 3.- Annual revenue/Facturacion anual
let sortingConfigListAnnualRevenue = await request.$context.AnnualRevenue_List_Sorting;
let firstSortingConfigAnnualRevenue = sortingConfigListAnnualRevenue[0];
firstSortingConfigAnnualRevenue.columnName="FromBaseCurrency";
firstSortingConfigAnnualRevenue.direction="asc";//desc or ascreturn next?.handle(request);},
}