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

Different datatypes to be compared

Former Member
0 Likes
820

Hi ppl,

I have a requirement wherein I need to get the name of the sales representative for the order.

I am fetching the sales representative from VAKPA-KUNDE.

Now I need to pass this value into PA0001-PERNR to get the name PA0001-ENAME.

But, the problem is that the lengths and datatypes of KUNDE and PERNR do not match. So, I am not able to fetch the name.

Please provide an alternate solution.

Thanks,

David.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
784

Hi,

Check the code below. Hope it helps.


TYPES: BEGIN OF ty_vakpa,
             kunde TYPE vakpa-kunde,
             vbeln TYPE vakpa-vbeln,
             END OF ty_vakpa,

 TYPES: BEGIN OF ty_vakpa_tmp,
              kunde TYPE pa0001-pernr,
              vbeln TYPE vakpa-vbeln,
              END OF ty_vakpa_tmp.

DATA: lt_vakpa     TYPE STANDARD TABLE OF ty_vakpa,
           lt_vakpa_tmp TYPE STANDARD TABLE OF ty_vakpa_tmp,
           ls_vakpa     TYPE ty_vakpa,
           ls_vakpa_tmp TYPE ty_vakpa_tmp.

<fetch the sales rep numbers (kunde) into lt_vakpa.>

      LOOP AT lt_vakpa INTO ls_vakpa.
        PERFORM make_same_types USING ls_vakpa-kunde
                           CHANGING ls_vakpa_tmp-kunde.
        APPEND ls_vakpa_tmp TO lt_vakpa_tmp.
        CLEAR: ls_vakpa,
               ls_vakpa_tmp.
      ENDLOOP.
* Fetch the name
      SELECT pernr
             ename
        FROM pa0001
        INTO TABLE gt_pa0001
         FOR ALL ENTRIES IN lt_vakpa_tmp
       WHERE pernr EQ lt_vakpa_tmp-kunde.
    ENDIF.
 

form MAKE_SAME_TYPES  USING p_kunde TYPE vakpa-kunde
                   changing p_pernr TYPE pa0001-pernr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  EXPORTING
    input         = p_kunde
  IMPORTING
    OUTPUT        = p_pernr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input         = p_pernr
  IMPORTING
    OUTPUT        = p_pernr.

endform.                    " MAKE_SAME_TYPES

Thanks.

Edited by: Dawood.S.Ghasletwala on Apr 20, 2009 6:35 PM

7 REPLIES 7
Read only

Former Member
0 Likes
784

Hi david,

Have an intermediate variable say v_pernr type pernr.

data v_pernr type PA0001-PERNR.

v_pernr = VAKPA-KUNDE.

Then use v_pernr to get the record from PA0001

Regards,

Ravi

Read only

0 Likes
784

Hi Ravi,

I have already tried this.

But, since PERNR is 8 characters only, the last 2 characters get truncated after the assignment statement.

Thanks,

David.

Read only

Former Member
0 Likes
784

Move KUNDE to a temporary variable. Declare this temporary variable type PERNR. Use this variable in the select query

Read only

Former Member
0 Likes
784

hi ,

You can use the move statement to move the values from one field to the other .As you might know that VAKPA-KUNDE is 10 char and PA0001-PERNR is 8 characters . so the maximum characters than can be given will be 8.

eg: move wrk_1 to wrk_2.

Read only

Former Member
0 Likes
784

Hi,

If you are fetching to a internal table you can create a different structure and move the contents using MOVE statement.First create structure according to your requirement and declare a internal table, after fetching records to the internal table from VAKPA move that table contents to the table which have the similar structure except kunde field is typed pa0001-pernr.

Try this code ---

DATA : BEGIN OF fs_itab ,
         kunde TYPE vakpa-kunde,   " pa0001-pernr,
         parvw TYPE vakpa-parvw,
         vkorg TYPE vakpa-vkorg,
         trvog TYPE vakpa-trvog,
         audat TYPE vakpa-audat,
       END OF fs_itab.

   DATA : BEGIN OF fs_itab1 ,
         kunde TYPE pa0001-pernr,   " pa0001-pernr,
         parvw TYPE vakpa-parvw,
         vkorg TYPE vakpa-vkorg,
         trvog TYPE vakpa-trvog,
         audat TYPE vakpa-audat,
       END OF fs_itab1.

DATA : t_itab LIKE TABLE OF fs_itab,
       t_itab1 LIKE TABLE OF fs_itab1.

SELECT kunde
       parvw
       vkorg
       trvog
       audat FROM vakpa INTO
       CORRESPONDING FIELDS OF TABLE t_itab.

MOVE t_itab TO t_itab1.        " Move to the desire typed

Regards

Pinaki

Read only

Former Member
0 Likes
785

Hi,

Check the code below. Hope it helps.


TYPES: BEGIN OF ty_vakpa,
             kunde TYPE vakpa-kunde,
             vbeln TYPE vakpa-vbeln,
             END OF ty_vakpa,

 TYPES: BEGIN OF ty_vakpa_tmp,
              kunde TYPE pa0001-pernr,
              vbeln TYPE vakpa-vbeln,
              END OF ty_vakpa_tmp.

DATA: lt_vakpa     TYPE STANDARD TABLE OF ty_vakpa,
           lt_vakpa_tmp TYPE STANDARD TABLE OF ty_vakpa_tmp,
           ls_vakpa     TYPE ty_vakpa,
           ls_vakpa_tmp TYPE ty_vakpa_tmp.

<fetch the sales rep numbers (kunde) into lt_vakpa.>

      LOOP AT lt_vakpa INTO ls_vakpa.
        PERFORM make_same_types USING ls_vakpa-kunde
                           CHANGING ls_vakpa_tmp-kunde.
        APPEND ls_vakpa_tmp TO lt_vakpa_tmp.
        CLEAR: ls_vakpa,
               ls_vakpa_tmp.
      ENDLOOP.
* Fetch the name
      SELECT pernr
             ename
        FROM pa0001
        INTO TABLE gt_pa0001
         FOR ALL ENTRIES IN lt_vakpa_tmp
       WHERE pernr EQ lt_vakpa_tmp-kunde.
    ENDIF.
 

form MAKE_SAME_TYPES  USING p_kunde TYPE vakpa-kunde
                   changing p_pernr TYPE pa0001-pernr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
  EXPORTING
    input         = p_kunde
  IMPORTING
    OUTPUT        = p_pernr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input         = p_pernr
  IMPORTING
    OUTPUT        = p_pernr.

endform.                    " MAKE_SAME_TYPES

Thanks.

Edited by: Dawood.S.Ghasletwala on Apr 20, 2009 6:35 PM

Read only

Former Member
0 Likes
784

Thanks a lot for the responses.

The code given by Dawood worked as desired.

Thanks,

David.