Hi,

 

I need to know if a Read Task step in a business process has found records for the condition I am giving. Is there a Count function or a HasElements function that I can apply in a formula for a Conditional Flow in the process?



Thanks!

Ignacio.

Like 0

Like

2 comments

Hi Ignacio,

 

You can compare the Id found in the "Read data" element to Guid.Empty:

[#Read contact.First item of resulting collection.Id#] == Guid.Empty

in the conditional flow. This means that there were no records found by the "Read data" element.

 

Best regards,

Oscar

Thank you Oscar!

Show all comments

I modified out Lead process and we don't use "nurturing" anymore. This works well for new leads.

When I copy a lead this new document is still placed in the "nurturing" stage. Which process do I have to modify to change this behaviour?

Like 0

Like

10 comments
Best reply

Christian Waidner,

 

You can check here,

 

Thanks,

Sourav

Hello Christian,

 

Could you please clarify what you mean under "new document" and what actions are you doing before the Lead came to the "nurturing" stage?

 

Thank you in advance!

Hello Anastasiia!

 

Workflow:

Click on an existing lead in list view

Click "copy"

A new lead document ("new document") is being creating

This new document is in stage "nurturing" and I want it to be in a different stage.

Christian Waidner,

Anastasiia Stepanova,

Do you need any more explanation? Is there anything i can do to change the starting phase of a copied document?

Anastasiia Stepanova,

Reminder - are you still on it?

Christian Waidner,

 

If I understand correctly, you do not want to copy the DCM stage while copying the existing record, then you can try the following with the lookup used for DCM in the Object itself,

 

Thanks,

Sourav Kumar Samal

Sourav Kumar Samal,

The checkbox is unchecked for my field and I do not think that this will fix my problem.

 

This is the situation, I click on "copy" on an existing lead.

 

The resulting lead stage looks like this:

 

 

I do not have a "nurturing" stage in my lead stage anymore.

Christian Waidner,

 

Could you check what is the default value of the lookup value set in the object ?

 

Thanks,

Sourav

Sourav Kumar Samal,

If you can give me a hint how to find this in the system .... sure

Christian Waidner,

 

You can check here,

 

Thanks,

Sourav

Show all comments

Hi Creatio Community

I have created a custom attachment object which is sitting in a detail.

While trying to use the "Process File" element in a business process, I am unable to see that "custom attachment object" in the "Which object to receive file from?" dropdown list.

I need to trigger a business process whenever a new file is added in that custom attachment object, and then use that file as an email attachment in the Send email element.

 

Can you help me figure out how can I read the files present in that custom attachment object in a business process?

 

Thank You.

 

Like 0

Like

1 comments

Hi Nisarg,

 

Please check this Marketplace solution. I believe it has the exact functionality you are looking for.

 

Best regards,

Bogdan 

Show all comments

Hi All,

 

I have this peculiar case where in when I click on the Save button in Pre-Configured Page, it takes a while to save. In of the case, it doesn't save the page in a single-click and requires the end user to click on the Save button twice. 

The implication of this double-click is it creates some activities twice. Now this case occurs 1 in 10 times. If I try to send same set to data on that page and save it next time, it gets saved in a single click and there is no duplicate activities created. 

 

Kindly suggest way to troubleshoot it as while inspecting it in the page, there are no errors found relevant to this behaviour. Is this due to any performance lag? if so, how to confirm that?

Like 0

Like

5 comments

Landing pages can take a bit of time to save (sadly). This means that often users won't know that the form has been submitted and click the submit button again, which will cause a duplicate submission. You can add code to disable the button once clicked the first time so it can't be clicked again. 

Add something like this to the button, this will disable the button on the first click, then submit the form:

<input type="submit" value="Submit" onclick="this.disabled=true; this.value='Sending, please wait...'; this.form.submit();" />

Ryan

Thanks Ryan Farley for the suggestion.

 

Actually in this case, it is a Pre-Configured page and not a landing page. In this, if i set the save button as disabled, it would work making the end user not to click the Save Button twice but also I would also want the page to close this page and redirect back to the previous page. For some reason, it doesnt happen.

 

Anupama,

Ah, sorry about that, I had misread your post.

Do you have any console errors in dev tools when this occurs? 

Ryan

no Console errors

 

Hi Anupama,

Did you find the solution, I am facing the same issue in Freedom UI.

Show all comments

Hello community,

 

Let’s say I have sent an email to a contact about a webinar. After some days I want to follow up  to this email. Is there a way to replyall or reply to that email instead of sending a different mail? The requirement is to have a single email thread instead of sending multiple emails about same thing. How can I achieve this through business process?

 

Thanks in advance!

Like 0

Like

1 comments

Hello Shivani,

 

Basically we don't have such functionality in our system. Alternatively, you can read the body of the letter that arrived (if it is available in the process) and, through the parameters, throw it into a new letter. It's essentially just working with parameters. 

 

Please also note that our core R&D department has a suggestion registered on their side to make possible send an email in single thread via business process in further releases. 

 

Thanks for the great idea!

 

Regards, 

 

Bogdan L.

Show all comments

Hi everyone,

I have created a script task to create new records from a csv.

I am trying to implement a method to search the db for a matching record and then update it (in case it exists).

The second part (the 'else' part, it's working fine) 

Does anybody know how to filter and search a DB table? What am I getting wrong?

 

 

void saveLine(string line, int rowNumber){

    if(rowNumber!=0)

    {

        string lineFormatted = line.Replace("\"", "");

        string[] lineSplitted = lineFormatted.Split(',');

        var LRNMBL = lineSplitted[0];

        var LRRIGA = lineSplitted[1];

        var LRDTBL = lineSplitted[3];

        var LRCANA = lineSplitted[6];

        // Creation of query instance with "Contact" root schema. 

       

        // An EntitySchemaQuery instance that accesses the UsrTestFTPCall table of the database.

        var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrVedniteTestate");

        

       

        // Adding columns to the query.

        esq.AddColumn("UsrLRNMBL");

        esq.AddColumn("UsrLRRIGA");

        esq.AddColumn("UsrLRDTBL");

        esq.AddColumn("UsrLRCANA");

        // Filter the query data. according to LRNMBL and 

        var esqFirstFilter = esq.createColumnFilterWithParameters(Terrasoft.ComparisonType.EQUAL,"UsrLRNMBL", LRNMBL);

        var esqSecondFilter = esq.createColumnFilterWithParameters(Terrasoft.ComparisonType.EQUAL,"UsrLRRIGA", LRRIGA);

        

        esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;

        

        esq.filters.add("esqFirstFilter", esqFirstFilter);

        //esq.Filters.Add(esqSecondFilter);

          

      

        // Get the result of the query.

        var entities = esq.GetEntityCollection(UserConnection);

        // If the data is received.

        if (entities.Count > 0)//Record exists in the db --> update

        {

           var recordToUpd = entities[0];

           recordToUpd.SetColumnValue("UsrLRNMBL", LRNMBL);

           recordToUpd.SetColumnValue("UsrLRRIGA", LRRIGA);

           recordToUpd.SetColumnValue("UsrLRDTBL", LRDTBL);

           recordToUpd.SetColumnValue("UsrLRCANA", LRCANA);

        }

        else 

        {

            //the record doesn't exist --> Create one

               var TestObj = UserConnection.EntitySchemaManager.GetInstanceByName("UsrTestFTPCall").CreateEntity(UserConnection);

            //access the data position and assign it to its column

            TestObj.SetDefColumnValues();

            //Associate new column values to old Col values

            TestObj.SetColumnValue("UsrName", rowNumber.ToString());

            TestObj.SetColumnValue("UsrLRNMBL", LRNMBL);//riferimento testata di vendita

            TestObj.SetColumnValue("UsrLRRIGA", LRRIGA);//riferimento riga all'interno della stessa vendita

            TestObj.SetColumnValue("UsrLRDTBL", LRDTBL);

            TestObj.SetColumnValue("UsrLRCANA", LRCANA);

            TestObj.Save();

           }

    }

}

 

Like 0

Like

4 comments

Hello,

I don't see anywhere in the code where you're saving the updates made to the entity in recordToUpd. Try adding the following to have it save the values in the database:

recordToUpd.UpdateInDB();

Ryan

Hello Federica,



Yes, try to add the method that Ryan recommended you. It will help to resolve the issue.



Best Regards,

Tetiana

Hi Ryan,

 

The problem is to access and filter records in the db.

That part of the script ain't working.

Hi Tetiana Bakai,

The main issue atm lays in the filtering and db-access part.

Show all comments

Hi everyone, 

I'd like to automate a data Import from a FTP server using a business process, without downloading the file locally.

I also found this article (https://community.creatio.com/questions/how-automate-imports-ftp-locati…) , but the links have either been removed or deleted.

I would like to know whether it is possible to use C# code in a Script Task to store the data stream in RAM and eventually recover the data to import. 

Is it reasonable for a cloud- stored enviroment to handle this kind of process with CSV files of approx. 2 MB?

Like 1

Like

3 comments

Hi Federica, 

 

Actually you are still capable to use OData with business task to achieve required implementation. You don't need to use Scheduler for this, so disregard these deleted links, I will give you fresh one , please take a look on the actual OData 4 link with guide how to set up the integration: 

 

https://documenter.getpostman.com/view/10204500/SztHX5Qb?version=latest

 

Please also check out this link from Marketplace where you may find another solution for you task: 

 

https://marketplace.creatio.com/app/file-manager-creatio

 

here you may set up key features of needed requirements, so you can make "One click" implementation and it might be much easier for you.

 

Best Regards, 

 

Bogdan L. 

The .NET FtpWebRequest class can download a file to an in-memory stream (without actually saving the file anywhere) that you can then process from the stream. This could be used from a ScriptTask in a process etc

FtpWebRequest request =
    (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/path/file.txt");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.DownloadFile;
 
using (Stream stream = request.GetResponse().GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
    while (!reader.EndOfStream)
    {
        string line = reader.ReadLine();
        // process the line as needed
    }
}

Ryan

Ryan Farley,

That's the script I'm running at the moment and it works!

Show all comments

Hi,



I have a small problem,

I have a custom section "Client" and I created a custom field UsrName.

When lead is created, I auto create Client by setting lead.contact_name as client.usrname but it always got set as null/empty string.

In the same business process, I am creating a contact using lead.contact_name as contact.fullname and it works perfectly.



I tried setting a business rule as well that when lead is filled in, it auto copies the lead.contact_name as client.usrname, but it didn't work.



Do you have any idea why this doesn't work?







Best Regards,

Solem A.

Like 0

Like

2 comments
Best reply

I have solved this,



The lead create event was being triggered way before I clicked save button. So I changed my BP to occur during Lead Modified.



Best Regards,

Solem A.

Dear Solem Khan Abdusalam,

 

Could you please specify a few things?

 

1. Does the client object get created?

2. Is the contact's name populated?

3. Do other fields get populated correctly?

 

You can also check in the Client object configuration if the Displayed value is set to Name

 

Best Regards,

Max.

 

I have solved this,



The lead create event was being triggered way before I clicked save button. So I changed my BP to occur during Lead Modified.



Best Regards,

Solem A.

Show all comments

Hi Team,

 

I want an schedule an email weekly with a excel report as attachment that will  be generated by system 

 

I used These application to generate excel report and attach to email automatically 

 

Excel pivot report for Creatio

Excel reports builder for Creatio

Printable attachment in email for Creatio

'Save printable' process element

Send email with attachments

 

But was unable to generate and attach excel to email on a scheduled process

Excel attachment is mandatory 

 

Please suggest a work around to solve this.

 

Thank You in Advance

 

Like 0

Like

1 comments

Hello,

There is no way to generate the excel report since it is not piece of default functionality. The workaround to attach the excel report manually on the attachments detail and use simple process to send it. Here is the example that send attachments from account:

 

 

 

 

Other than that, it is necessary to develop custom integration that will call for endpoint of the excel report generation, get file, send it to Creatio and then the process would re-send it according to your needs.

 

When clicking on generate excel report, the query calls for https://yourwebsite.com/0/rest/IntExcelReportService/GetExportFiltersKey with the following parameters:

EsqString: "{\"rootSchemaName\":\"Contact\",\"operationType\":0,\"includeProcessExecutionData\":true,\"filters\":{\"items\":{\"8488ded0-40f6-4167-95ca-20bccc49bfc1\":{\"filterType\":1,\"comparisonType\":3,\"isEnabled\":true,\"trimDateTimeParameterToDate\":false,\"leftExpression\":{\"expressionType\":0,\"columnPath\":\"Id\"},\"rightExpression\":{\"expressionType\":2,\"parameter\":{\"dataValueType\":1,\"value\":\"c4ed336c-3e9b-40fe-8b82-5632476472b4\"}}}},\"logicalOperation\":0,\"isEnabled\":true,\"filterType\":6},\"columns\":{\"items\":{\"Full name\":{\"caption\":\"Full name\",\"orderDirection\":0,\"orderPosition\":-1,\"isVisible\":true,\"expression\":{\"expressionType\":0,\"columnPath\":\"Name\"}},\"Age\":{\"caption\":\"Age\",\"orderDirection\":0,\"orderPosition\":-1,\"isVisible\":true,\"expression\":{\"expressionType\":0,\"columnPath\":\"Age\"}},\"Email\":{\"caption\":\"Email\",\"orderDirection\":0,\"orderPosition\":-1,\"isVisible\":true,\"expression\":{\"expressionType\":0,\"columnPath\":\"Email\"}}}},\"isDistinct\":false,\"rowCount\":-1,\"rowsOffset\":-1,\"isPageable\":false,\"allColumns\":false,\"useLocalization\":true,\"useRecordDeactivation\":false,\"serverESQCacheParameters\":{\"cacheLevel\":0,\"cacheGroup\":\"\",\"cacheItemName\":\"\"},\"queryOptimize\":false,\"useMetrics\":false,\"adminUnitRoleSources\":0,\"querySource\":0,\"ignoreDisplayValues\":false,\"isHierarchical\":false}"

RecordCollection: ["c4ed336c-3e9b-40fe-8b82-5632476472b4"]

ReportId: "ec1724f7-e58e-491f-8471-0ce19b61bc02"

 

so it is necessary to generate the POST request to this endpoint  /0/rest/IntExcelReportService/GetExportFiltersKey with similar parameters as above. As the response - you will get the file. 

Here is the similar post describing how to generate such POST request

 

https://community.creatio.com/questions/how-can-i-generate-excel-report…

 

Regards,

Dean

Show all comments

Hi Team,

 

I got a system to clean data and do some enhancement into it but as I was working on it, I found out that there are thousands of business process in error state I tried to cancel them but it is taking a lot of time

Please suggest a way to cancel them.

there are thousands of records and easier way to delete them currently 

 

I wish to use SQL Execuer to delete data so please let me know if I am correct and its impact on the system and correct usage

 

Thank You in Advance

Like 0

Like

2 comments
Best reply

Hello Braj,

 

Creatio has inbuilt functionality that can cancel and delete the history of business process execution.

The settings can be found in System Settings section:

 

 

Best regards,

Bogdan S.

Hello Braj,

 

Creatio has inbuilt functionality that can cancel and delete the history of business process execution.

The settings can be found in System Settings section:

 

 

Best regards,

Bogdan S.

Thank You I'll use it now 

Show all comments