Hi,

I have added the Projects section to the partner portal, but it does not appear on the workplace.

Please help.

Like 0

Like

3 comments

Hi Ricardo,

 

There are some sections that cannot be added to the portal - those that are managed by product licensed. The projects section requires license and since such license doesn't exist for portal users - it will not be possible to add it to the portal.

 

Regards,

Dean

Dean Parrett,

 

Ok. And what about a custom section I have created and added to the partner portal ? why doesn't it show ?

Hi Ricardo, 

 

Projects section is a part of sales functionality and requires sales enterprise license. Anyway it will not work for portal users, only for internal employees.

As for custom section, it depends on multiple factors. 

1. The operation permissions are not active for portal users. 

2. You already reached the limit for adding custom sections on portal. If you user has assigned customer portal or partner portal license - most likely you have more than 3 custom sections already or more than 3 custom objects are added to the lookup list of objects available for portal users.

3. If your portal user uses self service portal license, the section will not be reflected for him. SELF-SERVICE PORTAL doesn't allow adding custom sections.

 

If none of these points fits please approach the support team. It would be necessary to have a closer look what might be the reason.

 

Regards,

Dean

Show all comments

Dear mates,

i have a process recording the Lead in the call page if no contact or no account are find for the call number.

Everything works fine except at the end of the process, the call page is never open.

i allready open a support for this problem, and the support made it works.

Since i modify the process, the page no longer opens.

Did i do something bad before disturbing the support ?

thank you,

Nicolas

Like 0

Like

1 comments

Hello Nicolas,

 

What was the change that you've done? And what do you mean by "the call page is never open"? Does it appear as a notification in the right-side pannel?

 

Thank you for the clarifications!

 

Best regards,

Bogdan

Show all comments

Hi Team,

I couldn't find the SQL Console, which is a very useful tool in marketplace. Is it discontinued?

 

Like 1

Like

5 comments
Best reply

Krishna, 

In the mean time, if you have it in an existing system, you can export the package to install elsewhere.

Ryan 

Hello Krishna, 

 

The SQL Console add-on is currently being refined. Our Marketplace team will publish the application once it is done. Most likely it will become available in the next two weeks. 

 

Please, let us know in case any further information is required. 

 

Best regards,

Olga. 

Krishna, 

In the mean time, if you have it in an existing system, you can export the package to install elsewhere.

Ryan 

Ryan Farley,

Ryan, I was thinking so but was worried if it will work in latest 7.17 version. Have you tried it in new version?

I would recommend creating a trial app that will be 7.17 and installing the package with SQL-executor to it.

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar, will try that.

Show all comments

Hello,

I made an external script that create Leads with oData.

It works fine, each new Lead has an associated  email activity object.

 

The problem is about rights : users can not see the email activity.

The "API" user that create Leads belong to a special group of users, so I tried to delegate read rights of  the Activity object, without success.

 

What to do next, please ?

 

best regards,

Patrice

Like 0

Like

4 comments

Hello Patrice,

 

You can try to distribute access rights by means of the business process after you create records but this is not the perfect scenario. 

It is still better to understand how to distribute access rights right after the records are created and for that please, provide more details on the process. In particular, the connection between Lead and Emal is not very clear. You create Lead by means of API and when and how do you create Activity?

Thank you for the clarification!

 

Best regards, 

Bogdan

hello Bogdan,

thanks for your reply.

Both Lead and email activity are created with the API.

 

best regards

Patrice

Patrice Vigouroux,

 

In this case, you can solve that task by means of the Business Process that will distribute access right for the newly created records of the Activity object. The process should be triggered after a new record (Activity) is added.

 

Best regards,

Bogdan S.

Bogdan Spasibov,

 

 thanks Bogdan, i will try it soon !

Show all comments

Hi Community,

I've some questions about using this business process element "Open Edit Page".

Is it possible to use this element without creating activities behind it? 

I would like to use this element in my process everytime I cancel or create a new record. Is it possible to open a new record page without creating a new activity? 

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro

 

Like 3

Like

3 comments
Best reply

Hi Pedro,

The only other way to achieve this that comes to mind is to add a script task in your process to send a message for the user back to the client. You can see how to do that here: https://customerfx.com/article/sending-a-message-from-server-side-c-to-…

Then, in the client, you'd have to listen for that message, check to see if it is for the current user and then navigate to the record: https://customerfx.com/article/programmatically-navigating-to-a-page-in…

In order for that to work, you'd have to add your code in the client to something that is available in all pages, so you'd add it to something like MainHeaderSchema.

Ryan 

Hi Pedro,

 

