Question

Hello,

We have a grid that shows virtual objects, which we are getting over api, this detail is placed in a custom page also for a virtual object.

We have to show a list of history for each row in the grid on link click as a popup modal box(also the history detail is virtual).

Like

1 comments

Hello ayman,

General properties and behavior of modal windows are specified in the ModalBox and ModalBoxSchemaModulemodules of the NUI package. 
In your specific case you should take a look on "LookupUtilitiesV2" schema. The modal window for selecting data from lookups is called in this schema.
So to achieve the task you should understand how the "LookupUtilitiesV2" works and create something similar.

Best regards,
Alex

Log in or register to comment
Question

Hello,

Can we apply grouping in a virtual detail based on column value ?  

Like

3 comments

Hello ayman,

Can you describe more precisely what you`re trying to achieve. Screenshots and pictures will be very helpful in that case.

Regards,
Alex

Alex_Tim,

Hi Alex,

We are trying to get a Grid like the attached screenshot.

 

ayman,

Hello,

In that case you should analyze the realisation of project structure detail on project page. http://prntscr.com/mtgbvn 
The code of the detail lies in "ProjectStructureDetailV2" client module. The idea is to find out how it works and create something similar.

Also I have found this application on marketplace, you can try it to understand if it suits for your purposes: 

https://marketplace.bpmonline.com/app/hierarchy-list-view-bpmonline

Best regards,
Alex

Log in or register to comment
Question

We have recently run some stats on our onsite production instance and found the following tables to have collectively occupied around 13 GB of database space and millions of rows in each table. We would like to know if we can remove the old records without any impact on the out of the box functionality. 

The tables in question are SysProcessLog and SysProcessElementLog.

Thank you

Like

1 comments

Dear Hatim,

SysProcessLog and SysProcessElementLog are used to log business process execution (Process log section) and business process elements execution (Process elements detail in process log record) and deletion of records from those tables won't affect general applciation functionality. If you need to delete records from there - you can do it.

Best regards,

Oscar

Log in or register to comment
Question

Hello,

 

How can we commit menus which we create in workplace to SVN and how can column configurations in all sections be transfered to SVN also ?

 

Thanks,

Like

1 comments

Dear Ayman,

Firstly, all personalized settings like column setup in sections and details are stored in the SysProfileData table. The [key] column stores the name of section/detail for grid setup. ContactId cloumn stores the Id of the user, whom settings belong.

The menus for workplaces and workplaces themselves are stored in the SysModuleInWorkplace and SysWorplace tables respectively. 

In order to transfer these settings you need to bind data to the package, which would be committed to SVN. Please see the following article on how to bind data within the system:

https://academy.bpmonline.com/documents/technic-sdk/7-13/binding-data-p…

Regarads,

Anastasia

Log in or register to comment
Question

Sometimes and for no specific reason, i try to save a value for a system settings record but it does not work.

I have created a system settings called X_UserName, i try to save a value or change in its description or even delete it to recreate another one. All of these actions do not work, without any error stated.

I am solving it now by creating a new key with a different name Y_UserName and update the key where i am using it. Any idea what is happening?

Like

3 comments

Dear Mortada,

Please open developer tools in your browser (F12 button) and check for errors in the Console tab. In case you are familiar with debugging client side code, you can proceed with finding the reason for such system behavior. Please see the article on client side debugging:

https://academy.bpmonline.com/documents/technic-sdk/7-13/client-code-de…

Also, in case you have done any customization to the SysSettingPageV2, comment out your code, clear browser cache and try editing setting again.

If none of the above will help, please give our support an email, so we could check your system. Email us at support@bpmonline.com

Regards,

Anastasia

Anastasia Botezat,

dear i have already checked f12 and did not see any errors. however i will check if there are any customizations done on that page. 

Anastasia Botezat,

I have also made sure that there are no changes on SysSettingPageV2. I will contact support for this problem. Thanks for your reply.

Log in or register to comment
Question

Hello,

How can we bind the value of the system setting "HasContactMiniPageAddMode" to SVN?

after changing the value to "false", we add data binding for this "SysSettingsValue" where system setting code equals to HasContactMiniPageAddMode we get a warning:

"The record with Id "a0849de9-b4e5-408d-a75c-4551e3e0b9c0" is already bound in the data "SysSettingsValue_ContactMiniPageForAddMod" of package "UIv2" for schema "System setting value"

Like

1 comments

Hello ayman,

To achieve it you should set instalation type = Update existing and check column [Forced update]

[Update existing] - when updating a package, only those object columns that are marked with [Required for update ([Forced update]) in the [Columns] group will be updated. This type of installation is used, for example, when delivering hotfix updates!

Best regards,
Alex

Log in or register to comment
Question

Hi, 

Based on the previous questions on the same subject in community we have an assumption that calculated fields on Word printables is not supported. 

A workaround would be to have the calculated fields in the entity (Account, Order) itself and compute the values of these calculated fields on certain events with a business process. However, this will result in the business process to be triggered repeatedly just for computation of these calculated fields and may have performance implications.

An alternate would be to compute the values of this printable fields when the user clicks on the Print button, because that is when the computed fields will actually be used. 

Is it possible to override the print button action (in PrintReportUtitlies mixin), and add a custom function call before the printable is processed. If so, can we have details of how to override the "Print" button action?

Regards,

Hatim

Like

2 comments

It is possible to create custom macros in C# and use them in Word printables. This might solve your need to do the calculations this way. 

See https://academy.bpmonline.com/documents/technic-sdk/7-13/how-create-mac…

Ryan

Dear Hatim,

Ryan is absolutely right, you can try using custom macros to perform calculations and set the value directly to the printable in case you don't want to use business process for calculations. Also I can add that we have this problem registered on our side regarding automatic calculations and using of formulas in printables and I will inform our R&D team about this community question so to raise the priority of the problem. You can also create a separate object in the database that will store calculated data there and you can use this object in printable so to get calculated data there. Thank you for helping us to make our application better!

Best regards,

Oscar

Log in or register to comment
Question

I created a module that I used to generate a custom  comboBoxEdit  view  (lookup/dropdown) , then I used that module in another page (load the component)  , and the view created successfully but without data.

To be more clear:

1- Code of my Custom Module 

define("UsrDropDownGenerator", ["ext-base", "terrasoft", "sandbox"], function (Ext, Terrasoft, sandbox) {
    Ext.define("Terrasoft.configuration.UsrDropDownGenerator", {
        alternateClassName: "Terrasoft.UsrDropDownGenerator",
        extend: "Terrasoft.BaseModule",
       
        Ext: null,
        sandbox: null,
        Terrasoft: null,
        viewModel: null,
        
        view: null,
      
        init: function () {
            debugger;
            this.callParent(arguments);
            this.initViewModel();
        },

        initViewModel: function () {
           debugger;
            var self = this;
            
            this.viewModel = Ext.create("Terrasoft.BaseViewModel", {
                values: {
                    
                    booleanValueColumnList: Ext.create("Terrasoft.Collection")
                },
                columns: {
                    
                    booleanValueColumnList: {
                        type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                        name: "booleanValueColumnList",
                        isCollection: true,
                    }
                    
                },
                methods: {

                     getColumnList: function (filters, list) {
                         
                         debugger;
                       if (list === null) {
                            return;
                        }
                        list.clear();
                        var columns = {};
                       for (var x = 0; x < 4; x++) 
                          {
                                            
                                var value1 = {
                                displayValue: "qq",
                                value:"1"
            
                              };
                            columns[x] = value1;
                          } 
            
                            list.loadAll(columns);
                            
                    },
                    
                    simpleFilterColumnChange  :function(args){
                        debugger;
                    }
                }
            });
            
        },
        
        render: function (renderTo) {
                 

 // This is executed on the module initialization, right after the init method.

            
              this.view = this.Ext.create("Terrasoft.Container", {
            
                items: [
                    Ext.create("Terrasoft.Container", {
                        renderTo: renderTo,
                    
                        items: [
                            {
                                width: "300px",
                                markerValue: "testMarker",
                                rightIconClasses: ["combobox-edit-right-icon"],
                                className: "Terrasoft.ComboBoxEdit",
                                list: {
                                    bindTo: "booleanValueColumnList"
                                },
                                prepareList: {
                                    bindTo: "getColumnList"
                                },
                                change: {
                                    bindTo: "simpleFilterColumnChange"
                                }
                                
                            }
                            
                        ]
                    })
                ]
            });
            
            
          
            this.view.bind(this.viewModel);
            
            
            return this.view;
        },

       
        destroy: function () {
            
            this.view.destroy();
           
            this.viewModel.destroy();
        }
    });
    debugger;
    
    return Terrasoft.UsrDropDownGenerator;
});
 

2- Code of my page  

......

        methods: {
                             
            onEntityInitialized:function(){
                
                this.callParent(arguments);
                
                var configObj = {
                       data : [{label : "Name" , description:"hh"},{label:"Age" , description : "10"},{label:"Job" , description : "bb"}]
                };
                                      
                this.sandbox.loadModule("UsrDropDownGenerator", {
                        renderTo: "centerPanel", //name of the container where visual module view will be displayed
                        keepAlive: true
                });
                
            },
        
            
        },

 

The dropdown was created successfully and appeared in the page  , but it does not contains any data.

When I click the dropdown ,  the getColumnList() function executed and the data are saved in the list , but no data appear in UI .

Why the data are not filled in the dropdown  , where is the problem in my code?

 

Like

1 comments

Hello,

Unfortunately, it`s hard to tell why exactly this code is not applying.

I can recommend you another, easier way to achieve it . If I understood you right, the task is to create dropdown with some values. 
To achieve it you can simply create new object that will store all the data, and add the new lookup field to the page via section wizard.

Also, you can create some custom styles for this field, more about styles can be found here: https://community.bpmonline.com/questions/how-add-custom-style-control-… and here https://community.bpmonline.com/articles/how-add-or-edit-css-style

Best regards,
Alex
 

Log in or register to comment
Question

I need to edit organizational roles and show some additional fields in its page. can we do this by replacing object ? or what is the best approach and how can we do it?

Like

1 comments

Dear Ayman,

Unfortunately as for now there is no possibility to change the org.role page with the help of out-of-the-box tools of the application and we do have a correspondent problem registered on our side.

As for now theoretically the only one way to change them is with the help of the replacing object, but we should warn you that it is risky to do, because roles like "All employees" and "System administrators" are used almost everywhere in the application and making some changes to them can lead to some new errors. Actually we don't recommend performing changes to this object, but if you want to try - please use dev-instance or local instance.

Best regards,

Oscar

Log in or register to comment
Question

I am using the Update Query to save an object programmatically. I also created a business process that is triggered when this object is updated.

After updating the object programmatically using Update Query, the process is not triggered.

Is there any methods on the business layer that i can use for this purpose?

Like

2 comments

Hello.

The business process cannot be triggered after the direct update in the database. That is done on purpose. You can create another process that would do the update for you, the updates made by the business process trigger other business processes. However, we do not recommend you to do this for large batches of records.

Best regards,

Matt

We used Entity.Save() method and it worked. https://academy.bpmonline.com/api/SDKNETAPI/7.7.0/Terrasoft.Core~Terras… 

 

Log in or register to comment