Dears

 

Again in Creatio 8.1.4 we found not available the selection of a contact to create a new Creatio User.

 

To enable this you need to enable the SysAdminUnitFeatures.ShowContactInAdminUnit Feature.

 

But when did it, and try to save get an error "Name field must be filled in".

 

Had somebody try this?, is some workorund? or another way to enable select a contact to cerate a New User in STUDIO Creatio instance (JUST Studio)

 

Thanks

 

Julio Falcón

 

 

Like 2

Like

2 comments

Hello,

1) When adding this feature, you should specify "For all employees".
2) Save for current user. 
3) Enable the feature in general.
 
Then the error shouldn't occur.

 

Ivan Savenko,

Thanks Ivan

 

I saw I need to 

1.- Open the Feature page, 

2.- Add the All Employees group, 

3.- Check enable the feature to all Employees,

4.- Click on Status to Enable

5.- Save (Still getting the error, but saves)

6.- Logout & Login and voila, the contact search in System Users is available.

 

Show all comments

Dears

 

Somebody knows how to enable use Ststic Filders in Freedopm UI Sections to new sections?

 

I have enabled the IsAllowUseStaticFolders Feature, also added my object to "Schemas for enable static folder in folder tree"  lookup and still have not enabled in my section to add static folders. What's wrong/missing?

 

Thanks in advance,

 

Best regards

Julio Falcón

Like 2

Like

4 comments

Hello,

 

Here are a few things that might be missing:

 

  • - Don’t forget to add mass actions (“Add records to static folder”/”Remove records from static folder”) to the required grid;
  • - Switch the "Folder storage location" in the designer to FolderTree:
  • folder tree

 

Hanna Skalko,

Thanks Hanna, but in my instance the "Folder Storage Location" is read only, so I can't change it.

 

SO I cannot also add mass action to add/remove from the static Folder

 

Also in the Section the "Add static folder" is not enabled

 

 

 

Hello, some news regarding this?

Hello, somebody there can help with this question?

Show all comments

Hello,

 

For limited internal licenses, the user is only supposed to have access to one section.  How do you set this access up?  

Like 1

Like

4 comments
Best reply

Hello,

You need to create a new user workplace with the type "Limited internal."  

Then, add the desired section to this workplace. 

After that, create a specific role where you will add users with this type of license.

Finally, add this role to the "User groups" detail.


You can get more information by watching this part of the instruction video.

 

Hi,

 

1. Define a new functional role.
  
2. Assign specific users to the functional role (Users tab).
  
3. Users can be assigned to the functional role, replacing existing administrator and employee roles.
  
4. Create one new workplace setup and add the section and user groups  

Hello,

You need to create a new user workplace with the type "Limited internal."  

Then, add the desired section to this workplace. 

After that, create a specific role where you will add users with this type of license.

Finally, add this role to the "User groups" detail.


You can get more information by watching this part of the instruction video.

 

Bala Koteswarareddy,

Thank you!  This worked perfectly.  I made a new Limited Internal workplace and gave access to a new functional role which I'm assigning the Limited internal users to.

Antonii Viazovskyi, Thank you!  This worked perfectly.  I made a new Limited Internal workplace and gave access to a new functional role which I'm assigning the Limited internal users to.

 

Show all comments

Hello!

I'm trying to make an integration with a digital signature call "Firmamex" and I trying to use the code that they provide in their SDK in a business process but i have error messages that dont let me publish the script task. 

This are the errors 

 

And this is the source code of the process. I already try to put a return true; at the end of the script task but stills send me the error. 

 

I hope you can help me.

 

namespace Terrasoft.Core.Process
{
 
    using Newtonsoft.Json;
    using SignmageSDK;
    using SignmageSDKCore;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Drawing;
    using System.Globalization;
    using System.Text;
    using System.Web;
    using Terrasoft.Common;
    using Terrasoft.Configuration;
    using Terrasoft.Core;
    using Terrasoft.Core.Configuration;
    using Terrasoft.Core.DB;
    using Terrasoft.Core.Entities;
    using Terrasoft.Core.Process;
    using Terrasoft.Core.Process.Configuration;
 
