Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Null value problem

Former Member
0 Likes
1,475

hi all,

please help me.i have written one program.after executing the programs in the records null records are also comming.

so what the condition should i write so that the null value should not come..

and after which statement i should write.

regards

jignesh

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,326

Hi,

Debug your program and observe when are the null values comming into the internal table.

mostly that would happen in an IDES system where you might have some null entries in the report.

so in the select what ever you have written you can

select...

...

Where VBELN NE Space.

or

after you selected the data into te the ITAB

Delete ITAB Where VBELN = SPACE.

will delete all the records where VBELN which is the field which you are looking for is blank.

santhosh

10 REPLIES 10
Read only

peter_ruiz2
Active Contributor
0 Likes
1,326

hi,

use the condition NOT <field> IS INITIAL to filter out null values.

regards,

Peter

Read only

Former Member
0 Likes
1,327

Hi,

Debug your program and observe when are the null values comming into the internal table.

mostly that would happen in an IDES system where you might have some null entries in the report.

so in the select what ever you have written you can

select...

...

Where VBELN NE Space.

or

after you selected the data into te the ITAB

Delete ITAB Where VBELN = SPACE.

will delete all the records where VBELN which is the field which you are looking for is blank.

santhosh

Read only

Former Member
0 Likes
1,326

when i have written this condition the error comes

STATEMENT "NOT" IS NOT DEFINED. CHECK YOUR SPELLING. SPELLING

Read only

0 Likes
1,326

hi,

please paste the code on where you have written the condition.

thanks,

Peter

Read only

0 Likes
1,326

Hi

For example you have an Internal table GT_ITAB. Then

IF NOT gt_itab IS INITIAL.
  ....
ENDIF.

If you still have errors, post your code to get it resolved.

Read only

0 Likes
1,326

hi

can u send one solved example where you have use this command

regards

jignesh

Read only

0 Likes
1,326

Hi,

Pls paste your code so that I can include the command and it works for you

santhosh

Read only

0 Likes
1,326

TABLES : MSEG,MKPF,MCH1.

TYPE-POOLS : SLIS.

DATA : FCAT TYPE SLIS_T_FIELDCAT_ALV,

WCAT TYPE SLIS_FIELDCAT_ALV,

LYT TYPE SLIS_LAYOUT_ALV,

TSORT TYPE SLIS_T_SORTINFO_ALV,

WSORT LIKE LINE OF TSORT.

DATA : BEGIN OF ITAB_MKPF OCCURS 0,

MBLNR LIKE MKPF-MBLNR,

MJAHR LIKE MKPF-MJAHR,

BLDAT LIKE MKPF-BLDAT,

END OF ITAB_MKPF.

DATA : BEGIN OF ITAB_MSEG OCCURS 0,

CHARG LIKE MSEG-CHARG,

MBLNR LIKE MSEG-MBLNR,

BWART LIKE MSEG-BWART,

MATNR LIKE MSEG-MATNR,

LGORT LIKE MSEG-LGORT,

LIFNR LIKE MSEG-LIFNR,

SHKZG LIKE MSEG-SHKZG,

ERFMG LIKE MSEG-ERFMG,

END OF ITAB_MSEG.

DATA : BEGIN OF ITAB_MCHB OCCURS 0,

WERKS LIKE MCHB-WERKS,

MATNR LIKE MCHB-MATNR,

CHARG LIKE MCHB-CHARG,

ERSDA LIKE MCHB-ERSDA,

CLABS LIKE MCHB-CLABS,

END OF ITAB_MCHB.

DATA : BEGIN OF ITAB_MCH1 OCCURS 0,

CHARG LIKE MCH1-CHARG,

MATNR LIKE MCH1-MATNR,

LICHA LIKE MCH1-LICHA,

END OF ITAB_MCH1.

DATA : BEGIN OF ITAB_MAKT OCCURS 0,

MATNR LIKE MAKT-MATNR,

MAKTX LIKE MAKT-MAKTX,

END OF ITAB_MAKT.

DATA : BEGIN OF ITAB_LFA1 OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF ITAB_LFA1.

DATA : BEGIN OF ITAB_MAIN OCCURS 0,

BLDAT LIKE MKPF-BLDAT,

MBLNR LIKE MSEG-MBLNR,

MAKTX LIKE MAKT-MAKTX,

NAME1 LIKE LFA1-NAME1,

CHARG LIKE MSEG-CHARG,

LICHA LIKE MCH1-LICHA,

GQTY LIKE MSEG-ERFMG,

