If I have an object, can I create a section with that object? If so, how?

Because I want to be able to create a sections for "Relationships" object of BPM so I can create filter folders on that section object. I need those folders to be be used another section to query and pull the account-contact relationships. 

Thank you in advance

Like 0

Like

1 comments

Hello, 

If you want to create section for the new object and store Account-Contact relationships in it please follow the steps in the article below: 

https://academy.bpmonline.com/documents/technic-sdk/7-13/creating-new-s…

If by "Relationships object of bpm" you mean ContactCareer object (or other existing object) please see the article below in which you would find an instruction on how to create a section based on the existing object:

https://community.bpmonline.com/node/26247

Best regards, 

Dennis

Show all comments

Hi Community, good morning.

We are looking for a way to save progress when creating a new opportunity without closing the page. I know about the IsSilent flag, but couldn´t figure out a way to implement it by overriding the onSaved method.

Can you guys help me?

Thanks.

Like 0

Like

2 comments

To prevent navigating back after save using the isSilent flag, you can override the save method like this: 

save: function(config) {
	if (!config) config = {};
	config.isSilent = true;
	this.callParent([config]);
}

Ryan

Ryan Farley,

Thanks Ryan. It worked!

Show all comments

Hi

I would like to use telephone shortcuts within BPM to either integrate to our SIP based PBX or to allow the telephone text to use browser link method to integrate to the PC SIP client application.

Is it possible to just integrate BPM to a SIP based PBX, which for us, is the common 3CX platform?

In the user profile, I see configuration fields for SIP, but my testing has so far not been successful.

I am aware of the Webitel extension, but this does not work for us, as when a user is not logged in to BPM all calls to the user telephone extension get automatically routed to voicemail, which is not desired behaviour.

If this is not possible, can BPM be configured to not link to the internal telephony, but instead allow the telephone number fields to hotlink as a protocol shortcut link i.e. tel://0123445678? This therefore would allow me to configure the users browser to open the 3CX PC client application from the tel:// prefix protocol.

I am really desperate to get this working, so any help would be very much appreciated.

thanks

Like 0

Like

2 comments

I have successfully installed the Chrome Extension Click to Call by Thirdlane, which allows all telephone number links to populate the number in my 3CX PC client application.

You can create the functionality only by JS code. In order to do that you need to replace the "CtiPanelCTIBase" module (replacing client module) and override the method "onCallCustomer" in the subscription 

this.sandbox.subscribe("CallCustomer", this.onCallCustomer.bind(this));

Please feel free to put a break point in the "onCallCustomer" method (chrome dev console), click on any "phone" button in the system and debug the functionality. 

 

Show all comments

After I successfully created a class in a custom package, in a custom source code file, how do I declare it in the 'Usings' list under the 'Methods' tab?

 

Like 0

Like

5 comments

Hello Jordan,



Basically, when you create a class in a source code file, the class is inside the namespace. So, in business process you should put the name of namespace in  "usings" list.



Best regards,

Alex

Alex_Tim,

I do that, but I get a compiling error when putting the namespace in the "usings" list:

 

The Type or Namespace "JordansNamespace" could not be found

Jordan Kincer,



The possible issue is that you simply forgotten to publish the source code. Also, please note that source code is written in C# language. 

You can find more info about source code schema here:

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



If you will have any further questions, please send us the source code and screenshot of "Methods" tab in business process.



Best regards,

Alex

Here is the namespace declaration in my source code file. The file's name is 'UsrLifeCompanyProposals' to match the class name. 

I have been publishing the source file without error. Here is its 'Using' in the business process.

Yet when I try to save the business process, I get the following error:

Jordan Kincer,



Unfortunately, it`s not clear from your screenshot with usings if you`re using the alias for the namespace. Try to remove the alias if it is indicated. Also, try to publish the source code again before working with business process.

To achieve that you should click on "publish" button: http://prntscr.com/m50e58

