Version control best practice

Dear all,

I started new DCP project from this month.
I installed Process connector and Analyses from App store then modified some of Vertica SQL in transformation, and PQL in the analysis.
After some changes, I found that I am not confident which code I modified.
Referring to SAP ABAP or Java or some other languages, we normally can use version control tools, like Git, Subversion, that can manage who and when code is committed, which part of code was changed (before/after).

In Celonis Project how to manage source code version ? Do you have your best practices ?

Best regards,
Kazuhiko

1 Like

Dear Kazuhiko,

There is currently no source code management in the IBC which offers rolling back the most recent changes in an PQL / Vertica SQL besides the CTRL + Z when working directly in the code.

Best practice would be to have a stable and development environment and only rolling out (overwriting) the stable environment once the development code / analysis is tested for functionality. This way all the changes can be tracked by comparing the stable to the development code. For Vertica SQL code this is easily achieved by working with templates to copy transformations / extractions from one place to another. In the analysis environment just have two workspaces (Production & Development) and move the analyses between them by right clicking them --> move to.

Best Regards,

Benedict

Dear Benedict,

Thanks for your advice.

As long term solution, I would like to add source code management to your backlog.

AS short term solution, I understand your opinion how to manage Analyses. On the other hand, regarding Transformation and Extraction in Event collection, I am not clear how to handle versions by template you mentioned. In my understanding, template is created to share same version with another connection (SAP instance etc.).

Exporting sql file from Transformation is one of the workaround to manage version, but it takes a lot of effort and I cannot force my colleagues to do it.

1 Like

Hey Kazuhiko,

Best would be to ask for it by writing and submitting an official feature request!

By handling versions with templates I mean that you develop your transformations / extractions in a normal data jobs, let’s say “MyDatajob_v1”. When you are ready to publish it, you make it a template, publish it. Then you start working on a new template e.g. “MyDatajob_v2_BETA” and again make it a template when it’s ready to be published. This way you can develop a template while having a stable version in another and just overwrite them manually.

Best Regards,

Benedict

Dear Benedict,

I understand that data job (including extraction/transformation) is duplicated and rename it as new version.

Thanks.