Hi Lorenzo,
I can give you the bots_connector module.
We have direct support with Odoo but aren't a partner so the module will go on the bots wiki site, not the Odoo apps store.
You need to edit the module to suit your site/process/partners but it's a good start.
It has a boolean flags to control state, we've added some custom fields required by our partner - I'll remove those before publishing it.
When sending:
1. Search for models in a certain state and that haven't already been sent via EDI (use the boolean flag to check if it's been sent or not)
e.g. for ASN:
Search model stock.picking
With:
type = 'out'
&& state='done'
&& carrier_name present (this is Fedex, TNT, or similar)
&& carrier_awb present (AWB is Airway Bill Number - Carrier's tracking number)
&& bots_asn_sent = False (we set this after sending the ASN so next search won't try to resend the ASN).
&& list of partner_id to match (you can specify these in bots web GUI)
2. Read each model in turn - each picking is an ASN/856.
3. Read related models (for stock.picking you need stock.move linked to the stock.picking via the picking_id field).
You also need to read res.partner for addresses and sale.order for the customer Purchase Order Number.
4. This is all pulled into a data structure which bots can use to generate the map.
5. Mark each stock.picking as processed (write back into the model settings bots_asn_sent to True)
6. Do the EDI mapping and generate the output file.
I can give you framework code for steps 1-5 - it should work as-is.
Step 6 differs per partner as Henk-Jan explained earlier.
So we have working code that can pull data from Odoo/OpenERP and send as EDI - for our company that's 810 (invoice), 855 (promise dates) and 856 (ASN/shipment).
Invoicing (EDI X12 810) and is nearly the same - change the model to account.invoice (instead of stock.picking) and change the outbound mapping.
Order promising (EDI X12 855) is linked from sale.order and sale.order.line (we've put additional date fields into our Odoo to support this... or you could use sale_order_dates module from the Odoo app site).
I'm currently working on the reverse direction - reading X12 and creating the Odoo objects in sequence. We're putting a lot of sanity checks (for example, is the PO# unique, are the products already in Odoo, are the prices correct, ...) to ensure that when a PO arrives we can determine if it can go direct to approval or needs some human input first. I can get you code that when it's ready too.
If you're not an EDI specialist I recommend Ebbers Consult, Henk-Jan has been great to work with.
Our company are EDI beginners and in the middle of our first implementation with an experienced customer... there's a huge benefit to have experienced people in both customer and supplier companies (they talk, I learn) to keep things correct. Henk-Jan quickly cut the scary mapping specs down to size as he knows what's generally needed and what isn't.
We're actually working with 2 different versions of SAP within the same customer, the Odoo code is the same for both (so it will work for our 3rd, 4th, ... customer too) but the mappings have changed for each (step 6 of the list above). I'm confident Bots will do what you need.
Think that's about it!
If you want to put something up on the Wiki (I'm trying to do that as I go but it's lower priority) tI'd be happy to work with you on that too.