Hello,

 

In the development version (on-site deployment), is it possible to configure webhooks to receive information from Microsoft Power Automate?

Like 3

Like

1 comments

Hello,

 

There are several limitations in working with webhooks: 

  • Only POST request method is supported.
  • Only JSON and FormData request header types are supported.
  • Any webhook sending frequency is supported.

 

As long as Microsoft Power Automate can fit into these limitations, it is possible to configure webhooks to receive information from it.

 

Here is the article that might be useful for you: https://academy.creatio.com/docs/8.x/no-code-customization/base-integra…

Show all comments

Hi community,

Calling a Business process is quite easy in FreedomUI, by adding a button and choosing

Action: Run process.

The problem with this approach is that once the button is clicked, there is no validation happening in the page.

Is there any code snippet or workaround that when clicking a button that runs a business process, prior to the calling of the process a validation(practically a Save) happens?

Sasori

Like 1

Like

6 comments

The only option currently is to wire up code for the button. It would first save the page, then if the save was successful you would execute the process. 

See how to save the page and detect if it was successful here: https://customerfx.com/article/saving-a-page-before-some-action-on-a-creatio-freedom-ui-page/

See how to start the process via code here: https://customerfx.com/article/starting-a-process-from-client-side-code-on-a-creatio-freedom-ui-page/

Ryan

Ryan Farley,

Thanks for the response Ryan. Do you actually have an example on how to integrate within the 'CustomMethod' both crt.SaveRecordRequest and crt.RunBusinessProcessRequest ?

Ryan Farley,

Ryan if im not mistaken, with the suggested approach , every time the user will click the SAVE button, the overriden crt.SaveRecordRequest will be called?

In the first linked example, you would only be running that `usr.CustomCodeRequest` handler when you click your custom button. If you put the code inside the crt.SaveRecordRequest handler, then it would be run every time the user saved the page in some way.

Sasori Oshigaki,

As Harvey mentioned, the code for your button will only execute when the button is clicked, not when the Save is clicked. Your button will also initiate a save and then, if successful and validated (and the save occurred) it will then execute the process. The code from the first article triggers the save to happen and then provides the result. In the article (the first one) the save returns a result, where the code has // save was successful, continue with something else here you'd replace that with the code to start the process (the second article). If needed, you can see how to wire up custom code to your button in this article: https://customerfx.com/article/adding-a-button-to-execute-custom-code-on-a-creatio-freedom-ui-page/

Ryan

Thank you  both Ryan and Harvey! Was able to achieve what i intended!

     {
    request: "so.SaveAndRunBP",
    handler: async (request, next) => {
            const saveRecordRequest = {
            type: "crt.SaveRecordRequest",
            preventCardClose: true,
            $context: request.$context
        };
        if ((await request.$context.executeRequest(saveRecordRequest)))
        {
          const handlerChain = sdk.HandlerChainService.instance;
          const result = await handlerChain.process({
              type: "crt.RunBusinessProcessRequest",
              processName: "SoGenerateContact",
              processParameters: {
                  ContactId: await request.$context.Id,
              },
              $context: request.$context
          });
        }
        return next?.handle(request);
    }
}
Show all comments

I have a detail "OrderProductDetailV2" (editable registry), in which I added my totals to "summaryItemsContainer". When changing a record in the detail, quantity, price, etc., I need to update my signatures, since the standard ones are updated (number of records, total amount). I've read many articles. I've figured out how the standard modules work. Everything is clear. I've tried different options through messages, with "onDataChanged" I get a cycle, in another option my signatures are updated, but the standard ones stop updating. Can anyone help?

Like 0

Like

1 comments

Hello,

The base logic of updating Amount and Total columns is mostly located inside the event logic of objects OrderProduct and Order. You can add your logic of updating fields using the same event logic or business process. There is definitely a risk of ending up in a loop, unfortunately, there are no recommendations to avoid it, you just need to pay attention to your code. But, because the base update is handled in event logic, you can update your values without triggering the event logic, for example with direct DB request or class Update. 

Show all comments

I want to add contact object and the dropdown values should be the contact object column value. suppose I have a column name full name. its value i don't want as my lookup value. i want the full name column as my lookup value. is it possbile automatically?

Like 1

Like

1 comments

Hello,

 

The search field in the lookup column displays the object parameter — displayedColumnValue, which is usually the name column.
You can change this column to any other object field, but it will apply to the entire system — meaning this column will act as a link to the record. It will be used in filters and during selection. I suggest setting up quick filters and adding the contact value link there.

Show all comments

Hi, 

I have some hard times trying to iterate an array of object and insert/display the values one by one on this object detail named Product in Receive

 

and here is a chunk of the code:

var splitResult = decodedText
          .split("*")
          .filter((item) => item.trim() !== "");
        var doNumber = splitResult[0];
        var prodDataObj = [];
        var slocCode = doNumber.split("/")[1];
 
        for (let i = 1; i < splitResult.length; i++) {
          var prodDataSplit = splitResult[i].split("/");
          var productName = "";
          var materialcode = prodDataSplit[1] || "";
 
          if (materialcode) {
            productName = await new Promise((resolve) => {
              Terrasoft.productByMaterialCode(materialcode, (productData) => {
                if (productData && productData.Name) {
                  resolve(productData?.Name || "");
                }
              });
            });
          }
          prodDataObj.push({
            Line: prodDataSplit[0] || 0, //line number
            MaterialCode: prodDataSplit[1] || "", //mat code
            ProductName: productName,
            Quantity: prodDataSplit[2] || 0, //quantity
            UoM: prodDataSplit[3] || "", //uom
          });
        }
