Monday, January 14, 2013

I got my ITIL Certificate!

ITIL Certification is based on the IT Best Practice on Service Management. Advantages of having this are:

based on ITIL Official Site
  • improved IT services
  • reduced costs
  • improved customer satisfaction through a more professional approach to service delivery
  • improved productivity
  • improved use of skills and experience
  • improved delivery of third party service.
An electronically signed certificate :



Sunday, January 13, 2013

Value and Check Table

Value and Check tables are both transparent tables and differs only on the context in where they are being used. An SAP table being used in a domain is called value table and it can be found in the value range tab as shown below:








In an ALV grid, if you want to create a drill down help popup window or F4 function, you may either choose Single Values (limited to 10 characters), Intervals, or Value table. In choosing Value table, you need first to create you transparent table, usually contains columns for the value you want to display in your ALV and the description of that particular value, and populate your records or entries as shown below:




Typically, in ALV F4 function, the popup window being shown will contain the Single values unless you made your transparent table as the check table of your ALV table as shown below:





So, the question is, how this value table becomes a check table. The answer is simply making the component or the field of the table above as foreign key by clicking the button that looks like a key:





Below is the window to make the table as check table and you may also add the columns in the F4 popup by making it as primary key.





In my case, MANDT, ACTION, and DESCR fields are the primary keys. Therefore, if the user clicks the drill down or F4 button, the below window should appear:



NOTE: Check table is used to validate the data being inputted - foreign key table level. Value table will contain the data for check table - domain level. Search help should contain the values of the table specified on the parameters. Therefore, if there are check table and search help, search help's table values will be shown and check table will be used as look up for the value being inputted in either selection screen or alv grid cell.

Until next time!

Have a great day!

Friday, December 14, 2012

Important ABAP Questions Usually Missed Out!

Hi folks! Below are some of the questions that I encountered during my interviews. It is very hard to face the interviewer if you do not know how to answer those questions as they appear as basic. So, what I did, was to write down what I have remembered and add them on this list.

NOTE: Don't forget to memorize all the important FMs used in ABAP development.

1. What is needed to add a custom field to a standard table. -custom includes staring in CI or append structure button


2. What is the type needed for a table field to accept a negative and positive symbol and what are the steps.
- The data type of integers, i, has a value range of -2147483648 to +2147483647 and contains integers only. You can specify integers as numeric literals directly in the program.

3. Difference between a BAPI and FM. - bapi is stored in bor, remote enabled, pre-defined standard processes from SAP while standard FM is the opposite.
sample BAPI - BAPI_FIXEDASSET_CREATE1

4. Difference between a BAPI and RFC. -BAPI in BOR and call standard sap process while RFC is the gateway to call a remote-enabled FM like BAPI.

5. The different kind of exits.
- menu exits
- screen exits
- FM exits
- field exits

6. Steps in creating a BADI
- you need to put a break point inside class ‘CL_EXITHANDLER’

CALL METHOD CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE’ 


of method get_instance

SE19 you will create a new copy of badi method you have detected (starting in Z) or in oop concept you will redefine(polymorphism) it. Then, in SE18, there you will see the actual coding of the method you are copying. In there you can copy paste the FM being called by the standard method and put it on your redefined badi method.

**Advantage of BADI**

The main advantage of this concept is the capacity for reuse. Once implemented, a Business Add-In
can be reimplemented by other links in the software chain**TAW10


7. Difference between a BADI and user exits.
- badi is more of OOP while user exits are the usual abap exit using FMs.

8. How to convert Smartforms/Sapscript to PDF
- get the otf file
- convert the otf file to pdf by using a certain FM
- then call an FM to download the file

9. How to format a currency using WRITE in classic list.
set country 'US' or character. If 'US' or any character the represents it is blank, then it will used what it is defined in master record or sap sytem config, otherwise it will search the one in t005x table.
set currency will override set country

