Thursday, November 30, 2006

SAP R/3 : Update ALV FieldCat... must check Layout Management

Morning reach office and had the most wonderful headache ever. I added a new field to an ALV report but it was not showing the new field during run time.

Last time i had this similar issue with the grids. However it was so solve with clearing the ALV buffer (table GT_LTDXKEY and shared buffer EUINFO). By using this method, i still couldn't see my latest changes to the ALV report. So the best way would be Google around first. Hey, human invented Google right? In fact, everyday we Google. Why not Yahoo? Anyway, after some 15 minutes, i dropped off everything. I went for a break and think again of my coding. 'What went wrong?', i asked.

Well, my dear readers, the only thing that you must always remember to do when you change your FIELDCATS in ALV, you must ensure that the layout management is not holding any old layout from your tester, your functional or your previous ABAPer. I was brought to this resolution in SDN when Rich Heilman wrote in Raj Chinni's similar problem. Raj had the same problem like mine.

So, it was the layout management that was dissappearing my new changes...

is sky the limit... clear your layout management when you make changes to FieldCat...

Monday, November 20, 2006

SAP R/3 : TRIAD Vendor on Flexible Spending Account (FSA)

One of the many things that i got to know about coding a program to download data on flexible spending account onto a specified file format are the following items:
1. Infotype 0170 - Flexible Spending Account
2. Function module 'CU_READ_RGDIR'
3. Function module 'PYXX_READ_PAYROLL_RESULT'
4. Infotype Payroll, Payroll Results, Payroll Results Table
5. Infotype 0000, 0002, 0041
6. Tables PCL2 to use Payroll clusters and functions
7. Transaction Code PC_PAYRESULT to see payroll result (Payroll result cannot be seen using PA30)
Given an employee number (PERNR), you will need to decide whether he or she is valid for the FSA file extract. In 0170 there will be a BEGDA and ENDDA, you need to compare against the payroll year for selection and the date selection in the program. Comparing against the payroll result, for period (begin date and end date) is a must so you will get the exact record.

To get the payroll result, you will need the function module called 'CU_READ_RGDIR'. This will give you the as you see in pc_payresult transaction code. The paydate, for-period, in-period, begin date, end date and so forth. Now to obtain the result table of a certain for-period record, you need to use the PYXX_READ_PAYROLL_RESULT. This function will return you the RT result table.

Using PYXX_READ_PAYROLL_RESULT, reader must take note that it returns table in structure, preferably use a field type to hold the result. Don't use internal table, you won't be able to see the result when you debug this function module. A better way to see how the result is work out, you can trace PC_PAYRESULT

Employee with health plan DCAP (dependent healthcare) and MCRP (employee healthcare) will be selected into the file. The program will calculate the effective date for the both benefit plan, the deductions and the stop date and annual contribution. The stop date is pretty unique here is that it require the programmer to do plus one record checking.

(Note : In VSP, PPO and TRIAD, all requires plus one record checking. Its just not only in TRIAD that require this feature)

Plus one record checking meaning you check the existent or availability of the next (future) plan from the existing current plan.

At the end of the result, the file should have all the valid employees entitled for FSA via legitimate DCAP and MCRP benefit plan. In contrast to VSP and PPO file that i had done last time, TRIAD file does not require row of records of dependent after employee record. However, TRIAD will not retrieve employees who are retired or terminated.

This program is my last program which was handed over to Mitchelle Yeoh for future maintenance. So far this is the best program i ever written cos all of it are include program and many subroutines for easy handling and maintenance.

is sky the limit... payroll result and result table for FSA

SAP R/3 : How to Create Dunning Proposal

In order to create a Dunning and also see its result you need the following transaction code:

1. FPVA - Dunning Proposal
2. FPM3 - Dunning History Display
3. FPL9 - Account Display List

Let me explain a little bit about Dunning. Dunning is a method developed to insure collection of accounts receivable. So now what the hell is accounts receivable. It means the money owed to the company for providing their services to customers. Therefore, Dunning is a way to insure that any amount of money not paid by customers are made known (in other words, a gentler reminder to pay back money)

