Is it possible to generate a signal from JavaScript code?

Like 0

Like

1 comments

Hello Carlos,



Could you, please provide us with more details on your business goal that your are trying to achieve?

Do you need to generate a signal from one javascript module to notify another module about some event? In such case, you can use message exchange - https://academy.bpmonline.com/documents/technic-sdk/7-12/sandbox-module…

Show all comments

Hello, I'm having a problem setting user tasks to complete after setting up case stages on my documents in BPM online development environment. I'm following the bpm online training videos at the moment and set up everything as instructed, but I cant complete the tasks I've set up in my first case stage. I push complete on the task and nothing happens. 

I've also noticed the tasks don't show up right away after creating the document, but that I have to switch between the second case stage "Active", and the first stage "Draft" for the tasks to show up. It feels like a bug or that I have missed something very oblivious. Here are some pictures from the documents page and my case setup.

Any help would be greatly appreciated, my bpm online version is: 7.11.0.3122

Thanks in advance.

Like 0

Like

3 comments

Hello Per,

So, you are trying to add an action panel to the Document edit page. Could you, please provide me with your replacing schema code for DocumentPageV2, so I could help you?

We have a detailed guide how to add an action panel on our academy web site - https://academy.bpmonline.com/documents/technic-sdk/7-12/adding-action-…;

 "I push complete on the task and nothing happens."

 

Please, press F12 and navigate to the Console tab in the Chrome DevTools. Possibly, you'll see an error once you press the "Complete" button on the action panel. 

The error message will help you to identify the cause of problem.

"I've also noticed the tasks don't show up right away after creating the document, but that I have to switch between the second case stage "Active", and the first stage "Draft" for the tasks to show up."

The task will appear in the action panel on the Document  edit page only if there is any activity connected to this document. Possibly, there is no activity connected to the document just after document creation.

Per,



You can also try to perform the same modifications on the demo with the latest version. If the issue still persists, please send an email to the support team. If the issue is solved, you need to update to the latest version.

Thank you Tetiana for your help, sorry for the late response. I will try these measures and come back with feedbank if they give results, thanks!

Show all comments

Hello, I'm having a problem setting user tasks to complete after setting up case stages on my documents in BPM online development environment. I'm following the bpm online training videos at the moment and set up everything as instructed, but I cant complete the tasks I've set up in my first case stage. I push complete on the task and nothing happens. 

I've also noticed the tasks don't show up right away after creating the document, but that I have to switch between the second case stage "Active", and the first stage "Draft" for the tasks to show up. It feels like a bug or that I have missed something very oblivious. Here are some pictures from the documents page and my case setup.

Any help would be greatly appreciated, my bpm online version is: 7.11.0.3122

Thanks in advance.

Like 0

Like

2 comments

Thought the pictures would be able to enlarge, sorry, but if you use the browser zoom function you can see what they say. 

The solution was provided in the another post - https://community.bpmonline.com/questions/cant-set-user-tasks-complete-…

Show all comments

I tried to add 2 buttons inside each row in the detail grid , but it didn't work , can anyone help me with sample code please

Like 0

Like

9 comments

Dear mohamad,

Where exactly do you want to add buttons and what have you already done?

 

Peter Vdovukhin,

Inside the row of the detail grid when , onActiveRowAction when row is active I want to show 2 buttons 

.

Where exactly do you want to add buttons?

I told you inside the row(record) of the detail grid

Like in the picture there is one button , I want to add 2 buttons along with each other

Dear mohamad,

Here is a similar question. Just follow an existing example in the configuration. 

        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "insert",
                "name": "ButtonCopy",
                "parentName": "Detail",
                "propertyName": "tools",
                "values": {
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "click": {"bindTo": "onButton1Click"},
                    "visible": true,
                    "enabled": true,
                    "style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                    "caption": "Button1"
                }
            },
            {
                "operation": "insert",
                "name": "ButtonMark",
                "parentName": "Detail",
                "propertyName": "tools",
                "values": {
                    "itemType": Terrasoft.ViewItemType.BUTTON,
                    "click": {"bindTo": "onButton2Click"},
                    "visible": true,
                    "enabled": true,
                    "style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                    "caption": "Button2"
                }
            }

 

Show all comments

Hello Community!

