Hi Community,

I am trying to make a request from Creatio to the HTTP REST API Endpoints. |Where File should be added to the API request. 

Is there any way to work with the File type request Parameter in Rest API from Creatio? If yes, please suggest to me how I can achieve this.

 

An example of an API call from Postman is something like as per below :

 

Like 0

Like

3 comments

Hi Patrik,

 

To successfully upload an image you need to make sure that "WebDav publishing" feature is disabled in Windows features of the IIS server (can be found at "World wide web services" -> "Common HTTP Features" -> "WebDAVPublishing"):

Once done you need to perform the following steps:

 

1) Create a POST request to https://app_root_URL/0/odata/SysImage with the JSON raw body with the following content:

{
    "Name": "scr_NewContactPhoto.png",
    "Id": "330006E1-CA4E-4502-A9EC-E54D922D2C01",
    "MimeType": "image/png"
}

330006E1-CA4E-4502-A9EC-E54D922D2C01 should be a random unique identifier. This request will create a record in the SysImage table and the response should be similar to the below:

{
    "@odata.context": "https://app_root_URL/0/odata/$metadata#SysImage/$entity",
    "Id": "330006e1-ca4e-4502-a9ec-e54d922d2c01",
    "CreatedOn": "2021-09-30T10:24:26.830457Z",
    "CreatedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
    "ModifiedOn": "2021-09-30T10:24:26.830457Z",
    "ModifiedById": "410006e1-ca4e-4502-a9ec-e54d922d2c00",
    "ProcessListeners": 0,
    "UploadedOn": "0001-01-01T00:00:00Z",
    "Name": "scr_NewContactPhoto.png",
    "Data@odata.mediaEditLink": "SysImage(330006e1-ca4e-4502-a9ec-e54d922d2c01)/Data",
    "Data@odata.mediaReadLink": "SysImage(330006e1-ca4e-4502-a9ec-e54d922d2c01)/Data",
    "Data@odata.mediaContentType": "application/octet-stream",
    "MimeType": "image/png",
    "HasRef": false,
    "PreviewData@odata.mediaEditLink": "SysImage(330006e1-ca4e-4502-a9ec-e54d922d2c01)/PreviewData",
    "PreviewData@odata.mediaReadLink": "SysImage(330006e1-ca4e-4502-a9ec-e54d922d2c01)/PreviewData",
    "PreviewData@odata.mediaContentType": "application/octet-stream"
}

2) Create a PUT request to https://app_root_URL/0/odata/SysImage(330006e1-ca4e-4502-a9ec-e54d922d2c01)/Data with the binary body and select an image there:

Once executed the response will be 200OK.

 

And after that we can perform a GET request to check the result:

Please also note that BPMCSRF cookie should be always in headers:

Best regards,

Oscar

Hi Oscar,

Thanks for the Guidance, But I want to make an API call from Creatio itself ( Using Web-Service / Script Task ), not from Postman

 

Could you guide me on that? 

Hi Pratik,

 

Please see examples here https://academy.creatio.com/docs/developer/integrations_and_api/data_se…

 

Best regards,

Oscar

Show all comments

hi everyone

I am trying to install a trial with a db PostgreSQL, but following the instructions i am getting this error

  • the name pg_sysadmin is reserved
  • role names beginning with pg_ are reserved

can i create a user witout pg_? my client will work?

 

 

Like 0

Like

1 comments
Best reply

Hello Carlos,

 

Yes, you can create a user without pg_. This prefix is not necessary for correct functioning. 

 

Best regards,

Max.

Hello Carlos,

 

Yes, you can create a user without pg_. This prefix is not necessary for correct functioning. 

 

Best regards,

Max.

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 Community,

 

When I went to translation section, its been more than 1 hour already but still it is loading. Any problem with this?

 

Like 0

Like

1 comments

Dear Fulgen,



Translation actualization indeed can take much time since the system actualizes all translations even if no modifications were made and especially if you have a multilingual application. However, if the process takes more than 3 hours without ending, most likely there is some issue in your application. To understand the reason for it, please try to wait till the process is finished, even if it takes more time. We need to know that the process can be either finished within some time or it cannot be finished at all. With the results, I'd like to ask you to contact our support team for a deeper investigation of the problem. Could you please email our support team at support@creatio.com and also provide the screenshot of the loading page with opened browser console? Thank you beforehand.



Best Regards,

Ivanna.

Show all comments

Hi Community!

 

I try to start a business process when a contact is added to a static folder.

I selected the object 'Contact in Folder' and the action 'record added' and also a condition to the folders' name but the business process doesn't start.

I also tried setting and clearing the 'run in background' flag, but without success.

 

