Wednesday, December 19, 2012

SAP ECC6.0 : VEPVG and Delivery Not Created - Part 1

Two more days to factory shut down and as my good boss said, "You are not going to like this". Well, all I can do is coolly brace for what's to come. He told me the VEPVG is not being updated when a sales order line's First Date gets changed for the third time. 


Oh god, the first time, the sales order gets created; a line is inserted to VEPVG. The second time, that sales order get its First Date changed; the line remains in VEPVG. The third time, the sales order get its First Date changed again; VEPVG no longer holds that line anymore. Hmmph... oh dear... now i wish the ABAP Debugger comes with a "Backward Debugging" feature. Bah! I know WHERE it gets deleted but I have no idea WHY it gets deleted...

(NOTE : i think you guys know the significance of this issue, if, VEPVG table does not get updated when you save your Sales Order (VA02))

So there goes my whole day, gone through all my changes since August until today. Looked through my tickets and checked which ones had involved user-exit modification. Heck, I did not know I had been changing so many of it. Productive year with lots of projects, I guess...


Anyway, I am going murderous on this issue. I wonder why on earth does this VEPVG suddenly doesn't get updated constantly. Yes, I am still looking, investigating and thinking here and there...


Here's some NOTES for you to review, if you are having the same issue like mine : 
415716 - User Exits in Delivery Processing
128947 - Correction of SD Document Indexes With RVV05IVB
178328 - Problems due to Incorrect User Exits in SD'


williamwilstroth... vepvg, userexit_save_document_prepare, 415716, 128947, 178328



Tuesday, December 18, 2012

SAP ECC6.0 : It is all about learning new ways of doing things!

Recently, I read a piece of article in SCN and it make me notice that we do get stuck working comfortably in one spot because we all want a permanent job, with a good pay and less traveling. So, most of us are all there in one company and for some, had the same wish to be there too. Here's a link that you must read and it is called, "Call to Arms".

This article is written by Graham Robinson and he touches some very good aspects about why should one ABAPer learn up newer trade of tools. Just, go read the article up and I hope you will strive more for next year's goal.

Christmas coming, the end of the world like the world is watching, might or might not come but let's us all forget about it for a moment and do a wish list for 2013. What would you want to learn in 2013? 

I would love to learn two things :
  1. At least, attend a course on ABAP Web Dynpro, and do an assignment on this topic.
  2. At least, able to go to PDF tcode and use PDF Editor and modify one form for one assignment.
  3. Do one biggest project, that encapsulate all of what I've learn!

Merry Christmas and Happy New Year! Careful for what you wish for! No Challenge, no pain and no gain!


williamwilstroth... Merry Christmas, Happy New Year, 2013


Tuesday, December 11, 2012

SCN RANT : My work and SCN is complicated to use!

The world's coming to an end. Serious? The Mayan calendar ended there meaning world ending on that day or their finance fiscal calendar ends on that period? :) Anyway, if SAP even existed that time, I guess they forget to maintain their factory calendar, SCAL, and let's hope we are able to celebrate 2012 Christmas. 

Working with ABAP has always been challenging since my training days (8 years ago!), no doubt about it. Early 2012, I had been focusing on modifying Sales Screens especially Shipping and line item's shipping tab. Based on shipment route (VBAP-ROUTE), to determine the Loading Date, Material Availability Date, Delivery Date, Goods Movement Date and few more dates. My solution to these fixes was modifying in program SAPMV45A at screen 4552 (PBO Module). You can do some manipulation to the screen value too. Okay, enough said and you can go along and play with it. 

On another hand, I have NOT used SDN since it, well, became SCN. I find it complicated and the original forum's topic has been moved and changed to somewhere unknown. Why did you guys, SAP, have to move it?? The original design was way much better to navigate and easier to find stuffs than the new one, duh! SCN just makes it complicated and the hopelessness hung there whenever you have to go to the guide to see where the ABAP forum has been changed to which page. The wholesome of using SDN as a forum is no longer as great as it used to be. Can the guys who are responsible for this SCN project give something better? I can neither ditch SCN nor ignore it because it is every SAP professionals life stream! Looking for ABAP resources was fun with the good old SDN until it became SCN... it is sucks, all the way...

Okay, enough ranting of SCN. Back to some of my current assignments which involve heavy modification of MV45AFZZ's routine (USEREXIT_SAVED_DOCUMENT) and IDOC outbound process (IDOC_OUTPUT_ORDRSP) was the longest enhancement of all projects. Not to say it is difficult but it requires the functional to spend hours of testing in order to get a thumbs up. The nature of the change was complex as it requires to listen to the slightest change in VA01 and VA02 screens e.g. change of order quantity, change of first date, or even change of header's info will trigger an IDOC Order Response. Of course, it is taken care now but the amount of energy and time spent in that room with two functionals to verify all the functionality is working and non original process is affected - is humungous!. Anyway, all is done and ended well. 

Now my next task is to determine why there is an error pop up when one line item gets firmed for consignment order. Talk about errors and bugs, Christmas is coming and I hope things goes well when I am not around. Merry Christmas to all readers who have come here to get some ideas and I thank you very much. Have a good Christmas and may the end of the world is just another merry day to you!


williamwilstroth... SCAL, IDOC, MV45AFZZ and end of world???

Wednesday, May 9, 2012

SAP ECC6.0 : ABAP and XML; then ZIP it.

