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: 

Bapi_salesorder_change

Former Member
0 Kudos

Hii Everybody,

Im a fresher n i got an assignment to change sales order using bapi_salesorder_change,

i want to change usage indicator but when i do so rest all the columans for dat particular posnr gets blank....i dot want to change dat...i want to retain their values..

plz help me

thanks in advance

2 REPLIES 2

Former Member
0 Kudos

Hi

See the sample report using the same BAPI

and change the code as per your logic

REPORT Z_SALES_ORDER_CHANGE

NO STANDARD PAGE HEADING

LINE-SIZE 132

LINE-COUNT 65(0)

MESSAGE-ID ZZ.

TABLES: VBAP.

DATA:

V_FILEIN(90) TYPE C,

V_RECIN TYPE I,

V_RECVBAP TYPE I,

V_RECORDER TYPE I,

V_VBELN LIKE VBAP-VBELN,

ORDERHEADERINX LIKE BAPISDH1X.

DATA: BEGIN OF I_ORDERS OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

BRGEW(18) TYPE C,

VOLUM(18) TYPE C,

END OF I_ORDERS.

DATA: BEGIN OF I_OUTPUT OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

  • GEWEI LIKE VBAP-GEWEI,

BRGEW LIKE VBAP-BRGEW,

VOLUM LIKE VBAP-VOLUM,

CKWGT TYPE C,

CKVOL TYPE C,

END OF I_OUTPUT.

DATA: BEGIN OF ORDERITEMIN OCCURS 0.

INCLUDE STRUCTURE BAPISDITM.

DATA: END OF ORDERITEMIN.

DATA: BEGIN OF ORDERITEMINX OCCURS 0.

INCLUDE STRUCTURE BAPISDITMX.

DATA: END OF ORDERITEMINX.

DATA: BEGIN OF RETURN OCCURS 0.

INCLUDE STRUCTURE BAPIRET2.

DATA: END OF RETURN.

DATA: BEGIN OF BAPIRETURN OCCURS 0.

INCLUDE STRUCTURE BAPIRET2.

DATA: END OF BAPIRETURN.

PARAMETERS:

P_PATH(45) TYPE C DEFAULT '/usr/users/ftpsapom/' LOWER CASE,

P_FNAME(32) TYPE C DEFAULT '/sweetjo.txt' LOWER CASE.

START-OF-SELECTION.

  • CONCATENATE PATH AND FILE NAME INTO ONE VARIABLE

CONCATENATE P_PATH P_FNAME INTO V_FILEIN.

  • OPEN DATASET

IF V_FILEIN IS INITIAL.

MESSAGE E002 WITH 'FILE' V_FILEIN 'DOES NOT CONTAIN ANY DATA!'.

  • & & & &

ELSE.

OPEN DATASET V_FILEIN

FOR INPUT

IN TEXT MODE.

IF SY-SUBRC = 0.

  • READ DATASET

DO.

READ DATASET V_FILEIN INTO I_ORDERS.

IF SY-SUBRC = 0.

APPEND I_ORDERS.

ELSE.

EXIT.

ENDIF.

ENDDO.

  • CLOSE DATASET

CLOSE DATASET V_FILEIN.

IF SY-SUBRC <> 0.

MESSAGE E002 WITH 'ERROR - CLOSING' V_FILEIN.

  • & & & &

ENDIF.

ELSE.

MESSAGE E002 WITH 'ERROR - COULD NOT OPEN' V_FILEIN.

  • & & & &

ENDIF.

ENDIF.

  • SORT AND REMOVE DUPLICATES FROM I_ORDERS

SORT I_ORDERS BY VBELN POSNR.

DELETE ADJACENT DUPLICATES FROM I_ORDERS.

  • POPULATE I_OUTPUT

LOOP AT I_ORDERS.

SHIFT I_ORDERS-POSNR LEFT DELETING LEADING SPACE.

