Well, this has turned out to be more of a challenge than I originally hoped. Nothing new in the world of service. ha ha. I originally started off looking for a way to automatically generate the service order for an advanced exchange (if you do an in-house repair it works great, but if you send out an exchange unit before you receive in the original, it breaks the process). The standard program SDREPA01 gave me a clue about the item status. However, it turned out to be a false hope. I was able to change the status and SDREPA01 ran… but still did nothing. The reason was because the repair line still wasn’t defaulting in the order. Without going into a bunch of boring details of my debugging expedition, let me skip ahead and let you know what I did find.
Getting the item to default would most likely involve lots of user-exits or possible system mods… neither of these met my goal (to be able to build a program that any client could use without doing any system modifications). What I found is that I could use a BAPI to add a line to the sale order, but it still wasn’t pulling in all the details I needed. After more digging, I think the reason had to do with the serial number (or lack of) in my newly created line. AFter more digging, I located records I had previously not noticed in the tables SER02 & OBJK. I’m currently experimenting with a few functions that will reserve a number and populate these tables for me. If I can pull together the right combination I think I will have my method handle Advanced Exchange.
For anyone that is curious, here are the functions that I need to execute (along with a bunch of other logic to populate them).
- BAPI_SALESORDER_CHANGE – to add the new line item to my sales order
- OBJECTLIST_NUMBER – this will pull a new OBKNR for table SER02
- IWOU_POST_SER02 – to create the OBJK & SER02 entries
As soon as I finish pulling it all together, you may be seeing a very excited post 🙂 otherwise, it’s back to the next round of debugging.
Thanks for reading,