I have no idea that I have not been in here contributing my ideas and my work to share with you all for almost a year now. If you do still come here I thank you and appreciate your support. I know there are a few question been put forth in my old technical blog, time was not permitting. Currently, I'm attached to an assignment that I need to generate an XML file that will form an XLS workbook with a few worksheets in it. Here's a link I would like to recommend to you because it is very useful.

Reference : Colors (Hexadecimal)
Reference : Zip Up

Edited on 06/28/2013 Friday 15:47pm. I thought I let out a link on ZIP, so you know where to find and learn how to use ZL_ABAP_ZIP; just in case you need it.

williamwilstroth... XML, ABAP, ZIP

Saturday, July 9, 2011

SAP ECC6.0 : Workflow to fill Description Panel in the email

These few weeks, I had to perform maintenance on SD and MM workflow like modification and debugging for certain process. There are few TCODEs that I put importance and wrote it down so I can remember it every time I do workflow.

PFTC - General Task Maintenance
PFTC_DIS - Display General Task Maintenance
SWO1 - Business Object
SWUS - Search for Standard Task (if you know the object type, you can search using it)
SWI2_DIAG - Workflow Diagnostic Tools
SWEL - Event Link Trace
SWEL2 - Event Link Trace Switch On

PFTC is where you look out for your Standard Task and Work Template. Workflow's Standard Task is where you configure your workflow that can be trigger by certain process and termination event is which what happens after a process finish. Triggering Event, Termination Event, Description and Container are tied to a Business Object. A Business Object contains an object type and its interface, attributes, methods and events. A Business Object can be created, maintained and view in SWO1. 

Therefore, a WorkFlow is tied to a Business Object. However, PFTC is the configurable object of a particular process but to see its whole workflow, you need to know its WorkFlow Template. WorkFlow Template is where you see the design flow chart and each of its icon or object is represented by a WorkFlow's Standard Task. 

In my case, I had to fill up the Description Panel and this panel is found in the email which you can view it in SOST. The Description Panel can be maintain through the Standard Task's Description Tab. To maintain the Description Tab is very much similar to how you maintain text in a SAPScript or SMARTFORMS. You need to know it's element or variable holder. As Standard Task is tie a Business Object, all the variables and method can be found in the Business Object. So you can fill the Description Panel with the attributes from the Business Object. 

williamwilstroth... PFTC, SWUS, SWI2_DIAG

Saturday, February 12, 2011

SAP ECC 6.0 : Revenue Project

It has been months since I last post a Technical Entry in my blog, I am in the progress of a Revenue Project. Not much to say about it but it is a SD module project. It encompass all the revenue earned for all products manufactured and sold by each sales representatives. It is a 3 programs and including several customized tables project that will calculate how much a sales representatives earned from selling a company product over a quarter (3 months), a month and daily processing too. 

A lot of uploads and projections will be forecast and calculated for the outcome. The project will end at April as planned by my team lead and will update this project soon again on the technicalities. A few technical approach has been implemented and will be updated in this entry once it finishes. 

williamwilstroth... revenue project, field-symbols, component assign
 

Tuesday, October 5, 2010

SAP ECC6.0 : Project SI

This entry is long overdue and I was busy with my job transition. Nevertheless, Project SI had took me to almost half a year to complete (with development, testing and a series of correction) and making the whole process stable. I think the development is still on-going even though the leading functional and the developer had left too. 

This process involved multiple partner sending from one purchase order IDOC (WMMBXY) and certain PO documents with certain account assignment to automatically and dynamically assign FOC, header text and update delivery address. In this entry, I will only touch on the FOC, Header Text, and updating Issuing Storage Location and the delivery address. Though, I personally developed the first and the last part, the middle process was taken over by an ex-colleague before I returned back to this project. 

The first part was so to have a BADI that could manipulate FOC (EKPO-UMSON) in the Purchase Order Creation/Change (ME21N/ME22N) and at the same time catering Header Text Change. Therefore, I'd made use of the following objects :

BADI - ME_PROCESS_PO_CUST,
  - Method : process_item
      - Z_MM01_SI01_INCO_SHIPPING, to update incoterms
      - Z_MM01_SI01_FOC_SO_PO, to update UMSON field
      - Z_MM01_SI01_SHIP_TO_PARTY_ADD, to change ship to party (SH)
  - Method : post
      - Z_MM01_SI01_MY_POST

Then at later stage, it was a requirement to be able to automatically update the line items' supplying storage location based on a customized table:

BADI - MD_EXT_SUP
  - Method : get_supplying_sl
      - Z_MM01_MY01_GET_SUPPLYING_SL, to update supplying storage location

Finally, to be able to refresh and make the changes to earlier FOC and INCOTERM more flexible even though it is automatically updated. Hence the following code allow user to be able to change those updated fields too. 

BADI - ME_PURCHDOC_POSTED
  - Method : posted
      - Z_PU01_MY01_POSTED

Apart from the above enhancements, there is another enhancement need to be taken care, which is, the 3rd Eye Program that do updates on PO based on Inbound IDOC. This is another program that requires all of the above enhancements to be running in the background.  Hence, the following programs were included in my enhancement. This is not particular to any other projects but if there is any resemblance, this can serve as a reminder to take care of external processes.

IDOC FM : Z_MM00_IDOC_OUTPUT_ORDERS_3PL
   - This function module will eventually call below FM to update

3rd Eye PO Create
   - FM : ZMMPU00_UPDATEPO_3RDEYE_EX

williamwilstroth... BADI, ME21N, and ambition!