prodDataObj.forEach((data) => {
          const newRecord = Ext.create("Terrasoft.BaseModel", {
            modelName: "UsrEntity_93626c0",
          });
 
          newRecord.set("UsrSKUName", data.ProductName, true);
          newRecord.set("UsrQty", data.Quantity, true);
 
          Terrasoft.getUom(data.UoM, (record) => {
            newRecord.set("UsrUoM", record, true);
          });
 
          newRecord.save({
            isCancelable: false, 
            success: function (savedRecord) {
 
              const pageController = Terrasoft.PageNavigator.getLastPageController();
              pageController.refreshDirtyData();
            },
            failure: function (error) {
              console.error("Failed to create record:", error);
            },
          });
        });

i tried to iterate using forEach but when i use newRecord.save, some weird error appears, this is one of them: 

Error in Success callbackId: TSQueryExecutorPlugin1965367711 : TypeError: Cannot read properties of undefined (reading 'rule')

 

I would greatly appreciate any assistance or guidance in resolving this issue.
Thank you.

 

Like 1

Like

1 comments

Hello,
In this situation, only the full debug of the set code can tell what exactly went wrong. Based on the code alone it is impossible to tell where is the issue in it.
The error "TypeError: Cannot read properties of undefined (reading 'rule')" doesn't tell much easier, with it we can only tell that at some point the system didn't receive a correct parameter or didn't receive anything at all, either way, a debug is still needed.

Show all comments

I'm trying to set a text field (to use as a title of sorts) that includes a Date type field.

 

When setting this field, the Date comes through with both the Date and Time.

Is there a no-code way to prevent the Time from also coming through in the text field when it is being set?

 

Thanks!

Like 0

Like

2 comments
Best reply

Are you setting this in a process? If so, you can set it using .ToShortDateString() as follows: 

[#The date col or value here #].ToShortDateString()

Ryan

Are you setting this in a process? If so, you can set it using .ToShortDateString() as follows: 

[#The date col or value here #].ToShortDateString()

Ryan

Hi Ryan

 

This is exactly what I was hoping for.

 

Thanks for the help!

 

Raymond

Show all comments

Hello,

 

how is it possible to get Columns selection page for the object in Freedom UI? We need to get list of selected columns and save it for further usage



 

Kind regards,

Vladimir

Like 2

Like

4 comments

Hello,

 

Could you please describe your request in more detail so we could better understand your business need?

Mira Dmitruk,

We want to make configurable export tool. That's why we want to select columns for export

 

Kind regards,

Vladimir

Hello,
 

Unfortunately, at the moment there is no custom option to call this page in the custom functionality.
 

We have a task in the backlog to implement this feature in future versions of the application. We have raised the priority of the task taking into account your user experience.
 

Thank you for contacting us!

This would be very useful for us too - selecting columns in the UI could be very helpful for creating marketplace tools to be used by others for no code configuration of things like import/export/integration tools.

Show all comments

Hello support,

 

The dashboard on my mobile is showed with classic UI on some 8.2 creatio instance and in other instance is showed with freedom UI

 

Could you help me to understand what is the problem?

 

Freedom mobile UI

Classic mobile UI

Like 2

Like

2 comments

Hello!

Freedom UI dashboards can be enabled with the feature Mobile.UseFreedomUIStylesFor7x

Best regards,
Anton

Anton Starikov,

thank you Starikov, I found it some days ago and I don't have time to update my post on community

Show all comments

Hello Everyone, 

Is there Steps how to Configure emails like xyz@outlook.com. This email is personal email and does not belong to any organization but want to connect it in Creatio. I did revied the guides but there is nothing related this "@outlook.com". 
i have already Create the app pasword but still not Configuring. Please find attach some of the Screenshots.

Like 0

Like

1 comments

Hi,
 

The issue is that Outlook no longer supports Basic authorization.
 

For more details, please refer to:
Deprecation of Basic Authentication in Exchange Online.
 

Therefore, without using the Azure portal, it is not possible to add an Outlook mailbox using a password or app password.
 

It is necessary to register an OAuth 2.0 application as outlined in this article:
Set Up OAuth Authentication for MS Office 365.
 

Thank you for reaching out!
 

Best regards,
Pavlo

Show all comments

Like 0

Like

1 comments

Hello!

The error "Could not establish connection. Receiving end does not exist" in Creatio typically indicates a communication issue between the client application (browser) and the Creatio server or between the different modules in the system. This can happen for several reasons:

1. Browser Extension Conflict, try to open it by another browser in incognito mode.
2. Incorrect Configuration, if this issue occurs after the update please check if your web.config is set correctly. Because during the update it would be overided.

 

If this recommendation would not help please share with us more information through: support@creatio.com

Show all comments