Message "No Queries Found" showing in ABAP Query
Hi,
I have a ABAP Query, in which i want to add a new field in it... I already add that field but not displaying when i m executing that query..
I think i copied only field, not give queries on field....
Because when i compare this field from earlier one....i found a diff. in it...When i click (right) on this field, - Queries for fields, it shows "Directory of Queries for field........", BUT When i click on my field, it gives a message - No queries found....
Please tell me, what is the problem...
Thanks..
Hi,
Try this:
SQ01->Query->More Functions->Adjust and Generate program, then Execute.
Similar Messages
-
ABAP query issue when logoff error message query not created
Hi All ,
I created a ABAP query using SQ01 . I saved it and i'm able to see the output . But , if i logoff from the system and relogin again to system and trying to execute the query , it is showing an error message
" The query has not been created " Please help me , is there any settings change or i have to do any thing else ?
Thanks & Regards ,
SabuHi ,
Yes you are right , when i try that way i can see , is it the correct solution ?
i have one more issue , i created the query , i can display and execute the query , but no one in the same system able to display or execute the query . What should i do .
Thanks & Regards ,
Sabu. -
ABAP Query - Not showing the required changes through Z T.Code
Hi,
I have a ABAP Query for OPEN DELIVERY QUANTITY (T.Code - ZABC). I change something in QUERY and activate. After that i execute it, and saw required changes.
But when i execute it with the T.Code - ZABC, it does not show the changes. Even i Save and Test with the SQ01 t.code.
Please tell me, what is the problem in it. Why not showing the required changes through T.Code - ZABC.
Regards...HI,
Dear, it seems that you have changed the query in SQ02 and then just save it and not generated.
or may be after generation again clicked on SAVE button.
So untill unless you will not generate the query, it won't work.
Secondly, by chanegs in the query, i don't think it changes the name of the main program.
Regds,
Anil -
When executing a query showing as ABAP runtime error RAISE_EXCEPTION
Hi all,
When i executed a query, it is showing as ABAP runtime error RAISE_EXCEPTION in the short dump.
This is the Analysis in Short dump (ST22)...............
Exception condition "DATE_BEFORE_RANGE" raised.
What happened?
The current ABAP/4 program encountered an unexpected
situation.
Error analysis
A RAISE statement in the program "SAPLSCAL" raised the exception
condition "DATE_BEFORE_RANGE".
Since the exception was not intercepted by a superior program
in the hierarchy, processing was terminated.
Short description of exception condition:
Date is earlier than factory calendar definition
For detailed documentation of the exception condition, use
Transaction SE37 (Function Library). You can take the called
function module from the display of active calls.
How to correct the error
You may able to find an interim solution to the problem
in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
"RAISE_EXCEPTION" C
"SAPLSCAL" or "LSCALU06"
"DATE_CONVERT_TO_FACTORYDATE"
or
"SAPLSCAL" "DATE_BEFORE_RANGE"
or
"WRITEQUERY " "DATE_BEFORE_RANGE"
Could you pls any one tell me what could be the problem and how to reslove this issue.
Thanks & Regards,
Ravi Kumar.Hi Andre,
Maintain your factory calendar idents Valid To year field (BJAHR) in Table TFACD
You can do this via tcode SCAL, or navigate through SPRO.
Most likely you have your factory calendars set with Valid To dates as 2010. You may also be encountering some load issues depending on exit routines used in transformations in determining workdays/factory days etc.
Thanks,
Eric Filmer -
ABAP Query Shows duplicate records
Hi
I have a ABAP query which links the VIQMEL table(notifcation number) and the VBAK table(order & net value). The report outputs as:
Notification A Order 10 SO value 1000
Notification B Order 10 SO value 1000
Notification C Order 10 SO value 1000
Notification D Order 10 SO value 1000
The problem is the value is repeated 4 times when we only want it shown the once, is this possible to do and if so how can this be done?
thanks
JoeDesp09 wrote:
Hi
>
> I have connected
>
> EKKO-EBELN to EKPO
>
> EKPO -EBELN and EKPO-EBELP to the same of EBAN
>
> also EKPO-BANFN and EKPO-BNFPO to the same of EBAN
>
> EBAN-BANFN and EBAN-BNFPO to VBEP
>
> VBEP-VBELN to VBAK-VBELn
>
> VBAK-VBELN to VBPA-VBELN
>
> VBPA-ADRNR to ADRC-ADDRNUMBER.
>
> This is the first time I have created a query so if you can kindly explain the logic of the error it would help in my future reports.
>
> Thanks
> Priya
Hi Priya,
You can simplify the process if you make use of the LDB, which will fetch the same report with std LDB available in the system.
You can define multiple infosets and pull the fields for easier approach.
Regards
Shiva -
How to make output of ABAp query interactive(drill down)..?
Hi All,
I have developed one ABAP query which shows the output in which there is a coloumm 'order number'.
I want to make this coloumn interactive ,that means after double clicking on any row of this colomn ,it should go to transaction KO02.
Where do i have to write the code in ABAP query ?
I am very new to ABAP query..this is the first query i have deloped till now.
points will be rewarded.
Thnks in advance.
Regards,
Sanjay.<b>The below sample code is one such example of Drill down reporting...
Make the necessary modifications, change the statement CALL TRANSACTION to whatever you want to CALL. Proceed further.</b>
*"Table declarations...................................................
TABLES:
EKKO, " Purchasing Document Header
CDHDR, " Change document header
SSCRFIELDS. " Fields on selection screens
*"Selection screen elements............................................
SELECT-OPTIONS:
S_EBELN FOR EKKO-EBELN, " Purchasing Document Number
S_LIFNR FOR EKKO-LIFNR, " Vendor's account number
S_EKGRP FOR EKKO-EKGRP, " Purchasing group
S_BEDAT FOR EKKO-BEDAT, " Purchasing Document Date
S_UDATE FOR CDHDR-UDATE. " Creation date of the change
" document
*" Data declarations...................................................
Field String to hold Purchase Document Number *
DATA:
BEGIN OF FS_EBELN,
EBELN(90) TYPE C, " Purchase Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created
" the Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EBELN,
Field String to hold Purchase Document Header *
BEGIN OF FS_EKKO,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
END OF FS_EKKO,
Field String to hold Account Number and name of the Vendor *
BEGIN OF FS_LFA1,
LIFNR TYPE LFA1-LIFNR, " Account Number of Vendor
NAME1 TYPE LFA1-NAME1, " Name1
END OF FS_LFA1,
Field String to hold Change date and the name of the user *
BEGIN OF FS_CDHDR,
OBJECTCLAS TYPE CDHDR-OBJECTCLAS, " Object Class
OBJECTID TYPE CDHDR-OBJECTID, " Object value
CHANGENR TYPE CDHDR-CHANGENR, " Document change number
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
END OF FS_CDHDR,
Field String to hold Change document items *
BEGIN OF FS_CDPOS,
OBJECTCLAS TYPE CDPOS-OBJECTCLAS," Object class
OBJECTID(10) TYPE C, " Object Value
CHANGENR TYPE CDPOS-CHANGENR, " Document change number
TABNAME TYPE CDPOS-TABNAME, " Table Name
FNAME TYPE CDPOS-FNAME, " Field Name
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_CDPOS,
Field String to hold Date Element Name *
BEGIN OF FS_DATAELE,
TABNAME TYPE DD03L-TABNAME, " Table Name
FIELDNAME TYPE DD03L-FIELDNAME, " Field Name
ROLLNAME TYPE DD03L-ROLLNAME, " Data element (semantic domain)
END OF FS_DATAELE,
Field String to hold Short Text of the Date Element *
BEGIN OF FS_TEXT,
ROLLNAME TYPE DD04T-ROLLNAME, " Data element (semantic domain)
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
END OF FS_TEXT,
Field String to hold data to be displayed on the ALV grid *
BEGIN OF FS_OUTTAB,
EBELN TYPE EKKO-EBELN, " Purchasing Document Number
ERNAM TYPE EKKO-ERNAM, " Name of Person who Created the
" Object
LIFNR TYPE EKKO-LIFNR, " Vendor's account number
EKGRP TYPE EKKO-EKGRP, " Purchasing group
BEDAT TYPE EKKO-BEDAT, " Purchasing Document Date
WERKS TYPE LFA1-WERKS, " Plant
NAME1 TYPE LFA1-NAME1, " Name1
USERNAME TYPE CDHDR-USERNAME, " User name
UDATE TYPE CDHDR-UDATE, " Creation date of the change
" document
DDTEXT TYPE DD04T-DDTEXT, " Short Text Describing R/3
" Repository Objects
VALUE_NEW TYPE CDPOS-VALUE_NEW, " New contents of changed field
VALUE_OLD TYPE CDPOS-VALUE_OLD, " Old contents of changed field
END OF FS_OUTTAB,
Internal table to hold Purchase Document Number *
T_EBELN LIKE STANDARD TABLE
OF FS_EBELN,
Internal table to hold Purchase Document Header *
T_EKKO LIKE STANDARD TABLE
OF FS_EKKO,
Temp Internal table to hold Purchase Document Header *
T_EKKO_TEMP LIKE STANDARD TABLE
OF FS_EKKO,
Internal table to hold Account number and Name of the Vendor *
T_LFA1 LIKE STANDARD TABLE
OF FS_LFA1,
Internal Table to hold Change date and the name of the user *
T_CDHDR LIKE STANDARD TABLE
OF FS_CDHDR,
Internal Table to hold Change document items *
T_CDPOS LIKE STANDARD TABLE
OF FS_CDPOS,
Temp. Internal Table to hold Change document items *
T_CDPOS_TEMP LIKE STANDARD TABLE
OF FS_CDPOS,
Internal Table to hold Data Element Name *
T_DATAELE LIKE STANDARD TABLE
OF FS_DATAELE,
Temp. Internal Table to hold Data Element Name *
T_DATAELE_TEMP LIKE STANDARD TABLE
OF FS_DATAELE,
Internal Table to hold Short Text of the Date Element *
T_TEXT LIKE STANDARD TABLE
OF FS_TEXT,
Internal Table to hold data to be displayed on the ALV grid *
T_OUTTAB LIKE STANDARD TABLE
OF FS_OUTTAB.
C L A S S D E F I N I T I O N *
CLASS LCL_EVENT_HANDLER DEFINITION DEFERRED.
*" Data declarations...................................................
Work variables *
DATA:
W_EBELN TYPE EKKO-EBELN, " Purchasing Document Number
W_LIFNR TYPE EKKO-LIFNR, " Vendor's account number
W_EKGRP TYPE EKKO-EKGRP, " Purchasing group
W_VALUE TYPE EKKO-EBELN, " Reflected Value
W_SPACE VALUE ' ', " Space
W_FLAG TYPE I, " Flag Variable
W_VARIANT TYPE DISVARIANT, " Variant
*--- ALV Grid
W_GRID TYPE REF TO CL_GUI_ALV_GRID,
*--- Event Handler
W_EVENT_CLICK TYPE REF TO LCL_EVENT_HANDLER,
*--- Field catalog table
T_FIELDCAT TYPE LVC_T_FCAT.
AT SELECTION-SCREEN EVENT *
AT SELECTION-SCREEN ON S_EBELN.
Subroutine to validate Purchase Document Number.
PERFORM VALIDATE_PD_NUM.
AT SELECTION-SCREEN ON S_LIFNR.
Subroutine to validate Vendor Number.
PERFORM VALIDATE_VEN_NUM.
AT SELECTION-SCREEN ON S_EKGRP.
Subroutine to validate Purchase Group.
PERFORM VALIDATE_PUR_GRP.
START-OF-SELECTION EVENT *
START-OF-SELECTION.
Subroutine to select all Purchase orders.
PERFORM SELECT_PO.
CHECK W_FLAG EQ 0.
Subroutine to select Object values.
PERFORM SELECT_OBJ_ID.
CHECK W_FLAG EQ 0.
Subroutine to select Changed values.
PERFORM SELECT_CHANGED_VALUE.
CHECK W_FLAG EQ 0.
Subroutine to Select Purchase Orders.
PERFORM SELECT_PUR_DOC.
Subroutine to select Vendor Details.
PERFORM SELECT_VENDOR.
Subroutine to select Text for the Changed values.
PERFORM DESCRIPTION.
END-OF-SELECTION EVENT *
END-OF-SELECTION.
IF NOT T_EKKO IS INITIAL.
Subroutine to populate the Output Table.
PERFORM FILL_OUTTAB.
Subroutine to build Field Catalog.
PERFORM PREPARE_FIELD_CATALOG CHANGING T_FIELDCAT.
CALL SCREEN 100.
ENDIF. " IF NOT T_EKKO...
CLASS LCL_EVENT_HANDLER DEFINITION
Defining Class which handles events
CLASS LCL_EVENT_HANDLER DEFINITION .
PUBLIC SECTION .
METHODS:
HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID.
ENDCLASS. " LCL_EVENT_HANDLER DEFINITION
CLASS LCL_EVENT_HANDLER IMPLEMENTATION
Implementing the Class which can handle events
CLASS LCL_EVENT_HANDLER IMPLEMENTATION .
*---Handle Double Click
METHOD HANDLE_HOTSPOT_CLICK .
Subroutine to get the HotSpot Cell information.
PERFORM GET_CELL_INFO.
SET PARAMETER ID 'BES' FIELD W_VALUE.
CALL TRANSACTION 'ME23N'.
ENDMETHOD. " HANDLE_HOTSPOT_CLICK
ENDCLASS. " LCL_EVENT_HANDLER
*& Module STATUS_0100 OUTPUT
PBO Event
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'OOPS'.
SET TITLEBAR 'TIT'.
Subroutine to fill the Variant Structure
PERFORM FILL_VARIANT.
IF W_GRID IS INITIAL.
CREATE OBJECT W_GRID
EXPORTING
I_SHELLSTYLE = 0
I_LIFETIME =
I_PARENT = CL_GUI_CONTAINER=>SCREEN0
I_APPL_EVENTS =
I_PARENTDBG =
I_APPLOGPARENT =
I_GRAPHICSPARENT =
I_NAME =
I_FCAT_COMPLETE = SPACE
EXCEPTIONS
ERROR_CNTL_CREATE = 1
ERROR_CNTL_INIT = 2
ERROR_CNTL_LINK = 3
ERROR_DP_CREATE = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0
CALL METHOD W_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BUFFER_ACTIVE =
I_BYPASSING_BUFFER =
I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME =
IS_VARIANT = W_VARIANT
I_SAVE = 'A'
I_DEFAULT = 'X'
IS_LAYOUT =
IS_PRINT =
IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING =
IT_HYPERLINK =
IT_ALV_GRAPHICS =
IT_EXCEPT_QINFO =
IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = T_OUTTAB
IT_FIELDCATALOG = T_FIELDCAT
IT_SORT =
IT_FILTER =
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF. " IF SY-SUBRC <> 0.
ENDIF. " IF W_GRID IS INITIAL
CREATE OBJECT W_EVENT_CLICK.
SET HANDLER W_EVENT_CLICK->HANDLE_HOTSPOT_CLICK FOR W_GRID.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
PAI Event
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form PREPARE_FIELD_CATALOG
Subroutine to build the Field catalog
<--P_T_FIELDCAT Field Catalog Table
FORM PREPARE_FIELD_CATALOG CHANGING PT_FIELDCAT TYPE LVC_T_FCAT .
DATA LS_FCAT TYPE LVC_S_FCAT.
Purchasing group...
LS_FCAT-FIELDNAME = 'EKGRP'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Number...
LS_FCAT-FIELDNAME = 'EBELN'.
LS_FCAT-REF_TABLE = 'EKKO' .
LS_FCAT-EMPHASIZE = 'C411'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-HOTSPOT = 'X'.
APPEND LS_FCAT TO PT_FIELDCAT .
CLEAR LS_FCAT .
Name of Person who Created the Object...
LS_FCAT-FIELDNAME = 'ERNAM'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-OUTPUTLEN = '15' .
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Purchasing Document Date...
LS_FCAT-FIELDNAME = 'BEDAT'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Vendor's account number...
LS_FCAT-FIELDNAME = 'LIFNR'.
LS_FCAT-REF_TABLE = 'EKKO'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Account Number of Vendor or Creditor...
LS_FCAT-FIELDNAME = 'NAME1'.
LS_FCAT-REF_TABLE = 'LFA1'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Vendor Name'(001).
LS_FCAT-SELTEXT = 'Vendor Name'(001).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Creation date of the change document...
LS_FCAT-FIELDNAME = 'UDATE'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Change Date'(002).
LS_FCAT-SELTEXT = 'Change Date'(002).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
User name of the person responsible in change document...
LS_FCAT-FIELDNAME = 'USERNAME'.
LS_FCAT-REF_TABLE = 'CDHDR'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '10'.
LS_FCAT-COLTEXT = 'Modified by'(003).
LS_FCAT-SELTEXT = 'Modified by'(003).
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Short Text Describing R/3 Repository Objects...
LS_FCAT-FIELDNAME = 'DDTEXT'.
LS_FCAT-REF_TABLE = 'DD04T'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '15'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
Old contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_OLD'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
New contents of changed field...
LS_FCAT-FIELDNAME = 'VALUE_NEW'.
LS_FCAT-REF_TABLE = 'CDPOS'.
LS_FCAT-INTTYPE = 'C'.
LS_FCAT-OUTPUTLEN = '12'.
APPEND LS_FCAT TO PT_FIELDCAT.
CLEAR LS_FCAT.
ENDFORM. " PREPARE_FIELD_CATALOG
*& Form SELECT_PO
Subroutine to select all the Purchase Orders
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PO .
SELECT EBELN " Purchasing Document Number
ERNAM " Name of Person who Created
" the Object
LIFNR " Vendor's account number
EKGRP " Purchasing group
BEDAT " Purchasing Document Date
FROM EKKO
PACKAGE SIZE 10000
APPENDING TABLE T_EBELN
WHERE EBELN IN S_EBELN
AND BEDAT IN S_BEDAT.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S401(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " SELECT_PO
*& Form SELECT_OBJ_ID
Subroutine to select Object ID
There are no interface parameters to be passed to this subroutine.
FORM SELECT_OBJ_ID .
IF NOT T_EBELN IS INITIAL.
SELECT OBJECTCLAS " Object Class
OBJECTID " Object value
CHANGENR " Document change number
USERNAME " User name
UDATE " Creation date
FROM CDHDR
INTO TABLE T_CDHDR
FOR ALL ENTRIES IN T_EBELN
WHERE OBJECTID EQ T_EBELN-EBELN
AND UDATE IN S_UDATE
AND TCODE IN ('ME21N','ME22N','ME23N').
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Header Not Found'(031).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EBELN IS INITIAL
ENDFORM. " SELECT_OBJ_ID
*& Form SELECT_CHANGED_VALUE
Subroutine to select Changed Values
There are no interface parameters to be passed to this subroutine.
FORM SELECT_CHANGED_VALUE .
IF NOT T_CDHDR IS INITIAL.
SELECT OBJECTCLAS " Object class
OBJECTID " Object value
CHANGENR " Document change number
TABNAME " Table Name
FNAME " Field Name
VALUE_NEW " New contents of changed field
VALUE_OLD " Old contents of changed field
FROM CDPOS
PACKAGE SIZE 10000
APPENDING TABLE T_CDPOS
FOR ALL ENTRIES IN T_CDHDR
WHERE OBJECTCLAS EQ T_CDHDR-OBJECTCLAS
AND OBJECTID EQ T_CDHDR-OBJECTID
AND CHANGENR EQ T_CDHDR-CHANGENR.
ENDSELECT.
IF SY-SUBRC NE 0.
W_FLAG = 1.
MESSAGE S833(M8) WITH 'Item Not Found'(032).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_CDHDR IS INITIAL
T_CDPOS_TEMP[] = T_CDPOS[].
ENDFORM. " SELECT_CHANGED_VALUE
*& Form SELECT_PUR_DOC
Subroutine to select Purchase Order Details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_PUR_DOC .
IF NOT T_CDPOS IS INITIAL.
SORT T_EBELN BY EBELN.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_EBELN INTO FS_EBELN WITH KEY EBELN =
FS_CDPOS-OBJECTID BINARY SEARCH.
IF SY-SUBRC NE 0.
DELETE TABLE T_EBELN FROM FS_EBELN.
ENDIF. " IF SY-SUBRC NE 0.
ENDLOOP. " LOOP AT T_CDPOS...
LOOP AT T_EBELN INTO FS_EBELN.
MOVE FS_EBELN-EBELN TO FS_EKKO-EBELN.
MOVE FS_EBELN-ERNAM TO FS_EKKO-ERNAM.
MOVE FS_EBELN-LIFNR TO FS_EKKO-LIFNR.
MOVE FS_EBELN-EKGRP TO FS_EKKO-EKGRP.
MOVE FS_EBELN-BEDAT TO FS_EKKO-BEDAT.
APPEND FS_EKKO TO T_EKKO.
ENDLOOP. " LOOP AT T_EBELN...
T_EKKO_TEMP[] = T_EKKO[].
ENDIF. " IF NOT T_CDPOS IS INITIAL
ENDFORM. " SELECT_PUR_DOC
*& Form SELECT_VENDOR
Subroutine to select Vendor details
There are no interface parameters to be passed to this subroutine.
FORM SELECT_VENDOR .
IF NOT T_EKKO IS INITIAL.
SORT T_EKKO_TEMP BY LIFNR.
DELETE ADJACENT DUPLICATES FROM T_EKKO_TEMP COMPARING LIFNR.
SELECT LIFNR " Account Number of Vendor or
" Creditor
NAME1 " Name 1
FROM LFA1
INTO TABLE T_LFA1
FOR ALL ENTRIES IN T_EKKO_TEMP
WHERE LIFNR EQ T_EKKO_TEMP-LIFNR.
IF SY-SUBRC NE 0.
MESSAGE S002(M8) WITH 'Master Details'(033).
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_EKKO IS INITIAL
ENDFORM. " SELECT_VENDOR
*& Form DESCRIPTION
Subroutine to get the description
There are no interface parameters to be passed to this subroutine.
FORM DESCRIPTION .
IF NOT T_CDPOS IS INITIAL.
SORT T_CDPOS_TEMP BY TABNAME FNAME.
DELETE ADJACENT DUPLICATES FROM T_CDPOS_TEMP COMPARING TABNAME FNAME
SELECT TABNAME " Table Name
FIELDNAME " Field Name
ROLLNAME " Data element
FROM DD03L
INTO TABLE T_DATAELE
FOR ALL ENTRIES IN T_CDPOS_TEMP
WHERE TABNAME EQ T_CDPOS_TEMP-TABNAME
AND FIELDNAME EQ T_CDPOS_TEMP-FNAME.
IF NOT T_DATAELE IS INITIAL.
T_DATAELE_TEMP[] = T_DATAELE[].
SORT T_DATAELE_TEMP BY ROLLNAME.
DELETE ADJACENT DUPLICATES FROM T_DATAELE_TEMP COMPARING ROLLNAME.
SELECT ROLLNAME " Data element
DDTEXT " Short Text Describing R/3
" Repository Objects
FROM DD04T
INTO TABLE T_TEXT
FOR ALL ENTRIES IN T_DATAELE_TEMP
WHERE ROLLNAME EQ T_DATAELE_TEMP-ROLLNAME
AND DDLANGUAGE EQ SY-LANGU.
IF SY-SUBRC NE 0.
EXIT.
ENDIF. " IF SY-SUBRC NE 0.
ENDIF. " IF NOT T_DATAELE IS INITIAL.
ENDIF. " IF NOT T_CDPOS IS INITIAL.
ENDFORM. " DESCRIPTION
*& Form FILL_OUTTAB
Subroutine to populate the Outtab
There are no interface parameters to be passed to this subroutine.
FORM FILL_OUTTAB .
SORT T_CDHDR BY OBJECTCLAS OBJECTID CHANGENR.
SORT T_EKKO BY EBELN.
SORT T_LFA1 BY LIFNR.
SORT T_DATAELE BY TABNAME FIELDNAME.
SORT T_TEXT BY ROLLNAME.
LOOP AT T_CDPOS INTO FS_CDPOS.
READ TABLE T_CDHDR INTO FS_CDHDR WITH KEY
OBJECTCLAS = FS_CDPOS-OBJECTCLAS
OBJECTID = FS_CDPOS-OBJECTID
CHANGENR = FS_CDPOS-CHANGENR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_CDHDR-USERNAME TO FS_OUTTAB-USERNAME.
MOVE FS_CDHDR-UDATE TO FS_OUTTAB-UDATE.
READ TABLE T_EKKO INTO FS_EKKO WITH KEY
EBELN = FS_CDHDR-OBJECTID
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_EKKO-EBELN TO FS_OUTTAB-EBELN.
MOVE FS_EKKO-ERNAM TO FS_OUTTAB-ERNAM.
MOVE FS_EKKO-LIFNR TO FS_OUTTAB-LIFNR.
MOVE FS_EKKO-EKGRP TO FS_OUTTAB-EKGRP.
MOVE FS_EKKO-BEDAT TO FS_OUTTAB-BEDAT.
READ TABLE T_LFA1 INTO FS_LFA1 WITH KEY
LIFNR = FS_EKKO-LIFNR
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_LFA1-NAME1 TO FS_OUTTAB-NAME1.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
MOVE FS_CDPOS-VALUE_NEW TO FS_OUTTAB-VALUE_NEW.
MOVE FS_CDPOS-VALUE_OLD TO FS_OUTTAB-VALUE_OLD.
READ TABLE T_DATAELE INTO FS_DATAELE WITH KEY
TABNAME = FS_CDPOS-TABNAME
FIELDNAME = FS_CDPOS-FNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE T_TEXT INTO FS_TEXT WITH KEY
ROLLNAME = FS_DATAELE-ROLLNAME
BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE FS_TEXT-DDTEXT TO FS_OUTTAB-DDTEXT.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0.
APPEND FS_OUTTAB TO T_OUTTAB.
CLEAR FS_OUTTAB.
ENDLOOP.
ENDFORM. " FILL_OUTTAB
*& Form GET_CELL_INFO
Subroutine to get the Cell Information
--> W_VALUE Holds the value of Hotspot clicked
FORM GET_CELL_INFO .
CALL METHOD W_GRID->GET_CURRENT_CELL
IMPORTING
E_ROW =
E_VALUE = W_VALUE
E_COL =
ES_ROW_ID =
ES_COL_ID =
ES_ROW_NO =
ENDFORM. " GET_CELL_INFO
*& Form VALIDATE_PD_NUM
Subroutine to validate Purchase Document Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PD_NUM .
IF NOT S_EBELN[] IS INITIAL.
SELECT EBELN " Purchase Document Number
FROM EKKO
INTO W_EBELN
UP TO 1 ROWS
WHERE EBELN IN S_EBELN.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E717(M8).
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EBELN[]...
ENDFORM. " VALIDATE_PD_NUM
*& Form VALIDATE_VEN_NUM
Subroutine to validate Vendor Number
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_VEN_NUM .
IF NOT S_LIFNR[] IS INITIAL.
SELECT LIFNR " Vendor Number
FROM LFA1
INTO W_LIFNR
UP TO 1 ROWS
WHERE LIFNR IN S_LIFNR.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E002(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_LIFNR[]...
ENDFORM. " VALIDATE_VEN_NUM
*& Form VALIDATE_PUR_GRP
Subroutine to validate the Purchase Group
There are no interface parameters to be passed to this subroutine.
FORM VALIDATE_PUR_GRP .
IF NOT S_EKGRP[] IS INITIAL.
SELECT EKGRP " Purchase Group
FROM T024
INTO W_EKGRP
UP TO 1 ROWS
WHERE EKGRP IN S_EKGRP.
ENDSELECT.
IF SY-SUBRC NE 0.
CLEAR SSCRFIELDS-UCOMM.
MESSAGE E622(M8) WITH W_SPACE.
ENDIF. " IF SY-SUBRC NE 0
ENDIF. " IF NOT S_EKFRP[]...
ENDFORM. " VALIDATE_PUR_GRP
*& Form FILL_VARIANT
Subroutine to fill the Variant Structure
There are no interface parameters to be passed to this subroutine
FORM FILL_VARIANT .
Filling the Variant structure
W_VARIANT-REPORT = SY-REPID.
W_VARIANT-USERNAME = SY-UNAME.
ENDFORM. " FILL_VARIANT
Regards,
Pavan -
Dear gurus,
I want to use ABAP query. However, i wonders about its performance.
Would anyone please show your opinion and experience using this tool?
Is it taking long time to run this tool? Will it effect the overall performace of the system if i use this tool? <b><REMOVED BY MODERATOR></b>
Thanks
Ammy
Message was edited by:
Alvaro Tejada GalindoHello,
plrase check the link
http://www.sap-img.com/abap/what-is-sap-queries.htm
http://www.thespot4sap.com/Articles/SAP_ABAP_Queries_Authorizations.asp
http://www.ies.state.pa.us/hr/lib/hr/BJ0033_Travel_SQ00_Transfer_Travel_Expense_Reporting_.pdf
Executing Query
http://help.sap.com/erp2005_ehp_02/helpdata/en/d2/cb4056455611d189710000e8322d00/frameset.htm
Queries
http://help.sap.com/erp2005_ehp_02/helpdata/en/d2/cb476b455611d189710000e8322d00/frameset.htm
Sap Queries
http://help.sap.com/erp2005_ehp_02/helpdata/en/4f/71e252448011d189f00000e81ddfac/frameset.htm
Sap Query Components
http://help.sap.com/erp2005_ehp_02/helpdata/en/d2/cb3f2e455611d189710000e8322d00/frameset.htm
Sample Screen Shots
http://www.olemiss.edu/projects/sap/SQ01_10_03.pdf
<b><REMOVED BY MODERATOR></b>
Regards,
LIJO
Message was edited by:
Alvaro Tejada Galindo -
ABAP Query Transport request related
Hi,
I have created a Abap query,
1) User group
2)Infoset
3) Query
But when i transport the request in to Quality, I can see only Infoset, not able to see User group and query which i created in the
Development
Please suggest, is this std behaviour or is anything missed
Rgds,
JaiThanks to all,
I just created TR with new package for user group and included ifoset and query in the same TR
and imported, issue is resolved
But my question is,where we can utilize below help material, I have spent much time to understand below given explaination and finally left without any conclusion
Short text
SAP Query: Transport tool
Description
The report RSAQR3TR handles all tasks concerning the transport of queries, InfoSets and user groups.
General information
Queries, InfoSets and user groups are stored in the table AQDB. This table is client-specific. For the transport of queries, InfoSets and user groups, there is a special client-independent transport table called TAQTS. You can carry out transports either
· from a client (source client) of an SAP system to another client (target client) in the same SAP system or
· from a client (source client) of an SAP system (source system) to a client (target client) in another SAP system (target system).
In both cases, you have to perform similar actions.
The objects to be transported must first be copied from the source client using an export from the table AQDB into the transport table TAQTS. At the same time, a transport request is created for the transport system that includes all entries created by the export from table TATQS (transport dataset). The name of this transport request conforms to the transport system naming conventions (sysKnnnnnn) and is included in the export log. The transport dataset is stored in the table TAQTS under a key which matches the name of the transport request.
If you are transporting within one SAP system (from one client to another), you can import the transport dataset from the target client. The name of the transport request to use for this purpose is that specified during the export, since it should match the key of the transport dataset in the table TAQTS. With this import, the transport dataset is read from the transport table TAQTS and inserted into the table AQDB, where extensive checks ensure that there are no inconsistent statuses in the table AQDB.
If you are transporting from one SAP system to another, you must first use the transport system to release and export the transport request generated by the export. This transports the transport dataset from the transport table TAQTS into the target system. Then, you can import from the target client of the target system, as described above.
The transport datasets generated by exports in the transport table TAQTS are not deleted after successful import unless this is explicitly requested. Therefore, you can import a transport dataset several times (when copying a functional area to several different clients, for example).
This report handles exports (generation of transport datasets), imports (reading of transport datasets) as well as the management (display and deletion) of transport datasets.
As transport action, you must specify one of the values EXPO (export), IMPO (import), SHOW (display transport dataset) or DELE (delete transport dataset).
Transport action EXPO (exports)
If you select the 'Test only' parameter when exporting (no blank characters), the system determines only those queries, InfoSets and user groups that would be selected according to the selections for transport described below and generates an appropriate log. A transport dataset is not generated in the table TAQTS. This allows you to check whether a selection really includes the queries, InfoSets and user groups to be transported.
With exports, there are four different options for selecting objects (user groups, InfoSets, queries) to be transported. These are 'Transport of user groups', 'Transport of InfoSets', 'Transport of InfoSets and queries' and 'Transport of queries'. You must choose exactly one of these transport types.
In each case, you can also define an import option depending on the transport type. This allows you to determine how the transport dataset is inserted in the table AQDB of the target client during a later import.
The import options, each of which has an abbreviated syntax,
are as follows:
REPLACE or R
MERGE or M
GROUP=ug or G=ug (ug = name of a user group)
UNASSIGN or U
If you use the transport type 'Transport of user groups', all user groups are transported according to the select option 'user groups' and the selected import option. The import options REPLACE and MERGE are allowed.
If you use the transport type 'Transport of InfoSets', all InfoSets are transported according to the select option 'InfoSet' and the selected import option. The import options REPLACE, MERGE, GROUP=ug and UNASSIGN are allowed.
If you select the transport type 'Transport of InfoSets and queries', all InfoSets are transported according to the select option 'InfoSets' and the selected import option. The import options REPLACE and MERGE are allowed. Also, all queries are transported for each functional area selected, according to the select option 'queries'. In this case, the user groups of the queries are irrelevant and only the import option REPLACE is allowed.
This transport type allows you to transport a modified InfoSet and all the associated queries.
For the transport type 'Transport of queries', all queries are transported according to the select option 'User groups' and the select option 'Queries' as well as the selected import option. The import options REPLACE and GROUP=ug are allowed.
The export log displays which user groups, which InfoSets and which queries are transported, as well as the import options used.
Transporting a user group
Transporting a user group means transporting all members of the group from the source client. However, the InfoSet assignment to the user group in the source client is NOT transported.
The import option REPLACE first deletes all members of the group in the target client and then enters the members from the source client.
The import option MERGE leaves all members of the group assigned in the target client and adds the members of the group from the source client.
Entering a new member in a user group in the target client is possible only if a user master record exists.
In the target client, the assignment of InfoSets to this user group remains.
Transporting an InfoSet
Transporting an InfoSet means transporting the InfoSet and the InfoSet assignment to user groups in the source client.
Importing an InfoSet is possible only if the same logical database exists in the target client. Extensive checking is also performed to ensure that there are no inconsistencies between the InfoSet and the logical database.
The import option REPLACE first deletes the assignment of the InfoSet to user groups in the target client, provided there are no queries dependent on the InfoSet. The InfoSet is then transported to the target client and the assignment of the InfoSet to user groups is copied from the source client, if user groups also exist in the target client.
The import option GROUP=ug first deletes the assignment of the InfoSet to user groups in the target client, provided there are no queries referring to the InfoSet. The InfoSet is then transported to the target client and assigned to the user group ug of the target client, if such a user group exists.
The import option MERGE leaves the assignment of the InfoSet to user groups in the target client and transports it to the target client. It then copies the assignment of the InfoSet to user groups from the source client if user groups also exist in the target client.
The import option UNASSIGN first deletes the assignment of the InfoSet to user groups in the target client, provided there are no queries referring to the InfoSet. The InfoSet is then transported to the target client. No assignment of the InfoSet to user groups is performed.
Transporting a query
Transporting a query means only the query itself is transported.
Importing a query is possible only if a corresponding user group (see below) and a corresponding InfoSet exist in the target client and if the InfoSet is assigned to the user group. To demonstrate the effect of the import options, suppose that the query has the name QU and belongs to the user group BQ in the source client.
The import option REPLACE overwrites the query QU of the user group BQ in the target client if the user group exists.
The import option GROUP=ug overwrites the query QU of the user group UG in the target client if the user group exists. In this case, the query is explicitly assigned to a user group in the target client. This target user group may be differnet from the user group in the source client.
Transport action IMPO (imports)
If you choose the 'Test only' parameter with imports, only a test import is performed. This means that the system performs checks as for a real import and generates an import log. The import log contains information on the locks that have to be set. With a test import, you can check whether a transport dataset can be imported without any problem and which changes it would make in the table AQDB of the target client. A test import itself never makes changes in the table AQDB of the target client.
All transport datasets are imported according to the select option 'transport request'. In this case, the system outputs a detailed log of all checks carried out and all changes made in the table AQDB.
If you select the parameter 'Delete after successful import', the transport dataset in the table TAQTS is deleted after the import of each transport dataset if no errors occur during the import.
Transport action SHOW (display)
All transport datasets included in the transport table TAQTS are output with name (also the name of the transport request) and contents in the form of an overview.
Transport action DELE (delete)
All transport datasets are deleted according to the select option 'transport request'. To avoid unintentional deletion, the select option 'transport request' must contain values, meaning that the transport action DELE is not performed if this select option is empty.
Transport of ABAP Query
I am involved in this upgrade project to 4.7
The users are not able to find any reports (in QA System) which were there before the upgrade in SQ01. But they can see them in production which is not yet upgraded. They want me to copy all the reports to the QA system now....I dont have any idea how to do that.
I remember a similar problem upgrading to 4.6C from 4.5B ......
Take a look at OOS note 672784.
You can transport queries between systems in SQ02 (hit the lorry button) or run program RSAQR3TR.
You download the infosets, queries etc into a file and load them into whichever system you wish.
Just wanted to share my experience of transporting queries:
I needed to move a user group, 2 infosets and 3 queries from a 4.6 system to a 4.7 system.
When I tried doing this via the SQ* transactions I did not get the import/export option, so instead ran RSAQR3TR.
Step 1. Run RSAQR3TR in 'old' system. Select EXPORT and specify the objects to be transported.
(System includes these in an automatically created transport request)
Step 2. Release this transport and request it be transported to 'new' system.
(This results in the entries being populated in transport table AQTDB in 'new' system).
Step 3. Run RSAQR3TR in 'new' system. Select IMPORT and tick the Overwrite checkbox. Specify the transport number in the field labelled 'dataset with imports'.
(RSAQR3TR gives the message that stuff has been imported OK).
Step 4. In my example I still couldn't find the queries, so ran RSAQR3TR one more time, this time specifying 'Copy Standard Area -> Global Area'.
(Now my queries etc were available in new system).
Perhaps there are better ways, but after 1.5 days of struggling I was glad to get this far.
regards,
Jai -
ABAP Query Miising after ECC6.0 Upgrade from 4.7
Hi
We are upgrading from 4.7 to ECC 6.0. After upgrading, we found that ABAP queries that were there in 4.7 are missing. It gives an error that AQZZ####... Program not found.
What could be the problem, is there something we left out while upgrading?
Regards
Ramyaso you say, the tcode directly calls a program? The generated program name might be different between releases.
A tcode for query has to look like:
Create a transaction calling transaction START_REPORT with the following parameters/attributes filled :
D_SREPOVARI-REPORTTYPE= AQ "parameter indicating Abap Query
D_SREPOVARI-REPORT= ' ' "Query User group
D_SREPOVARI-EXTDREPORT= ' ' "Query name
Did you check the standard / global areas in SQ01?
Message was edited by:
Eric Cartman -
Logical database of ABAP query
Hi,
Can anybody please let me know what is the Logical database for ETXDCI, ETXDCH & ETXDCJ (Tax tables) with any sales document tables? I need to develop one ABAP query for the users.
I am a Functional person so I would like to know Can anybody please let me know how I can find out the Logical database?
Your time and help will be really appreciate.
Thanks & Regards,
Niki Shah.Try the BRF logical database.
I found it by searching in which programs the tables were used.
It show program SAPDBBRF which is the program for logical database BRF.
Kind regards,
Arthur Parisius -
How to hide some fields in ABAP Query
Hi,
My ABAP Query has a long list of extracted fields. I wanted to set some of these output to "HIDE".
This allow User the flexibility to decide what fields to show.
How can I set the field to "HIDE" in my query?
Thanks
byeHi Tim,
You can do this by setting the Report layout variant in following steps:
1. First define the parameter on selection screent for report variant.
2. Data decelaration for variant.
3. Value request to get already present variants on report:
4. If doesn't choose the layout take out the default report layout.
5. Initialize the report variant.
6. Apply the variant to the REUSE_ALV_GRID_DISPLAY funtion module.
Here to generate report variant first to open report output and then as per according to user set the layout of report using the layout icon of ALV with summation on value fields (as required) and create layout name.
*Data Deceleration as below:
Data :g_save(1) TYPE c,
** g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant TYPE disvariant,
g_variant TYPE disvariant.
*First Define the parameter to give layout of Report variant.
SELECTION-SCREEN BEGIN OF BLOCK 3 WITH FRAME TITLE text-003.
PARAMETERS: p_vari TYPE disvariant-variant.
SELECTION-SCREEN END OF BLOCK 3.
* Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
PERFORM f4_for_variant.
* Selection-Screen Checking
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
INITIALIZATION.
w_repid = sy-repid.
PERFORM variant_init.
* Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
FORM f4_for_variant .
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
** ELSE.
** IF g_exit = space.
** ENDIF.
ENDIF.
ENDFORM. " f4_for_variant
FORM pai_of_selection_screen .
IF NOT p_vari IS INITIAL.
MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.
ELSE.
PERFORM variant_init.
ENDIF.
ENDFORM. " pai_of_selection_screen
FORM variant_init .
CLEAR g_variant.
g_variant-report = w_repid.
ENDFORM. " variant_init
**While Showing report pass the variant :::
g_save = 'A'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_structure_name = 'IT_MAIN'
is_layout = i_layout
is_print = i_print
it_fieldcat = i_fieldcat[]
it_events = i_events[]
i_save = g_save
is_variant = g_variant
TABLES
t_outtab = it_main
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Many Thanks / Himanshu Gupta -
User restrictions in a ABAP Query (sq01)
Hello,
I'm new into queries so I have a question for you gurus...
I have a working abap query, created via SQ01 but this is showing all the data to all the users who have rights to call this transaction.
BUT
for example
user A works for plant X
user B works for plant Y
if user A calls the query, he should only see the data from plant X
if user B calls the query, he should only see the data from plant Y
Can you guys please help me out to get this thing working...
Since i'm new in SAP I don't know alot about restrictions etc
so please help me out with a newbie-answer
(please describe évery step that i should do so the users only get their local data)
thank you very much for your help!We're looking into restrictions on SQ01 too. We thought that creating protected variants would solve our issue; but, we can't prevent a user from copying or creating their own variant. When the user can create his or her own variant, then all the protection we built into our admin team's variants are gone.
-
Adding code in ABAP Query(ABAP HR)
I have created an ABAP Query for getting the Absence details of employee within a specified period.I am populating the fields
Employee number, Organization Unit,Absence start date,Absence hours, Absence enddate.
If an employee is in leave for 10 days, this information will be stored in PA2001 table,and this table is not Organization specific.
During the specified period(20 days), if an employee is under two Organization units(5 days in 1st Org Unit,15 days in 2nd Org Unit). The query is extracting two records for the same employee, because of two Organization units. And while populating the data, the query is getting the Absence information from PA2001 table, and this is causing overlapping of data. So it is showing the Absence details for that employee as 40 days(20 days in 1st Org Unit and 20 days in 2nd Org Unit,Instead of total 20 days). So i would like to add validation over here after extraction of data from the PA2001 table,before displaying the data.
I have tried adding the code in the infoset, at END OF SELECTION Event,but i am not able to change the list, as i am not able to access the tables used by the Query.
Can anybody suggest me where to add the code in the Query, so that i will be able to solve this issue, instead of changing the code in the Report program generated by the Query.you can look at BAPI_PTIMEOVERVIEW_GET
this gives the output back for the selected period so you don't get alle the records back from you're pa2001 table. (only this overview doesn't take into considerationd the distiction the difference between leave and illness)
further on if you consider using the pa2001 table you can loop through the begda and endda and add 1 day for each record and programm the logic how you want to intrepet each day you'reself
I use the data from perws which comes from the function HR_PERSONAL_WORK_SCHEDULE
(which is also used in the BAPI mentioned above)
and from PA0001 you can retrieve how long somebody was in 1 org unit !!
LOOP AT it_2001 WHERE begda BETWEEN i_begda AND i_endda
OR endda BETWEEN i_begda AND i_endda.
h_datum = it_2001-begda.
IF it_2001-awart BETWEEN '0100' AND '0199'.
WHILE h_datum <= it_2001-endda.
READ TABLE it_perws WITH KEY datum = h_datum.
IF sy-subrc = 0.
* you're logic
ENDIF.
CALL FUNCTION 'FKK_DTE_ADD'
EXPORTING
i_base_date = h_datum
i_periode = 'D'
i_period_factor = 1
* I_USE_FACCAL = ' '
* I_WORKDAY_INDICATOR = '-'
IMPORTING
e_datum = h_datum
* EXCEPTIONS
* ERROR_OCCURED = 1
* OTHERS = 2
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDWHILE.
kind regards
arthur de smidt
Edited by: A. de Smidt on Jul 16, 2008 8:47 AM -
Hello All,
While creating an SAP Query using SQ01, SQ02 transactions on an ECC 6 IDES system, a message appears : "Convert First"
The detailed message is as :
Convert First
Message No. AQ898
Diagnosis
Before you work with queries, functional areas or user groups in this query area, you must convert the objects.
Procedure
Get your system administrator to convert the objects. The ABAP Query Release Information for Release 4.0A describes how to convert these objects. Also read Note 92124
I have read the note, but that doesnt apply in my case. This is on ECC 6 IDES system, 700 kernel.
Please help me resolve.
Thanks,
Shahid Ahmed.Thanks for your replies.
For the programs mentioned above, what should be the inputs inorder to execute it?
And are these programs and the conversion, compatible with the 700 kernel?
I have just recently installed the latest patch of 710 GUI. I dont think that would be the reason for the conversion of objects.
Thanks,
Shahid. -
Hi All,
We created an ABAP Query report for Transfer order address and it is system generated report. When I am trying to find the version management but is it showing no version found. Even I have created TR manunally and imported to quality system, But this program is not moved.
I have a doubt here this is system generated program that we cant import to other system or can we import?
Can you please let us know how can we transport ABAP query report?
Regards,
Jyothi CH.Hi Jyothi,
Copy this report in another prog, save with package. that time it will be asking request. make request for this copy prog
so this way you can able to find transport request.
Regards,
Kunjan
Maybe you are looking for
-
I accidentally restored my phone with all my daughters phone data. Can I get back my phone data?
-
How do I get rid of these annoying virus scan pop-up windows?!?
Every time I get on my laptop, these stupid virus scan windows pop up and they won't go away! No matter if I press Eject or Cancel, and as you can see, there is NO option to x it out! Only the yellow and green buttons show up, but the red X button do
-
I want to buy new level from candy crush, but unfortunately apple required to accept terms and condition first before I can buy. But once I click yes no more option to click I agree with the condition. what should I do?
-
The error message is "Processing of Change Number xxxxxxxxxxxxxxxx Cancelled" Message Number CC569. We cannot see more error details in application log. Please provide some clues on how to avoid this error
-
How come the product I want in English is only listed next to other countries