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_NETWORK_MAINTAIN : CREATE/UPDATE element

Former Member
0 Likes
2,200

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

2 REPLIES 2
Read only

Former Member
0 Likes
1,103

Any updated on this? we also need to create the network and unable to find any FM or BAPI.

Regards,

Anoop

Read only

Former Member
0 Likes
1,103

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