If it won`t help try to create the business process again from scratch.



Best regards,

Alex

 

Show all comments

I have few folders created on the Account section. I want to create a detail in a different section page. On that that detail I want to be able to insert the account records which are read from the AccountFolder. 

So ideally, I like to have a pop up which shows me all the folders on AccountFolder and when I select a folder, I want to be able to add all of the accounts on that folder to that detail. 

Thank you in advance

Like 0

Like

5 comments

Dear Kumar,

In this case you need to create a simple detail using detail wizard and use "Account folder" object. After that you need to go to the schema of the detail and find the method that is called when clicking on "+" button that adds new record standardly. You need to replace the methos that is called there (that creates a record) and put the method which generates a pop-up that displays account folders and after that you need to add a method that calls accounts that are present in the selected folder. Here is the link to technical documentation on development https://academy.bpmonline.com/documents/technic-sdkmob/7-12/bpmonline-d….

Best regards,

Oscar

Oscar Dylan,

How can I generate a pop-up window that display account folders? Is there a place where I can get the example method code I can take a look at? 

AccountFolder.SearchData is binary type field. Will you guide me on how to get the accounts that are present in the selected folder? 

Thank you

Puneel

Dear Kumar,

Please take a look at openLookupPage function of the BaseSchemaViewModel schema. This method is triggered when clicking on the lookup and opens the module page. You can pass it the needed arguments so to open account folders. 

As for the folders, the filtration for folders are preset by user. The idea is to apply the same filters for each folder using ESQ functions. In other words, when clicking on particular folder an ESQ function is triggered to Account object with the filters, which are used for the folder.

Hope you will find it helpful.

Regards,

Anastasia

Anastasia Botezat,

contactInputBoxHandler: function(returnCode, controlData) {

                if (Terrasoft.MessageBoxButtons.OK.returnCode === returnCode) {

                    var rocId = this.get("MasterRecordId");               

                    var esq = Ext.create("Terrasoft.EntitySchemaQuery",{

                        rootSchemaName: "AccountFolder",

                    });

                    esq.addColumn("Name");

                    esq.addColumn("SearchData");

                    var esqFilter = Terrasoft.createColumnFilterWithParameter(                       this.Terrasoft.ComparisonType.EQUAL,"Name",controlData.UsrAccountFolder.value.displayValue);

                    esq.filters.add(esqFilter);

                    esq.getEntityCollection(function(result){

                         result.collection.each(function (item) {

                             var searchData = item.get("SearchData");                            

                             var esqAccounts =                     Ext.create("Terrasoft.EntitySchemaQuery",{

                                 rootSchemaName: "Account",

                             });

                             esqAccounts.addColumn("Name");

                             esqAccounts.filters.add("searchData",searchData);

                             esqAccounts.getEntityCollection(function(accounts){

                                 accounts.collection.each(function(act){

                                     console.log(act.get("Name"));

                                 });

                             });

                         });

                    });                    

                }

            },



            The error is thrown when I add this filter. esqAccounts.filters.add("searchData",searchData);

the searchData is as follows

{"className":"Terrasoft.FilterGroup","items":{"1a34c133-7cb5-49e1-a235-2065b90d2e3f":{"className":"Terrasoft.CompareFilter","filterType":1,"comparisonType":3,"isEnabled":true,"trimDateTimeParameterToDate":false,"leftExpression":{"className":"Terrasoft.ColumnExpression","expressionType":0,"columnPath":"Name"},"isAggregative":false,"key":"1a34c133-7cb5-49e1-a235-2065b90d2e3f","dataValueType":1,"leftExpressionCaption":"Organization Name","rightExpression":{"className":"Terrasoft.ParameterExpression","expressionType":2,"parameter":{"className":"Terrasoft.Parameter","dataValueType":1,"value":"Arkansas Surgical Hospital"}}}},"logicalOperation":0,"isEnabled":true,"filterType":6,"rootSchemaName":"Account","key":"FolderFilters"}

 

Am I using this AccountFolder.SearchaData field as a filter on Account object incorrectly? I keep getting this error 

Uncaught TypeError: e.on is not a function

kumar,

You are applying filter to the binary column, which would not work. Your task is, however, to recreate a filter to Account object same as the folder is working under. This means that for example if account folder "Show accounts from England" has a filter by country, you need to add such filter to the ESQ.



Regards, 

Anastasia

Show all comments

I am a relatively new user to BPM and find that these community forums are difficult to navigate, as there appears to only be a search option for looking at historic posts.

There is a wealth of information in this forum and therefore a good structure, with categories (General, Dev/Scripting, Service Desk, Marketing etc.) and following a standard presentation UI for posts will make this information far more accessible.

If I am missing a link to view this in a standard forum display method, please let me know, as it is not obvious (if it is I am probably just being an idiot).

thanks

Mark

Like 0

Like

6 comments

Dear Mark, 

Hope you are doing well! 

Thank you for the suggestion, we've transferred this request to the team, responsible for the Community and this functionality may be added, there is no ETA for this yet, however. 

Best regards, 

Dennis Hudson

Having used an excellent community platform from a network vendor (google SolarWinds and Thwack as I cannot post a link), I would recommend looking at the platform they use, which I believe is by Jive Software.

This platform I know has been a major reason for the success of their software and recommend you review this or something like it, as I feel you need more than just a Forum platform. The ability for users to be able to share content such as code will only enhance user engagement.

Disclosure: I have no affiliation to Jive, but am a consultant for SolarWinds software.

Has there been any discussion within Creatio on improving the Forum platform. I do find it incredibly clunky, and with the expansion on capabilities and low code function, it seems even more beneficial for a community to be built around the platform. This forum platform is just not conducive to this. 

 

I strongly believe that any application that wishes to grow strongly and quickly needs a high quality community platform to help onboard that user base. It is the old adage, if you look through a restaurant window and see lots of tables taken, you go in. You see a few and you move on

Hello Mark,

 

Thank you for your feedback! We will forward it to the corresponding team for further review.

 

Best regards,

Yuliya Gritsenko

Hello!

 

Thank you for the idea. We have created an idea for our R&D team to implement such functionality in future versions of the system.

It has been 6 years since I posted this idea, and the platform Creatio uses to share ideas and knowledge and for users to pose questions, share their experience and knowledge within a community has not changed.

Unless I am doing something wrong, Looking at a list of posts, with limited categorisation in a tail form is not an efficient way of using the huge knowledge pool such a platform contains within itself and has immediate access to add to.

Please make this a priority, as the more your user base learns, shares and grows on their use of Creatio to more customer success buy in and loyalty is achieved. For Creatio, that leads to greater customer retention and money customers invest.

Show all comments

After saving a new System User, their type is changed from 'Company Employee' to 'Virtual', and the Type, and Contact cannot be changed.

 

 

 

The User also cannot login with the username and password provided for that account.

 

Like 0

Like

1 comments

Dear Jordan

The Type field is usualy populated automatically according to the chosen user type. By default the user types are employee or portal user http://prntscr.com/m1pjj8 . It remains uneditable before you save the record. Once you save the record and reopen the user page, you will be able to edit the type. Apart from that, most likely the user cannot login since the record is not saved. 

If you saved the record and still face the same issue - please contact our support team by email support@bpmonline.com for further investigation in your particular environment.

Best regards,

Dean

 

Show all comments

Is there a way to do this as a mass action for all users?

The only method I know to do this is log in as the user, access their profile, then turn it off there.

Like 0

Like

2 comments

Dear Jordan

Unfortunately, there are no basic tools in the application to turn off the call center integration for all users at once. You will have to disable it from each user profile separately. However, as a solution, you can go to the system settings, find one called 'Default messages exchange library' and choose some different telephony provider in the Default value field. Thus, the system will not send queries to your telephony provider and it will be turned off for all users.

We have already registered the task for our R&D department to develop the required functionality for the future versions of the application.

Hope the solution will help you out.

Best regards,

Dean

This seemed to work.

UPDATE SysMsgUserSettings SET ConnectionParams = '{"isWrapUpDisabled":false,"debugMode":false,"disableCallCentre":true,"isAutoLogin":true,"useWebitelCti":false,"useWebPhone":true,"useVideo":false}';

Show all comments

Is there a way to prevent incoming and outgoing emails from generating all of the tiny image file attachments in the linked records attachments tab?  For example, I receive and mark as processed an email from a vendor.  That email has a dozen image files attached to it for all of their social media links, website links, photos etc.  It also has one actual word file that I need but I don't even see that file in the attachments tab unless I keep scrolling down past the other 12 image files.

Is there a filter or business rule that would allow me to stop certain file extensions or file types or set a minimum file size from becoming bpm attachments to stop all of the attachment clutter?

Like 0

Like

1 comments

Hello Scott,



If I understood you right, the you need to achieve is to create size limit for files that you can attach to entity. One of the ways to do it to create event subprocess on "inserting" where the size should be checked:

 

int size = Entity.GetTypedColumnValue<int>("Size");

if (size > 1048576)

    throw new Exception("Размер вложенного файла превышает 1 Мб");

return true;



Also, Size can be limited by web server itself.

In the application configuration file

Terrasoft.WebApp \ Web.config

see the <requestLimits maxAllowedContentLength = "104857600" />

This is the limit for the any data downloaded to the server in bytes.



Best regards, 

Alex

 

Show all comments

Hi,

I'm trying to get a list of OpportunityFile associated with an OpportunityId and it's seems it's not possible using ODATA.

1. If I'm using this Url https://server.bpmonline.com/0/ServiceModel/EntityDataService.svc/Oppor… I'm getting a "Not Implemented" exception

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<script/>
<code>4

Not Implemented

Not Implemented
System.Data.Services.DataServiceException

at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)
at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)
at System.Data.Services.DataService`1.HandleRequest()

