‎2007 May 01 8:42 AM
hi
Is it possible to use BAPI_NETWORK_MAINTAIN for "creating activity element" as well as "updation of activity element" both at a same time.
As i am getting error in the creation part of element.
Please do suggest me the way for CREATE/UPDATE element using BAPI_NETWORK_MAINTAIN one time in the program.
Thanks and Regards
Ravi Arora
‎2008 Feb 07 6:59 AM
Any updated on this? we also need to create the network and unable to find any FM or BAPI.
Regards,
Anoop
‎2008 Feb 07 9:18 AM
Hi,
Please look into this u will get some idea,
we did it for this NETWORK activity through bapi.
TYPE-POOLS: truxs,abap.
*include bdcrecx1.
TABLES: t100.
***********************************************************************
T Y P E - D E C L A R A T I O N
***********************************************************************
TYPES: BEGIN OF ty_main,
net_no TYPE nw_aufnr,
net_prof TYPE profidnzpl,
net_typ TYPE nw_auart,
plant TYPE werks_d,
mrp TYPE co_dispo,
desc TYPE auftext,
wbs TYPE ps_posid,
act_no TYPE cn_vornr,
ctrl_key TYPE steus,
text TYPE ltxa1,
mat_plan TYPE string,
duration TYPE daunor,
wrk TYPE arbeit,
wrkcntr TYPE arbpl,
amnt TYPE prkst,
curr TYPE waers,
cst_elem TYPE kstar,
**************MAT*****************
m_itm_no TYPE aposn,
m_matnr TYPE matnr,
m_text TYPE potx1,
m_req_dt TYPE bdter,
m_proc_type TYPE type_of_pur_resv,
m_qty TYPE co_menge,
m_uom TYPE meins,
m_itm_cat TYPE postp,
m_pur_grp TYPE ekgrp,
m_pur_org TYPE ekorg,
m_gl_accnt TYPE saknr,
m_price TYPE ppcomp,
m_price_unit TYPE peinh,
m_currency TYPE waers,
m_vendor_no TYPE lifnr,
m_matl_group TYPE matkl,
END OF ty_main.
***********************************************************************
P A R A M E T E R S
***********************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-200.
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-300.
PARAMETERS: g_fpath TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b2.
***********************************************************************
D A T A
***********************************************************************
Internal Tables **
DATA: it_method_project TYPE TABLE OF bapi_method_project,
it_network TYPE TABLE OF bapi_network,
it_activity TYPE TABLE OF bapi_network_activity.
DATA: it_main TYPE TABLE OF ty_main.
DATA: it_main1 TYPE TABLE OF ty_main.
DATA: it_main2 TYPE TABLE OF ty_main.
DATA: it_return TYPE TABLE OF bapi_meth_message.
DATA: BEGIN OF it_err OCCURS 0,
net_no(90),
m_matnr(90),
er_typ(1),
error(100),
END OF it_err.
DATA: BEGIN OF it_ermain OCCURS 0,
net_no(90),
act_no(4),
er_typ(1),
error(100),
END OF it_ermain.
DATA:it_components_add TYPE TABLE OF bapi_network_comp_add.
DATA: it_message_table TYPE TABLE OF bapi_meth_message.
DATA: it_net_upd TYPE TABLE OF bapi_network_update.
DATA: it_act_upd TYPE TABLE OF bapi_network_activity_up.
Work fields **
DATA: wa_method_project LIKE LINE OF it_method_project,
wa_network LIKE LINE OF it_network,
wa_activity LIKE LINE OF it_activity.
DATA: wa_main LIKE LINE OF it_main.
DATA: wa_main1 LIKE LINE OF it_main1.
DATA: wa_err LIKE LINE OF it_err.
DATA: wa_return LIKE LINE OF it_return.
DATA: wa_ermain LIKE LINE OF it_ermain.
DATA: wa_components_add LIKE LINE OF it_components_add.
DATA: wa_message_table LIKE LINE OF it_message_table.
DATA: wa_mark_net LIKE LINE OF it_net_upd.
DATA: wa_mark_act LIKE LINE OF it_act_upd.
Data structures / Strings **
DATA: p_file1 TYPE string.
DATA: flag_err TYPE c.
DATA: flag_err2 TYPE c.
DATA: flag_mat TYPE c.
DATA: flag_no_comp TYPE c.
DATA: g_fpath1 TYPE string.
DATA: g_filename TYPE string,
g_path TYPE string,
g_user_action TYPE i,
g_encoding TYPE abap_encoding.
DATA: wa_prps TYPE prps,
l_pspnr TYPE prps-pspnr.
DATA: len_wbs TYPE i,
len_net TYPE i.
DATA: str_net TYPE string,
str_wbs TYPE string.
DATA: wa_afko TYPE afko.
DATA: wa_afvc TYPE afvc.
DATA: i_number TYPE bapi_network_list-network.
DATA: BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA: BEGIN OF messtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
***********************************************************************
A T 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_f4_filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR g_fpath.
PERFORM get_err_file.
***********************************************************************
S T A R T O F S E L E C T I O N
***********************************************************************
START-OF-SELECTION.
Upload input data
PERFORM upload_data.
IF it_err[] IS NOT INITIAL.
MESSAGE i000(8i) WITH text-001.
wa_err-net_no = 'Network and Activity Number'.
wa_err-m_matnr = 'Item Num/Material Num/Plant'.
wa_err-er_typ = 'Error Type'.
wa_err-error = 'ERROR'.
INSERT wa_err INTO it_err INDEX 1.
PERFORM create_log.
ENDIF.
***********************************************************************
E N D O F S E L E C T I O N
***********************************************************************
END-OF-SELECTION.
***********************************************************************
F O R M S
***********************************************************************
&----
*& Form get_f4_filename
&----
text
----
FORM get_f4_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
p_file1 = p_file.
ENDFORM. "get_f4_filename
&----
*& Form get_err_file
&----
text
----
FORM get_err_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'G_FPATH'
IMPORTING
file_name = g_fpath.
g_fpath1 = g_fpath.
ENDFORM. "get_err_file
&----
*& Form upload_data
&----
text
----
FORM upload_data .
DATA: l_duration TYPE string.
DATA: l_wrk TYPE string.
DATA: l_price TYPE string.
DATA: l_obky TYPE objidext.
DATA: n_count TYPE i.
DATA: n_count_act TYPE i.
DATA: l_aufnr TYPE aufnr.
DATA: flag_net TYPE c.
DATA: flag_act TYPE c.
DATA: l_network_prof TYPE profidnzpl VALUE 'Z000002'.
DATA: l_network_typ TYPE nw_auart VALUE 'ZPS2'.
DATA: l_mrp TYPE co_dispo VALUE '001'.
DATA: l_qty TYPE string.
DATA: l_mat_plan TYPE string.
DATA: l_mat_price TYPE string.
DATA: l_mat_pr_unit TYPE string.
TYPES:BEGIN OF ty_data1,
text(4096) TYPE c,
END OF ty_data1.
DATA:it_data1 TYPE STANDARD TABLE OF ty_data1 WITH HEADER LINE.
DATA:l_tabchar(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file1
filetype = 'ASC'
TABLES
data_tab = it_data1
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.
DELETE it_data1 INDEX 1.
n_count = 0.
n_count_act = 0.
REFRESH it_main.
CLEAR it_main[].
LOOP AT it_data1.
CLEAR wa_main.
SPLIT it_data1 AT l_tabchar INTO wa_main-net_no
wa_main-plant
wa_main-desc
wa_main-wbs
wa_main-act_no
wa_main-ctrl_key
wa_main-text
l_duration
l_wrk
wa_main-wrkcntr
l_mat_plan
l_price
wa_main-curr
wa_main-cst_elem
wa_main-m_itm_no
wa_main-m_matnr
wa_main-m_text
wa_main-m_itm_cat
wa_main-m_proc_type
l_qty
wa_main-m_uom
wa_main-m_req_dt
wa_main-m_pur_grp
wa_main-m_pur_org
wa_main-m_gl_accnt
l_mat_price
l_mat_pr_unit
wa_main-m_currency
wa_main-m_vendor_no
wa_main-m_matl_group.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_main-cst_elem
IMPORTING
output = wa_main-cst_elem.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_main-net_no
IMPORTING
output = wa_main-net_no.
CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT'
EXPORTING
input = wa_main-act_no
IMPORTING
output = wa_main-act_no.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_main-m_vendor_no
IMPORTING
output = wa_main-m_vendor_no.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_main-m_gl_accnt
IMPORTING
output = wa_main-m_gl_accnt.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
REPLACE '.' IN l_mat_plan WITH ','.
wa_main-mat_plan = l_mat_plan.
wa_main-duration = l_duration.
wa_main-wrk = l_wrk.
wa_main-amnt = l_price.
wa_main-m_qty = l_qty.
wa_main-m_price = l_mat_price.
wa_main-m_price_unit = l_mat_pr_unit.
wa_main-net_prof = l_network_prof.
wa_main-net_typ = l_network_typ.
wa_main-mrp = l_mrp.
TRANSLATE wa_main-net_no TO UPPER CASE.
TRANSLATE wa_main-wbs TO UPPER CASE.
TRANSLATE wa_main-ctrl_key TO UPPER CASE.
TRANSLATE wa_main-wrkcntr TO UPPER CASE.
TRANSLATE wa_main-curr TO UPPER CASE.
TRANSLATE wa_main-cst_elem TO UPPER CASE.
********MAT*******
TRANSLATE wa_main-m_matnr TO UPPER CASE.
TRANSLATE wa_main-m_uom TO UPPER CASE.
TRANSLATE wa_main-m_itm_cat TO UPPER CASE.
TRANSLATE wa_main-m_pur_grp TO UPPER CASE.
TRANSLATE wa_main-m_gl_accnt TO UPPER CASE.
TRANSLATE wa_main-m_pur_org TO UPPER CASE.
TRANSLATE wa_main-m_currency TO UPPER CASE.
TRANSLATE wa_main-m_vendor_no TO UPPER CASE.
TRANSLATE wa_main-m_matl_group TO UPPER CASE.
APPEND wa_main TO it_main.
ENDLOOP.
CLEAR wa_main.
CLEAR wa_network.
CLEAR wa_mark_net.
CLEAR wa_mark_act.
REFRESH it_main1.
REFRESH it_main2.
SORT it_main BY net_no act_no m_itm_no.
it_main1 = it_main.
it_main2 = it_main.
DELETE ADJACENT DUPLICATES FROM it_main COMPARING net_no.
DELETE ADJACENT DUPLICATES FROM it_main1 COMPARING net_no act_no.
REFRESH it_network.
REFRESH it_method_project.
REFRESH it_activity.
REFRESH it_net_upd.
REFRESH it_act_upd.
CLEAR wa_mark_net.
CLEAR wa_mark_act.
CLEAR wa_network.
CLEAR wa_activity.
CLEAR wa_method_project.
LOOP AT it_main INTO wa_main.
flag_net = '0'.
flag_act = '0'.
SELECT SINGLE aufnr FROM afko INTO l_aufnr
WHERE aufnr = wa_main-net_no.
IF sy-subrc NE 0.
wa_method_project-objectkey = wa_main-net_no.
wa_method_project-objecttype = 'NETWORK'.
wa_method_project-method = 'CREATE'.
wa_method_project-refnumber = '000001'.
flag_net = '1'.
APPEND wa_method_project TO it_method_project.
ENDIF.
IF flag_net = '1'.
wa_network-network = wa_main-net_no.
wa_network-profile = wa_main-net_prof.
wa_network-network_type = wa_main-net_typ.
wa_network-mrp_controller = wa_main-mrp.
wa_network-plant = wa_main-plant.
wa_network-wbs_element = wa_main-wbs.
wa_network-short_text = wa_main-desc.
APPEND wa_network TO it_network.
wa_mark_net-network = 'X'.
wa_mark_net-network_type = 'X'.
wa_mark_net-short_text = 'X'.
wa_mark_net-plant = 'X'.
wa_mark_net-wbs_element = 'X'.
wa_mark_net-mrp_controller = 'X'.
wa_mark_net-profile = 'X'.
APPEND wa_mark_net TO it_net_upd.
ENDIF.
CLEAR n_count_act.
LOOP AT it_main1 INTO wa_main1 WHERE net_no = wa_main-net_no.
IF wa_main1-act_no IS NOT INITIAL.
flag_act = '1'.
ENDIF.
IF flag_act = '1'.
CONCATENATE wa_main1-net_no wa_main1-act_no INTO l_obky.
wa_method_project-objectkey = l_obky.
wa_method_project-objecttype = 'NETWORKACTIVITY'.
wa_method_project-method = 'CREATE'.
wa_method_project-refnumber = n_count_act + 1.
n_count_act = n_count_act + 1.
APPEND wa_method_project TO it_method_project.
CLEAR wa_network.
wa_activity-network = wa_main1-net_no.
wa_activity-wbs_element = wa_main1-wbs.
wa_activity-activity = wa_main1-act_no.
wa_activity-control_key = wa_main1-ctrl_key.
wa_activity-description = wa_main1-text.
wa_activity-duration_normal = wa_main1-duration.
wa_activity-work_activity = wa_main1-wrk.
wa_activity-work_cntr = wa_main1-wrkcntr.
wa_activity-activity_costs = wa_main1-amnt.
wa_activity-currency = wa_main1-curr.
wa_activity-cost_elem = wa_main1-cst_elem.
**amt
APPEND wa_activity TO it_activity.
wa_mark_act-network = 'X'.
wa_mark_act-wbs_element = 'X'.
wa_mark_act-activity = 'X'.
wa_mark_act-control_key = 'X'.
wa_mark_act-description = 'X'.
wa_mark_act-duration_normal = 'X'.
wa_mark_act-work_activity = 'X'.
wa_mark_act-work_cntr = 'X'.
wa_mark_act-activity_costs = 'X'.
wa_mark_act-currency = 'X'.
wa_mark_act-cost_elem = 'X'.
**Amt
APPEND wa_mark_act TO it_act_upd.
ENDIF.
CLEAR wa_activity.
CLEAR wa_main1.
ENDLOOP.
CLEAR wa_method_project.
wa_method_project-method = 'SAVE'.
APPEND wa_method_project TO it_method_project.
CLEAR flag_err.
PERFORM process_data.
CLEAR wa_main.
CLEAR wa_method_project.
CLEAR wa_network.
REFRESH it_activity.
REFRESH it_method_project.
REFRESH it_network.
REFRESH it_net_upd.
REFRESH it_act_upd.
CLEAR wa_mark_net.
CLEAR wa_mark_act.
CLEAR wa_main1.
ENDLOOP.
ENDFORM. " upload_data
&----
*& Form process_data
&----
text
----
FORM process_data.
CLEAR: wa_prps.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_main-wbs
IMPORTING
output = wa_main-wbs.
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = wa_main-wbs
IMPORTING
output = l_pspnr
EXCEPTIONS
not_found = 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.
SELECT SINGLE * FROM prps INTO wa_prps WHERE pspnr = l_pspnr.
IF sy-subrc NE 0.
flag_err = 1.
wa_err-net_no = wa_main-net_no.
wa_err-er_typ = 'E'.
wa_err-error = 'WBS does not exist'.
APPEND wa_err TO it_err.
CLEAR wa_err.
ELSE.
len_wbs = STRLEN( wa_main-wbs ).
len_net = STRLEN( wa_main-net_no ).
str_wbs = wa_main-wbs+1(len_wbs).
str_net = wa_main-net_no+1(len_net).
IF str_net = str_wbs.
IF wa_main-net_no0(1) NE 'N' AND wa_main-wbs0(1) NE 'P'.
flag_err = 1.
wa_err-net_no = wa_main-net_no.
wa_err-er_typ = 'E'.
wa_err-error = 'WBS and network number do not correspond'.
APPEND wa_err TO it_err.
CLEAR wa_err.
ENDIF.
ELSE.
flag_err = 1.
wa_err-net_no = wa_main-net_no.
wa_err-er_typ = 'E'.
wa_err-error = 'WBS and network number do not correspond'.
APPEND wa_err TO it_err.
CLEAR wa_err.
ENDIF.
ENDIF.
IF flag_err NE 1.
PERFORM process_bapi.
ENDIF.
ENDFORM. "process_data
&----
*& Form process_bapi
&----
text
----
FORM process_bapi.
DATA: len_mat TYPE i.
CLEAR flag_mat.
REFRESH it_return.
CALL FUNCTION 'BAPI_NETWORK_MAINTAIN'
IMPORTING
return = it_return
TABLES
i_method_project = it_method_project
i_network = it_network
i_network_update = it_net_upd
i_activity = it_activity
i_activity_update = it_act_upd
e_message_table = it_return.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
WAIT UP TO 2 SECONDS.
LOOP AT it_return INTO wa_return. "WHERE ( type = 'E' OR type = 'S' ).
IF wa_return-message_type = 'E'.
flag_err = 1.
flag_mat = 1.
wa_err-net_no = wa_return-external_object_id.
wa_err-er_typ = wa_return-message_type.
wa_err-error = wa_return-message_text.
APPEND wa_err TO it_err.
ENDIF.
CLEAR: wa_return.
ENDLOOP.
IF flag_mat NE 1.
CLEAR wa_main1.
LOOP AT it_main INTO wa_main.
REFRESH it_components_add.
CLEAR flag_no_comp.
LOOP AT it_main2 INTO wa_main1 WHERE net_no = wa_main-net_no.
REPEAT************MAT**********
IF wa_main1-m_matnr IS NOT INITIAL
OR wa_main1-m_text IS NOT INITIAL.
flag_no_comp = 2.
i_number = wa_main1-net_no.
wa_components_add-activity = wa_main1-act_no.
wa_components_add-item_number = wa_main1-m_itm_no.
IF wa_main1-m_matnr IS NOT INITIAL.
wa_components_add-material = wa_main1-m_matnr.
ENDIF.
**
wa_components_add-item_text = wa_main1-m_text.
IF STRLEN( wa_main1-m_req_dt ) NE 0.
wa_components_add-req_date = wa_main1-m_req_dt.
ELSE.
wa_components_add-req_date = sy-datum.
ENDIF.
wa_components_add-plant = wa_main1-plant.
wa_components_add-type_of_pur_resv = wa_main1-m_proc_type.
wa_components_add-entry_quantity = wa_main1-m_qty.
wa_components_add-base_uom = wa_main1-m_uom.
wa_components_add-item_cat = wa_main1-m_itm_cat.
wa_components_add-pur_group = wa_main1-m_pur_grp.
wa_components_add-purch_org = wa_main1-m_pur_org.
wa_components_add-gl_account = wa_main1-m_gl_accnt.
wa_components_add-price = wa_main1-m_price.
wa_components_add-price_unit = wa_main1-m_price_unit.
wa_components_add-currency = wa_main1-m_currency.
wa_components_add-vendor_no = wa_main1-m_vendor_no.
IF wa_main1-m_matnr IS INITIAL.
wa_components_add-matl_group = wa_main1-m_matl_group.
ENDIF.
APPEND wa_components_add TO it_components_add.
CLEAR wa_components_add.
ELSE.
IF flag_no_comp NE 2.
flag_no_comp = 1.
ENDIF.
ENDIF.
ENDLOOP.
REFRESH it_message_table.
IF flag_no_comp EQ 2.
CALL FUNCTION 'BAPI_NETWORK_COMP_ADD'
EXPORTING
number = i_number
TABLES
i_components_add = it_components_add
e_message_table = it_message_table.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
WAIT UP TO 2 SECONDS.
IF it_message_table IS NOT INITIAL.
LOOP AT it_message_table INTO wa_message_table.
IF wa_message_table-message_type = 'E'.
flag_err = 1.
flag_err2 = 1.
wa_err-net_no = i_number.
wa_err-m_matnr = wa_message_table-external_object_id.
wa_err-error = wa_message_table-message_text.
APPEND wa_err TO it_err.
ENDIF.
CLEAR wa_message_table.
ENDLOOP.
ENDIF.
IF flag_err2 NE 1.
MESSAGE text-100 TYPE 'S'.
ENDIF.
CLEAR flag_no_comp.
ENDIF.
ELSE.
LOOP AT it_return INTO wa_return. "WHERE ( type = 'E' OR type =
IF wa_return-message_type = 'E'.
flag_err = 1.
wa_err-net_no = wa_return-external_object_id.
wa_err-er_typ = wa_return-message_type.
wa_err-error = wa_return-message_text.
APPEND wa_err TO it_err.
CLEAR wa_err.
ENDIF.
CLEAR: wa_return.
ENDLOOP.
REFRESH:it_return.
IF flag_err NE 1.
MESSAGE text-100 TYPE 'S'.
ENDIF.
ENDIF.
PERFORM mat_plan.
IF flag_err NE 1.
MESSAGE text-100 TYPE 'S'.
ENDIF.
CLEAR flag_mat.
ENDFORM. "process_bapi
&----
*& Form create_log
&----
text
----
FORM create_log .
g_fpath1 = g_fpath.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = g_fpath1
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = it_err[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
ENDFORM. " create_log
&----
*& Form mat_plan
&----
text
----
--> p1 text
<-- p2 text
----
FORM mat_plan .
DATA: l_aufpl TYPE afko-aufpl,
it_afvc TYPE TABLE OF afvc,
wa_afvc TYPE afvc,
l_index(2) TYPE c.
DATA: l_vornr TYPE string,
l_flg_sel TYPE string.
WAIT UP TO 3 SECONDS.
SELECT SINGLE aufpl FROM afko INTO l_aufpl
WHERE aufnr = wa_main-net_no.
SELECT aufpl steus vornr FROM afvc
INTO CORRESPONDING FIELDS OF TABLE it_afvc
WHERE aufpl = l_aufpl AND steus = 'PS01'.
LOOP AT it_main1 INTO wa_main1 WHERE net_no = wa_main-net_no
AND ctrl_key = 'PS01'.
CLEAR l_vornr.
CLEAR l_flg_sel.
CLEAR l_index.
READ TABLE it_afvc INTO wa_afvc WITH KEY vornr = wa_main1-act_no.
l_index = sy-tabix.
CONCATENATE 'AFVGD-VORNR(' l_index ')' INTO l_vornr.
CONCATENATE 'RC27X-FLG_SEL(' l_index ')' INTO l_flg_sel.
***********************************************************************
-----BDC to create activities for the network--
PERFORM bdc_dynpro USING 'SAPLCOKO' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'CAUFVD-AUFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=LIST'.
PERFORM bdc_field USING 'CAUFVD-AUFNR'
wa_main1-net_no. "'N000250A1A0'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DETA'.
PERFORM bdc_field USING 'BDC_CURSOR'
l_vornr.
PERFORM bdc_field USING l_flg_sel
'X'.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ZUOD'.
PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM bdc_field USING 'AFVGD-MAT_PRKST'
wa_main1-mat_plan. "'100'.
PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VSNETEXT-NPLNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_transaction USING 'CN22'.
***********************************************************************
ENDLOOP.
ENDFORM. " mat_plan
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "BDC_FIELD
----
Start new transaction according to parameters *
----
FORM bdc_transaction USING tcode.
DATA: l_mstring(480).
DATA: l_subrc LIKE sy-subrc.
DATA: l_error(500) TYPE c.
REFRESH messtab.
CALL TRANSACTION tcode USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO messtab.
l_subrc = sy-subrc.
LOOP AT messtab.
SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
AND arbgb = messtab-msgid
AND msgnr = messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
CONCATENATE messtab-msgtyp l_mstring INTO l_error SEPARATED BY space.
ELSE.
ENDIF.
ENDLOOP.
SKIP.
REFRESH bdcdata.
IF l_subrc <> 0.
flag_err = 1.
MOVE-CORRESPONDING wa_main1 TO wa_err.
wa_err-er_typ = 'E'.
wa_err-error = l_error.
APPEND wa_err TO it_err.
ENDIF.
ENDFORM. "BDC_TRANSACTION
reward points if helpful,
regards,
ravi shankar reddy