    #region Class: UsrfirmamexMethodsWrapper
 
    /// <exclude/>
    public class UsrfirmamexMethodsWrapper : ProcessModel
    {
 
        public UsrfirmamexMethodsWrapper(Process process)
            : base(process) {
            AddScriptTaskMethod("ScriptTask1Execute", ScriptTask1Execute);
        }
 
        #region Methods: Private
 
        private bool ScriptTask1Execute(ProcessExecutingContext context) {
            }
            public class Flow
                {
                    SignmageSDK.FirmamexServices signmageServices;
                    String base64;
                    String name;
 
                    public Flow(SignmageSDK.FirmamexServices signmageServices, String base64, String name)
                    {
                        this.signmageServices = signmageServices;
                        this.base64 = base64;
                        this.name = name;
                    }
 
                    public String request()
                    {
                        B64_doc b64_doc = new B64_doc { name = name, data = base64 };
 
                        JObject flujoEjemplo = JObject.FromObject(new
                        {
                            b64_doc = b64_doc,
                            stickers = new object[] {
                                new {
                                    authority = "SAT",
                                    stickerType = "line",
                                    dataType = "rfc",
                                    data = "ARCX9012226P8",
                                    imageType = "hash",
                                    email = "jhon@gmail.com",
                                    page = "0",
                                    rect = new Rect { lx = 226.45f, ly = 355.25f, tx = 397.75f, ty = 413.85f }
                                }
                            },
                            workflow = new object[] {
                                new {
                                    data = "ARCX9012226P8"
                                }
                            },
                            app2 = true
                        });
 
                        String flujoParams = flujoEjemplo.ToString(Formatting.None);
                        return signmageServices.request(flujoParams);
                    }
                }
            };
        }
 
        #endregion
 
    }
 
    #endregion
 
}
Like 0

Like

2 comments

Hello Laura,
Thank you for your question.

I have some updates regarding you issue. 

First of all, indeed the generated code contains errors in lines 88 and 92 due to #endregion directives are being set in the wrong place.
1

Secondly, if you have a script task in your business process you might want to return a bool value inside it because the body of the script task if actually a body of a generated method (in your case ScriptTask1Execute).


Thirdly, it is impossible from my side to verify implementation of third-party code so i am unable to state that the code you provided will work. 

Lastly, if you have multiple versions of your business process that contain compilation errors, it is recommended to either correct them in all versions or delete them in the Configuration section of your application.

Hello Yevhenii Grytsiuk,

 

After the comments you left me, I have made some changes.

I have tried to place a return bool but every time I place it I get another error, so I have omitted it in order to be able to test if the script works. 
However, despite my attempts I still cannot remove this error "Type or namespace definition, or end-of-file expected"
It doesn't allow me to move the #endregion around, and even if I move the brackets it leaves it the same. In fact, that part is placed automatically when publishing the script, so I don't know how to move it so that I can stop having the error. 
If you have any idea on how to move it to remove the error, I would greatly appreciate it if you shared it with me.

Show all comments

Hey, everyone! 

I've got 2 teams working together on the same portal and each of them must see a different page for "Contacts". 
I'm courrently using the Freedom UI to create everything and, on papper, it seems to be working fine, but not on practice..

I've got a "contact" replacing object on another application and that one is done and working. I don't want to create lots and lots of business rules on that page to "work" for everyone, so, to make it work, I've created a new replacing object for contacts on another application and created a new freedomUI section for that (edited the form page and everything). The thing is: Whenever I open my "contact" section from the second application, it opens up the list and form page from my frist replacing object!

 

Anyone has already seen something like this and can help out how to configure propperly?

