This paper presents a function block enabled approach towards adaptive process planning and machining. A two-layer structure of supervisory planning and operation planning is proposed to separate generic data from machine-specific ones. The supervisory planning is only performed once, in advance, at the shop level to generate machine-neutral process plans, whereas the operation planning is carried out at runtime at the machine level to determine machine-specific operations. Such adaptive decision making is facilitated by event-driven algorithms embedded in the function blocks. It is expected that the new approach can greatly enhance the dynamism of fluctuating job-shop machining operations.