BDC is the last alternative when nothing else works. As it is reliant on the screen's not changing, it is not a stable solution. I've been using MAINTAIN_MATERIAL_DARK and the BAPIs for material maintenance for over 10 years.
If you are doing a data migration program, then use LMSW, and the material direct input procedure. To use anything else is re-inventing the wheel and a waste of time.
I repeat. Do not use BDC.