There are cases when a record is inserted directly from db and the bp doesn't trigger on object signal(Record Added/Modified), how do I proceed in these cases?
 

Like 1

Like

5 comments

A direct database insert/update won't trigger a signal needed for a process to start. Only option I can think of is to flag the record in some way and have a process running on a timer looking for the flagged records.

Ryan

Hello, 

As Ryan indicated,

Unfortunately, it’s not possible through the database.

Regards, 
Orkhan

Thank you both Ryan and Orkhan for your answers

In my case is there any workaround I can use, besides what Ryan mentioned above?

Hi,

 

if you have control over the insert/update process, you could set up a stored procedure in the DB and call it after the insert/update operation. The stored procedure could call the ProcessEngineService.svc via web request.

 

Here is an example with SQL server: How To Call A Web Service From SQL Server (c-sharpcorner.com)

This is the documentation of the ProcessEngineService.svc: Service that runs business processes | Creatio Academy

 

I read it is possible for Postgre, too, but I don't have any experience with it.

Also, if you have a cloud instance of Creatio you might be lacking the permissions to install components to make this work...

 

BR,

Robert

Thanks Robert

I will give it a try.

Show all comments

Hello Community,

 

I have a few questions about GUIDs:

 

Q1. Is it possible to create custom GUID series for different standard objects? 
 

For example, can I generate custom GUIDs where every customer record starts with `0000001`, contacts with `0000002`, and orders with `0000003`?
  - Example:
    1. Customers: `0000001-3cfa-4daf-a93c-632cb2420805`
    2. Contacts: `0000002-4akk-5fhg-d19c-42080asb2420`
    3. Orders: `0000003-4akk-5fhg-d19c-42080asb2420`

 

Q2. Can I identify the Object Name just by looking at the GUID of a record?

 

Regards, 

Ajay

 

Like 0

Like

1 comments

Greetings!
 

Unfortunately, we do not recommend creating custom GUIDs, as this may lead to issues with the application.


You can copy the GUID, paste it into the search field in 
Configuration, and select "filter by contains GUID" for further filtering.


Regards,
Orkhan 

Show all comments

Is there any way to open a web page in preferably a new tab of the browser.  I've tried doing this in a client module with `window.open( ... )`, however a tab/ page is opened for every user logged in and not just the current user's browser.

 

If not can I make a feature request, a process element that enables a new tab to be opened and directed to a page.

Like 0

Like

4 comments

Hello Gareth,
Thank you for your question.

Could you please describe your problem in more detail? Unfortunately, it is hard to understand what your issue or intention is.

Hi,

 

I am building an integration to access NatWest APIs.  To do this the user has to give consent for access on the NatWest website.  This is done by redirecting from Creatio to a page on the NatWest website where the user logs in and selects which accounts they want to give consent to, at which point NatWest send the browser back to a redirect URL.  So I need to redirect the browser to a NatWest URL from within Creatio to get consent.

 

I also have a second problem.  I need to give the NatWest API a redirect URL to send the browser back to Creatio after the user has given consent.  I thought I could do this using the Creatio webservice to run a process.  However NatWest append the consent code parameter to the redirect URL with a '#' fragment, e.g.,

 

https://dev-thesite.creatio.com/0/ServiceModel/ProcessEngineService.svc/UsrWebserviceProcess/Execute#code=021ff693-b3ef-4da4-ae2a-4ba41a8ada04

 

Creatio is expecting the a query string to be appended using a '?' character as is standard and does not process the parameters.

 

Is there a way to process a redirect URL in Creatio that will process the parameters in a '#' fragment?

Gareth Osler,

If i understood you correctly:
I think that an answer to the first part of your question can be window.open. The second problem you are describing is a bit confusing but you can a web service that will create a business process and pass there a result of your call to NatWest. 
 

Yevhenii Grytsiuk,

 

Thank you for your reply.

 

The problem with `window.open()` is that it opens the window for all users logged in to the Creatio instance and not just the current user.  I have worked around it by displaying the URL in a dialog for the user to copy and paste into a browser tab.  But a way to open a web page in another tab in the current user's browser would be good.

 

I have a solution to the second issue, creating a new Freedom UI page to act as the redirect URL.  It's a workaround but it works.

Show all comments

Hello Community,

 

            I have created a business process using a script element that relies on "Newtonsoft.Json.Linq". 

 

 

