Professional Documents
Culture Documents
Sap Adhoc Query Sq01 Sq02 Sq03
Sap Adhoc Query Sq01 Sq02 Sq03
Sap Adhoc Query Sq01 Sq02 Sq03
Posted by Shafiq Rehman Jun 16, 2008 This blog will focus on the capabilities of SAP Query (a.k.a. Adhoc Query) and Creating Custom fields in infosets, with emphasis on HR Module.
Most of the reporting needs of an organization can be addressed through Adhoc Queries. For some specific requirements we will need custom ABAP reports, and to create custom fields ABAP knowledge is required.
First lets refresh some concepts, processes and transactions involved in the process.
Logical database will always use inner join and will skip the rows that will not match in corresponding infotypes. For example: You are trying to create a query with Pernr and name from infotype 2 and Work Address from infotype 6. Then the report will not include the persons that do not have a work address. Only employees shown on the report will be those that have a work address subtype of infotype 6 populated. This constraint is usually overlooked and it results in wrong reports.
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
NOTE: You cannot change the infoset later, so be sure which infoset you want to choose, otherwise you will have to create a new query to choose a different infoset.
1. There will be various options on next screen regarding output format, title etc. which are pretty self explanatory and we will not go into details of them.
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
2. A faster way will be to click on Basic List button. 3. Expand the infotype in which you are interested. You will see two check boxes in front of each field. 1. First box is to display the field on the report. 2. Second box is to display the field on the selection screen to restrict the records based on some criteria. 4. Fields will by default have same order in which you select them. It can be changed visa dragging and dropping on appropriate location in right hand pane. 5. Each infotype will have Additional Fields node which contains the texts for codes like for Position, it will contain a field text:position which will display the STEXT for that position. 6. Save and Run your report.
We can create fields that will fetch data according to out own logic, fields that are not provided by SAP. For that, you will need ABAP access to the system, so if you are working in Production or Quality system then most probably you will not have authorization for that. If you need custom development then best place is the Development environment. We can then either transport the infoset from Development to next systems or we can download and upload it in production (which will again need production system to be opened for some time).
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
4. Sequence of code: This number will be sequence of the code to be executed inside that field group. E.g. if you have created 5 custom fields and you want one fields code to be executed before some other field so that some variables are set-up then give the appropriate sequence. 4. Assign this newly created field to the field group, so that it can be accessed in reports. 5. Right click the newly created field and click Field Code. 6. This is the place where you will put all your code. 7. If you have used Logical Database then appropriate structures will be filled in automatically (e.g. P0002, P0006 etc.) you can use same macros as you will use in your normal HR Programs. 8. Once done with the logic, assign the value to the field name, so that it appears in the query. 9. This code will be executed for each pernr. 10. Save and generate the infoset.
Tips:
1. If you are working on custom fields in infoset and have opened a query in another session then the changes in custom fields will not be seen in that query. You need to generate the query again, go to tcode SQ01, select the query, go to menu option Query > More Functions -> Generate Program, then go out of SQ01 transaction and then come back to SQ01 and select your query 2. If you have changed the data types of custom field in infoset then you need to Adjust the query, it is easy, again come out of SQ01 and then go back, it will automatically ask for updating the new changes. Click on Automatically Adjust check box next to each field and update the query. Otherwise you can go to menu option Query -> More Functions > Adjust.
Local Fields:
Local Fields are used in queries, if you already have your infoset developed and want to include some simple logic then Local Fields can be useful. They are usually a calculation on another field, like for example if you want to add a field for membership status depending on field Age (Assuming you already have a field Age in your infoset, or Age is another calculated local field).
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
If Age is between 21 and 65, then return Adult. If Age is more than 65, then return Senior.
Field Label will be visible inside SQ01 query creation so we can say it is for SAP HR Person who will be creating or modifying the query, and Field Heading will be visible at the top of the field when the query output is displayed i.e. it is for end user.
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
You will find rest of the items on the above screen pretty self explanatory, click on Complex Calculation (there is nothing complex here, do not worry).
If you want to add more conditions then play with + and icons on the above screen. And, you are done with creating local field.
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
Report Assignment:
A very very interesting area that is mostly ignored and has a great potential for interactive reporting. To use this feature, go to menu item Goto -> Report Assignment. Lets say we are developing a simple report in HR, that displays Personnal Number, First Name and Last Name. Your report lists a lot of record and you want the user to have power to double click on any employee row and then open up the details in PA20. Isnt that fascinating?
Another example would be that when a user double click a query row, the data of that employee is passed to an ABAP Program and that triggers some interface or whatever is coded in that program.
Report Assignment is in fact making the reports interactive. SAP provides various options for that. It will take many pages to go through all of them, for the sake of understanding we will go through the simplest of them.
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
Click on Other report type and you will see the available options. Here are the actions that can be done when user double clicks the row:
Select Transaction, on next screen you will be asked to enter the TCODE.
Save the program, and run the report. And, double click on any persons record and you will be brought to transaction PA20 with that persons data populated on
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
the screen. You can also choose to go to PA30 so that user can change the data quickly.
3964 Views Jul 7, 2008 6:36 AM Percy Carbella Hi Shafiq, I don't know who turn to until I came across your blog. Here's what I'm trying to achieve. We have defined custom subtype in infotype communiction. We would then want to make it appear in the same fashion as SYHR_A_P0105_AF_CELL. Could you help ? Thanks ... Jul 7, 2008 7:26 AM Shafiq Rehman Percy Carbella in response to Hi Percey, You need to create a custom field. Please see above in the blog on how to create a custom field, and you will need to put some code to pick the data from the IT0105 for your custom subtype. Your ABAPer can help you in that, I can give you starting code tips: re_provide_from_last P0105 'CUST' PN-BEGDA PN-ENDDA. Then assign P0105-USRID or P0105-USRID_LONG to the custom field name that you created. Other option is to put Communication Subtype on Selection Screen and select only the subtype in which you are interested, but I do not recommend this approach, why?, I have discussed above that it may not give you all data and your reports may be wrong. Jul 8, 2008 6:26 PM Muhammad Harie Muhammad Amir Chow Shafiq Rehman in response to Hi again Shafiq, The other day I was using someone else's PC, hence, different name. Apparently, none of my ABAPers, not even the senior ones, are used to SAP Query. However, I managed to get some codings, very much like what you provided above. Coding was done in Free Coding code section. Upon generating, I would get error No code exists for additional field ZSYHR_A_P0105_AF_XXXX. Thanks and regards Oct 19, 2008 8:02 AM Yossi Bencuya Hi Thanks for the great explanation, i still have one question: Do you know how to create parameter with multiple selection? Nov 27, 2008 11:16 PM Muhammad Harie Muhammad Amir Chow Muhammad Harie Muhammad Amir Chow in response to
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
Hi, Finally I got the code working, without the warning. The problem is now, I couldn't select the additional as selection. Any ideas ? Apr 23, 2009 10:49 AM Daniel Gaytan Rodriguez Hi, Good work in this blog, thanks a lot. I had a question, how i can add additional structure. And how can optimizer the custom fields, because, I added some, and the report is very slow to generate the information on screen, and the browser shown a time out error; this reports are of e-Recruiting (web). Thank you, good day. Nov 24, 2009 8:20 PM Jeanette Fireman Hi Shafiq, This is a very helpful blog, however, I have followed your instructions for 'Report Assignment' and selected PA20 for my transaction. When I run my query and double click on a person's record PA20 is launched but it is not populated with any data. Have I missed a step somewhere? Thanks for your help. Regards, Jeanette Nov 25, 2009 8:58 AM Shafiq Rehman Jeanette Fireman in response to It should open up PA20 with that pernr selected, thats how I get it, just tested it today. Well if you hoping that it will open up an infotype, then it will not do it. You have to give the infotype number on PA20, but it will put the pernr on PA20 for you. Jan 14, 2010 9:07 AM Laurie Crow I realize that this blog has an emphasis on HR Module and my question is NOT HR related, but I cannot find anywhere else that addresses the SQ01 Report Assignment feature as clearly as this one. My query is all about the material master. One of my selection fields is the Material Number. It is also on my output. My Report Assignment to Tcode MM02 seems to only work if I have populated the Material Number field on the selection screen. Is there a way to get it to work even if I am not using the Material Number field on the selection screen? Or can you point me to another blog or forum where I can learn more? Mar 25, 2010 8:45 AM Community User Laurie Crow in response to At a previous company I worked at, the Infoset that was set up in Ad Hoc query had the facility to report by the org structure using the "Reporting set" . Does any one know how this is configured?
SAP ERP Human Capital Management (SAP ERP HCM): SAP Adhoc Query SQ01 SQ02 SQ03
I know that I can go to settings and select by "Start by selction screen" But I want to be able to use the Reporting set function. May 9, 2010 12:59 PM raveesh saurabh Hi, I liked the blog a lot. Thanks for it. But I am facing a problem. I have created the Infoset and added some additional custom fields to it. But these additional custom fields are not available as selection criteria while creating the query. Can you please tell me how to use the custom fields as selection criteria? Thanks, Raveesh