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

BAPI for tax code update in sales view

former_member209900
Participant
0 Likes
3,214

Dear All,

I am beginner of the ABAP. Hence, I created the BAPI for "Tax code update" in material master as SALES: Sale org View 1.

Hence, It's giving the error as "Key fields for use data PLANTDATA and checkbox structure PLANTDATAX are different".

Please see piece of my code as passing the value from internal table to BAPI.

FORM BAPI.

DATA : WA_HEADDATA TYPE BAPIMATHEAD,

        WA_PLANTDATA TYPE BAPI_MARC,

        WA_PLANTDATAX TYPE BAPI_MPGDX,

        WA_SALESDATA TYPE BAPI_MVKE ,

        i_taxclass TYPE TABLE OF BAPI_MLAN WITH HEADER LINE.

   DATA : IT_RETURN TYPE TABLE OF BAPIRET2,

          WA_RETURN TYPE BAPIRET2.

LOOP AT IT_TAB INTO WA_TAB.

WA_HEADDATA-MATERIAL    = wa_tab-matnr.

WA_HEADDATA-SALES_VIEW  = 'X'.

WA_PLANTDATA-PLANT       = wa_tab-werks.

WA_PLANTDATAX-PLANT      = wa_tab-werks.

WA_SALESDATA-SALES_ORG  = wa_tab-vkorg.

WA_SALESDATA-DISTR_CHAN = wa_tab-vtweg.

   SELECT SINGLE TAXM1 INTO TAXCODE FROM MLAN

     WHERE MATNR = WA_TAB-MATNR.

   CHECK TAXCODE IS NOT INITIAL.

     WA_TAB-TAXM1 = TAXCODE.

   i_taxclass-DEPCOUNTRY = 'IN'.

   i_taxclass-tax_type_1 = 'JIN6'.

   i_taxclass-taxclass_1 = WA_TAB-TAXM1.

   APPEND i_taxclass.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

   EXPORTING

     HEADDATA                   = WA_HEADDATA

*   CLIENTDATA                 =

*   CLIENTDATAX                =

    PLANTDATA                   = WA_PLANTDATA

*   PLANTDATAX                  = WA_PLANTDATAX

*   FORECASTPARAMETERS         =

*   FORECASTPARAMETERSX        =

*   PLANNINGDATA               =

*   PLANNINGDATAX              =

*   STORAGELOCATIONDATA        =

*   STORAGELOCATIONDATAX       =

*   VALUATIONDATA              =

*   VALUATIONDATAX             =

*   WAREHOUSENUMBERDATA        =

*   WAREHOUSENUMBERDATAX       =

    SALESDATA                   = WA_SALESDATA

*   SALESDATAX                 =

*   STORAGETYPEDATA            =

*   STORAGETYPEDATAX           =

*   FLAG_ONLINE                = ' '

*   FLAG_CAD_CALL              = ' '

*   NO_DEQUEUE                 = ' '

*   NO_ROLLBACK_WORK           = ' '

  IMPORTING

    RETURN                      = WA_RETURN

  TABLES

*   MATERIALDESCRIPTION        =

*   UNITSOFMEASURE             =

*   UNITSOFMEASUREX            =

*   INTERNATIONALARTNOS        =

*   MATERIALLONGTEXT           =

    TAXCLASSIFICATIONS          = i_taxclass

    RETURNMESSAGES              = IT_RETURN

*   PRTDATA                    =

*   PRTDATAX                   =

*   EXTENSIONIN                =

*   EXTENSIONINX               =

           .

     IF WA_RETURN-TYPE = 'E'.

       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

       WRITE:/ WA_HEADDATA-MATERIAL, 'is not created' COLOR 3.

     ELSE.

       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

         EXPORTING

           WAIT = 'X'.

       IF SY-SUBRC EQ 0.

         WRITE:/ WA_HEADDATA-MATERIAL, 'is created' COLOR 5.

       ENDIF.

     ENDIF.

