Hello,



I have a requirement to bind Organizational Roles to the package. I have come across some similar questions on academy and found that we can use SQL script to perform the same. Could someone please help with this if they are familiar with this approach or have done this activity previously. Thank you

Like 2

Like

2 comments

Hello,

 

Thank you for your question. 

 

Please, note that it's not recommended to bind users, organizational structure, roles, licenses, and other administrative things to a package. It will be very hard to handle that if you decide to install that package after the moment when the client adjusts that administrative things according to his or her needs directly on the production.

 

Unfortunately, there is no script we could provide you with but in case you decide to bind this data and transfer it to another environment we suggest checking all changes on the copies before delivering it to the production websites. The organizational structure is in the "SysAdminUnit" and "SysAdminUnitInRole" tables and you are right, it's possible to bind it to the package via SQL scripts only.

 

Best regards,

Anastasiia

We usualy do the following:



Create separate package for Roles

1. Add Data for SysAdminUnit 

2. Add Data for SysUserInRole



Before you install the package

Switch off trigger TRSysAdminUnitRoot in table SysAdminUnit (otherwise it will block adding new roles)



Install the package

 

Switch on trigger TRSysAdminUnitRoot in table SysAdminUnit



And always remember, that deleting of data cannot be transfered without SQL script

Show all comments

Dear colleagues,

 

I'm getting from a week ago a "Request Timeout" each time I try to bind some data on a demo site.

 

I did it before, but from a week ago, I cannot anymore, some ideas?

 

See it on https://share.vidyard.com/watch/dpoVmZuUhAHbSS6NzaSnuj?

 

It's on Studio Enterprise 7.18, the version list isn't updated

 

Thank you very much

Like 0

Like

2 comments

Hello Julio,

 

The responsible team is working to fix this. The error appears due to the changes in the basic functionality in version 7.18.3. We plan to publish the updated package no later than the end of October.

Alexander Demidov,

Thank you very much @Alexander! :-)

 

Best regards

Show all comments

<>

 

Hi All,

 

Facing this issue whenever we add a custom lookup field (could have/not have default value) in our dev instance and deploy it as package to Test instance. The section objects restricts the creation of record and thus throwing this error message as attached here. Once we re-publish the object, the data reference error is no more. But ideally when we move any package from dev to QA, this publish is literally adding few schemas to the folder which is not the correct way.

An additional observation is this occurs only when we receive "DataStreamError" while updating package from SourceTree.

So kindly suggest on how to handle this. 

 

We use SourceTree and Azure Devops Repositoy to push our code.

 

Package version - 7.18.0.1350_SalesEnterprise_Marketing_ServiceEnterprise_Linux_Softkey_PostgreSQL_ENU_NetCore.zip

Platform - DotNetCore

Database - PostGres

OS  - Windows

 

Appreciate your input.

 

Thanks

Anupama

Like 0

Like

4 comments

Hi Anupama,

 

DataStreamError can be a result of a connection loss between the app and repository and as a result not all the changes are being transferred. Can you please specify what happens if you export the package from the dev-app and import it to the target app using standard package export\import?

 

Best regards,

Oscar

Oscar Dylan,

 

Yes, even when we do standard Package import, receiving the data stream error. Basically in two scenarios we are experiencing this:

1. While updating package from SourceTree 

2. While installing a plugin

 

Anupama,

 

Please provide us with the detailed step-by-step instruction on how can we reproduce the same issue in the local app and we will check it.

 

Best regards,

Oscar

 Oscar Dylan,

 

It is reproducible in two scenarios:

  1. When we deploy and update package in a new instance/environment-
    1. we use Git and SourceTree for source control.  when we clone the repository and update the package, we get the attached error<StreamError.jpg>.
  2. While installing any marketplace plugin in existing instance
    1. installation fails and in the error log the same error message is captured

      <<uploaded the error logs in the main section>>

 

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

   I want to data bind the access rights of a sectional dashboard. I tried data binding the sysdashboard object of the particular section and exported the package. I then installed the package in another instance and found that the access rights were set to default. 

 