What am I missing here?

Is the 'Contact in Folder' object one that doesn't throw signals? Is there a list of objects that throw signals?

 

Thanks and BR,

Robert

Like 1

Like

1 comments
Best reply

Hi Robert, 

 

Such implementation of a business process uses InsertQuery directly into the database, instead of the InsertQuery class.

 

We've performed some out-of-the box tests and realized that this object really doesn't throw signals.

 

We don't have such list with objects, but this issue will be definitely passed to our Core R&D team as a problem/idea, which will be solved in next releases. 

 

Thanks for that question and magnificent idea for further releases. 

 

Best Regards, 

 

Bogdan L. 

 

Hi Robert, 

 

Such implementation of a business process uses InsertQuery directly into the database, instead of the InsertQuery class.

 

We've performed some out-of-the box tests and realized that this object really doesn't throw signals.

 

We don't have such list with objects, but this issue will be definitely passed to our Core R&D team as a problem/idea, which will be solved in next releases. 

 

Thanks for that question and magnificent idea for further releases. 

 

Best Regards, 

 

Bogdan L. 

 

Show all comments

Hello community,

 

We have a use case where a lead owner needs to perform certain approval tasks. The task can be approved or rejected. Is it possible to send an email to that contact with approved, rejected buttons and store the result of whichever button the email recipient clicked in creatio?



 

Like 0

Like

2 comments

Hello Shivani,



Unfortunately, it is impossible to implement your business task, as for now.



But we have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority.  



Best regards,

Bogdan

Bogdan,

Thank you Bogan. I was wondering if this could be replicated using OOTB Case feedback process which sends the satisfaction smilies. If we tried tot replicate this, would we require a SysPortal user license??

Show all comments

Hi community

 

I'm trying the subscription for various email type (Manage subscriptions for various email types | Creatio Academy).

I configured the system settings "UnsubscribeFromAllMailings" to false.

I assigned to myself the email subscription type "Focus email", so I sent a bulk email with this "email type" configured.

When I have received the email I clicked on the unsubscribe link.

The expected behaviour was the unsubscribe value on subscription status on my email subscription detail, but nothing change on the contact page.

What am I doing wrong?

Do I have to create a business process to do this?

Like 0

Like

5 comments

Hi Stefano,

 

we also need this very often, but as far as I know, the only way is to redirect to a custom page on the website and program the 'subscription center' per type yourself utilizing the REST API to read/write the needed data from/to creatio.

 

BR,

Robert

Robert Pordes,

thank you

Hello Stefano, 

 

As mentioned in "Manage subscriptions for various email types" article, an additional setup by a software developer is required for the described functionality. 

 

Currently, there is no out-of-the-box feature that allows unsubscribing from bulk emails based on their types and this functionality deployment is in the "planned" status (in terms of a query registered to our R&D team). I will also let them know about this particular request so to raise the priority of the problem.

 

Should you have any questions, please let us know!

Best regards, 

Anastasiia

Anastasiia Zhuravel,

thank you Anastasia

I designer a business processo which triggers when a unaubscribe response Is received

Stefano Bassoli,

Hi Stefano

How did you manage to solve this problem ?

Thank you

Sasori

Show all comments

Hello Team,

 

There is any way to edit the fields to display in the mobile section? In the web I change the behavior of the field in the object and is hidden but didn't work on the mobile.

 

 

Like 0

Like

3 comments

Hello Federico, 

 

Actually this is the out-of-the box logic and it's not possible to hide these columns. Nevertheless, you are welcome to use the "Search for filter column" option that was developed to find the needed filter column fast.

 

Best Regards, 

 

Bogdan L.

Bogdan Lesyk,

 

Thanks Bogdan.

 

Would be great if the mobile is taking the behavior configuration of the object like in the web version. 

Federico Buffa ...,

 

For sure! 

 

That's a great idea and will be definitely passed to our Core R&D team.

 

Thanks!

 

Regards, 

 

Bogdan L.

Show all comments

Hi community,

is it possible to show the tags assigned to a record without click on tag icon ?

I'm looking for a solution like this

I can add a text field for each entity and using a business process update this field with all tags assigned to the record, but I don't like it very much.

Like 0

Like

1 comments

Hi Stefano,

 

You can do it in the way you need, just debug the logic of how the tag module is called and how does the data passed there. You need to check:

 

1) BaseDataView and onTagButtonClick function in this module

2) TagUtilitiesV2 and showTagModule and openTagModule functions in this module

 

Then you can write your own logic once you debug and analyze how it's called and executed in terms of the mentioned modules and methods in these modules.

Show all comments