Question

How can you copy the Out of Box section page setups to create different views?  For example, I want to have two views of cases depending on if it's an Incident or Service request.  I want to maintain most of the out of box fields (i.e. auto numbering and tab setups) for both and only want to change a couple fields. Also, I want to do this with Contacts and Accounts if there's a different way depending on the section.

Like 0

Like

1 comments

Dear Melanie,

To do that you need to have your account or contact page in "Custom" package (in other words you need to have it customized) and find the schema of the edit page in configuration (System designer->Advanced settings->Configurations). The schema should be named like Account1Page or UsrAccount1Page (Contact1Page/UsrContact1Page). Open the schema and change parent object to "Account edit page" (for accounts) or "Contact edit page" (for contacts) http://prntscr.com/mo3dgw and save the schema. After that go to the section and refresh the page and open a record after that. As a result you will have all your customizations on both edit pages.

Best regards,

Oscar

Show all comments

How would I go about setting the default behaviour for the + button on an editable grid to add a row instead of opening the card?

Specifically, this is the Order page, with the OrderProduct detail.  The + button here

brings up this full page card:

I would like it to default instead to the blank row you get from ... -> New:

I have tried explicitly setting IsEditable to true when initializing the detail, but it doesn't seem to make a difference.  Where might I be able to change this?

Thank you.

Like 0

Like

6 comments

Hello Darian,



Actually, here is an article that describes how to achieve it:

https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-detail-…



Also I have tested it on my local instance, here is an example how to do it with OpportunityProductDetailV2.



1. Create replacing client module for it

2. Put the code from below and save the schema.

 

define("OpportunityProductDetailV2", ["ConfigurationGrid", "ConfigurationGridGenerator",
    "ConfigurationGridUtilities"], function() {
    return {
        entitySchemaName: "OpportunityProductInterest",
        attributes: {
 
            "IsEditable": {
 
                dataValueType: Terrasoft.DataValueType.BOOLEAN,
 
                type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                value: true
            }
        },
        mixins: {
            ConfigurationGridUtilities: "Terrasoft.ConfigurationGridUtilities"
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "DataGrid",
                "values": {
                    "className": "Terrasoft.ConfigurationGrid",
                    "generator": "ConfigurationGridGenerator.generatePartial",
 
                    "generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
                    "changeRow": {"bindTo": "changeRow"},
                    "unSelectRow": {"bindTo": "unSelectRow"},
                    "onGridClick": {"bindTo": "onGridClick"},
                    "activeRowActions": [
                        {
                            "className": "Terrasoft.Button",
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "save",
                            "markerValue": "save",
                            "imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
                        },
                        {
                            "className": "Terrasoft.Button",
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "cancel",
                            "markerValue": "cancel",
                            "imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
                        },
                        {
                            "className": "Terrasoft.Button",
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "remove",
                            "markerValue": "remove",
                            "imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
                        }
                    ],
                    "initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
                    "activeRowAction": {"bindTo": "onActiveRowAction"},
                    "multiSelect": {"bindTo": "MultiSelect"}
                }
            }
        ]/**SCHEMA_DIFF*/
    };
});

 

Alex_Tim,

I have done that, but it doesn't make a difference.  It does function as expected with OpportunityProductInterest, but OrderProduct still requires using ...->New to get a new line.

REf:

define("OrderProductDetailV2", ["ConfigurationGrid", "ConfigurationGridGenerator",
	"ConfigurationGridUtilities"], function() {
	return {
		entitySchemaName: "OrderProduct",
		attributes: {
			"IsEditable": {
				dataValueType: Terrasoft.DataValueType.BOOLEAN,
				type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
				value: true
			}
		},
		mixins: {
			ConfigurationGridUtilities: "Terrasoft.ConfigurationGridUtilities"
		},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DataGrid",
				"values": {
					"className": "Terrasoft.ConfigurationGrid",
					"generator": "ConfigurationGridGenerator.generatePartial",
					"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
					"changeRow": {"bindTo": "changeRow"},
					"unSelectRow": {"bindTo": "unSelectRow"},
					"onGridClick": {"bindTo": "onGridClick"},
					"activeRowActions": [
						// [Save] action setup.
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "save",
							"markerValue": "save",
							"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
						},
						// [Cancel] action setup.
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "cancel",
							"markerValue": "cancel",
							"imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
						},
						// [Delete] action setup.
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "remove",
							"markerValue": "remove",
							"imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
						}
					],
					"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
					"activeRowAction": {"bindTo": "onActiveRowAction"},
					"multiSelect": false
				}
			}
		]/**SCHEMA_DIFF*/,
		methods: {}
	};
});

 

