You can’t do it like that. The called rule does not automatically inherit the variables that exist in the calling rule. So there is no event.itemName to access.
Don’t do that. Wait until you have an absolute need to use it in an other rule. And then first consider how you might combine those rules into one.
Having a rule call another rule should be the exception, not the rule and definitely not something you should do “just in case”.
In those cases where you do need to have a rule call another rule, the called rule must either assume it will be passed nothing, or you will have to pass to the rule everything that the rule needs. Of course, you won’t be able to use the “run a rule” UI action to do that. You’ll have to create a Script Action to gather all the data you want to pass to the rule into a Map and then include that Map as part of the call to the rule.
Blockly’s run a rule block supports this.
But especially given what this proposed rule does, I’d recommend creating a new Block Library (under Developer Tools → Block Libraries, see Tutorial: How To Write Block Libraries (also linked to from the official docs).