Two issues re. using pre-configured pages.

 

I enabled debug mode using the browser console.  I then pressed Ctrl-F5 (cache reload) on an open process designer page, and tried to load the setup area of a pre-configured page element in the right hand panel.  It wouldn't load, the cursor just hung loading.  I then disabled debug mode and pressed Ctrl-F5 in the process designer window again.  The setup area of the pre-configured page element then loaded fine.

 

More problematic was the following while adding a button to run a process that opened a pre-configured page.  Using the debugger to step through a function that called the process with 'ProcessModuleUtilities', the configuration of the process call itself having a callback function for when the process had finished.  The debugger reported that the callback function was being called before the process had run and pre-configured page closed, not after.

define("ContactPageV2", ["ProcessModuleUtilities", "MaskHelper"], function(ProcessModuleUtilities, MaskHelper) {
	return {
		entitySchemaName: "Contact",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onProcessCallbackTestButtonClick: function () {
				debugger;
				const config = {
				    sysProcessName: "UsrPreconfiguredPage",
				    callback: function() {
				    	debugger;
				        Terrasoft.showInformation("The process has completed.");
				        MaskHelper.HideBodyMask();
				    },
				    scope: this
				};
				ProcessModuleUtilities.executeProcess(config);
			}
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "ProcessCallbackTestButton",
				"values": {
					"itemType": 5,
					"caption": "Process Callback Test",
					"style": "blue",
					"click": {
						"bindTo": "onProcessCallbackTestButtonClick"
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 7
			},
			{
				"operation": "merge",
				"name": "JobTabContainer",
				"values": {
					"order": 2
				}
			},
			{
				"operation": "merge",
				"name": "HistoryTab",
				"values": {
					"order": 5
				}
			},
			{
				"operation": "merge",
				"name": "NotesAndFilesTab",
				"values": {
					"order": 6
				}
			},
			{
				"operation": "merge",
				"name": "ESNTab",
				"values": {
					"order": 7
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Like 0

Like

3 comments

Text book technique to implement the second of these issues would probably be using messages as outlined How to Refresh a Page from a Process in Creatio (formerly bpm’online) | Customer FX.

Hello Gareth,

 

And have you received any error message when trying to open the pre-configured page in the "Debug" mode? This can point to the reason for the issue.

 

Best regards,

Oscar

Oscar Dylan,

I didn't think to look, apols...

core-base.js:711 
 
       user: *********/5ef2a5b8-b3de-4790-90fa-d2ae501290bf
 file: https://**********.creatio.com/0/core/hash/ng-core/src/polyfills-es5.js?hash=0076eaccde25431d9d2d73f8f01c29c5
 line: 1
 column: 16730
 message: Uncaught Terrasoft.ItemNotFoundException: Property useBackgroundMode is not defined in class Terrasoft.manager.ClientUnitSchemaParameter 
 date: Wed May 25 2022 16:10:27 GMT+0100 (British Summer Time)
 stack: undefined

This error appears when debug mode is both true and false.

 

The sequence to reproduce the (alleged) bug that I am using is, 1) Set debug mode true in the browser console with 'Terrasoft.SysSettings.postPersonalSysSettingsValue("IsDebug", true);', I am doing this  pressing F12 in a Contacts section record, 2) Return to the process designer and press Ctrl-F5 to reload the cache, 3) click on the pre-configured page element.

 

I am using Edge browser and have tested this in an incognito window.

Show all comments

Hi Community,

How can I debug a script task from like setting some break point and tracing codes line by line.

Thanks

Like 0

Like

6 comments

See this

Dear Fulgen,

You can use the link provided in the previous comment by Grigory:

https://academy.bpmonline.com/documents/technic-sdk/7-12/working-server…

Since Script Task is the chunk of C# code, it can be treated as other C# code in the system.

The article provides steps to perform debugging, please use them to debug Script Task.

Regards,

Anastasia

Anastasia Botezat,

Hi Anastasia,

When I do download package to file system there is no .cs file under my business process folder, this business process should contain the script task of my business process for me to debug it in visual studio

Dear Fulgen,

I am sorry to hear that you experiences difficulties with this approach. I would like to offer you another approach to debug server code. I hope you will find it more suitable to work with:

https://academy.bpmonline.com/documents/technic-sdk/7-12/server-code-debugging

Regards,

Anastasia

Anastasia Botezat,

Hi Anastasia,

I already done this application setup below

I also made sure that the value of CompilerSourcesTempFolderPath directory is existing. But no schema source code was exported.

 

Dear Fulgen,

Please revert all that you do on the screenshot, this approach is deprecated. Afterwards, please change only one thing from the main article https://academy.bpmonline.com/documents/technic-sdk/7-12/visual-studio-… and this thing is setting:
<fileDesignMode enabled="true" /> in the main Web.config file and <add key="UseStaticFileContent" value="false" />

After that compile the application, and within the compilation following folder will be populated with all of the .cs files that you need:

your_path_to_bpmonline\Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src

Taking the file that you need into the new visual studio library project, you can attach the project to the IIS bpm'online process and debug the file as it described in the old article:
https://academy.bpmonline.com/documents/technic-sdk/7-12/server-code-de…
but skipping the part of the configuration. This will be the simplest approach: To take configuring steps from the new article but debugging from the old one.

Also, you may need to compile the system twice, before and after connecting to the IIS process in order to .cs files be exactly the same, in another case if files will be different, the breakpoints in visual studio will be gray and will not work.

Moreover, try to copy the file to a new project and place breakpoints in them, and try to drag and drop the original file from Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src to the main window of visual studio and place breakpoints in them too, after the attaching to the process and compiling the system, one of the approaches will definitely work for you.
 

Show all comments