cancel
Showing results for 
Search instead for 
Did you mean: 

Supressing Zeros

Former Member
0 Kudos

Hi All,

In my SAP Script Form,for the material number its showing up the leading zeros on the print.I tried using &LTAP-MATNR(Z)&,but it didn't worked out.

I want to know how to write a subroutine for this and assign this to a integer and send back to the script by supressing zeros.

For this what declarations do I need and how to do the programing part,Please kindly let me know.

Thanks in Advance.

Regards,

Praveen

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi praveen,

one way is to using the formatting options...

ex &LTAP-MATNR(Z)&.

if it is not working then,... u can solve it as follow... call perform in before printing.. then.. in the subroutine... modify the value using convertion-EXIT. delcalete a variable V_MATNR..

CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
  EXPORTING
    INPUT         = LTAP-MATNR
 IMPORTING
   OUTPUT        = V_MATNR

.

then print V_MATNR.

or else u can use as

CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
  EXPORTING
    INPUT         = LTAP-MATNR
 IMPORTING
   OUTPUT        = LTAP-MATNR

then print LTAP-MATNR.

Former Member
0 Kudos

Hi Naresh,

I did as you mentioned nothing worked out.

Please help me out.

Thanks,

Praveen

Former Member
0 Kudos

hi PRAVEEN,

try this..

sapscript code...

<b>/: perform zero_padding_matnr in program zscm_get_mat_no

/: using &ltap-matnr&

/: changing &gv_matnr&

/: endform</b>

***********************************

<b>&----


*& Form ZERO_PADDING_MATNR

&----


  • text

----


  • -->TAB_IN text

  • -->TAB_OUT text

----


FORM zero_padding_matnr TABLES tab_in STRUCTURE itcsy

tab_out STRUCTURE itcsy.

DATA : gv_matnr(18).

CLEAR gv_matnr.

READ TABLE tab_in WITH KEY 'ITAP_MATNR'.

IF sy-subrc = 0.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

input = tab_in-value

IMPORTING

output = gv_matnr.

ENDIF.

READ TABLE tab_out WITH KEY 'GV_MATNR'.

IF sy-subrc = 0.

tab_out-value = gv_matnr.

ENDIF.

MODIFY tab_out INDEX sy-tabix.

ENDFORM. "ZERO_PADDING_MATNR</b>

*************************************************

Regards

SAB

Former Member
0 Kudos

Hi SAB,

It didn't worked out.

i just inserted your code in the subroutine pool.

but problem hasnt been solved

Former Member
0 Kudos

hi Praveen,

i worked on it.. i am getting output value...

i am giving bold characters to changes

check this..

/: perform zero_padding_matnr in program zscm_get_mat_no

/: using <b>&LTAP-MATNR&</b>

/: changing &gv_matnr&

/: <b>endperform</b>

<b>PR &GV_MATNR&</b>

where PR is paragraph format.

***************************************

FORM zero_padding_matnr TABLES tab_in STRUCTURE itcsy

tab_out STRUCTURE itcsy.

<b>DATA : gv_matnr LIKE MARA-MATNR.</b>

CLEAR gv_matnr.

READ TABLE tab_in WITH KEY '<b>LTAP-MATNR</b>'.

IF sy-subrc = 0.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

input = tab_in-value

IMPORTING

output = gv_matnr.

ENDIF.

READ TABLE tab_out WITH KEY 'GV_MATNR'.

IF sy-subrc = 0.

tab_out-value = gv_matnr.

ENDIF.

MODIFY tab_out INDEX sy-tabix.

ENDFORM. "ZERO_PADDING_MATNR

Regards

SAB

Former Member
0 Kudos

Hi SAB,

Thanks very much,

It solved the problem.only correction is we have to use the 'CONVERSION_EXIT_ALPHA_OUTPUT'.

I appreciate your time.

Regards,

Praveen

Answers (6)

Answers (6)

ferry_lianto
Active Contributor
0 Kudos

Hi Praveen,

Did you check all my replies?

Regards,

Ferry Lianto

Former Member
0 Kudos

Hi Ferry,

Thanks so much for the replies.

Your code also worked out.I appreciate your time n help.

Thanks,

Praveen

ferry_lianto
Active Contributor
0 Kudos

Hi Praveen,

Please try to use FM CONVERSION_EXIT_ALPHA_OUTPUT instead as I said earlier.


FORM ZERO_PADDING_MATNR TABLES TAB_IN  STRUCTURE ITCSY
                               TAB_OUT STRUCTURE ITCSY.

DATA: GV_MATNR(18).

CLEAR GV_MATNR.
REFRESH TAB_OUT.

PERFORM GET_VALUE TABLES TAB_IN USING 'GV_MATNR' GV_MATNR.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  EXPORTING
    INPUT = 'GV_MATNR'
  IMPORTING
    OUTPUT = GV_MATNR.