I would like get the current selected folder in the product catalog section. How can do that?

Regards,

 

Like 0

Like

3 comments

Hello Federico,

In order to get the current folder id in the product section, you need to subscribe to the ResultFolderFilter message in your replacing client module ProductSectionV2.

Please, see my example - http://prntscr.com/kiucak. 

Tetiana Markova,

That's work for ProductSelectionSchema? I´m trying there but is not working for me.

Federico,

I tried the same solution for ProductSelectionSchema and it didn't work for me as well.

So I looked into this case deeper and would like to share my findings with you. 



In case you need to get the current folder in the Section (for example, ProductSectionV2 as I did in my previous example) you need to subscribe for the "ResultFolderFilter" message.

Such message is published in the FolderManagerViewModel schema in the applyFolderFilters method. 

But in case of ProductSelectionSchema the publication for such message should be done in the ProductCatalogueFolderManagerViewModel, but it is missed. That's why the subscription for such message doesn't work for ProductSelectionSchema. I'll forward such question to our developers' team in order to figure out if there is any reason for that.



If such functionality is crucial for you, the only way to get it work is override applyFolderFilters method in the ProductCatalogueFolderManagerViewModel schema and implement the publication for "ResultFolderFilter" message.

So, you will need to replace the base ProductCatalogueFolderManagerViewModel in your package and modify     applyFolderFilters methods in the following way:

    applyFolderFilters: function(rowId) {

            if (this.get("IsProductSelectMode")) {

                var currentItem = this.currentEditElement;

                var currentItemType = currentItem.get("FolderType");

                var resultFiltersObject = null;

                var filtersGroupResult = Terrasoft.createFilterGroup();

                var filtersGroup = this.getFolderFilters(rowId);

                filtersGroupResult.add("FolderFilters", filtersGroup);

                var filterItem = {

                    filters: filtersGroupResult

                };

                this.sandbox.publish("UpdateCatalogueFilter", filterItem);

                var serializationInfo = filtersGroup.getDefSerializationInfo();

                serializationInfo.serializeFilterManagerInfo = true;

                resultFiltersObject = {

                    value: currentItem.get("Id"),

                    displayValue: currentItem.get("Name"),

                    filter: filtersGroup.serialize(serializationInfo),

                    folder: currentItem,

                    folderType: currentItemType

                };

                    this.sandbox.publish("ResultFolderFilter", resultFiltersObject);

            } else {

                this.callParent(arguments);

            }

        }

After that, you'll be able to receive the current folder value in the message handler method in the ProductSelectionSchema schema as was shown in my previous post. 

Please, pay attention, that it is not recommended to change the default logic of the base methods to prevent the possible issues in the future releases.

Show all comments

Hi everyone,

I need to call a sub-process from a C# script task, I found this code:

var showAdressProcessUId = new Guid("abfbf7ee-e499-45e9-9d22-b9e91a46683d");
var manager = UserConnection.ProcessSchemaManager;
var schema =  (ProcessSchema)manager.GetInstanceByUId(showAdressProcessUId);
var moduleProcess = schema.CreateProcess(UserConnection);
moduleProcess.SetPropertyValue("PageInstanceId", PageInstanceId);
moduleProcess.SetPropertyValue("ActiveTreeGridCurrentRowId", ActiveTreeGridCurrentRowId);
moduleProcess.SetPropertyValue("TreeGridSelectedRowsIds", TreeGridSelectedRowsIds);
moduleProcess.SetPropertyValue("SchemaName", "Contact");
moduleProcess.SetPropertyValue("RouteMode", false);
moduleProcess.Execute(UserConnection);

From ShowContactAddressOnMapProcess

If I use it for my process:

var _sendMailId = new Guid("84e96844-b0ae-4edc-8b5e-20d1ba13fb8b");
var _manager = UserConnection.ProcessSchemaManager;
var _schema = (ProcessSchema)_manager.GetInstanceByUId(_sendMailId);
var _moduleProcess = _schema.CreateProcess(UserConnection);
_moduleProcess.SetPropertyValue("Test1", "Something");
_moduleProcess.Execute(UserConnection);

Throws this exception :

Terrasoft.Common.InvalidObjectStateException: missing property "Test1" of type "ProcessComponentSet".

 

