0% found this document useful (0 votes)
197 views

HANA ABAP UpdateErrors

This SQL command provides an overview of current SAP ABAP update requests in error state by summarizing data from the VBHDR and VBERROR tables. It accepts multiple input parameters to filter the results, aggregates the data based on specified criteria, and outputs aggregated counts along with fields like start time, application server, SAP client, and user. Sample output is provided showing aggregated rows of update request data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
197 views

HANA ABAP UpdateErrors

This SQL command provides an overview of current SAP ABAP update requests in error state by summarizing data from the VBHDR and VBERROR tables. It accepts multiple input parameters to filter the results, aggregates the data based on specified criteria, and outputs aggregated counts along with fields like start time, application server, SAP client, and user. Sample output is provided showing aggregated rows of update request data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

SELECT

/*

[NAME]

- HANA_ABAP_UpdateErrors

[DESCRIPTION]

- Overview of current SAP ABAP update requests in error state

[SOURCE]

- SAP Note 1969700

[DETAILS AND RESTRICTIONS]

- Tables VBHDR / VBERROR only available in SAP ABAP environments


- You have to be connected to the SAP<sid> schema otherwise the following error is
issued:

[259]: invalid table name: Could not find table/view VBHDR / VBERROR in schema

- If access to ABAP objects is possible but you cannot log on as ABAP user, you can
switch the default schema before executing the command:

SET SCHEMA SAP<sid>

[VALID FOR]

- Revisions: all
- Statistics server type: all
- Client application: ABAP

[SQL COMMAND VERSION]

- 2017/02/16: 1.0 (initial version)

[INVOLVED TABLES]

- VBERROR
- VBHDR

[INPUT PARAMETERS]

- BEGIN_TIME

Begin time

TO_TIMESTAMP('2014/06/05 14:05:00', 'YYYY/MM/DD HH24:MI:SS') --> Set begin time


to 5th of June 2014, 14:05
ADD_DAYS(CURRENT_TIMESTAMP, -2) --> Set begin time
to two days before current time

- END_TIME

End time
TO_TIMESTAMP('2014/06/08 14:05:00', 'YYYY/MM/DD HH24:MI:SS') --> Set end time to
8th of June 2014, 14:05
CURRENT_TIMESTAMP --> Set end time to
current time

- APP_SERVER

SAP application server

'sapabap01' --> Restrict output to application server sapabap01


'%' --> No restriction related to SAP application server

- MANDT

SAP ABAP client

'100' --> Only show work processes related to client 100


'%' --> No restriction related to SAP ABAP client

- WP_TYPE

SAP ABAP work process type (e.g. DIA, ENQ, BTC, UPD)

'DIA' --> Restrict output to dialog work processes


'%' --> No restriction related to work process type

- WP_ID

SAP ABAP work process ID

23 --> Show information for work process 23


-1 --> No restriction related to work process ID

- CPID

Client process ID (i.e. process ID of SAP ABAP work process)

1234 --> Show information for work process with client process ID
1234
-1 --> No restriction related to client process ID

- ACTION

SAP ABAP work process action

'SELECT' --> Restrict output to SELECT operations


'%' --> No restriction related to work process action

- TABLE_NAME

Accessed table name

'MARA' --> Restrict output to accesses to table MARA


'%' --> No restriction related to table name

- STATE

SAP ABAP work process state


'SYNC RFC' --> Restrict output to work processes in state SYNC RFC
'%' --> No process state restriction

- WAITING_FOR

Wait situation

'CMSEND%' --> Display only work processes waiting for CMSEND


'%' --> No restriction related to wait situation

- APP_USER

Application user

'SAPSYS' --> Application user 'SAPSYS'


'%' --> No application user restriction

- APP_SOURCE

Application source

'SAPL2' --> Application source 'SAPL2:437'


'SAPMSSY2%' --> Application sources starting with SAPMSSY2
'%' --> No application source restriction

- REQUEST_TYPE

Type of root request

'RFC%' --> Restrict results to RFC requests


'%' --> No restriction related to request type

- BATCH_JOB

Batch job name

'MYBATCH1' --> Only show information for batch job MYBATCH1


'%' --> No restriction related to batch job

- AGGREGATE_BY

Aggregation criteria (possible values can be found in comment)

'TIME' --> Aggregation by time


'HOST, PORT' --> Aggregation by host and port
'NONE' --> No aggregation

- TIME_AGGREGATE_BY

Aggregation criteria (possible values can be found in comment)

'HOUR' --> Aggregation by hour


'YYYY/WW' --> Aggregation by calendar week
'TS<seconds>' --> Time slice aggregation based on <seconds> seconds
'NONE' --> No aggregation

- ORDER_BY

Sort criteria (available values are provided in comment)


'SIZE' --> Sorting by size
'TABLE' --> Sorting by table name

[OUTPUT PARAMETERS]

- START_TIME: Start time of considered time interval


- SAMPLES: Number of samples
- APP_SERVER: Application server name
- MANDT: SAP ABAP client
- TYP: Work process type (e.g. DIA, BTC, UPD)
- WP_ID: Work process ID
- CPID: Client process ID (i.e. OS PID of work process)
- DB_ROWS: Database rows retrieved
- DB_TIME_MS: Database time spent (ms)
- ACTION: Action (e.g. SELECT, ENQUEUE, ROLL IN, INSERT, UPDATE)
- TABLE_NAME: Accessed table name (only one table displayed in case of joins)
- STATE: Work process state
- APP_USER: Application user
- APP_SOURCE: Application source (main ABAP module -> current ABAP module)
- REQUEST_TYPE: Root request type
- BATCH_JOB: Batch job name
- WAITING_FOR: Wait reason

[EXAMPLE OUTPUT]

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------
|START_TIME |APP_SERVER |MANDT|TYP|WP_ID|CPID |DB_ROWS |DB_TIME_S |
ACTION |TABLE_NAME |STATE |APP_USER |APP_SOURCE
|BATCH_JOB |WAITING_FOR
|
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------
|2017/02/15 12:01:00|saphana0_E9A_02| 103|DIA| 33| 20032| 0| 0.00|
SELECT |LQUA | |RUPUZIDAEK |SAPML03T -> SAPLL03A
| |
|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|DIA| 34| 20033| 1227| 0.27|
| | |JOBRUN |SAPMSSY1 -> SAPLVEDA
| |
|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|DIA| 66| 20066| 0| 0.00|
SELECT |COST | |PUZUTTIOBA |/GLB/RGTPTR_PROCESS_ORDER_VAR ->
SAPLKARS | |
|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|DIA| 77| 28920| 361| 0.51|
| |SYNC RFC |BGVASILEVA |RVV50R10C -> SAPLATPC
| |CMSEND(SAP) / 13410508 / SYNC_CPIC /
141.122.207.43|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|BTC| 113| 1876| 833| 0.88|
SELECT |VBFA | |JOBRUN |/EUR/ODECSR_COD_PROCESS ->
SAPLV05C |RU_R3E_CS_R_0065295_SDBLRU3AIMSP|
|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|BTC| 117| 22492| 283| 0.18|
| | |JOBRUN |SAPMV45A -> SAPLV69A
|IT_R3E_CS_R_0060246_ORDERS_E |
|
|2017/02/15 12:01:00|saphana0_E9A_02| 103|BTC| 119| 11503| 0| 0.00|
| |ABAP WAIT|NBNRA |/GLB/RGTFCR_INVOICE_JOB
|5200637291201720170215120040 |CMRCV / 77113581 / SYNC_CPIC
|
|2017/02/15 12:01:00|saphana1_E9A_02| 103|DIA| 8| 5335| 384| 0.57|
SELECT |LIKP | |BGMIHAYLAL1 |SAPMSSY1 -> SAPLV61B
| |
|
|2017/02/15 12:01:00|saphana1_E9A_02| 103|DIA| 22| 30973| 481| 0.64|
SELECT |/GLB/RGTNOSHPORD| |BGMIHAYLAL1 |SAPMSSY1 -> SAPLV61B
| |
|
|2017/02/15 12:01:00|saphana1_E9A_02| 103|DIA| 37| 30642| 0| 0.00|
SELECT |TRFCQOUT | |PUMAIZNEBA |SAPMSSY1 -> SAPLORFC
| |
|
|2017/02/15 12:01:00|saphana1_E9A_02| 103|DIA| 51| 5380| 0| 0.00|
| | |OSS_481396 |SAPMSSY1 ->
CL_SERVER_INFO================CP | |
|
|2017/02/15 12:01:00|saphana1_E9A_02| 103|DIA| 60| 30643| 1197| 0.92|
SELECT |EKBE | |DESERWEFL |RM06EL00 -> SAPLME07
| |
|
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
----------------------------

*/

