while debugging i find the code it jumps from line 31 to 49 ,but roiksd_dlnumber is not initial it has value
RUN TIME error when i try to update the overall limit expected value of PO in ME22 or ME23,
when i try to update the overall limit and expected value of PO in ME22 or ME23,i get message PO changed but immediately after it doing any action (pressing back button or executing /n /o or a new transaction leads to itab_exception) and PO limits does not gets updated.PO limits has only old values new values are not set.
the run time error is
Category ABAP Programming Error
Runtime Errors RAISE_EXCEPTION
ABAP Program SAPLCOBO
Short text
Exception condition "ITAB_ERROR" raised.
What happened?
The current ABAP/4 program encountered an unexpected
situation.
Error analysis
A RAISE statement in the program "SAPLCOIT" raised the exception
condition "ITAB_ERROR".
Since the exception was not intercepted by a superior
program, processing was terminated.
-
How to correct the error
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"RAISE_EXCEPTION" " "
"SAPLCOIT" or "LCOITU41"
"CO_IT_GET_PROV_OF_OPERATIONS"
or
"SAPLCOIT" "ITAB_ERROR"
or
"RSM13000 " "ITAB_ERROR"
System environment
SAP Release..... 731
SAP Basis Level. 0002
Char.set.... "C"
SAP kernel....... 720
User and Transaction
Language key........ "E"
Transaction......... "ME22N "
Program............. "SAPLCOIT"
Screen.............. "RSM13000 3000"
Screen Line......... 2
Debugger Active..... "none"
Information on where terminated
Termination occurred in the ABAP program "SAPLCOIT" - in
"CO_IT_GET_PROV_OF_OPERATIONS".
The main program was "RSM13000 ".
In the source code you have the termination point in line 67
of the (Include) program "LCOITU41".
The program "SAPLCOIT" was started in the update system.
Source Code Extract
Line SourceCde
37 while sy-subrc <> 8.
38 last_index_prov = last_index_prov + 1.
39 read table itab index last_index_prov.
40 if itab-object = obj-alt
41 or sy-subrc <> 0.
42 sy-subrc = 8.
43 endif.
44 check sy-subrc = 0.
45 perform check_objectt using itab opr_index_tab.
46 modify opr_index_tab index 1.
47 endwhile.
48
49 else.
50 * Zuordnung zu Vorgängen
51 loop at opr_index_tab.
52 * Vorgang nachlesen
53 perform afvg_read_ind(saplcobo) using opr_index_tab-index
54 afvgd
55 sy-subrc.
56
57 * Untervorgänge werden nicht berücksichtigt
58 check afvgd-sumnr is initial.
59 * Komponenten in ITAB enthalten ?
60 perform check_db_read_into_itab using afvgd-aufnrd.
61
62 perform itabkey_afvg_built using afvgd itab_key.
63
64 read table itab with key itab_key binary search.
65
66 if sy-subrc ne 0.
>>>>> raise itab_error.
68 endif.
69
70 check itab-object eq obj-pos.
71
72 last_index_prov = sy-tabix.
73
74 if not afvgd-flg_vab is initial.
75 opr_index_tab-flag_snt = yx.
76 modify opr_index_tab.
77 endif.
78
79 while sy-subrc <> 8.
80 last_index_prov = last_index_prov + 1.
81 read table itab index last_index_prov.
82 if itab-object = obj-alt
83 or itab-object = obj-seq
84 or itab-object = obj-pos
85 or itab-object = obj-zue or sy-subrc <> 0.
86 sy-subrc = 8.
Contents of system fields
Name Val.
SY-SUBRC 8
SY-INDEX 1
SY-TABIX 5
SY-DBCNT 1
SY-FDPOS 10
SY-LSIND 0
SY-PAGNO 0
SY-LINNO 1
SY-COLNO 1
SY-PFKEY
What should be done to overcome this error?
Need information about CBTA tool
Hi,
I have few questions related to CBTA tool.
1. How to convert eCATT test scripts to CBTA test scripts.
2. Is there any documents or links available for WebUI recording. ( As WebUI is being accessed through URL, how to specify the URL )
3. What are the new features added in the CBTA as compared to eCATT tool
Regards,
Siva
ECATT optional execution
Hello!
I have a sapgui command, which selects a key from dropdown list. But this command is optional. This means that in some variants this command receives empty input parameter. This results in error, because empty key has ' ' (space) value and there is no '' (empty) keys in list.
Currently Im using this code.
--------------------
if (i_parameter = '').
v_parameter = ' '.
else.
v_parameter = i_parameter.
endif.
--------------------
Is there any way to do it simpler?
Thanks!
ecatt and Java WebDynpro?
Hi guys,
this is probably a simple Yes/No question for everyone but i can't seem to figure it out.
We are on netweaver7, ehp2.
Can we use eCatt to test Java Web dynpro?
Does anyone have any advice for free ways to do performance test on a Java Gui?
Thanks a million.
Sara
rc29p-lgort and mdma-eisbe
Hi Experts,
I want to add safety stock field to report.
If rc29p-lgort is blank, I want to use marc-eisbe display in the report.
On the other hand, the mdma-eisbe will display in the report when the rc29p_lgort is not blank,
My syntax is as follows.
IF rc29p-lgort[] = ' '.
SELECT SINGLE eisbe FROM marc INTO itab-eisbe
WHERE matnr = p_matnr AND werks = p_werks.
ELSE.
SELECT SINGLE eisbe
FROM mdma INTO itab-eisbe
WHERE matnr = p_matnr AND werks = p_werks AND lgort = rc29p-lgort.
ENDIF.
Is the syntax correct?
How can I revise effectively?
I will be grateful for any help you can provide.
Best Regards,
Stanley
op is not displaying
I have develop a Z report for opening and closing balance of a GL account.In this report opening balance is coming right but closing balance and credit amount is not coming correct as per std FS10n
IF T_BKPF[] ISNOTINITIAL.
*BREAK-POINT.
SELECT * FROM BSEG INTO
CORRESPONDING FIELDSOFTABLE T_BSEG
FORALL ENTRIES IN T_BKPF
WHERE
BUKRS = T_BKPF-BUKRS AND
BELNR = T_BKPF-BELNR AND
GJAHR = T_BKPF-GJAHR AND
HKONT IN S_HKONT.
LOOPAT T_BSEG.
IF T_BSEG-SHKZG = 'S'. " DEBIT
OPENING = OPENING + T_BSEG-DMBTR.
ELSE." CREDIT
OPENING = OPENING - T_BSEG-DMBTR.
ENDIF.
BALENCE = OPENING.
ENDLOOP.
ENDIF. " INITIAL
REFRESH T_BKPF.
REFRESH T_BSEG.
**********END OF OPENING
IF ALV = 'X'.
*
*CLEAR T_FINAL.
*T_FINAL-HKONT = 'OPENING'.
*T_FINAL-BALENCE = BALENCE.
*
*APPEND T_FINAL.
ENDIF.
CLEAR T_FINAL.
SELECT * FROM BKPF INTO CORRESPONDING FIELDSOFTABLE T_BKPF
WHERE
BUKRS IN S_BUKRS AND
BLDAT IN S_BLDAT AND
BUDAT IN S_BUDAT AND
BLART IN S_BLART AND
GJAHR IN S_GJAHR." AND
*XREVERSAL = ''. " DO NOT INCLUDE REVERSED/CANCEL DOCUMENTS
*LOOP AT T_BKPF.
*IF T_BKPF-XREVERSAL = 2.
* DELETE T_BKPF WHERE BELNR = T_BKPF-STBLG.
* DELETE T_BKPF.
*ENDIF.
*ENDLOOP.
LOOPAT T_BKPF.
SELECT * FROM BSEG
WHERE BUKRS = T_BKPF-BUKRS
AND BELNR = T_BKPF-BELNR
AND GJAHR = T_BKPF-GJAHR
AND HKONT IN S_HKONT.
IF SY-SUBRC = 0.
T_BSEG-BLART = T_BKPF-BLART. " DOCUMENT =
T_BSEG-BLDAT = T_BKPF-BLDAT. " DOCUMENT DATE
T_BSEG-USNAM = T_BKPF-USNAM. " USER NAME / CREATED BY
T_BSEG-XBLNR = T_BKPF-XBLNR. " REFERENCE
T_BSEG-BUDAT = T_BKPF-BUDAT . " from BKPF
T_BSEG-BLDAT = T_BKPF-BLDAT.
T_BSEG-BLART = T_BKPF-BLART . " From Bkpf
T_BSEG-BVORG = T_BKPF-BVORG . " From BKPF
T_BSEG-BUKRS = BSEG-BUKRS .
T_BSEG-BELNR = BSEG-BELNR .
T_BSEG-BUZEI = BSEG-BUZEI. " LINE ITEM NUMBER
T_BSEG-HKONT = BSEG-HKONT .
T_BSEG-DMBTR = BSEG-DMBTR .
T_BSEG-SHKZG = BSEG-SHKZG .
T_BSEG-SGTXT = BSEG-SGTXT .
T_BSEG-GJAHR = BSEG-GJAHR .
T_BSEG-AUFNR = BSEG-AUFNR.
T_BSEG-KOSTL = BSEG-KOSTL.
T_BSEG-BAL = BSEG-WRBTR.
T_BSEG-GSBER = BSEG-GSBER.
T_BSEG-LIFNR = BSEG-LIFNR. "vendor no
T_BSEG-KUNNR = BSEG-KUNNR. "Customer No
T_BSEG-ANLN1 = BSEG-ANLN1. "Asset No.
T_BSEG-PRCTR = BSEG-PRCTR. " profit center
T_BSEG-BLDAT = BKPF-BLDAT. " DOCUMENT DATE
T_BSEG-BUZEI = BSEG-BUZEI. " LINE ITEM NUMBER
T_BSEG-BSCHL = BSEG-BSCHL. " POSTING KEY
T_BSEG-PROJK = BSEG-PROJK. " WBS ELEMENT
APPEND T_BSEG.
ENDIF.
ENDSELECT.
ENDLOOP.
*T_BALENCE = BALENCE.
SORT T_BSEG BY BUDAT BELNR.
IF AG = 'X'. "RADIOBUTTON ENTRIES ON AGAINST GL
LOOPAT T_BSEG.
SELECT * FROM BSEG INTO WA_BSEG
WHERE BUKRS = T_BSEG-BUKRS
AND BELNR = T_BSEG-BELNR
AND GJAHR = T_BSEG-GJAHR
AND HKONT NE T_BSEG-HKONT.
IF SY-SUBRC = 0.
T_FINAL-DMBTR = 0.
T_FINAL-WRBTR = 0.
IF WA_BSEG-SHKZG = 'S'. " DEBIT AMOUNT
.
T_FINAL-DMBTR = WA_BSEG-DMBTR * ( -1 ).
DMBTR_DEBIT = DMBTR_DEBIT - T_FINAL-DMBTR.
ELSEIF WA_BSEG-SHKZG = 'H'. " CREDIT AMOUNT
T_FINAL-WRBTR = WA_BSEG-DMBTR .
DMBTR_CREDIT = DMBTR_CREDIT + T_FINAL-WRBTR.
ENDIF.
DMBTR_CREDIT = DMBTR_CREDIT + OPENING.
T_BALENCE = T_BALENCE + ( T_FINAL-DMBTR + T_FINAL-WRBTR ).
SELECTSINGLE LTEXT INTO T_LTEXT FROM T074T
WHERE
SPRAS = SY-LANGU AND
KOART = WA_BSEG-KOART AND
SHBKZ = WA_BSEG-UMSKZ.
IF SY-SUBRC = 0.
T_FINAL-LTEXT = T_LTEXT ." G/L ACCOUNT indicator
ENDIF.
SELECTSINGLE TXT50 INTO V_TXT50 FROM SKAT
WHERE SPRAS = SY-LANGU
AND SAKNR = WA_BSEG-HKONT
AND KTOPL ='SHIV'.
IF SY-SUBRC = 0.
T_FINAL-TXT50 = V_TXT50 ." G/L ACCOUNT
ENDIF.
T_FINAL-BLART = T_BSEG-BLART. " DOCUMENT =
T_FINAL-BLDAT = T_BSEG-BLDAT. " DOCUMENT DATE
T_FINAL-USNAM = T_BSEG-USNAM. " USER NAME / CREATED BY
T_FINAL-BUKRS = T_BSEG-BUKRS. " COMPANY CODE
T_FINAL-GJAHR = T_BSEG-GJAHR. " FISCAL YEAR
T_FINAL-BUDAT = T_BSEG-BUDAT. " POSTING DATE
T_FINAL-XBLNR = T_BSEG-XBLNR. " REFERENCE
T_FINAL-SGTXT = WA_BSEG-SGTXT. " LONG TEXT
T_FINAL-BSCHL = WA_BSEG-BSCHL. " POSTING KEY
T_FINAL-HKONT = WA_BSEG-HKONT ." G/L ACCOUNT
T_FINAL-BELNR = WA_BSEG-BELNR. "BKPF-BELNR. " DOCUMENT NUMBER
T_FINAL-GSBER = T_BSEG-GSBER.
T_FINAL-LIFNR = T_BSEG-LIFNR. "vendor no
T_FINAL-KUNNR = T_BSEG-KUNNR. "Customer No
T_FINAL-ANLN1 = T_BSEG-ANLN1. "Asset No.
T_FINAL-PRCTR = T_BSEG-PRCTR. " profit center
T_FINAL-BUZEI = T_BSEG-BUZEI. " LINE ITEM NUMBER
T_FINAL-PROJK = T_BSEG-PROJK.
T_FINAL-BALENCE = T_BALENCE.
APPEND T_FINAL.
CLEAR WA_BSEG.
ENDIF.
ENDSELECT.
ENDLOOP.
ENDIF.
IF SM = 'X'. " ENTRIES ON SAME GL
LOOPAT T_BSEG.
SELECT * FROM BSEG INTO WA_BSEG
WHERE BUKRS = T_BSEG-BUKRS
AND BELNR = T_BSEG-BELNR
AND GJAHR = T_BSEG-GJAHR
AND BUZEI = T_BSEG-BUZEI
AND HKONT EQ T_BSEG-HKONT.
IF SY-SUBRC = 0.
T_FINAL-DMBTR = 0.
T_FINAL-WRBTR = 0.
IF WA_BSEG-SHKZG = 'S'.
.
T_FINAL-DMBTR = WA_BSEG-DMBTR.
DMBTR_DEBIT = DMBTR_DEBIT + T_FINAL-DMBTR.
ELSEIF WA_BSEG-SHKZG = 'H'.
T_FINAL-WRBTR = WA_BSEG-DMBTR * ( -1 ) .
DMBTR_CREDIT = DMBTR_CREDIT + T_FINAL-WRBTR.
ENDIF.
T_BALENCE = T_BALENCE + ( T_FINAL-DMBTR + T_FINAL-WRBTR ).
*T_BALENCE = ( T_FINAL-DMBTR + T_FINAL-WRBTR ).
SELECTSINGLE LTEXT INTO T_LTEXT FROM T074T
WHERE
SPRAS = SY-LANGU AND
KOART = WA_BSEG-KOART AND
SHBKZ = WA_BSEG-UMSKZ.
IF SY-SUBRC = 0.
T_FINAL-LTEXT = T_LTEXT ." G/L ACCOUNT indicator
ENDIF.
SELECTSINGLE TXT50 INTO V_TXT50 FROM SKAT
WHERE SPRAS = SY-LANGU
AND SAKNR = WA_BSEG-HKONT
AND KTOPL ='SHIV'.
IF SY-SUBRC = 0.
T_FINAL-TXT50 = V_TXT50 ." G/L ACCOUNT
ENDIF.
T_FINAL-BLART = T_BSEG-BLART. " DOCUMENT =
T_FINAL-BLDAT = T_BSEG-BLDAT. " DOCUMENT DATE
T_FINAL-USNAM = T_BSEG-USNAM. " USER NAME / CREATED BY
T_FINAL-BUKRS = T_BSEG-BUKRS. " COMPANY CODE
T_FINAL-GJAHR = T_BSEG-GJAHR. " FISCAL YEAR
T_FINAL-BLDAT = T_BSEG-BLDAT. " DOCUMENT DATE
T_FINAL-BUDAT = T_BSEG-BUDAT. " POSTING DATE
T_FINAL-XBLNR = T_BSEG-XBLNR. " REFERENCE
T_FINAL-SGTXT = WA_BSEG-SGTXT. " LONG TEXT
T_FINAL-BSCHL = WA_BSEG-BSCHL. " POSTING KEY
T_FINAL-HKONT = WA_BSEG-HKONT ." G/L ACCOUNT
T_FINAL-BELNR = WA_BSEG-BELNR. "BKPF-BELNR. " DOCUMENT NUMBER
T_FINAL-GSBER = T_BSEG-GSBER.
T_FINAL-LIFNR = T_BSEG-LIFNR. "vendor no
T_FINAL-KUNNR = T_BSEG-KUNNR. "Customer No
T_FINAL-ANLN1 = T_BSEG-ANLN1. "Asset No.
T_FINAL-PRCTR = T_BSEG-PRCTR. " profit center
T_FINAL-BUZEI = T_BSEG-BUZEI. " LINE ITEM NUMBER
T_FINAL-PROJK = T_BSEG-PROJK.
T_FINAL-BALENCE = T_BALENCE.
APPEND T_FINAL.
CLEAR WA_BSEG.
ENDIF.
ENDSELECT.
ENDLOOP.
ENDIF. " RADIOBUTTON
CLOSING = DMBTR_DEBIT - DMBTR_CREDIT.
BALENCE = T_BALENCE.
LOOPAT S_HKONT.
SELECTSINGLE * FROM SKAT
WHERE SPRAS = SY-LANGU
AND SAKNR = S_HKONT-LOW
AND KTOPL ='SHIV'.
IF SY-SUBRC = 0.
CONCATENATE GLTEXT SKAT-TXT50 ':-' SKAT-SAKNR ','INTO GLTEXT.
ENDIF.
ENDLOOP.
Too many plants existing in SAP causing db choose wrong index
Hi Expert,
There're about 130 plants in our SAP. From last month, there're SQL running timeout dumps sometimes.
When I trace the log I found that the DB tends to choose index of 'WERKS'(plant) to find data.
for example,
select xxxxx
from vbap
inner join vbak on vbak~vbeln = vbap~vbeln
into corresponding fields of table xxxxx
where vbak~erdat in s_erdat
and vbap~werks eq p_werks.
For there is SO data for about 5 years in our SAP. So choosing the index of vbak-erdat is preferable, what is the DB did before last month.
This month I found the DB tends to choose the index of vbap-werks so that causing SQL timeout.
Are there some solutions?
I cannot use the key work 'HINT', for there are mass number of reports, queries involved, from vbap-werks to ekpo-werks,
from marc-werks to mseg-werks.
What is worse, we may involve 40 more plants next year...
system message 38 from work area ssfcomposer does not exist in sales order va03
Hi,
I have created a smartforms copy from standard sales order smartforms, it's working good since last one year for all sales order
but today we are getting a error for a particular sale order it showing error like system message 038 from work area ssfcomposer does not exist .This error is only for one sales order still all other sales order are working.
what can i do please help me.it's very urgent. Please reply asap.
Thank You
Regards
K. Khan
Check and Update optimizer Statistics failing
Hi All,
In a pre production system Check and Update optimizer Statistics is failing consecutively giving an error as Collection of statistics failed for index SAPSR3./BIC/B0000190000KE. Kindly guide me how to resolve this issue.
Thanks.
Problem using eCATT for WD ABAP with HTTPS
Hi Experts,
I tried to record an eCATT script for WD ABAP.
Because of an missing NWBC Client installation I established sap note 1798894 note (New architecture of eCATT Web Dynpro ABAP support)
to record the session with browser only.
In a second step I let install SAPSSLA.PSE into the system regarding the HTTPS
authentication.
But every time I start the recording i get the following error message...
WebDynpro Exception: Native SSL error - please contact your system administrator. Often the SSL Server certificate (of the system under test: "SSL Server" PSE) needs to be imported into "SSL Client Anonymous" PSE's "certificate list".
Can anybody help?
Thanks in advance.
Regards
Florian
To Find Employee Dependents
Hi,
Please tell me how to find the number of dependents for a employee to calculate taxi fare amount.
ABAP G/L account cancel
Hi all,
I have a ABAP problem.
My ABAP report is show in PIC1.
The FB03 result is show in PIC2.
I want to cancel item 3,4,5,8,9. in my ABAP report. (There are not related G/L account 5111000000)
How can I to revise my ABAP?
Waiting for ur reply.
Thanks in Advance
Stanley
====================================================
FORM GET_BKPF.
DATA: l_yyyy(4) TYPE c.
DATA: l_mm(2) TYPE c.
SELECT budat belnr blart bukrs hwaer gjahr monat
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
WHERE bukrs = p_bukrs AND budat IN s_budat.
CHECK it_bkpf[] IS NOT INITIAL.
SELECT * from BSEG
APPENDING CORRESPONDING FIELDS OF TABLE it_bseg
FOR ALL ENTRIES in it_bkpf
WHERE belnr = it_bkpf-belnr
AND bukrs = it_bkpf-bukrs
AND gjahr = it_bkpf-gjahr.
LOOP AT it_bseg.
MOVE-CORRESPONDING it_bseg TO it_output.
READ TABLE it_bkpf WITH KEY
bukrs = it_bseg-bukrs
belnr = it_bseg-belnr
gjahr = it_bseg-gjahr.
IF sy-subrc = 0.
l_yyyy = it_bkpf-budat(4).
l_mm = it_bkpf-budat+4(2).
it_output-blart = it_bkpf-blart.
it_output-hwaer = it_bkpf-hwaer.
concatenate l_yyyy '/' l_mm INTO it_output-newdate.
ENDIF.
=============================================================
RUN TIME error when i try to update the overall limit expected value of PO in ME22 or ME23,
when i try to update the overall limit and expected value of PO in ME22 or ME23,i get message PO changed but immediately after it doing any action (pressing back button or executing /n /o or a new transaction leads to itab_exception) and PO limits does not gets updated.PO limits has only old values new values are not set.
the run time error is
Category ABAP Programming Error
Runtime Errors RAISE_EXCEPTION
ABAP Program SAPLCOBO
Short text
Exception condition "ITAB_ERROR" raised.
What happened?
The current ABAP/4 program encountered an unexpected
situation.
Error analysis
A RAISE statement in the program "SAPLCOIT" raised the exception
condition "ITAB_ERROR".
Since the exception was not intercepted by a superior
program, processing was terminated.
-
How to correct the error
If the error occures in a non-modified SAP program, you may be able to
find an interim solution in an SAP Note.
If you have access to SAP Notes, carry out a search with the following
keywords:
"RAISE_EXCEPTION" " "
"SAPLCOIT" or "LCOITU41"
"CO_IT_GET_PROV_OF_OPERATIONS"
or
"SAPLCOIT" "ITAB_ERROR"
or
"RSM13000 " "ITAB_ERROR"
System environment
SAP Release..... 731
SAP Basis Level. 0002
Char.set.... "C"
SAP kernel....... 720
User and Transaction
Language key........ "E"
Transaction......... "ME22N "
Program............. "SAPLCOIT"
Screen.............. "RSM13000 3000"
Screen Line......... 2
Debugger Active..... "none"
Information on where terminated
Termination occurred in the ABAP program "SAPLCOIT" - in
"CO_IT_GET_PROV_OF_OPERATIONS".
The main program was "RSM13000 ".
In the source code you have the termination point in line 67
of the (Include) program "LCOITU41".
The program "SAPLCOIT" was started in the update system.
Source Code Extract
Line SourceCde
37 while sy-subrc <> 8.
38 last_index_prov = last_index_prov + 1.
39 read table itab index last_index_prov.
40 if itab-object = obj-alt
41 or sy-subrc <> 0.
42 sy-subrc = 8.
43 endif.
44 check sy-subrc = 0.
45 perform check_objectt using itab opr_index_tab.
46 modify opr_index_tab index 1.
47 endwhile.
48
49 else.
50 * Zuordnung zu Vorgängen
51 loop at opr_index_tab.
52 * Vorgang nachlesen
53 perform afvg_read_ind(saplcobo) using opr_index_tab-index
54 afvgd
55 sy-subrc.
56
57 * Untervorgänge werden nicht berücksichtigt
58 check afvgd-sumnr is initial.
59 * Komponenten in ITAB enthalten ?
60 perform check_db_read_into_itab using afvgd-aufnrd.
61
62 perform itabkey_afvg_built using afvgd itab_key.
63
64 read table itab with key itab_key binary search.
65
66 if sy-subrc ne 0.
>>>>> raise itab_error.
68 endif.
69
70 check itab-object eq obj-pos.
71
72 last_index_prov = sy-tabix.
73
74 if not afvgd-flg_vab is initial.
75 opr_index_tab-flag_snt = yx.
76 modify opr_index_tab.
77 endif.
78
79 while sy-subrc <> 8.
80 last_index_prov = last_index_prov + 1.
81 read table itab index last_index_prov.
82 if itab-object = obj-alt
83 or itab-object = obj-seq
84 or itab-object = obj-pos
85 or itab-object = obj-zue or sy-subrc <> 0.
86 sy-subrc = 8.
Contents of system fields
Name Val.
SY-SUBRC 8
SY-INDEX 1
SY-TABIX 5
SY-DBCNT 1
SY-FDPOS 10
SY-LSIND 0
SY-PAGNO 0
SY-LINNO 1
SY-COLNO 1
SY-PFKEY
What should be done to overcome this error?
Need information about CBTA tool
Hi,
I have few questions related to CBTA tool.
1. How to convert eCATT test scripts to CBTA test scripts.
2. Is there any documents or links available for WebUI recording. ( As WebUI is being accessed through URL, how to specify the URL )
3. What are the new features added in the CBTA as compared to eCATT tool
Regards,
Siva
Performance Tuning (about mseg/mkpf)
Hi,experts
I have a performance tuning issue from aging report(zprogram):
I found the cause of performance degragation is fetch MSEG/MKPF,so I copy original version to other program and change the original program.
Then I create a view for mseg join to mkpf and use "select zview...for all entries in itab" instead of "loop at itab : select innerjoin mkpf/mseg....."
after executing and comparing ,
I noticed that the performance of new version is very better than old version if data volume is not very large,
but if data volume is very large then the old version is less better than new version...
I want to konw why and how to totally increase the performance ?
The following is comparison of old and new version:
old version :
LOOP AT ITAB_MARD.
PERFORM NOTMAL_MVT USING ITAB_MARD-MATNR ITAB_MARD-WERKS ITAB_MARD-LGORT.
ENDLOOP.
FORM NOTMAL_MVT USING P_MATNR P_WERKS P_LGORT.
*** Get Mvt.Type 101 ***
SELECT T1~MATNR T1~WERKS T1~LGORT T1~MBLNR T1~ZEILE T1~LIFNR
T1~EBELN T1~EBELP T1~MENGE T1~DMBTR T2~BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM MSEG AS T1
INNER JOIN MKPF AS T2
ON T1~MBLNR = T2~MBLNR
AND T1~MJAHR = T2~MJAHR
WHERE MATNR = ITAB_MARD-MATNR " Material
AND T1~WERKS = ITAB_MARD-WERKS " Plant code
AND T1~LGORT = ITAB_MARD-LGORT " location
AND ( T1~BWART = '101' or T1~BWART = '861') " '101' PO-GR
AND T1~SOBKZ <> 'K'.
ENDSELECT.
*** Get Mvt.Type 131 / 411 ***
SELECT T1~MATNR T1~WERKS T1~LGORT T1~MBLNR T1~ZEILE T1~LIFNR
T1~EBELN T1~EBELP T1~MENGE T1~DMBTR T2~BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM MSEG AS T1
INNER JOIN MKPF AS T2
ON T1~MBLNR = T2~MBLNR
AND T1~MJAHR = T2~MJAHR
WHERE MATNR = ITAB_MARD-MATNR " Material
AND T1~WERKS = ITAB_MARD-WERKS " Plant code
AND T1~LGORT = ITAB_MARD-LGORT " location
AND ( T1~BWART = '131' OR T1~BWART = '411' )
AND ( T1~SOBKZ = ' ' OR "//Special stock indicator
T1~SOBKZ = 'E' )
AND T1~LGORT NE SPACE.
ENDSELECT.
*** Get Mvt.Type 413 ***
SELECT T1~MATNR T1~WERKS T1~LGORT T1~MBLNR T1~ZEILE T1~LIFNR
T1~EBELN T1~EBELP T1~MENGE T1~DMBTR T2~BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM MSEG AS T1
INNER JOIN MKPF AS T2
ON T1~MBLNR = T2~MBLNR
AND T1~MJAHR = T2~MJAHR
WHERE MATNR = ITAB_MARD-MATNR " Material
AND T1~WERKS = ITAB_MARD-WERKS " Plant code
AND T1~LGORT = ITAB_MARD-LGORT " location
AND ( T1~BWART = '413' AND T1~SOBKZ = 'E' )
AND T1~LGORT NE SPACE.
ENDSELECT.
*** Get Mvt.Type 531 ***
SELECT T1~MATNR T1~WERKS T1~LGORT T1~MBLNR T1~ZEILE T1~LIFNR
T1~EBELN T1~EBELP T1~MENGE T1~DMBTR T2~BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM MSEG AS T1
INNER JOIN MKPF AS T2
ON T1~MBLNR = T2~MBLNR
AND T1~MJAHR = T2~MJAHR
WHERE MATNR = ITAB_MARD-MATNR " Material
AND T1~WERKS = ITAB_MARD-WERKS " Plant code
AND T1~LGORT = ITAB_MARD-LGORT " location
AND T1~BWART = '531'
AND T1~LGORT NE SPACE.
ENDSELECT.
*** Get Mvt.Type 561/ 653/ 907/ 953 ***
SELECT T1~MATNR T1~WERKS T1~LGORT T1~MBLNR T1~ZEILE T1~LIFNR
T1~EBELN T1~EBELP T1~MENGE T1~DMBTR T2~BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM MSEG AS T1
INNER JOIN MKPF AS T2
ON T1~MBLNR = T2~MBLNR
AND T1~MJAHR = T2~MJAHR
WHERE MATNR = ITAB_MARD-MATNR " Material
AND T1~WERKS = ITAB_MARD-WERKS " Plant code
AND T1~LGORT = ITAB_MARD-LGORT " location
* AND ( T1~BWART = '561' OR T1~BWART = '653'
AND ( T1~BWART = '653'
OR T1~BWART = '907' OR T1~BWART = '953' )
AND T1~SOBKZ <> 'K' AND T1~LGORT NE SPACE.
ENDSELECT.
ENDFORM.
new version:
FORM NOTMAL_MVT_Z1.
SELECT MATNR WERKS LGORT MBLNR ZEILE LIFNR
EBELN EBELP MENGE DMBTR BUDAT
APPENDING CORRESPONDING FIELDS OF TABLE ITAB_101
PACKAGE SIZE 10000
FROM YMSEGV_1
FOR ALL ENTRIES IN ITAB_MARD
WHERE MATNR = ITAB_MARD-MATNR
AND WERKS = ITAB_MARD-WERKS
AND LGORT = ITAB_MARD-LGORT
AND ( ( ( BWART = '101' or BWART = '861') AND SOBKZ <> 'K' )
or ( ( BWART = '131' or BWART = '411') AND ( SOBKZ <> 'K' or SOBKZ = 'E' ) )
or ( BWART = '413' AND SOBKZ = 'E' )
or ( bwart = '531' )
or ( ( BWART = '653' or BWART = '907' or BWART = '953') AND SOBKZ <> 'K' ) ) .
ENDSELECT.
Verification of Customer View and Supplier View in SNC
Hi All,
I have implemented enhancement in standard object. so for verification purpose I need to determine whether user has logged onto supplier view or customer view in SNC.
So how I can recognize technically (ABAP) which view is currently called supplier or customer.
Thanks
Gaurav Gupta
what is the use of UTP (unit test plan)document
thanks in advance
SMS in Invoice
Hi All,
I am having a problem regarding SMS sending in invoice.
I have made a code of it.
the code is proper. But when the invoice is sent to the Customer, the system sends the SMS 3 times in the span of 3 minutes.
There is no loop in this. though it sends 3 times.
Attaching the code.
selection-screen begin of block b1 .
parameters : p_vbeln like vbrk-vbeln obligatory.
selection-screen end of block b1.
clear wf_string .
concatenate 'http://alerts.icisms.in/api/web2sms.php?'
'workingkey=108122a0092jou29900wb&to=9898989898'
'&sender=GSPCRP&message=Stk Trf No: 9131805526 '
'Dated: 18/12 Qty: 35.00 Transporter: XXXXXXX'
into wf_string .
call method cl_http_client=>create_by_url
exporting
url = wf_string
importing
client = http_client
exceptions
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
others = 4.
call method http_client->send
exceptions
http_communication_failure = 1.
* http_invalid_state = 2.
call method http_client->receive
exceptions
http_communication_failure = 1.
* http_invalid_state = 2
* http_processing_failed = 3.
clear ws_kunnr.
select kunag from vbrk into ws_kunnr where
vbeln = p_vbeln .
if sy-subrc = 0 .
ws_vbeln = p_vbeln.
else.
message ' Invoice not found ' type 'S'.
endif.
select kunnr adrnr telf2 from kna1
into corresponding fields of table it_kna1
where kunnr = ws_kunnr .
read table it_kna1 index 1.
select single smtp_addr
from adr6
into w_emailid
where addrnumber eq it_kna1-adrnr.
endselect.
if w_emailid is not initial.
perform mail.
else.
message 'E-Mail Address not maintained !!!' type 'S'.
endif.
The sms setting is proper as the basis team told me.
Optimize BW start & end routine
Hello,
I created start and end routine to enhance some other data.
Actually it works fine. Results correct. But DTP needs really lot of time. In process monitor the steps transformation start, start rountine, rules and end routine do not need much time. Problem is the step "transformation end".
Can you tell me how I can optimize coding?
Global:
*$*$ begin of global - insert your declaration only below this line *-*
... "insert your code here
* 20120326 2462
* Deklaration interne Tabelle und Workarea
* Partnerrollen füllen
DATA: lt_zsd_cus_p TYPE STANDARD TABLE OF /bic/azsd_d2200
WITH NON-UNIQUE KEY salesorg
division
distr_chan
part_funct
/bic/zsd_cus_p
/bic/zsd_par_c.
DATA: ls_zsd_cus_p LIKE LINE OF lt_zsd_cus_p.
*$*$ end of global - insert your declaration only before this line *-*
Start routine:
*$*$ begin of routine - insert your code only below this line *-*
... "insert your code here
*-- fill table "MONITOR" with values of structure "MONITOR_REC"
*- to make monitor entries
... "to cancel the update process
* raise exception type CX_RSROUT_ABORT.
* 20120326 2462
* Füllen der internen Tabellen
" BREAK-POINT.
SELECT * FROM /bic/azsd_d2200
INTO TABLE lt_zsd_cus_p.
SORT lt_zsd_cus_p
BY salesorg ASCENDING
division ASCENDING
distr_chan ASCENDING
/bic/zsd_cus_p ASCENDING
part_funct ASCENDING
/bic/zsd_par_c DESCENDING.
DELETE ADJACENT DUPLICATES FROM lt_zsd_cus_p
COMPARING salesorg
division
distr_chan
/bic/zsd_cus_p
part_funct.
*$*$ end of routine - insert your code only before this line *-*
End routine:
*$*$ begin of routine - insert your code only below this line *-*
... "insert your code here
*-- fill table "MONITOR" with values of structure "MONITOR_REC"
*- to make monitor entries
... "to cancel the update process
* raise exception type CX_RSROUT_ABORT.
* 20120327 2462
* Füllen der Partnerrollen in die Attributen von 0cust_sales
DATA: lt_rp LIKE RESULT_PACKAGE.
DATA: lv_count TYPE i.
BREAK-POINT.
LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
* Außendienstmitarbeiter 1 (zsd_adm_s)
READ TABLE lt_zsd_cus_p
INTO ls_zsd_cus_p
WITH KEY salesorg = <result_fields>-salesorg
division = <result_fields>-division
distr_chan = <result_fields>-distr_chan
/bic/zsd_cus_p = <result_fields>-cust_sales
part_funct = 'ZA'.
IF sy-subrc = '0'.
<result_fields>-/bic/zsd_adm_s = ls_zsd_cus_p-/bic/zsd_partn.
ENDIF.
CLEAR ls_zsd_cus_p.
* Außendienstmitarbeiter 2 (zsd_ad2_s)
READ TABLE lt_zsd_cus_p
INTO ls_zsd_cus_p
WITH KEY salesorg = <result_fields>-salesorg
division = <result_fields>-division
distr_chan = <result_fields>-distr_chan
/bic/zsd_cus_p = <result_fields>-cust_sales
part_funct = 'ZB'.
IF sy-subrc = '0'.
<result_fields>-/bic/zsd_ad2_s = ls_zsd_cus_p-/bic/zsd_partn.
ENDIF.
CLEAR ls_zsd_cus_p.
* Außendienstmitarbeiter 3 (zsd_ad3_s)
READ TABLE lt_zsd_cus_p
INTO ls_zsd_cus_p
WITH KEY salesorg = <result_fields>-salesorg
division = <result_fields>-division
distr_chan = <result_fields>-distr_chan
/bic/zsd_cus_p = <result_fields>-cust_sales
part_funct = 'ZC'.
IF sy-subrc = '0'.
<result_fields>-/bic/zsd_ad3_s = ls_zsd_cus_p-/bic/zsd_partn.
ENDIF.
CLEAR ls_zsd_cus_p.
* Außendienstmitarbeiter 4 (zsd_ad4_s)
READ TABLE lt_zsd_cus_p
INTO ls_zsd_cus_p
WITH KEY salesorg = <result_fields>-salesorg
division = <result_fields>-division
distr_chan = <result_fields>-distr_chan
/bic/zsd_cus_p = <result_fields>-cust_sales
part_funct = 'ZD'.
IF sy-subrc = '0'.
<result_fields>-/bic/zsd_ad4_s = ls_zsd_cus_p-/bic/zsd_partn.
ENDIF.
CLEAR ls_zsd_cus_p.
* Außendienstmitarbeiter 5 (zsd_ad5_s)
READ TABLE lt_zsd_cus_p
INTO ls_zsd_cus_p
WITH KEY salesorg = <result_fields>-salesorg
division = <result_fields>-division
distr_chan = <result_fields>-distr_chan
/bic/zsd_cus_p = <result_fields>-cust_sales
part_funct = 'ZE'.
IF sy-subrc = '0'.
<result_fields>-/bic/zsd_ad5_s = ls_zsd_cus_p-/bic/zsd_partn.
ENDIF.
CLEAR ls_zsd_cus_p.
ENDLOOP.
*$*$ end of routine - insert your code only before this line *-*
I hope you can help me!
Regards
Jesper