Darian Lewis,

Basically, I tried to apply the code that you sent and it works in a required way if you are trying to add the product via "new" button

http://prntscr.com/mprbvm



To make "plus" button behave as "new" button you should override the logic of the plus button.



Best regards,

Alex

Alex_Tim writes:

To make "plus" button behave as "new" button you should override the logic of the plus button.

Yes, that's what I'm asking for help with - I can't find where to override the plus button.

Darian Lewis,

The logic of "plus" button lays in "BaseGridDetailV2 module. This button is binded to "addRecord" method.

The logic of "new" button lays in "ConfigurationGridUtilities" module. This button is binded to "addRow" method.



So the solution is to override "plus" button and bind it to "addRow" method.



To achieve it, new replacing client module for "OrderProductDetailV2"  should be created and

the code from below should be inserted into the module.



define("OrderProductDetailV2", ["ConfigurationGridUtilities"], function() {

    return {

        entitySchemaName: "OrderProduct",

        messages: {},

        attributes: {},

        methods: {},

        diff: /**SCHEMA_DIFF*/[

            {

                "operation": "merge",

                "name": "AddRecordButton",

                "values": {

                    "click":{"bindTo":"addRow"}

                }

            }

        ]/**SCHEMA_DIFF*/

    };

});

 

Alex_Tim,

Thank you, that did the trick.

Show all comments

Hi!

I try to connect with my Office365 account. But after I set the email address and entered the password, I receive a message that one of the settings are unvalid. But they are properly set.

 

More I´ve tried to use the Outlook connector from the marketplace, https://marketplace.bpmonline.com/app/smartcloud-connect-bpmonline, but here I receive everytime an error message. For this I have a ticket at the support team open. Has someone else got this problem? 

Like 0

Like

1 comments

Hello Mathias!

Our partner contacted us to request additional information from you. We will contact you within your support case which you opened earlier.

Thank you!

Show all comments

Hi colleagues,

I am searching for a way to add/remove fields to be copied when clicking the Copy button on Quote Section (section actions).

Could anyone, kindly, share any reference on how to customize that?

thanks a lot.

Like 0

Like

5 comments

Please modify the section edit page with a section wizard, then go to the configuration section, find a newly created UsrQuotesSection module, open it, add the "remove" block to the diff and save it. 

 

define("AccountSectionV2", [], function() {

    return {

        entitySchemaName: "Account",

        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,

        diff: /**SCHEMA_DIFF*/[

            {

                "operation": "remove",

                "name": "DataGridActiveRowCopyAction"

            }

        ]/**SCHEMA_DIFF*/,

        methods: {}

    };

});


 

Eugene Podkovka,

Hi Eugene, thanks for your message. I am actually looking for a way to select what fields should be copied. For instance, when user copies a quote, I would like to copy 2 new fields (Usr´s fields) + the Product list (OpportunityProductInteress entries from the original quote).

Thanks

Danilo Lage,

You can select which fields are copied in the object designer, with the 'Make copy' checkbox.

Unfortunately, this doesn't work for the contents of detail objects.

Darian Lewis,

Hi Darian, thanks for you message. Appreciate.

Let´s implement the detail object copy, then.

Danilo Lage writes:

Darian Lewis,

Hi Darian, thanks for you message. Appreciate.

Let´s implement the detail object copy, then.

Any comments about this implementation?? 

Show all comments

Can you control access for users to which lookups they can view and edit? I see there is an operation permission called Access to "Lookups" section. But what if I want the user to only be able to edit one lookup? Can I control that? or is it an "all or none" type of setting?

 

Like 0

Like

5 comments

Dear Mitch,

As for now there is no such functionality to set up access rights for certain lookup only. I have forwarded your request to our business analysts. They will evaluate the possibility of implementation in future system releases.Thank you for helping us to make our application better!

Best regards,

Angela

Hi Angela,

 

any new on this issue?

I have one user that should be able to delete tags of accounts.

 

From what I understand from this article:

https://academy.creatio.com/docs/user/platform_basics/business_data/tags

 

I would have to give her access to the lookups, but she would be getting access to way too many objects.

 

This is one specific case but there are many others were we have an intermediate level user that is not administrator but that should be the owner of 1 or 2 specific lookups, I believe this is much needed.

 

Thanks,

Luis

Luis Tinoco Azevedo,

This functionality is not released yet, unfortunately. The task is still in progress.

 

Best regards,

Angela

we had a similar request from our client, we handled it by creating a new workplace and added only  lookup section. and gave access to specific user role. 

Adam VanBuskirk,

 

It wasn't implemented yet. There is no ETA for this task for now.

Show all comments