IQTY LIKE MSEG-ERFMG,

RQTY LIKE MSEG-ERFMG,

DQTY LIKE MSEG-ERFMG,

SQTY LIKE MSEG-ERFMG,

END OF ITAB_MAIN.

DATA : DQTY1 LIKE MSEG-ERFMG,

DQTY2 LIKE MSEG-ERFMG,

MBLNR1 LIKE MKPF-MBLNR,

BLDAT1 LIKE MKPF-BLDAT.

SELECTION-SCREEN : BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT001.

SELECT-OPTIONS : Z_WERKS FOR MSEG-WERKS NO INTERVALS NO-EXTENSION OBLIGATORY.

SELECT-OPTIONS : Z_LGORT FOR MSEG-LGORT NO INTERVALS NO-EXTENSION OBLIGATORY.

SELECT-OPTIONS : Z_BLDAT FOR MKPF-BLDAT OBLIGATORY.

SELECTION-SCREEN : END OF BLOCK BLOCK1.

SELECT WERKS MATNR CHARG ERSDA CLABS

FROM MCHB

INTO CORRESPONDING FIELDS OF TABLE ITAB_MCHB

  • WHERE CHARG = '0000000952' AND WERKS = '1003' AND LGORT = '0002'.

WHERE WERKS IN Z_WERKS AND

LGORT IN Z_LGORT AND

ERSDA IN Z_BLDAT.

IF ITAB_MCHB[] IS NOT INITIAL.

SELECT CHARG MBLNR BWART MATNR LGORT LIFNR SHKZG ERFMG

FROM MSEG INTO TABLE ITAB_MSEG FOR ALL ENTRIES IN ITAB_MCHB

WHERE WERKS = ITAB_MCHB-WERKS AND

MATNR = ITAB_MCHB-MATNR AND

CHARG = ITAB_MCHB-CHARG.

SORT ITAB_MSEG BY CHARG.

ENDIF.

IF ITAB_MSEG[] IS NOT INITIAL.

SELECT MBLNR MJAHR BLDAT

FROM MKPF

INTO TABLE ITAB_MKPF FOR ALL ENTRIES IN ITAB_MSEG

WHERE MBLNR = ITAB_MSEG-MBLNR.

ENDIF.

IF SY-SUBRC <> 0.

MESSAGE 'Record not Found...' TYPE 'E'.

ENDIF.

IF ITAB_MSEG[] IS NOT INITIAL.

SELECT CHARG MATNR LICHA

FROM MCH1

INTO TABLE ITAB_MCH1 FOR ALL ENTRIES IN ITAB_MSEG

WHERE MATNR = ITAB_MSEG-MATNR AND

CHARG = ITAB_MSEG-CHARG.

ENDIF.

IF ITAB_MSEG[] IS NOT INITIAL.

SELECT MATNR MAKTX

FROM MAKT

INTO TABLE ITAB_MAKT FOR ALL ENTRIES IN ITAB_MSEG

WHERE MATNR = ITAB_MSEG-MATNR.

ENDIF.

IF ITAB_MSEG[] IS NOT INITIAL.

SELECT LIFNR NAME1

FROM LFA1

INTO TABLE ITAB_LFA1 FOR ALL ENTRIES IN ITAB_MSEG

WHERE LIFNR = ITAB_MSEG-LIFNR.

ENDIF.

LOOP AT ITAB_MSEG.

READ TABLE ITAB_MKPF WITH KEY MBLNR = ITAB_MSEG-MBLNR.

READ TABLE ITAB_MCH1 WITH KEY CHARG = ITAB_MSEG-CHARG MATNR = ITAB_MSEG-MATNR.

READ TABLE ITAB_MAKT WITH KEY MATNR = ITAB_MSEG-MATNR.

READ TABLE ITAB_LFA1 WITH KEY LIFNR = ITAB_MSEG-LIFNR.

  • WRITE : / ITAB_MKPF-BLDAT,ITAB_MSEG-MBLNR,ITAB_MAKT-MAKTX,ITAB_LFA1-NAME1,ITAB_MCH1-LICHA,ITAB_MSEG-CHARG,ITAB_MSEG-ERFMG.

IF ( ITAB_MSEG-BWART = '101' OR ITAB_MSEG-BWART = '561' ) AND ITAB_MSEG-LGORT = '0002' AND ITAB_MSEG-SHKZG = 'S'.

ITAB_MAIN-CHARG = ITAB_MSEG-CHARG.