10. Difference between layout and fieldcat setup in ALV.
-layout, will affect the whole alv functionality
- fieldcat for each specific field

11. How to read file and what is the FM used.

12. Difference between a GUI download and OPEN Dataset FMs.

GUI_DOWNLOAD - download file to local/presentation server, while OPEN Dataset from applicaiton server.

Running ABAP Program in batch mode is capable only of handling file from application server thus the abap statement below are the only means for you to handle data transfer running in batch mode:

OPEN DATASET
CLOSE DATASET
DELETE DATASET
READ DATASET
TRANSFER

13. What are the sample BAPIs.
- BAPI_fixedasset_create1

14. Define field-symbols.
- placeholder to a certain variable. they do not reserve space but pointing the variable value to it after referencing.

15. Logical DB advantage and disadvantage.
Advantage: Centralized authorization check, Own pre-defined selection screen, Faster retrieval of data through its hierarchal design
Event of logical DB is get. It invokes the pull event handler in LDB program (created in SE36)
Event get late - is performed after all the tables in the lower part of the hierarchy have been processed

16. How to create text fields.

17. How to create a text table - Create ID table then the Text Table by linking their keys by making it foreign.

18. What are the implications of mandt - client dependecy such that if not included in a table, data is visible across boxes/clients.
- usually not including mandt is used in SAP system tables wherein that table data will be used accross clients

19. Ways to add data to a database tabale
- modify, will update the data, if not found it will insert the data
- update - it will only update existing data otherwise error
- insert - add the new record which is not existing, otherwise error

20. Ways to add data to abap internal table
-
21. Types of SAP Dialog events
-  Process Before Output (PBO) - triggered before screen is displayed

- Process After Input (PAI) - triggered after the screen is displayed
- Process On-Help Request (POH) - F1
- Process On-Value Request (POV) - F4
----------------------ADDITIONAL QUESTIONS--------------------

22. Types of ABAP tables:
- Index tables and hashed table
- Index tables are standard table and sorted table
- Hashed table is only hashed table
- Standard table can be accessed by using an index or key
- Sort table can be accessed using an index or key and sorted in ascending order by default

23. ALE, EDI, IDOC
- ALE- Application link Enabling, enables linking between two systems
- 3 Layers of ALE are Application layer, Distribution layer, and Communication layer
   - Application layer - refers to the applicaiton data such as SD, MM, FI, HR etc
   - Distribution layer - wherein data is determined to whom it will be distributed and formatted
   - communication layer - this is where the transfer of data takes place through RFC, TCP etc

- EDI is a translator of IDOC data. Usually it is a third party component.
  - it is comprised of outbound and inbound process

IDOC - is a transporter of the data being passed to ALE. te data being hold is arranged in a structured format.

24. How SAP table handles uppercase/lowercase queries? 
 - this can be done in domain level. By default, the domain data type will convert any characters to uppercase unless the it is selected in the domain lowercase tick box.

25. SAP Memory types
 - ABAP Memory -> can be accessed by the programs within internal session using import and export parameters
 - SAP Memory -> can be accessed by different programs across external sessions using GET/SET(GPA/SPA) Parameters

Thursday, June 07, 2012

Authorization Check (FM)

After our QA checked our program, she found out that we are not checking auhtorization before calling a tcode. Upon checking the program, other "CALL TRANSACTION" statement is using function module " AUTHORITY_CHECK_TCODE" to check the authority before calling a tcode. This is very simple to use by just passing the tcode you want to call and make sure to declare the exception parameters for you to be able to handle the appropriate returned error code.

      CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
        EXPORTING
          tcode  = [tcode]
        EXCEPTIONS
          ok     = 1
          not_ok = 2
          OTHERS = 3.
      IF sy-subrc NE 1.
        wa_errmsg-type = c_error.
        wa_errmsg-message = 'No authorization for Transaction'(031).
        APPEND wa_errmsg TO p_tb_errmsg.
      ELSE.
 

Happy coding everyone!!