Is there a way to add a lead to a folder in a business process? I have the lead ID and if it meets the criteria then add it to an existing folder.

Like 0

Like

2 comments

Hi John



You can set up a dynamic folder with your criteria, and the updated leads will be shown automatically in the folder.



Hope this helps.

Mohamed

Thanks for the reply..  I think I will have to flag the record..

 

Show all comments

Dear Community,

 

When creating a product the number of base units is always limited to 1 whenever it's the default unit of measure.

Can someone explain why this is?

Our client has products e.g. that are being sold in bags of 25kg but how do we translate that into the product page?

https://i.imgur.com/LKyFI2E.png

https://i.imgur.com/LKyFI2E.png

 

 

Kind regards,

Yosef

Like 0

Like

1 comments

Hello,

The checkbox means that this measuring unit is default one and equals 1 for this product. Here is example, I have 1 bottle of water, its default unit = 1. Now I have a package that has 10 bottles, so 10 default units.

As the result this detail settings would look as this:

  This is important during sales. When a customer orders 1 package of bottles, we know that we have 10 units and the price is going to be 10*price.

This is main idea of this detail. 

 

This logic can be changed in ProductUnitPageV2 schema by replacing the method isBaseChange

 

 

Regards,

Dean

Show all comments

When I create a new account, I would like to create an organizational role with the same name as the account.  Later, when linking contacts to the account, I would like to add them to that role.  I want to do this in business processes, presumably in User Tasks.  Can you point me to relevant classes/api's?

Like 0

Like

4 comments

Hello Glenn,

 

Hope you're doing well.

 

If I understood your task correctly you can reach your goal by using the Business Process. To add the organizational role via a business process please create a process that could contain the "Add data" process element with the following parameters:

 

 

As a result the organizational role will be created:

 

 

About the second part of the question: you can do this with the "Add data" element as well by adding data to "User in roles" object with columns "User" populated as an ID of the user (Reading data from the object "User in roles") and "Role" populated as an ID of the role ('Reading data' also from the object "User in roles"). Also you can  try to use [SysAdminUnit] table. It contains Users, Roles and Contact references.

 

Best regards,

Roman

Roman Rak,

Thanks, this looks like it will do what I need.  One question.  You set the value of Type = 1 for the System Admin Unit.  Are the possible values documented anywhere?

Roman Rak,

One additional question.  The purpose of this application is to provision a new customer and its users.  The last step I would like to do is grant licenses to the newly created users.  Is that possible?

Show all comments

Dear community,

 

We are not planning on using the middle name of a contact but Creatio automatically fills in the field.

 

Is there a setting to disable this?

 

 

 

Kind regards,

Yosef

 

Like 0

Like

3 comments

Hello Yosef,



If you are not going to use any field, you can hide or delete it on a record page in the Page Designer.

 

Please find the instruction about configuration page fields here

 

Best regards,

Bogdan

Bogdan,

 

 

The problem is that even if we hide it, Creatio will automatically fill the field and that gives issues with the "full name field".

Are you sure that deleting a field won't cause more issues?

 

Kind regards,

Yosef

Dear community,

 

Does anyone else have an idea? I still haven't found a solution to this.

 

Thank you!

Show all comments

Zapier to Creatio connection went well.

However when creating a zap between LinkedIn and Creatio, only some Creatio fields are visible. - We cannot see / connect in Zapier to all the fields we know are in fact within Creatio.

Example:

In Creatio we have a name field. We can see this in Zapier

In Creatio, we have social media field. However we cannot see this connection in Zapier

How can we alter the Zappier connection to see all fields we have in Creatio?

Like 0

Like

13 comments

 

Hi Mark,

 

The Zapier connector only lets you integrate out-of-the-box fields of Accounts and Contacts sections. The 'Social media' field is not available in base Creatio products.

Ivan Leontiev,

Hi Ivan, Thanks for your help..

Is there any work around. All we want to do  is to have a field to

1) categorise the lead, Facebook, LinkedIn etc. for easy filtering and reporting in Creatio

2) have a field capture a profile

Two fields. Currently Zapier ONLY lets us-name, job title, phone, email, notes and account. (notes is already used). I am sure there are more out of box fields, but Zapier is not letting us see these. see Any suggestions?

Mark Houllier,

 

Hi Mark,

 

I think Creatio Zapier integration is still in the beta stage. It has limited actions and triggers.

You can go further and use Zapier Run Code Action to call Creatio REST API to create Lead / Contact with all the available data from Linkedin.