Please let me know if there is any method to data bind the access rights.

 

Thanks and Regards,

B ASHOK KUMAR

Like 0

Like

1 comments
Best reply

Hello!

 

Unfortunately, there is no basic way to import/export access rights from the system since it is a complicated mechanism and it cannot be extracted from the system easily. You can use custom SQL scripts in the package in order to transfer such information. Below you can find tables that store information about access rights:

  1. Sys[SectionName]Rights
  2. SysEntitySchemaColumnRight
  3. SysEntitySchemaOperationRight

Since it is a complicated task we suggest using the Marketplace application which can ease access rights setup: https://marketplace.creatio.com/app/access-rights-setup-wizard-creatio

 

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

 

Best regards,

Olga. 

Hello!

 

Unfortunately, there is no basic way to import/export access rights from the system since it is a complicated mechanism and it cannot be extracted from the system easily. You can use custom SQL scripts in the package in order to transfer such information. Below you can find tables that store information about access rights:

  1. Sys[SectionName]Rights
  2. SysEntitySchemaColumnRight
  3. SysEntitySchemaOperationRight

Since it is a complicated task we suggest using the Marketplace application which can ease access rights setup: https://marketplace.creatio.com/app/access-rights-setup-wizard-creatio

 

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

 

Best regards,

Olga. 

Show all comments

Hi Community,

I want to bind the access rights of a dashboard of a particular section. I tried databinding sysdashboard object with the filter for a particular section and exported the package. I then imported the package to another instance and found that the access rights were reset to defaults.

 

Please help me on how to bind the access rights data of a sectional dashboard.

Like 1

Like

0 comments
Show all comments

Is it safe/supported to delete all data in the SysProfileData table where the ContactId is populated?

 

We want to deploy default column setups across the board into environments where users may have set them up, which isn't possible without removing their custom column setups from this table. The simplest way I can think to do this would be to delete all SysProfileData records where ContactId is populated (i.e. they are user customisations) but wanted to check this would be safe.

Like 1

Like

3 comments

Dear Harvey, 



Theoretically, it's possible. 

However, we recommend you to contact Creatio support team and request a DB backup of your website if it's deployed in cloud and carefully test it on the copy of the website before making any changes to actual production. 



Kind regards,

Roman

Hi Roman, is there a better/recommended way to reset all users' column bindings back to the defaults in an environment?  Also, what are the risks involved around doing this? I understand that users' applied filters for each Section are also stored in this table - what other data is stored there which could cause a problem if it were deleted?

 

Thanks

Any changes on this/better way of resetting all default list settings for users since this was posted? This is a frequent need.

Show all comments

Hi;

When I want to create a data I got an error

Data is not bound for connected package ...

have you met such problem?

what can cause it?

 

regards

Tomek

Like 0

Like

2 comments

Hi Tomek,

 

Can you please provide us with more details on the data that you are creating? How do you do this, please provide us with steps to reproduce the message? In which package do you try to save the data? Can you please provide us with the screenshot of the error?

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oskar 

I think i found the problem.

I use lookup reference in Data and main table was not transfer by data as well.

So thing thats a problem.

 

I transfer the data by script by codes.

thanks for help

 

Regasrds

Tomek

Show all comments

Hi Community!

 

as there is no out-of-the-box way of deploying permissions from one system to another, I'm currently trying to achieve this via SQL.

 

I'm able to add a static SQL script to the package and it will be executed fine on the target system. My problem is that the content of the SQL script is not static. I have to execute an SQL script in the source system to get all the information about the current permission setup and then use these results to build the update/insert statements for the target system.

 

Did anyone try to accompish this before?

 

Thanks for any hints!

Like 0

Like

5 comments

Dear Robert,

 

Organization Roles can be transferred only by SQL scripts. Functional roles are transferred by binding data of the System administration object. The rights to existing records should be transferred via scripts as well. To distribute rights to new records you can either set up a business process or configure object permission directly on the production environment.

 

Best regards,

