Skip to Content
-1
Sep 14, 2023 at 11:24 AM

The accounting view is not defined by using below code using bapi_material_savedata.Why ?

67 Views Last edit Sep 15, 2023 at 11:18 AM 2 rev

*&---------------------------------------------------------------------*
*& Report ZMM_EXTEND1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM_EXTEND1.

**********************************************************************
* STRUCTURE DECLARATIONS *
**********************************************************************

TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MARD, " StorageLocationData
BAPI_MARDX, " StorageLocationDatax
BAPI_MBEW, "ValuationData
BAPI_MBEWX, "ValuationDatax
BAPIRET2. "Return messages

DATA:V_FILE TYPE STRING.


DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MTART(004) TYPE C, "Material type
MBRSH(001) TYPE C, "Industry sector
WERKS_From(004) TYPE C, "Plant
WERKS(004) TYPE C, "Plant
LGORT(004) Type C, "Storage Location"
MEINS(003) TYPE C, "Base unit of measure
STEUC(016) TYPE C, " Control Code - HSN Code
" MAKTX(040) Type C, " Material
END OF LSMW_MATERIAL_MASTER.


**********************************************************************
* INTERNAL TABLE DECLARATIONS *
**********************************************************************

*to store the input data
DATA:
BEGIN OF it_matmaster OCCURS 0.
INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.

DATA:
END OF it_matmaster.

*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.

*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.


TYPES : BEGIN OF ln_valuation ,
BKLAS TYPE mbew-BKLAS,
VPRSV TYPE mbew-VPRSV,
PEINH type mbew-PEINH,
END OF ln_valuation.

DATA : wa_valuation TYPE ln_valuation.

************************************************************************
* SELECTION SCREEN
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.

PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .

************************************************************************
* AT SELECTION SCREEN
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.



**********************************************************************
* TO UPLOAD THE DATA *
**********************************************************************

START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = IT_MATMASTER
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

LOOP AT IT_MATMASTER.
BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
BAPIMATHEAD-STORAGE_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.

BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
BAPI_MARAX-BASE_UOM = 'X'.

BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
BAPI_MARC-COUNTRYORI = 'IN'.
BAPI_MARC-CTRL_CODE = IT_MATMASTER-STEUC.
BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARCX-COUNTRYORI = 'X'.
BAPI_MARCX-CTRL_CODE = 'X'.

BAPI_MARD-PLANT = IT_MATMASTER-WERKS.
BAPI_MARD-STGE_LOC = IT_MATMASTER-LGORT.
BAPI_MARDX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARDX-STGE_LOC = IT_MATMASTER-LGORT.

select single BKLAS VPRSV PEINH from mbew into wa_valuation where matnr = IT_MATMASTER-MATNR and BWKEY = IT_MATMASTER-WERKS_from .

BAPI_MBEW-VAL_CLASS = wa_valuation-bklas .
BAPI_MBEW-PRICE_CTRL = wa_valuation-VPRSV .
BAPI_MBEW-PRICE_UNIT = wa_valuation-PEINH .
BAPI_MBEW-VAL_AREA = IT_MATMASTER-WERKS .
BAPI_MBEWX-VAL_CLASS = 'X' .
BAPI_MBEWX-PRICE_CTRL = 'X'. .
BAPI_MBEWX-PRICE_UNIT = 'X'. .
BAPI_MBEWX-VAL_AREA = IT_MATMASTER-WERKS .
append IT_materialdesc.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = BAPIMATHEAD
CLIENTDATA = BAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = BAPI_MARc
PLANTDATAX = BAPI_MARcx
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
STORAGELOCATIONDATA = BAPI_MARD
STORAGELOCATIONDATAX = BAPI_MARDX
VALUATIONDATA = BAPI_MBEW
VALUATIONDATAX = BAPI_MBEWX
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
IMPORTING
RETURN = IT_RETURN
* TABLES
* MATERIALDESCRIPTION = IT_MATERIALDESC
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
.

WRITE:/ IT_RETURN-TYPE,
2 IT_RETURN-ID,
22 IT_RETURN-NUMBER,
25 IT_RETURN-MESSAGE.
* IT_RETURN-LOG_NO,
* IT_RETURN-LOG_MSG_NO,
* 150 IT_RETURN-MESSAGE_V1.
* 150 IT_RETURN-MESSAGE_V2.
* IT_RETURN-MESSAGE_V3,
* IT_RETURN-MESSAGE_V4,
* IT_RETURN-PARAMETER,
* IT_RETURN-ROW,
* IT_RETURN-FIELD,
* IT_RETURN-SYSTEM.

ENDLOOP.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.