CONCATENATE '0' I_ORDERS-POSNR INTO I_ORDERS-POSNR.

SELECT SINGLE BRGEW VOLUM

FROM VBAP

INTO (VBAP-BRGEW, VBAP-VOLUM)

WHERE VBELN = I_ORDERS-VBELN

AND POSNR = I_ORDERS-POSNR.

IF SY-SUBRC = 0.

IF VBAP-BRGEW = 0.

I_OUTPUT-CKWGT = 'X'.

ENDIF.

IF VBAP-VOLUM = 0.

I_OUTPUT-CKVOL = 'X'.

ENDIF.

I_OUTPUT-VBELN = I_ORDERS-VBELN.

I_OUTPUT-POSNR = I_ORDERS-POSNR.

  • I_OUTPUT-GEWEI = 'ST'.

I_OUTPUT-BRGEW = I_ORDERS-BRGEW.

I_OUTPUT-VOLUM = I_ORDERS-VOLUM.

APPEND I_OUTPUT.

CLEAR: I_OUTPUT.

ENDIF.

V_RECIN = V_RECIN + 1.

ENDLOOP.

  • POPULATE BAPI DATA AND RUN BAPI

CLEAR: ORDERHEADERINX, ORDERITEMIN, ORDERITEMINX,

RETURN, BAPIRETURN.

REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.

ORDERHEADERINX-UPDATEFLAG = 'U'.

LOOP AT I_OUTPUT WHERE CKWGT = 'X' OR CKVOL = 'X'.

V_RECVBAP = V_RECVBAP + 1.

IF I_OUTPUT-VBELN <> V_VBELN AND SY-TABIX <> 1.

V_RECORDER = V_RECORDER + 1.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = V_VBELN

ORDER_HEADER_INX = ORDERHEADERINX

TABLES

RETURN = RETURN

ORDER_ITEM_IN = ORDERITEMIN

ORDER_ITEM_INX = ORDERITEMINX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = BAPIRETURN.

  • WRITE OUT RETURN

LOOP AT RETURN.

WRITE: / RETURN.

ENDLOOP.

WRITE: / BAPIRETURN.

SKIP.

CLEAR: ORDERITEMIN, ORDERITEMINX,

RETURN, BAPIRETURN.

REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.

ENDIF.

ORDERITEMIN-ITM_NUMBER = I_OUTPUT-POSNR.

  • ORDERITEMIN-UNTOF_WGHT = I_OUTPUT-GEWEI.

IF NOT I_OUTPUT-CKWGT IS INITIAL.

ORDERITEMIN-GROSS_WGHT = I_OUTPUT-BRGEW.

ORDERITEMINX-GROSS_WGHT = 'X'.

ENDIF.

IF NOT I_OUTPUT-CKVOL IS INITIAL.

ORDERITEMIN-VOLUME = I_OUTPUT-VOLUM.

ORDERITEMINX-VOLUME = 'X'.

ENDIF.

APPEND ORDERITEMIN.

ORDERITEMINX-ITM_NUMBER = I_OUTPUT-POSNR.

  • ORDERITEMINX-UNTOF_WGHT = 'X'.

ORDERITEMINX-UPDATEFLAG = 'U'.

APPEND ORDERITEMINX.

V_VBELN = I_OUTPUT-VBELN.

ENDLOOP.

  • RUN BAPI ON LAST ORDER

IF NOT ORDERITEMIN IS INITIAL.

V_RECORDER = V_RECORDER + 1.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = V_VBELN

ORDER_HEADER_INX = ORDERHEADERINX

TABLES

RETURN = RETURN

ORDER_ITEM_IN = ORDERITEMIN

ORDER_ITEM_INX = ORDERITEMINX.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = BAPIRETURN.

  • WRITE OUT RETURN

LOOP AT RETURN.

WRITE: / RETURN.

ENDLOOP.

WRITE: / BAPIRETURN.

