Hi Community,

 

I have three objects: Contact, Accounts details, AccountContact. Contacts has contact details unique on email address. Contact and Accounts details have many to many mapping with AccountContact being the mapping table. We have created lookups in accountcontact table on contact and accounts to get the mapping. Now we want to show all the accounts in Accounts details for a contact in an expanded list on the contact form page. How do we reach from contact object to accounts via accountcontact object? Screenshot of the properties of expanded list attached

Like 0

Like

1 comments

Hi,

Unfortunately, I didn't fully understand your task. Could you please provide a schematic representation of the table relationships and the data you want to display on which page?

Show all comments

Hello. One of our recent emails had quite a few "delivery errors". When I went in to look more closely, the Reason Details says "Reason details: Sending failed and all attempts to resend failed" 



While it's clear the sending failed, there's no detailed context as to why it failed (i.e. Invalid email, unsubscribed, etc). Please advise on how to gather more concrete and detailed data. Thanks.

 

Like 0

Like

1 comments

Hi Team,

When creating a new custom UserTask, I notice that certain field types like 'Unlimited length text' and 'Localizable String' are available in existing UserTasks but are missing in my custom UserTask.I would greatly appreciate any assistance with this. Thank you in advance.

Regards,
Mahalaxmi.G

Like 0

Like

2 comments

Dear Mahalaxmi,
 

Thank you for reaching out regarding the missing parameter types in your custom UserTask.
 

The “Unlimited length text” and “Localizable String” parameter types, which you noticed in existing UserTasks, were removed starting from version 7.17.0. 

These parameter types are still present in UserTasks created in previous versions for backward compatibility, but they are no longer available when creating new UserTasks in the latest versions.
 

I understand how this might be unexpected, and I appreciate your understanding.
 

Best regards,
Andrii

Show all comments

Hello,

I need the record registry on the sidebar page to automatically refresh when the page is opened. I'm trying to use crt.HandleSidebarOpenRequest (version 8.1.4). Here is my code:
 

   handlers: /**SCHEMA_HANDLERS*/[
   {
   request: "crt.HandleSidebarOpenRequest",
   handler: async (request, next) => {
   console.log("Обробник викликано");
   const result = await next?.handle(request);
   console.log("Після next.handle(request)");
   const handlerChain = sdk.HandlerChainService.instance;
   // Оновлюємо дані при відкритті сторінки
 
   await handlerChain.process({
       type: "crt.LoadDataRequest",
       $context: request.$context,
       params: {
           config: {
               loadType: "reload",
               useLastLoadParameters: true
           },
           dataSourceName: "DataGrid_69bg53fDS"
       }
   });
   console.log("вуцауца");
   return result;
}
   }

         

       ]/**SCHEMA_HANDLERS*/,

 

However, the handler is not triggering. Could you please help?

Like 0

Like

1 comments

Hello,

A developer can subscribe to sidebar open/close events in a remote module.

To subscribe to the open or close sidebar events in your code, follow these steps:

1. Create an Angular class in the project. To do this, run the ng g class my-sidebar-open.handler command at the command line terminal. Files of the MySidebarOpenHandler class will be added to the src/app/ project directory.

2. Implement the handler.

a. Open the my-sidebar-open.handler.ts file.

b.Define the class of request that inherits base type and contains sidebarCode property.

c. Inherit the BaseRequestHandler class with the new type (2.b.) from the @creatio-devkit/common library.

d. Specify the type of the handler.

e. Specify the type of the request as crt.HandleSidebarOpenRequest.

f. Implement the handle method with some custom logic.

    i. Since this handler will handle HandleSidebarOpenRequest requests from all sidebars, you should check the code of the sidebar before performing any custom actions.

    ii. Write your custom logic.

    iii. Call this.next?.handle(request) in order to process all other handlers of this request.

g. Save the file.

import { BaseRequestHandler } from "@creatio-devkit/common";
class SidebarEventRequest extends BaseRequest {
	public readonly sidebarCode!: string;
}
@CrtRequestHandler({
	type: `usr.MySidebarOpenHandler`,
	requestType: 'crt.HandleSidebarOpenRequest',
})
export class MySidebarOpenHandler extends BaseRequestHandler<SidebarEventRequest> {
	public async handle(request: SidebarEventRequest): Promise<void> {
		if (request.sidebarCode === 'UsrMyCustomSidebar') {
			//WRITE YOUR OWN LOGIC HERE
		}        
		await this.next?.handle(request);
	}
}

3. Build the project. To do this, run the npm run build command at the command line terminal.

Show all comments

We have setup our Google Workspace emails inside Creatio and we can send and receive emails from the platform.

 

When we click an email link inside a contact, a browser opens up with 'about:blank'.

 

I have downloaded a windows email app on my pc thinking that would solve it but still not able to get it to work

Like 0

Like

1 comments

Hello,
 

Thank you for your question. We recommend setting up a button on the page for such needs, which will trigger a business process. Configure this process to read the lead's email address and send an email with the "To" field pre-filled, which is extracted from the lead.

Unfortunately, we don't have ready-made examples of such a process.


Additionally, we have created a request for the development team to restore the functionality of sending an email by clicking on the Email field in future releases.
 

Thank you for reaching out.

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

Hello Community, 

 

I wanted to read a base 64 string of an image which is in android device. Also have creatio application installed in Android device. 

Now, I wanted to read an image as base 64 string format in android device from creatio, 

When I tried to read, it says undefined or null. 

 

Can someone help me to resolve this issue? 

Any suggestions are really helpful. 

 

Thanks