CLEAR TAB_OUT.
TAB_OUT-NAME = 'GV_MATNR'.
TAB_OUT-VALUE = GV_MATNR.
APPEND TAB_OUT.

ENDFORM.  

Regards,

Ferry Lianto

Former Member
0 Kudos

hi Praveen,

check out this thread ..

Regards,

santosh

ferry_lianto
Active Contributor
0 Kudos

Hi Praveen,

Please check this sample code from other thread to add leading zeroes.

But for your purpose, please use FM CONVERSION_EXIT_ALPHA_OUTPUT to delete leading zeroes.

SAPScript Coding:


/: DEFINE &W_EBELN& = &EKKO-EBELN&
/: PERFORM ZERO_PADDING_PO IN PROGRAM ZSXXSR103S
/: USING &EKKO-EBELN&
/: CHANGING &W_EBELN&
/: ENDPERFORM

Subroutine coding:


*&---------------------------------------------------------------------*
*& Form ZERO_PADDING_PO
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM ZERO_PADDING_PO TABLES TAB_IN STRUCTURE ITCSY
TAB_OUT STRUCTURE ITCSY.


DATA : W_EBELN(10).

CLEAR W_EBELN.
REFRESH TAB_OUT.

PERFORM GET_VALUE TABLES TAB_IN USING 'W_EBELN' W_EBELN.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = W_EBELN
IMPORTING
OUTPUT = W_EBELN.

CLEAR TAB_OUT.
TAB_OUT-NAME = 'W_EBELN'.
TAB_OUT-VALUE = W_EBELN.
APPEND TAB_OUT.

ENDFORM. " GET_VALUE

*&---------------------------------------------------------------------*
*& Form GET_VALUE
*&---------------------------------------------------------------------*
* -->I_TAB_IN
* -->I_NAME
* -->O_VALUE
*----------------------------------------------------------------------*
FORM GET_VALUE TABLES I_TAB_IN STRUCTURE ITCSY
USING I_NAME
O_VALUE .
CLEAR O_VALUE.
READ TABLE I_TAB_IN WITH KEY NAME = I_NAME.
O_VALUE = I_TAB_IN-VALUE.
ENDFORM. " GET_VALUE

Hope this will help and give an idea.

Regards,

Ferry Lianto

Former Member
0 Kudos

Hi,

It didnt worked out.

what I did is

given command lines in the script

/: define &gv_matnr = &ltap-matnr&

/: perform zero_padding_matnr in program zscm_get_mat_no

/: using &ltap-matnr&

/: changing &gv_matnr&

/:endform.

and in SE38 created a subroutine program .

&----


*& Form ZERO_PADDING_PO

&----


----


FORM ZERO_PADDING_MATNR TABLES TAB_IN STRUCTURE ITCSY

TAB_OUT STRUCTURE ITCSY.

DATA : GV_MATNR(10).

CLEAR GV_MATNR.

REFRESH TAB_OUT.

PERFORM GET_VALUE TABLES TAB_IN USING 'GV_MATNR' GV_MATNR.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = 'GV_MATNR'

IMPORTING

OUTPUT = GV_MATNR.

CLEAR TAB_OUT.

TAB_OUT-NAME = 'GV_MATNR'.

TAB_OUT-VALUE = GV_MATNR.

APPEND TAB_OUT.

ENDFORM. " GET_VALUE

&----


*& Form GET_VALUE

&----


  • -->I_TAB_IN

  • -->I_NAME

  • -->O_VALUE

----


FORM GET_VALUE TABLES I_TAB_IN STRUCTURE ITCSY

USING I_NAME

O_VALUE .

CLEAR O_VALUE.

READ TABLE I_TAB_IN WITH KEY NAME = I_NAME.

O_VALUE = I_TAB_IN-VALUE.

ENDFORM. " GET_VALUE

but its not working out, where is the mistake.please help me out.

Thanks so much,

Praveen

Former Member
0 Kudos

HI praveen,

provide paragraph format for field...as..

PR &LTAP-MATNR(Z)&

where PR is paragraph format.

or

Use UnPACK b4 sending to script.

<b>Loop at Ltap.

unpack ltap-matnr to ltap-matnr.

modify ltap transporting matnr.

endloop.</b>

open_form.

start_form.

...

close form.

or

write a subroutine with CONVERSION_EXIT_ALPHA_OUTPUT / CONVERSION_EXIT_ALPHA_INPUT / CONVERSION_EXIT_MATN1_INPUT / CONVERSION_EXIT_MATN1_OUTPUT

CALL FUNCTION 'CONVERSION_EXIT_(ANY OF ABOVE MODULE)'

EXPORTING

INPUT = LTAP-MATNR

IMPORTING

OUTPUT = LTAP-MATNR.

Regards

SAB

Former Member
0 Kudos

/: &SYMBOL(Z)& --->Suppress leading zeros

i dont know why it is not working