I would need to know how it works or another way to do it, I need to call a sub-process inside a for loop.



Thanks.

Like 0

Like

6 comments

Dear Ezequiel,

It is nor recommended to use sub-processes and the processes in general for such purpose. Technically you can call a business process from a business process. But if you correct the code above and execute it  the system will freeze and the processes will block each other. All users meanwhile will not be able to use the system properly.

Please adjust the business-purpose you want to achieve in order to avoid using business-processes or find another architecture solution.

Oliver

Hi, 

I see, I'm trying to send an email inside the loop, but I can't find in any of the existing process how to send an email with a template though a script task.

If someone knows how to do it or has an example, I would appreciate it if you could explain it or show it to me.

Thanks.

Dear Ezequiel,

There is "Send email" BP element you can use to reach your goal. Just select in a message input "Template message" and you will be able to choose what template to use.

 

 

Peter Vdovukhin,

Yes I know, but like I said I need to use it in a for loop, with that I could use it if I had the code to call a sub-process from a script task.

Dear Ezequiel,

As you wrote to bpm'online support, let's continue our conversation there. After resolving your task I will post an answer here.

Here is a simple example I have successfully tested:

A first business process contains only script task with such code:

for(int i = 0; i < 2; i++) {

    var _sendMailId = new Guid("cc1b3e27-4d11-4957-ac40-b22ff5b11aff");

    var _manager = UserConnection.ProcessSchemaManager;

    var _schema = (ProcessSchema)_manager.GetInstanceByUId(_sendMailId);

    var _moduleProcess = _schema.CreateProcess(UserConnection);

    _moduleProcess.SetPropertyValue("UsrTestParameter", "Letter number " + i);

    _moduleProcess.Execute(UserConnection);

}

A second business process with GUID = cc1b3e27-4d11-4957-ac40-b22ff5b11aff contains only Send email element that has a text parameter UsrTestParameter and use this parameter for email subject. The second business process HAS to be compiled to be called from the first business process.

Show all comments

Versions of application "7.11.0.3122" and configuration "7.12.1" are incompatible

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 



Exception Details: Terrasoft.Common.AppStartupException: Versions of application "7.11.0.3122" and configuration "7.12.1" are incompatible



Source Error: 

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Like 0

Like

1 comments

Dear Ruchir,

This message appears, because you are trying to update the version from 7.11.0 to 7.12.1 directly. For successful update you need to do step by step update through all intermediate versions of the instance. Please contact our support team and they will provide you with all necessary installation files. After that you should install them one by one till 7.12.1 version and it will do the trick.

Best regards,

Oscar

Show all comments
Question

Hello,

I am looking to modify the attachments functionality to add custom fields to it. Is there a way to do this in a manner similar to other custom objects using the page designer?

 

Like 0

Like

1 comments

Hello community! 

I need create a  process to generate a task to any record returned from a read element. How need configure the element to make a "for each"?

Example:

http://prntscr.com/jx7y7s

 

 

Like 0

Like

4 comments

I solved part with the case https://community.bpmonline.com/questions/business-process-loop-read-data-element but have problem with create the not exist in the filter. http://prntscr.com/jx9b3r How can do that?

Dear Federico,

It's possible to process multiple records, however, it's wrong architecture. It will decrease the performance of the system very much. If you need to run a process for multiple records, then you probably need to optimize your request in order to avoid such a task. 



If possible, I'd recommend you to create a process that starts on adding new record. The process will insert a new task and it will run for every new record. If that doesn't suit the business logic, you can add the gateway after Read Data and create a conditional flow that will check how many records were found. If there are more then 0 records, the process would go to Read Data again. If there are 0 records found in Read Data, the process finishes. 

Lisa

Lisa Brown,

Thanks can you give a sample of that? I need add the activity to contact when not exist yet in the system. Just need check the "exists" condition in the add record.

Dear Federico,

In this case you can even use only one business process element  - Add Data with the following settings:

Lisa

Show all comments

Hi community!

Could you give me an example of how to call a business process from a script task with parameter passing

Thanks you!

King regards!

Ezequiel

Like 0

Like

1 comments

Dear Ezequiel,

The task was already discussed in another Community post here - https://community.bpmonline.com/questions/call-business-process-script-task. Feel free to check the solution provided there. 

Lisa

Show all comments