SKIP.

ENDIF.

  • WRITE OUT RECORD COUNT FROM FILE

WRITE: / 'RECORD COUNT FROM FILE ', V_RECIN.

SKIP.

  • WRITE OUT RECORD COUNT FROM FILE

WRITE: / 'RECORD COUNT OF LINES TO CHANGE ', V_RECVBAP.

SKIP.

  • WRITE OUT RECORD COUNT FROM FILE

WRITE: / 'RECORD COUNT OF ORDERS TO CHANGE ', V_RECORDER.

SKIP.

  • TOP OF PAGE

TOP-OF-PAGE.

WRITE:/1(5) TEXT-H01, 6(8) SY-DATUM MM/DD/YY,

100(8) TEXT-H02, 126(8) SY-PAGNO.

WRITE:/1(5) TEXT-H03, 6(8) SY-UZEIT USING EDIT MASK '__:__:__',

20(77) TEXT-H04,

100(8) TEXT-H05, 108(25) SY-REPID.

WRITE:/1(6) TEXT-H06, 8(12) SY-UNAME,

20(4) TEXT-H07, 25(32) SY-HOST,

100(13) TEXT-H08, 121(8) SY-SYSID,

129 '/', 130(3) SY-MANDT.

ULINE.

SKIP.

Reward points if useful

Regards

Anji

Former Member
0 Kudos

hi

here is the sample code which may help u.

REPORT z_sd_salesorder_create

NO STANDARD PAGE HEADING

LINE-SIZE 150

MESSAGE-ID zz.

&----


  • S T R U C T U R E D E C L A R A T I O N S *

&----


TYPES: BEGIN OF x_ppl,

ppl_order(18), " ppl Orderno

auart(4), " Sales Doc Type

vkorg(4), " Sales Organization

vtweg(2), " Distribution Channel

spart(2), " Division

div(3), " Division

kunnr(10), " Sold-to Party

date(10), " Doc Dt

matnr(18), " Item Matnr#

uom(3), " UOM

qty(15), " Qty

  • kschl(4), " Pricing condiiton type

  • kbetr(11), " Rate

END OF x_ppl.

TYPES: BEGIN OF x_file,

loc(30), " Location

div(3), " Division

ppl_order(18), " ppl Orderno

kunnr(10), " Sold-to Party

date(10), " Doc Dt

matnr(20), " Item Matnr#

qty(15), " Qty

uom(3), " UOM

  • kbetr(11), " Rate

  • discount(5), " Discount

END OF x_file.

TYPES: BEGIN OF x_output,

ppl_order(18), " ppl Orderno

mesg(130), " Mesg Success/Error

END OF x_output.

TYPES: BEGIN OF x_werks,

name2(30), " Location

werks TYPE werks_ext, " Plant

END OF x_werks.

TYPES: BEGIN OF x_info,

vkorg TYPE vkorg , " Sales org

vtweg TYPE vtweg, " Dist channel

werks TYPE werks_ext," Plant

spart TYPE spart, " Storage Loc

END OF x_info.

TYPES: BEGIN OF x_material,

ppl_prdid(20), " ppl Prd id

matnr TYPE matnr, " Material (SAP)

END OF x_material.

&----


  • I N T E R N A L T A B L E D E C L A R A T I O N S *

&----


DATA: it_file TYPE STANDARD TABLE OF x_file WITH HEADER LINE." File Data

DATA: it_data TYPE STANDARD TABLE OF x_ppl WITH HEADER LINE." ppl File

DATA: it_out TYPE STANDARD TABLE OF x_output WITH HEADER LINE. " Outcome

DATA: it_werks TYPE STANDARD TABLE OF x_werks WITH HEADER LINE. " Plant

DATA: it_info TYPE STANDARD TABLE OF x_info WITH HEADER LINE. " Othr Info

DATA: it_matnr TYPE STANDARD TABLE OF x_material WITH HEADER LINE. " Material Info

