Dear Creatio team,

i'm trying to improve the ML models results for product recommendations.
For now, in many cases the predictions give no results or not so useful ones.

In the Account object, we have a custom field that contains a code to classify the company by business type. This field could be useful for the collaborative filtering.

how to use it in the ML recommendation model ?


Best regards
Patrice

Like 0

Like

0 comments
Show all comments

How to capture client side validation errors on Creatio formpages and move them to a table or if there is an existing table to read. For example, a user forgets to select the 'House type' and an error comes up. We want these errors logged somewhere.

Like 0

Like

0 comments
Show all comments

How I can set new version of DCM for all existing records (Lead) automatically

 

New version is v2

 

We have 13000 records, so changing manually will take time

 

Thanks

Leo

Like 2

Like

1 comments

Hello,

At the moment, there is no option to automatically change the case version for all leads using standard system functionality.

We consulted with the R&D team, and there is currently no ready-made solution for this scenario. However, similar cases have already been registered, and your request has also been added to help raise the priority for implementation in future versions.

You can also try to implement the functionality with a business process. Unfortunately, we do not have examples of such implementation.

Show all comments

Just like the title says is it possible to extract data from xlsx or csv file to Creatio through a service class? I know you can do it through freedom UI, but I am wondering if it's possible to do it through code. Do terrasoft libraries provide that support?

Like 1

Like

1 comments

Hi Michal,

we use NPOI library

Kind regards,
Vladimir

Show all comments

Is there an out of the box web service in Creatio that could be used to find all the roles that a user belongs to? Or to check if the user belongs to a particular role?  Where can I find the documentation on all the inbuilt webservices provided by Creatio?

Like 0

Like

10 comments

Basically, you'll query SysUserInRole where the current user = the SysUser value. The SysRole lookup column will provide you the roles linked to this user. 

See here: https://customerfx.com/article/determining-if-a-user-has-a-specific-role-in-bpmonline/

For a Freedom UI approach, see https://customerfx.com/article/showing-or-hiding-a-field-if-the-current-user-is-a-member-of-a-role-in-a-creatio-freedom-ui-page/

Ryan

Thanks Ryan.  Is there a way to use a webservice for this requirement? Are there any out-of-the-box Webservices that can be called to check if the current user belongs a particular Role using Freedom UI approach ?

If this will be consumed from within Creatio on a Freedom UI page, it's just as easy to do a model query from the Freedom UI page (as shown in the article) as it is to call a web service. Maybe I am missing what you're trying to do? Calling a web service wouldn't really be any different than doing what is suggested in the article using a model query. You could wrap that up as a server-side C# code and expose as a web service, but ultimately, the Freedom UI page is going to request something, whether the web service or the model query, so you could just skip the web service IMO and use the model query.

Thanks Ryan.  Yes I agree. Its just that I wanted to explore using webservices in Creatio and also resuse this webservice across projects and am in the process of creating a C# webservice to achieve this.

Ryan Farley,

On a related note, this approach works fine for hiding or showing the fields based on a condition. But is there a way to make it readonly (disabled) based on a condition?  I noticed that the "visible" property can be set using a boolean variable like $flag, but this doesnt seem to have any effect with the "readonly" properties of the Text box and Combo box.  Is this a known issue and is there a workaround?

Ajay Varghese,

I believe I've been able to bind the readonly property to an attribute and set it programmatically with success (but don't have a system at the moment to verify)

Ajay Varghese,

I'm not sure of an OOTB service for that (roles and user roles). There might be, but it would be a simple service to create. The service would perform the ESQ similar to what is in the articles.

Ajay Varghese,

Additionally, I often wrap that sort of reusable stuff in a client schema class or module so it's easily reusable. Then, whether the class performs a model query or calls a service is irrelevant since it's still abstracted from what is calling it on pages. 

Ryan

Ryan Farley,

Yes, thanks for that direction. I have managed to create the webservices using that approach and it works fine. I am a bit surprised that setting that webservice output flag to the readonly property of a textbox and combobox doesnt have any impact while if I use it on the "visible" property then it works fine.  

Will wait for your response once you get access to your machine.

Just verified, this is working for me. This is a sample for the account page to disable the account Type if it is "Customer". 

Add an attribute to the viewModelConfigDiff:

viewModelConfigDiff: /**SCHEMA_VIEW_MODEL_CONFIG_DIFF*/[
    {
        "operation": "merge",
        "path": [
            "attributes"
        ],
        "values": {
            "IsTypeEnabled": {
            	value: true
            }
        }
    }
]/**SCHEMA_VIEW_MODEL_CONFIG_DIFF*/,

Then, I added a change request handler to listen for values in the Type attribute (which also triggers when the page is initially populated, which is when request.silent==true):

handlers: /**SCHEMA_HANDLERS*/[
	{
		request: "crt.HandleViewModelAttributeChangeRequest",
		handler: async (request, next) => {
 
			if (request.attributeName === "Type") {
				request.$context.IsTypeEnabled = (!request.value || request.value.displayValue !== "Customer");
				if (!request.silent) {
					console.log("Type changed", request.oldValue, request.value);
				}
			}
 
			return next?.handle(request);
		}
	}
]/**SCHEMA_HANDLERS*/,

Now, I wire up my attribute to the Type in the viewConfigDiff: 

{
	"operation": "merge",
	"name": "Type",
	"values": {
		"readonly": "$IsTypeEnabled | crt.InvertBooleanValue"
	}
}

Note, i am using a converter to invert the value since my attribute indicates it's enabled, but the property expects the inverse.

With this in place, if I open an Account with Type=Customer, or change the Type to Customer it is disabled/readonly.

One thing to note, many controls have both a readonly and a disabled property, not sure what the difference is, both seem to work for me, but the readonly seems to be the one that gives the control the visual lock icon. The disabled property also disables the control, but you don't get the lock icon for the control.

Ryan

Show all comments

I'm trying to find the database table where all the column config is stored that you can view through the Object Designer UI (EntitySchemaDesigner), but I don't appear to be able to find it. I have seen some of this data appears to be stored for Lookup columns in the SysEntitySchemaReference table, but for general columns I can't see it.

 

Is this data only stored in the MetaData column of SysSchema? Or am I just missing the table it's stored in column by column?

 

I need this data in order to create a SQL procedure for archiving records, as some columns which have since been removed from the Object still exist on the DB table, so I am trying to exclude such columns from the archiving process. Everything else works about the archiving procedure, the only error is when the source DB table has a column that doesn't exist in the Object's config. Any help appreciated.

Like 0

Like

1 comments

Alternatively, how can I get Creatio to drop columns removed through the EntitySchemaDesigner from the database safely? i.e. a cleanup of the DB tables based on what exists in the actual Creatio config.

Show all comments

Hi everyone,

 

I´m currently working on a project using documents in Freedom UI, and i was wondering if anyone has successfully implemented PDF generation directly from Creatio using a library in source code without relying on paid marketplace add-ons.

I came across this POST wich outlines an approach that seemed this method may no longer be applicable in the most recent versions of Creatio.

Any insights or shared experiences would be appreciated.

 

Regards,

Like 2

Like

6 comments
Best reply

Can't really do it without a 3rd party DLL or service. Some of the newer marketplace addons use the Free Spire.Doc .NET library, which is pretty easy to work with and would be easy to implement. There is a paid version of Spire.Doc, but the free version would likely suffice for most purposes (and can be used for commercial purposes)

Can't really do it without a 3rd party DLL or service. Some of the newer marketplace addons use the Free Spire.Doc .NET library, which is pretty easy to work with and would be easy to implement. There is a paid version of Spire.Doc, but the free version would likely suffice for most purposes (and can be used for commercial purposes)

Ryan Farley,

thank you for your response and for the recommendation,

I actually downloaded the free version of Spire.Doc and started exploring it — it does look quite promising. However, since I’m working entirely within Creatio Cloud, I believe there might be a limitation when it comes to using third-party DLLs directly, though I’m not completely sure.

Do you think it would be viable to integrate Spire.Doc by hosting the functionality externally (for example, as a microservice or an Azure Function) and calling it from Creatio via a REST API? I’d love to hear your thoughts on whether that approach makes sense or if you’ve seen it work in similar cases.

Thanks again for your help and insights.

Paulo Chacoff Leiton,

As Ryan said, we use the paid version of Spire.Doc in our marketplace app: https://marketplace.creatio.com/app/experceo-word-pdf-converter-creatio

It allows you to generate an unlimited number of PDF documents with unlimited pages (the Free version is limited to 3 pages).

Thank you
Mohamed
 

Still amazes me how conversion to pdf is not an Out of the Box feature of Creatio

