Hello Everyone,

 

I'm currently exploring security options within creatio, to secure the process with Password. Specifically, My goal is to restrict access to certain process by requiring user to enter password before any modifications.

 

Could anyone share insights or best practice to implement password protection for Process in Creatio? Are there any built-in features or recommended approces to achieve this?

 

Your guidance would be greatly appreciated. Thank You!

Like 0

Like

0 comments
Show all comments

Hi, 

 

Please help, I need to notify final user some task he trigger is working.

 

For example, on a page, a user clicks on a button to do something, the button executes a process and I want to inform the client that it is processing what the process does.... 

 

Some ideas?

 

Thanks in advance

 

Kind regards

Julio

Like 0

Like

3 comments
Best reply

I do this often and it works great. You'd need to:

  1. Send a message from the process to the front end. See https://customerfx.com/article/how-to-refresh-a-page-from-a-process-in-…
  2. Have some code somewhere that listens for the message. See https://customerfx.com/article/receiving-server-side-messages-in-a-crea…
  3. Then display the toast message. See https://customerfx.com/article/displaying-toast-message-popups-from-cre…

 

I've typically done this by making a generic process I can use as a subprocess. It sends the message to the client. Then I make a generic script loaded from MainShell or MainHeaderSchema that listens for the message and displays the toast. It makes it simple and generic to use and works on any page.

 

Ryan

I do this often and it works great. You'd need to:

  1. Send a message from the process to the front end. See https://customerfx.com/article/how-to-refresh-a-page-from-a-process-in-…
  2. Have some code somewhere that listens for the message. See https://customerfx.com/article/receiving-server-side-messages-in-a-crea…
  3. Then display the toast message. See https://customerfx.com/article/displaying-toast-message-popups-from-cre…

 

I've typically done this by making a generic process I can use as a subprocess. It sends the message to the client. Then I make a generic script loaded from MainShell or MainHeaderSchema that listens for the message and displays the toast. It makes it simple and generic to use and works on any page.

 

Ryan

Ryan Farley,

 

How do you go about creating a generic script that loads in the MainShell or MainHeaderSchema in Freedom UI? It hasn't seemed to work when I've tried it.

Harvey Adcock,

You need to add a feature to enable creating replacing schemas for angular modules such as MainShell. See this thread: https://community.creatio.com/questions/how-create-replacing-schema-freedom-ui-basepagetemplate

Ryan

Show all comments

Hi,

I have created a button in ActivitySectionV2.
This button appears on all entries in this section.

But when you click on this button, nothing happens.
Please let me know how to fix the error.

Code:

define("ActivitySectionV2", ["ProcessModuleUtilities"], function (ProcessModuleUtilities) {
  return {
    entitySchemaName: "Activity",
    details: /**SCHEMA_DETAILS*/ {} /**SCHEMA_DETAILS*/,
    diff: /**SCHEMA_DIFF*/ [{
      "operation": "insert",
      "parentName": "DataGrid",
      "propertyName": "activeRowActions",
      "name": "runProcessButtonOpenOpportunity",
      "values": {
        "className": "Terrasoft.Button",
        /*"itemType": Terrasoft.ViewItemType.BUTTON,*/
        "caption": "Відкрити угоду",
       "click": {
          bindTo: "runProcessButtonOpenOpportunity"
        },
        "style": Terrasoft.controls.ButtonEnums.style.GREEN
      }
    }] /**SCHEMA_DIFF*/,
    methods: {
      runProcessButtonOpenOpportunity: function () {
        var activeRowId = this.get("Id");
        var args = {
          sysProcessName: "UsrProcessOpenOpportunityInActivity",
          parameters: {
            OppID: activeRowId
          }
        };
        ProcessModuleUtilities.executeProcess(args);
      }
    },
    rules: {}
  };
});

Error:

Like 0

Like

1 comments

Hello,
If you want to add a button to an action menu for the active row, the regular approach will result in the error you received.
Here you can find an example of how to configure such a button properly.

Show all comments

In a Business Process, we are calling a Web Service using the Web Service Call element, but sometimes we will get a failure that we need to log to a custom table for action later. We really could do with as much information about the failure as possible, including being able to log out the parameters that the Web Service was passed so the support users can assess what happened without having to have trace logging turned on for the BP and digging into the BP log as well. I can't see any output on the web service call for that, but maybe someone else has found a way to get this info?

Like 2

Like

2 comments

Hi Harvey, we have similar needs, but no result, unfortunately. 