Here is the Zapier documentation for code actions in javascript: https://zapier.com/help/create/code-webhooks/use-javascript-code-in-zaps

 

Mark Houllier,

What I have done is create my own webhook. I wire up the webhook as the receiver of the zap in Zapier and the webhook uses OData to pass the data along to Creatio. It's a pain, especially since you have the host the webhook somewhere, but at least you can make it work with any object & columns in Creatio.

Ryan

Mohamed Ouederni,

Thank you Mohaamed, I will look closer into your suggestion.

Ryan Farley,

Thanks as well Ryan I'll pass your information on.

Hi Mark,

 

Thank you for the detailed description of your business goals. I have forwarded your feedback to the relevant team.

Ivan Leontiev,

What's the roadmap for the Zapier connector?

Can you share more information?

Hi Mohamed,

 

 

The team in charge of the connector is currently fixing some errors. They are also planning to develop an option to import lead data to Creatio.

Hi Ivan, Its a great connector, as feedback for development it will certainly be significant help to the connector 'connect' to more than name, email, phone and notes etc. Personally, I propose the connector, connects in addition =>, 'lead source', from out of the box OR can see and identify the customer created fields. Any further fields that allows easy filtering. Thanks for help.

Hi Mark,

 

Thanks for the feedback. We have relayed your response to the responsible team.

Any News on the development of the Creatio / Zapier Connector ?

Hi Damien,

This is to inform you that the Creatio Marketplace has a new version of the Zapier connector. This updated connector provides the ability to create workflows with any columns of Creatio sections and details.

Show all comments

Dear community,

 

Earlier versions of Creatio had just a few steps to configure mailbox. The 7.17 version (dev environment, Postgres DB) throws an error about system setting "ExchangeListenerServiceUri". Could any of you shed light on the benefits of this new process? Is it only in 7.17 version or all versions will have the same process of adding mailbox?

How do we configure a simple Gmail Id or Outlook Id ?

 

Thanks in advance!

 

Like 1

Like

1 comments

Hello Shivani, 

 

The Exchange Listener synchronization service synchronizes Creatio with MS Exchange and IMAP/SMTP mail services. Starting from the 7.16.0 version it is necessary to deploy the Exchange Listener synchronization service for the local websites. Starting from the 7.17.2 version the old synchronization method was fully removed. Please, find the deployment guide in the Exchange Listener synchronization service Academy article. 

 

Best regards, 

Olga. 

Show all comments

Hi Team,

 

We have installed the business card scanner app in the cloud instance - https://013622-sales-team.creatio.com/

and tried scanning business card from "Contacts" section and on clicking "Done" in the scanned report, I am getting "Server request returned error". 

 

Please note the following: 

  1. This was working fine before (approx. a week ago).
  2. Scanning for business card, when done from Leads section, creates a record without any errors.

  3. The OCR related system settings (including the API Key and language) are updated in the above mentioned cloud instance.

 

Attaching the screenshots and error report for reference. Kindly help us with resolution.

 

Product, Version info : Business Card Scanner App installed in Sales Creatio Team Edition, Version 7.17

Like 0

Like

8 comments

Hi,

 

 

Please specify additional information so we can reproduce the issue:

1. How did you customize the contacts during this week (e.g. you added additional required fields to the Contacts section)?

2. What OS (including the version) is installed on your mobile?

Ivan Leontiev,



There were no changes done related to contacts.



Apologies that I did not attach the error report. This report includes the OS and its version and might help in debugging.



Adding it here as I am unable to attach the file :

 

Model Name: SM-J701F

Platform: Android

Platform Version: 7.0

Resolution: 320x569

IsHybridMode: true

SyncInService: false

RootAppDirectory: creatio

ApplicationVersion: 7.17.8

ApplicationMajorVersion: 7.17

UseNativeSynchronization: true

UseNativeImport: true

UseNativeExport: true

UseNativeLogout: true

UseNativeMetadataSync: true

UseNativeFullSynchronization: true

UseDataService: true

IsDevMode: false

CurrentDateTime: 2021-05-25T12:42:42.548Z

ServerUrl: https://013622-sales-team.creatio.com/

ContactId: 76929f8c-7e15-4c64-bdb0-adc62d383727

CultureName: en-US

ApplicationRevision: 0

WorkplaceCode: DefaultWorkplace

ProductInfo: {"ProductName":"Creatio","ProductEdition":"team","CustomerId":"301","Version":{"Major":7,"Minor":18,"Build":0,"Revision":1353,"MajorRevision":0,"MinorRevision":1353}}

 

 