DATA: it_item TYPE STANDARD TABLE OF bapiitemin WITH HEADER LINE. "Order Itm data

DATA: it_partner TYPE STANDARD TABLE OF bapipartnr WITH HEADER LINE. "Order Partner data

&----


  • V A R I A B L E S D E C L A R A T I O N S *

&----


DATA : v_correct TYPE i,

v_error TYPE i,

v_total TYPE i,

v_return LIKE bapireturn1,

v_index LIKE sy-tabix.

*- Return values

DATA: it_orderh TYPE bapisdhead, "Order Hdr data

order TYPE bapivbeln-vbeln,

soldto TYPE bapisoldto,

shipto TYPE bapishipto,

return TYPE bapireturn1.

DATA: hdate TYPE sy-datum.

&----


  • U S E R I N P U T S S C R E E N *

&----


SELECTION-SCREEN: BEGIN OF BLOCK blk01 WITH FRAME TITLE text-t01.

PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY. " File name

SELECTION-SCREEN END OF BLOCK blk01.

&----


  • S E L E C T I O N S C R E E N *

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM get_file.

&----


  • S t a r t o f S e l e c t i o n *

&----


START-OF-SELECTION.

PERFORM get_upload.

PERFORM validate_data. " Validate the data

PERFORM data_swap. " Prepare the data for processing

IF NOT it_data[] IS INITIAL.

PERFORM get_update. " Create SalesOrders

ELSE.

MESSAGE i001(zz) WITH text-001.

STOP.

ENDIF.

&----


  • E n d o f S e l e c t i o n *

&----


END-OF-SELECTION.

IF NOT it_data[] IS INITIAL.

PERFORM get_write.

ENDIF.

&----


*& Form get_file

&----


  • Get File name

----


FORM get_file .

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

program_name = syst-repid

mask = '*'

CHANGING

file_name = p_file

EXCEPTIONS

mask_too_long = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " get_file

&----


*& Form get_upload

&----


  • to upload the file

----


FORM get_upload .

DATA l_file TYPE string.

CLEAR: it_file, it_file[].

l_file = p_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = l_file

filetype = 'ASC'

has_field_separator = 'X'

TABLES

data_tab = it_file

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.

ELSEIF sy-subrc = 0.

SORT it_file BY loc ppl_order.

ENDIF.

ENDFORM. " get_upload

&----


*& Form get_update

&----


  • Creating mapping Data in Z table

----


FORM get_update .

DATA: l_itemno(2) TYPE n,

l_partner TYPE parvw,

l_kunnr TYPE kunnr,

l_matnr TYPE matnr,

l_mesg TYPE string,

l_kbetr TYPE p DECIMALS 2.

DATA: l_in_qty LIKE vbap-zmeng,

l_meins LIKE mara-meins,

l_qty LIKE vbap-zmeng.

CLEAR: v_correct, v_error, v_total.

SORT it_data BY ppl_order.

LOOP AT it_data.

CLEAR v_index.

v_index = sy-tabix.

*- New SalesOrder

AT NEW ppl_order.

READ TABLE it_data INDEX v_index.

CLEAR: it_orderh, it_item, it_partner,

order, soldto, shipto, return,

it_item[], it_partner[].

v_total = v_total + 1. "Increment Total SalesOrders counter

CLEAR l_itemno.

l_itemno = '10'.

*- Covert date fields into Internal format

CALL FUNCTION 'CONVERT_DATE_TO_INTERN_FORMAT'

EXPORTING

datum = it_data-date

dtype = 'DATS'

IMPORTING

idate = it_data-date.

*- Populate SalesOrder header data.

CALL FUNCTION 'CONVERSION_EXIT_AUART_INPUT'

EXPORTING

input = it_data-auart

IMPORTING

output = it_data-auart.

it_orderh-doc_type = it_data-auart.

