call
process
outgoing
7.16
Sales_Creatio_enterprise_edition

Dear mates,

I build a process for new calls but it did not launch when a new call is add into the database:

It looks like my problem:

https://community.creatio.com/questions/open-call-page-after-call

#SR-0898365

Thank you,

Nicolas

Like 0

Like

3 comments

Hello,

 

I've created the process with similar signal. It works fine and the process is launched:

Most likely your created call doesn't satisfy your signal conditions. Try to disable the filter and see if the process launches or make sure the call record satisfies it.

 

Regards,

Dean

Hello Dean,

 

I did.

In my "Appel sortant: enregistrer les données du Lead dans l'appel" process:

I just let the outgoing filter.

 

The record is well add to the object:

But the process has not been launched:

An idea ?

Thank you Dean,

Nicolas

 

Hi Nicolas,

 

The settings seem to be fine and the process should have launched the process. What I suggest is to try is to disable the background execution in the signal settings. If this cannot help - try to re-add the signal completely. If still no success - it is necessary to investigate the trigger on the database level. In this case it is better to  approach the support team. I'm afraid it might necessary to have a closer look to the website, rather than trying to guess the possible solution.

 

Regards,

Dean

Show all comments
soap
configurationservice
service
7.16
Sales_Creatio_enterprise_edition

Hi community,

 

We have this situation where we need to create a bi-directional connection with our customer platform, using SOAP protocol. We would like to know if its possible to create a SOAP based services in Creatio to be accessed by our customer? If yes, any information on how to implement this?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

Like 0

Like

10 comments

Hello Pedro,

 

You need to develop a configuration service (either regular or anonymous) using SOAP. Here is the article that describes how to configure web-services and integrate them into the Creatio app.

 

For example:

1) Create a source code for the service contract SPMSUBPServiceContract:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SPMSUBPService
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        SPMClientInfoResponse SPMClientInfo(string Login);
    }
 
    [DataContract]
    public class SPMClientInfoResponse
    {
        bool success = true;
        string errorText = "";
 
        [DataMember]
        public bool Success
        {
            get { return success; }
            set { success = value; }
        }
 
        [DataMember]
        public string ErrorText
        {
            get { return errorText; }
            set { errorText = value; }
        }
    }
}

and the source code of the SPMSUBPService service directly:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
 
namespace SPMSUBPService
{
    public class SPMSUBPService : IService
    {
        public SPMClientInfoResponse SPMClientInfo(string Login)
        {
            return new SPMClientInfoResponse();
        }
    }
}

2) Create a file with SPMSUBPService.svc name in the Terrasoft.WebApp\ServiceModel folder with the following text:

 

<%@ ServiceHost Language="C#" Debug="true" Service="SPMSUBPService.SPMSUBPService" Factory="System.ServiceModel.Activation.ServiceHostFactory" %>

 

3) Add the description of the service to the Terrasoft.WebApp\ServiceModel\http\services.config file:

&lt;services&gt;
    ...
    &lt;service behaviorConfiguration="BaseServiceBehavior" name="SPMSUBPService.SPMSUBPService"&gt;
        &lt;endpoint name="SPMSUBPServiceEndPoint"
            binding="webHttpBinding"
            behaviorConfiguration="RestServiceBehavior"
            bindingNamespace="http://Terrasoft.WebApp.ServiceModel"
            contract="SPMSUBPService.IService" /&gt;
        &lt;endpoint address="soap" binding="basicHttpBinding" contract="SPMSUBPService.IService"/&gt;
        &lt;endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /&gt;
    &lt;/service&gt;
    ...
&lt;/services&gt;

4) Modify the Terrasoft.WebApp\Web.config file:

...
&lt;location path="ServiceModel/SPMSUBPService.svc"&gt;
    &lt;system.web&gt;
      &lt;authorization&gt;
        &lt;allow users="*" /&gt;
      &lt;/authorization&gt;
    &lt;/system.web&gt;
&lt;/location&gt;
...

And everything is ready, the service is accessible via /0/ServiceModel/SPMSUBPService.svc and the WSDL as well /0/ServiceModel/SPMSUBPService.svc?singleWsdl

 

Best regards,

Oscar

