var count = 0; function _updateCode(content) { var code = content.getMetadataHolder().getString("code"); code = code.replaceAll("-", "_"); content.getMetadataHolder().setMetadata("code", code); count++; } jcrXPathQuery("//element(*, ametys:programContent)[jcr:contains(@ametys:code, '*-*')]").forEach(function(content) { migrateContent( content, [_updateCode], false /* old versions incompatible */, null /* no tag */, false /* not verbose */ ); }); print(count + " programs has been updated"); count = 0; jcrXPathQuery("//element(*, ametys:subProgramContent)[jcr:contains(@ametys:code, '*-*')]").forEach(function(content) { migrateContent( content, [_updateCode], false /* old versions incompatible */, null /* no tag */, false /* not verbose */ ); }); print(count + " subprograms has been updated");