Method 'SelectMany' not supported
System.NotSupportedException

at Terrasoft.Core.Entities.EntityQueryProvider.VisitMethodCall(MethodCallExpression node)
at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable(Type elementType, Expression expression)
at Terrasoft.Core.Entities.EntityQuery`1.GetEnumerator()
at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)

2. If I'm using this Url https://server.bpmonline.com/0/ServiceModel/EntityDataService.svc/Oppor… eq guid'e14b9eb7-99ff-43a6-bf26-a60b23b3ec12') I'm getting the following exception:

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<script/>
<code>1

Collection item with name OpportunityId not found.

Collection item with name OpportunityId not found.
Terrasoft.Common.ItemNotFoundException

at Terrasoft.Core.Entities.EntitySchema.GetSchemaColumnByPath(String columnPath)
at Terrasoft.Core.Entities.EntityQueryWhereBlockBuilder.CreateExpression(Expression node)
at Terrasoft.Core.Entities.EntityQueryWhereBlockBuilder.CreateSimpleFilter(BinaryExpression binary)
at Terrasoft.Core.Entities.EntityQueryWhereBlockBuilder.CreateFilter(Expression node)
at Terrasoft.Core.Entities.EntityQueryWhereBlockBuilder.BuildBlock(MethodCallExpression node)
at Terrasoft.Core.Entities.EntityQueryProvider.VisitMethodCall(MethodCallExpression node)
at Terrasoft.Core.Entities.EntityQueryProvider.Build(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.LoadEntityCollection(Expression expression)
at Terrasoft.Core.Entities.EntityQueryProvider.ExecuteEnumerable(Type elementType, Expression expression)
at Terrasoft.Core.Entities.EntityQuery`1.GetEnumerator()
at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable enumerable)
at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService, IODataResponseMessage responseMessage)
at System.Data.Services.DataService`1.HandleRequest()

3. Also, if I'm using this Url https://server.bpmonline.com/0/ServiceModel/EntityDataService.svc/Oppor… eq guid'b3427cc4-3b20-4c16-8d2a-058ada7e7631') I'm getting a different error.

<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<script/>
<code>4

Syntax error at position 1.

Syntax error at position 1.
System.Data.Services.DataServiceException

at System.Data.Services.Parsing.ExpressionLexer.ValidateToken(TokenId t)
at System.Data.Services.Parsing.ExpressionLexer.ReadDottedIdentifier(Boolean allowEndWithDotStar)
at System.Data.Services.RequestQueryProcessor.ReadExpandOrSelect(String value, Boolean select, IDataService dataService)
at System.Data.Services.RequestQueryProcessor.ProcessSelect()
at System.Data.Services.RequestQueryProcessor.ProcessQuery()
at System.Data.Services.RequestQueryProcessor.ProcessQuery(IDataService service, RequestDescription description)
at System.Data.Services.RequestUriProcessor.ProcessRequestUri(Uri absoluteRequestUri, IDataService service, Boolean internalQuery)
at System.Data.Services.DataService`1.HandleRequest()

It seems the filtering is not working on associated collection entities. Do you have any ideas?

Regards,

Radu

Like 0

Like

1 comments

Dear Radu,

Please see the example below. Draw your attention to the column OpportunityId syntax - Opportunity/Id

 

http://localhost:8006/0/ServiceModel/EntityDataService.svc/OpportunityF… = Opportunity/Id eq guid'410006e1-ca4e-4502-a9ec-e54d922d2c00'

 

Regards, 

Anastasia

Show all comments