Oscar Dylan,

 

Thank you for your response.

 

I've tried to implement the solution you provided above and I'm getting this error when sending a request through both Postman and SoapUI.

Can you please tell me what this error means and how can I fix it?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

 

Hi Pedro Pinheiro,

Did you got the WSDL file. For me it is showing 404 not found error if I try to access that url.

Also how can we know the what input format to pass parameters to method. Can you share those details here.

 

Thanks in advance.

Regards,

Manideep.

Hi Korni Manideep Reddy,

 

We manage to make this service working, but since it was a long time ago we don't have the specific steps to fix the error.

 

However,  we have the updated steps that we use in order to make the service available. Maybe if you go through these following steps  you could fix your problem.

 

Note: These steps only work for .Net Framework instances.

 

1. Create a new file called “DemoServiceName.svc" in ..\Terrasoft.WebApp\ServiceModel folder, and add this line:

 

<%@ ServiceHost Language="C#" Debug="true" Service="Terrasoft.Configuration.DemoServiceNameSpace.DemoServiceName” Factory="System.ServiceModel.Activation.ServiceHostFactory" %>

 

2. Add the following configuration to the ..\Terrasoft.WebApp\web.config file:

 

<configuration>

  ...

  <location path="ServiceModel/DemoServiceName.svc">

    <system.web>

      <authorization>

        <allow users="*" />

      </authorization>

    </system.web>

  </location>

  ...

  <appSettings>

    ...

    <add key="AllowedLocations" value="https://yourwebsitedomain.creatio.com/0/;ServiceModel/DemoServiceName.s…"  />

    ...

  </appSettings>

  ...

</configuration>

 

3. Add the following service to the ..\Terrasoft.WebApp\ServiceModel\https\services.config file:

 

    <service behaviorConfiguration="BaseServiceBehavior" name="Terrasoft.Configuration.DemoServiceNameSpace.DemoServiceName">

        <endpoint name=“DemoServiceNameEndpoint" address="" binding="webHttpBinding" behaviorConfiguration="RestServiceBehavior" bindingNamespace="http://Terrasoft.WebApp.ServiceModel" contract="Terrasoft.Configuration.DemoServiceNameSpace.IDemoServiceNameRest" />

        <endpoint address="soap/demoservicename” binding="basicHttpBinding" contract="Terrasoft.Configuration.DemoServiceNameSpace.IDemoServiceNameSoap"/>

    </service>

 

4. Add the following service to the ..\Terrasoft.WebApp\ServiceModel\http\services.config file:

 

    <service behaviorConfiguration="BaseServiceBehavior" name="Terrasoft.Configuration.DemoServiceNameSpace.DemoServiceName">

 

        <endpoint name="DemoServiceNameEndpoint" address="" binding="webHttpBinding" behaviorConfiguration="RestServiceBehavior" bindingNamespace="http://Terrasoft.WebApp.ServiceModel" contract="Terrasoft.Configuration.DemoServiceNameSpace.IDemoServiceNameRest" />

 

        <endpoint address="soap/demoservicename" binding="basicHttpBinding" contract="Terrasoft.Configuration.DemoServiceNameSpace.IDemoServiceNameSoap"/>

 

    </service>

 

5. In the ..\Terrasoft.WebApp\ServiceModel\https\bindings.config file we need to change the basicHttpBinding to:

 

<basicHttpBinding>

        <binding maxReceivedMessageSize="10485760">

            <readerQuotas maxDepth="32" maxStringContentLength="10485760" maxArrayLength="10485760" maxBytesPerRead="10485760"/>

            <security mode="Transport">

                <transport clientCredentialType="None" />

            </security>

        </binding>

        <binding name="ReportServiceBinding">

            <security mode="Transport">

                <transport clientCredentialType="None" />

            </security>

        </binding>

</basicHttpBinding>

 

 

6. In the ..\Terrasoft.WebApp\ServiceModel\http\bindings.config file we need to change the basicHttpBinding to:

 

<basicHttpBinding>

    <binding maxReceivedMessageSize="10485760">

        <readerQuotas maxDepth="32" maxStringContentLength="10485760" maxArrayLength="10485760" maxBytesPerRead="10485760"/>

        <security mode="Transport">

            <transport clientCredentialType="None" />

        </security>

    </binding>

    <binding name="ReportServiceBinding" />

