Hello, Community 



We have requirement to generate Report in pdf format.

I have searched also connect with the Creatio support team. And I found Marketplace Application as link below.

https://marketplace.creatio.com/app/asposepdf-connector-creatio 

 

But unfortunately to use this on  big scale we need to buy Subscription.

 

So I want to know there is any other way to achieve our goal? Like development or creating custom script to generate to convert Docx to PDF.



If there is please do let me know.

Like 2

Like

7 comments

Hello Meet!

 

Unfortunately, this marketplace feature is available only via subscriptions. This tool is the only one that can provide PDF export without any development required.

 

The second option that we can recommend is setting up Fast Reports. Please navigate by this link below. In addition, please note that setting up Fast Reports requires minimum development skills.

 

https://academy.creatio.com/documents/technic-sdk/7-15/setting-reports-…

 

Hope this helps!

 

Thank you! 

Hi Danyil,

 

Please don't take this the wrong way, but this is clearly one of the few features that Creatio has "desaccelareted".

 

There was relatively simple way to implement this with the "convert to PDF" option.

 

We have won projects were we assumed that this feature would be available and after several requests from many users it is still not implemented.

 

Fast reports has a really long learning curve and the effort cannot be compared to the simple convert to pdf feature that was available before.

 

 There is still and open answer from Oscar Feb 2020 on this thread:

https://community.creatio.com/questions/convert-pdf

 

"Currently our R&D team is working on implementation of this feature in an out-of-the-box version and we hope that it will return back very soon. We are very sorry for any inconveniences caused."

 

Do you have an ETA for this? is it still in the development pipeline?

 

Thanks

Luis

Since 2019 this feature was removed from Creatio. It is an urgent MUST HAVE!

Hello Luis Tinoco Azevedo,

 

Please be advised that starting from version 7.14.2, the ability to download printable forms in PDF format has been excluded from Creatio.



Please note that customers who are upgrading from previous versions of Creatio which had Aspose components in their system available will have the print to PDF feature working as before.



Our R&D team is informed on this case and they are doing their best to ensure that the upload forms in PDF format will be present in future releases.

I am sorry to say, but I have no possible ETA on this feature being implemented in future updates.



As a workaround, for those users, who need the information from the forms un-editable for other users upon download, I may recommend a printable Word template with limited access using a password to perform changes to the file.

This will ensure that no one would be able to change the Word file without knowing the password.



I hope this helps!

Thank you for your questions, 

Have a great day!

Hi Danyil,

 

Thanks for the reply and the sugestion on the word with password workaround but unfortunately it does not help a lot.

The expectation from our customers is to have this "basic" feature on the core of the product and not throw some paid add-on.

And our expectation, taking in to consideration that there thread going back one year ago that this is in the development pipeline, is that this feature would be available by now.

So please, I have to insist, what is the expectation for this feature to be implemented? We really need a concrete answer.

 

Thanks,

Luis

Luis Tinoco Azevedo,

Thank you for your sincere concerns regarding this matter!



Please note that Creatio had to remove the 'generate to PDF' feature from the platform as the Aspose library is provided only via subscriptions.

 

