Quantcast
Channel: SCN : Unanswered Discussions - ABAP Testing and Troubleshooting
Viewing all 430 articles
Browse latest View live

while debugging i find the code it jumps from line 31 to 49 ,but roiksd_dlnumber is not initial it has value

$
0
0

andjumping_from_one_to_another.JPG

and roiksd_dlnumber,load_indi,disch_indi,radio_del all have values not initial....why is this happening?


RUN TIME error when i try to update the overall limit expected value of PO in ME22 or ME23,

$
0
0

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.

ov_all.JPG

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

$
0
0

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

$
0
0

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?

$
0
0

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

$
0
0

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

$
0
0

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.
SELECTSINGLEFROM   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

$
0
0

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

$
0
0

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

$
0
0

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

$
0
0

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

$
0
0

Hi,

 

Please tell me how to find the number of dependents for a employee to calculate taxi fare amount.

ABAP G/L account cancel

$
0
0

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,

$
0
0

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.

ov_all.JPG

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

$
0
0

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)

$
0
0

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

$
0
0

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

SMS in Invoice

$
0
0

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

$
0
0

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

Viewing all 430 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>