Introducing myself

Hello Metasfresh Devs

My name is Wellington, i am diving in Metasfresh and learning a lot already.
My goal in this topic is introducing my background to help you answer a lot of future questions.

I am a Brazilian developer 20 years working a local ERP developed in a proprietary language by a local company.
In the last 3 years i am looking to work with another tools. I tried, Android, and now Java/Srping.
I have mastered along my career Linux and SQL.
I have a very good understanding about ERP systems.

Now i am studying all documentations to contribute to Metasfresh.

My main goal is practice the concepts i have been studying (Spring / Java / design patterns / docker / system architecture ) but master all the satellite tools too (maven)
I have looked all the nice tools you are using and i never knew until now like lombok, partainer, jenkings. Your code styles and patterns for eclipse. I looked the structure of your maven project, SQL modeling/tables. Installed Metasfresh using docker and test it.

Now i will look for issues that i may help with. If you can point me out some of then i will appreciate it.

My second goal is find a good ERP system to bring to Brazil. The thing is, i know some companies unhappy with the local ERP systems, so if in the process learning Metasfresh feels it will fit in this companies, i am willing to do migration tools to import data from the local ERP system, and APIs to both ERPs exchange data to fulfill our local laws using the legacy ERP.
To start, i should provide a way to translate Metasfresh system to pt_BR. For that, i looked the menus, and fields names are stored in Postgres. Am i Right? I looked for the column ad_language in all tables to get the idea.

I am thinking to develop a tool to use google translator to translate the data and create a new translation pt_BR. But this tool would be useful to translate to any language using google translate.

What do you think this idea?

I have a lot more questions but for now i appreciate your time for reading and answering.

ps* I am need to practice my english writing too, so if it isn’t asking too much, point me out errors i may doing.

Wellington

2 Likes

Hi Wellington,
welcome to our metasfresh community! Great to read that you want to dive into migration, translation & development of metasfresh.

I am thinking to develop a tool to use google translator to translate the data and create a new translation pt_BR. But this tool would be useful to translate to any language using google translate.

Could be a nice first step and then check how the result looks like. Our experiences in past shows that translations that have been done via tools often don’t bring the best results for business software like ours.

Mark

Hey Wellington,

welcome! :smile:

As a starting point for translation:
we are using the queries from http://docs.metasfresh.org/pages/sql/index_en => paragraph “translation”
to export the translations to excel or similar.
Then we translate them and import them via update statements.

The sqls are only exporting those elements which are actually needed and reduce the amount of stuff to be translated because as mark already pointed out its a difficult field for automated translations.

Looking forward to your engagement!

Norbert

I am thinking to find small issues to fix it and getting familiar with the process to deploy to test and get to know how the things are done. Baby steps.

By the way, do we have a roadmap?

Hey Norbert !

I will do my best.

Are you using update statements because someone already created all rows with the translation en_US, right?
So looks like i will need insert new rows for pt_BR then.

Like Mark pointed out, using automatic tools for translation is not the best, but i think is not the worst path too. Do corrections is easier than do all the work.

I will export the data in a csv to understand what you are talking about.

Hi Wellington,

Procedure use:

  1. go to window system and make BR a system language. In this sample its zh_CN
    which is doing basically:

UPDATE AD_Language SET IsSystemLanguage='Y',isactive='Y' WHERE AD_Language='zh_CN;

  1. then run process for adding trl records

in all trl tables a record with language BR will be added.
When you have translated the stuff from en_US you import it back to the BR records.

e.g.

    update ad_field_trl
    set name = data.ftrl_name_zh_cn::VARCHAR(60)
        from (
          SELECT
            trl.window_name,
            trl.tab_name,
            trl.columnname,
            trl.ad_element_id,
            trl.ftrl_name_zh_cn,
            wtrl.name,
            ttrl.name,
            ftrl.name                            AS field_trl,
            c.ad_element_id                      AS c_element_id,
            f.name                               AS field_name,
            c.columnname,
            ftrl.ad_language,
            ftrl.ad_field_id
          FROM ad_field_trl ftrl
            JOIN ad_field f ON f.ad_field_id = ftrl.ad_field_id
            JOIN ad_column c ON c.ad_column_id = f.ad_column_id
            JOIN ad_tab t ON t.ad_tab_id = f.ad_tab_id
            JOIN ad_tab_trl ttrl ON ttrl.ad_tab_id = t.ad_tab_id AND ttrl.ad_language ='en_US' 
            JOIN ad_window w ON w.ad_window_id = t.ad_window_id
            JOIN ad_window_trl wtrl on wtrl.ad_window_id = w.ad_window_id and wtrl.ad_language ='en_US' = trl.window_name 
            JOIN <table holding your translation imported from csv> trl ON trl.ad_element_id = c.ad_element_id and ttrl.name = trl.tab_name and wtrl.name = trl.window_name

          WHERE TRUE
             and ftrl.name != trl.ftrl_name_zh_cn
          ORDER BY trl.window_name
        ) as data
    where data.ad_field_id = ad_field_trl.ad_field_id and ad_field_trl.ad_language =  'zh_CN'

Ok,

I think i got it.

So i will need repeat all that process for every table in the translation section here:
http://docs.metasfresh.org/pages/sql/index_en

Hi @Wellington_Almeida_d,
I wanted to check how you are doing and just saw on gitter that you ran into compilation problems.
Sorry, I should have taken a look at gitter much earlier.
Do the problems still persist?

Regarding

Am i doing something wrong? I builded all projects in the follow sequence:
1- Parent
2- metasfresh
3- metasfresh-web-api
4- metasfresh-dist
Building using the maven integrated on eclipse, or command line.

From my own experience, a command line build on a folder which yoiu also have imported into eclipse can change the class files in ways that require a refresh in eclipse. Then you develop in eclipse, then usually the m2e plugin takes care of building.

I recommend to make sure you have no errors in your workspace before running mf15_lava.launch.

Also are you aware of the forum topic Eclipse workspace changes where we anounce changes (ususally projects wse added) that need to be imported into eclipse?

Best regards
Tobias

Hi @metas-ts !

I needed make a short break for personal matter, but this weekend i will return to the project.

So, better don’t mix up eclipse or command line builds. Got it !

I didn’t know before that topic, i will follow it from now on.

I appreciate your concern!

Wellington Almeida dos Santos

2 Likes