Scenario 1 : When I add the business process to a custom package, it works perfectly. As shown in below Image

 

#Issue

Scenario 2 : When I add the business process to my app package "UsrG***", it throws an error during publishing due to the Linq dependency.

 

Let me know if you need any more adjustments!

 

Regards,

Ajay K

 

 

Like 0

Like

2 comments
Best reply

Hello,
 

This situation can occur if your custom "UsrG***" package has the "Compile into a separate assembly" attribute.

Compile

When converting a package to assembly package (AP), transferring a schema with code to a AP, or creating a version of a compiled process, the compilation error "The type or namespace cannot be found" occurs if the code uses types from external libraries located in other packages.
To solve your problem, deselect the "Compile into a separate assembly" checkbox for your package and recompile. This should solve the problem.

remove parameter
 

Thank you.

Hello,
 

This situation can occur if your custom "UsrG***" package has the "Compile into a separate assembly" attribute.

Compile

When converting a package to assembly package (AP), transferring a schema with code to a AP, or creating a version of a compiled process, the compilation error "The type or namespace cannot be found" occurs if the code uses types from external libraries located in other packages.
To solve your problem, deselect the "Compile into a separate assembly" checkbox for your package and recompile. This should solve the problem.

remove parameter
 

Thank you.

Serhii Parfentiev,

Thank you.

Show all comments

Hi! 

I know that the emails sent via Creatio are in the Activity table, but how about the the emails sent by a business process? Can I find those emails somewhere?

 

Thank you,

Rares Ivan

Like 0

Like

1 comments

Hello,

To be able to see these emails, you need to enable logging in the advanced settings in the Email Sending process element. 
After that, you can find the emails in the Activity table or set up a dashboard to view them.

Show all comments

I have integrated SOAP service in trial version of Sales Creatio. The test request was successful and returns the response parameters correctly, but when I'm trying to call the webservice in business process and bind the response parameter to auto-generated page, it shown only "Response body" in Process Elements parameter.

 

Please, refer the screenshots attached.

 

 

 

Any guidance would be appreciated!

Like 0

Like

3 comments

My guess is that it is because the web service is returning an array of records and the MemberNumber is from an element in the array/collection. If the web service is really just returning one record, but wrapping it in an array, you could map the field in the web services setup in Creatio as something like (you might need to modify this to match the structure of the json returned from the API):

$.[0].MemberNumber

To specifically get the value from the record at index 0 of the array.

Ryan

How to bind all the records from array/collection in grid from web service response without entity?

Revathi,

You’ll need to use a subprocess and pass each item returned to the sub process. See an article on that here https://customerfx.com/article/working-with-collections-from-a-web-service-element-in-a-process-in-creatio/

Ryan

Show all comments

Hello!

I'm trying to make an integration with a digital signature call "Firmamex" and I trying to use the code that they provide in their SDK in a business process but i have error messages that dont let me publish the script task. 

This are the errors 

 

And this is the source code of the process. I already try to put a return true; at the end of the script task but stills send me the error. 

 

I hope you can help me.

 

namespace Terrasoft.Core.Process
{
 
    using Newtonsoft.Json;
    using SignmageSDK;
    using SignmageSDKCore;
    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Drawing;
    using System.Globalization;
    using System.Text;
    using System.Web;
    using Terrasoft.Common;
    using Terrasoft.Configuration;
    using Terrasoft.Core;
    using Terrasoft.Core.Configuration;
    using Terrasoft.Core.DB;
    using Terrasoft.Core.Entities;
    using Terrasoft.Core.Process;
    using Terrasoft.Core.Process.Configuration;
 
    #region Class: UsrfirmamexMethodsWrapper
 
    /// <exclude/>
    public class UsrfirmamexMethodsWrapper : ProcessModel
    {
 
        public UsrfirmamexMethodsWrapper(Process process)
            : base(process) {
            AddScriptTaskMethod("ScriptTask1Execute", ScriptTask1Execute);
        }
 
        #region Methods: Private
 
        private bool ScriptTask1Execute(ProcessExecutingContext context) {
            }
            public class Flow
                {
                    SignmageSDK.FirmamexServices signmageServices;
                    String base64;
                    String name;
 