it_orderh-sales_org = it_data-vkorg.

it_orderh-distr_chan = it_data-vtweg.

it_orderh-division = it_data-spart.

it_orderh-purch_no = 'DEPOT'.

it_orderh-price_date = it_data-date. "Doc Dt

it_orderh-req_date_h = it_data-date. "Del.Dt

it_orderh-purch_no_s = it_data-ppl_order.

*- Partner data

CLEAR: l_partner, l_kunnr.

*- Convert Partner type into internal format

l_partner = 'SP'. "SoldTo Party

CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'

EXPORTING

input = l_partner

IMPORTING

output = l_partner.

*- Convert Customer into internal format

l_kunnr = it_data-kunnr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = l_kunnr

IMPORTING

output = l_kunnr.

it_partner-partn_role = l_partner.

it_partner-partn_numb = l_kunnr.

APPEND it_partner.

CLEAR it_partner.

ENDAT.

*- Item data

it_item-itm_number = l_itemno.

*- Convert material number into internal format

CLEAR l_matnr.

l_matnr = it_data-matnr.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = l_matnr

IMPORTING

output = l_matnr

EXCEPTIONS

length_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

it_item-material = l_matnr.

*- Call FM to get new qty based on SAP UOM

CLEAR: l_meins, l_qty, l_in_qty.

l_in_qty = it_data-qty.

CALL FUNCTION 'Z_GET_QTY_FROM_UOM'

EXPORTING

matnr = it_item-material

in_meins = it_data-uom

in_qty = l_in_qty

IMPORTING

out_meins = l_meins

quantity = l_qty.

IF sy-subrc = 0.

it_data-qty = l_qty.

it_data-uom = l_meins.

ENDIF.

it_data-qty = it_data-qty * 1000.

it_item-req_qty = it_data-qty.

it_item-sales_unit = it_data-uom.

it_item-req_date = it_data-date.

*- Pricing data

  • it_item-cond_type = it_data-kschl. "Pricing condition

  • CLEAR l_kbetr.

  • l_kbetr = it_data-kbetr / 10. "Price (Rate)

  • it_item-cond_value = l_kbetr.

APPEND it_item.

CLEAR it_item.

*- Increment Item counter.

l_itemno = l_itemno + 10.

*- At end of SalesOrder

AT END OF ppl_order.

READ TABLE it_data INDEX v_index.

*- Call the BAPI for SalesOrder creation

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'

EXPORTING

order_header_in = it_orderh

IMPORTING

salesdocument = order

sold_to_party = soldto

ship_to_party = shipto

return = return

TABLES

order_items_in = it_item

order_partners = it_partner.

IF sy-subrc = 0.

COMMIT WORK.

ENDIF.

v_return = return+0(1).

IF v_return = 'E'.

v_error = v_error + 1.

CLEAR l_mesg.

l_mesg = return.

CONDENSE l_mesg.

ELSE.

v_correct = v_correct + 1.

CLEAR l_mesg.

CONCATENATE 'Salesorder'(007) order 'successfully created.'(008)

INTO l_mesg SEPARATED BY space.

CONDENSE l_mesg.

ENDIF.

*- Populate the output table

CLEAR it_out.

it_out-ppl_order = it_data-ppl_order.

it_out-mesg = l_mesg.

APPEND it_out.

CLEAR it_out.

ENDAT.

ENDLOOP.

ENDFORM. " get_update

&----


*& Form get_write

&----


  • Write the results

----


FORM get_write .

WRITE:/ 'Total Number of Records :'(002), v_total COLOR 1.

WRITE:/ 'Total Correct Records :'(003), v_correct COLOR 3.

WRITE:/ 'Total Error Records :'(004), v_error COLOR 6.

SKIP 3.

IF NOT it_out[] IS INITIAL.

WRITE:/5 'ppl Order #'(005),

28 'Message'(006).

ENDIF.

SKIP 1.