ITAB_MAIN-BLDAT = ITAB_MKPF-BLDAT.

ITAB_MAIN-MBLNR = ITAB_MSEG-MBLNR.

ITAB_MAIN-MAKTX = ITAB_MAKT-MAKTX.

ITAB_MAIN-NAME1 = ITAB_LFA1-NAME1.

ITAB_MAIN-LICHA = ITAB_MCH1-LICHA.

ITAB_MAIN-GQTY = ITAB_MAIN-GQTY + ITAB_MSEG-ERFMG.

ELSEIF ITAB_MSEG-BWART = '311' AND ITAB_MSEG-LGORT = '0002' AND ITAB_MSEG-SHKZG = 'H'.

ITAB_MAIN-IQTY = ITAB_MAIN-IQTY + ITAB_MSEG-ERFMG.

ELSEIF ITAB_MSEG-BWART = '311' AND ITAB_MSEG-LGORT = '0027' AND ITAB_MSEG-SHKZG = 'H'.

ITAB_MAIN-RQTY = ITAB_MAIN-RQTY + ITAB_MSEG-ERFMG.

ELSEIF ( ( ITAB_MSEG-BWART = '641' OR ITAB_MSEG-BWART = '541' ) OR ITAB_MSEG-LGORT = '0002' ) AND ITAB_MSEG-SHKZG = 'H'.

ITAB_MAIN-DQTY = ITAB_MAIN-DQTY + ITAB_MSEG-ERFMG.

ENDIF.

AT END OF CHARG.

ITAB_MAIN-SQTY = ( ITAB_MAIN-GQTY + ITAB_MAIN-RQTY ) - ( ITAB_MAIN-IQTY + ITAB_MAIN-DQTY ).

APPEND ITAB_MAIN.

CLEAR ITAB_MAIN.

ENDAT.

ENDLOOP.

*LOOP AT ITAB_MAIN.

  • WRITE : / 'MAIN---',ITAB_MAIN-BLDAT,ITAB_MAIN-MBLNR,ITAB_MAIN-MAKTX,ITAB_MAIN-NAME1,ITAB_MAIN-LICHA,ITAB_MAIN-CHARG.

*ENDLOOP.

WCAT-COL_POS = 1.

WCAT-FIELDNAME = 'BLDAT'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Date'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 2.

WCAT-FIELDNAME = 'MBLNR'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Migono'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 3.

WCAT-FIELDNAME = 'MAKTX'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Itemname'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 4.

WCAT-FIELDNAME = 'NAME1'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Millname'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 5.

WCAT-FIELDNAME = 'CHARG'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Lotno'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 6.

WCAT-FIELDNAME = 'LICHA'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Olotno'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 7.

WCAT-FIELDNAME = 'GQTY'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Grn Qty'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 8.

WCAT-FIELDNAME = 'IQTY'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Iss Qty'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 9.

WCAT-FIELDNAME = 'RQTY'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Ret Qty'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 10.

WCAT-FIELDNAME = 'DQTY'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Desp Qty'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

WCAT-COL_POS = 11.

WCAT-FIELDNAME = 'SQTY'.

WCAT-TABNAME = 'ITAB_MAIN'.

WCAT-SELTEXT_M = 'Stk Qty'.

APPEND WCAT TO FCAT.

CLEAR WCAT.

*LYT-ZEBRA = 'X'.

LYT-COLWIDTH_OPTIMIZE = 'X'.

WSORT-FIELDNAME = 'MBLNR'.

WSORT-TABNAME = 'ITAB_MAIN'.

WSORT-UP = 'X'.

WSORT-SUBTOT = 'X'.

APPEND WSORT TO TSORT.

CLEAR WSORT.

WSORT-FIELDNAME = 'CHARG'.

WSORT-TABNAME = 'ITAB_MAIN'.

WSORT-UP = 'X'.

APPEND WSORT TO TSORT.

CLEAR WSORT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM

Read only

0 Likes
1,326

SELECT WERKS MATNR CHARG ERSDA CLABS

FROM MCHB

INTO CORRESPONDING FIELDS OF TABLE ITAB_MCHB

WHERE CHARG = '0000000952' AND WERKS = '1003' AND LGORT = '0002'.

WHERE WERKS IN Z_WERKS AND

LGORT IN Z_LGORT AND

ERSDA IN Z_BLDAT.

Delete ITAB Where MATNR is Initial.

try this

santhosh

Read only

0 Likes
1,326

ok thanks

Bye

regards

Jginesh