Type: Terrasoft.ServerException

Message: Server request returned error

AdditionalInfo: {

"responseText": "{\"responseStatus\":{\"ErrorCode\":\"RequiredColumnsEmptyValuesException\",\"Message\":\"Title, Account, Country fields are required.\",\"Errors\":[]},\"rowsAffected\":-1,\"nextPrcElReady\":false,\"success\":false}",

"statusCode": 500,

"url": "https://013622-sales-team.creatio.com/0/DataService/json/SyncReply/Batc…"

}

Stack trace: 

Class.Terrasoft.ServiceResponseParser#getServiceFailureException[asgetServiceFailureException](terrasoft-all-combined.js:36938:29)

Class.Terrasoft.util.Service#getExceptionFromResponse[asgetExceptionFromResponse](terrasoft-all-combined.js:6203:19)

Function.Terrasoft.nativeApi.ExceptionParser.getExceptionByType(terrasoft-all-combined.js:56681:41)

Function.Terrasoft.nativeApi.ExceptionParser.getException(terrasoft-all-combined.js:56719:21)

Class.Terrasoft.nativeApi.HybridQueryExecutorManager#processFailure[asprocessFailure](terrasoft-all-combined.js:37975:53)

terrasoft-all-combined.js:38041:16

Object.callbackFromNative(cordova.js:295:52)

processMessage(cordova.js:1081:17)

processMessages(cordova.js:1104:9)

pollOnce(cordova.js:973:9)

pollOnceFromOnlineEvent(cordova.js:960:5)

 

 

 

Hi,

 

Thank you for providing the details. I have forwarded this issue to the relevant team. 

Hi Team, Require a clarification on the API key related to OCR.Space . Should the API key be unique for every instance (cloud/on-site) that we test in mobile for using the business card scanner app?

Hi,

 

 

The API key should not necessarily be unique. However, we recommend using a different API key instead of the default value. If you use the default API key, the number of sessions to the OCR.Space service will be limited.

Ivan Leontiev,

Hi Ivan, Can you please provide an update on this ticket? Its of high priority, has been open for more than a week and we require this for one for clients.

Hi,

 

 

You added required contact fields which is why it is not possible to create a contact without filling out those fields. The error description includes the list of these fields: "Title, Account, Country fields are required". You should make those fields optional on the database level to resolve this issue.

Thank you Ivan

Show all comments

in a custom SectionGridRowViewModel I need to access oa lookup column:

     just like as in

var isPlanned = this.get("FinEntryStatus").displayValue;

     I need to access the "FinType" field, such as in

var isPlanned = this.get("FinEntryStatus").FinType;

I tried to use  "lookupListConfig", but had no success.

...

          attributes: {

                    "FinEntryStatus": {

                        lookupListConfig: {

                            columns: ["FinType"]

                        }

                    }

          },

...

Please help.

Regards,

Like 0

Like

3 comments

Hi Ricardo, 

 

You need to use ActiveRow in order to get the value from the registry page.

 

Please try to use this code :

 

this.getActiveRow().get("Lookup column name").displayValue - it will return the value 

 

Please check the example below: 

 

 

Best Regards, 

 

Bogdan L 

 

 

 

Bogdan Lesyk,

Thanks for your reply. 

Clarifying:

I have a lookup named "FinEntryStatuses", which has columns, "Name", "Description", "FinType", etc

At a given selected row, with

      this.getActiveRow().get("FinEntryStatus").displayValue;

I get "Scheduled" as a response (which is  the "Name" column displayValue)

What I need is to access the "FinType" row displayValue, not the "Name" row displayValue.

would it be 

     this.getActiveRow().get("FinEntryStatus").value.get("FinType").displayValue;

?

 

 

Hi Ricardo, 

 

I will show you how it looks like: 

 

Lets imagine you are using Contacts section and you have Lookup "Type" of your contact. Here you have some values of this Lookup like "Contact person", "Customer", "Employee", "Supplier". And you picked value "Employee" for your contact.

 

 

Then in order this Lookup to be visible with "activeRow" you should go to View page and add the Lookup "Type" to fields which will be displayed. 

 

After this changes you will see the your Lookup on the registry page with selected value (Type, "Employee") like on the example above.

 

 

So therefore you will be able to get the value of chosen Lookup(which is already added on the selected record).

 

If you debug this code in your browser you can see that value of needed Lookup is visible and you can take it for your further actions. Example below: 

 

 