(actually was and disappeared a couple of years ago)

We have used aspose connector in the past but there are a lot of errors in communication and quality is not acceptable.
we are also considering using the Spire.Doc library for future developments

Ryan Farley,

Do you happen to have a reference of how to invoke functionality from external libraries or assembly reference? i´ve trying to use Spire.doc in a source code file and script task but i always get a "missing assembly reference"

Just to illustrate the attempt, here´s a basic example a tried to convert word document to PDF with source code file:

 

Any guidance on how to properly reference and use third party libraries like this in Creatio would be appreciated.

 

using Spire.Doc;
using Spire.Doc.Documents;
using System.IO;
 
namespace JJ
{
    public class DocService
    {
        public byte[] GenerateDocx() {
            var doc = new Document();
            doc.AddSection().AddParagraph().AppendText("Hola desde Creatio!");
            using (var ms = new MemoryStream()) {
                doc.SaveToStream(ms, FileFormat.Docx);
                return ms.ToArray();
            }
        }
        public byte[] ConvertToPdf(byte[] docxBytes) {
            var document = new Document();
            using (var ms = new MemoryStream(docxBytes)) {
                 document.LoadFromStream(ms, FileFormat.Docx);
            }
            using (var outMs = new MemoryStream()) {
                 document.SaveToStream(outMs, FileFormat.PDF);
                 return outMs.ToArray();
            }
        }
    }
}
Show all comments

Hello,

I am developing a custom UI component using the angular remote module provided by Creatio.

The front-end part will be in the angular project. Now, If I want to call a server action(for ex: from my custom component a button click -> pass the record id to server action -> get the record retrieved and perform more server actions) where should I put that logic and how to call that logic from remote module?

Also, how do I run/debug the remote module during the development?

TIA.

Like 0

Like

5 comments
Best reply

You would implement the C# code and expose as a configuration service, see https://customerfx.com/article/creating-a-web-service-and-consuming-it-from-client-side-javascript-in-bpmonline/

Then to consume the service from the remote module, you'd use the devkit sdk as shown here: https://customerfx.com/article/calling-configuration-web-services-from-client-side-code-in-a-creatio-freedom-ui-page/

Ryan

You would implement the C# code and expose as a configuration service, see https://customerfx.com/article/creating-a-web-service-and-consuming-it-from-client-side-javascript-in-bpmonline/

Then to consume the service from the remote module, you'd use the devkit sdk as shown here: https://customerfx.com/article/calling-configuration-web-services-from-client-side-code-in-a-creatio-freedom-ui-page/

Ryan

Ryan Farley,

Thank you.. If I want to ship this source code along with my package.. I have to put it under Resources as shown in the below image?

Can you also tell me if it is possible to run/debug the remote module during the development?

If I run the remote module using ng serve I am getting below error.
 


core.mjs:6531 ERROR Error: Remote entry with name 'angproject' does not exist
   at AppModule.ngDoBootstrap (app.module.ts:28:23)

bootstrap.ts:7 Error: Remote entry with name 'angproject' does not exist
   at AppModule.ngDoBootstrap (app.module.ts:28:23)

Sagar Rodda writes:

Ryan Farley,

If I want to ship this source code along with my package

You could sync your workspace to Creatio, add it in the package there and then download the workspace back and you'll see it under the Schemas folder. Or you could add it under Files\cs

Got it.. thank you so much.. I'll try it and let you know here how it goes..

Show all comments

Dear,

On Freedom UI, in the list pages, I'd like to display the number of results with a possible filter like we used to with Classic UI with the Summary Sheet.

On Classic UI, you could also display the sum of numeric fields as the amount excluding tax.

Can someone please tell me how to do this ?

Thank you
Nicolas

Like 0

Like

1 comments
ok, I found it's in the summary component of the page
Show all comments

Hi creatio community,

I am developing a custom campaign element (sms element) as described in this link: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/platform-customization/classic-ui/marketing-campaigns-basics/examples/implement-a-campaign-element  

I have implemented it and it works fine. The thing that I'm missing here which is very important in my case, is that I want the "SmsText" parameter to have dynamic values inside it. For example in the "SmsText" message value i want to have "Hi " + Contact.Name. This solution provides only static text which in most scenarios the sms message text should be dynamic. 

Could you give any idea/solution on how i can implement in my case?

Thanks

Like 0

Like

1 comments

Any information about this question?

Show all comments