Angela

Angela Reyes writes:

Dear Robert,

Organization Roles can be transferred only by SQL scripts. Functional roles are transferred by binding data of the System administration object. The rights to existing records should be transferred via scripts as well. To distribute rights to new records you can either set up a business process or configure object permission directly on the production environment.

Best regards,

Angela

Thanks Angela!

 

But the question is how can I transfer the definition of the permissions, without rewriting the SQL script over and over again?

Is the following procedure the only way?

  1. Select the current permissions manually with SQL

    the tables are:

    1. SysEntitySchemaOperationRight for object permissions
    2. SysEntitySchemaRecordDefRight for record permissions
    3. SysEntitySchemaColumnRight for column permissions
  2. transform the result to and insert/update statement
  3. save those scripts in the package SQL section
  4. export/import package

And do I have to/am I allowed to truncate those 3 tables first?

Is there a stored procedure that applies the new permissions on the target systems' records?

 

Thanks a lot and best regards

Robert Pordes,

Your description is almost correct. Please see all steps:

1. Create scrip for update/ insert records from SysAdminUnit table to use these records in the next steps

2. Select the current permissions manually from SQL the tables:

2.1 SysEntitySchemaOperationRight for object permissions

2.2 SysEntitySchemaRecordDefRight for record permissions

2.3 SysEntitySchemaColumnRight for column permissions

2.4 Also there are tables like Sys{ObjectName}Right (e.g. SysAccountRight) in which record rights are stored, so you should create script for each object. 

3. Transform the result to and insert/update statement

4. save those scripts in the package SQL section

5. export/import package

 

Best regards,

Angela

Hi Angela,

thanks, but aren't the tables Sys{ObjectName}Right storing the applied rights (they will be populated by clicking "update record permissions", correct?). If I create scripts on eg DEV system, the data will not be the same! I mean we will definitely have different eg. account and contact records on dev/test/prod system.

That's exactly why I asked this in my previous post: 

Is there a stored procedure that applies the new permissions on the target systems' records?

 

Thanks,

Robert

Robert Pordes,

There is no stored procedure. This is why I suggested workarounds like

binding data and business processes.

 

Best regards,

Angela

Show all comments

Recently looking at using the Data Binding Tool on the marketplace ( https://marketplace.creatio.com/app/data-binding-tool ) to make binding Section List and Detail column setups easier, but it appears that you can bind column setups for the same Section List and Culture multiple times for the same package. This isn't possible when binding column setups normally, as you get a validation error which prevents the saving of the data binding due to the record already being bound in another data binding. Is this a defect? Does anyone know what will happen if this duplicate data binding is imported into another environment? Presumably one will be installed before the other, so you may end up with the old data binding if it happens to be installed last.

Like 0

Like

4 comments

Hi Harvey,

 

I have also faced the same issue and as far as I know, this does lead to problems.

 

We therefore only use the data-binding tool to make the creation of the bindings easier. When changing bound data, we go to the data tab in the package and open and save it to update its contents. 

Renaming the created data bindings to something more meaningful than the GUID also helps to identify them again.

 

Hope this helps!

 

Bes regards,

Robert

Hello Harvey,

 

You can check duplicates after saving a data binding. When the "Data was bound successfully" message pops up, click "View details" and save the data binding once again. If the binding holds any duplicates, a standard validation page opens.

 

I have forwarded your suggestion regarding the check for duplicates to the responsible developer team.

Thanks for the reply Andre, that sounds like a useful best-practice to follow when using the tool then. It would be very helpful if the tool itself were able to pass on such errors automatically, but I can see that programmatically checking whether data has been bound twice would be quite difficult! It would be a real benefit to the tool if it could be done, however.

Hello Harvey,

 

Creatio developers are currently migrating the basic data binding functionality to the new UI. The team responsible for the "Data binding tool" add-on will consider possible functionality improvements after the release of Creatio version 7.17. Due to UI framework migration, any new improvements that they make right now can be rendered obsolete in the new release.

 

Thank you!

Show all comments