LOOP AT it_out.

WRITE:/5 it_out-ppl_order,

28 it_out-mesg.

ENDLOOP.

ENDFORM. " get_write

&----


*& Form validate_data

&----


  • Validate the data

----


FORM validate_data .

DATA: l_bstkde TYPE bstkd_e.

LOOP AT it_file.

SELECT bstkd_e INTO l_bstkde

UP TO 1 ROWS

FROM vbkd

WHERE bstkd_e = it_file-ppl_order.

ENDSELECT.

IF sy-subrc = 0. " This ppl Order is already been created in SAP, so delete record

DELETE it_file.

ENDIF.

ENDLOOP.

SORT it_file BY ppl_order.

ENDFORM. " validate_data

&----


*& Form data_swap

&----


  • Prepare the data for processing

----


FORM data_swap .

CLEAR: it_werks, it_info, it_matnr, it_data,

it_werks[], it_info[], it_matnr[], it_data[].

IF NOT it_file[] IS INITIAL.

*- Get the plant from location

SELECT name2

werks

INTO CORRESPONDING FIELDS OF TABLE it_werks

FROM t001w FOR ALL ENTRIES IN it_file

WHERE name2 = it_file-loc.

IF sy-subrc = 0.

SORT it_werks BY name2 werks.

*- Get the Sales Org, Division and Distribution Channel

IF NOT it_werks[] IS INITIAL.

SELECT vkorg

vtweg

werks

INTO CORRESPONDING FIELDS OF TABLE it_info

FROM tvkwz FOR ALL ENTRIES IN it_werks

WHERE werks = it_werks-werks.

IF sy-subrc = 0.

LOOP AT it_info.

it_info-spart = '99'.

MODIFY it_info INDEX sy-tabix.

ENDLOOP.

SORT it_info BY vkorg vtweg werks.

ENDIF.

ENDIF.

ENDIF.

*- Get material from ppl material

SELECT ppl_prdid

matnr

FROM zppl_master

INTO TABLE it_matnr FOR ALL ENTRIES IN it_file

WHERE ppl_prdid = it_file-matnr.

IF sy-subrc = 0.

SORT it_matnr BY ppl_prdid matnr.

ENDIF.

ENDIF.

*- Update the data in it_data

LOOP AT it_file.

CLEAR it_data.

  • it_data-auart = 'OR'.

it_data-auart = 'OR'. " CHANGED BY Jo ON 3103005

READ TABLE it_werks WITH KEY name2 = it_file-loc BINARY SEARCH.

IF sy-subrc = 0.

READ TABLE it_info WITH KEY werks = it_werks-werks BINARY SEARCH.

IF sy-subrc = 0.

it_data-vkorg = it_info-vkorg.

it_data-vtweg = it_info-vtweg.

ENDIF.

ENDIF.

*- Material

READ TABLE it_matnr WITH KEY ppl_prdid = it_file-matnr BINARY SEARCH.

IF sy-subrc = 0.

it_data-matnr = it_matnr-matnr.

ENDIF.

it_data-ppl_order = it_file-ppl_order.

it_data-date = it_file-date.

CONCATENATE it_file-kunnr it_file-loc+1(2) INTO it_data-kunnr.

it_data-qty = it_file-qty.

it_data-uom = it_file-uom.

  • it_data-kbetr = it_file-kbetr.

*- Pricing condition

  • it_data-kschl = 'PR00'.

CASE it_file-div.

WHEN 'BRN'.

it_data-div = '04'.

WHEN 'GEN'.

it_data-div = '03'.

WHEN 'IVF'.

it_data-div = '02'.

WHEN 'OPH'.

it_data-div = '01'.

ENDCASE.

it_data-spart = it_data-div.

APPEND it_data.

CLEAR it_data.

ENDLOOP.

ENDFORM. " data_swap

regards

ravish

<b>plz dont forget to reward points if helpful</b>