Hello and welcome.
It sounds very much like you have an intake vacuum leak.
Unmetered air leaks allow excess air into the engine and cause the fuel/air mixture to go out of alignment and set the fault codes you have. This is the most common cause of those fault codes.
To check for vacuum leaks, visually inspect the intake area for any cracked hoses/pipes. If you can't see anything, you can try this trick: spray a can of carb cleaner around the intake with the engine idling. If the idle changes, this indicates that the cleaner is entering the engine and you have localized the area of the leak. You can then inspect further.
Most common source of air leaks is from the rubber intake tubes between the airbox, and the throttle.
Another common issue that causes this problem is a failed crankcase vent valve. This is located under the intake, in front of the throttle body. This valve regulates a vacuum on the crankcase, when they fail, a high vacuum is put on the crankcase - giving an unmeterd air leak. You can check for this by removing the oil cap with the engine running, if the engine stalls, or idle dips a lot, and there is a high vacuum holding the oil cap down, then this valve has failed.
If you are able to do the repair on your own you can, but I would recommend leaving this to a professional - dealer or non-dealer.
I hope that is helpful, please let me know if you have further questions, or if I can clarify anything for you.
It has been my pleasure to help today and I wish you the best of luck with the vehicle.
Yes, it is possible that the dealer can get more information using sophisticated BMW specific diagnostic equipment. A dealer diagnosis will be the quickest and easiest way to resolve this.
Please let me know if you have further questions.