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

0 comments
Show all comments

I am developing a custom button with the remote module. I created and deployed the component using the clio tool.
When I click on the button, I want to get the object context where this button is placed. 

For example:
if the button is used in the Contact form page then I want to access contact record details(Ex: email, name, type, record id etc..) in the click handler.

If the button is used in the Account form page then I want to access account record details(Ex: name, owner, primary contact, record id etc..) in the click handler.

Can you help me to achieve that?
I have searched in the academy but didn't find an example. Also, I have not found documentation about the apis in @creatio-devkit/common module.

Like 0

Like

0 comments
Show all comments

Hi,

i have a use case where i have to load thousand of records in a object and process them as fast as possible. I've built a trial app with an object "staging" where i load the records and one process "elaborate_record" triggered by signal "record inserted in staging". This process has a wait so i can keep track of starting time and and ending time. 

What i've noticed is that 10 "elaborate_record" are started concurrently at the same time, when they finish another 10 processes are started and so on. I can then infer that there is a cap of 10 maximum concurrent processes (at least on the trial instance). 

My question is if it is possible to increase this cap. And if so how? I understand that it might be closely related to the sizing of the environment but i wasn't able to find any documentation about this aspect. I'm working on creatio cloud, not on premise.

Thank you!

Like 0

Like

0 comments
Show all comments

Hi Community,

We’re encountering an issue reported by our customer where the application takes an unusually long time to load when login, and sometimes gets stuck on the loading screen.

After investigation, here are some of our findings:

  • Infrastructure doesn't seem to be the issue—server resources are normal, and the application is deployed on-site based on the Creatio deployment calculator.
  • It's not related to internet connectivity—once the login is successful, all subsequent loading behaves normally and runs smoothly.
  • We noticed an interesting behavior:
    When the user opens the login page again in a new tab (without a return URL) or in an incognito window and logs in, the login is successful and the home page loads instantly.
    However, if the user tries to access a full URL such as [Base URL]/0/shell/... or the login page with a return URL in a new tab, the application remains stuck on the loading screen.

While opening a new tab or incognito as a temporary workaround, it's not a viable solution for business users.

Has anyone experienced a similar issue or found a reliable fix for this behavior? Any suggestions or insights would be appreciated.

Best regards,
Khaerul Anwar

Like 0

Like

1 comments

Greetings,

We have not encountered this specific issue before. It is possible that what you described is related to browser caching, although we cannot confirm this with certainty.

For a thorough investigation, we will need the site logs and the exact time the issue occurred so we can analyze the problem in detail.

Please create a support request by emailing us at support@creatio.com.

Regards, 
Orkhan

Show all comments

first of all, my requirement is to make 3 pages of the record, the first one is the list page, the second one is the form page, and the third is the view page, the form page is shown when i click the add new button in list page, and the view page is shown when i click the record, and i have an issue on one of the following page.


i have written code page using a feature preview from add on plugins in my form page and this is my code, 
success code

but when i try to make the same code on my view page, the preview button didnt work, this is my code

Like 1

Like

0 comments
Show all comments

Hello community

on the release notes for 8.2.2 version is described the new feature

Save data without closing the page. You can now let users stay on the page after they save a new record. The functionality is available for full-sized form pages.

I can't find it, could you direct me?

Like 0

Like

2 comments
Best reply

That is a property that shows for the save data button

Ryan

That is a property that shows for the save data button

Ryan

thanks!

Show all comments

I need to set a business process parameter C (integer) as the ceiling of A/B (both integer parameters).

I tried using the following formula:

RoundUp([#A#]/[#B#]) 

but when trying to save I receive this error:

Formula value error: No applicable method 'Ceiling' exists in type 'Math' (at index 5).

Is there anything I need to include in my business process to be able to use the RoundUp function? I already tried RoundOff and it returns the same error.

Like 0

Like

0 comments
Show all comments

 

Hi,

 

One of our objets has started as a lookup, but over time it evolved and we now want it to behave as a regular entity. For example, a page was created to display and manage the contents and we want the business to be able to edit its contents.

Saving changes is now blocked by the business people not having the "CanManageLookup" permission. We don't want to grant that permission to the users, but rather remove the limitation from the object.

How can we achieve this?

Kind regards,

Koen Bonnet

Like 0

Like

1 comments

You'd basically change the Parent of the object from BaseLookup to BaseEntity. However, doing that will have the following impact: BaseLookup gives the object Name and Description, BaseEntity does not have those. This could break a lot of things with the page and also with data in records already saved.

I've not tested making this change, so definitely try this out in a test or dev system before attempting any of this in prod. What I would probably do, before you make the change from BaseLookup to BaseEntity, first create new custom Name and Description columns, for example UsrName, etc (assuming these are being used). Then migrate all data from the lookup columns Name & Description to the new custom UsrName & UsrDescription. Then change the page to map to these new custom fields. Then, change the parent of the object to BaseEntity.

Maybe there is some way to override the check for CanManageLookups for your one object as an exception, but I've never looked into that. I assume you'd need to go the route outlined above.

Ryan

Show all comments

Hi Community,

I’m running multiple processes using subprocesses. In the business process, there’s an element where I can retrieve the values for the total processes, completed processes, and terminated processes. However, these values are always showing as 0, even though there are completed processes.

Is there something wrong with my configuration below?

 

element parameter


 

subprocessnotificationprocess logpush notif

Like 0

Like

1 comments

That works for me, but it does require not running the subprocesses in the background (which I can see from your screenshot that you're not)

Show all comments

Hi Community,

I am reading a file using Process file system action. I have to send the base64 format of the file to an external api. How can I do that conversion using the script task?

Any code/resource would be really helpful. TIA

Like 0

Like

1 comments

Hello, 

To convert a file read via the "Process file" system action into a Base64 string within a business process, you will use a Script Task. This allows you to perform the conversion using C# and then pass the resulting string to an external API.

var files = context.Process.FindFlowElementByName("ObjectFileProcessingUserTask1")  
  .GetPropertyValue("ObjectFiles") as ICompositeObjectList<ICompositeObject>;

if (files != null)   
{  
  foreach(var file in files)   
  {  
      if(file.TryGetValue<EntityFileLocator>("File", out EntityFileLocator fileLocator))   
      {  
          IFile fileItem = UserConnection.GetFile(fileLocator); // This now works due to the 'using' directives [11]  
          using (System.IO.Stream stream = fileItem.Read())   
          {  
              using (var memoryStream = new System.IO.MemoryStream())  
              {  
                  stream.CopyTo(memoryStream);  
                  byte[] content = memoryStream.ToArray();  
                  var encodedContent = Convert.ToBase64String(content);  
                  Set<string>("EncodedFile", encodedContent);  
              }  
          }  
      }  
  }  
}

return true;

In the Methods tab, add the following to the Usings list:

  • Terrasoft.File
  • Terrasoft.File.Abstractions
     

     

Show all comments