ENDLOOP.



Kindly suggest.


Regards,

Ganapathi Raman P

1 ACCEPTED SOLUTION
Read only

0 Likes
2,147

Before going to the issue please verify the type of WA_PLANTDATAX , it is BAPI_MARCX .


WA_PLANTDATA-PLANT       = wa_tab-werks.

WA_PLANTDATAX-PLANT      = wa_tab-werks.


In WA_PLANTDATA-PLANT   , provide the plant and and in WA_PLANTDATAX-PLANT   the same plant for which you are extending the view  and mark as 'X''.


Here is the sample code .


* plantdata details

  LW_PLANTDATA-PLANT = P_LW_MARC_RES1-WERKS.

  LW_PLANTDATA-PUR_GROUP = P_LW_MARC_RES1-EKGRP.

  LW_PLANTDATA-AVAILCHECK = LW_YPLNTDEF-MTVFP.

* it_plantdata-MRP_TYPE = lw_yplntdef-dismm .

  MOVE LW_YPLNTDEF-DISMM TO LW_PLANTDATA-MRP_TYPE.

  LW_PLANTDATA-MRP_CTRLER = LW_YPLNTDEF-DISPO .

  LW_PLANTDATA-SM_KEY = LW_YPLNTDEF-FHORI.

  LW_PLANTDATA-LOTSIZEKEY = LW_YPLNTDEF-DISLS .

  LW_PLANTDATA-CTRL_KEY = LW_YPLNTDEF-SSQSS .

* plantdatax details

  LW_PLANTDATAX-PLANT = P_LW_MARC_RES1-WERKS.

  LW_PLANTDATAX-PUR_GROUP = 'X'.

  LW_PLANTDATAX-AVAILCHECK = 'X'.

  LW_PLANTDATAX-MRP_TYPE = 'X'.

  LW_PLANTDATAX-MRP_CTRLER = 'X'.

  LW_PLANTDATAX-SM_KEY = 'X'.

  LW_PLANTDATAX-LOTSIZEKEY = 'X'.

  LW_PLANTDATAX-CTRL_KEY = 'X'.

  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

  EXPORTING

  HEADDATA = LW_HEADDATA

* CLIENTDATA =

* CLIENTDATAX =

  PLANTDATA = LW_PLANTDATA

  PLANTDATAX = LW_PLANTDATAX

* FORECASTPARAMETERS =

* FORECASTPARAMETERSX =

* PLANNINGDATA =

* PLANNINGDATAX =

  STORAGELOCATIONDATA = LW_STORAGELOCATIONDATA

  STORAGELOCATIONDATAX = LW_STORAGELOCATIONDATAX

* VALUATIONDATA =

* VALUATIONDATAX =

* WAREHOUSENUMBERDATA =

* WAREHOUSENUMBERDATAX =

* SALESDATA =

* SALESDATAX =

* STORAGETYPEDATA =

* STORAGETYPEDATAX =

* FLAG_ONLINE = ' '

* FLAG_CAD_CALL = ' '

* NO_DEQUEUE = ' '

* NO_ROLLBACK_WORK = ' '

  IMPORTING

  RETURN = LW_RETURN

  TABLES

* MATERIALDESCRIPTION =

* UNITSOFMEASURE =

* UNITSOFMEASUREX =

* INTERNATIONALARTNOS =

* MATERIALLONGTEXT =

* TAXCLASSIFICATIONS =

  RETURNMESSAGES = LT_RETURNMESSAGE

* PRTDATA =

* PRTDATAX =

* EXTENSIONIN =

* EXTENSIONINX =

  .


Dear All,

I am beginner of the ABAP. Hence, I created the BAPI for "Tax code update" in material master as SALES: Sale org View 1.

Hence, It's giving the error as "Key fields for use data PLANTDATA and checkbox structure PLANTDATAX are different".