</basicHttpBinding>

 

After all of this changes are made the application needs to be restarted.

 

About the input format of the method, we used a CustomObject and CustomResponse which we define using the DataContract attribute.

 

        public class DemoServiceName: IDemoServiceNameRest, IDemoServiceNameSoap {
             //This service needs to be anonymous.
             //Implement Methods here. you don't need to define WebInvoke here.
        }
 
        [ServiceContract]
		public interface IDemoServiceNameSoap
		{
           	[OperationContract]
		    CustomResponse MethodNameSoap(CustomObject cobject);  
		}
 
 
		[ServiceContract]
		public interface IDemoServiceNameRest
		{
          	[OperationContract]
			[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
		    CustomResponse MethodNameRest(CustomObject cobject);
		}

 

Hope this helps solving your issue.

 

Best Regards,

Pedro Pinheiro

 

 

 

Hi Pedro Pinheiro,

I have tried above configuration settings But I am still not able to set  soap service. I am getting 500 ServiceActivationException.

 

Rakshith Dheer Reddy,

 

What is the error description you receive when trying to access "http://localhost:83/0/ServiceModel/SoapTestService.svc" through a browser?

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

We are getting this error from the browser. 

Hi Pedro Pinheiro,

In Postman, I am getting 500 error with ActionNotSupported.

Hi Kumaran K,

 

Sorry, I forgot to mention that you need to add the service behavior for the metadata. This can be done with the following steps:

 

1. In the ..\Terrasoft.WebApp\ServiceModel\https\behaviors.config file we need to set the httpsGetEnabled to true on both behaviors:

 

&lt;serviceBehaviors&gt;
 
...
 
              &lt;behavior name="BaseServiceBehavior"&gt;
 
                       ...
 
                       &lt;serviceMetadata httpsGetEnabled="true" /&gt;
 
                       ...
 
              &lt;/behavior&gt;
 
             &lt;behavior name="RestServiceBehavior"&gt;
 
                       ...
 
                       &lt;serviceMetadata httpsGetEnabled="true" /&gt;
 
                       ...
 
             &lt;/behavior&gt;
 
...
 
&lt;/serviceBehaviors&gt;

 

2. In the ..\Terrasoft.WebApp\ServiceModel\http\behaviors.config file we need to set the httpGetEnabled to true on both behaviors:

 

&lt;serviceBehaviors&gt;
 
...
 
              &lt;behavior name="BaseServiceBehavior"&gt;
 
                       ...
 
                       &lt;serviceMetadata httpGetEnabled="true" /&gt;
 
                       ...
 
              &lt;/behavior&gt;
 
             &lt;behavior name="RestServiceBehavior"&gt;
 
                       ...
 
                       &lt;serviceMetadata httpGetEnabled="true" /&gt;
 
                       ...
 
             &lt;/behavior&gt;
 
...&lt;/serviceBehaviors&gt;



Hope this helps.

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

Thank you, Pedro.

The soap service is working.

Show all comments
Business Process
message
Opportunity
section
7.16
Sales_Creatio_enterprise_edition

Hi community,

 

I've this situation where I need to refresh my Opportunity Section right after I save my mini page when creating a new Opportunity.

Since some of the values are calculated during this "save" operation using a business process, I've tried to send a message to my Opportunity  Section page, using the same process. But the main problem happens when two or more users are in the Opportunity Section page those pages (Opportunity Section of each user) are refreshed. Is there any solution to refresh the page of only one user (the user that created the new Opportunity)?

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

Like 1

Like

3 comments
Best reply

Hello Pedro,

To reload/refresh a section list, you can use:

this.updateSection();

As far as sending a message for only the current user, you can use the ServerChannel to send a message from a process and include the user Id of who created the opportunity in the message, then check that value with the current user when received on the client.

Info on sending a message from server to client: https://customerfx.com/article/how-to-refresh-a-page-from-a-process-in-…

Info on getting current user: https://customerfx.com/article/getting-the-current-user-in-bpmonline/

Ryan

Hello Pedro,

To reload/refresh a section list, you can use:

this.updateSection();

As far as sending a message for only the current user, you can use the ServerChannel to send a message from a process and include the user Id of who created the opportunity in the message, then check that value with the current user when received on the client.

Info on sending a message from server to client: https://customerfx.com/article/how-to-refresh-a-page-from-a-process-in-…

Info on getting current user: https://customerfx.com/article/getting-the-current-user-in-bpmonline/

Ryan

I've also written up a more detailed description of the ways to refresh a section, or parts of a section, here: https://customerfx.com/article/refreshing-a-section-list-in-creatio/

Ryan

Ryan Farley,

Thanks for the response, your solution fixed our problem.

 

Best Regards,

Pedro Pinheiro

Show all comments

Hello everyone,

 

In the TIMELINE or the HISTORY of the LEADS part we don't see the phone calls while in the account or contact part it works.

 

Could you help me to set up this section?

 

Thank you in advance.

Best regards.

Like 1

Like

5 comments

Hi Antoine,



Could you please clarify if there's no information in the Leads section regarding the call with the same contact connected to the lead, which has it in the Contacts section?



Is it all empty here?



Also what is the version and product of the instance you use?



Thank you.

Hello Bohdan,

 

Thank you for your answers

 

We use the Sales Creatio, enterprise edition 7.16.4.1731.

Here is an example of a LEADS sheet:

 

 

Hi Antoine, 



To display the information regarding phone calls on the lead edit page you should go to the timeline tab and choose "Calls" option from the dropdown menu as it is shown on the screenshot attached:

 

Thank you for choosing Creatio!

Bohdan Zdor,

Hi Bohdan,

 

Thank you for your answers.

The choice calls is well selected in the drop-down list.

 

Best regards.

 

 

 

Hello Antoine CIEUTAT,

 

We kindly ask you to contact our Technical support team at support@creatio.com with a detailed description of your issue. We would be happy to take a closer look at the issue and provide you with a proper solution. 

 

Thank you in advance!

Olga. 

Show all comments

Dear,

We currently have some timeout error while a Creatio webservice execution.

However, the json order is well received by our server.

I tryed to increase the timeout in the setting panel (120000) but we still have the error currently.

 

System.Net.WebException: The operation has timed out.

   at Terrasoft.Services.Runtime.ServiceClient.d__7.MoveNext()

--- End of stack trace from previous location where exception was thrown ---

   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

   at Terrasoft.Services.Runtime.ServiceClient.Execute(IServiceClientRequest request, TimeSpan timeout, CancellationToken cancellationToken)

   at Terrasoft.Services.WebServiceUserTaskImplementation.Execute(ProcessWebService userTask, ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteElement(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

 

Like 0

Like

5 comments

Hello Nicolas,

 

Can you please check if your IIS can see the host where your custom Webservice logic is stored and vice versa? Also do you receive any other messages in application logs?

 

Best regards,

Oscar

Hello Dylan,

This morning i allready had 4 webservices errors:

 

 

Our Platform host is Amazon. 

 

 

The system said "The operation has timed out." but it had reach and send json data to our server and the action is the final one in the process:

 

 

i can not find more informations...

 

Thank you

 

Nicolas,

 

Can you please increase the execution timeout for calling a web-service to 1 minute for example? And also please specify which version of the application do you use? In case its 7.16.4 can you go to the Terrasoft\Web.config file, find the 

Feature-EnableOAuth20Integration parameter and set the "false" value for it and restart the app after that?

 

Best regards,

Oscar

Oscar Dylan,

Oscar,

We are using 7.16.4, so the support has modified the Terrasoft\Web.config file and has restarted.

i did yesterday, the modification to the maximum execution timeout.

but we still have sometimes the error (2 timeout errors today)

Thank you Oscar !!!

it works !

Show all comments
ExcelReportBuilder
Upload
template

Hi Community,

I am having some difficulties importing an excel template into my excel reports on my production machine. This machine is in version 7.16.4.1731.

I already tried to import it into my development machine, which is in version 7.16.3.1473 and the whole process was completed successfully, I managed to import a template into my excel reports.

Is the problem related with the application version? Can you help me solve this issue?

 

Thanks in advance.

Like 3

Like

3 comments
Best reply

Hello Pedro,

For some reason, when you upload a template it thinks the template is an apk or jar file. These extensions are on the file deny list in Creatio so it is rejecting the file upload. Not sure when this changed, it didn't used to fail like this.

Anyway, to resolve this, you can simply remove "apk" and "jar" from the "FileExtensionsDenyList" system setting. Then you will be able to upload templates.

Ryan

Hi Pedro,

 

Thank you for informing us.

 

Kindly note that we implemented new security restrictions for the formats of uploaded files in Creatio 7.16.4.

I have forwarded your issue to the responsible team for investigation and will get back to you with the updates ASAP.

 

Have a good day!

Hello Pedro,

For some reason, when you upload a template it thinks the template is an apk or jar file. These extensions are on the file deny list in Creatio so it is rejecting the file upload. Not sure when this changed, it didn't used to fail like this.

Anyway, to resolve this, you can simply remove "apk" and "jar" from the "FileExtensionsDenyList" system setting. Then you will be able to upload templates.

Ryan

Ryan Farley,

We remove both extensions from the list and its now working, thank you for your response.

 

Best Regards,

Pedro Pinheiro and Tiago Sousa

Show all comments
detail
Custom Details
OrderProducts

Is it possible so that a new line is added to the product detail every time enter is pressed?

 

This way adding products is greatly sped up (compared to clicking + and going through the Product page).

 

Does anybody know how to achieve this?

Like 0

Like

5 comments
Best reply

Turns out using plain enter would conflict with the need of the dropdown lookup. I picked alt+enter. This is how:

define("OrderProductDetailV2", [], function() {
	return {
		entitySchemaName: "OrderProduct",
		messages: {
		},
		attributes: {
		},
		methods: {
            /** 
             * add Alt+Enter as a shortcut to an active record
             */
			initActiveRowKeyMap: function (keyMap)
			{
				keyMap.push({
					key: Ext.EventObject.ENTER,
					alt: true,
					defaultEventAction: "preventDefault",
					fn: this.onAltEnterKeyPressed,
					scope: this
				});
				this.callParent(arguments);
            },
            /**  
             * Enable the logic for saving the current row and
             * creating a new one
            */
			onAltEnterKeyPressed: function () {
				var activeRow = this.getActiveRow();
				this.unfocusRowControls(activeRow);
				Terrasoft.chain(function(next) {
				this.saveRowChanges(activeRow, next);
				}, function(next) {
					this.activeRowSaved(activeRow, next);
				}, function() {
					this.addRecord();
				}, this);
			}
		},
		diff: /**SCHEMA_DIFF*/[
            // this overides the little + button to skip the OrderProductPage
			{
				"operation": "merge",
				"name": "AddRecordButton",
				"values": {
					"click": {"bindTo": "addRecord"}
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Turns out using plain enter would conflict with the need of the dropdown lookup. I picked alt+enter. This is how:

define("OrderProductDetailV2", [], function() {
	return {
		entitySchemaName: "OrderProduct",
		messages: {
		},
		attributes: {
		},
		methods: {
            /** 
             * add Alt+Enter as a shortcut to an active record
             */
			initActiveRowKeyMap: function (keyMap)
			{
				keyMap.push({
					key: Ext.EventObject.ENTER,
					alt: true,
					defaultEventAction: "preventDefault",
					fn: this.onAltEnterKeyPressed,
					scope: this
				});
				this.callParent(arguments);
            },
            /**  
             * Enable the logic for saving the current row and
             * creating a new one
            */
			onAltEnterKeyPressed: function () {
				var activeRow = this.getActiveRow();
				this.unfocusRowControls(activeRow);
				Terrasoft.chain(function(next) {
				this.saveRowChanges(activeRow, next);
				}, function(next) {
					this.activeRowSaved(activeRow, next);
				}, function() {
					this.addRecord();
				}, this);
			}
		},
		diff: /**SCHEMA_DIFF*/[
            // this overides the little + button to skip the OrderProductPage
			{
				"operation": "merge",
				"name": "AddRecordButton",
				"values": {
					"click": {"bindTo": "addRecord"}
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Hi Jonas,

 

To avoid opening the "Products" section and simply switch to a new line, you can press the "Tab" button and add a new product to the detail, choosing it from an appeared lookup.

 

Regards,

Anastasiia

That is technically possible, but not what the customer requested.

Jonas,

 

Sure, there is one more option you can use. 

 

1. Create a replacing client module schema for the detail schema ("ProductDetailV2", UIv2 package). Here is the article on how you can do it:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-…

 

2. In a new replacing client schema, please set the parent object (Base detail - Products ( UIv2 )) and insert the code below:

 

define("ProductDetailV2", ["terrasoft", "ConfigurationEnums", "MaskHelper", "ConfigurationGrid",
    "ConfigurationGridGenerator", "ConfigurationGridUtilities"],
  function(Terrasoft, enums, MaskHelper) {
    return {
      mixins: {},
      attributes: {},
      messages: {},
      methods: {},
      diff: /**SCHEMA_DIFF*/[
        {
          "operation": "merge",
          "name": "AddRecordButton",
          "values": {
            "click":{"bindTo":"addRow"}
          }
        }
      ]/**SCHEMA_DIFF*/
    };
  });

3. Save your changes and hard-reload the page. Now, you are able to add a new line by clicking plus. 

 

Regards,

Anastasiia

True, but that does not enable adding a new line through a shortcut when in edit mode, which was the original question, that I solved per my answer above.

Show all comments

Hello,

 

I'm having trouble designing a process that is triggered by the deletion of a record. At the moment, the process looks like the screenshot attached. First, I need to read the record that is about to be deleted to find some other ID. Then, I want to start a subprocess that uses this ID. However, this subprocess should only start once the record is actually deleted. How can I accomplish that? At the moment, the subprocess is started before the record is actually deleted and thus isn't working properly.

 

Kind regards

Kai

Like 0

Like

12 comments
Best reply

Kai Wilker,

 

You need to create a process that is connected to the object itself and is connected to the delete event. To do this you need to go to the object settings and click this button:

Once done you will see a process editor where you can create custom script tasks that can process the record. Also the start signal for the process should be catching a message that is generated before or after deleting a record (called CaseDeleting and CaseDeleted in my example above). Please examine base processes from "Case" object in the "Case" package for example so to create your own process.

 

Best regards,

Oscar

Hi Kai, 



You can implement such behavior by using a start signal which has that kind of logic.



Please find the example of a business process which is triggered by record deletion attached.



Thank you.

Bohdan Zdor,

to Kai's point. How can I capture the GUID of the deleted record though? The above process would start once the record is deleted at which point the GUID does not actually exist anymore.

Hi Oliver,



Maybe, this community post will help you on it:



https://community.creatio.com/questions/delete-trigger



Thank you.

Oliver Schmidt,

 

This article outlines how to read the record being deleted in a process: https://customerfx.com/article/working-with-delete-signals-in-a-process…

 

However, keep in mind, if all you need is the ID, you can get that from the signal start.

Ryan

Kai,

If all you need is the ID of the record getting deleted, and not to read the other data of the record getting deleted, then all you need to do is change the start signal to "run in background", then the record will be deleted at that point, and you can get the ID of the record deleted from the start signal. However, you won't be able to read any of the other data of the record deleted since it's gone at that point.

Ryan

Bohdan Zdor,

Thanks for your reply. I'm already using the start signal you described. The problem for me is that I first need to read to record about to be deleted (that is, doing an action before the record is deleted) and afterwards I want to start a subprocess that only works properly after  the record is deleted.

Ryan Farley,

Thanks for your help! I've actually read the the article written by Tate Farley about this, which helped my understanding a lot. Unfortunately I need to more than just the ID of the deleted record, I need to read this record for a last time and find an ID of a connected record. Then however, I want to start a subprocess that should only start once the record is actually deleted. Maybe I could use to onDelete function to that end, as described in the other thread?

Kai Wilker,

 

You need to create a process that is connected to the object itself and is connected to the delete event. To do this you need to go to the object settings and click this button:

Once done you will see a process editor where you can create custom script tasks that can process the record. Also the start signal for the process should be catching a message that is generated before or after deleting a record (called CaseDeleting and CaseDeleted in my example above). Please examine base processes from "Case" object in the "Case" package for example so to create your own process.

 

Best regards,

Oscar

Oscar Dylan,

Thank you for your help! This is exactly what I was looking for.

Ryan Farley,

Thanks Ryan,

 

For me this a headache, so If I uncheck "run in background" for all next purposes the record still exist. I mean if I want to sum all invoice detail records related to the same invoice, I need the get the invoice number, so I need to uncheck "run in background", but later when sum the detail records, the deleted record also is included in the sum, how can I, after get the invoice number, can sum the invoice detail records exluding the deletede one?, I can introduce in the condition "and Id != id of deleted record", but is a more transparent and clear way to do this?

Julio.Falcon_Nodos,

Hi Julio, the only way to do this when you uncheck the "run in background" is to exclude the deleted record Id from the sum (add a filter where the Id != deleted record Id)

Ryan

Ryan Farley,

Thanks Ryan, in this case I will have no info regarding the deleted record, so I'll treat deleted trigger as special case and exclude the deleted record from any calculation on the related table , in this way 

Show all comments
#email
7.16
Sales_Creatio_enterprise_edition

Dear,

When i try to add a specific email address, the system return me the following error:

"This account allready exist. Modifiy email address and try again".

But the email address is not in the list, may be it has been added and delete next, but the email address is not in the creatio email list anymore.

How can i solve this issue please,

Thanks,

Nicolas

Like 0

Like

1 comments

Hello Nicolas,

 

Hope you're doing well.

 

If you are trying to add a new mailbox to the system and you have received the notification which you have mentioned before, it can mean that possibly the other user has already added this email to the system under its own profile. You can check the absence of the needed email by running the next query in your DB:

 

select * from MailboxSyncSettings

 

This query will show you the list of the already connected mailboxes. There you also can check who is the owner of the mailbox by the "SysAdminUnitId" column via the next query:

 

select * from SysAdminUnit where Id='SysAdminUnitId_value_for_the_needed_record'

 

In case when the needed mailbox was already added by other user, you can ask this user to set the shared mailbox (more information about this you can find in this article) if it fits your business tasks or log in under this user and delete the mailbox.

 

Also, you can delete the mailbox from the database using SQL Studio if the instance is on-site or by using SQL Executor if it is a cloud environment. At the same time we do not recommend to delete mailboxes from the application using other way than standard delete procedure from system user profile.

 

Best regards,

Roman

Show all comments
projects
order
7.16
Sales_Creatio_enterprise_edition

Hi,

I would like to add the payment status data within the Financial Indicators tab of the Project detail pages. This will allow our team to easily see information that can help them determine correct responses.

The Opportunity is connected to a Project and the Order, but when I add a 'New Detail' to the Financial Indicators with the following settings, I get no output:

  • Detail - Orders
  • Detail Column - Opportunities
  • Object Column - ID

I have tried other variations, but so far no output. I would be thankful for any guidance on how I can show the following information on this Financial Indicators tab:

Order Number       Payment Status

 

thanks

 

Mark

Like 0

Like

3 comments

Dear Mark,

 

Detail setup has the following logic: 

"Detail" is the name of the detail in the system.

"Caption on the page" is how it will be named on the page.

"Detail column" is an object in your detail that is equal to the current record. If you are adding Contact detail to accounts then you select Account as detail column since each contact has an account and you will see all contacts with Account = Current record when you open this detail. 

"Object column" is a column that specifies what will be shown in detail. Usually, it is ID of the connected record. 

 

Try to apply similar logic to your architecture to see which field to use as "Detail column" - maybe it is missing in the object? 

 

Best regards,

Angela

Hi Angela

 

Thanks for your reply. I have not been able to identify the correct combination to use so far.

 

As the Order is not directly connected to a Project, instead each are connected to the same Opportunity, I concentrated on trying both of these as the Detail, but no success so far.

 

thanks

 

Mark

Mark Roberts,

Then you need to check that records added to detail have needed columns. So that when you add a new record into detail Project, the project must have the same opportunity as in Order. Thy to add Opportunity field in detail to track if is added or not. 

 

Best regards,

Angela

Show all comments