I'm trying a very simple task. I want to write the layer name in a new attribute column. I managed to do this using Field Calculator. But I need to do the same for a lot of files in batch mode, only available in Advanced Python Field Calculator. In Advanced Python... algorithm I inserted in the Formula field the same expression I used in Field Calculator: value = @layer_name. Unfortunately, python (from Advanced Python... algorithm does not recognize the variable @layer_name. Any ideas?

  • Why not to use **"Field Calculator" ** in processing also? Is also available. Second though, you can use **"Refactore Fields" ** algorithm to use some formulas. – GSienko Mar 25 '19 at 22:18
  • Is this inside a model? – ndawson Mar 26 '19 at 4:09
  • @GSienko I edited the original question. Because I want to do this in batch mode only available in"Advanced Python Field Calculator". I don't know what is and what you mean by "Refactore Fields". – christian.gobel Mar 26 '19 at 22:15
  • @ndawson, no this is not inside any model. The algorithm is available in 'Processing Toolbox'. – christian.gobel Mar 26 '19 at 22:15
  • In that case, why not hard code the layer name in your expression? – ndawson Mar 27 '19 at 0:03

Use Field Calculator (not Advanced Field Calculator) from 'Processing Toolbox' in batch mode and as the field value write: decode_uri(@layer, 'layerName'). Works, i've checked it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.