Please see piece of my code as passing the value from internal table to BAPI.

FORM BAPI.

DATA : WA_HEADDATA TYPE BAPIMATHEAD,

        WA_PLANTDATA TYPE BAPI_MARC,

        WA_PLANTDATAX TYPE BAPI_MPGDX,

        WA_SALESDATA TYPE BAPI_MVKE ,

        i_taxclass TYPE TABLE OF BAPI_MLAN WITH HEADER LINE.

   DATA : IT_RETURN TYPE TABLE OF BAPIRET2,

          WA_RETURN TYPE BAPIRET2.

LOOP AT IT_TAB INTO WA_TAB.

WA_HEADDATA-MATERIAL    = wa_tab-matnr.

WA_HEADDATA-SALES_VIEW  = 'X'.

WA_PLANTDATA-PLANT       = wa_tab-werks.

WA_PLANTDATAX-PLANT      = wa_tab-werks.

WA_SALESDATA-SALES_ORG  = wa_tab-vkorg.

WA_SALESDATA-DISTR_CHAN = wa_tab-vtweg.

   SELECT SINGLE TAXM1 INTO TAXCODE FROM MLAN

     WHERE MATNR = WA_TAB-MATNR.

   CHECK TAXCODE IS NOT INITIAL.

     WA_TAB-TAXM1 = TAXCODE.

   i_taxclass-DEPCOUNTRY = 'IN'.

   i_taxclass-tax_type_1 = 'JIN6'.

   i_taxclass-taxclass_1 = WA_TAB-TAXM1.

   APPEND i_taxclass.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

   EXPORTING

     HEADDATA                   = WA_HEADDATA

*   CLIENTDATA                 =

*   CLIENTDATAX                =

    PLANTDATA                   = WA_PLANTDATA

*   PLANTDATAX                  = WA_PLANTDATAX

*   FORECASTPARAMETERS         =

*   FORECASTPARAMETERSX        =

*   PLANNINGDATA               =

*   PLANNINGDATAX              =

*   STORAGELOCATIONDATA        =

*   STORAGELOCATIONDATAX       =

*   VALUATIONDATA              =

*   VALUATIONDATAX             =

*   WAREHOUSENUMBERDATA        =

*   WAREHOUSENUMBERDATAX       =

    SALESDATA                   = WA_SALESDATA

*   SALESDATAX                 =

*   STORAGETYPEDATA            =

*   STORAGETYPEDATAX           =

*   FLAG_ONLINE                = ' '

*   FLAG_CAD_CALL              = ' '

*   NO_DEQUEUE                 = ' '

*   NO_ROLLBACK_WORK           = ' '

  IMPORTING

    RETURN                      = WA_RETURN

  TABLES

*   MATERIALDESCRIPTION        =

*   UNITSOFMEASURE             =

*   UNITSOFMEASUREX            =

*   INTERNATIONALARTNOS        =

*   MATERIALLONGTEXT           =

    TAXCLASSIFICATIONS          = i_taxclass

    RETURNMESSAGES              = IT_RETURN

*   PRTDATA                    =

*   PRTDATAX                   =

*   EXTENSIONIN                =

*   EXTENSIONINX               =

           .

     IF WA_RETURN-TYPE = 'E'.

       CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

       WRITE:/ WA_HEADDATA-MATERIAL, 'is not created' COLOR 3.

     ELSE.

       CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

         EXPORTING

           WAIT = 'X'.

       IF SY-SUBRC EQ 0.

         WRITE:/ WA_HEADDATA-MATERIAL, 'is created' COLOR 5.

       ENDIF.

     ENDIF.

ENDLOOP.



Kindly suggest.


Regards,

Ganapathi Raman P

4 REPLIES 4
Read only

0 Likes
2,148

Before going to the issue please verify the type of WA_PLANTDATAX , it is BAPI_MARCX .


WA_PLANTDATA-PLANT       = wa_tab-werks.