Please make sure that you added this Lookup on the registry page and choose the value for it, because otherwise it won't be visible  and you will not be able to take this value(pic.2).

 

 

Best Regards, 

 

Bogdan L.

Show all comments

Dear colleguagues

 

I need to run a process when create a new record, in this case invoke it from onEntityInitialized method just in case is a new record or a copy from another (this.isAddMode() || this.isCopyMode())

 

But don't know how to call a process from there, and how to pass parameters, is it possible?

 

Thanks in advance

Like 0

Like

3 comments
Best reply

Hi Julio,

 

You can use this article as a reference on how to trigger the process from the client and pass process parameters to the process.

 

As for calling the process upon creating a new record - onEntityInitialized is not a good choice here since the process call will be triggered once the page is loaded for adding a new record, but not once all the data on the page is specified and the record should be saved. In our case it's better to use save function and overwrite its logic. For example in a following manner:

 

1) We have a UsrTestJSON object which is a section in the system and has UsrTestJSON1Page as an edit page.

 

2) UsrTestJSON object has following columns:

 

UsrTransType - Text (250 characters) data type column

UsrPolicyNumber - Text (500 characters) data type column

UsrTransTime - Time data type column

UsrTransDate - Date data type column

3) We need to call the custom process called "Test JSON page process" with the following schema once the record is saved upon creation:

Please note that the process code is Process_20340ad and the process parameter codes should be the same as process parameter names (as an example please see UsrTransType parameter declaration).

 

4) Add the following code to the UsrTestJSON1Page schema:

define("UsrTestJSON1Page", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
	return {
		entitySchemaName: "UsrTestJSON",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{
			"Files": {
				"schemaName": "FileDetailV2",
				"entitySchemaName": "UsrTestJSONFile",
				"filter": {
					"masterColumn": "Id",
					"detailColumn": "UsrTestJSON"
				}
			}
		}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			callCustomProcess: function() {
                var usrTransType = this.get("UsrTransType");
				var usrPolicyNumber = this.get("UsrPolicyNumber");
				var usrTransDate = this.get("UsrTransDate");
				var usrTransTime = this.get("UsrTransTime");
                var args = {
                    sysProcessName: "Process_20340ad",
                    parameters: {
                        UsrTransType: usrTransType,
						UsrPolicyNumber: usrPolicyNumber,
						UsrTransDate: usrTransDate,
						UsrTransTime: usrTransTime
                    }
                };
                ProcessModuleUtilities.executeProcess(args);
            },
			save: function(){
				this.callParent(arguments);
				if (this.isAddMode()){
					this.console.log("Adding mode!!!");
					this.callCustomProcess();
				} else if (this.isCopyMode()){
					this.console.log("Copy mode!!!");
				} else if (this.isEditMode()){
					this.console.log("Edit mode!!!");
				} else {
					this.console.log("NOT EDIT, NOT COPY, NOT ADD!!!");
				}
			},
			onUsrTestJSONPageButtonClick: function(){
				this.save();
			}
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
                "operation": "insert",
                "parentName": "ActionButtonsContainer",
                "propertyName": "items",
                "name": "UsrTestJSONPageButton",
                "values": {
                    itemType: Terrasoft.ViewItemType.BUTTON,
                    caption: { bindTo: "Resources.Strings.UsrTestJSONPageButtonCaption" },
                    click: { bindTo: "onUsrTestJSONPageButtonClick" },
                    "layout": {
                        "column": 1,
                        "row": 6,
                        "colSpan": 1
                    }
                }
            },
			{
				"operation": "insert",
				"name": "UsrTransTypec0a98c8f-acb0-4d1f-9333-94ba13a0abe4",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "UsrTransType"
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "UsrPolicyNumber9a8b5c79-6a4f-4326-ab8e-d7c471ebc2a5",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "UsrPolicyNumber"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "UsrTransDate2bfe7bc7-21d7-4024-8809-919959aa5eaa",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "UsrTransDate"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "UsrTransTime7cede060-4f2c-406c-a74f-1abd5679848c",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 12,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "UsrTransTime"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 2
			},
			{
				"operation": "insert",
				"name": "NotesAndFilesTab",
				"values": {
					"caption": {
						"bindTo": "Resources.Strings.NotesAndFilesTabCaption"
					},
					"items": [],
					"order": 0
				},
				"parentName": "Tabs",
				"propertyName": "tabs",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "Files",
				"values": {
					"itemType": 2
				},
				"parentName": "NotesAndFilesTab",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "NotesControlGroup",
				"values": {
					"itemType": 15,
					"caption": {
						"bindTo": "Resources.Strings.NotesGroupCaption"
					},
					"items": []
				},
				"parentName": "NotesAndFilesTab",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "Notes",
				"values": {
					"bindTo": "Notes",
					"dataValueType": 1,
					"contentType": 4,
					"layout": {
						"column": 0,
						"row": 0,
						"colSpan": 24
					},
					"labelConfig": {
						"visible": false
					},
					"controlConfig": {
						"imageLoaded": {
							"bindTo": "insertImagesToNotes"
						},
						"images": {
							"bindTo": "NotesImagesCollection"
						}
					}
				},
				"parentName": "NotesControlGroup",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "merge",
				"name": "ESNTab",
				"values": {
					"order": 1
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

So the main idea here is calling callCustomProcess method upon record saving (this.isAddMode()):

save: function(){
				this.callParent(arguments);
				if (this.isAddMode()){
					this.console.log("Adding mode!!!");
					this.callCustomProcess();
				}

And you bind page data to the process using args object parameters:

var args = {
                    sysProcessName: "Process_20340ad",
                    parameters: {
                        UsrTransType: usrTransType,
						UsrPolicyNumber: usrPolicyNumber,
						UsrTransDate: usrTransDate,
						UsrTransTime: usrTransTime
                    }
                };

usrTransType, usrPolicyNumber, usrTransDate and usrTransTime variables are received from the page before saving the record (using this.get method).

 

So you need to develop the logic similar to described above using your own object, process and page schema. As a result the process will return the data specified when creating a new record:

Best regards,

Oscar

Hi Julio,

 

You can use this article as a reference on how to trigger the process from the client and pass process parameters to the process.

 

As for calling the process upon creating a new record - onEntityInitialized is not a good choice here since the process call will be triggered once the page is loaded for adding a new record, but not once all the data on the page is specified and the record should be saved. In our case it's better to use save function and overwrite its logic. For example in a following manner:

 

1) We have a UsrTestJSON object which is a section in the system and has UsrTestJSON1Page as an edit page.

 

2) UsrTestJSON object has following columns:

 

UsrTransType - Text (250 characters) data type column

UsrPolicyNumber - Text (500 characters) data type column

UsrTransTime - Time data type column

UsrTransDate - Date data type column

3) We need to call the custom process called "Test JSON page process" with the following schema once the record is saved upon creation:

Please note that the process code is Process_20340ad and the process parameter codes should be the same as process parameter names (as an example please see UsrTransType parameter declaration).

 

4) Add the following code to the UsrTestJSON1Page schema:

define("UsrTestJSON1Page", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
	return {
		entitySchemaName: "UsrTestJSON",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{
			"Files": {
				"schemaName": "FileDetailV2",
				"entitySchemaName": "UsrTestJSONFile",
				"filter": {
					"masterColumn": "Id",
					"detailColumn": "UsrTestJSON"
				}
			}
		}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			callCustomProcess: function() {
                var usrTransType = this.get("UsrTransType");
				var usrPolicyNumber = this.get("UsrPolicyNumber");
				var usrTransDate = this.get("UsrTransDate");
				var usrTransTime = this.get("UsrTransTime");
                var args = {
                    sysProcessName: "Process_20340ad",
                    parameters: {
                        UsrTransType: usrTransType,
						UsrPolicyNumber: usrPolicyNumber,
						UsrTransDate: usrTransDate,
						UsrTransTime: usrTransTime
                    }
                };
                ProcessModuleUtilities.executeProcess(args);
            },
			save: function(){
				this.callParent(arguments);
				if (this.isAddMode()){
					this.console.log("Adding mode!!!");
					this.callCustomProcess();
				} else if (this.isCopyMode()){
					this.console.log("Copy mode!!!");
				} else if (this.isEditMode()){
					this.console.log("Edit mode!!!");
				} else {
					this.console.log("NOT EDIT, NOT COPY, NOT ADD!!!");
				}
			},
			onUsrTestJSONPageButtonClick: function(){
				this.save();
			}
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
                "operation": "insert",
                "parentName": "ActionButtonsContainer",
                "propertyName": "items",
                "name": "UsrTestJSONPageButton",
                "values": {
                    itemType: Terrasoft.ViewItemType.BUTTON,
                    caption: { bindTo: "Resources.Strings.UsrTestJSONPageButtonCaption" },
                    click: { bindTo: "onUsrTestJSONPageButtonClick" },
                    "layout": {
                        "column": 1,
                        "row": 6,
                        "colSpan": 1
                    }
                }
            },
			{
				"operation": "insert",
				"name": "UsrTransTypec0a98c8f-acb0-4d1f-9333-94ba13a0abe4",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "ProfileContainer"
					},
					"bindTo": "UsrTransType"
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "UsrPolicyNumber9a8b5c79-6a4f-4326-ab8e-d7c471ebc2a5",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 0,
						"layoutName": "Header"
					},
					"bindTo": "UsrPolicyNumber"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "UsrTransDate2bfe7bc7-21d7-4024-8809-919959aa5eaa",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "UsrTransDate"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "UsrTransTime7cede060-4f2c-406c-a74f-1abd5679848c",
				"values": {
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 12,
						"row": 1,
						"layoutName": "Header"
					},
					"bindTo": "UsrTransTime"
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 2
			},
			{
				"operation": "insert",
				"name": "NotesAndFilesTab",
				"values": {
					"caption": {
						"bindTo": "Resources.Strings.NotesAndFilesTabCaption"
					},
					"items": [],
					"order": 0
				},
				"parentName": "Tabs",
				"propertyName": "tabs",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "Files",
				"values": {
					"itemType": 2
				},
				"parentName": "NotesAndFilesTab",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "NotesControlGroup",
				"values": {
					"itemType": 15,
					"caption": {
						"bindTo": "Resources.Strings.NotesGroupCaption"
					},
					"items": []
				},
				"parentName": "NotesAndFilesTab",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "Notes",
				"values": {
					"bindTo": "Notes",
					"dataValueType": 1,
					"contentType": 4,
					"layout": {
						"column": 0,
						"row": 0,
						"colSpan": 24
					},
					"labelConfig": {
						"visible": false
					},
					"controlConfig": {
						"imageLoaded": {
							"bindTo": "insertImagesToNotes"
						},
						"images": {
							"bindTo": "NotesImagesCollection"
						}
					}
				},
				"parentName": "NotesControlGroup",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "merge",
				"name": "ESNTab",
				"values": {
					"order": 1
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

So the main idea here is calling callCustomProcess method upon record saving (this.isAddMode()):

save: function(){
				this.callParent(arguments);
				if (this.isAddMode()){
					this.console.log("Adding mode!!!");
					this.callCustomProcess();
				}

And you bind page data to the process using args object parameters:

var args = {
                    sysProcessName: "Process_20340ad",
                    parameters: {
                        UsrTransType: usrTransType,
						UsrPolicyNumber: usrPolicyNumber,
						UsrTransDate: usrTransDate,
						UsrTransTime: usrTransTime
                    }
                };

usrTransType, usrPolicyNumber, usrTransDate and usrTransTime variables are received from the page before saving the record (using this.get method).

 

So you need to develop the logic similar to described above using your own object, process and page schema. As a result the process will return the data specified when creating a new record:

Best regards,

Oscar

Hi Julio,



You can trigger a business process from Client JS code using the ProcessModuleUtilities module. You can inject it as a dependency in a Client schema and call the executeProcess(args) method to call a business process. Business process parameters can be set in the parameters attribute inside the argument you pass to the executeProcess method. Request you to go through this academy link for more information.



If your use case is to trigger a business process 'after' a new record is created, there are a few ways of doing it. You could use the 'Record created' trigger in the Business process designer. Or you can also choose to do it from the service side by listening to entity events on the specific section/object. You can get more details in this academy link.



Thanks,

Shrikanth

M Shrikanth,

Thank you very much

Show all comments

Where in Creatio can I check to see how much disk space in our database has been used to store files?

Like 0

Like

1 comments

Hello,

 

There is no place to see that in Creatio. But you can use SQL script that shows the size of all tables in the database, so you can see the size of AccoutnFile, ContactFile, OpportunityFile tables and so on.

 

 SELECT

  t.Name                                       AS TableName,

  s.Name                                       AS SchemaName,

  p.Rows                                       AS RowCounts,

  SUM(a.total_pages) * 8                       AS TotalSpaceKB,

  SUM(a.used_pages) * 8                        AS UsedSpaceKB,

  (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB

FROM

  sys.tables t

  INNER JOIN sys.indexes i ON t.object_id = i.object_id

  INNER JOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id

  INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id

  LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id

WHERE

  t.Name NOT LIKE 'dt%'

  AND t.is_ms_shipped = 0

  AND i.object_id > 255

GROUP BY

  t.Name, s.Name, p.Rows

ORDER BY

  t.Name;

 

Regards,

Dean

Show all comments