The reagent and product syntax goes as: ITEM:ITEM_SUBTYPE:MATERIAL:MATERIAL_SUBTYPE. NONE in a reactions is just 'do not filter', a reagent with 4 NONEs and no other tokens will take anything (Except dwarf corpses. Sadly)
A reagent like WEAPON:ITEM_WEAPON_SWORD:NONE:NONE will take a sword of any material, NONE:NONE:INORGANIC:NONE will take anything made from an inorganic mat, etc.
The first reaction's product is not going to work, since it will try to copy the item type from a bodypart, which is not possible. You can only use bodyparts are reagents.
You will want that to be [PRODUCT:100:1:POWDER_MISC:NONE:GET_MATERIAL_FROM_REAGENT:A:EXTRACT_DYE_MAT] POWDER_MISC is item the other dyes are and what the dye workshop will be looking for, NONE because this item has no subtype, GET_MATERIAL_FROM_REAGENT:A:EXTRACT_DYE_MAT tells the game to use the material referenced with EXTRACT_DYE_MAT in reagent A.
You may also want to make sure the flask is actually empty, oddness might happen like the silly dwarves grabbing a flask of royal dye to make some red dye in. Use [EMPTY] behind the reagent.
EDIT: Wait, the first reaction is trying to find a bodypart which is in a flask. Weird... something tells me that needs to look for a flask of extract. LIQUID_MISC is the item type that should use, and the USE_BODY_COMPONENT needs to be removed. UNROTTEN could stay, but im not sure of extract can rot in the first place.