Gargeyi.G

Like 0

Like

1 comments

Hello,

You can use C# and try to build a conversion script from the information in these posts:

How do I decode a base64 encoded string?

How do I encode and decode a base64 string?
 

A very similar question on our Community here.

Also, when the task is to upload a file to Creatio, the OData service is used for that purpose, here is an example:  https://community.bpmonline.com/questions/how-upload-attachments-odata
 

Hope it helps!

Show all comments

Hello

 

It is posible to save a file in creatio from a base64 string? I have a web service that allows me to request a document by an id to an external service and it responds with the document in a base64 string, so I would like to know if it is possible to convert that string into the file and save it in some record on the platform.

 

Thank you 

Like 0

Like

2 comments

Something like this should work:

var base64FileString = Get<string>("Base64File");
var accountId = Get<Guid>("AccountId");
 
var attachFileType = new Guid("529bc2f8-0ee0-df11-971b-001d60e938c6");
var fileName = "SomeFile.docx" // set proper file type in file name
 
var entity = UserConnection.EntitySchemaManager.GetInstanceByName("AccountFile");
var fileEntity = entity.CreateEntity(UserConnection);
fileEntity.SetDefColumnValues();
fileEntity.SetColumnValue("AccountId", accountId);
fileEntity.SetColumnValue("TypeId", attachFileType);
fileEntity.SetColumnValue("Name",fileName);
fileEntity.SetBytesValue("Data", Convert.FromBase64String(base64FileString));
fileEntity.Save();

Ryan

Ryan Farley,

Thank you very much 

Show all comments

Hello. 

 

I'm doing an Web services to send a document to sign, the api request the Url of the document so I'm using the following link https:[creatio instance]/0/rest/FileService/GetFile/70ec5d9f-a55e-4f5c-8f59-30d2c5149c4a/ef68e95e-ef77-eddf-dfa8-685557ee4875

 

70ec5d9f-a55e-4f5c-8f59-30d2c5149c4a correspons to the  UId from the SysSchema table where the attachments are stored and the ef68e95e-ef77-eddf-dfa8-685557ee4875 is the Id of the attachment. This URL allows me to dowloand the document to my computer, so I know that is the right link but when I used it in the web service it says that there is no document. 

 

The json of the request is the following 

{
 
    "url_doc": {
 
        "url": "https://151929-crm-bundle.creatio.com/0/rest/FileService/GetFile/70ec5d9f-a55e-4f5c-8f59-30d2c5149c4a/ef68e95e-ef77-eddf-dfa8-685557ee4875",
 
        "name": "Contrato.pdf"
 
    },
 
    "stickers": [
 
        {
 
            "authority": "Vinculada a Correo Electronico por Liga",
 
            "stickerType": "line",
 
            "dataType": "email",
 
            "email":"laura@artica.digital",
 
            "data": "laura@artica.digital",
 
            "imageType": "stroke",
 
            "page": 0,
 
            "rect": {
 
                "lx":74.88173,
 
               "ly":312.32596,
 
               "tx":196.9875,
 
               "ty":373.37885
 
            }
 
        }
 
    ]
 
}

 

When I sent the request the response is 

 

{
    "error": "No document"
}

 

I had try this request with a Dropbox URL and works fine but I need to send the documents that are generated by the Word Reports. That why I'm trying to get the document from Creatio using the URL the API also gives me the option of sending the document using base64 but I dont know how to convert the file easly. 

 

Can you help me please to know what is happenig? 

Thank you

Like 0

Like

4 comments

The reason why this isn't working is because FileService/GetFile requires authentication to read. This is not an anonymous endpoint. The receiver of this, where ever you're sending this URL of the document to, is actually getting a 401 Unauthorized. 

You'd have to either go the route of sending the base64 of the file, or expose an anonymous service in Creatio to provide the file to the other service.

Ryan

Ryan Farley,

Thank you, can you explain me please how can I convert the file to base64 please, I had see some examples but I not sure if I can do it using a script task in a business process or a source code 

Laura Jurado,

The code would look something like this (not tested, but this should get you started). For this, I have two process params, one a uniqueidentifier AccountFileId (an Id of an account file) and second an unlimited text AccountFileBase64. The script task would look something like this:

var fileId = Get<Guid>("AccountFileId");
 
var entity = UserConnection.EntitySchemaManager.GetInstanceByName("AccountFile").CreateEntity(UserConnection);
if (entity.FetchFromDB(fileId))
{
    var base64FileData = Convert.ToBase64String(entity.GetBytesValue("Data"));
    Set("AccountFileBase64", base64FileData);
}

Ryan

Ryan Farley,

Thank you very much. It helped me a lot 

Show all comments

Getting dateformat error during deserialization when calling a custom web service with the following JSON request:


{
  "ResultDate": "\"2000-01-01T00:00:00.000\""
}
The error message states:

The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:entity... "DateTime content '"2000-01-01T00:00:00.000"' does not start with '/Date(' and end with ')/' as required for JSON.' Please see InnerException for more details. See server logs for more details. The exception stack trace is: ...

Is there any way to pass a date in the "\"2000-01-01T00:00:00.000\"" format instead of using /Date(1511448000000)/

Like 0

Like

1 comments

Hello,

According to the given information, this article may be helpful:

https://stackoverflow.com/questions/44227653/content-date-does-not-start-with-date-and-end-with-as-requi

Also, you can write a DateTime to Unix timestamp converter and then extract the value:

public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
    DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dateTime = dateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
    return dateTime;
}

Best regards,

Anhelina!

Show all comments