Already went to "Workplace setup" and checked that I'm using the "New" replacing object that I've created and checked that, on the object manager (EntitySchemaDesigner), the "Default page" has the page I want and on the Workplace Page setup (where I link the sections I want to appear) is propperly configured (when I click on the Contacts that is there and then "List setup" or "Page setup" it directs me to the page I want, not the old one).

 

Thanks for now! 

Like 2

Like

4 comments

We have a similar question, for working on two different case pages and sections based on the same object. Needed some development in Classic UI, unsure how to replicate in Freemdom UI.

Dear Gabriel,


You can add typed pages for roles "All employees" or "External users" and their respective types in the list settings:

Page setup

 

This can also be implemented with code.

 

The following articles might help you with this implementation:
https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/set-up-the-app/customize-portal-freedom-ui

https://academy.creatio.com/docs/8.x/no-code-customization/customization-tools/ui-and-business-logic-customization/set-up-the-app/set-up-typified-pages

 

Have a great day!

Whats about if I want to inherit from a previous Freedom page to get the base page configuration and add the specific to the new one, like in Classic UI?

Julio.Falcon_Nodos,

 

To create a replacing Freedom UI page, you need first to enable feature "AllowCreateAngularSchema". After that, the "Angular replacing view model" item will appear in the Add button in WorkspaceExplorer.

 

Have a great day!

Show all comments

I'm seeing system settings for the new password reset feature but no detailed documentation on setting this up.  Can someone confirm this feature is ready in 8.3 and the step by step for displaying it on the login screen?

Like 0

Like

0 comments
Show all comments

Dears

 

Is it possible to edit the Components? I need to present contact name fields in this order:

  1. First Name
  2. Middle Name
  3. Last Name

 

Actually the order is other

 

Thanks in advance

 

Best regards

Julio

Like 2

Like

3 comments
Best reply

Hello,

Unfortunately, for now, it is not possible to edit and add additional fields in the short contact and account profile using the basic application tools. However, we have registered this idea for the responsible R&D team to consider and implement in future releases of the application. 

Thank you for helping us to improve our product. 

Hello,

Unfortunately, for now, it is not possible to edit and add additional fields in the short contact and account profile using the basic application tools. However, we have registered this idea for the responsible R&D team to consider and implement in future releases of the application. 

Thank you for helping us to improve our product. 

Yes please ! :)

Malika,

Thanks

Show all comments

Hello All, 

 

I have created code to load Custom Page. How i can add the await in Creatio Client Module function to read Object Data

 

Code Sample : 

define("UsrCustomFunction", [], async functio(){
                
       // API call Terrasoft.EntitySchemaQuery, to read the creatio table.
       var getProcessData = function(){

              var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                      rootSchemaName: "UsrGUMUProcessList"
              });

              esq.addColumn("Id");
              esq.addColumn("UsrName");


              return new Promise(function(resolve, reject) {
                     esq.getEntityCollection(function(response) {
                     if (response.success) {
                             resolve(response.collection);
                      } else {
                             reject(new Error("Failed to retrieve data: " + response.errorInfo.message));
                      }
               }, this);
             });

           }

 

             // [ Is it possible to add await or any other solution available for this? ]
             var processData = await getProcessData(); 
            
             //Process and return the Config based on the processData.
             return {
                 viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/
             };

});

 

 

Is this good solution to Create Custom Page in Creatio or any other solutions are available, then please assist me.

 

Regards,

Ajay K

 

Like 1

Like

1 comments

Hello Ajay,

Thank you for your question.

I suggest you to change your approach. You can override a default crt.HandleViewModelInitRequest  handler that is called before a page is fully rendered. There you might want to put your API call and depending on the result open a specific page. 

Here is a code snippet on how this might lookcode
In this case you also need to add @creatio-devkit/common dependency to schema dependenciescode

It is not recommended to dynamically modify entire schema configuration. Thus a better solution in your case could be binding your API call response to page element properties such as "visible" or "enabled".

