Opener Ryan Rickelton struck a maiden one-day international hundred to guide South Africa to an imposing 315-6 in their Group B Champions Trophy clash against Afghanistan in Karachi on Friday.