START_TIME,
LPAD(NUM, 7) COUNT,
APP_SERVER,
LPAD(MANDT, 5) MANDT,
APP_USER,
REPORT_NAME,
TRANSACTION_NAME
FROM
( SELECT
CASE
WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'TIME') != 0 THEN
CASE
WHEN BI.TIME_AGGREGATE_BY LIKE 'TS%' THEN
TO_VARCHAR(ADD_SECONDS(TO_TIMESTAMP('2014/01/01 00:00:00', 'YYYY/MM/DD
HH24:MI:SS'), FLOOR(SECONDS_BETWEEN(TO_TIMESTAMP('2014/01/01 00:00:00',
'YYYY/MM/DD HH24:MI:SS'), TO_TIMESTAMP(H.VBDATE, 'YYYYMMDDHH24MISS')) /
SUBSTR(BI.TIME_AGGREGATE_BY, 3)) * SUBSTR(BI.TIME_AGGREGATE_BY, 3)), 'YYYY/MM/DD
HH24:MI:SS')
ELSE TO_VARCHAR(TO_TIMESTAMP(H.VBDATE, 'YYYYMMDDHH24MISS'),
BI.TIME_AGGREGATE_BY)
END
ELSE 'any'
END START_TIME,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'MANDT') !=
0 THEN H.VBMANDT ELSE MAP(BI.MANDT, '%', 'any', BI.MANDT)
END MANDT,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'APP_USER') !=
0 THEN H.VBUSR ELSE MAP(BI.APP_USER, '%', 'any', BI.APP_USER)
END APP_USER,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'SERVER') !=
0 THEN H.VBNAME ELSE MAP(BI.APP_SERVER, '%', 'any', BI.APP_SERVER)
END APP_SERVER,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'REPORT') !=
0 THEN H.VBREPORT ELSE MAP(BI.REPORT_NAME, '%', 'any', BI.REPORT_NAME)
END REPORT_NAME,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'TRANSACTION') !=
0 THEN H.VBTCODE ELSE MAP(BI.TRANSACTION_NAME, '%', 'any', BI.TRANSACTION_NAME)
END TRANSACTION_NAME,
COUNT(*) NUM,
BI.ORDER_BY
FROM
( SELECT
BEGIN_TIME,
END_TIME,
MANDT,
APP_USER,
REPORT_NAME,
TRANSACTION_NAME,
APP_SERVER,
AGGREGATE_BY,
MAP(TIME_AGGREGATE_BY,
'NONE', 'YYYY/MM/DD HH24:MI:SS',
'HOUR', 'YYYY/MM/DD HH24',
'DAY', 'YYYY/MM/DD (DY)',
'HOUR_OF_DAY', 'HH24',
TIME_AGGREGATE_BY ) TIME_AGGREGATE_BY,
ORDER_BY
FROM
( SELECT /* Modification section */
TO_TIMESTAMP('1000/07/11 06:15:00', 'YYYY/MM/DD HH24:MI:SS') BEGIN_TIME,
TO_TIMESTAMP('9999/07/11 06:18:00', 'YYYY/MM/DD HH24:MI:SS') END_TIME,
'%' MANDT,
'%' APP_USER,
'%' REPORT_NAME,
'%' TRANSACTION_NAME,
'%' APP_SERVER,
'TIME' AGGREGATE_BY, /* TIME, SERVER, MANDT, APP_USER, REPORT,
TRANSACTION or comma separated combinations, NONE for no aggregation */
'DAY' TIME_AGGREGATE_BY, /* HOUR, DAY, HOUR_OF_DAY or database time
pattern, TS<seconds> for time slice, NONE for no aggregation */
'TIME' ORDER_BY /* TIME, COUNT */
FROM
DUMMY
)
) BI,
VBHDR H,
VBERROR E
WHERE
TO_TIMESTAMP(H.VBDATE, 'YYYYMMDDHH24MISS') BETWEEN BI.BEGIN_TIME AND
BI.END_TIME AND
H.VBMANDT LIKE BI.MANDT AND
H.VBUSR LIKE BI.APP_USER AND
H.VBREPORT LIKE BI.REPORT_NAME AND
H.VBTCODE LIKE BI.TRANSACTION_NAME AND
H.VBNAME LIKE BI.APP_SERVER AND
H.VBKEY = E.VBKEY
GROUP BY
CASE
WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'TIME') != 0 THEN
CASE
WHEN BI.TIME_AGGREGATE_BY LIKE 'TS%' THEN
TO_VARCHAR(ADD_SECONDS(TO_TIMESTAMP('2014/01/01 00:00:00', 'YYYY/MM/DD
HH24:MI:SS'), FLOOR(SECONDS_BETWEEN(TO_TIMESTAMP('2014/01/01 00:00:00',
'YYYY/MM/DD HH24:MI:SS'), TO_TIMESTAMP(H.VBDATE, 'YYYYMMDDHH24MISS')) /
SUBSTR(BI.TIME_AGGREGATE_BY, 3)) * SUBSTR(BI.TIME_AGGREGATE_BY, 3)), 'YYYY/MM/DD
HH24:MI:SS')
ELSE TO_VARCHAR(TO_TIMESTAMP(H.VBDATE, 'YYYYMMDDHH24MISS'),
BI.TIME_AGGREGATE_BY)
END
ELSE 'any'
END,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'MANDT') !=
0 THEN H.VBMANDT ELSE MAP(BI.MANDT, '%', 'any', BI.MANDT)
END,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'APP_USER') !=
0 THEN H.VBUSR ELSE MAP(BI.APP_USER, '%', 'any', BI.APP_USER)
END,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'SERVER') !=
0 THEN H.VBNAME ELSE MAP(BI.APP_SERVER, '%', 'any', BI.APP_SERVER)
END,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'REPORT') !=
0 THEN H.VBREPORT ELSE MAP(BI.REPORT_NAME, '%', 'any', BI.REPORT_NAME)
END,
CASE WHEN BI.AGGREGATE_BY = 'NONE' OR INSTR(BI.AGGREGATE_BY, 'TRANSACTION') !=
0 THEN H.VBTCODE ELSE MAP(BI.TRANSACTION_NAME, '%', 'any', BI.TRANSACTION_NAME)
END,
BI.ORDER_BY
)
ORDER BY
MAP(ORDER_BY, 'TIME', START_TIME) DESC,
MAP(ORDER_BY, 'COUNT', NUM) DESC

You might also like