So, we log all parameters manualy before calling web service :(

Hello Harvey,



If you want to see the body of the request generated by the web service and the response that comes from the server - You can try to use Telerik Fiddler tool to capture requests that are being sent from the Creatio instance

 

But this advice is relevant only for local environments.

If the environment is on a local machine, you can connect Fiddler and test it.

 

In general, if you do not want to use data tracing for a process, we believe that this goal can be achieved through development. For example, a web service call will be made using a script task, in which you will process various responses from the server and write the information you need into a table using C# code.



Thank you.

Show all comments

I have a string field that is being populated in this format, "myfielddata-data". I need to parse the data after the "-" to use in a business process.

Like 0

Like

1 comments

Hello Justin,

 

string myString="myfielddata-data";

int indexRetrieved=myString.LastIndexOf("-");

 

string result= myString.SubString(indexRetrieved);

 

other way:

string myString="myfielddata-data";

string arMyString[] = myString.Split("-");

 

string result = arMyString[1];

 

 

Show all comments

Hi! Is it possible to handle exception in a process? For example if there is an error on "delete something" step occur we proceed to next step without stoping all process.

Like 0

Like

1 comments
Best reply

Dear Andrii,

Unfortunately, we cannot handle exceptions with standard tools in actual versions of applications. Thank you for bringing this aspect to our attention. We will create an idea for the development team so they can consider implementing such functionality in future versions of our application.

If you're talking about custom C# code and Script tasks, you can use basic try/catch constructs there to handle exceptions.

To track errors in business processes, you can create a new business process. It is described on the Creatio Community at the following link: https://community.creatio.com/questions/exception-handlng-business-procecss.

Thank You!

Dear Andrii,

Unfortunately, we cannot handle exceptions with standard tools in actual versions of applications. Thank you for bringing this aspect to our attention. We will create an idea for the development team so they can consider implementing such functionality in future versions of our application.

If you're talking about custom C# code and Script tasks, you can use basic try/catch constructs there to handle exceptions.

To track errors in business processes, you can create a new business process. It is described on the Creatio Community at the following link: https://community.creatio.com/questions/exception-handlng-business-procecss.

Thank You!

Show all comments

Hi Community,

We have a simple string field in one of our Creatio instances that is not being updated (tested with a Supervisor user).

Field is NOT being updated in the following scenarios

1- Frontend: When we save the record page.

2- Application Layer : The field is not being update from Bussines Processes.

3- OData4 : We tried to update from Postman with OData4 request, without success

 

Is there any lock mechanism that prevents the field from being updated written in CSharp?

 

The field can only be updated when we perform an Update directly in the database layer.

 

Thank you

Sasor

Like 0

Like

1 comments

Hello!

 

This means that there can be logic at the event layer level that changes the value of this field when saving a record. It can be on action: OnUpdating, OnSaving. Details here:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

Or changing a given field leads to another action that changes its value again.

To track exactly where this field changes, you can write additional logging when the record is saving, in various methods, such as OnUpdating and OnSaving, on the EntityEventListener. This logging will help you find exactly where the field value changes.

Show all comments

I have a subprocess that loops the returned records from an API call and adds a new record in a data object. I want to modify the process to check if the record already exists and if so, modify the existing record with the data changes.

Like 0

Like

1 comments

First read the record using whatever Identifier you have on it from the source data. If the record exists the Id value will be a Guid and if it doesn't exist the Id of the record will be Guid.Empty.

So the condition for the update will look like: 

[Id from the Read] != Guid.Empty (this means the Read found the record)

The "else" will proceed to the Add, just make sure you populate some identifying value from the API call that you'll use when you read if the record exists next time.

Ryan

Show all comments

Hi colleagues,

 

Is there any way to stop the process when processing multiple records, in this case the service returns more than 16000 elements/records and I want just process the first 20 or 30, I tried to use all of this process properties to stop it, without results:

  • Number of completed instances
  • Number of terminated instances
  • Total number of instances

Any Idea, in the image goes to 95 completed, I want to stop at 20, but no idea how to do...

 

 

Thanks in advance, 

Julio Falcón

Like 1

Like

2 comments

Hello, some ideas, please?

Hello, 



When using a multi-instance subprocess, the number of process executions is regulated only by the size of the collection you pass to it.

If you use the "Read data" element, you can adjust the size of the collection through the "Read first XX records" property.



If you receive a collection from a web service, you should use such parameters in the request that will allow you to receive the required number of records. You can check the web service documentation or modify the backend if it is your own web service or you have a contact with the developer.

Another option would be to resort to development and write a script task that will process the collection from the web service and trim the resulting collection/response.

 

Thank you.

Show all comments

Dear colleagues

 

To implement a process who automatically cancel activities not started from more than "XX" hours from the hour they are created, I filter all activities which meet some another conditions and Created on < Previous hours XX.

 

I want to use a System setting if customer want to change the XX hours, in the future, and not need to touch the process. 

 

Is there any way possible to replace 10 by a formula like 

Created on < Previous hours [#System setting.SLATasks#] (in the filter condition)?

 

Thanks in advance

 

Best regards

Julio Falcón

Like 0

Like

3 comments
Best reply

What I did is to create a Date/Time parameter called FechaSLA with this value 

[#System variable.Current Time and Date#].AddHours( -[#System setting.SLA MDA's#] )

and in the filter use Created On < FechaSLA , that's all!

 

Thanks

Hello Julio,

You can create a date/time param to use in the condition and then populate the param with a formula like this:

[#System variable.Current Time and Date#].AddHours(-10)

This formula takes the current date/time and adds a negative 10 hours  (which is subtracting 10 hours). The value of 10 could be a int param so it's flexible the amount of hours subtracted. 

Ryan

Ryan Farley,

Thanks Ryan...

 

How come I didn't see it? hahaha :-(

 

Regards

Julio

What I did is to create a Date/Time parameter called FechaSLA with this value 

[#System variable.Current Time and Date#].AddHours( -[#System setting.SLA MDA's#] )

and in the filter use Created On < FechaSLA , that's all!

 

Thanks

Show all comments