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
Any updated on this? we also need to create the network and unable to find any FM or BAPI.
Regards,
Anoop
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
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |