Idea
Discussion

It would be great to have a trash-can-view in which all deleted records are viewed and could be restored.

In my opinion this would be safer than using hard deletes in a production environment. If I would accidentally remove records. I could go to the trash-can and restore the records or rows of a Lookup.

2 comments

Hello Julius,

Yes, unfortunately as for now there is no easy way to restore the record in case it was deleted and currently we restore database backups to restore deleted data. We also have a problem registered to our R&D team and they plan to add this feature of easy records restoration in one of future versions of the application. I will also inform them about your idea and I hope that it will speed up solution.

Thank you for helping us to make our application better!

Best regards,

Oscar

We usually deny the deletion of records in Production. Field "Active" is used by users to deactivate unnecessary records.

Show all comments

I have created a Virtual Object called "Validable lookup" inherited from a "Base lookup" (of Base package), added some columns ("Effective date"/"Expiration date") into that. Then I have created a real Object named "Product" inherited from that Virtual Object. So, the inheritance diagram is like:

(Product - real) -> (Validable lookup with 2 additional columns - virtual) -> (Base lookup - virtual)

Now I'm trying to create a lookup in System Designer -> Lookups section. Unfortunately it sees only 2 additional columns (Effective/Expires) and doesn't see base columns "Name" nor "Description".

Screenshot of Lookup Manager:

Screenshot of a manual columns setup:

Both columns actually persist in DB table "...Product".

I'm using Sales Enterprise 7.15.0.634 on PostgreSQL.

Like 0

Like

4 comments
Best reply

Maybe, first thing you did, inherited from 'base object', but then you thought this was wrong parent, changed it to 'Base lookup'. I had this issue.

I did this: 

Went to configuration, opened my object (in your case it's 'Validable lookup'), removed parent 'Base lookup', clicked anywhere in empty space, then picked 'Base object' as a parent object, removed it as well, clicked, and returned 'Base lookup' as a parent object again)) Saved, published and that worked for me.

Dear Artur,

We tried to reproduce the issue, however we were not able to face it. The system worked properly on our side. All columns were displayed correctly. Please see the screenshots below:

https://prnt.sc/pq0xhr

https://prnt.sc/pq0xpj

https://prnt.sc/pq0y30

Please try to compile the application.

For more detailed assistance, please contact technical support.

Best regards,

Norton

Maybe, first thing you did, inherited from 'base object', but then you thought this was wrong parent, changed it to 'Base lookup'. I had this issue.

I did this: 

Went to configuration, opened my object (in your case it's 'Validable lookup'), removed parent 'Base lookup', clicked anywhere in empty space, then picked 'Base object' as a parent object, removed it as well, clicked, and returned 'Base lookup' as a parent object again)) Saved, published and that worked for me.

Alex Zaslavsky, thank you much! It finally worked =)

Artur Shelekhov-Balchunas,

lol. I'm glad it helped.

Show all comments

Hi , 

How can we integrate whatsapp with bpm'online. Looking for answers. 

Thanks.

shailey

Like 0

Like

1 comments

Hello Shailey,

In the current version of the application there is no out-of-the-box feature that allows WhatsApp integration and our R&D team has a task to add this functionality in one of nearest versions.

Currently you can use this marketplace add that allows to integrate WhatsApp with bpm'online https://marketplace.bpmonline.com/app/beesender-operator-bpmonline.

Best regards,

Oscar

Show all comments

Hi Community,

In chart is is possible to add/remove series dynamically based on section filter 

 

Like 0

Like

1 comments

Hello Fulgen,

As for now there is no possible to achieve this task since if there are no records returned based on filtering conditions - the serie appears on dashboard anyway and returns 0. We do already have the request to modify this logic registered to our R&D team and this problem is in "Accepted" status. I will also inform our R&D team about this question so to raise the priority of the problem.

Thank you for helping us to make our application better!

Best regards,

Oscar

Show all comments

Hi. I have read the articles about Portal Users that are available;
What portal users are. How to create them. How to set up their rights.

But what I want to know is what can't they do? Surely there must be some limits of a Portal User compared to a full licensed user.

Or is this just a result of what I allow my Portal users to do in my environment? Although I agree and understand that it would not be recommendable to let a Portal user do anything.

 

Best regards,

 

Like 0

Like

1 comments

Dear Julius,

The application portal is a part of the platform used by external users and it is limited. There is no way to turn the portal user into the regular system user. The portal users' functionality is limited by the licenses and the objects permissions. Apart from that, there are a lot of back end functionality which is not compatible with the portal users. For example the portal users will not be able to run the database triggers for majority of the default functionality, access the portal through mobile application, run bulk emails, etc. Basically, there is no point to allow external users to use the application through the portal as a regular company employee. For this purpose, it is better to create a regular user for this individual. Theoretically it is possible to allow external users to use the application functionality on the company employee level, however it can only be done with the help of separate development project. 

Best regards,

Dean

Show all comments

Dear mate,

Is there a way to display Opportunities detail content in the section account ?

Thanks,
Nicolas

Like 0

Like

1 comments

Hello Nicolas,

Opportunity detail is already present on account "History" tab. As for displaying its content in section list then unfortunately it is not possible since this detail may contain several records and the application cannot display several rows in one column in section list. We will create a suggestion to our R&D team so to make it possible in one of future versions, but currently it requires complete core logic modification. Thank you for this suggestion and helping us to make our application better!

Best regards,

Oscar

Show all comments

What?

E-mail tab doesn't remember prepared answer when you click on go back in browser or go to another section.

How to fix?
Implementing a script/intelligence that remember your e-mail answer when clicking to a new section like Contacts or Companies.

Why?
To avoid to loose your e-mail (especially e-mails where you typed 10 minutes) and leave frustrations out.

Extra
Example of issue see screenshots

 

Like 0

Like

3 comments

Dear Jonas,

In order to resolve the issue please do the following:
1. Create a replacing client module for the “EmailMessagePublisherPage” schema.
2. Add the following code to the schema:
define("EmailMessagePublisherPage", [], function(){
    return {
        
        entitySchemaName : "Activity",
        
        mixins : {},
        
        attributes : {},
        
        methods : {
            
            setRecipientValue : function(data){
                this.callParent(arguments);
                var bodyOfEmail = sessionStorage.getItem("bodyOfEmail");
                this.set("Body", bodyOfEmail);
            },
            
            isNeedToBePublished : function(){
                sessionStorage.setItem("bodyOfEmail", this.get("Body"));
                return Boolean(this.get("Body"));
            }
                
        },
        
        diff : /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
    }; 
});  
3. Save the changes https://prnt.sc/pp5ejs

Best regards,
Norton
 

Norton Lingard,

Thank you for the feedback.

Norton Lingard,

I have just tried this and it didn't work. I wrote some text in the email body, but the isNeedToBePublished wasn't triggerd by clicking the close button on the Case page. 

 

I instead used an override of destroy

 

destroy: function () {
		sessionStorage.setItem("bodyOfEmail", this.get("Body"));
		this.callParent(arguments);
},

 

Show all comments

Hi all,

On the Opportunity Section, i have a detail which show me the opportunity's concurrents.

How can i display all the opportunities concurrents on the Account page ?

Thanks,
Nicolas

Like 0

Like

1 comments

Dear Nicolas,

You can do that with the help of the business process.

First, you need to add Accounts lookup on the detail page, which will be used in process https://prnt.sc/pr6t0r It is not necessary to fill it when adding the record on the detail. Once the record is added https://prnt.sc/pr6ts7 I go to my associated account https://prnt.sc/pr6ts7 and see the associated opportunity record https://prnt.sc/pr6usc

Here are the business process settigs:

1. Signal https://prnt.sc/pr6uws

2. Read data element for reading the detail object https://prnt.sc/pr6v0b

3. Read data for reading the opportunity https://prnt.sc/pr6v35

4. Read data for reading the account https://prnt.sc/pr6v5z 

5. Modify data which will update the added Account field on the detail page https://prnt.sc/pr6v8v  https://prnt.sc/pr6ve7

Best regards,

Dean

Show all comments

I have the following requirement:

My organisational structure contains the following roles: VP Sales (1), Sales Manager (2), Sales Team Lead (4), Sales Rep (20)

Each of these roles has the number of employees detailed in the bracket behind the role name meaning that due to the size of the sales team the sales reps are working in 4 different equal teams. Each team reports to an individual Team Lead. The 4 Team Leaders report to 2 different Sales Managers who in turn report to one VP of Sales.

Each of these levels needs to be able to see only the organisation reporting to her/him - either direct or indirect. For example the VP can see everybody's tasks and opportunities and Dashboards are showing the data of the whole sales organisation. Each of the two Sales Managers can only see the data for themselves and of their respective organisation. The Team Leaders can only see their own data and of their organisation. 

Since there are several equal employees sharing the same roles (Sales Manager, Sales Team Lead) it is not possible to use the role structure to prevent Manager 2 from having access to the team information of Manager 1.

The only possible way I can see this to be possible would be to create one role per Manager (hence 2 roles with the same security) and one Role per Team Lead (hence 4 roles with the same security). This however is cumbersome and really hard to maintain during restructuring and new team member on-boarding. 

I am wondering if the Manager column in the Employee section can be utilized to define the reporting structure.     

How else can this requirement be achieved?

thanks a lot

O

Like 0

Like

4 comments

I am facing the same challenge :(

What if avoid using the "Managers" role and just create different roles for all groups: sales1, sales2, sales1managers, sales2managers, salesgeneralmanagers and so on? Give different access permissions to each of the groups and they will not see other data.

I had the same idea but this is not sustainable for the customer. All they want to do is to set the Manager of each person and by doing this create sort of a hierarchy. So each Manager can see the info from their own organisation below them without having to duplicate and maintain duplicate security details. 

It's a very hard and very complex structure. Once they create that access rights inheritance they will never figure out what exactly can see a specific group manager. 

In general, there are 2 access right groups: static and dynamic. 

Static: access to sections, operations, objects, columns, etc.

Dynamic: access to records.

You can specify static access rights even personally for each person. It's not hard.

If we're talking about dynamic access rights then you'll need to specify the pairs: created by -> give access to.

Just create a separate group for each manager, and create a separate group for each manager's employees.

Then specify Created by employeesGroup -> visible to managersGroup. 

Created by employeesGroup -> visible to managersGroupLevel2 

and so on for each level of hierarchy minus one. The latest level in hierarchy is "system administrators". They see everything by default. 

Show all comments
Hi.

Our intention is create a console app (C#) using EntitySchemaQuery  that query an entity (like Account or Contact) and gets its rows to populate a local table. 

We are trying to connect our bpmonline using this example:

source: https://www.bpmonline.cz/bpmonlinesdken/UsingEntitySchemaQuery.html

//////////
// Creating a query instance, adding columns and a data source in the query.
Select selectQuery = new Select(UserConnection)
                    .Column("Id")
                    .Column("Name")
                    .From("Contact");
// Executing a database query and getting the resulting dataset.
using (DBExecutor dbExecutor = UserConnection.EnsureDBConnection())
{
    using (IDataReader reader = selectQuery.ExecuteReader(dbExecutor))
    {
        while (reader.Read())
        {
            // Handling the query results.
        }
    }
} 

/////////////

The problem is we do not know how to create the connection string (UserConnection) to our cloud services, https://mycompany.bpmonline.com.

 

How to create this UserConnection? Someone has an example or may guide us?

 

 

Like 0

Like

3 comments

Theoretically, it's possible to use bpm'online local .dll-s and create the connection. However, it's very hard and usually pointless. If you need to get data from bpm'online, please create a web service in bpm'online. The service should get the needed data and give it to the requested.

This is how to create a service. 

https://academy.bpmonline.com/documents/technic-sdk/7-14/creating-configuration-service

This is how to log in and call it

https://academy.bpmonline.com/documents/technic-sdk/7-14/executing-odata-queries-using-fiddler

Eugene Podkovka writes:
However, it's very hard and usually pointless.

I don't think it's useless.

I'm trying to achieve the same goal to increase our developers' productivity.

We usually use task script in the process designer to manipulate data using EntitySchemaQuery.

Each time, we have to update the process, run it and check the log or attach visual studio debugger (which is painful) to verify our code.

Imagine if we are able to get a UserConnection instance directly into a standalone app. we can test our functions faster and increase the overall productivity.

 @Eugene Podkovka: can you please help us!

Thank you

Mohamed

Show all comments