Время создания
Filters

Hi Creatio Community,

I’m working on a Freedom UI page in Creatio (v8.2.x) and trying to implement the following scenario:

  • I have a detail (DataGrid) with a list of certificates on the Activity page.
  • I’ve also added a custom button to the page.
  • When the user selects several records from the detail and clicks the button, I want to:
    • Get the selected records (certificate IDs),
    • Get the ID of the current activity (parent page),
    • Pass both as input parameters to a business process (to link the selected certificates to the activity).

Using no-code tools alone, I was only able to pass either the collection or the current page ID, but not both at the same time.

Has anyone implemented a similar case?
Would appreciate any working example or best practices for this scenario.

Thanks in advance!

Like 0

Like

4 comments
Best reply

Віталій Поліщук,

I see. I would assume it's possible to do via code, but I've not looked at how to pass a collection. I'd start with seeing what the request looks like for adding multiple rows to the process from the page designer, then see if you can duplicate that via code, getting the selected rows using: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;

(Change "DataTable" to your list name)

If you pass the collection from the list, you have the parent ID already since it would have to exist in the list data. You should be able to get the parent ID by just reading the child data. 
Ryan 

Ryan Farley,

Hi Ryan, thank you for your reply!

You're right that if the certificates already had a reference to the activity, I could extract the parent ID from the collection itself.

However, in my case, the selected certificates do not yet have any relationship with the activity. The grid simply displays certificates (filtered by Account), but there’s no link between each certificate and the current activity record.

What I’m trying to do is:

  • Let the user select multiple certificates from this grid,
  • Then click a button to run a business process that will create the relationship between these certificates and the current activity,
  • Which means I need to pass both:
    1. The selected certificate IDs,
    2. And the ID of the current activity page (which isn’t available in the certificate records).

So unfortunately, I can’t infer the parent ID from the child records — I need to explicitly pass both.

If you've come across a similar case in Freedom UI (v8.2+) and have any suggestions on how to pass both parameters to the process, I’d really appreciate it!

Thanks again

Віталій Поліщук,

I see. I would assume it's possible to do via code, but I've not looked at how to pass a collection. I'd start with seeing what the request looks like for adding multiple rows to the process from the page designer, then see if you can duplicate that via code, getting the selected rows using: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;

(Change "DataTable" to your list name)

Ryan Farley writes:

Віталій Поліщук,

I see. I would assume it's possible to do via code, but I've not looked at how to pass a collection. I'd start with seeing what the request looks like for adding multiple rows to the process from the page designer, then see if you can duplicate that via code, getting the selected rows using: 

const selectedIds = (await request.$context.DataTable_SelectionState).selected;

(Change "DataTable" to your list name)

Hi Ryan,
Thank you so much for your suggestion - that actually helped me better understand how the parent ID can be retrieved from the detail's data context. I'll explore this direction further and adjust my process accordingly. Really appreciate you taking the time to respond!

Show all comments

Hello,

With 8.2.3, the Landing Page Designer allows me to create a Landing Page with a form, export in HTML, publish it on my domain name.

The page and forms works well and a NEW submitted form record & contact are created in the CRM.

After submitting the form, the message displayed on the screen is as followed:
 

 

Where and How can we customize the message  OR  redirect to a Thank YOU page ?

 

PS : the version field when creating this POST has only 8.0 as an option.

Like 0

Like

4 comments

For now that is hardcoded in the javascript that Creatio includes with the form from https://webtracking-v01.creatio.com/JS/crt-landing-page.js

If you're self-hosting the form, you could save that script as your own copy and change the script tag in the form to use yours instead of the Creatio one, then modify it there. 

Ryan

Ryan Farley,

Outch….I’ve been doing Landing Pages for over 20 years with various softwares. Hard to believe that we can’t control the On Submit button  other than hardcoded JavaScript.

Can I suggest that you add the feature of redirecting to another page (Thank You or any url) within the coming release?

It’s a pretty basic Landing Page feature.

Francois Breault,

I agree, seems a bit short-sided. Hopefully they add that, I assume they will at some point (I don't work for Creatio, but I'm sure they'll see your suggestion to add that as a feature in your comment here). 

Hello,

Thank you for your question.

Currently, it is not possible to change the text that appears after a form submission in the Landing Pages module on a per-page basis. This text is fixed in the system and cannot be customized individually for each landing page.

However, we have registered this idea in our R&D team backlog for consideration and potential implementation in future releases of the application. We appreciate your feedback and your help in improving our product.

If you have any other questions or need further assistance, please feel free to reach out.

Show all comments

Hello,

I am creating an AI Skill which will deal with the attachments of a record. I want to send the attachments content of a record(Ex: Account) to the skill. Is there support for this natively or I need to do it manually - like reading all the attachments of the record, extracting the content of each file using a third party library like iTextSharp, PdfSharp? 

there is a pre-configured skill available to work with documents - General document handling but its not able to identify the attachments in an account record.

Like 0

Like

0 comments
Show all comments

Hi all,

I have a process where a user selects a contact folder from a list on a preconfigured page. A sub process then needs to run for each contact in the selected folder.

I've read the article for Programmatically Using Section Folder Filters in Processes or Server-Side Code in Creatio | Customer FX and I have borrowed a script task for creating the list of contacts.

var sectionName = "Contact";
var folderId = "2d3c0306-1e43-4ba7-943b-a3d261b66897"; //I will pass this in from the preconfigured page
 
// get folder SearchData
var folderSchema = UserConnection.EntitySchemaManager.GetInstanceByName(sectionName + "Folder");
var esq = new EntitySchemaQuery(folderSchema);
var dataCol = esq.AddColumn("SearchData").Name;
var folderData = esq.GetEntity(UserConnection, folderId).GetBytesValue(dataCol);
 
// convert filter data to esq filters
var serializedFilters = System.Text.Encoding.UTF8.GetString(folderData, 0, folderData.Length);
var dataSourceFilters = Terrasoft.Common.Json.Json.Deserialize<Terrasoft.Nui.ServiceModel.DataContract.Filters>(serializedFilters);
 
// MUST INCLUDE using Terrasoft.Nui.ServiceModel.Extensions;
var folderFilters = dataSourceFilters.BuildEsqFilter(UserConnection.EntitySchemaManager.GetInstanceByName(sectionName).UId, UserConnection);
 
// now can include folderFilters as filters in new esq
var contactEsq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Contact");
contactEsq.AddColumn("Id");
contactEsq.Filters.Add(folderFilters); // using the filters from the folder
var contacts = contactEsq.GetEntityCollection(UserConnection);

I would like to either pass the results into a collection or run a sub process for each contact directly from the script task.

Any help would be much appreciated,

Like 0

Like

2 comments

An easy way to accomplish what you're after is to: 

  1. Create a collection parameter in the process
  2. Populate the contacts from the ESQ into the collection parameter (see link below)
  3. Then use normal subprocess for each contact in the collection

See here for how to add the results of the ESQ from the folder to a collection param: https://customerfx.com/article/working-with-collection-parameters-in-a-process-in-creatio/

Ryan

Ryan Farley,

Thanks Ryan. I'll give this a go now.

Show all comments

Hello community,

I have a question if any conditions are applied to visibility of Publish button in the Landing form of Landing page section? I've created a test LP, but can't see this button. 

Like 0

Like

2 comments

The ability to publish is only enabled by turning on a feature. Go to:

[creatiourl]/0/flags

Then locate the feature (or add it if it is missing) "LandingPagePublishingEnabled" and check the box to enable. Then click the "clear cache" button. This will turn that on.

Ryan

Ryan, thanks a lot!

Show all comments