Dunning procedure in SAP are automated and you can configure the Dunning procedure in SAP.

However, this entry is not about configuring client's Dunning procedure. Its about how you can propose a Dunning to a contract account and displaying its history.

1. FPVA - program to propose an account contract for Dunning. You can do this by copying a past DATE ID and Identification related to a contract account and put it as the latest date for processing. However, you will need to reverse the past Dunned item in order to process.

- Once you have copy a previous contract account for Dunning, click the 'Save' button.
- Then click the 'Schedule for Processing' button. You will be ask whether to run now or later. You can click tick 'Process Immediately' option and click 'OK'.
- Your contract account will be processed. Remember to click 'Refresh' to see the result.

2. FPM3 - depending whether your Dunning proposal's contract account allowed you to Dun, it will be shown in FPM3. FPM3, a program that display either available contract account eligible for Dunning or for reversal. You can reversed a Dunning item here. To reverse Dunning, look for the thick red arrow pointing to the right.

3. FPL9 - to display all your contract accounts with items that has Dunning reversed and overall items that is debited and credited. You can checked in detail by double clicking the line items. In my assignment, an item is Dunned according to the following rules:

1. if clearing state is 8 and credit posting is less than zero and total balance is greater than zero, then it is Dunned.

2. if clearing state is 8 and credit posting is less than zero and total balance equals zero then no Dunning carried out.

3. if clearing state is 8 and debit posting is greater than zero and total balance greater than zero, then no Dunning carried out too.

Personal note : FFI_EVENT_1708 standard function module was modified to cater the changes mention above. Client wanted Dunning to vary according to the 3 rules above.

is sky the limit... Dunning procedure

Wednesday, October 11, 2006

SAP R/3 : Benefit - Vision File (VSP)

A copied file of the PMI (medical) benefit file was being used to modify to suit VSP file and the logic was a little different from it. VSP is a vision plan benefit that will capture all employees eligible for its plan. Several changes was defined and required some minimal logic alteration.

1. The structure. There are two structures that VSP is using for file extraction. The employee and the dependent.

2. The logic. Several logic has been tuned and modify (minimal but heavy testing for quality assurance) was made to suit VSP. The process requires first, filteration of all employees who are active either in employment or in COBRA. Retirees or Terminated employees are excluded from the extraction. However, retirees or terminated employee with health plans (0167) and COBRA (0212) still valid, they can be included into the file. So far this is the only difference comparing to PPO file. Other than these, its the arrangement of items in the file. There are VSP Plan Date begin and VSP Plan Date end. End date should only be display if its within the selection period.

3. Other standard functions used in this program is the GUI_Download_File call function.

The work was scoped for 29 hours. Most of the hours were used for corrections and testing. Loads and loads of batch testing was conducted to minimize errors.

Is sky the limit... benefit vision plan file

SAP R/3 : Customizing ABAP report to have a Menu Bar...

To create or customize a button onto your ABAP report requires you to use transaction code se41 (Menu Painter).

Here is a few simple steps:
1. I assume you have a report at hand for customization.
2. Go to se41 (Menu Painter)
3. Create a status, ZMHR_(description)
4. Declare a few function keys (you will need to do this before proceeding to step 5)

setting function keys

5. Declare the function keys in step 4 into your application toolbar.
6. Save and activate.

Then go to your ABAP program, just one line after Start-of-Selection, put this code:

set pf-status .

Finally, save and activate. You will see your created buttons on the menu toolbar.

If your buttons are somehow not displaying, go back to se41 and look around if you have correctly declared your function keys.

is sky the limit... setting your pf-status...

Tuesday, September 26, 2006

SAP R/3 : Debugging and using Breakpoint button...

When we do development, we put a lot of breakpoints to test our programs. Sometimes, our breakpoints is spread far from each other. Thus, its can be difficult to keep track of our breakpoints especially when you are tracing Standard Programs that might go in very deep to other include programs and function modules. However, there is one way to keep track of all your breakpoints easily; as well as putting out some breakpoints that you no longer want to use.

