what was unsuccessful about your workflow? it seems like that should work. you might also be able to do a non-stored field with a default formula value of internal ID, bypassing a workflow entirely. haven't tried it though so it might not work depending on weirdness w/ internal ID specifically or something