Application Development 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: 

AMDP: SQLSCRIPT message: return type mismatch error

former_member196555
Participant
0 Kudos

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.

1 ACCEPTED SOLUTION

amol_samte
Contributor
0 Kudos

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

4 REPLIES 4

amol_samte
Contributor
0 Kudos

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

alexp0l
Explorer
0 Kudos

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,

0 Kudos

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).

0 Kudos

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