Here are the steps:

Step 1 : Open up one of your programs and put some breakpoints onto your desired lines to trace (shown as below).

Step 2 : Execute your program. The debugger will trace to the first breakpoint like below:

Step 3 : Click the "Breakpoints" button on top of breakpoint display:

Step 4 : A summary of all the breakpoints will be display like below:

Step 5 : To see a specific breakpoint, double click breakpoint item 1 (not on the icon stop but double click the line) and you will see your breakpoint's location:

Step 6 : You can double click the stop icon to turn off the breakpoints then click save. The next time you run again it won't stop there.

There you are i hope this will help you in your debugging work.

is sky the limit... debug... debug... debug...

Wednesday, September 06, 2006

SAP R/3 : BADI HRPAD00INFO for PA40 - Extended

note: Long entry. Please advice if there are mistakes or incorrect methods explained below. There is always room for improvement for us.

Recently, an ex-colleague asked me this question below,

"How do you find out which BADI is for which standard program? And, how do I know if that BADI is suitable to use?"
Before i moved on, in one of this portion of my answers will need to give credit to Padmini too as she improvise some of the method in searching for suitable BADI. Ok let us move on. BADI and User exits are readily provided by SAP's own respective standard module. In each of its own standard module those BADIs and User Exits are their own features and usage. Depending on how you want to use them is totally depending on your customer requirement. No point using one enhancement method when you can find it right? Probably you might need to look for alternatives. Alright, let say you have a requirement to concatenate a personal area and cost centre so it becomes the organizational key.

The first thing you should do as a technical consultant is to understand how the process flow and when will the organizational key is form. Some questions like, "Is it after i click update?", "Is it after i click create new employee", or "Is it only for display?" Some of this question may seem too trivia but it will help you along the way to implement enhancement. And another reason, a good one is, BADI and User exit normal have a PBO and PAI nature which meant event occur before or after user processes. Therefore, it is good to understand the nature of the implementation.