Some helpful articles on the Academy: 
1. Generic handlers.
2. Open a Freedom UI page from a handler

Hope this helps and let me know if you have any questions left!
 

Show all comments

Hi.

 

I have a business process with a file collection input parameter:

 

 

I am trying to run this process and pass the file collection to it inside a client module of a page, like so:

 

const selectedRowsfirstGrid = request.$context.DataGrid_264vdyg_SelectedRows.__zone_symbol__value;
const selectedRowsSecondGrid = request.$context.DataGrid_c581cyj_SelectedRows.__zone_symbol__value;
 const ids = [...selectedRowsfirstGrid, ...selectedRowsSecondGrid];
 const FilesIdCollection = [];
               
 for(const fileId of ids) {
     FilesIdCollection.push({ FileId: fileId });
 }

 

const handlerChain = sdk.HandlerChainService.instance;
const result = await handlerChain.process({
    type: "crt.RunBusinessProcessRequest",
    processName: "QsProcess_Attach_files_to_the_email",
    processParameters: {
        FilesIdCollection: FilesIdCollection
     },
     $context: request.$context
});

 

I want to mention the fact that the code successfully runs the process if I omit the "processParameters" property, so that's most likely the cause of the error, but I just cannot find what's wrong with it. I looked at the names (code names, not display names), I searched the creatio community a bunch and I just cannot figure it out.

 

Edit: I tried the same code but passed a Guid parameter instead, with a randomly generated Guid and it all works smoothly; the problem seems to be that the collection I am creating is not compatible with the File Collection type from the business process, but how do I make them compatible?

 

Thank you in advance for your help!

Laurentiu

Like 1

Like

2 comments
Best reply

Hello Laurentiu,
Thanks for your question!

As far as i am aware of passing the file from the client side is not supported in Creatio.

However, i tried to implement similar logic to one that you provided. I created a section with attachments and a button which upon clicking executes a business process and passes there a parameter with id's of all selected items in the list page. If the array is empty (i.e no records are selected), the process does not start at all. Then in business process we loop through each account and save the account attachments into an external object (specially created for the process). After the loop, we read all the saved files, attach them to an email, and send the email. Then, i delete the attachments from the special object.

The special object i am referring to is an object that is created in Configurations. I used it as a "buffer" object and it does not contain any useful information.

Here is an example of this implementation: 
list page handler for bp

1

2
 

3

5
611


Hope this helps.
Let me know if you have any question left.

 

Hello Laurentiu,
Thanks for your question!

As far as i am aware of passing the file from the client side is not supported in Creatio.

However, i tried to implement similar logic to one that you provided. I created a section with attachments and a button which upon clicking executes a business process and passes there a parameter with id's of all selected items in the list page. If the array is empty (i.e no records are selected), the process does not start at all. Then in business process we loop through each account and save the account attachments into an external object (specially created for the process). After the loop, we read all the saved files, attach them to an email, and send the email. Then, i delete the attachments from the special object.

The special object i am referring to is an object that is created in Configurations. I used it as a "buffer" object and it does not contain any useful information.

Here is an example of this implementation: 
list page handler for bp

1

2
 

3

5
611


Hope this helps.
Let me know if you have any question left.

 

Hi Yevhenii, thank you so much for your response!

I am currently struggling to understand/replicate how you set up the "Record to store the files in". I created a separate object with an Id and another Guid field. However, when trying to set the value for the field you labeled as "Record to store the files in", I don't see any viable option that resembles your implementation.

 

3

 

Could you please elaborate on the structure of your custom object, and how you came to that value inside the "Record to store the files in" field?

 

Thanks so much again!

Laurentiu

Show all comments

Hello Community,

 

I want to Create the Custom Page as shown in Image where, I can List the Custom UI Card Based on the Table Rows of Creatio. also I want to run the particular Process of the Creatio on click of the Button.

 

Give me any reference for this, if available.

 

Regards,

Ajay K

 

Like 0

Like

1 comments