WA_PLANTDATAX-PLANT      = wa_tab-werks.


In WA_PLANTDATA-PLANT   , provide the plant and and in WA_PLANTDATAX-PLANT   the same plant for which you are extending the view  and mark as 'X''.


Here is the sample code .


* plantdata details

  LW_PLANTDATA-PLANT = P_LW_MARC_RES1-WERKS.

  LW_PLANTDATA-PUR_GROUP = P_LW_MARC_RES1-EKGRP.

  LW_PLANTDATA-AVAILCHECK = LW_YPLNTDEF-MTVFP.

* it_plantdata-MRP_TYPE = lw_yplntdef-dismm .

  MOVE LW_YPLNTDEF-DISMM TO LW_PLANTDATA-MRP_TYPE.

  LW_PLANTDATA-MRP_CTRLER = LW_YPLNTDEF-DISPO .

  LW_PLANTDATA-SM_KEY = LW_YPLNTDEF-FHORI.

  LW_PLANTDATA-LOTSIZEKEY = LW_YPLNTDEF-DISLS .

  LW_PLANTDATA-CTRL_KEY = LW_YPLNTDEF-SSQSS .

* plantdatax details

  LW_PLANTDATAX-PLANT = P_LW_MARC_RES1-WERKS.

  LW_PLANTDATAX-PUR_GROUP = 'X'.

  LW_PLANTDATAX-AVAILCHECK = 'X'.

  LW_PLANTDATAX-MRP_TYPE = 'X'.

  LW_PLANTDATAX-MRP_CTRLER = 'X'.

  LW_PLANTDATAX-SM_KEY = 'X'.

  LW_PLANTDATAX-LOTSIZEKEY = 'X'.

  LW_PLANTDATAX-CTRL_KEY = 'X'.

  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

  EXPORTING

  HEADDATA = LW_HEADDATA

* CLIENTDATA =

* CLIENTDATAX =

  PLANTDATA = LW_PLANTDATA

  PLANTDATAX = LW_PLANTDATAX

* FORECASTPARAMETERS =

* FORECASTPARAMETERSX =

* PLANNINGDATA =

* PLANNINGDATAX =

  STORAGELOCATIONDATA = LW_STORAGELOCATIONDATA

  STORAGELOCATIONDATAX = LW_STORAGELOCATIONDATAX

* VALUATIONDATA =

* VALUATIONDATAX =

* WAREHOUSENUMBERDATA =

* WAREHOUSENUMBERDATAX =

* SALESDATA =

* SALESDATAX =

* STORAGETYPEDATA =

* STORAGETYPEDATAX =

* FLAG_ONLINE = ' '

* FLAG_CAD_CALL = ' '

* NO_DEQUEUE = ' '

* NO_ROLLBACK_WORK = ' '

  IMPORTING

  RETURN = LW_RETURN

  TABLES

* MATERIALDESCRIPTION =

* UNITSOFMEASURE =

* UNITSOFMEASUREX =

* INTERNATIONALARTNOS =

* MATERIALLONGTEXT =

* TAXCLASSIFICATIONS =

  RETURNMESSAGES = LT_RETURNMESSAGE

* PRTDATA =

* PRTDATAX =

* EXTENSIONIN =

* EXTENSIONINX =

  .


Read only

0 Likes
2,147

Hi Amareh,

Thanks for the reply,

Actual requirement is , update the tax code in sales org view 1,

Hence , the input file contains,

material-code  plant   sales org    dischnel. 

Can you please help, how to achieve

Regards,

ganapathi

Read only

0 Likes
2,147

What is the problem you are getting now ? before going to write the code check this BAPI in SE37 for the mandatory inputs , I will suggest to execute the BAPI successfully in se37 , followed by BAPI_TRANSACTION-COMMIT , then move to the code .

Check what is the error is coming in BAPI return .

Regards,

Amaresh

Read only

0 Likes
2,147

Got it.