Outbound IDoc creation and configuation
Creating an outbound idoc is pretty much the same process as creating an inbound idoc but dont do the following steps:
BD51
WE57
and include these steps:
SE37 - Still create output idoc function module
WE41 - assign above fm to proccess code
WE64 - process code linked to message type (can also do this for inbound)
WE57 - Link function module to Message type / Basic type
Also if you get the an error when processing your IDoc saying "Function Module Not Allowed:" it is within WE57 that you need to set this up

When setting it up in WE57 note the object type is important and denotes the description and name fields

debug outbound idoc
To debug an outbound idoc you can't use we19 and simply re-trigger it as that does not trigger the break points. With an outbound idoc once the idoc structure data is produced it means all the processing has happened. You need to reprocess an output type via program RSNAST0D or simple trigger a new output i.e. from the sales order outputs(header/item)
Note: You can execute program RSNAST0D for all outputs, it doesnt trigger them automatically, you can trigger them individually from the otput report.