The second thing, assumingly you understood the nature of requirement, you need to see your options. There are a few ways, you might look up around all of the user exits. Unfortunately, it will be too long to scan. My advise here will be to get a searching program that can search for all user exits pertaining to one specific standard program. Here is one
sample. (REF #1). This should make your searching more easily. Now that you have found some candidates of user exit for your enhancement.

Go over the available user exit. There are two and one things after that to take note. The first two things is to check the export and import parameters. By checking these two important parameters you will be able to know if the user exit is capturing your data for modification and able to display it out again. Then the other will be if the user exit is callable by the event of client's requirement. If this three conditions are satisfied then you can go ahead with it.

Sometimes, one need to have a bit of creativity in using user exit. This is because an enhancement might lead to using a few user exits under one user exit project to fulfill the enhancement. Sometimes, you may use other user exit or BADI to implement a scenario

Enough about user exit, for BADI, though i have still yet to find a program that could trace for available BADI with a transaction code but all its not in vain. There are two ways to do so. One is using SQL Trace Analysis or transaction code ST05 (REF #2). The latter will be looking at the standard program and look for the BADI.

In the first way, BADI are always buffered when executed. Therefore by selecting buffer trace, it will capture all available BADIS pertaining to one transaction code. Thus, the result is shown in the analytic result pane. After that go to SE18 to see the definitions. When you are it, try to look at the types of methods available and the parameters that is passing into the BADI for enhancement as well as any available parameters that allow you to display your results.

In the latter way, i could say its more brute force, the reason i am saying that is because you look at the standard coding and try to pinch out what are the available BADI. BADI called in standard program are normally called, "CALL CUSTOMER PROGRAM". In some cases, it is more easily to note as it will be bundled in one include file along with the user exits. This no doubt make your life easy.

Now when you are ready to implement it, you can implement it in SE19.

1. SAP Professionals, Program to Find User Exit for a Transaction
2. Using SQL Buffer Trace (ST05), by Padmini Narayanan and her credible source.

Additional information : 10/12/2006 - I just found out the source which how Padmini found out the usage of ST05 - buffer analysis to find BADIs. Her source could be found in Alwin Van De Put. He had an entry of a step by step guide how to trace or search for BADIs. So this is where she learnt it from. A very good way to look for BADI.

is sky the limit... i hope this will help you guys and gals out there in the battlefield...

Wednesday, August 30, 2006

SAP R/3 : Benefit - Dental File

In a recent week of work, a program was required to extract employee data into a third party system. The very main requirement was to extract and process employees data into 4 record types.

The first record is known as the 10 record type. This first record types holds the eligibility of employee for dental. The second record is known as the 20 record type. This holds the address of the employee. The third record is known as the 30 record type. This indicates whether the employee is either terminated or still active. However, this 30 record type will not be generated if the employee is still active. The last record is known as the 40 record type. This will list out all the valid dependents belonging to the employee. Dependents can be his wife, children or relatives.

A specification was made out by the functional consultants detailing the relevant fields. The first record type are obtained via "GET PERNR". The second record type is obtain from infotype Addresses. The third from infotypes Action (0000) and the last will be the infotype COBRA Health Plan and Health Plan (0211, 0212 and 0167). Then the list of valid dependents from infotype Dependents (0106).

Though the program is fairly easy now but it was quite tedious because the program need to determine when a dependent was drop or added when user selects a range of date for reporting. That was arduous as I need to make the program smart. Dropping meaning the employees drop one of its dependent from his or hers Health Plan or COBRA Health Plan. Adding meaning employees adding one of its dependent into his or hers current Health Plan or COBRA Health Plan. Regardless of it, i took about 4 days to complete it and another 6 days for maintenance in order to improve the accuracy of the reporting.

is sky the limit... benefit dental file extraction

Thursday, July 27, 2006

SAP R/3 : Field Exit from Vijayendra Rao

I was searching the SDN forum on field exit for my latest attempt to modify SAP standard screen fields and I found one contribution from Vijay answering a question put forth by another ABAPer.

I find it is worth saving it up for later use so here is the particulars,

OSS NOTES: 29377

Vijay's explained that,

Field exits are frozen on the 4.6C maintenance level and are not further developed. This means that the existing functionality is kept with all restrictions (see also the last item below). Existing exits can be further used and are called at runtime as usual.Existing exits can be maintained using program RSMODPRF (run theprogram using transaction SE38).

more here

is sky the limit... field exit...

SAP R/3 : BADI HRPAD00INFY for PA40 – Org. Key (VDSK1)

It was quite tedious when the requirement was slated to concatenate Personal Area (WERKS) and Cost Center (KOSTL) to be come an Organizational Key (VDSK1). I make one mistake in this issue while performing scoping. I was not careful enough when activating a BADI (Business Add-Ins).

In this issue, I have tried a different user exit that is made available by the main program in PA40 and include a question put forth to SDN forum.

There is one incident during my submission to ABAP Forum, a certain ABAPer told me that this (HRPAD00INFY) would not be call but just HRPAD00MGEACTIVATE. He was quite persistent on that matter that HRPAD00INFY would not be called up by PA40. So I had proof him wrong. Anyway, there is not much to argue in on this issue as I have marked it as “Solve It On My Own”. Not to say that I underestimate him but one should get their facts right before one confidently point out to others.

-wilstroth, development-

Back to the lead, the concatenation was made possible in PA40 with the use of HRPAD00INFTY with one method called After Input. (please refer to 27 July's Correction below) This method will be called when the user have made the necessary changes to the employee position. At this point, the ABAPer will need a little ingenuity in being creativity. In order to make the concatenation a success in this method, the method should update the PA0001 (Org. Assignment) transparent table. Of course, you will need to ensure that is just update once and correctly. As you see, the BADI is not being called once but twice. Therefore, the consultant will need a certain mechanism to prevent twice updating the table.

Finally, I have solve this problem. I found that searching for a BADI is not that difficult at all. A little pinch of patience and a little pinch of time is all you need in order to look for a suitable one. Not to mention a little pinch of carefulness in the work done.
27 July 2006, Correction:
Actually, the method that should solve the problem is "Before Output" in HRPAD00INFY

Is sky the limit… who says HRPAD00INFY cannot work for PA40?!

Friday, July 21, 2006

SAP R/3 : Data Archiving / ArchiveLink® - Part 1

Just this week, I was requested to do a research on using Data Archive and ArchiveLink®. A project was being carried out on this two topic alone. A certain client from US wanted to archive their SAP system’s data.

Both of these feature is the fundamental archiving components in SAP. Data archive allows the writing and storing of collected data from master data into an archive object ready for archiving into a storage medium. On the latter, ArchiveLink® allows the storing of an archive object stored into an external optical storage medium. Not only it acts as a storage device but it enables scanning and storing, retrieval and digitizing of documentation.

These two basic components, as of from 4.6c above, that is the SAP version, these two grouped together as one function in SARA. SARA or SAP Archive Administration includes the above feature from writing, deletion to retrieval. This include management of data tables for archive, information system on archiving process, schedule and job logs related to archiving. Apart from that, SARA include another archive component known as SARI, SAP Archive Information System.

SARI allows a much greater and flexible retrieval of archived objects for later use. In SARI, one of the components are archive explorer which works like any windows explorer displaying archived objects. These archived objects can be visually display out.

In summary, archiving comprises:

1. Basic archiving tool:
- Data Archiving
- ArchiveLink®
2. Support tools that encapsulate above basic tool:
- SARA (SAP Archiving Administration)
- SARI (SAP Archive Information System)

Is sky the limit… SARA wears SARI!...

Thursday, July 20, 2006

SAP R/3 : Jiving and Raving... still alive and kicking!

Yup, i know it has been a two months long of absence from this technical blog whilst i still update my main blog. It has been a experiencing two months for me on my work.

Apart from trying to get more active in ABAP work itself, i have been involve in CMMI certification which have push my technical work to one side. Also fearing of leaving my team alone to their own things. As you know, that i am also assisting in the scoping of ABAP work; many things had happened. Good it is now that i am no longer doing the scoping. It might mean:

1. More work focus on ABAP.

2. More time on my own technical research.

3. CMMI... gosh... no comment!

I will be expecting more of ABAP work coming and some technical updates.

Oh shoot, i had totally forgotten about my whole MiniSAP installation deal. Yup, the two SAP WAS installation CDs and my SQLServer 2000 CD is still sitting on my desk in my study room. I am still figuring out the day i will harrass these CDs with my notebook.

is sky the limit... ABAP, ABAP, ABAP

Thursday, May 18, 2006

SAP R/3 : Transporting Table and its content

Recently, my colleague and me had a conversation on transporting tables and its data content. According to him in SAPFans' forum, transparent table can be transported from DEV to QAS together with its data.

To perform that activity:
1. Go to SE11 and choose a table or your test table.
2. Choose technical / Maintenance tab.
3. Select C as the delivery class. C option will enable you to transport data from DEV to QAS.

There are a few options in the delivery class that you might want to check it out. Click F1 to learn more about it.

is sky the limit... data transport...

Friday, May 05, 2006

SAP R/3 : ZHRI03 on 401K Plan List Download

ZHRI03 is a report that downloads a list of employee who are contributing 401K plan. This file will then be send to AMVESCAP for further processing. In this ZHRI03 program, an HIRDT field was not obtaining the value accurately and the Functional does not know which infotype it was using. Upon investigation, the HIRDT field is a Hire Date and is using infotype 0000. In this infotype, the BEGDA is the value being fed to HIRDT.

"The 401K plan is a retirement plan for employees in US. Similar to us having EPF in Malaysia. For more information on 401K retirement plan please refer to this link: The 401K Help Center"

Another problem was the text file being downloaded was not showing the HIRDT value. Therefore, there were two problems pertaining to ZHRI03 (ZHRI0003).


HIRDT value should be from infotype 0041 (Date Specification) using date type Z2 or Z1.

“One portion of the original code was modified and added so that the HIRDT field obtains accurate and correct date value”

The text file that is not displaying the value is modified at the later section in the ZHRI0003. The internal table that is used to pass data to the download function did not have that HIRDT field filled.

“That internal table named I_DOWN was modified so that the HIRDT field is filled accordingly from the I_DETAIL. I_DETAIL internal table holds the process HIRDT value.”

Development took at least 3 hours including testing and debugging. One hour was allocated to do investigation.

Is sky the limit… ZHRI0003

SAP R/3 : Activation Process (Conversion)

In SAP system it is a must that developers perform activation after they are done with their modification or creation of a transparent table (this include performing table maintenance generator and the technical setting). While an active version of a transparent table is a version of a component of the runtime environment access but an inactive version will not reflect any latest update during the runtime event thus the active one will not reflect any changes.

In order to have transparent tables being reflected with the latest modification the activation process is carried out. This will change the inactive version into an active version. Activation process is not only for transparent tables but to any table types.

During the activation process, there are seven steps that the SAP system has behind it. This is not shown to the ABAPers nor the Functional. The process is automated and it will only show if it’s successful or have problems. Problems will be display and errors described in a report.

Table X is enhance with a new field. Thus, we have one Active version Table X and one Revised version Table X. Revised version Table X will have the new field. Active version Table X is the old version. Now the activation process will activate Table X to have the latest changes. So below is the seven steps leading to the new Table X.

Step 1 : Set Lock

Active version Table X is locked against further structural changes.

Step 2 : Rename Table
Active version Table X is renamed as QCMTAB.
All indexes in QCMTAB is deleted.

Step 3 : Activating Tables
Revised version Table X is then activated as Active version Table X.
Active version Table X is now created in the database as QCM8TAB.

Step 4 : Reload Data

Data is then copied from QCMTAB to QCM8TAB.

Step 5 : Delete the QCM Table

QCMTAB is no longer required then it is deleted.

Step 6 : Rename Table and Create Secondary Indexes
QCM8TAB is renamed back to Table X.
Secondary indexes are defined back into Table X.

Step 7 : Remove the Lock
Table X is unlock and ready to use with new features.
Is sky the limit… Seven Activation Steps

Monday, April 24, 2006

SAP R/3 : Transporting FG and FM

inLately, we had a problem transporting a function module into the QAS. The error kept on returning an 8 describing it is missing one function module. We confirm the missing file not included in the se10.

We did another transport. First the function group then only the function modules.

Still the result was negative.

Then again we decided to go into se10 and looked at the transport particulars. This time we force the particular always missing function module into the list of function module to be transported and re-transport it again.

This time, the result was positive.

From my point of view, it might be that function module was automatically generated but that particular missing one does not have a source code included to it and thereby the transport does not include it. It makes sense also with the first include it has source code and it was listed in the transport number.

For that part, i will need to analyze more on that part.

is sky the limit... transports

Thursday, April 13, 2006

P2 Notebook on XP

I will be resuming my MiniSAP installation later. I had just got rid off the virus from notebook that have been closing my antivirus program and duplicating each folder as application in the system.
Though you can put the system in safe mode, install a Registry Cleaner, update your Antivirus software and restore your Windows system files but I chose to reformat the whole drive and install another Windows. I am now using Windows XP SP2.

Later i will put in an SQL Server 2000, Microsoft Visual Studio 6.0 and Microsoft Visual Studio .NET 2003 for the sake of my projects.

My notebook is slow and it took me 4 hours long to install that damn XP. Yes, its about time to get a new desktop for greater speed and performance. However, this notebook has been my good companion for the last four years and it had survived many projects and including one latest virus threat.

Thanks to COM who sold me this second hand HP notebook. Otherwise, my days will be very much lonely.

MiniSAP installation will continue in a few days time.

is sky the limit... P2 on XP

Monday, April 10, 2006

Progress on Programming - DELAY

Hi readers,

There will not be updates on MiniSAP Installation until i get a new desktop or my notebook fix.

Sorry for the inconvenience.

William Wilstroth
ISTL Technical

is sky the limit... when your notebook is broken

Friday, March 31, 2006

SAP R/3 : MiniSAP & MySQL - Part 1

Today i got hold of a MiniSAP. It will be a great moment tonight. I shall be at my notebook and looking at the screen to figure out ABAP. Moreover, i also had just download a MySQL installer.

More will be reveal after tonight or this weekend.

is sky the limit... MiniSAP & MySQL

SAP R/3 : ZHRI0008 & SM69 - Part 2

ZHRI0008's logic was change as a result of inaccurate report. Its result was compare against PT_QTA10 (Leave Balance Display). PT_QTA10 is a standard SAP ALV report. Calculation on the entitlement, taken, compensation and balance was not accurate. Therefore, it was suggested that the report would only take values from infotype 2006.

So I was back to the drawing board. Considering the fact i have to go through PT_QTA10 to understand its logic behind. It took me half a day to figure that out. This program uses a call function "HR_GET_QUOTA_DATA". This function will take out all the necessary leaves for an employee. It saves time.

However, on one hand, ZHRI0008 logic was already well written just that it is taking infotypes 2001, 2006 and 0416. The new design will eliminate process on 2001 and 0416. So this would my life much easier by focusing on 2006.

Infotype 2006, is an Absence Quota Time Record from HR module. It stores all the accumulated taken leaves, entitled leaves and also the compensated leaves for employee.

So the new program will be focusing on the three fields, ANZHL and KVERB. KTEXT is the balance equal ANZHL deducting KVERB.

As usual, the whole other interface and KRONOS OS Command remains the same. Only the logic for leaves calculation changes.
In summary:
1. ZHRI0008_ON_IT2006 was created
2. ZHRI08_IT06 transaction code was created
3. Two new include files were copied to distinguish the new and the old files.
4. Infotypes 2001 and 0416 were taken out.
5. Vacation and Sick calculation deleted.
6. Put in a new calculation based infotype 2006 only.

At the end of the day it took me 14 hours to investigate, implement and testing. So far it has been send for testing. For previous amendments, please click here for more of it.

is sky the limit... changing logic...

Wednesday, March 08, 2006

SAP R/3 : ZHRI0008 & SM69 - Part 1

ZHRI0008 was quite a lengthy issue with a lot of in and out of emails between consultants. However, the issue was solve at end. It had cost me a lot of time and many misunderstanding in the emails.

ZHRI0008 is an ABAP program to interface with a third party software known as KRONOS. During the process, ZHRI08 or ZHRI0008 will determine whether files that is being used comes from the frontend or from the UNIX. Either two of this media storage type, the program will process the data by updating the latest leave (sick and vacation) by obtaining relevant row of records from infotype 2001 and 2006.

After all this process finish, the result is save to a file known as EMPBAL.TXT

This file is then use to interface with KRONOS. ZHRI08 will execute SXPG_COMMAND_EXECUTE to run a UNIX command so KRONOS will be able to use the EMPBAL file. This UNIX command being executed can be found in SM69 and SM49. SM69 is where ABAPer can create and make modifications to OS commands. While the latter displays job logs pertaining to OS Commands.

SM69 - External OS Command
SM49 - Job Logs External OS Command

1. Balance were incorrect calculated and sent to EMPBAL.
2. KRONOS were not correctly interface in QAS system.

1. I corrected the SELECT statement that finds records in IT2001 and IT2006
2. Reconfigure ZQUOTAS in SM69 ensuring that its OS command only runs back in its own system.

Edited - 31-03-2006
This program was later found not so accurate and the logic was changed. Please click here for more of it.

is sky the limit... SAP R/3

SAP R/3 : ALV Page Break

It has been weeks and.. probably months having many attempts to solve the page break in an ALV report. We had tried using REUSE_ALV_GRID_DISPLAY_LVC and returning to use REUSE_ALV_GRID_DISPLAY but both still couldn't force...


is sky the limit... SAP R/3

SAP R/3 : Converting EXCEL into Internal Table

Recently, i got an email requesting that how would one convert an EXCEL format report into SAP file system (internal table). Normally, ABAPer can use WS_UPLOAD to upload that file from EXCEL provided...


is sky the limit... SAP R/3

SAP R/3 : CJI3 (SAPLKAEP + PS05)...

This modification of SAP standard is none other than the good ALV reporting program. Readers who are non SAP user would want to know that ALV stands for ABAP List Viewer. However, non SAP user would also want to know that ABAP stands for Advance Business Application Program...


is sky the limit... SAP R/3

SAP R/3 : Combining Two Transparent Table... SE11

This problem had been left unsolved for almost two months. Now i am able to solve it.
Thanks Mr. Jackie Lee Seng Yong who had also help to solve this problem and Mr Yip Wai Yen who suggested this creative idea.
The problem or client requested was to able maintain two transparent table when they do transaction. After solving this problem, we have now two type of solutions to it. The first is to use coding to update both tables...


is sky the limit... SAP R/3

VS NET : Game Development(GD) Experience...

I have been meddling with developing games (GD) for the past two years. From a simple two player English chess, a few tic tac toes and a maze game to an online game. But recently, i had not been able to continue with an online game. I can't say i am the expert... but just a beginner...


is sky the limit... Game Development

VS NET : In 5 hours... i make a simple chat messenger...

SAP Problem.

A month of rumble in ME51N, still not going anywhere, Purchase Requisition... there must be something that i must have not done. Which part, where and how am i going to get myself out of this terrible problem. Nevertheless, lets not focus on this part yet. When i found the solution...


is sky the limit... SAP R/3


In SAP ERP, programs are categorize in SAP standard program and user customized program. Both of these is always denoted by a SAPLXXX or an RXXX for SAP standard program and ZXXX for customized programs. Difference between these two types of program is that programmers are not usually advised...


is sky the limit... SAP R/3

VS NET : Bulk or Batch Transfer in MS SQL Server 2000

Bulk or batch transfer can be done in SQL Server 2000. This is an advantage that user can applied in that application to fast bulk transfer. Millions of data can be process and transfer in seconds (or minutes)...


is sky the limit... SAP R/3

SAP R/3 : Toolbar Not Coming Out in ALV

ALV (ABAP List Viewer) provides all the default toolbar, menu bar, grids, sorters and etc to programmers. However in a recent case, Yip was unable to program the toolbar out. Function to call the toolbar was called however it would not come out...

is sky the limit... SAP R/3

SAP R/3 : User Exit Enhancement ZME51N

User exit is a common application or method that is apply in SAP application regardless of its modules or solution. Any ABAPer who does dialog programming will touch on user exit. User exit meaning a certain function is executed...


is sky the limit... SAP R/3

Instructional Guide to Start ASP

The most BASIC tools u will need in order to start developing an ASP page.

You will need to install the following:
1. An IIS.
2. A database RDBMS
3. An Editor.

For newbies.1. where do you get an IIS?You will need to install a windows 2000 professional. After installing your win2k pro, reinsert the cd to install the ISS.Once u have install the IIS, ur adminstrative tools folder will have ISM (Internet Service Manager).Not only that will be provided, a main web folder to publish your ASP will in the C drive. This is where u store your ASP pages...


is sky the limit.... ASP

Wednesday, March 01, 2006

Re-introducing Technical

This technical blog is part of the initial idea of ISTL during re-vamp plan. Now it is the time to cast it out again to the public. Entry will involve :

2. VB .NET and SQL Server
3. ASP and ASP .NET

I know many you who are close to me will ask about this blog existence. Well, this technical blog is one way i am using it to store my knowledge on the things i learn and problems I solved. Though it will be very personal than the other three main blogs but i also encourage readers to submit their opinions and give comments. If you found any entry that you think i am wrong then you are welcome to give your remarks. But, please do it with the right way. You don't have to flame and curse. I will glad to correct it and rectify it and credit you for any findings.

Thank you.

is sky the limit... we will try it here