‎2009 Apr 20 1:24 PM
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.
‎2009 Apr 20 2:04 PM
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
‎2009 Apr 20 1:29 PM
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
‎2009 Apr 20 1:38 PM
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.
‎2009 Apr 20 1:37 PM
Move KUNDE to a temporary variable. Declare this temporary variable type PERNR. Use this variable in the select query
‎2009 Apr 20 1:38 PM
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.
‎2009 Apr 20 1:55 PM
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 typedRegards
Pinaki
‎2009 Apr 20 2:04 PM
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
‎2009 Apr 20 2:09 PM
Thanks a lot for the responses.
The code given by Dawood worked as desired.
Thanks,
David.