                    public Flow(SignmageSDK.FirmamexServices signmageServices, String base64, String name)
                    {
                        this.signmageServices = signmageServices;
                        this.base64 = base64;
                        this.name = name;
                    }
 
                    public String request()
                    {
                        B64_doc b64_doc = new B64_doc { name = name, data = base64 };
 
                        JObject flujoEjemplo = JObject.FromObject(new
                        {
                            b64_doc = b64_doc,
                            stickers = new object[] {
                                new {
                                    authority = "SAT",
                                    stickerType = "line",
                                    dataType = "rfc",
                                    data = "ARCX9012226P8",
                                    imageType = "hash",
                                    email = "jhon@gmail.com",
                                    page = "0",
                                    rect = new Rect { lx = 226.45f, ly = 355.25f, tx = 397.75f, ty = 413.85f }
                                }
                            },
                            workflow = new object[] {
                                new {
                                    data = "ARCX9012226P8"
                                }
                            },
                            app2 = true
                        });
 
                        String flujoParams = flujoEjemplo.ToString(Formatting.None);
                        return signmageServices.request(flujoParams);
                    }
                }
            };
        }
 
        #endregion
 
    }
 
    #endregion
 
}
Like 0

Like

2 comments

Hello Laura,
Thank you for your question.

I have some updates regarding you issue. 

First of all, indeed the generated code contains errors in lines 88 and 92 due to #endregion directives are being set in the wrong place.
1

Secondly, if you have a script task in your business process you might want to return a bool value inside it because the body of the script task if actually a body of a generated method (in your case ScriptTask1Execute).


Thirdly, it is impossible from my side to verify implementation of third-party code so i am unable to state that the code you provided will work. 

Lastly, if you have multiple versions of your business process that contain compilation errors, it is recommended to either correct them in all versions or delete them in the Configuration section of your application.

Hello Yevhenii Grytsiuk,

 

After the comments you left me, I have made some changes.

I have tried to place a return bool but every time I place it I get another error, so I have omitted it in order to be able to test if the script works. 
However, despite my attempts I still cannot remove this error "Type or namespace definition, or end-of-file expected"
It doesn't allow me to move the #endregion around, and even if I move the brackets it leaves it the same. In fact, that part is placed automatically when publishing the script, so I don't know how to move it so that I can stop having the error. 
If you have any idea on how to move it to remove the error, I would greatly appreciate it if you shared it with me.

Show all comments

Hello All,
 

The active business process is not running when the signal is triggered in the business process. I have checked the process log its not even triggering, process library where the business process is still active. What are the possible scenarios of getting this issue.




 

Thanks,

Merlin

Like 0

Like

1 comments

Hello,

Make sure that the created record matches the filter conditions. If not, the process will not start if a different type of record is added.

Show all comments

Hello.

I have a freedom UI FormPage, which may be opened from Business process (Open edit page element). I want to override Cancel button handler in such way that to cancel current business process. I need to know process id (SysProcessLog table) or process element id (SysProcessElementLog table). How could I obtain them in Freedom UI? For example in Classic UI edit page there was dedicated attribute called ProcessData. I looked through request.$context and didn't find anything similar.

 

Creatio version is 8.1.2

Like 0

Like

2 comments

Hello!

 

To find information, you can read the data from SysProcessData, more information which contains the interrelationship between the process instance and the subprocess, the relationship to the process scheme, the relationship to the process scheme element if the instance is a subprocess, and the current status of the process instance. Also, the internal state of the process is a snapshot of the values of the parameters at times when the process elements are executed.

 

Also, this article could be useful:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/development-tools/external-ides/examples/develop-c-sharp-code-in-a-custom-project

 

Kyrylo Atamanenko,

Thanks for an answer. But to read all those information I need to know Id of an element being executed. For example in Classic UI it is obtained like 

this. 

const processElementUId = this.get("ProcessData").procElUId;

And the question is there analogue in Freeom UI page?

Show all comments

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

2 comments
Best reply

Greetings,
 

Unfortunately, we do not have this functionality at the moment. We have registered this request for our R&D team to ensure that the developers consider this request and implement it in future updates.


Thank you for helping us make the product better!

Greetings,
 

Unfortunately, we do not have this functionality at the moment. We have registered this request for our R&D team to ensure that the developers consider this request and implement it in future updates.


Thank you for helping us make the product better!

Orkhan,

Thank you for your kind reply.

Show all comments