02-15-2016 7:22 AM
Dear Colleagues,
I am getting the mismatch error for the AMDP that I am trying to write.
Can you help me here?
Error Message:
SQLSCRIPT message: return type mismatch: GT_DTAB2[ PLTYP:NVARCHAR(2) VBELN:NVARCHAR(10) FKDAT:NVARCHAR(8) KNUMV:NVARCHAR(10) FKART:NVARCHAR(4) KDGRP:NVARCHAR(2) MVGR3:NVARCHAR(3) POSNR:NVARCHAR(6) AUBEL:NVARCHAR(10) FKIMG:DECIMAL(13,3) ZZAM
AMDP Code stack
CLASS zcl_get_itab_value DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_amdp_marker_hdb.
TYPES: BEGIN OF ty_dtab1,
pltyp TYPE vbrk-pltyp,
kunnr TYPE vbpa-kunnr,
mvgr3 TYPE vbrp-mvgr3,
zzamatkl TYPE vbrp-zzamatkl,
matnr TYPE vbrp-matnr,
arktx TYPE vbrp-arktx,
kondm TYPE vbrp-kondm,
auart TYPE vbak-auart,
vbeln TYPE vbrk-vbeln,
posnr TYPE vbrp-posnr,
aubel TYPE vbrp-aubel,
fkdat TYPE vbrk-fkdat,
fkart TYPE vbrk-fkart,
fkimg TYPE vbrp-fkimg,
knumv TYPE vbak-knumv,
werks TYPE vbrp-werks,
END OF ty_dtab1.
TYPES gt_dtab1 TYPE STANDARD TABLE OF ty_dtab1.
CLASS-METHODS GET_DTAB_DATA_SAMPLE
IMPORTING
VALUE(gv_value) TYPE mandt
EXPORTING
VALUE(gt_dtab2) TYPE gt_dtab1.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_get_itab_value IMPLEMENTATION.
METHOD get_dtab_data_sample
by database procedure for hdb language
SQLSCRIPT OPTIONS READ-ONLY USING VBRP VBRK VBAK VBPA.
gt_dtab2 = SELECT T1."PLTYP", T1."VBELN", T1."FKDAT", T1."KNUMV",
T1."FKART", T1."KDGRP", T2."MVGR3", T2."POSNR",
T2."AUBEL", T2."FKIMG", T2."ZZAMATKL", T2."MATNR",
T2."ARKTX", T2."WERKS", T2."KONDM", T3."AUART",
T2."VKBUR", T4."KUNNR"
FROM "VBRP" AS T2
INNER JOIN "VBRK" AS T1
ON T1."VBELN" = T2."VBELN"
INNER JOIN "VBAK" AS T3
ON T2."AUBEL" = T3."VBELN"
INNER JOIN "VBPA" AS T4
ON T4."VBELN" = T2."VBELN"
WHERE T1."FKART" IN ('F2','RE','S1','S2','ZS','ZVAT','RVAT','ZIFR')
AND T1."VKORG" = 'IN01';
ENDMETHOD.
ENDCLASS.
Appreciate your time and inputs.
Thank you.
Warm Regards,
Harshad Mishrikotkar.
02-15-2016 7:31 AM
Dear Harshad,
This type of error occurred when out table fields are mismatched.
The sequence of all fields from gt_tab2 should be same as ty_dtab1
-Amol S
02-15-2016 7:31 AM
Dear Harshad,
This type of error occurred when out table fields are mismatched.
The sequence of all fields from gt_tab2 should be same as ty_dtab1
-Amol S
09-14-2016 9:50 AM
Hi,
I'm recieving the same message even though all fields are in the target table sequence.
Is there anything else missing? Do types of each individual field have to be identical? I.e. constant field of 0.0 (treated as decimal(1,1)) and target field is currency (treated as decimal(19,3))
Return message from db isn't very helpful as not idicating where error is occuring.
Thanks in advance,
09-16-2016 1:49 PM
Found that RECORD has to be in the mapping, even though it's not part of commented list of fields. Once it was in - transformation been activated (also target in "select" statement has to be in the same order and identical to structure TN_S_OUT).
09-15-2016 3:15 PM
Hello,
I think the problem is converting date field (FKDAT) from db to abap type. You need to convert date field using TO_DATS( ) function to convert date into abap type.
In your case mismatch error due to FKDAT field. Now try this in select query it may work.
TO_DATS(T1.FKDAT) as FKDAT
Thanks,
Venkatesh