Records created in the CTI-panel upon calling the "Open edit page" element are system records and disabling these system records creation is not possible in the current application logic. But we will ask our R&D team so they could add this functionality as an improvement into their functionality development roadmap.

 

Thank you for helping us to make our application better!

 

Best regards.

Oscar

Hi Pedro,

The only other way to achieve this that comes to mind is to add a script task in your process to send a message for the user back to the client. You can see how to do that here: https://customerfx.com/article/sending-a-message-from-server-side-c-to-…

Then, in the client, you'd have to listen for that message, check to see if it is for the current user and then navigate to the record: https://customerfx.com/article/programmatically-navigating-to-a-page-in…

In order for that to work, you'd have to add your code in the client to something that is available in all pages, so you'd add it to something like MainHeaderSchema.

Ryan 

Ryan Farley,

I've tried implementing your solution and it worked. Thank you.

 

Best Regards,

Pedro Pinheiro

Show all comments

Hi Community,

 

I have this situation where I need to excute some process through client side. While executing this process I want to pass a collection of ids to one of the process parameters. These ids are the Quotes that I multi-selected in the image bellow.

Pressing the  "Merge Quote" button will execute the following code.

This code will create a new collection with all the ids selected before and send them to my process. The next image shows the collection created.

I want to know which type of data should I use for my parameter in my process for this type of collection, where can I learn more about these types of collections and its methods and how can I access its values with the various process tasks?

 

For tests purposes I want to display one of the ids using a "Open Popup Window". 

 

Thanks in Advance.

 

Best Regards,

Pedro Pinheiro.

Like 1

Like

1 comments

Hello Pedro,

 

Creatio works with collections if it's needed to process such data but not to display it. You can pass items to sub_process or web_service elements or perform some script_task over it. Please refer to https://academy.creatio.com/docs/user/bpm_tools/business_process_setup/process_collections where this process is described.

 

In case if you want to work with the result of your script that returns a collection as described in your example,  you need to write it in a text string with ";" separator for Id's and then - split it on the next step to parse Id's and reflect them where you want.

 

Best regards,

Bogdan

Show all comments

Dear community,

Using FileApiService, we are able to rename the attachment. This posses a challenge because an attacker can upload any malicious file, even though we have a logic to allow only certain file types to get uploaded.

 

For example, ABC.bat can be renamed as ABC.txt. After uploading this file, the attacker can change the name of file to ABC.bat.

 

We have locked the fields of attchment detail on UI, but it is not much of help if the file is renamed through FileApiService.

 

Any method to restrict renaming using this API would be appreciated.

 

Thanks

 

Like 0

Like

4 comments

Hello Shivani,

 

Unfortunately, there are no methods available that can restrict file renaming. But we are planning to release the filter that will check the file extension directly from the file and not from its name. As a result, there won't be a possibility of changing the filly type by means of renaming.

We will post that information in Release Notes as soon as the feature will be added to the product.

 

Best regards,

Bogdan

Bogdan Spasibov,

 

Thanks Bogdan. Also now that you have mentioned about using file signatures (please correct me if I am wrong), I am curious to know how text and csv files can be checked. The challenge we have with our custom logic to allow only 'whitelisted' file types is that csv and txt files do not have file sigfnatures. Is there a way to verify that the attached file is really csv or txt and not a disguise?

 

Thanks

Shivani Lakshman,

 

We confirmed the information with R&D regarding your request and unfortunately, it's not possible to verify the real extension of the file if it is not specified in the file signature. In this case, the application checks the extension.

 

Best regards,

Bogdan S.

Bogdan Spasibov,

Thanks Bogdan. A possible solution would be to restrict file name change. Once file is uploaded, name change can be prohibited. Hence, a file ABC.bat that has been renamed to ABC.txt to pass filter, can never be renamed to ABC.bat :)

Show all comments

hello Community,

in a process, I'm trying to associate a SocialChannel to a SocialMessage (in an ESNNotification).

The goal is to notify users who subscribed to a socialChannel, when a new message is created.

There is no field related to socialChannel in SocialMessage Entity, so i guess this must use associative table.

I could not figure how it work yet..

Maybe someone can help me figuring things ?

best regards

Patrice

Like 0

Like

2 comments

Hello, Patrice, 

 

there is OOB business process that sends a notification to users when a new comment is posted or a user mention added: ESNNotificationProcess.

Maybe it will fit your need?

 

Best regards,

Daria

Daria Zigulya,

Hello Daria,

thanks for the answer,

i will try to do something with that notification mecanism, it may be good enough.



best regards

Patrice

Show all comments

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

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