How to design new data transformation and Run/integrate Anatella in our company?


New member
Hi I have 3 questions

1/ How to design some new Data Transformations inside Anatella?
2/ How to run an Anatella Data Transformation?
3/ How to integrate Anatella inside our company's App?


Staff member
Hello Jerome

1/ How to design some new Data Transformations inside Anatella?

Typically, to design new data transformations (i.e. to design a new .anatella file), you can use:
  • Anatella installed locally on your laptop.
  • Anatella installed on a remote server and you access the remote server using RDP (this is what you saw inside the documentation).
  • Anatella installed on a remote server and you access the remote server using HTTPS. This last option is pretty new (since July 2022).

    2/ How to run an Anatella Data Transformation?
Once you have finished designing your data transformation (i.e. once you have your .anatella file), then you can execute it in many different ways. At this point, you don't need any graphical environment to run the graph (no RDP required, no MS. Windows required). For example, you can start Anatella using a cURL command (i.e. in other words: you do an "API call" to a webservice) or even use a text-based SSH command to a Linux server.

Here are some examples of different possibilities: You can execute Anatella:
  • using Jenkins: See section 4.8.4. from the AnatellaQuickGuide.pdf for more details about the integration between Anatella and Jenkins: Basically, with a few mouse clicks you can add inside Jenkins a new Anatella-based job. This is mainly useful for scheduling Anatella graphs, but also to create a simple Anatella-powered web service.
  • using the command-line interface. This allows it to run Anatella from any language. The command-line interface is documented inside section 4.7. of the AnatellaQuickGuide.pdf (press F1 to read this PDF). See also section 10.8.3. to have an example of how to call Anatella from PHP to create a very advanced web service (to create advanced API calls).
  • using the command-line interface under Linux (using Wine). For more details about this subject see section 4.10. of the AnatellaQuickGuide.pdf.
  • As you can see, there are plenty of solutions available to you to run your Anatella Graphs. Also, the .anatella file format is open and quite easy to understand so that you can generate some custom data transformation (i.e. some .anatella file) "on the fly" using a little bit of Python/VBA/PHP code, for example. We already have a few customers doing that.

3/ How to integrate Anatella inside the Deloitte App?

There are, basically, two different options:
  • Option 1
Anatella is installed on its own server which is different from the server that is running your company's app.

Jenkins is installed inside the same server as the Anatella server (see section 4.8.2. of the AnatellaQuickGuide.pdf for the procedure on how to install Jenkins). Then, your application makes a simple cURL call (i.e. an "API call") to Jenkins to run Anatella. Your "API call" will look something like this:
curl https://<ip of Jenkins>/buildByToken/buildWithParameters?token=Secure-Token&job=TestJob&my_GP_Name=the_GP_Value
There are many websites that are documenting how to run a Jenkins job using a simple API call.
You should also know that Jenkins can monitor directories and execute Anatella when a new file appears. This might be the simplest option, depending on your exact needs.

  • Option 2
Anatella is installed on the same server that is running your company's app.
This means that you can call/execute Anatella using its straightforward command-line interface.
The advantages over "option 1" are:
* much simpler infrastructure to maintain: only 1 machine, no Jenkins needed, no Java Virtual Machine needed. This makes things much easier to debug and deploy. This is ideal for the first version.
* better response time: i.e. For "option 1", at each Anatella execution, you must run a cURL command and it takes time (i.e. establishing a new web connection takes a few hundred milliseconds), so if you want the "snappiest/best" response time, it's usually better to avoid "API calls" and use the command-line interface.

My advice to you is that you should start with "Option 2" to get some results quickly.