I have contacted our Product Owner questioning the implementation`s ETA of this feature. 



Please be informed that this process is of great concern on our end and it is currently in development. I would be able to provide the exact ETA in several weeks.



Thank you for your comprehension!

Hope you have a great day!

Danyil

Thanks for the feedback and for checking, I'll be looking forward to hearing some positive news from your side.

 

Cheers,

Luis

Show all comments

Hello all,

 

How can I modify the page layout of a detail that isn't also a section within the Creatio mobile app? I only get the option to change how it's connected to a page. 

I need to be able to change the fields that are shown but the embedded detail won't do the trick because it's not clear on when one detail record ends and the next begins.

 

Thanks in advance for your help.

Like 0

Like

1 comments

Hello Kevin,

 

It is necessary to go to the section Page Setup, scroll down to New button, select Embedded detail option, add your detail and hit New column to add required fields. You can also the fields them in the required order there. 

 

Regards,

Dean

Show all comments

Hi Community,

 

We wanted to customize the case edit page and section in portal. Where we can modify it? Is there available section wizard? What are the client schema?

 

Thanks

Like 0

Like

1 comments

Hello Fulgen,

 

Thank you for your question!

 

Please note that the portal user cannot access the functions of the page-, detail- and section wizards. These functions can be accessed from the main system interface with administrator permissions in the following way:

  1. Enter the [ Workplace setup ] section in the system designer.
  2. Select the [ Portal ] workplace and click the [ Open ] button.
  3. Select the required section and click the [ Section wizard ] button.

The standard section wizard will open.



You may read more about the Self-service portal by the following link:

https://academy.creatio.com/docs/developer/elements_and_components/self…

 

Hope this helps!

 

Danyil

Show all comments

Hi Community,

 

I have created a new workplace in our development system. Now I wanted to transfer this new workplace in our production system. What are the objects I need to consider in Data Binding?

 

Thank you

Like 0

Like

3 comments

Hi Fulgen!



Thank you for your question!



In this case, we would recommend you binding the data with the packages. You may read more on how to bind the data here (the link is clickable) and here (the link is clickable).



Please note that the schemas you ought to bind are: SysSchema & SysWorkplace with your package.

 

Hope this helps.

In case you have any other questions, please, feel free to contact us!



Ivanna.

 

Ivanna Yatsura,

Please, can you explain why we need to bind SysSchema? 

Jahnavi,



Data binding is a process that ensures the developed functionality is transferred correctly between environments. When you bind SysSchema, you are essentially ensuring that the schema (the structure of your data) is correctly transferred and maintained in the new environment



Regards,

Orkhan

Show all comments

Hi Community,

 

I have created a POST API which accepts class object as parameter. Below is my code.

 

 

When I tested my API using Postman, I am getting Object Reference Error.

 

 

Any idea, what's wrong with my code? In academy I cannot find any example of configuration service which accepts class object as parameter.

 

Thank you so much

Like 0

Like

4 comments

Hi Fulgen,

 

It usually means that the problem is somewhere with the UserConnection. Can you please also check the application logs at the moment of issue reproduce? Maybe they contain more information on this topic?

 

Best regards,

Oscar

Fulgen,

You also need to add the [DataContract] attribute to the class you're passing/returning (the ActivityRequest and Activity classes) 

Ryan

Ryan Farley,

 Hi Ryan, Thank you for your reply.

 

I tried to put [DataContract] and [DataMember] attribute on my object classes but still the same error I am getting. 

Fulgen Ninofranco,

Fulgen, I believe your issue is how you're passing the body to the service. Since the method takes a single parameter named "activityRequest" which is an object, the body should look like this:

{
    "activityRequest": {
        "DepartmentId": "the id here",
        "StatusId": "the id here"
    }
}

This way, the parameter of activityRequest will be filled with the object containing the two values of DepartmentId and StatusId. The way you're passing the body in now, it is assuming there are two parameters, one named DepartmentId and one named StatusId, so when you try to use the activityRequest properties the object is null.

Ryan

Show all comments

Hi-

I have a text field that contains a unique number in contacts- and I have a problem where we should only have that number once in our system. I need to prevent my users from creating duplicates when they save new contacts. 

Can I do that in a business rule?

Or what would that look like in a business process?

Like 0

Like

3 comments

In a process, it's really too late for validation. The best way is to accomplish this via programming. You can use the asyncValidate method for this type of task. I have an article here that shows how to use it and even uses a sample scenario that is similar to yours (the sample code in the article shows how to ensure that an opportunity has a unique job number).

https://customerfx.com/article/asynchonous-validation-on-pages-in-creatio-formerly-bpmonline/

You should be able to use the code in the article with minimal changes to accomplish what you're after.

Ryan

Thank Ryan- And I would just paste this into my source code in contacts? Does it matter where in the code I paste it? I can see where I would put in my own info and sub in my object names- but as a non-coder, I want to make sure I add the code in the correct location. 

Heather Mahley,

This would go into the methods block in the page code. Since you're not familiar with writing code, I'd copy and save all the page code first to revert back to if needed. Also, feel free to post the code with the addition here before saving it and I'll take a look to make sure its all in the right place.

Ryan

Show all comments

Hi Community,

I have this situation where I need to update all the AccountAddress records that belong to my Account and have ImdNumerador "0". In order to do that I added the following query:

var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
	rootSchemaName: "AccountAddress"
});
 
var firstFilter = updateQuery.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id")); 
 
var secondFilter = updateQuery.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "ImdNumerador", 0); 
 
// Filters will be updated by AND logical operator in query filters collection. 
updateQuery.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
 
// Adding created filters to collection. 
updateQuery.filters.add("firstFilter", firstFilter);
updateQuery.filters.add("secondFilter", secondFilter);
 
updateQuery.setParameterValue("Primary", false, this.Terrasoft.DataValueType.BOOLEAN); 
updateQuery.setParameterValue("IsInactive", true, this.Terrasoft.DataValueType.BOOLEAN); 
 
updateQuery.execute(function(result){ 
	if(result.success){
		window.console.log("Update Successfull");
	}
},this);

This query is executed everytime I press a button that I've created in AccountPageV2.js.

When I execute this query I get the error bellow:

I'm not understanding this error because:

  • I don't have any validation or rule for my Country field, so this must be a rule that comes with the default Creatio applications.
  • All the records that I'm trying to update have the country field filled in, so I don't know why I'm getting this.

I would like to know why this is happening and how can I fix it.

Thanks in advance.

 

Best Regards,

Pedro Pinheiro

 

Like 0

Like

1 comments

Hi Pedro,

 

The same code connected to the button on our side worked perfectly:

Try opening all the account addresses records for the account where the update error message is returned, try applying any change to each of those addresses records and check if any of them returns an error (one of them or several records should return an error). Once the error is received you can send a screenshot of such an address record and we can check why the error is received together.

 

Best regards,

Oscar

Show all comments

Changes on attributes dependencies are not being triggered on my detail edit page. Any reason for that ?

regards,

Like 0

Like

1 comments

Ricardo,

 

It's really hard to understand the issue completely without the code of the detail edit page and without the logic that the code represents. Can you please provide us with it?

 

Best regards,

Oscar

Show all comments

Hi Community,

 

In the update guide (https://academy.creatio.com/docs/release/update-guide/update-guide#titl…), there are sets of scripts needs to be executed before proceeding to the upgrade. But in the guide they only specified MSSQL and PostgreSQL scripts they have not given a script for Oracle. Any idea what is the counterpart of the below  scripts in Oracle. Thank you so much.

 

Before updating to version 7.15.3

{

declare @val as varchar(max) = ''

select @val = concat(@val, SchemaName, ', ')

from

(select SysSchema.Name as SchemaName

from SysSchemaContent with (nolock)

inner join SysSchema with(nolock) on SysSchemaContent.SysSchemaId = SysSchema.Id

inner join SysPackage with(nolock) on SysSchema.SysPackageId = SysPackage.Id

where

SysPackage.Maintainer != 'Terrasoft' and

SysSchema.ManagerName in ('EntitySchemaManager', 'PageSchemaManager',

'ProcessSchemaManager', 'ProcessUserTaskSchemaManager', 'SourceCodeSchemaManager') and

(

cast(SysSchemaContent.Content as varchar(max)) like '%Terrasoft.Reports%' or

cast(SysSchemaContent.Content as varchar(max)) like '%ReportSchemaManager%'

)

union

select SysSchema.Name as SchemaName

from SysSchema with(nolock)

inner join SysPackage with(nolock) on SysSchema.SysPackageId = SysPackage.Id

where

SysPackage.Maintainer != 'Terrasoft' and

SysSchema.ManagerName in ('EntitySchemaManager', 'PageSchemaManager',

'ProcessSchemaManager', 'ProcessUserTaskSchemaManager', 'SourceCodeSchemaManager') and

(

cast(SysSchema.MetaData as varchar(max)) like '%Terrasoft.Reports%' or

cast(SysSchema.MetaData as varchar(max)) like '%ReportSchemaManager%'

)

) as contentList

select DB_NAME(), @val as SchemaContent

}

 

Updating to 7.16.1

SELECT SysSchema.Name AS SchemaName FROM SysSchema (NOLOCK)

WHERE SysSchema.Id IN (

SELECT SysSchemaId FROM SysSchemaSource

WHERE SysSchemaId IN (

SELECT

ss.Id

FROM SysSchema ss WITH (NOLOCK)

INNER JOIN SysPackage sp WITH (NOLOCK) ON ss.SysPackageId = sp.Id

WHERE sp.Name NOT IN ('Base', 'ProcessDesigner', 'NUI', 'SSP')

AND sp.Maintainer != 'Terrasoft'

AND ss.ManagerName NOT IN ('ClientUnitSchemaManager', 'DcmSchemaManager', 'PageSchemaManager')

)

AND (Source LIKE '%MailBe%' OR (Source like '%SmtpClient%' AND Source like '%Terrasoft.Mail%'))

)

 

Like 0

Like

1 comments

Hello Fulgen,

 

Our apologies for the delay in responding!

 

The required scripts for Oracle are ready.

  • The Before updating to version 7.15.3 script is available below. It will be added to the update guide shortly.
  • begin
    	declare
    		v_val VARCHAR2(4000) := '';
    	begin
    		EXECUTE IMMEDIATE 'CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB)
    		RETURN CLOB
    		AS
    			 v_clob CLOB;
    			 v_varchar VARCHAR2(32767);
    			 v_start PLS_INTEGER := 1;
    			 v_buffer PLS_INTEGER := 32767;
    		BEGIN
    			IF blob_in IS NULL THEN
    				RETURN NULL;
    			END IF;
    			 DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
     
    			 FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer)
    			 LOOP
     
    				v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
    				DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
    				v_start := v_start + v_buffer;
    			 END LOOP;
    			RETURN v_clob;
    		END blob_to_clob;';
     
    		select v_val = concat(concat(v_val, ','), "SchemaName") into v_val
    		from(
    			select "SysSchema"."Name" as "SchemaName"
    			from "SysSchemaContent"
    			inner join "SysSchema" on "SysSchemaContent"."SysSchemaId" = "SysSchema"."Id"
    			inner join "SysPackage" on "SysSchema"."SysPackageId" = "SysPackage"."Id"
    			where
    				"SysPackage"."Maintainer" != 'Terrasoft' and
    				"SysSchema"."ManagerName" in (
    					'EntitySchemaManager',
    					'PageSchemaManager',
    					'ProcessSchemaManager',
    					'ProcessUserTaskSchemaManager',
    					'SourceCodeSchemaManager') and
    				(blob_to_clob("SysSchemaContent"."Content") LIKE '%Terrasoft.Reports%' or
    				 blob_to_clob("SysSchemaContent"."Content") LIKE '%ReportSchemaManager%')
    		union
    		select "SysSchema"."Name" as "SchemaName"
    		from "SysSchema"
    		inner join "SysPackage" on "SysSchema"."SysPackageId" = "SysPackage"."Id"
    		where
    			"SysPackage"."Maintainer" != 'Terrasoft' and
    			"SysSchema"."ManagerName" in (
    				'EntitySchemaManager',
    				'PageSchemaManager',
    				'ProcessSchemaManager',
    				'ProcessUserTaskSchemaManager',
    				'SourceCodeSchemaManager') and
    			(blob_to_clob("SysSchema"."MetaData") LIKE '%Terrasoft.Reports%' or
    			 blob_to_clob("SysSchema"."MetaData") LIKE '%ReportSchemaManager%')
    		);
    	end;
    end;

     

  • The Updating to 7.16.1 and 7.16.2 script is available in the Academy article.

Best regards, 

Olga. 

Show all comments

I've seen this post,

https://community.creatio.com/articles/how-can-i-change-detail-caption-depending-page

Is it possible to use the same logic to change the detail columns captions too (depending on the page) ?

(binding the detail column caption to a property works when I open a detail row for edition, but we need it to happen when the detail is shown on the object edit page)

Like 0

Like

1 comments

Hi Ricardo,

 

The logic that forms the name of the columns in the Grid is stored in the SysPorfileData table and the actual ObjectData column value is formed using base addProfileColumns method (that is a part of Profile that consists of tiledConfig (config for tiled columns display) and listedConfig (listed columns display config)). Modifying the base logic will be hard (either overriding addProfileColumns and modifying configs or creating a trigger on the database level that will update the SysPorfileData table for the detail grid setup). We don't recommend modifying the logic and recommend using multiple edit pages and setup detail column names separately in different pages.

 

Best regards,

Oscar

Show all comments