I've been trying to create a campaign that is triggered based on participants that have completed one or more campaigns goals in other campaigns.

 

I figured I'd try to create a dynamic folder in contacts which would isolate those contacts that have successfully reached a specific campaign goal for a given campaign. But this is proving to be somewhat challenging. Does anyone know if this could be done?

 

Cheers,

 

Alex

 

Like 0

Like

1 comments

Dear Alex,

Indeed if you need to put participants of previous campaign to the newly created campaign then you need to specify a folder to which old campaign participants will be transferred (using "Exit from campaign" element). After that you need to create a new campaign and in "Add from folder" element you need to specify that folder which you used when exiting from campaign in an old campaign. As a result you will get a campaign that is triggered for those participants that have riched a goal in an old campaign.

Best regards,

Oscar

Show all comments

Hi all,

I created a process lauched where Users are Created / Modified / Deleted.

Seems that the events are no triggered on this table.

Is it Possible ?

Like 0

Like

2 comments

Dear Jerome,

To create such process we recommend using object "Users (view)". Can you please specify if this is the object you used? 

Angela Reyes,

No I used "System administration object". I will try yours and give you a feedback. Thank you.

Show all comments

Good day.

I am new to BPM Online(And C#). I just registered a 14 day free account to try it out.

I want to use the sub process to create a case number when a new record is created on a section. Please see the image below:

When the new record is saved the process starts and reads the zone filed from the request record as depicted below:

Upon reading the zone field I then assign the zone filed to the zone process variable using the formular task as depicted below:

I then use the zone process variable to formulate the case number in the code script as depicted below:

string unique_numer =  DateTime.Now.ToString("yyMMddhhmmss");
string  zone_val = Get<Guid>("zone").ToString();
string case_number=(zone_val+"-"+unique_numer)
 
Set("case_number",case_number);
return true;

The challenge I am facing is to get the value of the selected lookup zone field to store the value into zone_val string filed.

How to get the selected value from the zone lookup filed using C# code. The value that I get is a Guid data type and cannot get the value of the lookup.

I need to store the generated CaseNumber to the case_number field in the database as depicted below:

You help will be highly appreciated as I am currently stuck.

 

Like 0

Like

4 comments

Dear Tebogo,

You may create a system setting that will store this number and use it in the future number generation. You can find detailed example here: https://academy.bpmonline.com/documents/technic-sdk/7-13/how-add-auto-n…

Best regards,

Angela

Assuming you want the field name in the Zone Table : 

var uc = Get&lt;UserConnection&gt;("UserConnection");
 
Guid zoneId = Get&lt;Guid&gt;("zone");
 
var esq = new EntitySchemaQuery(uc.EntitySchemaManager.GetInstanceByName("Zone"));
esq.AddColumn("Name");
var entity = esq.GetEntity(uc, zoneId );
string zoneName = entity.GetTypedColumnValue&lt;string&gt;("Name");

 

Angela Reyes,

Thank you very much Angela.

Jerome BERGES,

Thank you very much Jerome, highly appreciate it!

Show all comments

Is there a way to capture the Request message from a Call Web Service activity for debugging?

Like 0

Like

3 comments

Dear Glenn,

You can use Fiddler to catch requests that are being sent to and from the application and use it for debbuging. But you will be able to do it starting from 7.13.2 version of the applciaiton. Until that you can either create the functionality and then use it after the upgrade or create the request on c# via a script task element.

Best regards,

Oscar

Oscar Dylan,

Both bpm'online and the service are in cloud, so I cannot use fiddler.  What is the target release for 7.13.2?

Dear Glenn,

You will be able to use fiddler to catch requests even if the instance is located on-cloud. As for 7.13.2 version - please take a look at release notes here https://academy.bpmonline.com/documents/bpmonline-release-notes-7-13-2.

Best regards,

Oscar

Show all comments

I am trying to import the relationships via an excel file and have followed all the steps in making the file ready and matching the required data types etc.

The file is getting imported and I get a notification that my file has been imported but I can not see the relationships popping up under those accounts and contacts.

Could someone help me debug this or let me know if I am doing something wrong.

Thanks in advance

Regards,

Abhinav

Like 0

Like

2 comments

I get this notification: Import complete. 1 of 1 records imported from the source file "AK_Relationships.xlsx".

Hello

The Relationship table has following columns: http://prntscr.com/mkwsvu

In order to import relations you need to populate the RelationTypeId, ReverseRelationTypeId, Active, AccountAId(ContactAId) and AccountBId(ContactBId) columns. Please note, that you need to fill in the columns with the precise names in order for these relations to be connected to the existing records. Else, the duplicates might be created.

Best regards,

Matt

Show all comments